/* **************************	*/
/* SCRIPTS FOR CALENDAR PAGE 	*/
/* **************************	*/


/* LOAD EVENT DATE */
if(!par) par = ".";

/* EXTEND THE multiPager_Index CLASS */
if(!window.FUNCHLD) window.FUNCHLD = new Array();
function eventLoadDate (pName) {
	this.parent = multiPager_Index;
	this.parent(pName);
	
	
	// FUNCTION HOLDER
	var thisInd = FUNCHLD.length;
	FUNCHLD[thisInd] = this;

	/* SPECIAL: LOAD DATE */
	this.loadDate = function (pDte, pObjHL) {
		var basename	= this.name;
		var objPHolder	= document.getElementById("pnl" + basename + "__PHolder");
		var objMainPage 	= document.getElementById("pnl" + basename + "__content");
		var objLoader 	= eval("pnl" + this.name + "__loader");
		
		/* HIGHLIGHT THIS ONE */
		if(pObjHL)
			swtCalendarSelect.switchTo(pObjHL);
		
		/* MAKE OBJECT VISIBLE */
		if(objPHolder.display=="none") {
			objPHolder.display = "";
		}
		
		/* PASS THE PREVIOUS HTML */
		this.___prevHTML = objMainPage.innerHTML;
		
		/* OBJECT : PUT THE LOADING */
		objMainPage.innerHTML = "Loading...";

		
		/* HIDE NAVBAR */
		var tName = "EventList";
		var objNavBar = document.getElementById("pnl"+tName+"__btnNavBar");
		objNavBar.style.display = "none";

	
		/* LOAD THE EVENT FILE */
		objLoader.isLoaded = false;
		objLoader.document.location.href = par2 + "/_aloader/upcoming_list.php?date=" + pDte;
	
		/* SET THE UPDATER */
		clearInterval(this.___inc_checkLoad);
		this.___secsWaitingForData = 0;
		this.___inc_checkLoad  = setInterval("FUNCHLD["+thisInd+"].___checkTimeout()", 1000);
	} 
	

	// EVENTS ON TIMEOUT
	this.ontimeout = function() {
		/* SHOW NAVBAR */
		var tName = "EventList";
		var objNavBar = document.getElementById("pnl"+tName+"__btnNavBar");
		objNavBar.style.display = "";
	}
	
	
	// SHOW EVENTS ON LOAD
	this.onload = function() {
	
		var objLoader 	= eval("pnl" + this.name + "__loader");
		var obj 		= objLoader.document.getElementById("show");
		var objDest 	= document.getElementById("pnlCalendarEvents__content");
		
		// -- SET NEW CONTENT
		objDest.innerHTML = obj.innerHTML;
		
		
		
		
		// -- UPDATE THE EVENTS NAVBAR
		var tName		= "EventList";
		var tStr = "";
		
		// *  FOR PREVIOUS
		tStr += "<A CLASS='lst btnSpec btnPrev' ID='pnl"+tName+"__btnPrev' HREF='javascript:' ONCLICK='hndEventList.goBack();'>◄</A>";
		// *  THE PAGE NUMBERS
		for(i=1; i<=objLoader.numEvents; i++) {
			tStr+= "<A CLASS='lst' ID='pnl"+tName+"__btn"+i+"'  HREF='javascript:' ONCLICK='hndEventList.goTo("+i+");'>"+i+"</A>";
		}
		// *  THE NEXT
		tStr+= "<A CLASS='lst btnSpec btnNext'  ID='pnl"+tName+"__btnNext' HREF='javascript:' ONCLICK='hndEventList.goNext();'>►</A>"; 

		// *  UPDATE NAVBAR
		var objNavBar = document.getElementById("pnl"+tName+"__btnNavBar");
		objNavBar.style.display = "";
		objNavBar.innerHTML = tStr;
		hndEventList.maxPage = objLoader.numEvents;
		
		// *  SELECT PAGE 1
		hndEventList.goTo(1);
		
		
		
		// -- CLEAR INTERVAL
		clearInterval(this.___loadIncr);
	}
}




// ---------.---------.---------.---------.---------.---------.
/* THIS ONE WILL HUNT FOR EACH DATE FOR EXISTING EVENTS */
var loadEvent = function() {
loadEvent = new Object(); {
	// -- REFERENCE
	var thisObj = loadEvent;
	FUNCHLD[thisObj.thisInd = FUNCHLD.length] = thisObj;
	
	// -- VARIABLES
	thisObj.intH = 0;
	thisObj.calenName = "Calendar";
	
	thisObj.eventAni = new Array();			// EVENT ANIMATION FOR EACH DATE
	
	
	// -- SET REFERENCE FOR LOADER
	thisObj.objLoader = eval("pnlCalendarScan__loader");
	
	// -- LOAD THE EVENT
	thisObj.hunt = function (pYr, pMo) {
		// EACH DATE HAS ITS OWN ID BY THIS CONVENTION: cal_item_{name}
		
		
		
		// MAKE ADJUSTMENTS
		//if(pMo<10) pMo = "0" + pMo;
		
		// COMPILE DATE
		var pWholeDate = pYr + "-" + pMo;
		
		// LOAD THE FILE
		this.objLoader.isLoaded = false;
		this.objLoader.document.location.href = par2 + "/_aloader/upcoming_markAll.php?date=" + (pWholeDate);
		
		// ---------.---------.---------.
		// ADDED BY MJR 2008 JUN 3
		// SET THE PANEL TO DISPLAY A LOADING PAGE
		// ADD THE CALENDAR MESSAGE IF IT DOES NOT EXISTS
		if(!document.getElementById("pnl" + this.calenName  + "__msg")) {
			var objCalenMain 	= document.getElementById("pnl" + thisObj.calenName + "");
			var objCalenMsg 	= newnode = document.createElement("DIV");
			newnode.className	= "pnlMsgCover";
			newnode.id 		= "pnl" + this.calenName + "__msg";
			objCalenMain.appendChild(newnode);	
		} 
		
		
		// DISPLAY MESSAGE
		t_HTMLStr = 
			"<DIV CLASS='msg'><TABLE WIDTH=100% HEIGHT=100% CELLSPACING=0 CELLPADDING=0 BORDER=0><TD CLASS='msg_cont'>" +
				"Loading event lists..." +
			"</TD></TABLE></DIV>\n" +
			"<DIV CLASS='bg'>&nbsp;</DIV>";
		objCalenMsg.innerHTML = t_HTMLStr;

		
		
		// *  CLEAR PREVIOUS ANIMATIONS DONE
		for(var i in this.eventAni) {
			var t_temp;
			if(!isNaN(i * 1)) {
				if(t_temp = this.eventAni[i]) {
					t_temp.stopAll();
					t_temp = null;
					
				}
			}
		}
		
		
		// CHECK TIMEOUT
		clearInterval(thisObj.intH);
		thisObj.intH = setInterval("FUNCHLD["+this.thisInd+"].checkTimeout();", 100);
	}

	// -- CHECK IF THE DOCUMENT IS ALREADY LOADED
	thisObj.checkTimeout = function () {
		
		if(this.objLoader.isLoaded) {
			var isLoaded = true;
			
			var thisObj = this;
			clearInterval(thisObj.intH);

			
			// *  LINK EVERY VALID DATE SO THAT IT CAN SHOW THAT DAY'S EVENT ON CLICKING
			thisObj.onload();

			
			// *  CLEAR MESSAGE
			var objMsg = document.getElementById("pnlCalendar__msg");
			objMsg.style.display = "none";
			
			// *  CLEAR INTERVAL
		}
	}
	
	// -- ONLOAD EVENT
	thisObj.onload = function() {
		var thisObj = this;
	
		var eventArr = this.objLoader.DateWithEvents;
		for(var i in eventArr) {
			var obj = document.getElementById("cal_item_" + i);
			if(obj) {
				// -- MARK ALL DATES
				obj.href = "#";
				var t_str = obj.className.replace("hasLink","").split(" ").joinAndDiscardNulls("");
				obj.className = t_str + " hasLink";
				obj.i = i;
				obj.onclick = function() {
					mpiCalendarEvents.loadDate(thisObj.objLoader.baseDate+"-" + this.i, this); return false;
				}
				
				
				
				// -- WE WILL HAD TO PUT TEXT TO CALENDAR ITEM
				var t_name = "CalItem_" + i;
				
				// *  PREPARE
				var arrEv = eventArr[i];
				var t_html = "";
				
				// *  OBJECT FOR ANIMATION
				this.eventAni[i] = new this.createAniObj(t_name);
				
				// *  COMPILE
				this.eventAni[i].data = arrEv;
					
				// *  TO NODE
				var node = document.createElement("UL");
				node.className	= "evList";
				node.id		= "pnl"+t_name+"_Move";
				obj.appendChild(node);			
				
				// *  ANIMATION
				this.eventAni[i].start();
			}
		}
	}
	
	// -- CREATE EVENT ANIMATION OBJECT
	// 	EXTENSION FROM TICKER FADE CLASS
	thisObj.createAniObj = function(pName) {
		var that = new mjrTicker_Fade(pName);
		that.contentTemp = 
			"<!--t:event-->";
		that.displayTime 	= 3000;
		that.animDelay 	= 100;
		that.animAmount 	= 10;
		
		return that;
	}
}
}
