var selDD;
var selM;
var selY;

function maxDays(mm, yyyy)
{ 
	
	var mDay;
	if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){ mDay = 30;}
  	else{
  		mDay = 31;
  		if(mm == 1){
   			if (yyyy/4 - parseInt(yyyy/4) != 0){mDay = 28;}
		   	else{mDay = 29;}
		}
  	}
	return mDay; 
}

function changeBg(id,calID)
{
	var currSel = document.getElementById("currSel" + calID);
	
	document.getElementById(currSel.value).style.backgroundColor = "#BDEDFF";
	document.getElementById(id).style.backgroundColor = "#90EE90";
	
	
	currSel.value = id;
}

function writeCalendar(calID,callBack)
{

		
		var now = new Date
		var dd = now.getDate()
		var mm = now.getMonth()
		var dow = now.getDay()
		var yyyy = now.getFullYear()
		
		
		var arrM = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
		var arrY = new Array()
			for (ii=0;ii<=4;ii++){
				arrY[ii] = yyyy + ii
			}
		var arrD = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
		
		var text = ""
		
			var dd = now.getDate()
			var mm = now.getMonth()	
			var yyyy = now.getFullYear() 
			selDD = dd
			selM = mm
			selY = yyyy
			


		text += "<table cellspacing=0 cellpadding='0' border=1>"
		
		text += "<tr><td>"
		text += "<table width=50% cellpadding='0'><tr>"
		text += "<td align=left>"
		text += "<select name=\"selMonth"+ calID +"\" id=\"selMonth"+ calID +"\" onChange=\"changeCal('"+ calID + "','" + callBack + "')\">"
			for (ii=0;ii<=11;ii++)
			{
				if (ii==selM){text += "<option value= " + ii + " Selected>" + arrM[ii] + "</option>" }
				else if(ii==mm){text += "<option value= " + ii + " Selected>" + arrM[ii] + "</option>"}
				else{text += "<option value= " + ii + ">" + arrM[ii] + "</option>"}
			}
		text += "</select>"
		text += "</td>"
		
		text += "<td align=right>"
		text += "<select name=\"selYear"+ calID +"\" id=\"selYear"+ calID +"\" onChange=\"changeCal('"+ calID + "','" + callBack + "')\">"
	for (ii=0;ii<=4;ii++){
		
// 		if (ii==0){text += "<option value= " + arrY[ii] + " Selected>" + arrY[ii] + "</option>"}
                
                if(arrY[ii] == selY){text += "<option value= " + arrY[ii] + " Selected>" + arrY[ii] + "</option>"}
		else{text += "<option value= " + arrY[ii] + ">" + arrY[ii] + "</option>"}
	}
text += "</select>"
text += "</td>"
text += "</tr></table>"
text += "</td></tr>"

text += "<tr><td>"
text += "<table border=0 cellpadding='0'>"
text += "<tr>"
	for (ii=0;ii<=6;ii++){
		text += "<td align=\"center\"><span class=\"label\"><font size='1'>" + arrD[ii] + "</span></font></td>"
	}
text += "</tr>"

aa = 0

	for (kk=0;kk<=5;kk++){
		text += "<tr>"
		for (ii=0;ii<=6;ii++){
			text += "<td align=center \"width=10%\"><span id=\"sp"+ calID + aa + "\" onClick=\"changeBg(this.id,'"+ calID +"')\"><font size='1'></font></span></td>"
			aa += 1
		}
		text += "</tr>"
	}
text += "</table>"
text += "</td></tr>"
text += "</table>"
text += "<input type=\"hidden\" id=\"currSel"+ calID +"\" value=\"\">";

document.write(text)
changeCal(calID,callBack)

}


function changeCal(calID,callBack){

var now = new Date;
var dd = now.getDate();
var mm = now.getMonth();
var dow = now.getDay();
var yyyy = now.getFullYear();
	
var currM = parseInt(document.getElementById("selMonth"+ calID).value);
var prevM;
	if (currM!=0){prevM = currM - 1;} else{prevM = 11;}

var currY = parseInt(document.getElementById("selYear"+ calID).value);


var mmyyyy = new Date();
mmyyyy.setFullYear(currY,currM,1);

var day1 = mmyyyy.getDay();
	if (day1 == 0){day1 = 7;}

var arrN = new Array(41);
var aa;

	for (ii=0;ii<day1;ii++){arrN[ii] = maxDays((prevM),currY) - day1 + ii + 1;}

	aa = 1;
	for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){	
		arrN[ii] = aa;
		aa += 1;
	}
	
	aa = 1;
	for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
		arrN[ii] = aa;
		aa += 1;
	}

	for (ii=0;ii<=41;ii++){document.getElementById("sp"+ calID + ii).style.backgroundColor = "#BDEDFF";}

var dCount = 0;
var month = currM + 1;
	for (ii=0;ii<=41;ii++){		
		if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
			clearInnerHTML(document.getElementById("sp"+ calID + ii));
			document.getElementById("sp"+ calID + ii).className = "c3";
		}
		else{

                  	var setDate = arrN[ii] + '/' + month + '/' + currY ;

                  	if(parseInt(arrN[ii]) < 10){var linkDay = "0" + arrN[ii];}else{var linkDay = arrN[ii];}
                  	if(parseInt(month) < 10){var linkMonth = "0" + month;}else{var linkMonth = month;}
                  	var linkDate = linkDay + '/' + linkMonth + '/' + currY ;
			
			if(!empty(callBack)){var callBackText = "onClick=\""+ callBack + "('" + linkDate + "');\"";}
			
                  	document.getElementById("sp" + calID + ii).innerHTML = "<a href=\"javascript:;\" "+ callBackText +"><font size='1'>" + arrN[ii]+ "</a>"
                  
  			if ((dCount==0)||(dCount==6)){document.getElementById("sp"+ calID + ii).className = "c2";}
			else{document.getElementById("sp"+ calID + ii).className = "c1";}
			
 			if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){document.getElementById("sp"+ calID + ii).style.backgroundColor="#90EE90"; document.getElementById("currSel" + calID).value = "sp"+ calID + ii;}
			
		}
		
		dCount += 1;
		if (dCount>6){dCount=0}
	}
}
 

