//function buildCal(m, y, cM, cH, cDW, cD, brdr, d, L){//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=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? d : d //DD added//dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;//var t='<div class="'+cM+'"><table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';//t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</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<=42;i++){//var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';////  if (d=1) //// alert("x= " + x + "  scanfortoday=" + scanfortoday + "  scanfortoday  + L=" + (Number(scanfortoday) + Number(L)) );//if (x==scanfortoday || ( x > scanfortoday && x < Number(scanfortoday) + Number(L) )   )     //DD added //x='<span id="today">'+x+'</span>' //DD added//t+='<td class="'+cD+'">'+x+'</td>';//if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';//}//return t+='</tr></table></div>';//}function buildCal(m, y, cM, cH, cDW, cD,cDNM,brdr, d, L){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//************** Create a two dimensional array to track the training date and it's Month *****************//var dateAndMonthArray = new Array();/**** The oLDate is calculated to know the index of 1st of 	  coming month in dateAndMonthArray oLDate is used only	  if isMonthChange condition is true	***/dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;var oLDate = getTrainingSchedule(dateAndMonthArray,d,m,y,oD,L,dim);var t='<div class="'+cM+'"><table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center">';t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</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">';/********** check if month change is required ***********/var startDate = new Date(y,m-1,d);/** 	Check if the start date is friday then we need to     add two extra dates as we are including saturday     and sunday **/if(startDate.getDay()==5){	var tDays = Number(d) + Number((Number(L)+2)-1);}else{	var tDays = Number(d) + Number(L-1);}var monthValue=m;var isMonthChange = 'false';if(tDays > dim[m-1]){	isMonthChange = 'true';}for(i=1;i<=42;i++){//var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';var isNextMonth = 'false';var isTrainingDate ='false';/**	if a month change is there, use first condition 	to get and compare the value of x from dateAndMonthArray**/if(isMonthChange == 'true'){	var x=(i-oD.od>=0)? i-oD.od+1 : '&nbsp;';	//********** This Condition is uesd to check for month change ***********/	if((i-oD.od >= dim[m-1]))	{		monthValue = Number(m) +1;		x = x - dim[m-1];		var trainingdate = dateAndMonthArray[oLDate][0];			if(x==trainingdate)		{			if((dateAndMonthArray.length-1) > oLDate)			{				oLDate = oLDate + 1;			}			isNextMonth = 'true';		}	}	else	{		isNextMonth = 'false';	}}else{	var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : '&nbsp;';}for(j=0;j<dateAndMonthArray.length;j++){	if((x==dateAndMonthArray[j][0] && dateAndMonthArray[j][1] == monthValue))	{		isTrainingDate ='true';	}}/********************** Check if the date is training date and month is next month of current month and set the bagroundcolor *********/if(isTrainingDate=='true' && isNextMonth=='false'){		x='<span id="today">'+x+'</span>' //DD added}else if(isTrainingDate=='true' && isNextMonth=='true'){		x='<span id="dayNextMonth">'+x+'</span>' //DD added}if(isNextMonth=='true'){	t+='<td class="'+cDNM+'">'+x+'</td>';}else{	t+='<td class="'+cD+'">'+x+'</td>';}	if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';}return t+='</tr></table></div>';}function getTrainingSchedule(dateAndMonthArray,d,m,y,oD,L,dim){	var monthValue = m;	dateAndMonthArray[0] = new Array(2);	dateAndMonthArray[0][0] = d;	dateAndMonthArray[0][1] = monthValue;	var currentDate = new Date(y, m-1, d);	var lastDate = d;	var oLDate = 0;		var loopCount = L;	//************** Populate this dateAndMonthArray for Training schedules and month values ********************// 	for(i=1;i<loopCount;i++)	{		dateAndMonthArray[i] = new Array(2);				if(lastDate==dim[m-1])		{			monthValue = Number(monthValue)+1;			if(monthValue > 12)			{				currentDate.setYear(Number(y)+1);				currentDate.setDate(1);				currentDate.setMonth(0);			}			else			{				currentDate.setYear(y);				currentDate.setDate(1);				currentDate.setMonth(monthValue-1);			}					if(currentDate.getDay()==6)			{				dateAndMonthArray[i][0] = 3;				dateAndMonthArray[i][1] = monthValue;				lastDate = 3;				loopCount = Number(loopCount)-2;			}			else			{				dateAndMonthArray[i][0] = 1;				dateAndMonthArray[i][1] = monthValue;				lastDate = 1;			}			oLDate = i;		}		else		{			//--- This condition is used to skip saturdays and sundays from the training schedule -----			if (currentDate.getDay()==5)			{				lastDate = Number(lastDate)+3;												if(lastDate > dim[m-1])				{					monthValue = Number(monthValue)+1;										if(monthValue > 12)					{							currentDate.setYear(Number(y)+1);							currentDate.setDate(currentDate.getDate()+3);							currentDate.setMonth(0);					}					else					{							currentDate.setYear(y);							currentDate.setDate(currentDate.getDate()+3);							currentDate.setMonth(monthValue-1);					}										dateAndMonthArray[i][0] = currentDate.getDate();					dateAndMonthArray[i][1] = monthValue;					lastDate = currentDate.getDate();					oLDate = i;				}				else				{					dateAndMonthArray[i][0] = Number(lastDate);					dateAndMonthArray[i][1] = monthValue;					currentDate.setDate(currentDate.getDate()+3);				}				loopCount = Number(loopCount)-2;			}			else			{				dateAndMonthArray[i][0] = Number(lastDate)+1;				dateAndMonthArray[i][1] = monthValue;				lastDate = Number(lastDate)+1;				currentDate.setDate(currentDate.getDate()+1);						}				}	}	return oLDate;}
