window.onload=function(){
loadData("eventCalender","",null);
}
var xObj=new Object();

xObj["eventCalender"]=new Object();
xObj["eventCalender"].datauri = '/event.cgi';
xObj["eventCalender"].func = function(){
	if ((httpObj.readyState == 4) && (httpObj.status == 200)){
		var isEVTop=(document.getElementsByTagName('body')[0].className.match(/eventLayout/))?1:0;
		var dlLimit=2;//イベント概要リストの最大値制限
		if(isEVTop)dlLimit=100;
		var pvLimit="2009-01";//イベントカレンダーの戻れる年月の制限「YYYY-MM」形式
		var data = eval("("+httpObj.responseText+")");
		var resultData = "";
		if(isEVTop){
			resultData+= '<div class="section"><h2>'+data.evMon+'</h2>';
		}else{
			resultData += '<h4>'+data.evMon+'</h4>';
			//resultData += '<h4><a href="#" onclick="loadData(\'eventCalender\',null,null);"'+data.evMon+'</a></h4>';
		}
		
		var ym=data.evMon.match(/(\d+)/g);
		var pm=Array(ym[0],parseInt(ym[1],10)-1);
		if(pm[1]==0){pm[0]=parseInt(ym[0],10)-1;pm[1]=12;}
		var nm=Array(ym[0],parseInt(ym[1],10)+1);
		if(nm[1]==13){nm[0]=parseInt(ym[0],10)+1;nm[1]=1;}
		resultData+='<ul>';
		if(pvLimit!=frm(pm))resultData+='<li class="prev"><a href="#" onclick="loadData(\'eventCalender\',\''+ frm(pm) +'\',null);return false;">&laquo; 前月</a></li>';
		resultData+='<li class="next"><a href="#" onclick="loadData(\'eventCalender\',\''+ frm(nm) +'\',null);return false;">翌月 &raquo;</a></li>';
		resultData+='</ul>';

		var sdate = new Date(ym[0], ym[1]-1, 1);
		var edate = new Date(ym[0], ym[1], 0);
		var strDay = sdate.getDay();
		var endDay = edate.getDay();
		var sd=0;
		resultData+='<table cellspacing="0">';
		resultData+='<tr><th scope="col" class="sunday">日</th><th scope="col">月</th><th scope="col">火</th><th scope="col">水</th><th scope="col">木</th><th scope="col">金</th><th scope="col" class="saturday">土</th></tr>';
		var i=0;
		var endFlg=false;
		while(true){
			var cls=Array();
			var trs='';
			var tre='';
			if(i==0){
				cls[cls.length]="sunday";
				trs='<tr>';
			}else if(i==6){
				cls[cls.length]="saturday";
				tre='</tr>';
			}
			var cb="&nbsp;";
			if(!endFlg){
				if(sd==0){
					if(strDay==i){
						sd++;cb=sd;
					}
				}else{
					sd++;cb=sd;
				}
				if(sd>0&&isEV(data.evCal,sd-1)){
					cls[cls.length]="event";
				}
			}
			var clb=(cls.length>0)?' class="'+cls.join(' ')+'"':'';
			resultData+=trs+'<td'+clb+'>'+cb+'</td>'+tre;
			if(sd>27){
				if(endDay==i)endFlg=true;
			}
			i++;
			if(i==7){
				if(endFlg){break;}
				else{i=0;}
			}
		}
		resultData+='</table>';
		if(isEVTop){resultData+='</div>'+'<h3>'+data.evMon+'のイベント</h3>';}
		if(data.evLis.length>0){
			resultData+='<dl>';
			for(var i=0; i<data.evLis.length && i<dlLimit; i++){
				var elDate = data.evLis[i].elDate;
				var elSum = data.evLis[i].elSum;
				var elUri = data.evLis[i].elUri;
				resultData += '<dt>' + elDate + '</dt><dd><a href="' + elUri + '">' + elSum + '</a></dd>';
			}
			resultData+='</dl>';
		}else{
			if(isEVTop){resultData+='<p>イベントはありません。</p>';}
		}
		if(!isEVTop){resultData+='<p class="toList"><a href="/stiupdates/event2/">一覧 &raquo;</a></p>';}
		var tgt=document.getElementById("eventCalender");
		if(tgt)tgt.innerHTML = resultData;
	}
}
function frm(ar){
	var ret=new Array();
	ret[0]=formatter(ar[0],4,0);
	ret[1]=formatter(ar[1],2,0);
	return ret.join('-');
}
function formatter(n,k,p){
	var s=n.toString();
	while(s.length<k){
		s=p.toString()+s.toString();
	}
	return s;
}
function isEV(ar, d){
	for(var i=0;i<ar.length;i++){
		if(ar[i]==d+1)return true;
	}
	return false;
}
function loadData(objName,p1,p2){
	var o=xObj[objName];
	httpObj = createXMLHttpRequest(o.func);
	if(!httpObj || (!window.opera && navigator.appName == "Microsoft Internet Explorer" ? (window.createPopup ? 6 : 5) : 0)==5){error(objName);return false;}
	var q=(p1!=null)?'&yym='+p1:'';
	httpObj.open("GET",o.datauri+'?cache='+(new Date()).getTime()+q,true);
	httpObj.send(null);
}
function error(msg){
	if(msg=='eventCalender'){
//		alert("error!!");
	}
}
function loadDataz(msg,p1,p2){
	alert('|'+msg+'|'+p1+'|'+p2+'|');
}
function createXMLHttpRequest(cbFunc){
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject){
		XMLhttpObject.onreadystatechange = cbFunc;
	}
	return XMLhttpObject;
}

