//节日开始
var mnum=new Array();
var ddate=new Array();
var dname=new Array();
mnum[1]=1;ddate[1]="25";dname[1]="世界防治麻风病日";//一月的最后一个星期日
mnum[2]=2;ddate[2]="2";dname[2]="世界湿地日";
mnum[3]=2;ddate[3]="4";dname[3]="世界抗癌日";
mnum[4]=2;ddate[2]="14";dname[4]="世界嗲癫痫日";
mnum[5]=3;ddate[5]="3";dname[5]="全国爱耳日";
mnum[6]=3;ddate[6]="12";dname[6]="世界肾脏日";//３月份的第二个星期四
mnum[7]=3;ddate[7]="12";dname[7]="植树节";
mnum[8]=3;ddate[8]="15";dname[8]="国际消费日";
mnum[9]=3;ddate[9]="21";dname[9]="世界森林日,世界睡眠日";
mnum[10]=3;ddate[10]="22";dname[10]="世界水日";
mnum[11]=3;ddate[11]="23";dname[11]="世界气象日";
mnum[12]=3;ddate[12]="24";dname[12]="世界防治结核病日";
mnum[13]=3;ddate[13]="30";dname[13]="全国中小学安全教育日";//3月份的最后一个星期一
mnum[14]=4;ddate[14]="1";dname[14]="全国爱国卫生月";//4月份
mnum[15]=4;ddate[15]="7";dname[15]="世界卫生日";
mnum[16]=4;ddate[16]="11";dname[16]="世界帕金森病日";
mnum[17]=4;ddate[17]="22";dname[17]="世界地球日";
mnum[18]=4;ddate[18]="25";dname[18]="全国预防接种宣传日";
mnum[19]=5;ddate[19]="6";dname[19]="";//世界哮喘日 5月份的第一个星期二
mnum[20]=5;ddate[20]="5";dname[20]="全国碘缺乏病宣传日,世界哮喘日";
mnum[21]=5;ddate[21]="8";dname[21]="世界红十字日";
mnum[22]=5;ddate[22]="12";dname[22]="国际护士节";
mnum[23]=5;ddate[23]="18";dname[23]="国际牛奶日";//5月的第三个星期二
mnum[24]=5;ddate[24]="16";dname[24]="世界高血压日";//五月份的第二个星期六
mnum[25]=5;ddate[25]="19";dname[25]="世界肝炎日";
mnum[26]=5;ddate[26]="17";dname[26]="全国助残日";//五月第三个星期日
mnum[27]=5;ddate[27]="20";dname[27]="全国学生营养日";
mnum[28]=5;ddate[28]="22";dname[28]="国际生物多样性日";
mnum[29]=5;ddate[29]="31";dname[29]="世界无烟日";
mnum[30]=6;ddate[30]="1";dname[30]="国际儿童节";
mnum[31]=6;ddate[31]="5";dname[31]="世界环境日";
mnum[32]=6;ddate[32]="6";dname[32]="全国爱眼日";
mnum[33]=6;ddate[33]="14";dname[33]="世界献血者日";
mnum[34]=6;ddate[34]="17";dname[34]="防治荒漠化和干旱日";
mnum[35]=6;ddate[35]="21";dname[35]="世界运动员神经元病日";
mnum[36]=6;ddate[36]="23";dname[36]="国际奥林匹克日";
mnum[37]=6;ddate[37]="24";dname[37]="世界神经日,世界卒中日倡导日";
mnum[38]=6;ddate[38]="26";dname[38]="国际禁毒日";
mnum[39]=7;ddate[39]="1";dname[39]="国际建筑日";
mnum[40]=7;ddate[40]="8";dname[40]="世界变态反应日";
mnum[41]=7;ddate[41]="11";dname[41]="世界人口日";
mnum[42]=9;ddate[42]="8";dname[42]="世界狂犬病日";
mnum[43]=9;ddate[43]="12";dname[43]="中国预防出生缺陷日,世界急救日";//世界急救日9月的第二个周六
mnum[44]=9;ddate[44]="1";dname[44]="";
mnum[45]=9;ddate[45]="10";dname[45]="教师节,世界预防自杀日";
mnum[46]=9;ddate[46]="16";dname[46]="国际臭氧层保护日";
mnum[47]=9;ddate[47]="20";dname[47]="全国爱牙日";
mnum[48]=9;ddate[48]="21";dname[48]="世界老年痴呆日";
mnum[49]=9;ddate[49]="26";dname[49]="世界清洁日";//9月份的第三个周末(周五至周日)
mnum[50]=9;ddate[50]="28";dname[50]="世界心脏日,国际聋人节";//9月份最后一个星期日
mnum[51]=10;ddate[51]="26";dname[51]="重阳节";//农历9月9
mnum[52]=10;ddate[52]="1";dname[52]="国际老人节";
mnum[53]=10;ddate[53]="8";dname[53]="全国高血压日";
mnum[54]=10;ddate[54]="10";dname[54]="世界精神卫生日,世界居室卫生日";
mnum[55]=10;ddate[55]="12";dname[55]="世界关节炎日";
mnum[56]=10;ddate[56]="13";dname[56]="世界保健日,国际减轻自然灾害日";//国际减轻自然灾害日10月第二个星期三
mnum[57]=10;ddate[57]="15";dname[57]="国际盲人节,世界洗手日,世界视觉日";//世界视觉日10月第二个星期四
mnum[58]=10;ddate[58]="17";dname[58]="世界消贫困日";
mnum[59]=10;ddate[59]="20";dname[59]="世界骨质疏松日";
mnum[60]=10;ddate[60]="22";dname[60]="国际口吃日,世界传统医药日";
mnum[61]=10;ddate[61]="28";dname[61]="世界男性健康日";
mnum[62]=11;ddate[62]="9";dname[62]="消防宣传日";
mnum[63]=11;ddate[63]="14";dname[63]="世界防治糖尿病日";
mnum[64]=11;ddate[64]="18";dname[64]="世界慢阻肺日";//11月第三个周三
mnum[65]=11;ddate[65]="20";dname[65]="中国卒中教育日";
mnum[66]=12;ddate[66]="1";dname[66]="世界艾滋病宣传日";
mnum[67]=12;ddate[67]="3";dname[67]="世界残疾人日";
mnum[68]=3;ddate[68]="6";dname[68]="世界青光眼日";
mnum[69]=4;ddate[69]="26";dname[69]="全国疟疾日";
mnum[70]=10;ddate[70]="11";dname[70]="世界镇痛日";
mnum[71]=10;ddate[71]="16";dname[71]="世界粮食日";
mnum[72]=12;ddate[72]="15";dname[72]="世界强化免疫日";
function showtoday(){
	today=new Date();
	var tomon=today.getMonth()+1;
	var todate=today.getDate();
	var f=0
	var todayinfo='';//'<P align="center" style="margin-top: 0; margin-bottom: 0"><FONT color="#FF0000"></font>';
	for(var i=1;i<mnum.length;i++){
	if (mnum[i]==tomon && ddate[i]==todate){f=f+1;todayinfo=todayinfo+"<b>"+dname[i]+"</b>";}
	}
	if(f==0){todayinfo=todayinfo+"";}
	
	
	return todayinfo;
}

//-------------节日结束------------------

var lunarInfo=new Array(
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)

var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");

var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");

var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");

var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");

var sTermInfo = new 
Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);

var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十');

var nStr2 = new Array('初','十','廿','卅','　');

var monthName = new Array(" ","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");

var sFtv = new Array("0101 元旦","0214 情人节","0308 妇女节","0312 植树节","0315 消费者权益日","0401 愚人节","0501 劳动节","0504 青年节","0512 护士节","0601 儿童节","0701 建党节 香港回归纪念","0801 建军节","0808 父亲节","0910 教师节","1001 国庆节","1006 老人节","1024 联合国日","1220 澳门回归纪念","1225 圣诞节")

function lYearDays(y) {
   var i, sum = 348
   for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0
   return(sum+leapDays(y))
}

function leapDays(y) {
   if(leapMonth(y))  return((lunarInfo[y-1900] & 0x10000)? 30: 29)
   else return(0)
}

function leapMonth(y) {
   return(lunarInfo[y-1900] & 0xf)
}

function monthDays(y,m) {
   return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )
}

function Lunar(objDate) {

   var i, leap=0, temp=0
   var baseDate = new Date(1900,0,31)
   var offset   = (objDate - baseDate)/86400000
   this.dayCyl = offset + 40
   this.monCyl = 14

   for(i=1900; i<2050 && offset>0; i++) {
      temp = lYearDays(i)
      offset -= temp
      this.monCyl += 12
   }

   if(offset<0) {
      offset += temp;
      i--;
      this.monCyl -= 12
   }

   this.year = i
   this.yearCyl = i-1864

   leap = leapMonth(i) 
   this.isLeap = false

   for(i=1; i<13 && offset>0; i++) {
      if(leap>0 && i==(leap+1) && this.isLeap==false)
         { --i; this.isLeap = true; temp = leapDays(this.year); }
      else
         { temp = monthDays(this.year, i); }

      if(this.isLeap==true && i==(leap+1)) this.isLeap = false

      offset -= temp
      if(this.isLeap == false) this.monCyl ++
   }
   if(offset==0 && leap>0 && i==leap+1)
      if(this.isLeap)
         { this.isLeap = false; }
      else
         { this.isLeap = true; --i; --this.monCyl;}

   if(offset<0){ offset += temp; --i; --this.monCyl; }

   this.month = i
   this.day = offset + 1
}

function solarDays(y,m) {
   if(m==1)
      return(((y%4 == 0) && (y%100 != 0) || (y%400 == 0))? 29: 28)
   else
      return(solarMonth[m])
}
function cyclical(num) {
   return(Gan[num%10]+Zhi[num%12])
}

function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) {

      this.isToday    = false;
      this.sYear      = sYear;
      this.sMonth     = sMonth;
      this.sDay       = sDay;
      this.week       = week;
      this.lYear      = lYear;
      this.lMonth     = lMonth;
      this.lDay       = lDay;
      this.isLeap     = isLeap;
      this.cYear      = cYear;
      this.cMonth     = cMonth;
      this.cDay       = cDay;

      this.color      = '';

      this.lunarFestival = ''; 
      this.solarFestival = ''; 
      this.solarTerms    = ''; 

}

function sTerm(y,n) {
   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) )
   return(offDate.getUTCDate())
}
var cld;

function calendar(y,m) {

   var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2
   var lDPOS = new Array(3)
   var n = 0
   var firstLM = 0

   sDObj = new Date(y,m,1)           

   this.length    = solarDays(y,m)    
   this.firstWeek = sDObj.getDay()    


   for(var i=0;i<this.length;i++) {

      if(lD>lX) {
         sDObj = new Date(y,m,i+1)    
         lDObj = new Lunar(sDObj)     
         lY    = lDObj.year           
         lM    = lDObj.month          
         lD    = lDObj.day            
         lL    = lDObj.isLeap         
         lX    = lL? leapDays(lY): monthDays(lY,lM) 

         if(n==0) firstLM = lM
         lDPOS[n++] = i-lD+1
      }

      this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],
                               lY, lM, lD++, lL,
                               cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )


      if((i+this.firstWeek)%7==0)   this[i].color = 'red'  
      if((i+this.firstWeek)%14==13) this[i].color = 'red'  
   }

   tmp1=sTerm(y,m*2  )-1
   tmp2=sTerm(y,m*2+1)-1
   this[tmp1].solarTerms = solarTerm[m*2]
   this[tmp2].solarTerms = solarTerm[m*2+1]
   if(m==3) this[tmp1].color = 'red' 

   if(y==tY && m==tM) this[tD-1].isToday = true;

}

function cDay(d){
   var s;

   switch (d) {
      case 10:
         s = '初十'; break;
      case 20:
         s = '二十'; break;
         break;
      case 30:
         s = '三十'; break;
         break;
      default :
         s = nStr2[Math.floor(d/10)];
         s += nStr1[d%10];
   }
   return(s);
}



var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate();

var width = "130";
var offsetx = 2;
var offsety = 16;

var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;


cld =new calendar(tY,tM);
   var s,festival;
   //var sObj=eval('SD'+ v);
   var d=tD-1;
      if(cld[d].solarTerms == '')
         festival = '';
      else
         festival = cld[d].solarTerms;

       s= cld[d].sYear+'年'+cld[d].sMonth+'月'+cld[d].sDay+'日'+'&nbsp;农历'+cld[d].cYear+'年&nbsp;'+monthName[cld[d].lMonth]+cDay(cld[d].lDay)+'&nbsp;'+festival;	//详细日期
			//s= cld[d].sYear+'年'+cld[d].sMonth+'月'+cld[d].sDay+'日-星期'+cld[d].week+'&nbsp;农历'+cld[d].cYear+'年&nbsp;'+monthName[cld[d].lMonth]+cDay(cld[d].lDay)+'&nbsp;'+festival;	//详细日期
			//s= cld[d].sYear+'年'+cld[d].sMonth+'月'+cld[d].sDay+'日 星期'+cld[d].week  仅公历和星期

       var s = "<span class=\"font_14px\">"+cld[d].sYear+"年"+cld[d].sMonth+"月<span class=\"riqi\">"+cld[d].sDay+"</span>日</span>";
      
       s = s+"<span  class=\"font_15px\">"+cld[d].cYear+"年&nbsp;"+monthName[cld[d].lMonth]+cDay(cld[d].lDay)+"&nbsp;"+festival+"</span>";
     
      document.write(s+showtoday());
