//PDT.Web.UI.Controls is PdtDatePicker JavaScript function (v1.0)
//Start----------------------------------------------------------------
var PDT_PdtDatePicker_gdCtrl = new Object();
var PDT_PdtDatePicker_goSelectTag = new Array();
var PDT_PdtDatePicker_gcGray = "#808080";
var PDT_PdtDatePicker_gcToggle = "#FFFF00";
var PDT_PdtDatePicker_gcred = "#FF0000";
var PDT_PdtDatePicker_gcBG = "#F8F9EE";
var PDT_PdtDatePicker_gcGreen = "#00FF00"

var PDT_PdtDatePicker_gdCurDate = new Date();
var PDT_PdtDatePicker_giYear = PDT_PdtDatePicker_gdCurDate.getFullYear();
var PDT_PdtDatePicker_giMonth = PDT_PdtDatePicker_gdCurDate.getMonth()+1;
var PDT_PdtDatePicker_giDay = PDT_PdtDatePicker_gdCurDate.getDate();

var PDT_PdtDatePicker_gMonths = new Array("&nbsp;一月","&nbsp;二月","&nbsp;三月","&nbsp;四月","&nbsp;五月","&nbsp;六月","&nbsp;七月","&nbsp;八月","&nbsp;九月","&nbsp;十月","十一月","十二月");

with (document)
{
    write("<Div id='PDT_PdtDatePicker_VicPopCal' onclick='event.cancelBubble=true' style='POSITION:absolute;visibility:hidden;border:1px solid #a9a9a9;z-index:100;'>");
    write("<table border='0' bgcolor='#F8F9EE'>");
    write("<TR>");
    write("<td valign='middle' align='center'><input type='button' name='PDT_PdtDatePicker_PrevMonth' value='＜' style='height:20;width:20' onClick='fPDT_PdtDatePicker_PrevMonth()'>");
    write("&nbsp;<SELECT name='PDT_PdtDatePicker_tbSelYear' onChange='PDT_PdtDatePicker_fUpdateCal(PDT_PdtDatePicker_tbSelYear.value, PDT_PdtDatePicker_tbSelMonth.value)' style='font-color:#000080;width:70;border:1 solid #99CCFF; font-size:9pt; background-color:#F8F9EE' Victor='Won'>");
    for(i=1900;i<=2050;i++)
	    write("<OPTION value='"+i+"'>"+i+"年</OPTION>");
    write("</SELECT>");
    write("&nbsp;<select name='PDT_PdtDatePicker_tbSelMonth' onChange='PDT_PdtDatePicker_fUpdateCal(PDT_PdtDatePicker_tbSelYear.value, PDT_PdtDatePicker_tbSelMonth.value)'  style='font-color:#000080;width:70;border:0 solid #99CCFF; font-size:9pt; background-color:#F8F9EE' Victor='Won'>");
    for (i=0; i<12; i++)
	    write("<option value='"+(i+1)+"'>"+PDT_PdtDatePicker_gMonths[i]+"</option>");
    write("</SELECT>");
    write("&nbsp;<input type='button' name='PDT_PdtDatePicker_PrevMonth' value='＞' style='height:20;width:20' onclick='PDT_PdtDatePicker_fNextMonth()'>");
    write("</td>");
    write("</TR><TR>");
    write("<td align='center'>");
    write("<DIV style='background-color:blue'><table border='0' cellspacing='0' cellpadding='0' width='100%' bgcolor='blue'><tr><td><table border='0' cellspacing='1' width='100%' cellpadding='1'>");
    PDT_PdtDatePicker_fDrawCal(PDT_PdtDatePicker_giYear, PDT_PdtDatePicker_giMonth, 12, 12);
    write("</table></td></tr></table></DIV>");
    write("</td>");
    write("</TR><TR><TD align='center'>");
    write("<span style='cursor:hand; font-size:9pt' onclick='PDT_PdtDatePicker_fSetDate(PDT_PdtDatePicker_giYear,PDT_PdtDatePicker_giMonth,PDT_PdtDatePicker_giDay)' onMouseOver='this.style.color=PDT_PdtDatePicker_gcred' onMouseOut='this.style.color=0'>今天："+PDT_PdtDatePicker_giYear+"-"+PDT_PdtDatePicker_giMonth+"-"+PDT_PdtDatePicker_giDay+"</span>&nbsp;&nbsp;");
    write("<span style='cursor:hand; font-size:9pt' onclick='PDT_PdtDatePicker_fClearInput()' onMouseOver='this.style.color=PDT_PdtDatePicker_gcGray' onMouseOut='this.style.color=0'>消除</span>&nbsp;&nbsp;");
    write("<span style='cursor:hand; font-size:9pt' onclick='PDT_PdtDatePicker_fHideCalendar()' onMouseOver='this.style.color=PDT_PdtDatePicker_gcred' onMouseOut='this.style.color=0'>关闭</span>");
    write("</TD></TR>");
    write("</TABLE></Div>");
    write("<SCRIPT event=onclick() for=document>PDT_PdtDatePicker_fHideCalendar()<" + "/SCRIPT>");
}

function PDT_PdtDatePicker_fPopCalendar(popCtrl, dateCtrl)
{
    event.cancelBubble=true;
    PDT_PdtDatePicker_gdCtrl = dateCtrl;
    PDT_PdtDatePicker_fSetYearMon(PDT_PdtDatePicker_giYear, PDT_PdtDatePicker_giMonth);
    var point = PDT_PdtDatePicker_fGetXY(popCtrl);
    with (PDT_PdtDatePicker_VicPopCal.style)
    {
  	    left = point.x;
	    top  = point.y+popCtrl.offsetHeight;
	    //width = PDT_PdtDatePicker_VicPopCal.offsetWidth;
	    //height = PDT_PdtDatePicker_VicPopCal.offsetHeight;
	    PDT_PdtDatePicker_fToggleTags(point);
	    visibility = 'visible';
    }
    PDT_PdtDatePicker_VicPopCal.focus();
}

function PDT_PdtDatePicker_fSetDate(iYear, iMonth, iDay)
{
    PDT_PdtDatePicker_gdCtrl.value = iYear+"-"+iMonth+"-"+iDay;
    PDT_PdtDatePicker_fHideCalendar();
}

function PDT_PdtDatePicker_fHideCalendar()
{
    PDT_PdtDatePicker_VicPopCal.style.visibility = "hidden";
    for (i in PDT_PdtDatePicker_goSelectTag)                                        //在数组中循环取值，PDT_PdtDatePicker_goSelectTag为数组名
        PDT_PdtDatePicker_goSelectTag[i].style.visibility = "visible";
    PDT_PdtDatePicker_goSelectTag.length = 0;
}

function PDT_PdtDatePicker_fSetSelected(aCell)
{                                        
    var iOffset = 0;
    var iYear =parseInt(document.all("PDT_PdtDatePicker_tbSelYear").value);//动态改变文本框的年
    var iMonth = parseInt(document.all("PDT_PdtDatePicker_tbSelMonth").value);//动态改变文本框的月

    aCell.bgColor = PDT_PdtDatePicker_gcBG;
    with (aCell.children["PDT_PdtDatePicker_cellText"])
    {
  	    var iDay = parseInt(innerText);
  	    if (color==PDT_PdtDatePicker_gcGray)
		    iOffset = (Victor<10)?-1:1;
	    iMonth += iOffset;
	    if (iMonth<1) 
	    {
		    iYear--;
		    iMonth = 12;
	    }
	    else if (iMonth>12)
	    {
		    iYear++;
		    iMonth = 1;
	    }
    }
    PDT_PdtDatePicker_fSetDate(iYear, iMonth, iDay);
}

function PDT_PdtDatePicker_Point(iX, iY)
{
	this.x = iX;
	this.y = iY;
}

function PDT_PdtDatePicker_fBuildCal(iYear, iMonth) 
{
  var aMonth=new Array();
  for(i=1;i<7;i++)
  	aMonth[i]=new Array(i);

  var dCalDate=new Date(iYear, iMonth-1, 1);
  var iDayOfFirst=dCalDate.getDay();
  var iDaysInMonth=new Date(iYear, iMonth, 0).getDate();
  var iOffsetLast=new Date(iYear, iMonth-1, 0).getDate()-iDayOfFirst+1;
  var iDate = 1;
  var iNext = 1;

  for (d = 0; d < 7; d++)
	aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;
  for (w = 2; w < 7; w++)
  	for (d = 0; d < 7; d++)
		aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);
  return aMonth;
}

function PDT_PdtDatePicker_fDrawCal(iYear, iMonth, iCellHeight, iDateTextSize) 
{
    var WeekDay = new Array("日","一","二","三","四","五","六");
    var styleTD = " bgcolor='"+PDT_PdtDatePicker_gcBG+"' bordercolor='"+PDT_PdtDatePicker_gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style='font-size:9pt "+iDateTextSize+" 宋体;";

    with (document)
    {
	    write("<tr>");
	    for(i=0; i<7; i++)
		    write("<td "+styleTD+"color:green'>" + WeekDay[i] + "</td>");
	    write("</tr>");

  	    for (w = 1; w < 7; w++)
  	    {
		    write("<tr>");
		    for (d = 0; d < 7; d++) 
		    {
			    write("<td id=PDT_PdtDatePicker_calCell "+styleTD+"cursor:hand;font-size:9pt' onMouseOver='this.bgColor=PDT_PdtDatePicker_gcToggle' onMouseOut='this.bgColor=PDT_PdtDatePicker_gcBG' onclick='PDT_PdtDatePicker_fSetSelected(this)'>");
			    write("<font id=PDT_PdtDatePicker_cellText Victor='Liming Weng'> </font>");
			    write("</td>")
		    }
		    write("</tr>");
	    }
    }
}

function PDT_PdtDatePicker_fUpdateCal(iYear, iMonth) 
{
    myMonth = PDT_PdtDatePicker_fBuildCal(iYear, iMonth);
    var i = 0;
    for (w = 0; w < 6; w++)
        for (d = 0; d < 7; d++)
            with (PDT_PdtDatePicker_cellText[(7*w)+d]) 
            {
			    Victor = i++;
			    if (myMonth[w+1][d]<0) 
			    {
				    color = PDT_PdtDatePicker_gcGray;
				    innerText = -myMonth[w+1][d];
			    }
			    else
			    {
				    color = ((d==0)||(d==6))?"red":"black";
				    innerText = myMonth[w+1][d];
			    }
		    }
}
//该函数动态改变年后引起表格中的变化
function PDT_PdtDatePicker_fSetYearMon(iYear, iMon)
{
    document.all("PDT_PdtDatePicker_tbSelMonth").options[iMon-1].selected = true;
    for (i = 0; i < document.all("PDT_PdtDatePicker_tbSelYear").length; i++)
        if (document.all("PDT_PdtDatePicker_tbSelYear").options[i].value == iYear)
            document.all("PDT_PdtDatePicker_tbSelYear").options[i].selected = true;
    PDT_PdtDatePicker_fUpdateCal(iYear, iMon);//将改变厚的值传给PDT_PdtDatePicker_fUpdateCal（）以便以在表格中显示变化
}

function fPDT_PdtDatePicker_PrevMonth()
{
    var iMon = document.all("PDT_PdtDatePicker_tbSelMonth").value;
    var iYear = document.all("PDT_PdtDatePicker_tbSelYear").value;

    if (--iMon<1) 
    {
        iMon = 12;
        iYear--;
    }

    PDT_PdtDatePicker_fSetYearMon(iYear, iMon);
}

function PDT_PdtDatePicker_fNextMonth()
{
    var iMon = document.all("PDT_PdtDatePicker_tbSelMonth").value;
    var iYear = document.all("PDT_PdtDatePicker_tbSelYear").value;

    if (++iMon>12) 
    {
        iMon = 1;
        iYear++;
    }

    PDT_PdtDatePicker_fSetYearMon(iYear, iMon);
}

function PDT_PdtDatePicker_fToggleTags()
{
    with (document.all.tags("SELECT"))
    {
        for (i=0; i<length; i++)
 		    if ((item(i).Victor!="Won")&&PDT_PdtDatePicker_fTagInBound(item(i)))
 		    {
 			    item(i).style.visibility = "hidden";
 			    PDT_PdtDatePicker_goSelectTag[PDT_PdtDatePicker_goSelectTag.length] = item(i);
 		    }
    }
}

function PDT_PdtDatePicker_fTagInBound(aTag)
{
    with (PDT_PdtDatePicker_VicPopCal.style)
    {
  	    var l = parseInt(left);
  	    var t = parseInt(top);
  	    var r = l+parseInt(width);
  	    var b = t+parseInt(height);
	    var ptLT = PDT_PdtDatePicker_fGetXY(aTag);
	    return !((ptLT.x>r)||(ptLT.x+aTag.offsetWidth<l)||(ptLT.y>b)||(ptLT.y+aTag.offsetHeight<t));
    }
}

function PDT_PdtDatePicker_fGetXY(aTag)
{
    var oTmp = aTag;
    var pt = new PDT_PdtDatePicker_Point(0,0);
    do 
    {
  	    pt.x += oTmp.offsetLeft;
  	    pt.y += oTmp.offsetTop;
  	    oTmp = oTmp.offsetParent;
    } 
    while(oTmp.tagName!="BODY");
    pt.y += document.body.offsetTop;
    pt.x += document.body.offsetLeft;
   
    return pt;
}
function PDT_PdtDatePicker_fClearInput()
{
	PDT_PdtDatePicker_gdCtrl.value = "";
  	PDT_PdtDatePicker_fHideCalendar();
}
//end----------------------------------------------------------

