358 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			358 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
<!-- saved from url=(0022)http://internet.e-mail -->
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
<title>
 | 
						|
日期选择
 | 
						|
</title>
 | 
						|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
						|
</head>
 | 
						|
<body onload="fload()" bgcolor="#CCCCCC">
 | 
						|
<script>
 | 
						|
    var gdCtrl = new Object();
 | 
						|
    var goSelectTag = new Array();
 | 
						|
    var gcGray = "#808080";
 | 
						|
    var gcToggle = "#C1E3CC";
 | 
						|
    var gcToggle1 = "#FF8080";
 | 
						|
    var gcBG = "#FFF9AE";
 | 
						|
    var gcBG1 = "#0066CC";
 | 
						|
    var previousObject = null;
 | 
						|
 | 
						|
 | 
						|
    var gdCurDate = new Date();
 | 
						|
    var giYear = gdCurDate.getFullYear();
 | 
						|
    var giMonth = gdCurDate.getMonth() + 1;
 | 
						|
    var giDay = gdCurDate.getDate();
 | 
						|
 | 
						|
    var gCalMode = "";
 | 
						|
    var gCalDefDate = "";
 | 
						|
 | 
						|
    var CAL_MODE_NOBLANK = "2";
 | 
						|
 | 
						|
    function fSetDate(iYear, iMonth, iDay) {
 | 
						|
        //VicPopCal.style.visibility = "hidden";
 | 
						|
        if ((iYear == 0) && (iMonth == 0) && (iDay == 0)) {
 | 
						|
            gdCtrl.value = "";
 | 
						|
        } else {
 | 
						|
            iMonth = iMonth + 100 + "";
 | 
						|
            iMonth = iMonth.substring(1);
 | 
						|
            iDay = iDay + 100 + "";
 | 
						|
            iDay = iDay.substring(1);
 | 
						|
            gdCtrl.value = iYear + "-" + iMonth + "-" + iDay;
 | 
						|
        }
 | 
						|
 | 
						|
        for (i in goSelectTag)
 | 
						|
            goSelectTag[i].style.visibility = "visible";
 | 
						|
        goSelectTag.length = 0;
 | 
						|
 | 
						|
        window.returnValue = gdCtrl.value;
 | 
						|
        window.close();
 | 
						|
    }
 | 
						|
 | 
						|
    function HiddenDiv() {
 | 
						|
        var i;
 | 
						|
        VicPopCal.style.visibility = "hidden";
 | 
						|
        for (i in goSelectTag)
 | 
						|
            goSelectTag[i].style.visibility = "visible";
 | 
						|
        goSelectTag.length = 0;
 | 
						|
 | 
						|
    }
 | 
						|
    function fSetSelected(aCell) {
 | 
						|
        var iOffset = 0;
 | 
						|
        var iYear = parseInt(tbSelYear.value);
 | 
						|
        var iMonth = parseInt(tbSelMonth.value);
 | 
						|
 | 
						|
        aCell.bgColor = gcBG;
 | 
						|
        with (aCell.children["cellText"]) {
 | 
						|
            var iDay = parseInt(innerText);
 | 
						|
            if (color == gcGray)
 | 
						|
                iOffset = (Victor < 10) ? -1 : 1;
 | 
						|
 | 
						|
            /*** below temp patch by maxiang ***/
 | 
						|
            if (color == gcGray) {
 | 
						|
                iOffset = (iDay < 15) ? 1 : -1;
 | 
						|
            }
 | 
						|
            /*** above temp patch by maxiang ***/
 | 
						|
 | 
						|
            iMonth += iOffset;
 | 
						|
            if (iMonth < 1) {
 | 
						|
                iYear--;
 | 
						|
                iMonth = 12;
 | 
						|
            } else if (iMonth > 12) {
 | 
						|
                iYear++;
 | 
						|
                iMonth = 1;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        fSetDate(iYear, iMonth, iDay);
 | 
						|
    }
 | 
						|
 | 
						|
    function Point(iX, iY) {
 | 
						|
        this.x = iX;
 | 
						|
        this.y = iY;
 | 
						|
    }
 | 
						|
 | 
						|
    function fBuildCal(iYear, iMonth) {
 | 
						|
 | 
						|
        var aMonth = new Array();
 | 
						|
        for (i = 1; i < 7; i++)
 | 
						|
            aMonth[i] = new Array(7);
 | 
						|
 | 
						|
        for (i = 1; i < 7; i++) {
 | 
						|
            for (j = 0; j < 7; j++) {
 | 
						|
                aMonth[i][j] = new Array(2);
 | 
						|
                aMonth[i][j][0] = 0;
 | 
						|
                aMonth[i][j][1] = 1;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        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][0] = (d < iDayOfFirst) ? -(iOffsetLast + d) : iDate++;
 | 
						|
            if (isToday(iYear, iMonth, iDate - 1)) {
 | 
						|
                aMonth[1][d][1] = 0;
 | 
						|
 | 
						|
            }
 | 
						|
        }
 | 
						|
        for (w = 2; w < 7; w++) {
 | 
						|
            for (d = 0; d < 7; d++) {
 | 
						|
                aMonth[w][d][0] = (iDate <= iDaysInMonth) ? iDate++ : -(iNext++);
 | 
						|
 | 
						|
                if (isToday(iYear, iMonth, iDate - 1)) {
 | 
						|
                    aMonth[w][d][1] = 0;
 | 
						|
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return aMonth;
 | 
						|
    }
 | 
						|
 | 
						|
    function isToday(iYear, iMonth, iDate) {
 | 
						|
        var gdCurDate1 = new Date();
 | 
						|
        var giYear1 = gdCurDate.getFullYear();
 | 
						|
        var giMonth1 = gdCurDate.getMonth() + 1;
 | 
						|
        var giDay1 = gdCurDate.getDate();
 | 
						|
        if (iYear == giYear1 && iMonth == giMonth1 && giDay1 == iDate) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    function fDrawCal(iYear, iMonth, iCellHeight, sDateTextSize) {
 | 
						|
        var WeekDay = new Array("日", "一", "二", "三", "四", "五", "六");
 | 
						|
        var styleTD = " bgcolor='" + gcBG + "' bordercolor='" + gcBG + "' valign='middle' align='center' height='" + iCellHeight + "' style='font-size:12px; ";
 | 
						|
        with (document) {
 | 
						|
            write("<tr>");
 | 
						|
            write("<td colspan=7 align=center><font color=#ff3333 size=2> 日   </font><font size=2 color=#000000>一   二   三   四   五  </font><font size=2 color=#ff3333> 六 </font></td>");
 | 
						|
            write("</tr>");
 | 
						|
 | 
						|
            for (w = 1; w < 7; w++) {
 | 
						|
                write("<tr>");
 | 
						|
                for (d = 0; d < 7; d++) {
 | 
						|
 | 
						|
                    write("<td " + styleTD + "cursor:hand;' onMouseOver='this.bgColor=gcToggle' onMouseOut='this.bgColor=gcBG' onclick='fSetSelected(this)' id=cellTd>");
 | 
						|
                    write("<font id=cellText ></font>");
 | 
						|
                    write("</td>")
 | 
						|
                }
 | 
						|
                write("</tr>");
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    function fUpdateCal(iYear, iMonth) {
 | 
						|
        myMonth = fBuildCal(iYear, iMonth);
 | 
						|
        var i = 0;
 | 
						|
        for (w = 0; w < 6; w++) {
 | 
						|
            for (d = 0; d < 7; d++) {
 | 
						|
                with (cellText[(7 * w) + d]) {
 | 
						|
                    Victor = i++;
 | 
						|
                    if (myMonth[w + 1][d][0] < 0) {
 | 
						|
                        color = gcGray;
 | 
						|
                        innerText = -myMonth[w + 1][d][0];
 | 
						|
                    } else {
 | 
						|
                        if (d == 0) {
 | 
						|
                            color = "#996633";
 | 
						|
                        } else if (d == 6) {
 | 
						|
                            color = "#996633";
 | 
						|
                        } else {
 | 
						|
                            color = "#996633";
 | 
						|
                        }
 | 
						|
                        // End of above maxiang
 | 
						|
                        innerText = myMonth[w + 1][d][0];
 | 
						|
                    }
 | 
						|
                    if (myMonth[w + 1][d][1] == 0 && myMonth[w + 1][d][0] > 0) {
 | 
						|
                        color = "red";
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    function fSetYearMon(iYear, iMon) {
 | 
						|
        tbSelMonth.options[iMon - 1].selected = true;
 | 
						|
        for (i = 0; i < tbSelYear.length; i++)
 | 
						|
            if (tbSelYear.options[i].value == iYear)
 | 
						|
            tbSelYear.options[i].selected = true;
 | 
						|
        fUpdateCal(iYear, iMon);
 | 
						|
    }
 | 
						|
 | 
						|
    function fPrevMonth() {
 | 
						|
        var iMon = tbSelMonth.value;
 | 
						|
        var iYear = tbSelYear.value;
 | 
						|
        if (iMon == 1 && iYear == 1990) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        if (--iMon < 1) {
 | 
						|
            iMon = 12;
 | 
						|
            iYear--;
 | 
						|
        }
 | 
						|
 | 
						|
        fSetYearMon(iYear, iMon);
 | 
						|
    }
 | 
						|
 | 
						|
    function fNextMonth() {
 | 
						|
        var iMon = tbSelMonth.value;
 | 
						|
        var iYear = tbSelYear.value;
 | 
						|
        if (iMon == 12 && iYear == 2049) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        if (++iMon > 12) {
 | 
						|
            iMon = 1;
 | 
						|
            iYear++;
 | 
						|
        }
 | 
						|
 | 
						|
        fSetYearMon(iYear, iMon);
 | 
						|
    }
 | 
						|
 | 
						|
    function fToggleTags() {
 | 
						|
        with (document.all.tags("SELECT")) {
 | 
						|
            for (i = 0; i < length; i++)
 | 
						|
                if ((item(i).Victor != "Won") && fTagInBound(item(i))) {
 | 
						|
                item(i).style.visibility = "hidden";
 | 
						|
                goSelectTag[goSelectTag.length] = item(i);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    function fTagInBound(aTag) {
 | 
						|
        with (VicPopCal.style) {
 | 
						|
            var l = parseInt(left);
 | 
						|
            var t = parseInt(top);
 | 
						|
            var r = l + parseInt(width);
 | 
						|
            var b = t + parseInt(height);
 | 
						|
            var ptLT = fGetXY(aTag);
 | 
						|
            return !((ptLT.x > r) || (ptLT.x + aTag.offsetWidth < l) || (ptLT.y > b) || (ptLT.y + aTag.offsetHeight < t));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    function fGetXY(aTag) {
 | 
						|
        var oTmp = aTag;
 | 
						|
        var pt = new Point(0, 0);
 | 
						|
        do {
 | 
						|
            pt.x += oTmp.offsetLeft;
 | 
						|
            pt.y += oTmp.offsetTop;
 | 
						|
            oTmp = oTmp.offsetParent;
 | 
						|
        } while (oTmp.tagName != "BODY");
 | 
						|
        return pt;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    function fPopCalendar(popCtrl, dateCtrl, mode, defDate) {
 | 
						|
 | 
						|
        gCalMode = mode;
 | 
						|
        gCalDefDate = defDate;
 | 
						|
 | 
						|
        if (popCtrl == previousObject) {
 | 
						|
            if (VicPopCal.style.visibility == "visible") {
 | 
						|
                //HiddenDiv();
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
        previousObject = popCtrl;
 | 
						|
        gdCtrl = dateCtrl;
 | 
						|
        fSetYearMon(giYear, giMonth);
 | 
						|
        var point = fGetXY(popCtrl);
 | 
						|
 | 
						|
        if (gCalMode == CAL_MODE_NOBLANK) {
 | 
						|
            document.all.CAL_B_BLANK.style.visibility = "hidden";
 | 
						|
        } else {
 | 
						|
            document.all.CAL_B_BLANK.style.visibility = "visible";
 | 
						|
        }
 | 
						|
 | 
						|
        with (VicPopCal.style) {
 | 
						|
            left = point.x;
 | 
						|
            top = point.y + popCtrl.offsetHeight;
 | 
						|
            width = VicPopCal.offsetWidth;
 | 
						|
            height = VicPopCal.offsetHeight;
 | 
						|
            fToggleTags(point);
 | 
						|
            visibility = 'visible';
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    var gMonths = new Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月");
 | 
						|
 | 
						|
    with (document) {
 | 
						|
        write("<Div id='VicPopCal' style='OVERFLOW:hidden;POSITION:absolute;VISIBILITY:hidden;border:0px ridge;width:100%;height:100%;top:0;left:5px;z-index:100;overflow:hidden'>");
 | 
						|
        write("<table border='0'>");
 | 
						|
        write("<TR>");
 | 
						|
        write("<td valign='middle' align='center'><input type='button' name='PrevMonth' value='<' style='height:20;width:20;FONT:bold;background-color:#83B899;color:#ffffff' onClick='fPrevMonth()'>");
 | 
						|
        write("  <SELECT name='tbSelYear' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won'>");
 | 
						|
        for (i = 1990; i < 2050; i++)
 | 
						|
            write("<OPTION value='" + i + "'>" + i + "年</OPTION>");
 | 
						|
        write("</SELECT>");
 | 
						|
        write("  <select name='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won'>");
 | 
						|
        for (i = 0; i < 12; i++)
 | 
						|
            write("<option value='" + (i + 1) + "'>" + gMonths[i] + "</option>");
 | 
						|
        write("</SELECT>");
 | 
						|
        write("  <input type='button' name='PrevMonth' value='>' style='height:20;width:20;FONT:bold;background-color:#83B899;color:#ffffff' onclick='fNextMonth()'>");
 | 
						|
        write("</td>");
 | 
						|
        write("</TR><TR>");
 | 
						|
        write("<td align='center'>");
 | 
						|
        write("<DIV style='background-color:#83B899'><table width='100%'border='0'>");
 | 
						|
        fDrawCal(giYear, giMonth, 20, '50');
 | 
						|
        write("</table></DIV>");
 | 
						|
        write("</td>");
 | 
						|
        write("</TR><TR><TD align='center'>");
 | 
						|
        write("<TABLE width='100%'><TR><TD align='center' width=50%>");
 | 
						|
        write("<B ID=\"CAL_B_BLANK\" style='color:" + gcBG1 + "; visibility:visible; cursor:hand; font-size:12px' onclick='fSetDate(0,0,0)' onMouseOver='this.style.color=gcToggle1' onMouseOut='this.style.color=gcBG1'>[清空]</B>");
 | 
						|
        write("</td><td algin='center' width=50%>");
 | 
						|
        write("<B style='color:" + gcBG1 + ";cursor:hand; font-size:12px' onclick='fSetDate(giYear,giMonth,giDay)' onMouseOver='this.style.color=gcToggle1' onMouseOut='this.style.color=gcBG1'>[" + giYear + "-" + giMonth + "-" + giDay + "]</B>");
 | 
						|
        write("</td></tr></table>");
 | 
						|
        write("</TD></TR>");
 | 
						|
        write("</TABLE></Div>");
 | 
						|
    }
 | 
						|
</script>
 | 
						|
 | 
						|
<script>
 | 
						|
function fload() {
 | 
						|
    fPopCalendar(document.getElementById("txt1"), document.getElementById("txt1")); 
 | 
						|
}
 | 
						|
 | 
						|
function fkeydown()
 | 
						|
{
 | 
						|
	if(event.keyCode==27){
 | 
						|
		event.returnValue = null;
 | 
						|
		window.returnValue = null;
 | 
						|
		window.close();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
document.onkeydown=fkeydown;
 | 
						|
</script>
 | 
						|
 | 
						|
<input type=text id="txt1" runat="server" style="display:none">
 | 
						|
</body>
 | 
						|
</html> |