///////////////////////////////////////////////////////////////////////////////
var cld;
function drawcld(sy,sm) {
var i,sd,s,size;
cld = new calendar(sy,sm);
if(sy>1949 && sy<2051) ydisplay = 建国 + (((sy-1949)==1)?元:sy-1949);
if(sy<1949 && sy>1900) ydisplay = 公元 + (sy);
gz.innerhtml = ydisplay +年 农历 + cyclical(sy-1900+36) + 年 【+animals[(sy-4)%12]+年】;
ymbg.innerhtml = " " + sy + "<br> " + monthname[sm];
for(i=0;i<42;i++) {
sobj=eval(sd+ i);
lobj=eval(ld+ i);
sobj.classname = ;
sd = i – cld.firstweek;
if(sd>-1 && sd<cld.length) { //日期内
sobj.innerhtml = sd+1;
if(cld[sd].istoday) sobj.classname = todyacolor; //今日颜色
sobj.style.color = cld[sd].color; //法定假日颜色
if(cld[sd].lday==1) //显示农历月
lobj.innerhtml = <b>+(cld[sd].isleap?闰:) + cld[sd].lmonth + 月 + (monthdays(cld[sd].lyear,cld[sd].lmonth)==29?小:大)+</b>;
else //显示农历日
lobj.innerhtml = cday(cld[sd].lday);
s=cld[sd].lunarfestival;
if(s.length>0) { //农历节日
if(s.length>6) s = s.substr(0, 4)+…;
s = s.fontcolor(red);
}
else { //公历节日
s=cld[sd].solarfestival;
if(s.length>0) {
size = (s.charcodeat(0)>0 && s.charcodeat(0)<128)?8:4;
if(s.length>size+2) s = s.substr(0, size)+…;
s = s.fontcolor(blue);
}
else { //廿四节气
s=cld[sd].solarterms;
if(s.length>0) s = s.fontcolor(limegreen);
}
}
if(s.length>0) lobj.innerhtml = s;
}
else { //非日期
sobj.innerhtml = ;
lobj.innerhtml = ;
}
}
}
function changecld() {
var y,m;
y=cld.sy.selectedindex+1900;
m=cld.sm.selectedindex;
drawcld(y,m);
}
function pushbtm(k) {
switch (k){
case yu :
if(cld.sy.selectedindex>0) cld.sy.selectedindex–;
break;
case yd :
if(cld.sy.selectedindex<150) cld.sy.selectedindex++;
break;
case mu :
if(cld.sm.selectedindex>0) {
cld.sm.selectedindex–;
}
else {
cld.sm.selectedindex=11;
if(cld.sy.selectedindex>0) cld.sy.selectedindex–;
}
break;
case md :
if(cld.sm.selectedindex<11) {
cld.sm.selectedindex++;
}
else {
cld.sm.selectedindex=0;
if(cld.sy.selectedindex<150) cld.sy.selectedindex++;
}
break;
default :
cld.sy.selectedindex=ty-1900;
cld.sm.selectedindex=tm;
}
changecld();
}
var today = new date();
var ty = today.getfullyear();
var tm = today.getmonth();
var td = today.getdate();
//////////////////////////////////////////////////////////////////////////////
var width = "130";
var offsetx = 2;
var offsety = 8;
var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;
var dstyle;
document.onmousemove = mevn;
//显示详细日期资料
function movr(v) {
var s,festival;
var sobj=eval(sd+ v);
var d=sobj.innerhtml-1;
//syear,smonth,sday,week,
//lyear,lmonth,lday,isleap,
//cyear,cmonth,cday
if(sobj.innerhtml!=) {
sobj.style.cursor = s-resize;
if(cld[d].solarterms == && cld[d].solarfestival == && cld[d].lunarfestival == )
festival = ;
else
festival = <table width=100% border=0 cellpadding=2 cellspacing=0 bgcolor="#ccffcc"><tr><td>+
<font color="#000000" style="font-size:9pt;">+cld[d].solarterms + + cld[d].solarfestival + + cld[d].lunarfestival+</font></td>+
</tr></table>;
s= <table width="130" border=0 cellpadding="2" cellspacing=0 bgcolor="#000066" style="filter:alpha(opacity=80)"><tr><td> +
<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td align="right"><font color="#ffffff" style="font-size:9pt;">+
cld[d].syear+ 年 +cld[d].smonth+ 月 +cld[d].sday+ 日<br>星期+cld[d].week+<br>+
<font color="violet">农历+(cld[d].isleap?闰 : )+cld[d].lmonth+ 月 +cld[d].lday+ 日</font><br>+
<font color="yellow">+cld[d].cyear+年 +cld[d].cmonth+月 +cld[d].cday + 日</font>+
</font></td></tr></table>+ festival +</td></tr></table>;
document.all["detail"].innerhtml = s;
if (snow == 0) {
dstyle.left = x+offsetx-(width/2);
dstyle.top = y+offsety;
dstyle.visibility = "visible";
snow = 1;
}
}
}
//清除详细日期资料
function mout() {
if ( cnt >= 1 ) { sw = 0; }
if ( sw == 0 ) { snow = 0; dstyle.visibility = "hidden";}
else cnt++;
}
//取得位置
function mevn() {
x=event.x;
y=event.y;
if (document.body.scrollleft)
{x=event.x+document.body.scrollleft; y=event.y+document.body.scrolltop;}
if (snow){
dstyle.left = x+offsetx-(width/2);
dstyle.top = y+offsety;
}
}
///////////////////////////////////////////////////////////////////////////
function initialize() {
dstyle = detail.style;
cld.sy.selectedindex=ty-1900;
cld.sm.selectedindex=tm;
drawcld(ty,tm);
cld.tz.selectedindex=getcookie("tz");
changetz();
tick();
}
function terminate(){
setcookie("tz",cld.tz.selectedindex);
}
function setcookie(name, value) {
var today = new date();
var expires = new date();
expires.settime(today.gettime() + 1000*60*60*24*365);
document.cookie = name + "=" + escape(value) + "; expires=" + expires.togmtstring();
}
function getcookie(name) {
var search = name + "=";
if(document.cookie.length > 0) {
offset = document.cookie.indexof(search);
if(offset != -1) {
offset += search.length;
end = document.cookie.indexof(";", offset);
if(end == -1) end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
else return "";
}
}
