var i=0;
var eventIds=new Array();
var eventStartDate=new Array();
var eventEndDate=new Array();
var eventStartdate=new Array();
var eventEndDate=new Array();
var eventId="";
var xmlHttp=null;
var calenderMonth="";
var calenderYear="";

var previousMonth="";
var nextMonthValue="";
var previousYearValue="";
var nextYearValue="";

function getEventCalendar(day,month,year,blockId)
{
	var eventCalendarBlock = document.getElementById(blockId);
	var j=buildEventCalendar(month ,year,day, "main", "month", "daysofweek", "days", 1,eventIds,eventStartDate,eventEndDate);
	eventCalendarBlock.innerHTML = j;
}
			
function addEventForCalendar(eventId,startdate,endDate)
{
	eventIds[i]=eventId;
	eventStartDate[i]=startdate;
	eventEndDate[i]=endDate;
	i++;
}

function buildEventCalendar(m, y,day, cM, cH, cDW, cD, brdr,eventIdList,startDate,endDate)
{
	convertIntoDateFormat(startDate,endDate);
	var index=0;
	var mn=['January','February','March','April','May','June','July','August','September','October','November','December'];
	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=day; //DD added
	nextMonthValue=m*1+1;
	previousMonth=m-1;
	previousYearValue=y;
	nextYearValue=y;
	if(previousMonth<1)
	{
		previousMonth=12;
		previousYearValue=y-1;
	}
	if(nextMonthValue>12)
	{
		nextMonthValue=1;
		nextYearValue=(y*1)+1;
	}
	dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
	
	var t='<div class="'+cM+'" style="width: 100%;"><table class="'+cM+'" cellpadding="0" border="'+brdr+'" cellspacing="0" width="90%"><tr align="center" style="border:0px;">';
	t+='<td class="'+cH+'" style="border-right-width:0px;"><a href="javascript:getEventList('+previousMonth+','+previousYearValue+');"><img src="images/pagenation/arrow_4.gif" title="Go to Previous Month" border="0px" /></a></td><td colspan="5" align="center" class="'+cH+'" style="border-right-width:0px;border-left-width:0px;">'+mn[m-1]+' - '+y+'</td><td style="border-left-width:0px;" class="'+cH+'"><a href="javascript:getEventList('+nextMonthValue+','+nextYearValue+');"><img src="images/pagenation/arrow.gif" title="Go to Next Month" border="0px" /></a></td></tr><tr align="center">';
	for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+"SMTWTFS".substr(s,1)+'</td>';
	t+='</tr><tr align="center">';
	for (i = 1; i <= 41; i++) 
	{
		var x = ((i - oD.od >= 0) && (i - oD.od < dim[m - 1])) ? i - oD.od + 1 : '&nbsp;';
		if (x >0) 
		{
			var noOfEvents=getNumberOfEvents(oD.getFullYear() + "-" + ((oD.getMonth()*1)+01) + "-" + x,eventIdList);
			if (noOfEvents>0) //DD added
			{
				x = "<span id='today' title='You have "+noOfEvents+" Event(s)'><a href=javascript:getEventDetail('"+eventId+"','"+noOfEvents+"') id='eventLink'>" + x + "</a></span>"; //DD added
			}
			else
			{
				if (x==scanfortoday) //DD added
					x='<span id="today" title="Today date">'+x+'</span>'
			}
		}
		t+='<td class="'+cD+'">'+x+'</td>';
		if (((i) % 7 == 0) && (i < 36)) 
		{
			t += '</tr><tr align="center">';
		}
	}
	t+='</tr></table></div>';
	return t+='</tr></table></div>';
}

function convertIntoDateFormat(startDate,endDate)
{
	
	for(var k=0;k<startDate.length;k++)
	{
		var tempStartDate = (startDate[k]).split('-');
		var tempEndDate = (endDate[k]).split('-');
		eventStartdate[k] = new Date(tempStartDate[0],(tempStartDate[1]-1),tempStartDate[2],0,0,0);
		eventEndDate[k] = new Date(tempEndDate[0],(tempEndDate[1]-1),tempEndDate[2],0,0,0);
	}
}

function getNumberOfEvents(currentDateValue,eventIdList)
{
	
	var noOfEvents=0;
	var idList="";
	var tempCurrentDate=(currentDateValue).split('-');
	var currentDate = new Date(tempCurrentDate[0],(tempCurrentDate[1]-1),tempCurrentDate[2],0,0,0);
	for (var k=0; k<eventStartdate.length; k++) 
	{
		if(currentDate >= eventStartdate[k] && currentDate<=eventEndDate[k])
		{
			noOfEvents++;
			idList+=eventIdList[k]+",";
		}
	}
	if(noOfEvents>0)
		eventId=idList.substring(0,(idList.length-1))
	return noOfEvents;
}

function getEventList(month,year)
{
	calenderMonth=month;
	calenderYear=year;
	i=0;
	eventIds=new Array();
	eventStartDate=new Array();
	eventEndDate=new Array();
	eventStartdate=new Array();
	eventEndDate=new Array();
	var corporateName=document.getElementById("corporateName");
	var url="eventCalendar.do?corporateName="+corporateName.value+"&month="+month+"&year="+year+"&from=public";
	if (window.XMLHttpRequest)
	{
 		xmlHttp = new XMLHttpRequest();
  		try 
  		{
			 xmlHttp.onreadystatechange = processEventList;
  				xmlHttp.open("GET", url, true); 
  		} 
  		catch (e) 
  		{
     		alert("Sorry Cannot connect to server 1");
  		}
		xmlHttp.send(null);
	} 
	else if (window.ActiveXObject) 
	{      
  		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 		if (xmlHttp) 
 		{
			try 
	  		{
				xmlHttp.onreadystatechange = processEventList;
	  			xmlHttp.open("GET", url, true); 
	  		} 
	  		catch (e) 
	  		{
	     		alert("Sorry Cannot connect to server 2");
	  		}
	        xmlHttp.send();
    	}
    }
}

function processEventList() 
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.responseText!='')
		{
			var eventDetail=xmlHttp.responseText.split("::::");
			for(var k=0;k<eventDetail.length-1;k++)
			{
				var eventValues=eventDetail[k].split(",");
				addEventForCalendar(eventValues[0],eventValues[1],eventValues[2]);
			}
		}
		getEventCalendar('',calenderMonth,calenderYear,'calendar');
	}
}




