   var gdCtrl = new Object();
   var goSelectTag = new Array();
   var gcGray = "#808080";
   var gcToggle = "highlight";
   var gcBG = "threedface";
   var gMonths = new Array("\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708");
   var gdCurDate = new Date();
   var giYear = gdCurDate.getFullYear();
   var giMonth = gdCurDate.getMonth()+1;
   var giDay = gdCurDate.getDate();
   var sxYear = giYear;
   var sxMonth = giMonth;
   var sxDay = giDay;
   var sxDatestr = gdCtrl.value;
   if (sxDatestr != ""){
     var sxDate = new Date(sxDatestr);
     sxYear = sxDate.getFullYear();
   }
  
   var VicPopCal = new Object();
   
   function mouseover(obj){
      obj.style.borderTop = 'buttonshadow 1px solid';
      obj.style.borderLeft = 'buttonshadow 1px solid';
      obj.style.borderRight = 'buttonhighlight 1px solid';
      obj.style.borderBottom = 'buttonhighlight 1px solid';
   }

  function mouseout(obj){
     obj.style.borderTop = 'buttonhighlight 1px solid';
     obj.style.borderLeft = 'buttonhighlight 1px solid';
     obj.style.borderRight = 'buttonshadow 1px solid';
     obj.style.borderBottom = 'buttonshadow 1px solid';
   }

  function mousedown(obj){
    obj.style.borderTop = 'buttonshadow 1px solid';
    obj.style.borderLeft = 'buttonshadow 1px solid';
    obj.style.borderRight = 'buttonhighlight 1px solid';
    obj.style.borderBottom = 'buttonhighlight 1px solid';
  }
  
	function mouseup(obj){
		obj.style.borderTop = 'buttonhighlight 1px solid';
		obj.style.borderLeft = 'buttonhighlight 1px solid';
		obj.style.borderRight = 'buttonshadow 1px solid';
		obj.style.borderBottom = 'buttonshadow 1px solid';
	}
	
	
   function HiddenDiv()
   {
	// if (VicPopCal==null) return; 
	if (PopCal==null) return; 
	var i;
	//VicPopCal.style.visibility = 'hidden';
	PopCal.style.visibility = 'hidden';
	if ( goSelectTag.length > 0)
	for (i in goSelectTag)
	{   
		if(goSelectTag[i].style!= null)
		{
			goSelectTag[i].style.visibility = 'visible';
		}
	}
	goSelectTag.length = 0;
   }
   

       function transXY ( invalue )
       {
            var pos = invalue.indexOf('px');
            return   parseInt ( invalue.substr(0,pos) ); 
       }
   
	function fPopCalendar(popCtrl, dateCtrl, popCal){
		//parent.event.cancelBubble=true;
		VicPopCal = popCal;
		gdCtrl = dateCtrl;
		fSetYearMon(giYear, giMonth);
		var point = fGetXY(popCtrl);
                var leftv = 0;
                var topv = 0;
                var heightv = 0;
                var widthv = 0;
		with (VicPopCal.style) {
			left = point.x;
			top  = point.y+popCtrl.offsetHeight;
			width = VicPopCal.offsetWidth;
			height = VicPopCal.offsetHeight;
                       
                        leftx = transXY ( left );
                        topx =  transXY ( top );
                        widthx =  transXY ( width );
                        heightx =  transXY ( height );
                        
                        if (  topx -  document.body.scrollTop + heightx  >  document.body.clientHeight )
                        {
                           topx  =   document.body.clientHeight  +  document.body.scrollTop  -  heightx  ;
                           if ( topx <0 ) topx = 0;
                           top = topx +'px';
                        }
                         
                        if (  leftx  -  document.body.scrollLeft + widthx  >  document.body.clientWidth )
                        {
                           leftx  =   document.body.clientWidth  +  document.body.scrollLeft  -  widthx  ;
                           if ( leftx < 0 ) leftx = 0;
                           left = leftx +'px';
                        }
                         


                        //alert ( leftx + ' ' + heightx );
			fToggleTags(point);  
			visibility = 'visible';
		    }
		VicPopCal.focus();
	 }
	 
	 
	function fSetDate(iYear, iMonth, iDay)
	{
	  if ((iYear == 0) && (iMonth == 0) && (iDay == 0))
	   {
	     gdCtrl.value = "";
	   }
	   else{
	     if (iMonth < 10){iMonth = "0"+iMonth;}
	     if (iDay < 10){iDay = "0"+iDay;}	    

      	if(typeof(flag)!="undefined"&&flag=="yyyymm"){
     		   gdCtrl.value = iYear+""+iMonth;  
     		}else
	     	gdCtrl.value = iYear+"-"+iMonth+"-"+iDay;
	     }
	   
	   HiddenDiv();
	}
	
	
	function fSetSelected(aCell){
		var iOffset = 0;
		var iYear = parseInt(document.all.tbSelYear.value);
		var iMonth = parseInt(document.all.tbSelMonth.value);
		aCell.bgColor = gcBG;
		with (aCell.children["cellText"]){
		var iDay = parseInt(innerText);
		if (color==gcGray){iOffset = (Victor<10)?-1:1;}
		iMonth += iOffset;
		if (iMonth<1) {	iYear--; iMonth = 12;}else{if (iMonth>12){iYear++;iMonth = 1;}}
	    }
       fSetDate(iYear, iMonth, iDay);
    }
    
    
    function Point(iX, iY){this.x = iX;this.y = iY;}


	function fBuildCal(iYear, iMonth){
		var aMonth=new Array();
		for(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 (d = 0; d < 7; d++){aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;}
		for (w = 2; w < 7; w++){for (d = 0; d < 7; d++){aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);}}
		return aMonth;
	}
	
	
	function fDrawCal(iYear, iMonth, iDay, iCellWidth, iDateTextSize) {
		var WeekDay = new Array("\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d");
		var styleTD = " bgcolor='"+gcBG+"' width='"+iCellWidth+"' bordercolor='"+gcBG+"' valign='middle' align='center' style='font-size: 12px;background: buttonface;border-top: buttonhighlight 1px solid;border-left: buttonhighlight 1px solid;border-right: buttonshadow 1px solid;	border-bottom: buttonshadow 1px solid;";
		with (document) {
					write("<tr align='center'>");
					for(i=0; i<7; i++){write("<td height='20' "+styleTD+"color:#990099' >" + WeekDay[i] + "</td>");}
					write("</tr>");
					for (w = 1; w < 7; w++) {
					write("<tr align='center'>");
					for (d = 0; d < 7; d++) {
					write("<td width='10%' height='15' id=calCell "+styleTD+"cursor:hand;' onmouseover='mouseover(this)' onmouseout='mouseout(this)' onmousedown='mousedown(this)' onmouseup='mouseup(this)' onclick='fSetSelected(this)'>");
					write("<font style='font-size: 13px;' id=cellText Victor='Liming Weng'> </font>");
					write("</td>");
				}
				write("</tr>");
			}
		}
	}
	
	
	function fUpdateCal(iYear, iMonth) {
		sxYear = iYear;
		sxMonth = iMonth;
		yeartd1.innerText = sxYear + "\u5e74";
		monthtd1.innerText = gMonths[sxMonth-1];
		myMonth = fBuildCal(iYear, iMonth);
		var i = 0;
		for (w = 0; w < 6; w++){
			for (d = 0; d < 7; d++){
				with (cellText[(7*w)+d]) {
				Victor = i++;
				if (myMonth[w+1][d]<0) {
					color = gcGray;
					innerText = -myMonth[w+1][d];
					}else{
					color = ((d==0)||(d==6))?"red":"black";
					innerText = myMonth[w+1][d];
					}
				}
			}
		}
	}
	
	
	
	function fSetYearMon(iYear, iMon){
		sxYear = iYear;
		sxMonth = iMon;
		yeartd1.innerText = sxYear +"\u5e74";
		monthtd1.innerText = gMonths[sxMonth-1];
		document.all.tbSelMonth.options[iMon-1].selected = true;
		for (i = 0; i < document.all.tbSelYear.length; i++){
			if (document.all.tbSelYear.options[i].value == iYear){
			document.all.tbSelYear.options[i].selected = true;
			}
	      }
       fUpdateCal(iYear, iMon);
    }
    
    
	function fPrevMonth(){
		var iMon = document.all.tbSelMonth.value;
		var iYear = document.all.tbSelYear.value;
		if (--iMon<1) {
		iMon = 12;
		iYear--;
		}
		fSetYearMon(iYear, iMon);
	}
	
	
	function fNextMonth(){
		var iMon = document.all.tbSelMonth.value;
		var iYear = document.all.tbSelYear.value;
		if (++iMon>12) {
		iMon = 1;
		iYear++;
		}
		fSetYearMon(iYear, iMon);
	}
	
	
	function fGetXY(aTag){
		var oTmp = aTag;
		var pt = new Point(0,0);
		do {
		pt.x += oTmp.offsetLeft;
		pt.y += oTmp.offsetTop;
		oTmp = oTmp.offsetParent;
		} while(oTmp.tagName!="BODY");
		return pt;
	}


	function fToggleTags(){
		with (document.all.tags('SELECT')){
		for (i=0; i<length; i++)
		if ((item(i).Victor!='Won')&&fTagInBound(item(i))){
			item(i).style.visibility = 'hidden';
			goSelectTag[goSelectTag.length] = item(i);
			}
		}

		with (document.all.tags('OBJECT')){
		for (i=0; i<length; i++)
		if ((item(i).Victor!='Won')&&fTagInBound(item(i))){
			item(i).style.visibility = 'hidden';
			goSelectTag[goSelectTag.length] = item(i);
			}
		}
	}
	
	
	function fTagInBound(aTag){
	with (VicPopCal.style){
		var l = parseInt(left);
		var t = parseInt(top);
		var r = l+parseInt(width);
		var b = t+parseInt(height);
		var ptLT = fGetXY(aTag);
		return !((ptLT.x>r)||(ptLT.x+aTag.offsetWidth<l)||(ptLT.y>b)||(ptLT.y+aTag.offsetHeight<t));
		}
	}



	with (document)
	{
	write("<Div id='PopCal'  onclick='event.cancelBubble=true' style='POSITION:absolute; VISIBILITY: hidden; bordercolor:#000000;border:2px ridge;width:10;z-index:100;'>");
	write("<table id='popTable' border='1' bgcolor='#eeede8' cellpadding='0' cellspacing='0' style='font-size:12px'>");
	write("<TR>");
	write("<td valign='middle' align='center' style='cursor:default'>");
	write("<table width='176' border='0' cellpadding='0' cellspacing='0'>");
	write("<tr align='center'>");
	write("<td height='22' width='20' name='PrevMonth' style='font-family:\"webdings\";font-size:15px' onClick='fPrevMonth()' onmouseover='this.style.color=\"#ff9900\"' onmouseout='this.style.color=\"\"'>3</td>");
	write("<td width='64' id='yeartd1' style='font-size:12px' onmouseover='yeartd1.style.display=\"none\";yeartd2.style.display=\"\";' onmouseout='this.style.background=\"\"'>");
	write(sxYear + "\u5e74");
	write("</td>");
	write("<td width='64' id='yeartd2' style='display:none' onmouseout='yeartd2.style.display=\"none\";yeartd1.style.display=\"\";'>");
	write("<SELECT style='width:64px;font-size: 12px;font-family:\u5b8b\u4f53;' id='tbSelYear' onChange='fUpdateCal(document.all.tbSelYear.value, document.all.tbSelMonth.value);yeartd2.style.display=\"none\";yeartd1.style.display=\"\";' Victor='Won'>");
	for(i=1930;i<2015;i++){
		write("<OPTION value='"+i+"'>"+i+"\u5e74</OPTION>");
		}
	write("</SELECT>");
	write("</td>");
	write("<td width='72' id='monthtd1' style='font-size:12px' onmouseover='monthtd1.style.display=\"none\";monthtd2.style.display=\"\";' onmouseout='this.style.background=\"\"'>");
	write(gMonths[sxMonth-1]);
	write("</td>");
	write("<td width='72' id='monthtd2' style='display:none' onmouseout='monthtd2.style.display=\"none\";monthtd1.style.display=\"\";'>");
	write("<select style='width:72px;font-size: 12px;font-family:\u5b8b\u4f53;' id='tbSelMonth' onChange='fUpdateCal(document.all.tbSelYear.value, document.all.tbSelMonth.value);monthtd2.style.display=\"none\";monthtd1.style.display=\"\";' Victor='Won'>");
	for (i=0; i<12; i++){
		write("<option value='"+(i+1)+"'>"+gMonths[i]+"</option>");
		}
	write("</SELECT>");
	write("</td>");
	write("<td width='20' name='PrevMonth' style='font-family:\"webdings\";font-size:15px' onclick='fNextMonth()' onmouseover='this.style.color=\"#ff9900\"' onmouseout='this.style.color=\"\"'>4</td>");
	write("</tr>");
	write("</table>");
	write("</td></TR><TR><td align='center'>");
	write("<DIV style='background-color:teal;'><table width='100%' border='0' bgcolor='threedface' cellpadding='0' cellspacing='0'>");
	fDrawCal(giYear, giMonth, giDay, 19, 14);
	write("</table></DIV>");
	write("</td></TR><TR><TD height='20' align='center' valign='bottom'>");
	write("<font style='cursor:hand;font-size:12px' onclick='fSetDate(0,0,0)' onMouseOver='this.style.color=\"#0033FF\"' onMouseOut='this.style.color=0'>\u6e05\u7a7a</font>");
	write("&nbsp;&nbsp;&nbsp;&nbsp;");
	write("<font style='cursor:hand;font-size:12px' onclick='fSetDate(giYear,giMonth,giDay)' onMouseOver='this.style.color=\"#0033FF\"' onMouseOut='this.style.color=0'\u4eca\u5929:"+giYear+"-"+giMonth+"-"+giDay+"</font>");
	write("</TD></TR></TD></TR></TABLE>");
	write("</Div>");
	}

function String2Date( inStr )
  {
      inStr = inStr.replace(/ /g,'');
     if ( inStr.length != 10 ) {
            alert ( ' data format error ');
            return  null ;
       }
      var ss = inStr.split('-');  
      if ( ss.length!=3 )
      {
            alert ( ' data format error ');
            return  null ;
       }
    
       
       var year  =    parseInt(ss[0],10) ;
       var month = 0;
       if ( ss[1].substr(0,1) =='0' )          
           month =    parseInt(ss[1].substr(1,1),10) -  1 ;
        else
           month =    parseInt(ss[1],10) -  1 ;

       var day  = 0 ;
       if ( ss[2].substr(0,1) =='0' )          
           day =    parseInt(ss[2].substr(1,1),10) ;
        else
           day =    parseInt(ss[2],10)  ;
  
        return new Date( year,month,day);  
  }


  function Date2String( inDate )
  {
     var y = inDate.getFullYear();
     var m = inDate.getMonth()+1;
     var mm='';
     if ( m < 10 ) mm = '0' + m;
     else
       mm = '' + m;
       
     var d = inDate.getDate();
     var dd='';
     if ( d < 10 ){ dd = '0' + d;}
     else{
       dd = ''+d;
     }

     return y + '-' + mm + '-'+dd ;
     
  }
