?? calendar.js
字號:
var gMonths = new Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
var WeekDay = new Array("日","一","二","三","四","五","六");
var strToday = "今天";
var strYear = "年";
var strMonth = "月";
var strDay = "日";
var splitChar = "-";
var startYear = 1920;
var endYear = 2010;
var dayTdHeight = 12;
var dayTdTextSize = 12;
var gcNotCurMonth = "#E0E0E0";
var gcRestDay = "#FF0000";
var gcWorkDay = "#444444";
var gcMouseOver = "#79D0FF";
var gcMouseOut = "#F4F4F4";
var gcToday = "#444444";
var gcTodayMouseOver= "#6699FF";
var gcTodayMouseOut = "#79D0FF";
var gdCtrl = new Object();
var goSelectTag = new Array();
var gdCurDate = new Date();
var giYear = gdCurDate.getFullYear();
var giMonth = gdCurDate.getMonth()+1;
var giDay = gdCurDate.getDate();
function checkColor(){
var color_tmp = (arguments[0]+"").replace(/\s/g,"").toUpperCase();
var model_tmp1 = arguments[1].toUpperCase();
var model_tmp2 = "rgb("+hextodec(arguments[1].substring(1,3))+","+hextodec(arguments[1].substring(1,3))+","+hextodec(arguments[1].substring(5))+")";
model_tmp2 = model_tmp2.toUpperCase();
if(color_tmp==model_tmp1 ||color_tmp==model_tmp2){ return true; }
return false;
}
function fPopCalendar(evt,popCtrl,dateCtrl){
var iYear = (dateCtrl.value.length==10?parseInt(dateCtrl.value.substring(0, 4)):giYear);
var iMonth = (dateCtrl.value.length==10?parseInt(dateCtrl.value.substring(5, 7)):giMonth);
evt.cancelBubble = true;
gdCtrl = dateCtrl;
fSetYearMon(iYear, iMonth);
var point = getobjectxy(popCtrl);
with($e("calendardiv").style){
top = (point.y+popCtrl.offsetHeight+1)+"px";
left = point.x+"px";
visibility = 'visible';
zindex = '99';
position = 'absolute';
}
$e("calendardiv").focus();
}
function fSetDate(iYear,iMonth,iDay){
var iMonthNew = new String(iMonth);
var iDayNew = new String(iDay);
if(iMonthNew.length<2) { iMonthNew = "0"+iMonthNew;}
if(iDayNew.length<2) { iDayNew = "0"+iDayNew; }
gdCtrl.value = iYear+splitChar+iMonthNew+splitChar+iDayNew;fHideCalendar();
}
function fHideCalendar(){
$e("calendardiv").style.visibility = "hidden";
for(var i=0;i<goSelectTag.length;i++){ goSelectTag[i].style.visibility="visible"; }
goSelectTag.length = 0;
}
function fSetSelected(){
var iOffset = 0;
var iYear = parseInt($e("tbSelYear").value);
var iMonth = parseInt($e("tbSelMonth").value);
var aCell = $e("cellText"+arguments[0]);aCell.bgColor=gcMouseOut;
with(aCell){
var iDay = parseInt(innerHTML);
if(checkColor(style.color,gcNotCurMonth)){ iOffset = (innerHTML>10)?-1:1; }
iMonth += iOffset;
if(iMonth<1){ iYear--;iMonth=12; }else if(iMonth>12){ iYear++;iMonth=1; }
}
fSetDate(iYear,iMonth,iDay);
}
function fBuildCal(iYear,iMonth){
var aMonth = new Array();
for(var 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(var d=0;d<7;d++){ aMonth[1][d]=(d<iDayOfFirst)?(iOffsetLast+d)*(-1):iDate++; }
for(var w=2;w<7;w++){ for(var d=0;d<7;d++){ aMonth[w][d]=(iDate<=iDaysInMonth)?iDate++:(iNext++)*(-1); } }
return aMonth;
}
function fDrawCal(iYear,iMonth,iCellHeight,iDateTextSize){
var colorTD = " bgcolor='"+gcMouseOut+"' bordercolor='"+gcMouseOut+"'";
var styleTD = " valign='middle' align='center' style='height:"+iCellHeight+"px;font-weight:bolder;font-size:"+iDateTextSize+"px;";
var dateCal = "";dateCal+="<tr>";
for(var i=0;i<7;i++){ dateCal+="<td"+colorTD+styleTD+"color:#990099'>"+WeekDay[i]+"</td>"; }
dateCal += "</tr>";
for(var w=1;w<7;w++){
dateCal += "<tr>";
for(var d=0;d<7;d++){
var tmpid= w+""+d;
dateCal += "<td"+styleTD+"cursor:pointer;' onclick='fSetSelected("+tmpid+")'>";
dateCal += "<span id='cellText"+tmpid+"'></span>";dateCal+="</td>";
}
dateCal += "</tr>";
}
return dateCal;
}
function fUpdateCal(iYear,iMonth){
var myMonth = fBuildCal(iYear,iMonth);
var i = 0;
for(var w=1;w<7;w++){
for(var d=0;d<7;d++){
with($e("cellText"+w+""+d)){
parentNode.bgColor = gcMouseOut;parentNode.borderColor = gcMouseOut;
parentNode.onmouseover = function(){this.bgColor=gcMouseOver;};
parentNode.onmouseout = function(){this.bgColor=gcMouseOut;};
if(myMonth[w][d]<0){
style.color = gcNotCurMonth;innerHTML = Math.abs(myMonth[w][d]);
}else{
style.color = ((d==0)||(d==6))?gcRestDay:gcWorkDay;innerHTML = myMonth[w][d];
if(iYear==giYear && iMonth==giMonth && myMonth[w][d]==giDay){
style.color = gcToday;parentNode.bgColor = gcTodayMouseOut;
parentNode.onmouseover = function(){ this.bgColor=gcTodayMouseOver;};
parentNode.onmouseout = function(){ this.bgColor=gcTodayMouseOut; };
}
}
}
}
}
}
function fSetYearMon(iYear,iMon){
$e("tbSelMonth").options[iMon-1].selected = true;
for(var i=0;i<$e("tbSelYear").length;i++){
if($e("tbSelYear").options[i].value==iYear){
$e("tbSelYear").options[i].selected = true;
}
}
fUpdateCal(iYear,iMon);
}
function fPrevMonth(){
var iMon = $e("tbSelMonth").value;
var iYear = $e("tbSelYear").value;
if(--iMon<1){ iMon=12;iYear--; }
fSetYearMon(iYear,iMon);
}
function fNextMonth(){
var iMon = $e("tbSelMonth").value;
var iYear = $e("tbSelYear").value;
if(++iMon>12){ iMon=1;iYear++; }
fSetYearMon(iYear,iMon);
}
function getDateDiv(){
var noSelectForIE = "";
var noSelectForFireFox = "";
if(document.all){ noSelectForIE="onselectstart='return false;'"; }else{ noSelectForFireFox="-moz-user-select:none;"; }
var dateDiv = "";
dateDiv+="<div id='calendardiv' onclick='event.cancelBubble=true' "+noSelectForIE+" style='"+noSelectForFireFox+"position:absolute;z-index:99;visibility:hidden;border:1px solid #999999;'>";
dateDiv+="<table border='0' bgcolor='#E0E0E0' cellpadding='1' cellspacing='1' >";
dateDiv+="<tr>";
dateDiv+="<td><input type='button' id='PrevMonth' value='<' style='height:20px;width:20px;font-weight:bolder;' onclick='fPrevMonth()'>";
dateDiv+="</td><td><select id='tbSelYear' style='border:1px solid;' onchange='fUpdateCal($v(\"tbSelYear\"),$v(\"tbSelMonth\"))'>";
for(var i=endYear;i>startYear;i--){
dateDiv+="<option value='"+i+"'>"+i+strYear+"</option>";
}
dateDiv+="</select></td><td>";
dateDiv+="<select id='tbSelMonth' style='border:1px solid;' onchange='fUpdateCal($v(\"tbSelYear\"),$v(\"tbSelMonth\"))'>";
for(var i=0;i<12;i++){
dateDiv+="<option value='"+(i+1)+"'>"+gMonths[i]+"</option>";
}
dateDiv+="</select></td><td>";
dateDiv+="<input type='button' id='NextMonth' value='>' style='height:20px;width:20px;font-weight:bolder;' onclick='fNextMonth()'>";
dateDiv+="</td>";
dateDiv+="</tr><tr>";
dateDiv+="<td align='center' colspan='4'>";
dateDiv+="<div style='background-color:#cccccc'><table width='100%' border='0' cellpadding='3' cellspacing='1'>";
dateDiv+=fDrawCal(giYear,giMonth,dayTdHeight,dayTdTextSize);
dateDiv+="</table></div>";
dateDiv+="</td>";
dateDiv+="</tr><tr><td align='center' colspan='4' nowrap>";
dateDiv+="<span style='cursor:pointer;font:bold 12px 宋體;' onclick='fSetDate(giYear,giMonth,giDay)' onmouseover='this.style.color=\""+gcMouseOver+"\"' onmouseout='this.style.color=\"#000000\"'>"+strToday+":"+giYear+strYear+giMonth+strMonth+giDay+strDay+"</span>";
dateDiv+="</tr></tr>";
dateDiv+="</table></div>";
return dateDiv;
}
with(document){
onclick = fHideCalendar; write(getDateDiv());
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -