var calendar_html="";
var month;
var day;
var year;   
var delim = new Array(":","/","\\","-"," ",".");
var monthArray = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);

function vd(frm,fieldName,fieldLabel) {
   	//init  
	dtString = eval("frm." + fieldName + ".value");
	// trim date string
	while ((dtString.charAt(0) == " ") && (dtString.length != 0))
		dtString = dtString.substring(1,dtString.length - 1)
	while ((dtString.charAt(dtString.length - 1) == " ") && (dtString.length != 0))
		dtString = dtString.substring(0,dtString.length - 1)
	//get date components
	i = 0; 
	startPos = 0;
	pos = 0;

	//get month
	do {
		pos = dtString.indexOf(delim[i], startPos);
		i++
	}while ((pos == -1) && (i < delim.length));
	if (pos == -1) return false;
	month  = parseInt(dtString.substring(startPos,pos),10);
	startPos = pos + 1;
	if ((month < 1) || (month > 12)) return false;
	
	//get day
	i = 0;
	do {
		pos = dtString.indexOf(delim[i], startPos);
		i++
	}while ((pos == -1) && (i < delim.length));
	if (pos == -1)return false;
	day  = parseInt(dtString.substring(startPos,pos),10);
	startPos = pos + 1;
	if ((day < 1) || (day > monthArray[month])) return false;

	//get year
	year = parseInt(dtString.substring(startPos,dtString.length),10);
	//check for leap year
	if ((month == 2) && (day == 29))
		if ((((year % 4) == 0) && ((year % 100) != 0)) == false){	
			return false;	
			}
	//if we've gotten this far, return true
	return true;
} // end function vd

function validateDate(form, dateFieldName,fieldLabel){
	if (!vd(frm,fieldName,fieldLabel))
		alert(fieldLabel + " does not have a valid date")
}//end function validateDate

function getToday(){
	today = new Date();
	day = today.getDate();
	month = today.getMonth();
	month++;
	year = today.getYear();
	year = (year < 100) ? 1900 + year : year;
}

function getMonth_and_Date(form,fieldName){
	dtString = eval("form." + fieldName + ".value");
	// trim date string
	while ((dtString.charAt(0) == " ") && (dtString.length != 0))
		dtString = dtString.substring(1,dtString.length - 1)
	while ((dtString.charAt(dtString.length - 1) == " ") && (dtString.length != 0))
		dtString = dtString.substring(0,dtString.length - 1)
		
	//get date components
	i = 0;
	startPos = 0;
	pos = 0;

	//get month
	do {
		pos = dtString.indexOf(delim[i], startPos);
		i++
	}
	while ((pos == -1) && (i < delim.length));
	if (pos == -1){//there's no month
		getToday();	
		return;
	}

	month  = parseInt(dtString.substring(startPos,pos),10) - 1;
	startPos = pos + 1;
	if ((month < 0) || (month > 12)){ //no valid month
		getToday();
		return;
	}else
		month++;			
	//get day
	i = 0;
	do {
		pos = dtString.indexOf(delim[i], startPos);
		i++
	}while ((pos == -1) && (i < delim.length));
	if (pos == -1){
		getToday();
		return;
	}
	day  = parseInt(dtString.substring(startPos,pos),10);
	startPos = pos + 1;
	if ((day < 1) || (day > monthArray[month])){
		getToday();
		return;
	}

	//get year
	year = parseInt(dtString.substring(startPos,dtString.length),10)
	year = (year < 100) ? 1900 + year : year;
}//getMonth_and_Date

function putDate(form,fieldName,value){
	eval("form." + fieldName + ".value=" + value)
}

function gm(num) {
 var mydate = new Date();
 mydate.setDate(1);
 mydate.setMonth(num-1);
 var datestr = "" + mydate;
 return datestr.substring(4,7);
}

function gy(num) {
  var mydate = new Date();
  return (1900 + eval(mydate.getYear()) - 4 + num);
}

function ud(mon) {
  var i = mon.selectedIndex;
  if(mon.options[i].value == "2") {
    document.myform.day.options[30] = null;
    document.myform.day.options[29] = null;
    var j = document.myform.year.selectedIndex;
    var year = eval(document.myform.year.options[j].value);
    if ( ((year%400)==0) || (((year%100)!=0) && ((year%4)==0)) ) {
      if (document.myform.day.options[28] == null) {
        document.myform.day.options[28] = new Option("29");
        document.myform.day.options[28].value = "29";
      }
    } else {
      document.myform.day.options[28] = null;
    }
  }

  if(mon.options[i].value == "1" ||
     mon.options[i].value == "3" ||
     mon.options[i].value == "5" ||
     mon.options[i].value == "7" ||
     mon.options[i].value == "8" ||
     mon.options[i].value == "10" ||
     mon.options[i].value == "12")
  {
    if (document.myform.day.options[28] == null) {
      document.myform.day.options[28] = new Option("29");
      document.myform.day.options[28].value = "29";
    }
    if (document.myform.day.options[29] == null) {
      document.myform.day.options[29] = new Option("30");
      document.myform.day.options[29].value = "30";
    }
    if (document.myform.day.options[30] == null) {
      document.myform.day.options[30] = new Option("31");
      document.myform.day.options[30].value = "31";
    }
  }

  if(mon.options[i].value == "4" ||
     mon.options[i].value == "6" ||
     mon.options[i].value == "9" ||
     mon.options[i].value == "11")
  {
    if (document.myform.day.options[28] == null) {
      document.myform.ay.options[28] = new Option("29");
      document.myform.day.options[28].value = "29";
    }

    if (document.myform.day.options[29] == null) {
      document.myform.day.options[29] = new Option("30");
      document.myform.day.options[29].value = "30";
    }

    document.myform.day.options[30] = null;
  }

  if (document.myform.day.selectedIndex == -1)
    document.myform.day.selectedIndex = 0;
}

function showdate() {
  var i = document.myform.month.selectedIndex;
  var j = document.myform.day.selectedIndex;
  var k = document.myform.year.selectedIndex;
  alert(document.myform.year.options[k].value + "-" +
	   document.myform.month.options[i].value + "_" +
        document.myform.day.options[j].value + "_" );
}

function calccal() {
  var return_val="";
  var monthname = new Array(12);
  monthname[0] = "一月";
  monthname[1] = "二月";
  monthname[2] = "三月";
  monthname[3] = "四月";
  monthname[4] = "五月";
  monthname[5] = "六月";
  monthname[6] = "七月";
  monthname[7] = "八月";
  monthname[8] = "九月";
  monthname[9] = "十月";
  monthname[10] = "十一月";
  monthname[11] = "十二月";
  var endday = calclastday(eval(month),eval(year));
  mystr = month + "/01/" + year;
  mydate = new Date(mystr);
  firstday = mydate.getDay();
  var cnt = 0;
  var day = new Array(6);
  for (var i=0; i<6; i++)
    day[i] = new Array(7);
  for (var r=0; r<6; r++)
  {
    for (var c=0; c<7; c++)
    {
      if ((cnt==0) && (c!=firstday))
        continue;
      cnt++;
      day[r][c] = cnt;
      if (cnt==endday)
        break;
    }
    if (cnt==endday)
      break;
  }

  return_val="<TABLE  WIDTH=\"100%\" BORDER=\"1\">";

  var selectedmonth = eval(month) - 1;
  var today = new Date();
  var thisyear = today.getYear() + 1900;
  var selectedyear = eval(year) - thisyear + 4;

  var conditionalpadder = "";
  for(r=0; r<6; r++)
  {
   return_val+=("<TR height='22' valign=middle align=center>");
   for(c=0; c<7; c++)
   {
    
    if(day[r][c] != null) {
      if (day[r][c] < 10){
        conditionalpadder = "&nbsp;"
      }else{
        conditionalpadder = "";
	  }
	  return_val+=("<TD style='cursor:hand' onmouseover='javascript:overMe(this);' onmouseout='javascript:outMe(this);' title='"+year+"."+month+"."+day[r][c]+"' onclick='javascript:return_day("+year + "," + month + "," + day[r][c]+");'>");
	  if(c==0||c==6){
		  return_val+="<FONT COLOR='RED'>"+(conditionalpadder + day[r][c] + conditionalpadder)+"</FONT>"
	  }else{
		  return_val+="<FONT COLOR='BLACK'>"+(conditionalpadder + day[r][c] + conditionalpadder)+"</FONT>"
	  }
    }else{
	  return_val+=("<TD>");
	}
    return_val+=("</TD>");
   }
   return_val+=("</TR>");
  }
  return_val+=("</TABLE>");
  return  return_val
}

function calclastday(month,year) {
  if ((month==2) && ((year%4)==0))
    return 29;
  if ((month==2) && ((year%4)!=0))
    return 28;
  if ((month==1) || (month == 3) || (month == 5) || (month == 7) ||
      (month==8) || (month == 10) || (month ==12))
    return 31;
  return 30;
}

function calcnextmonth(month) {
  if (month=="12")
    return "1";
  else
    return (eval(month)+1);
}

function calcnextyear(month,year) {
  if (month=="12")
    return (eval(year)+1);
  else
    return (year);
}

function calcprevmonth(month) {
  if (month=="1")
    return "12";
  else
    return (eval(month)-1);
}

function calcprevyear(month,year) {
  if (month=="1")
    return (eval(year)-1);
  else
    return (year);
}
//---------------------------------------------------------------------------------------------------------------------
//----选择日期函数---------  2002-4-12 liugan----------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//zb modify at 2002-4-17
frm_current="frm_docupdate";
//path_calendar:calendar_show.jsp所在的路径,相对于调用者的路径;
//zb add at 2002-5-28
path_calendar="../../../common/";

function putcal(obj){
	getToday();
	var temp_obj=eval(frm_current+"."+obj);
	//var default_=temp_obj.$defaultValue;
	calendar_html=calccal();//调用日历代码生成函数	
	//显示模式窗体
	var return_date=window.showModalDialog(path_calendar+"calendar_show.jsp",this,"status:no;help:no;dialogWidth:220px;dialogHeight:290px;center:1"); 
	if(return_date!=null){
		temp_obj.value=return_date;
	}
}

