﻿
//*******************************
var dDate = new Date();
var month= dDate.getMonth()+1;
var year= dDate.getFullYear();
//daalert(month+" "+year)
var day=dDate.getDate()
var inputtextid=null;
var tablepositionleft;
var tablepositiontop;
var tableformname;
var hasform;
var input;
var innerhtml="";
var middle="-";
var inputLength;
var align="left";

//************************************

innerhtml+="<table id='dateselect'  border='0' width='180' cellspacing='0' cellpadding='0' style='display:none; left: 12; top: -250; border-left: 1 solid #D4D0C8; border-right: 1 solid #000000; border-top: 1 solid #D4D0C8; border-bottom: 1 solid #000000 z-index:600'>";
innerhtml+="<tr>";
innerhtml+="<td width='100%' style='border-left: 1 solid #FFFFFF; border-right: 1 solid #808080; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080' height='112'>";
innerhtml+="<table border='0' cellspacing='0' cellpadding='0'>";
innerhtml+="<tr>";
innerhtml+="<td>";
innerhtml+="<table border='0' cellspacing='0' cellpadding='0' width='100%'>";
innerhtml+="<tr>";
innerhtml+="<td height='22' bgcolor='#539ce5' width='19' align='center'>";
innerhtml+="<p>";
innerhtml+="<button onclick='changeYearAndMonth(0)' style='height:16; width:20'></p>"
innerhtml+="<table border='0' cellspacing='0' cellpadding='0'  width='100%'>";
innerhtml+="<tr>";
innerhtml+="<td valign='top'>";
innerhtml+="<p style='margin-top: -6'>";
innerhtml+="<font style='font-family: Webdings;font-size: 11px'>";
innerhtml+="3</font>";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="</table>";
innerhtml+="</td>";
innerhtml+="<td id='yearandmonth' bgcolor='#539ce5' height='22' >";
innerhtml+="<font color='#FFFFFF'> 2001 年 3 月 </font>";//<p align='center' style='margin-left: 2; margin-right:2'>
innerhtml+="</td>";
innerhtml+="<td height='22' bgcolor='#539ce5' width='19' align='center'>";
innerhtml+="<p><button onclick='changeYearAndMonth(1)' style='height:16; width:20'></p>";
innerhtml+="<table border='0' cellspacing='0' cellpadding='0'>";
innerhtml+="<tr>";
innerhtml+="<td valign='top'>";
innerhtml+="<p style='margin-top: -6'>";
innerhtml+="<font style='font-family: Webdings; font-size: 11px'>4</font>";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="</table>";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="</table>";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="<tr>";
innerhtml+="<td id='draw'>";
innerhtml+="asd";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="</table>";
innerhtml+="</td>";
innerhtml+="</tr>";
innerhtml+="</table>";
//alert(innerhtml)

document.write(innerhtml);


//****************************************
//
//***************************************

function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}

function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
	aMonth[0] = new Array(7);
	aMonth[1] = new Array(7);
	aMonth[2] = new Array(7);
	aMonth[3] = new Array(7);
	aMonth[4] = new Array(7); 
	aMonth[5] = new Array(7);
	aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
	aMonth[0][0] = "Sunday";
	aMonth[0][1] = "Monday";
	aMonth[0][2] = "Tuesday";
	aMonth[0][3] = "Wednesday";
	aMonth[0][4] = "Thursday";
	aMonth[0][5] = "Friday";
	aMonth[0][6] = "Saturday";
} else if (iDayStyle == 1) {
	aMonth[0][0] = "日";
	aMonth[0][1] = "一";
	aMonth[0][2] = "二";
	aMonth[0][3] = "三";
	aMonth[0][4] = "四";
	aMonth[0][5] = "五";
	aMonth[0][6] = "六";
} else {
	aMonth[0][0] = "Su";
	aMonth[0][1] = "Mo";
	aMonth[0][2] = "Tu";
	aMonth[0][3] = "We";
	aMonth[0][4] = "Th";
	aMonth[0][5] = "Fr";
	aMonth[0][6] = "Sa";
}
for (d = iDayOfFirst; d < 7; d++) {
	aMonth[1][d] = iVarDate;
	iVarDate++;
}
for (w = 2; w < 7; w++) {
	for (d = 0; d < 7; d++) {
		if (iVarDate <= iDaysInMonth) {
			aMonth[w][d] = iVarDate;
			iVarDate++;
      }
   }
}
return aMonth;
}

function fDrawCal(iYear, iMonth,iDayStyle) {
var myMonth;
//alert(day)
myMonth = fBuildCal(iYear, iMonth, iDayStyle);

innerhtml+="<table border='0' width='100%' bgcolor='#FFFFFF' cellspacing='0' cellpadding='0'><tr>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2; COLOR: RED'><b>" + myMonth[0][0] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2'><b>" + myMonth[0][1] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2'><b>" + myMonth[0][2] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2'><b>" + myMonth[0][3] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2'><b>" + myMonth[0][4] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2'><b>" + myMonth[0][5] + "</b></td>";
innerhtml+="<td width='14%' align='center' bgcolor='#ededed'><p style='margin-left: 10; margin-right: 10; margin-top: 2; COLOR: RED'><b>" + myMonth[0][6] + "</b></td>";
innerhtml+="</tr>";
for (w = 1; w < 6; w++) {
      innerhtml+="<tr>"
      for (d = 0; d < 7; d++) {
            //innerhtml+="<td align='center' valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id=calCell style='CURSOR:Hand' onclick=fSetSelectedDay(this)>");
            
            if(myMonth[w][d]==day)
                innerhtml+="<td class='day' id='calday' width='14%' bgcolor='#FFcc99' align='center' style='border-bottom-style: solid; border-bottom-width: 1'>";
            else if((myMonth[w][d]==dDate.getDate())&&(year==dDate.getFullYear())&&(month==dDate.getMonth()+1))
                innerhtml+="<td class='day' id='calday' width='14%' bgcolor='#99ccff' align='center' style='border-bottom-style: solid; border-bottom-width: 1'>";    
            else
                innerhtml+="<td class='day' id='calday' width='14%' bgcolor='#ffffff' align='center' style='border-bottom-style: solid; border-bottom-width: 1'>";
            if (!isNaN(myMonth[w][d])) {
                   if (d==0 || d==6)
                   	   innerhtml+="<p style='margin-left: 10; margin-right: 10; margin-top: 2;COLOR: RED'><nobr>" + myMonth[w][d];
                   else
	                   innerhtml+="<p style='margin-left: 10; margin-right: 10; margin-top: 2'><nobr>" + myMonth[w][d];
   
            } else {
                  //innerhtml+="<font id=calDateText style='CURSOR:Hand'>&nbsp;</font>";
            }
           innerhtml+="</nobr></td>"
       }
      innerhtml+="</tr>";
 }
innerhtml+="<tr>"
for (d = 0; d < 7; d++) {
   innerhtml+="<td class='day' width='14%' bgcolor='#FFFFFF' align='center' style='border-bottom-style: solid; border-bottom-width: 1'>";
if (!isNaN(myMonth[6][d])) {   
	if (d==0 || d==6)     
     	innerhtml+="<p style='margin-left: 10; margin-right: 10; margin-top: 2;COLOR: RED'>" + myMonth[6][d];
   else
   		innerhtml+="<p style='margin-left: 10; margin-right: 10; margin-top: 2'>" + myMonth[6][d];
} else {
//innerhtml+="<font id=calDateText style='CURSOR:Hand'>&nbsp;</font>";
}
innerhtml+="</td>"
}
innerhtml+="</tr>";
innerhtml+="</table>"
}

//*******************************
//
//*******************************
function setTableLeft(left){
    tablepositionleft=left; 	
}

function setTableTop(top){
    tablepositiontop=top;	
}

function setInputTextID(id){
    inputtextid=id;	
}

function setTableForm(formname){
   tableformname=formname;	
}

function setHasForm(hasForm){
   hasform=hasForm;	
}

function setmiddle(midd){
  middle=midd;
}
function setInputLength(width){
   inputLength=width;	
}

function setAlign(val){
  align=val;	
}

function showSelectTable(flag){
   var obj=eval("dateselect");
   if(!flag)
        obj.style.display="none";
   obj.style.position="absolute";
   
   obj.style.left=tablepositionleft;
   obj.style.top=tablepositiontop;
   if(obj.style.display=="none"){   	   
           obj.style.display="block";
         }
   else
         obj.style.display="none";
           	
}

function parseInputTextValue(val){
  var value=checkinputtextvalue(val);
  var b=new Array();
  for(var i=0;i<2;i++){
   //alert(value)
   var a=value.indexOf(middle);
   if(value.substring(0,a)=="08"){
      b[i]=8;	
   }else{
   if(value.substring(0,a)=="09"){
      b[i]=9;	
   }else{
      b[i]=parseInt(value.substring(0,a));
   }
   }
   
   value=value.substring(a+1);
   }
   if(value.charAt(0)=='0'){
       value=value.substring(1);
    }
  b[2]=parseInt(value);
  //alert(b[2]);
  year=b[0];
  month=b[1];
  day=b[2];
 changeYearAndMonth(3);    	
}

function checkinputtextvalue(val){
   var flag=false;
   var i,j;
   var value,val1,val2;
   if(val.length!=10){
      flag=true;
      //alert("check input error!!!!!")     
   }
   if(flag){
      value=year+middle;
      if(month<10)
          value+="0"+month+middle;
       else
          value+=month+middle;
      if(day<10)
          value+="0"+day;
       else
          value+=day;
       if(hasform){
	  var obj1=eval(tableformname);
	  input=eval(obj1.name+"."+inputtextid);
       }
       else
	  input=eval(inputtextid);
       input.value=value;  
   }
   else
       value=val;

   return value;
}

function initDay(obj){
obj.onmouseover=OnMouseOver;
obj.onmouseout=OnMouseOut;
obj.onmousedown=OnMouseDown;
}

function OnMouseOver(){
  var obj=event.srcElement;
  var element=obj.parentElement;
    var k
  if(element.className!="day")
      k=obj;
   else
      k=element;
  //alert(k.className);    
  k.className="onMouseOver";
}

function OnMouseOut(){
  var obj=event.srcElement;
  var element=obj.parentElement;
  var k
  if(!element.id)
      k=obj;
   else
      k=element;
  //alert(k.className);    
  k.className="day";
}

function OnMouseDown(){
  var obj=event.srcElement;
  var element=obj.parentElement;
  var k
  if(!element.id)
      k=obj.innerText;
   else
      k=element.innerText;   
  //alert(obj.innerText);
  //alert(element.innerText);
 //alert(obj.id)
 //alert(element.id)
  //alert(k)
  day=k;   
   if(hasform){
        var obj1=eval(tableformname);
        input=eval(obj1.name+"."+inputtextid);
   }
   else
       input=eval(inputtextid);
  var text=""+year+middle;
  if(month<10)
     text+="0"+month+middle;
   else
      text+=month+middle;
  if(day<10)
     text+="0"+day;
   else
     text+=day;
   input.value=text; 
   showSelectTable(true);          	
}

function changeYearAndMonth(flag){
  var innertext="<p align=center><font color='#FFFFFF'><b>";// style='margin-left: 60; margin-right: 20'
  if(flag==1){ 
     if(month>=12){
         month=1
         year++;
     }
     else
         month++;  
   }
  else if(flag==0){
     if(month<=1){
         month=12;
         year--;
     }
     else
         month--;
  }
  var selystr="";
  var opystr=""
  selystr='<select  id="selectyear" onChange=selectye()>'
  for( m=1900;m<2100;m++)
  {
	opystr+='<option value='+ m + '>'+m+ '</option>'
  }
  selystr+=opystr;
  selystr+='</select>';

  var selmstr="";
  var opmstr=""
  selmstr='<select  id="selectmonth" onChange=selectme()>'
  for( m=1;m<=12;m++)
  {
	opmstr+='<option value='+ m + '>'+m+ '</option>'
  }  
  selmstr+=opmstr;
  selmstr+='</select>';
  innertext+=selystr+ " 年 "+selmstr+" 月";  
  innertext+="</b></font>";
  
  var obj=eval("yearandmonth");
  obj.innerHTML=innertext;
	   	syobj=eval("selectyear");
  for(var n=0;n<syobj.length;n++)
  {
  	if(syobj.options[n].value==year)
	{
		syobj[n].selected=true
	}
  }

  		smobj=eval("selectmonth");
  for(var n=0;n<smobj.length;n++)
  {
  	if(smobj.options[n].value==month)
	{
		smobj[n].selected=true
	}
  }

  innerhtml="";
  setJavaScript();
}

function selectye()
{
	year=syobj.options[syobj.selectedIndex].value;
	  innerhtml="";
	setJavaScript();
}
function selectme()
{
	month=smobj.options[smobj.selectedIndex].value;
	innerhtml="";
	setJavaScript();
}

function setJavaScript(){
  //alert(year+"   "+month)  
  fDrawCal(year,month,1);
  var obj=eval("draw");	
  obj.innerHTML=innerhtml;
  var col=document.all.tags("td");
  for(var i=0;i<col.length;i++){
      if(col[i].className=="day"&&col[i].innerText!="")
            initDay(col[i]);
  }
}

function set(){
   var flag=false;
   var args=set.arguments;
   if(inputtextid==null||inputtextid==args[0])
           flag=true;
   //alert(args[0])        
  //alert(event.clientX-event.offsetX)
  //setInputLength(args[0]);
   
   setInputTextID(args[0]);
   setAlign(args[1])
   //fDrawSelectTable();
   if(args.length==5){
       setHasForm(args[2]);
       setTableForm(args[3])
       setmiddle(args[4]);
   }
   else
       setmiddle(args[2])
   if(args.length==3)
      alert("arguments lenght error");
      
   if(hasform){
        var obj1=eval(tableformname);
		   input=eval(obj1.name+"."+inputtextid);
 }
   else
       input=eval(inputtextid);
	   
   var x,y;
   inputLength=input.style.width;
   if(!inputLength){
       inputLength=7*input.size;     
   }
   else{
      var i=inputLength.indexOf("px");
      inputLength=parseInt(inputLength.substring(0,i));
   }
   
   //alert(inputLength)
   if(align=="left"){
   x=event.clientX-event.offsetX-inputLength;
   }
   else if(align=="right"){
     x=event.clientX-event.offsetX-210;	
   }
   else if(align=="rightleft"){
     x=event.clientX-event.offsetX;	
   }
   else if(align=="rightright"){
     x=event.clientX-event.offsetX + 50;	
   }
   else{
      alert("args[1] Error")
      return;
   }
   y=event.clientY+(20-event.offsetY) + document.body.scrollTop;
   //alert(event.clientY+event.offsetY+2)        
   setTableLeft(x);
   setTableTop(y);    
   parseInputTextValue(input.value);

   innerhtml=""
   setJavaScript(); 
   //alert(flag)            
   showSelectTable(flag);   
}

function ClearTextBox(boxID){
	if (window.event.keyCode==8||window.event.keyCode==46)
		document.getElementById(boxID).value="";
		
	return false;
}