var EventsPage=false;

function buildCal(m, y){
	var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
	
	var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
	oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st
	
	var todaydate=new Date() //DD added
	var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
	
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	var t='<table class="clsCalendarTable" cols="7"><tr>';
	t+='<td colspan="7" class="clsMonth">'+mn[m-1]+' - '+y+'</td></tr><tr>';
	for(s=0;s<7;s++)t+='<td class="clsTitle">'+wdays.substr(s,1)+'</td>';
	t+='</tr><tr">';
	for(i=1;i<=42;i++){
		var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';
		t+='<td '+ (x!='&nbsp;' ? 'id="oDay'+x+'"' : '') +' class="clsDay'+ (x==scanfortoday ? " clsToday" : "") +'">'+x+'</td>';
		if(((i)%7==0)&&(i<36))t+='</tr><tr>';
	}
	return t+='</tr></table>';
}

var nCurrentMonth, nCurrentYear;
function fMarkEvents(strEvents, m, y){
	nCurrentMonth=m;
	nCurrentYear=y;
	if(!strEvents) return;
	var arr=strEvents.split(",")
	for (var i=0; i<arr.length; i++){
		if(arr[i] && !isNaN(arr[i])){
			document.getElementById("oDay" + arr[i]).className="clsHasEvent"
			document.getElementById("oDay" + arr[i]).onclick=fShowEventsDate
			document.getElementById("oDay" + arr[i]).onmouseover=fPopUpEvent
			document.getElementById("oDay" + arr[i]).onmouseout=fPopUpEventHide
		}
	}
}


var oLastEventLayer;
function fPopUpEvent(e){
//	try{
		if(oLastEventLayer) oLastEventLayer.style.display="none";
		var oElem
		if (window.event)
			oElem = window.event.srcElement;
		else if (e) 
			oElem = e.target;
		else return;
	
		var tmp=(oElem.id).replace(/oDay/ig, "");
	
		var oDivToFloat=document.getElementById("oEvent" + tmp)
		oDivToFloat.style.top=fMousePozTop();
		oDivToFloat.style.left=fMousePozLeft()-180;
		oDivToFloat.style.display="block";
		oLastEventLayer=oDivToFloat;
//	}catch(e){}
}

function fMousePozTop(e) {
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageY)
		posy = e.pageY;
	else{
		if (e.clientX || e.clientY) posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return posy
}

function fMousePozLeft(e) {
	var posx = 0;
	if (!e) var e = window.event;
	if(e.pageX)
			posx = e.pageX;
	else{
		if (e.clientX || e.clientY) posx= e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
	}
	return posx
}


function fPopUpEventHide(){
	if(oLastEventLayer) oLastEventLayer.style.display="none";
}

function fShowEventsDate(e){
	var oElem
	if (window.event)
		oElem = window.event.srcElement;
	else if (e) 
		oElem = e.target;
	else return;
	//alert(oElem.id)
	var tmp=(oElem.id).replace(/oDay/ig, "");
	fShowEventsDateByDate(tmp)
}

function fShowEventsDateByDate(d){
	if(!EventsPage){
		location.href="/events.asp?d=" + d + "&m=" + nCurrentMonth + "&y=" + nCurrentYear
		return
	}
	fGetEvent(d,nCurrentMonth,nCurrentYear)
}

function ChangeCal(frm){
	document.getElementById('oCal').innerHTML=buildCal(frm.selMonth.value,frm.selYear.value)
	fGetEventsToMark(frm.selMonth.value,frm.selYear.value)
	//fMarkEvents(strEvents, frm.selMonth.value, frm.selYear.value)
}

function fPageCalendar(n,frm){
	var m=frm.selMonth.selectedIndex
	var y=frm.selYear.selectedIndex

	//alert("m=" + m + " ,y=" + y)
	m+=n
	if(m>frm.selMonth.options.length-1){
		m=0
		y++
	}
	if(m<0){
		m=11
		y--
	}
	if(y<0) y=0
	if(y>frm.selMonth.options.length-1)y=frm.selMonth.options.length-1
	//alert("m=" + m + " ,y=" + y)
	frm.selMonth.selectedIndex=m
	frm.selYear.selectedIndex=y
	ChangeCal(frm)
}

function fGetEventsToMark(sM, sY){
	if(sM && sY){
		//window.open("/AjaxFiles/CalendarMarks.asp?m=" + sM + "&y=" + sY)
		doAjaxRequest("/AjaxFiles/CalendarMarks.asp", {m:sM,y:sY,lang:CURRENT_LANG},{
						method:"POST",
						onSuccess:fGetEventsToMarkSuccess,
						onFailure:fGetEventsToMarkFailure
					});

	}
}
function fGetEventsToMarkSuccess(oReq){
	//alert(oReq.responseText)
	var xml = oReq.responseXML, oDoc = xml.documentElement, oNodes= oDoc.childNodes

	var sContent="", oLayerContainer=document.getElementById("EventLayers"), sMark=""


	for (var i=0; i<oNodes.length; i++){
		var sTmpTitle=fGetText(oNodes[i].childNodes[1])
		var sTmpDay=fGetText(oNodes[i].childNodes[0])
		sMark+=sTmpDay+","
		sContent+="<div id=\"oEvent"+ sTmpDay +"\" class=\"clsEventFloat\">" + sTmpTitle + "</div>"
	}
	oLayerContainer.innerHTML=sContent
	if(sMark){
		fMarkEvents(sMark, document.frmCal.selMonth.value, document.frmCal.selYear.value)
	}

	/*
	var xml = oReq.responseXML, oDoc = xml.documentElement, oNodes= oDoc.childNodes
	var siteNode = xml.selectSingleNode( "//result/text()");
	if(siteNode)siteNode=siteNode.nodeValue
	if(siteNode){
		fMarkEvents(siteNode, document.frmCal.selMonth.value, document.frmCal.selYear.value)
	}
	*/
}



function fGetEventsToMarkFailure(){
	alert("ERROR!")
}

function fGetEvent(sD,sM,sY){
	if(sD && sM && sY){
		//window.open("/AjaxFiles/CalendarXML.asp?d=" + sD + "&m=" + sM + "&y=" + sY)
		//	return

		doAjaxRequest("/ajaxfiles/CalendarXML.asp", {d:sD,m:sM,y:sY,lang:CURRENT_LANG,Rand:Math.random()},{
						method:"GET",
						onSuccess:ajaxSuccess,
						onFailure:ajaxFailure
					});
		document.getElementById("oEventsTitle").innerHTML=sD + "/" + sM + "/" + sY
	}
}
function fAddBREvent(str){
	if(!str)return ""
	return(str.replace(/\n/g,"<BR>").replace(/\r/g,""))
}

function ajaxSuccess(oReq){
	var xml = oReq.responseXML, oDoc = xml.documentElement, oNodes= oDoc.childNodes
	var sContent="", oEventContainer=document.getElementById("oEventContainer")

	//[ID] ,[sTitle] ,[dFromDate] ,[sHours]  ,[sLocation] ,[sWebSite] ,[sText] ,[sImg]

	for (var i=0; i<oNodes.length; i++){
		var sTmpTitle=fGetText(oNodes[i].childNodes[1])
		var sTmpDate=fGetText(oNodes[i].childNodes[2])
		var sTmpHours=fGetText(oNodes[i].childNodes[3])
		var sTmpLocation=fGetText(oNodes[i].childNodes[4])
		var sTmpWebsite=fGetText(oNodes[i].childNodes[5])
		var sTmpText=fGetText(oNodes[i].childNodes[6])
		var sTmpImg=fGetText(oNodes[i].childNodes[7])

		sContent+="\n<div class=\"clsIndexItem\">"
		sContent+="<h2>"+ sTmpTitle +"</h2>"
		if(sTmpImg) sContent+="<img class=\"clsFloatImage\" src=\"" + V_UPL_FILES + sTmpImg + "\" alt=\"\" />"
		sContent+="<h3>"+ sTmpDate
		if(sTmpHours) sContent+=",&nbsp;"+ sTmpHours   // time
		if(sTmpLocation) sContent+=",&nbsp;"+ sTmpLocation   // location
		sContent+="</h3>"
		sContent+="<div class=\"clsBody\">" + (sTmpText||"") +"</div>"
		if(sTmpWebsite) sContent+= "<div class=\"clsReadMore\"><a target=\"_blank\" href=\"" + sTmpWebsite + "\">" + sLinkText + " &raquo;</a></div>"
		sContent+="</div>"
	}
	oEventContainer.innerHTML=sContent
}

function ajaxFailure(){
	alert("Error occured") 
}

function fGetText(oNode){
	if(document.all)
		return oNode.text
	else
		return oNode.textContent
}

