/////////// オブジェクトの座標取得 ///////////////////////////
function $P(eremID){
  if(typeof(eremID)=="object") var offsetTrail = eremID;
  else var offsetTrail = $(eremID);

  var offsetLeft = 0;
  var offsetTop = 0;

  while(offsetTrail){
   offsetLeft += offsetTrail.offsetLeft;
   offsetTop += offsetTrail.offsetTop;
   offsetTrail = offsetTrail.offsetParent;
  }

  if(navigator.userAgent.indexOf("Mac") != -1 && 
  typeof document.body.leftMargin != "undefined"){
   offsetLeft += document.body.leftMargin;
   offsetTop += document.body.topMargin;
  }

  return{ left:offsetLeft , top:offsetTop }

}


function layerAlpha(objName,alpha){	
	var obj = $(objName);
	if(window.ActiveXObject) {
		obj.style.filter = "alpha(opacity="+alpha+")";
	}else{
		obj.style.opacity = alpha / 100;
		obj.style.MozOpacity = alpha / 100;
	}
}

var event_baloon_timer;
/////////イベントカレンダー//////////////////////
function eventset(){
	
	var prev ="";
	var nDate = new Date();
	var nMonth = nDate.getMonth() ;
	var nYear = nDate.getFullYear();
	var nDay = nDate.getDay();
	
	var classTitle = new Array("titleSun","title","title","title","title","title","titleSat");
	var classMonth = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	
	var sYear = nYear;
	var sMonth = nMonth;
	

	///メニューレイヤー作成
	var divNode = document.createElement("div");
	divNode.id = 'evt_balloon';
	divNode.style.display = 'none';
	document.body.appendChild(divNode);

	////////初期化
	var calClear= function(){
		caldate = [];
		calarea = [];
		caltitle = [];
		callink = [];
		caltarget = [];
		calcaption = [];
	}
	
	var balloonAni = function(ele){
		clearInterval(event_baloon_timer);		
		var htm = "";
		var obj = $P(ele);
		$("evt_balloon").style.width = "200px";
		$("evt_balloon").style.zIndex = 100;
		$("evt_balloon").style.position = "absolute";
		
		htm += '<div style="padding:5px;background:#fff;border-width:1px 1px 0 1px; border-color:#ccc; border-style:solid;color:#167CCE;font-weight:bold;">' + ele.getAttribute('alt') + '</div>';
		htm += '<div style="font-size:0.1em;"><img src="/img/station/event/bg_balloon01.gif" /></div>';

		$("evt_balloon").innerHTML = htm;
		$("evt_balloon").style.left = (obj.left - 60) + "px";

	
	
		alphaN = 0;
		layerAlpha("evt_balloon",alphaN);
		prev = ele.getAttribute('alt');
		ele.alt = "";
		
		var dissa = function(){
			$("evt_balloon").style.display = "block";
			$("evt_balloon").style.top = ( obj.top - $("evt_balloon").offsetHeight)+ "px";
			
			if( alphaN > 80 ){
				alphaN =80;
				layerAlpha("evt_balloon",alphaN);
				clearInterval(event_baloon_timer);
			}
		
			layerAlpha("evt_balloon",alphaN);
			
			alphaN += 6;
					
		}
		event_baloon_timer = setInterval(dissa,1);
	}
	/////////その月が何日まであるかチェック
	var dateChk = function(mon){
		var ret;
		var mont = mon + 1;
		
		if( mont == 1 || mont == 3 || mont == 5 || mont == 7 || mont == 8 || mont == 10 || mont == 12 ){
			ret=31;
		}else if(mont == 2){
			ret=28;
		}else{
			ret=30;
		}
		return ret;
	}
	
	///////1桁の場合、前に0をつける。
	var numberchk = function(prm){
		var chk="";
	
		if(prm < 10) chk = "0" + String(prm);
		else chk = String(prm);
		
		return chk;
	}
	
	//////////// 年月　プルダウンが変更されたとき	
	var selchange = function(obj){
		
		if(obj.id == "selmonth") sMonth = obj.value - 1;
		else sYear = obj.value;
		
		ajaxsend(sYear,sMonth);				
	}
	
	//////////// 年月　プルダウン表示
	var disselect = function(disY,disM){
		
		var dateText ="";
	
		dateText += '<form>';
		dateText += '<select id="selyear">';
		for(i=(nYear-1); i<= (nYear+1); i++){
			if( i >= 2006 ){			
				if(i == disY ) dateText += '<option value="' + i + '" selected="selected">'+ i +'</option>';
				else dateText += '<option value="' + i + '">'+ i +'</option>';
			}
		}
		
		dateText += '</select>';
		dateText += '&nbsp;年&nbsp;';
		
		dateText += '<select id="selmonth">';
		for(i=1; i<=12; i++){
			if( disY == 2006 && i<=10){
				
			}else{
				if(i == disM+1) dateText += '<option selected="selected">'+ i +'</option>';
				else dateText += '<option value="' + i + '">'+ i +'</option>';
			}
			
		}
		dateText += '</select>';
		dateText += '&nbsp;月';
		dateText += '</form>';
					
	
		$("select").innerHTML = dateText;
		
		$("selyear").onchange = function () { selchange(this);}
		$("selmonth").onchange = function () { selchange(this);}
		

		$("currentmonth").onclick = function(){
			ajaxsend(nYear,nMonth);
		}
				

	}
	//////////////////////////////////////////////////
	var checkChk = function(prm){
		var chk=false;
		
		if(prm == undefined){
			chk = true;
		}else{
			var spl = prm.split(",");
			
			for(ii=0; ii< spl.length; ii++){
				if($("cb" + spl[ii]).checked) chk = true;			
			}
		}
		
		return chk;
	}
	/////////////カレンダー表示
	var discal = function(disY,disM){
		var calText ="";
		calText += '<table border="0" cellspacing="0" cellpadding="0" id="eventcal">';
		calText += '<tr>';
		calText += '<th><div class="titleSun">SUN</div></th>';
		calText += '<th><div class="title">MON</div></th>';
		calText += '<th><div class="title">TUE</div></th>';
		calText += '<th><div class="title">WED</div></th>';
		calText += '<th><div class="title">THE</div></th>';
		calText += '<th><div class="title">FRI</div></th>';
		calText += '<th><div class="titleSat">SAT</div></th>';
		calText += '</tr>';
		calText += '<tr>';
	
		var cnt = 0;
		
		for(i=1; i<= dateChk(disM); i++){
			xdate = new Date(disY, disM, i);
			
			if(i==1){
				for(s=0; s<xdate.getDay(); s++){
					calText += '<td><div class="'+ classTitle[s] + '">&nbsp;</div></td>';
				}
			}
			
			calText += '<td><div class="'+ classTitle[xdate.getDay()] + '">' + i + '</div>';
			for( j=0; j< caldate.length; j++){
				if( caldate[j] == (String(disY) + numberchk(disM+1) + numberchk(i)) ){
					
					calText += '<a href="' + callink[j] + '" target="' + caltarget[j] + '">';
					switch ( caltitle[j] ) {
						case 'ccnet':
							calText += '<img src="/img/station/event/ic_royal.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						case 'classic':
							calText += '<img src="/img/station/event/ic_classic.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						case 'musical':
							calText += '<img src="/img/station/event/ic_musical.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						case 'concert':
							calText += '<img src="/img/station/event/ic_concert.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						case 'rugby':
							calText += '<img src="/img/station/event/ic_rugby.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						case 'hockey':
							calText += '<img src="/img/station/event/ic_hockey.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
							case 'eco':
							calText += '<img src="/img/station/event/ic_eco.gif" border="0" id="balloon_' + i + '_' + j + '" alt="'+ calcaption[j] +'" />';
							break;
						default:
							//alert("NG");
					}

					calText += '</a>';
				}
			}
			calText += '</td>';
			
			if( xdate.getDay() == 6 ) calText += '</tr><tr>';

			if(i== dateChk(disM) && xdate.getDay()!= 6 ){
				for(s=0; s< (6- xdate.getDay()); s++){
					calText += '<td><div class="title">&nbsp;</div></td>';
				}
			}
		
		}
	
		calText += '</tr>';
		calText += '</table>';
		
		
		$("cal").innerHTML = calText;
		
		
		if (!$("eventcal").getElementsByTagName){ return; }
		var anchors = $("eventcal").getElementsByTagName('img');
		var leng = anchors.length;
	
		for (var i=0; i< leng; i++){
			var anchor = anchors[i];
			
			var idAttribute = String(anchor.getAttribute('id'));
			
			if ( idAttribute.toLowerCase().match('balloon_') ){
				anchor.onmouseover = function(){
					if($("evt_balloon") && this.getAttribute('alt') != "undefined" ){
						balloonAni(this);
					}else{
						prev = this.getAttribute('alt');
						this.alt = "";
					}
				}
				anchor.onmouseout = function(){
					if($("evt_balloon") && this.getAttribute('alt') != "undefined"){
						this.alt = prev;
						$("evt_balloon").style.display = "none";
					}else{
						this.alt = prev;
					}
				}
			}
		}		
	}
	
	
	////////////Ajax通信
	var ajaxsend = function(disY, disM){

		var url = "/station/event/xml/" + String(disY) + numberchk(String(disM+1)) + ".xml?rnd=" + randomprm();
		var pars = "";
		
		sYear = disY;
		sMonth = disM;

		var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters:pars,
			onComplete: mylistResponse,
			onFailure: errorfunc
		});

	}
	
	/////////////////////////////////////////////////
	var errorfunc = function(originalRequest){
		calClear();
		disselect(sYear,sMonth);
		discal(sYear,sMonth);
		$("date").innerHTML = sYear + "<span>"+ Number(sMonth+1) +"</span>" + classMonth[sMonth];
		
	}
	/////////////////////////////////////////////////
	var mylistResponse = function(originalRequest){
		calClear();
		prev ="";
		var xml= originalRequest.responseXML;
		
		var eventdate = xml.getElementsByTagName('eventdate');


		for(i=0; i< eventdate.length; i++){
			for(s=0; s< eventdate[i].childNodes.length; s++){
	
				secNode = eventdate[i].childNodes[s];
				
				switch ( secNode.nodeName ) {
					case 'ndate':
						caldate[i] = secNode.firstChild.nodeValue;
						break;
					case 'narea':
						calarea[i] = secNode.firstChild.nodeValue;
						break;
					case 'ntitle':
						caltitle[i] = secNode.firstChild.nodeValue;
						break;
					case 'nlink':
						callink[i] = secNode.firstChild.nodeValue;
						break;
					case 'ntarget':
						caltarget[i] = secNode.firstChild.nodeValue;
						break;
					case 'ncaption':
						calcaption[i] = secNode.firstChild.nodeValue;
						break;
					default:
						//alert("NG");
				}
		
			}
		}
		


		disselect(sYear,sMonth);
		discal(sYear,sMonth);
		$("date").innerHTML = sYear + "<span>"+ Number(sMonth+1) +"</span>" + classMonth[sMonth];
		
	}

////////////////////////////////////////


	ajaxsend(sYear,sMonth);



}

//random
function randomprm(){
 return Math.floor(Math.random() * 10000000000);
}

//on load
Event.observe(window, "load", eventset, false);
