﻿
var lastCellUpdated,currLoadDate,currLoadDateCellID,currLoadDateEventCellID,currLoadDateEventCellBgColor;
var retString,eventArray,monthNameArr,dayAppender,xmlhttp,aFlag;
currLoadDateEventCellBgColor="#ffffff";

retString = new String();
eventArray = new Array();
monthNameArr=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
dayAppender=new Array("th","st","nd","rd","th","th","th","th","th","th","th");
aFlag=0;

function getData(date_string,return_type,target_element,rType,key,fObj){
	//ask the webservice type file for the events data
	loadXMLDoc("resources/controls/content_calendarAction.aspx?m=get"+return_type+"",date_string,target_element,rType,key);
}

function getEventsContent(date_string,return_type,target_element,rType,key,fObj){
	//alert(aFlag+"init");
	//ask the webservice type file for the events data
	loadXMLDoc("resources/controls/content_calendarEventAction.aspx?m=get"+return_type+"&modID="+target_element+"",date_string,target_element,rType,key);
    timer=setInterval("updateModalHeight('"+target_element+"')",100);
    
    //ga analytics: start
    gaStrin=new String();
    gaStrin += "/od/calendar/"+date_string;
    var gaStrout = new String();
    gaStrout = gaStrin.replace(/[^a-zA-Z0-9/]+/g,'');
    //var odCalendarTracker = pageTracker._createEventTracker("ODCALENDAR");
    //odCalendarTracker._trackEvent(gaStrout);
    pageTracker._trackPageview(gaStrout);
    //ga analytics: stop
}

function getPOTDContent(date_string,return_type,target_element,rType,key,wdth){
    //ask the webservice type file for the potd string
	loadXMLDoc("resources/controls/content_potdAction.aspx?m=get"+return_type+"&modID="+target_element+"&potdWidth="+wdth+"",date_string,target_element,rType,key);

	pageTracker._trackPageview('/od/potd/');
}

function getIntroVideoContent(date_string,return_type,target_element,rType,key,wdth){
    //ask the webservice type file for the potd string
	loadXMLDoc("resources/controls/content_introVideoAction.aspx?m=get"+return_type+"&modID="+target_element+"&introVideoWidth="+wdth+"",date_string,target_element,rType,key);

	pageTracker._trackPageview('/od/introVideo/');
}


function updateModalHeight(pid){
currPanelID=new String("eventCount"+pid);
    if(aFlag==1 && document.getElementById(currPanelID))
    {
        modalElement=new String("modal_content_container_"+pid);
		//alert(parseInt(document.getElementById(currPanelID).innerHTML));
        if(parseInt(document.getElementById(currPanelID).innerHTML)>2){
            getPanelObj(modalElement).style.height="400px";
        }
	clearInterval(timer);
	aFlag=0;
    }
}


function loadXMLDoc(url,dte,te,rtype,aKey,f){

//initialze an activity flag

	targ=new String(te);
	stroutData=new String();
	returnType=new String(rtype);
	actionKey=new String(aKey);
		if(f){
			if(getNameValPairs(f)){
				stroutData+=getNameValPairs(f);
			}
		}

// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  xmlhttp.onreadystatechange=state_Change;
  
  	 if(rtype==0){
 	 	xmlhttp.open("GET",url+"&dateString="+dte,true);
	 	data=null;
 	 }
  	 if(rtype==1){
	 	xmlhttp.open('POST',url+"&dateString="+dte,true); 
	 	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
	 	data=stroutData;
	 }
	   xmlhttp.send(data); 


  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
    if (xmlhttp)
    {
    rndNum=Math.random();	//random number for IE url append. prevents IE caching apparently
    xmlhttp.onreadystatechange=state_Change;
		if(rtype==0){
    	xmlhttp.open("GET",url+"&dateString="+dte+"&"+rndNum,true);
    	xmlhttp.send();
		}
  	 	if(rtype==1){
	 	xmlhttp.open('POST',url+"&dateString="+dte+"&"+rndNum,true); 
	 	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
	 	data=stroutData;
		xmlhttp.send(data); 
	 	}
    }
  }
}

function state_Change()
{
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4){
		  // if "OK"
		  if (xmlhttp.status==200){
		  //continue processing here
		  		retString=xmlhttp.responseText;
		  }else{
		  		retString="Cannot complete the task";
		  }

            if(actionKey=="0")
            {
		 	eventArray=parseData(retString);
		 	updateCells(eventArray);
		 	}
            if(actionKey=="1")
            {
		 	drawEventList(retString,targ);
		 	aFlag=1;
		 	//document.getElementById("debug").innerHTML=retString;
		 	}


	}
}


function drawEventList(eventHtmlString,t){
    getPanelObj(t).innerHTML=eventHtmlString;
}


function parseData(data,trg){
	//the incoming response is a string like this:

	// releaseDateNoSlashes|eventReleaseDate|eventDesc|eventID|eventTitle|eventSubTitle|eventCategory|eventContentType|eventURL|cnt~
	
	//first split on the tilde, then pipe
	tildeString=new String(data);
	tildeSplit=tildeString.split("~");
	incomingArr=new Array();
	
	for(var t=0;t<tildeSplit.length;t++){
		pipeString=new String(tildeSplit[t]);
		pipeSplit=pipeString.split("|");
			for(var p=0;p<pipeSplit.length;p++){
				incomingArr[t]=new Array(pipeSplit[0],pipeSplit[1],pipeSplit[2],pipeSplit[3],pipeSplit[4],pipeSplit[5],pipeSplit[6],pipeSplit[7],pipeSplit[8],pipeSplit[9]);
		}
	}
	return incomingArr;
}


function inUsedDays(uArr,currDay){
	isUsed=false;
		for(var u=0;u<uArr.length;u++){
			if(uArr[u]==currDay){
				isUsed=true;
			}
		}
	return isUsed;
}

function updateCells(i){
    //update the calendar cells and insert a hyperlink for event days
	for(var a=0;a<i.length;a++){
		cellID=new String(i[a][0]);
		if(getPanelObj(cellID)){
        getPanelObj(cellID).innerHTML = createOnClickContent(cellID);
		}
	}
}

function createOnClickContent(cellID){
    //this takes the existing day number and turns it into 
    //a hyperlink which calls odEvent() with a date information string (ex. '8_3_2008')
    currentCellInnerHTML = getPanelObj(cellID).innerHTML;
    return "<a href=javascript:odEvent('"+cellID+"') class='subCalEventCell' onMouseOver='statusContent(3);return true;' onMouseOut='statusContent(2);return true;'>"+currentCellInnerHTML+"</a>";
}

function odEvent(cellID){
    eventDate = new String(cellID);
    createPanel(eventDate,550,0,objFac,"events",50);
}

function odPOTD(){
    createPanel(null,550,100,objFac,"potd",70);
}

function loadIntroVideo()
{
    createPanel(null,550,100,objFac,'introVideo',70);
}


function getPanelObj(p){
    //get a dom element obj from its ID (panel id)
	panelID=new String(p);
	panelObj=document.getElementById(panelID);
	return panelObj;
}

function getStartRangeMonth(val){
	return val+2;
}







function RemindMeEnter(evt,remindmeID,eventID) {
    evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    var form = target.form;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13) {
		 RemindMe(remindmeID,eventID);
            return false;
        
    }
    return true;
}  


function RemindMe(remindmeID,eventID)
{
	var input = document.getElementById(remindmeID+'Form_Input');
	if(input.value!='Enter Email')
	{
        //AJAX Call here
        loadXMLDoc("resources/controls/content_calendarEventReminder.aspx?eventID="+eventID+"&email="+input.value+"",'','',0,'');

        //then show "Reminder Set"
        RemindMeShow(remindmeID,'message');
	}
    else
    {
        alert('Please enter your email.');
    }
}
function RemindMeShow(remindmeID,show)
{
	var divButton = document.getElementById(remindmeID+'Button');
	var divForm = document.getElementById(remindmeID+'Form');
	var divMessage = document.getElementById(remindmeID+'Message');
	
	divButton.style.display="none";
	divForm.style.display="none";
	divMessage.style.display="none";
	if(show=="button")
	{
	divButton.style.display="";
	}
	if(show=="form")
	{
	divForm.style.display="";
	}
	if(show=="message")
	{
	divMessage.style.display="";
	}
}

function RemindMeOnFocus(input)
{
	input.value='';
}

function RemindMeOnBlur(input)
{
	if(input.value=='')
	{
	input.value='Enter Email';
	}
}


