var YearStr,MonthStr,DayStr,NowDayStr; var WeekStr,week,week_one; var WeekArr = new Array("日", "一", "二", "三","四", "五", "六"); var months = new Array ("1", "2", "3","4", "5", "6", "7", "8", "9","10", "11", "12"); var dt = new Date(); var showtype; var caleX = 0; var caleY = 0; YearStr = 2009; MonthStr = 01 ; NowDayStr = DayStr = 07; week = dt.getDay(); WeekStr = WeekArr[week]; document.write(""); function initCalendar(){ var CaleHTML=""; CaleHTML += "
"; CaleHTML += ""; CaleHTML += ""; CaleHTML += ""; CaleHTML += ""; CaleHTML += ""; CaleHTML += "
"; CaleHTML += "  "; CaleHTML += "
 
"; CaleHTML += ""; for(var i=0; i"; } CaleHTML += ""; CaleHTML += bodyCalendar(); CaleHTML += "

"; CaleHTML += "
 
"; CaleHTML += "
"; return CaleHTML; } function bodyCalendar(){ var ResultStr = ""; var tempStr = "" + MonthStr + "/1/" + YearStr; var d = new Date(tempStr); week_one = d.getDay(); for(var i=0;i=7 && BRStr%7==0){ if((i+1) == NowDayStr) ResultStr += ""+ eval(i+1) +""; else ResultStr += ""+ eval(i+1) +""; k=0; } else{ if((i+1) == NowDayStr) ResultStr += ""+ eval(i+1) +""; else ResultStr += ""+ eval(i+1) +""; k+=1; } } for(var i=0;i<7-k;i++){ ResultStr += ""; } ResultStr += ""; return ResultStr; } function prevMonth(){ MonthStr -= 1; if(MonthStr == 0){ MonthStr = 12; YearStr -= 1; } idCalendar.innerHTML = initCalendar(); } function nextMonth(){ MonthStr += 1; if(MonthStr > 12){ MonthStr = 1; YearStr += 1; } idCalendar.innerHTML = initCalendar(); } function TDMove(){ var obj = window.event.srcElement; obj.style.setAttribute("border", "#005AB5 1px solid"); } function TDOut(){ var obj = event.srcElement; if(parseInt(obj.innerText) == DayStr) obj.style.setAttribute("border","#006432 1px solid"); else if(parseInt(obj.innerText) == NowDayStr) obj.style.setAttribute("border","#ff0000 1px solid"); else obj.style.setAttribute("border","#ffffff 1px solid"); } var tobj; function showCalendar(stype){ showtype = stype; var obj = event.srcElement; var pobj = obj.parentElement; tobj = pobj.childNodes(0); v = tobj.value; if(v != ""){ pos = v.indexOf("-"); if(pos != -1 && pos == 4){ YearStr = parseInt(v.substring(0,pos)); v = v.substring(pos+1,v.length); } pos = v.indexOf("-"); if(pos != -1){ MonthStr = parseInt(v.substring(0,pos)); v = v.substring(pos+1,v.length); } if(v.length>0) DayStr = parseInt(v); } var objParent = obj.offsetParent; var left = obj.offsetLeft; var top = obj.offsetTop; while(objParent.tagName.toUpperCase() != "BODY"){ left += objParent.offsetLeft; top += objParent.offsetTop; objParent = objParent.offsetParent; } left += obj.offsetWidth; top += obj.offsetHeight; idCalendar.style.top = top+1; idCalendar.style.left = left-260; caleX = left - 260; caleY = top + 1; idCalendar.innerHTML = initCalendar(); idCalendar.style.display=""; hideElement("SELECT"); var left = event.clientX; var top = event.clientY; idCalendar.style.top = top+10; idCalendar.style.left = left-250; idCalendar.innerHTML = initCalendar(); idCalendar.style.display=""; } function TDClick(DayStr){ MonthStr=parseInt(MonthStr); DayStr=parseInt(DayStr); if(MonthStr<10) { MonthStr="0"+MonthStr; } if(DayStr<10) { DayStr="0"+DayStr; } if(showtype=="day"){ tobj.value = YearStr + "-" + MonthStr + "-" + DayStr; } else{ tobj.value = YearStr + "-" + MonthStr; } hideCalendar(); } function getCaleToSec(){ var dt; if(showtype=="day") dt = new Date(MonthStr+"/"+DayStr+"/"+YearStr); else dt = new Date(MonthStr+"/1/"+YearStr); var s = dt.getTime(); return s/1000; } function hideCalendar(){ idCalendar.style.display = "none"; showElement("SELECT"); } function C_MouseUp(){ if(idCalendar == null) return; var top = parseInt(idCalendar.style.top); var left = parseInt(idCalendar.style.left); var wi = idCalendar.offsetWidth; var he = idCalendar.offsetHeight; var x = event.clientX; var y = event.clientY; var x1 = left + wi; var y1 = top + he; if(x>x1||xy1||y (objLeft + obj.offsetWidth) || objLeft > (caleX + idCalendar.offsetWidth)) ; else if(objTop > (caleY + idCalendar.offsetHeight)) ; else if(caleY > (objTop + obj.offsetHeight)) ; else obj.style.visibility = "hidden"; } } function showElement(elmID){ for (i = 0; i < document.all.tags(elmID).length; i++){ obj = document.all.tags(elmID)[i]; if (! obj || ! obj.offsetParent) continue; obj.style.visibility = ""; } } function updateCalendar() { YearStr=update.year.options[update.year.selectedIndex].value; MonthStr=update.month.options[update.month.selectedIndex].value; idCalendar.innerHTML = initCalendar(); } document.onmouseup = C_MouseUp;