function updateClock ( )
{
  var currentTime = new Date ();
  var currentHours = currentTime.getHours();
  var currentMinutes = currentTime.getMinutes();
  var currentSeconds = currentTime.getSeconds();
  var currentYear = currentTime.getFullYear();
  var currentMonth = currentTime.getUTCMonth();
  var currentDate = currentTime.getDate();

  // Pad the minutes and seconds with leading zeros, if required
  currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
  currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;

  // Choose either "AM" or "PM" as appropriate
  var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";

  // Convert the hours component to 12-hour format if needed
  currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;

  // Convert an hours component of "0" to "12"
  currentHours = ( currentHours == 0 ) ? 12 : currentHours;

  if (currentYear < 1000)
  {
      currentYear+=1900;
  }

  if (currentDate<10)
  {
      currentDate="0"+currentDate;
  }
  var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  var dayOfWeek = dayarray[currentTime.getDay()];
  // Compose the string for display
  var currentTimeString =  dayOfWeek + ", " + currentDate+" "+montharray[currentMonth]+" "+currentYear+" "+currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;
  // Update the time display
  document.getElementById("timestamp").value = currentTimeString;
  setTimeout("updateClock()",1000);
}



function getthedate()
{

var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var montharray=new Array("Jan","Feb","March","Apr","May","June","July","Aug","Sept","Oct","Nov","Dec")
var mydate=new Date()
var year=mydate.getFullYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var hours=mydate.getHours()
var minutes=mydate.getMinutes()
var seconds=mydate.getSeconds()
var dn="AM"
if (hours>=12)
dn="PM"
if (hours>12){
hours=hours-12
}
if (hours==0)
hours=12
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
//change font size here
var cdate="<font color='FF0000' face='Tahoma'><b>"+dayarray[day]+", "+daym+" "+montharray[month]+" "+year+"</b></font>"
if (document.all)
document.all.clock.innerHTML=cdate
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate
else
document.write(cdate)
}
if (!document.all&&!document.getElementById)
getthedate()
function goforit(){
if (document.all||document.getElementById)
setInterval("getthedate()",1000)
}









function RunGLNL()
{
   var today=new Date();
   document.getElementById("chineseDt").innerHTML = CnDateofDateStr(today);
}


function DaysNumberofDate(DateGL)
{
    return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getFullYear()+"/1/1"))/86400000)+1;
}

function CnDateofDate(DateGL)
{
	var CnData=new Array( 0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,
                            0x19,0xb2,0x5b,0x00,0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,
                            0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,0x15,0x55,0xaa,0x00,
                            0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,
			          0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,
                            0x88,0x5a,0xaa,0x04,0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,
                            0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00,0x84,0xa9,0x5d,0x06,
                            0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04);

	var CnMonth=new Array();
	var CnMonthDays=new Array();
	var CnBeginDay;
	var LeapMonth;
	var Bytes=new Array();
	var I;
	var CnMonthData;
	var DaysCount;
	var CnDaysCount;
	var ResultMonth;
	var ResultDay;
	var yyyy=DateGL.getFullYear();
	var mm=DateGL.getMonth()+1;
	var dd=DateGL.getDate();
	if(yyyy<100)
      {
	   yyyy+=1900;
      }
	if ((yyyy < 1997) || (yyyy > 2020))
	{
	    return 0;
	}
	Bytes[0] = CnData[(yyyy - 1997) * 4];
	Bytes[1] = CnData[(yyyy - 1997) * 4 + 1];
	Bytes[2] = CnData[(yyyy - 1997) * 4 + 2];
      Bytes[3] = CnData[(yyyy - 1997) * 4 + 3];
      if ((Bytes[0] & 0x80) != 0)
      {
          CnMonth[0] = 12;
      }
      else
      {
          CnMonth[0] = 11;
      }
      CnBeginDay = (Bytes[0] & 0x7f);
      CnMonthData = Bytes[1];
      CnMonthData = CnMonthData << 8;
      CnMonthData = CnMonthData | Bytes[2];
      LeapMonth = Bytes[3];

      for (I=15;I>=0;I--)
      {
          CnMonthDays[15 - I] = 29;
          if (((1 << I) & CnMonthData) != 0 )
          {
              CnMonthDays[15 - I]++;}
              if (CnMonth[15 - I] == LeapMonth )
              {
                  CnMonth[15 - I + 1] = - LeapMonth;
              }
              else
              {
                  if (CnMonth[15 - I] < 0 )
                  {
                      CnMonth[15 - I + 1] = - CnMonth[15 - I] + 1;
                  }
                  else
                  {
                      CnMonth[15 - I + 1] = CnMonth[15 - I] + 1;
                  }
                  if (CnMonth[15 - I + 1] > 12 )
                  {
                      CnMonth[15 - I + 1] = 1;
                  }
              }
          }
          DaysCount = DaysNumberofDate(DateGL) - 1;
          if (DaysCount <= (CnMonthDays[0] - CnBeginDay))
          {
               if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1)+"/12/31")) < 0))
               {
                   ResultMonth = - CnMonth[0];
               }
               else
               {
                   ResultMonth = CnMonth[0];
               }
               ResultDay = CnBeginDay + DaysCount;
  	    }
          else
          {
               CnDaysCount = CnMonthDays[0] - CnBeginDay;
               I = 1;
               while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount))
		   {
		        CnDaysCount+= CnMonthDays[I];
		        I++;
		   }
		   ResultMonth = CnMonth[I];
	         ResultDay = DaysCount - CnDaysCount;
          }
	    if (ResultMonth > 0)
          {
              return ResultMonth * 100 + ResultDay;
          }
 	    else
          {
              return ResultMonth * 100 - ResultDay;
          }
}

function CnYearofDate(DateGL)
{
	var YYYY=DateGL.getFullYear();
	var MM=DateGL.getMonth()+1;
	var CnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100);
	if(YYYY<100) YYYY+=1900;
	if(CnMM>MM)
		YYYY--;
	YYYY-=1864;
	return CnEra(YYYY)+"&#24180;";
}


function CnMonthofDate(DateGL)
{
	var  CnMonthStr=new Array("&#38646;","&#27491;","&#20108;","&#19977;","&#22235;","&#20116;","&#20845;","&#19971;","&#20843;","&#20061;","&#21313;","&#21313;&#19968;","&#33098;");;
	var  Month = parseInt(CnDateofDate(DateGL)/100);
	if (Month < 0)
      {
          return "&#38384;" + CnMonthStr[-Month] + "&#26376;";
      }
      else
      {
          return CnMonthStr[Month] + "&#26376;";
      }
}

function CnDayofDate(DateGL)
{
      var CnDayStr=new Array("&#38646;","&#21021;&#19968;", "&#21021;&#20108;", "&#21021;&#19977;", "&#21021;&#22235;", "&#21021;&#20116;",
                             "&#21021;&#20845;", "&#21021;&#19971;", "&#21021;&#20843;", "&#21021;&#20061;", "&#21021;&#21313;",
             		     "&#21313;&#19968;", "&#21313;&#20108;", "&#21313;&#19977;", "&#21313;&#22235;", "&#21313;&#20116;",
				     "&#21313;&#20845;", "&#21313;&#19971;", "&#21313;&#20843;", "&#21313;&#20061;", "&#20108;&#21313;",
				     "&#24319;&#19968;", "&#24319;&#20108;", "&#24319;&#19977;", "&#24319;&#22235;", "&#24319;&#20116;",
				     "&#24319;&#20845;", "&#24319;&#19971;", "&#24319;&#20843;", "&#24319;&#20061;", "&#19977;&#21313;");
	var Day;
	Day = (Math.abs(CnDateofDate(DateGL)))%100;
	return CnDayStr[Day];
}

function DaysNumberofMonth(DateGL)
{
	var MM1=DateGL.getFullYear();
	MM1<100 ? MM1+=1900:MM1;
	var MM2=MM1;
	MM1+="/"+(DateGL.getMonth()+1);
	MM2+="/"+(DateGL.getMonth()+2);
      MM1+="/1";
      MM2+="/1";
      return parseInt((Date.parse(MM2)-Date.parse(MM1))/86400000);
}

function CnEra(YYYY)
{
	var Tiangan=new Array("&#30002;","&#20057;","&#19993;","&#19969;","&#25098;","&#24049;","&#24218;","&#36763;","&#22764;","&#30328;");
	var Dizhi=new Array("&#23376;","&#19985;","&#23493;","&#21359;","&#36784;","&#24051;","&#21320;","&#26410;","&#30003;","&#37193;","&#25100;","&#20133;");
	return Tiangan[YYYY%10]+Dizhi[YYYY%12];
}

function CnDateofDateStr(DateGL){
	if(CnMonthofDate(DateGL)=="&#38646;&#26376;")
           return " &#35831;&#35843;&#25972;&#24744;&#30340;&#35745;&#31639;&#26426;&#26085;&#26399;!";
      else
           return " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL);
}

function SolarTerm(DateGL)
{
      var SolarTermStr=new Array( "&#23567;&#23506;","&#22823;&#23506;","&#31435;&#26149;","&#38632;&#27700;","&#24778;&#34544;","&#26149;&#20998;",
				          "&#28165;&#26126;","&#35895;&#38632;","&#31435;&#22799;","&#23567;&#28385;","&#33426;&#31181;","&#22799;&#33267;",
				          "&#23567;&#26257;","&#22823;&#26257;","&#31435;&#31179;","&#22788;&#26257;","&#30333;&#38706;","&#31179;&#20998;",
				          "&#23506;&#38706;","&#38684;&#38477;","&#31435;&#20908;","&#23567;&#38634;","&#22823;&#38634;","&#20908;&#33267;");
      var DifferenceInMonth=new Array( 1272060,1275495,1281180,1289445,1299225,1310355,
					         1321560,1333035,1342770,1350855,1356420,1359045,
					         1358580,1355055,1348695,1340040,1329630,1318455,
					         1306935,1297380,1286865,1277730,1274550,1271556);
      var DifferenceInYear=31556926;
	var BeginTime=new Date(1901/1/1);
      BeginTime.setTime(947120460000);
      for(;DateGL.getFullYear()<BeginTime.getFullYear();)
      {
          BeginTime.setTime(BeginTime.getTime()-DifferenceInYear*1000);
      }
      for(;DateGL.getFullYear()>BeginTime.getFullYear();)
      {
          BeginTime.setTime(BeginTime.getTime()+DifferenceInYear*1000);
      }
      for(var M=0;DateGL.getMonth()>BeginTime.getMonth();M++)
      {
          BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);
      }
      if(DateGL.getDate()>BeginTime.getDate())
      {
          BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);
          M++;
      }
      if(DateGL.getDate()>BeginTime.getDate())
      {
          BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);
          M==23?M=0:M++;
      }
      var JQ;
      if(DateGL.getDate()==BeginTime.getDate())
      {
          JQ="  &#20170;&#22825;&#26159;<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";
      }
      else if(DateGL.getDate()==BeginTime.getDate()-1)
      {
          JQ="  &#26126;&#22825;&#26159;<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";
      }
      else if(DateGL.getDate()==BeginTime.getDate()-2)
      {
          JQ=" &#21518;&#22825;&#26159;<font color='#FF9999'><b>"+SolarTermStr[M] + "</b></font>";
      }
      else
      {
	    JQ=" "
	    if(DateGL.getMonth()==BeginTime.getMonth())
          {
		  JQ+="  &#26412;&#26376;";
	    }
	    else
          {
		  JQ+="  &#19979;&#26376;";
	    }
	    JQ+=BeginTime.getDate()+"&#26085;"+"<font color='#FF9999'><b>"+SolarTermStr[M]+"</b></font>";
      }
	return JQ;
}