/*
common.js
REQUIRES: prototype.js, scriptaculous.js, jquery,js
Site URI: 
Description: 大阪YMCA ウエルネス
Since: 2009-12-07
Author: Tooru Ehara
*/

/*jQuery.noConflict();*/


// *************************************************
// 初期発動関数
// *************************************************

$(document).ready(function(){
	setPullDownMenu();
	setRollOver();
	NewMarkUp();
	setStripedTable();
	if($('#programs')){
		setNestTabs();
		$(function() {
				$('#programs').tabs({ fx: { opacity: 'toggle' } }).tabs();
		});
	}
	initProgram();
});



// *************************************************
// 汎用関数
// *************************************************


// eventSetter
var isIE = isIE = (document.documentElement.getAttribute('style') == document.documentElement.style);

function eventSetter(obj,eventType,func){
	if(isIE) {
		obj.setAttribute(eventType,new Function(func));
	} else {
		obj.setAttribute(eventType,func);
	}
}


// open new window
function newWindow(uri,width,height){
	var myWindow = window.open(uri, 'newWindow', 'resizable=yes,scrollbars=yes,status=0,width='+width+',height='+height);
	if (myWindow.focus!=null) {
		myWindow.focus();
	}
}


// print window
function printWindow(){
	if(document.getElementById || document.layers){
		window.print();
	}
}


// Ajax recover UTF-8 (for Safari)
function recover_utf8(text){
	if(navigator.appVersion.indexOf('KHTML') > -1){
		var esc = escape(text);
		if(esc.indexOf('%u') < 0 && esc.indexOf('%') > -1){
			text = decodeURIComponent(esc);
		}
	}
	return text;
}


// input clear
function inputClear(id,txt){
	if ($(id).value == txt) $(id).value = '';
}

// scroll to top
$(function () {
	if (! $.browser.safari) {
			$('#pagetop').click(function () {
					$(this).blur();
					$('html,body').animate({ scrollTop: 0 }, 'slow');
					return false;
			});
	}
});



// *************************************************
// 画像ロールオーバー
// *************************************************

function setRollOver(){
	var postfix = '_o';
	$('.swap').not('[src*="'+ postfix +'."]').each(function() {
		var img = $(this);
		var src = img.attr('src');
		var src_on = src.substr(0, src.lastIndexOf('.'))
		           + postfix
		           + src.substring(src.lastIndexOf('.'));
		$('<img>').attr('src', src_on);
		img.hover(
			function() {
				img.attr('src', src_on);
			},
			function() {
				img.attr('src', src);
			}
		);
	});
}



// *************************************************
// プルダウンメニュー
// *************************************************

function setPullDownMenu(){
	$('#globalnav li.menu').bind('mouseover', jsddm_open);
	$('#globalnav li.menu ').bind('mouseout',  jsddm_timer);
	
	var timeout			= 500;
	var closetimer	= 0;
	var ddmenuitem	= 0;
	
	function jsddm_open(){
		jsddm_canceltimer();
		jsddm_close();
		ddmenuitem = $(this).find('ul').eq(0).css('display', 'block');
	}

	function jsddm_close(){
		if(ddmenuitem) ddmenuitem.css('display', 'none');
	}
		
	function jsddm_timer(){
		closetimer = window.setTimeout(jsddm_close, timeout);
	}
		
	function jsddm_canceltimer(){
		if(closetimer){
			window.clearTimeout(closetimer);
			closetimer = null;
		}
	}
	document.onclick = jsddm_close;
}


// *************************************************
// 画像拡大処理
// *************************************************

/*jQuery(document).ready(function() {
	jQuery('a.fancybox').fancybox();
});
*/

// *************************************************
// ナビゲーションアクティブ処理
// *************************************************
/*
jQuery(document).ready(function() {
	var entrydata = document.body.id;
	jQuery('#localnav li').each(function(){
		var className = jQuery(this).attr('class');
		if(className == entrydata){
			jQuery(this).addClass('active');
		}
	});
	
	var globalClass = jQuery('body').attr('class');
	jQuery('#globalnav li').each(function(){
		var img = this.firstChild.childNodes[0];
		var idName = this.id;
		if(idName == globalClass){
			new gloabalMenu(img,'img');
		}
	});
});

*/

// *************************************************
// 最新記事アイコン表示
// *************************************************

function NewMarkUp(){
	// passage time
	var pass = 168;
	 
	// display content
	var content = '&nbsp;&nbsp;<img src="/img/icn_new.gif" alt="New!" />';
	 
	var currentDate = new Date(); 
	var spans = document.getElementsByTagName('span');
	for (i = 0; i < spans.length; i++) {
			if (spans[i].getAttribute('class') == 'new' ||
					spans[i].getAttribute('className') == 'new') {
					if (spans[i].childNodes[0]) {
							time = spans[i].childNodes[0].nodeValue.split(':');
							var entryDate = new Date(time[0], time[1]-1, time[2], time[3], time[4], time[5]); 
							var now = (entryDate.getTime() - currentDate.getTime())/(60*60*1000); 
							now = Math.ceil(now);
							if(-now <= pass){
									spans[i].innerHTML = content;
									spans[i].style.display = 'inline';
							}
							else{
									spans[i].innerHTML = '';
							}
					}
			}
	}
}


// *************************************************
// テーブルストライプ化
// *************************************************

function setStripedTable(){
	$('.stripe tr:even').addClass('even');
	$('.stripe tr:odd').addClass('odd');
}



// *************************************************
// ネストしいるタブを処理
// *************************************************
function setNestTabs(){
	$('#contentsnav li a').click(function(){
		var $details = $('.details');
		$('div', $details).each(function(){
			$(this).removeClass();
			if('pj01' == $(this).attr('id')){
				$(this).addClass('visible');
			}else{
				$(this).addClass('hide');
			}
		});
	});
	
	
	
	$('.details').each(function (){
		var n=0;
		$('div', $(this)).each(function (){
			n++;
			if(n == 1){
				$(this).addClass('visible');
			}else{
				$(this).addClass('hide');
			}
			$(this).attr('id', 'pj0'+n);
		});
	});
	
	

	$('#programs dd').each(function(){
		var n =0;
		$('a', $(this)).each(function(){
			n++;
			$(this).attr('title', 'pj0'+n);										
		});
	});
	
	

	$('#playing-programs').each(function(){
		var n =0;
		$('a', $(this)).each(function(){
			n++;
			$(this).attr('title', 'pj0'+n);
		});
	});


	$('#programs dd a').each(function(){
		var $details = $('.details');
		$(this).click(function(){										 
			var $title = $(this).attr('title');
			displayProgram($details, $title);
		});
	});
	

	$('#playing-programs a').each(function(){
		var $details = $('#normal .details');
		
		$(this).click(function(){
			var n = 0;
			$('#contentsnav li').each(function(){
				$(this).removeClass();
				if(n==0){
					$(this).addClass('ui-corner-top ui-tabs-selected ui-state-active');
				}else{
					$(this).addClass('ui-corner-top ui-state-default');
				}
				n++;
			});
			$('#normal').removeClass();
			$('#normal').addClass('ui-tabs-panel ui-widget-content ui-corner-bottom');
			$('#season').removeClass();
			$('#season').addClass('ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide');
			$('#short-term').removeClass();
			$('#short-term').addClass('ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide');
			var $title = $(this).attr('title');
			displayProgram($details, $title);
		});
	});
}


//プログラムページからのGET値による表示制御
function initProgram(){
	var get = getRequest();
	if(get){
		var $program = get['program'];
		var activeTab = 'ui-corner-top ui-tabs-selected ui-state-active';
		var staticTab = 'ui-corner-top ui-state-default';
		var activeDiv = 'ui-tabs-panel ui-widget-content ui-corner-bottom';
		var staticDiv = 'ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide';
		switch(get['category']){
			case 'normal':
			var $details = $('#normal .details');
			displayProgram($details, $program);
			break;
			
			case 'season':
			$('#normal').removeClass();
			$('#normal').addClass(staticDiv);
			$('#season').removeClass();
			$('#season').addClass(activeDiv);
			$('#short-term').removeClass();
			$('#short-term').addClass(staticDiv);
			var n = 0;
			$('#contentsnav li').each(function(){
				$(this).removeClass();
				if(n==1){
					$(this).addClass(activeTab);
				}else{
					$(this).addClass(staticTab);
				}
				n++;
	  	 });
			var $details = $('#season .details');
			displayProgram($details, $program);
			break;
			
			case 'short-term':
			$('#normal').removeClass();
			$('#normal').addClass(staticDiv);
			$('#season').removeClass();
			$('#season').addClass(staticDiv);
			$('#short-term').removeClass();
			$('#short-term').addClass(activeDiv);
			var n = 0;
			$('#contentsnav li').each(function(){
				$(this).removeClass();
				if(n==2){
					$(this).addClass(activeTab);
				}else{
					$(this).addClass(staticTab);
				}
				n++;
	  	 });
			var $details = $('#short-term .details');
			displayProgram($details, $program);
			break;
		}
	}
}

//
function displayProgram(target,program){
	$('div', target).each(function (){
			$(this).removeClass();
			if(program == $(this).attr('id')){
				$(this).addClass('visible');
			}else{
				$(this).addClass('hide');
			}
	 });
}


//GET値を取得
function getRequest(){
  if(location.search.length > 1) {
    var get = new Object();
    var ret = location.search.substr(1).split("&");
    for(var i = 0; i < ret.length; i++) {
      var r = ret[i].split("=");
      get[r[0]] = r[1];
    }
    return get;
  } else {
    return false;
  }
}
