 var h;
 var w;
 var l;
 var t;
 var topMar = 2;
 var leftMar = -1;
 var space = 1;
 var isvisible;

//---------------------data select----------------------
var haveclick=0;
var The_Year,The_Day,The_Month;
var today;
var Firstday;
var eventInput;
var old_obj;
var dtObjHid = false;
today = new Date();
The_Year = today.getYear();
The_Month = today.getMonth() + 1;
The_Day = today.getDate();

Firstday = GetWeekday(The_Year,The_Month);
ShowCalender(The_Year,The_Month,The_Day,Firstday);

function showdate(){
	vSrc = window.event.srcElement;

    if (haveclick == 0){
		haveclick=1;
		old_obj=vSrc;
	}else{
		if (old_obj != vSrc ) {
			old_obj=vSrc;
			cal_ShowElement();
			haveclick=1;
		}else{
			haveclick=0;
		}
	}
	//alert('now haveclick is:'+haveclick);
	if (haveclick==1) {
		h = vSrc.offsetHeight;
		w = vSrc.offsetWidth;
		l = vSrc.offsetLeft + leftMar;
		t = vSrc.offsetTop + topMar + h + space;
		vParent = vSrc.offsetParent;
		while (vParent.tagName.toUpperCase() != "BODY")
		{
			l += vParent.offsetLeft;
			t += vParent.offsetTop;
			vParent = vParent.offsetParent;
		}
		try{
			eventInput = vSrc;
			cc.style.top = t-2;
			cc.style.left = l;

			cal_hideElementAll(cc);
			dateValue = vSrc.value;
			//alert(dateValue);
			dt = dateValue.split("-");
			cc.style.display = "";
		}catch(e){}

		if(dt.length==3){
			//chooseday(2006,2,12);
			dy = parseInt(dt[0],10);
			dm = parseInt(dt[1],10);
			dd = parseInt(dt[2],10);
			if(!(dy>0 && dm>0 && dm<13 && dd>0 && dd<32)){
				dt = new Date();
				dy = dt.getYear();
				dm = dt.getMonth();
				dd = dt.getDate();
				dm++;
			}
		}else{
			dt = new Date();
			dy = dt.getYear();
			dm = dt.getMonth();
			dd = dt.getDate();
			dm++;
		}
		fd = GetWeekday(dy,dm);
		//alert(dy+'--'+dm+'--'+dd);
		ShowCalender(dy,dm,dd,fd);
	}else{
		displaynone();
	}
}

function displaynone(){
	try{
		cc.style.display = "none";
		cal_ShowElement();
		haveclick=0;
	}catch(e){}
}
//
document.onclick=checkDtObj;
function checkDtObj(){
	//alert('ok');

	if (dtObjHid){

		displaynone();
	}
	dtObjHid=true;
}
function RunNian(The_Year)
{
	if ((The_Year%400==0) || ((The_Year%4==0) && (The_Year%100!=0)))
		return true;
	else
		return false;
}

function GetWeekday(The_Year,The_Month)
{
	dt  = new Date(The_Year, (The_Month-1), 1) ;
	return dt.getDay();
}

function chooseday(The_Year,The_Month,The_Day)
{
	var Firstday;
	var completely_date;
	if (The_Day!=0){
          if(The_Month<10)The_Month="0"+The_Month;
          if(The_Day<10)The_Day="0"+The_Day;

          completely_date = The_Year + "-" + The_Month + "-" + The_Day;
          eventInput.innerText = completely_date;
          eventInput.focus();
          displaynone();
	}
	Firstday = GetWeekday(The_Year,The_Month);
	ShowCalender(The_Year,The_Month,The_Day,Firstday);
}

function nextmonth(The_Year,The_Month)
{
	if (The_Month==12)
		chooseday(The_Year+1,1,0);
	else
		chooseday(The_Year,The_Month+1,0);
}

function prevmonth(The_Year,The_Month)
{
	if (The_Month==1)
		chooseday(The_Year-1,12,0);
	else
		chooseday(The_Year,The_Month-1,0);
}

function prevyear(The_Year,The_Month)
{
	chooseday(The_Year-1,The_Month,0);
}

function nextyear(The_Year,The_Month)
{
	chooseday(The_Year+1,The_Month,0);
}

function forHtmlSpecialChars(str){
   str=strReplace(str,"&","&amp;");
   str=strReplace(str,"\"","&quot;");
   str=strReplace(str,"<","&lt;");
   str=strReplace(str,">","&gt;");
   str=strReplace(str,"%20"," ");
   return str;
}

function strReplace(str,str1,str2){
   while(str.search(str1) > -1)
      str=str.replace(str1,str2);
   return str;
}

function ShowCalender(The_Year,The_Month,The_Day,Firstday)
{

	var showstr;
	var Month_Day;
	var ShowMonth;
	var today;
	today = new Date();
	switch (The_Month)
	{
		case 1 : ShowMonth = "一月"; Month_Day = 31; break;
		case 2 :
			ShowMonth = "二月";
			if (RunNian(The_Year))
				Month_Day = 29;
			else
				Month_Day = 28;
			break;
		case 3 : ShowMonth = "三月"; Month_Day = 31; break;
		case 4 : ShowMonth = "四月"; Month_Day = 30; break;
		case 5 : ShowMonth = "五月"; Month_Day = 31; break;
		case 6 : ShowMonth = "六月"; Month_Day = 30; break;
		case 7 : ShowMonth = "七月"; Month_Day = 31; break;
		case 8 : ShowMonth = "八月"; Month_Day = 31; break;
		case 9 : ShowMonth = "九月"; Month_Day = 30; break;
		case 10 : ShowMonth = "十月"; Month_Day = 31; break;
		case 11 : ShowMonth = "十一月"; Month_Day = 30; break;
		case 12 : ShowMonth = "十二月"; Month_Day = 31; break;
	}

	showstr = "";
	showstr = "<Table cellpadding=0 cellspacing=0 border=0  width=180 align=center valign=top>";
	showstr +=  "<tr height=18 bgcolor=#CCCCCC><td width=0 style='cursor:hand' title='上一年' onclick=prevyear("+The_Year+"," + The_Month + ")>&lt;&lt;</td><td width=0>&nbsp;" + The_Year + "&nbsp;</td><td width=0 title=下一年 onclick=nextyear("+The_Year+","+The_Month+")  style='cursor:hand'>&gt;&gt;</td><td width=0 style='cursor:hand' title='上一月' onclick=prevmonth("+The_Year+","+The_Month+")>&lt;&lt;</td><td width=100 align=center>" + ShowMonth + "</td><td width=0 onclick=nextmonth("+The_Year+","+The_Month+")  style='cursor:hand' title=下一月>&gt;&gt;&nbsp;</td></tr>";
	showstr +=  "<tr><td align=center width=100% colspan=6>";
	showstr +=  "<table cellpadding=0 cellspacing=1 bgcolor=silver width=100% >";
	showstr += "<Tr align=center bgcolor=black valign='bottom' style='padding-bottom:2px;padding-top:2px;color:white;'> ";
	showstr += "<td width=25>日</td>";
	showstr += "<td width=25>一</td>";
	showstr += "<td width=25>二</td>";
	showstr += "<td width=25>三</td>";
	showstr += "<td width=25>四</td>";
	showstr += "<td width=25>五</td>";
	showstr += "<td width=25>六</td>";
	showstr += "</Tr><tr height=12>";

	for (i=1; i<=Firstday; i++)
		showstr += "<Td height=10 align=center bgcolor=#EEEEEE>&nbsp;</Td>";

	for (i=1; i<=Month_Day; i++)
	{
		if ((The_Year==today.getYear()) && (The_Month==today.getMonth()+1) && (i==today.getDate()))
			bgColor = "#FF8040";
		else
			bgColor = "#EEEEEE";

		if (The_Day==i)
			bgColor = "#F7E831";

		showstr += "<td align=center bgcolor=" + bgColor + " style='cursor:hand;padding-top:2px;padding-bottom:2px;' onclick=chooseday(" + The_Year + "," + The_Month + "," + i + ")>" + i + "</td>";
		Firstday = (Firstday + 1)%7;
		if ((Firstday==0) && (i!=Month_Day))
			showstr += "</tr><tr height=10>";
	}

	if (Firstday!=0)
	{
		for (i=Firstday; i<7; i++)
			showstr += "<td align=center bgcolor=#EEEEEE>&nbsp;</td>";
		showstr += "</tr>";
	}

	showstr += "</tr></table></td></tr></table>";
	try{
		cc.innerHTML = showstr;
	}catch(e){}
	dtObjHid = false;

}
////----------------end data select----------------------

//-------------------hide select obj------------------------
var HideElementTemp = new Array();

function cal_hideElementAll(obj,loc_i){
	cal_HideElement("SELECT",obj,loc_i);
	cal_HideElement("IFRAME",obj,loc_i);
}

function cal_HideElement(strElementTagName,obj,loc_i){

	if (loc_i > 0) {
		width_t =150;
		height_t=loc_i*22;
	}else{
		width_t =150;
		height_t=140;
	}

	try{
		var showDivElement = obj;
		var calendarDiv = obj;
		var intDivLeft = l;
		var intDivTop = t;
		for(i=0;i<window.document.all.tags(strElementTagName).length; i++){
			var objTemp = window.document.all.tags(strElementTagName)[i];

			if(!objTemp||!objTemp.offsetParent)
				continue;
			var intObjLeft=cal_GetOffsetLeft(objTemp);
			var intObjTop=cal_GetOffsetTop(objTemp);

			if (strElementTagName == "IFRAME")
			{
				intObjTop = intObjTop - objTemp.clientHeight;
			}


			if( (intObjLeft+objTemp.clientWidth>intDivLeft)&&
			(intObjLeft<intDivLeft + width_t)&&
			(intObjTop+objTemp.clientHeight>intDivTop)&&
			(intObjTop<intDivTop + height_t) ){
				HideElementTemp[HideElementTemp.length]=objTemp;
				objTemp.style.visibility="hidden";
			}
		}
	}catch(e){
		alert(e.message)
	}
}

function cal_ShowElement(){
	var i;
	for(i=0;i<HideElementTemp.length; i++){
		var objTemp = HideElementTemp[i]
		if(!objTemp||!objTemp.offsetParent)
			continue;
		objTemp.style.visibility=''
	}
	HideElementTemp=new Array();
}

function cal_GetOffsetLeft(src){

	var l1,vParent1;
	l1 = src.offsetLeft + leftMar;
	vParent1 = src.offsetParent;
	while (vParent1.tagName.toUpperCase() != "BODY")
	{
		l1 += vParent1.offsetLeft;
		vParent1 = vParent1.offsetParent;
	}
	return l1;

}
function cal_GetOffsetTop(src){

	var t1,vParent1;
	h1 = src.offsetHeight;
	t1 = src.offsetTop + topMar + h1 + space;
	vParent1 = src.offsetParent;
	while (vParent1.tagName.toUpperCase() != "BODY")
	{
		t1 += vParent1.offsetTop;
		vParent1 = vParent1.offsetParent;
	}
	return t1;
}