﻿// JScript 文件


			var gdCtrl = new Object();
			var goSelectTag = new Array();
			var gcGray = "#808080";
			var gcToggle = "#cccccc";
			var gcToggle1 = "#ffffff";
			var gcBG = "#ffffff";
			var gcToday="yellow"

			var gdCurDate ;
			var giYear ;
			var giMonth ;
			var giDay ;

			var gdToday = new Date();
			var gigdTodayYear = gdToday.getFullYear();
			var gigdTodayMonth = gdToday.getMonth()+1;
			var gigdTodayDay = gdToday.getDate();

			var RangeBeg;
			var RangeEnd;

			var gsOutOfRange="123456789";	

			function fPopCalendar(popCtrl,regBeg,regEnd){
			if (popCtrl.value!=''){
			var d= popCtrl.value.split("-")	
				gdCurDate = new Date(d[0], (d[1]-1), d[2]);
				}
			else
				gdCurDate = new Date();
				
			giYear = gdCurDate.getFullYear();
			giMonth = gdCurDate.getMonth()+1;
			giDay = gdCurDate.getDate();


			RangeBeg=!(regBeg)? '0/0/0':regBeg;
			RangeEnd=!(regEnd)? '9999/12/31':regEnd;

				
			event.cancelBubble=true;
			gdCtrl = popCtrl;
			fSetYearMon(giYear, giMonth);
			var point = fGetXY(popCtrl);
			with (VicPopCal.style) {
  				left = point.x;
				top  = point.y+popCtrl.offsetHeight+1;
				width = VicPopCal.offsetWidth;
				height = VicPopCal.offsetHeight;
				fToggleTags(point);
				visibility = 'visible';
			}
			VicPopCal.focus();
			}

			function fSetDate(iYear, iMonth, iDay){
			if (Datecomp(RangeBeg,iYear+'/'+iMonth+'/'+iDay)!=0)      
			if (Datecomp(RangeEnd,iYear+'/'+iMonth+'/'+iDay)!=2) { 
				if(iMonth<10){iMonth="0"+iMonth;}
				if(iDay<10){iDay="0"+iDay;}
				gdCtrl.value = iYear+"-"+iMonth+"-"+iDay; 
				fHideCalendar();	
				} 
			}

			function fHideCalendar(){
			VicPopCal.style.visibility = "hidden";			
			}

			function fSetSelected(aCell){
			var iOffset = 0;
			var iYear = parseInt(tbSelYear.value);
			var iMonth = parseInt(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, iCellHeight, iDateTextSize) {
			var WeekDay = new Array("日","一","二","三","四","五","六");
			var styleTD = " bgcolor='"+gcBG+"' bordercolor='"+gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style=' "+iDateTextSize+"";            
				
			with (document) {
				write("<tr>");
				for(i=0; i<7; i++)
					write("<td "+styleTD+"color:#990099' >" + WeekDay[i] + "</td>");
				write("</tr>");

  				for (w = 1; w < 7; w++) {
					write("<tr>");
					for (d = 0; d < 7; d++) {						
						write("<td id=calCell "+styleTD+"cursor:hand;' onMouseOver='this.bgColor=gcToggle' onMouseOut='this.bgColor=gcBG' onclick='fSetSelected(this)'>");

						write("<font id=cellText Victor='Liming Weng'> </font>");
						write("</td>")
					}
					write("</tr>");
				}
			}
			}

			function fUpdateCal(iYear, iMonth) {
			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;
				
						innerHTML = -myMonth[w+1][d];		
							
						var aMonth=(Victor<10)?iMonth-1:iMonth+1;
						var aYear=iYear;
						if (aMonth<1){
							aYear--;
							aMonth=12;
						}else if (aMonth>12) {
							aYear++;
							aMonth=1;
						}			
				
							
						if (Datecomp(RangeBeg,aYear+'/'+aMonth+'/'+(-myMonth[w+1][d]))==0 ||  Datecomp(RangeEnd,aYear+'/'+aMonth+'/'+(-myMonth[w+1][d]))==2)  					
								innerHTML ='<strike title='+gsOutOfRange+'>'+(-myMonth[w+1][d])+'</strike>';
									
						
				
						}else{				
							if (d==0)
								color="red"
							else if	(d==6)
								color="darkcyan"
							else
								color="black"	
							
					
					innerHTML =""+ myMonth[w+1][d]+"";	
					if (Datecomp(RangeBeg,iYear+'/'+iMonth+'/'+(myMonth[w+1][d]))==0 || Datecomp(RangeEnd,iYear+'/'+iMonth+'/'+(myMonth[w+1][d]))==2) 
							innerHTML ='<strike title='+gsOutOfRange+'>'+ myMonth[w+1][d]+'</strike>';	
						
					if(iYear==giYear && iMonth==giMonth && (myMonth[w+1][d])==giDay)
						innerHTML ="<div style='background-color:"+gcToday+"'>"+ innerHTML+"</div>";	
									
					
						}
					}
						
					}
					
			}

			function fSetYearMon(iYear, iMon){
			tbSelMonth.options[iMon-1].selected = true;
			for (i = 0; i < tbSelYear.length; i++)
				if (tbSelYear.options[i].value == iYear)
					tbSelYear.options[i].selected = true;
			fUpdateCal(iYear, iMon);
			}

			function fPrevMonth(){
			var iMon = tbSelMonth.value;
			var iYear = tbSelYear.value;

			if (--iMon<1) {
				iMon = 12;
				iYear--;
			}

			fSetYearMon(iYear, iMon);
			}

			function fNextMonth(){
			var iMon = tbSelMonth.value;
			var iYear = tbSelYear.value;

			if (++iMon>12) {
				iMon = 1;
				iYear++;
			}

			fSetYearMon(iYear, iMon);
			}

			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);
 					}
			}
			}

			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));
			}
			}

			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 Datecomp(fdate,ldate){
			var f= fdate.split("/");
			var l= ldate.split("/");
				if(f[0]-0<l[0]-0)
  					return 2;
  				else if	(f[0]-0==l[0]-0)
  					if(f[1]-0<l[1]-0)
  						return 2;
  					else if (f[1]-0==l[1]-0)
  						if(f[2]-0<l[2]-0)
  							return 2;  		
  		  				else if(f[2]==l[2]) 
  							return 1;
  						else
  							return 0;
  					else
  						return 0;   	
   				else
  					return 0;  
			}

			var gMonths = new Array("&nbsp;一月","&nbsp;二月","&nbsp;三月","&nbsp;四月","&nbsp;五月","&nbsp;六月","&nbsp;七月","&nbsp;八月","&nbsp;九月","&nbsp;十月","&nbsp;十一月","&nbsp;十二月");

			with (document) {
			write("<Div id='VicPopCal' onclick='event.cancelBubble=true' style='POSITION:absolute;visibility:hidden;width:10;z-index:100;'>");
			write("<table border='0' bgcolor='#F0F6EC' id='Calendar'>");
			write("<TR>");
			write("<td valign='middle' align='center'><input type='button' name='PrevMonth' value='<' style='height:20;width:20;' onClick='fPrevMonth()'>");
			write("&nbsp;<SELECT name='tbSelYear' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won'>");
			for(i=2000;i<2010;i++)
				write("<OPTION value='"+i+"'>"+i+"</OPTION>");
			write("</SELECT>");
			write("&nbsp;<select name='tbSelMonth' onChange='fUpdateCal(tbSelYear.value, tbSelMonth.value)' Victor='Won'>");
			for (i=0; i<12; i++)
				write("<option value='"+(i+1)+"'>"+gMonths[i]+"</option>");
			write("</SELECT>");
			write("&nbsp;<input type='button' name='PrevMonth' value='>' style='height:20;width:20;' onclick='fNextMonth()'>");
			write("</td>");
			write("</TR><TR>");
			write("<td align='center'>");
			write("<DIV style='background-color:#cccccc'><table width='100%' border='1' cellpadding='0'  cellspacing='1' style='cursor:hand' bordercolor='#ffffff'>");
			fDrawCal(giYear, giMonth, 12, 12);
			write("</table></DIV>");
			write("</td>");
			write("</TR><TR><TD align='center'>");
			write("<B style='cursor:hand;' onclick='fSetDate("+gigdTodayYear+","+gigdTodayMonth+","+gigdTodayDay+");' onMouseOver='this.style.color=gcToggle1' onMouseOut='this.style.color=0'>今天是:"+gigdTodayYear+""+gigdTodayMonth+"月"+gigdTodayDay+"日</B>");
			write("</TD></TR>");
			write("</TABLE></Div>");
			}
			function window.document.onclick(){
				fHideCalendar();				
			}
			
	
