var isIE = navigator.appVersion.match(/MSIE/) == "MSIE";
var seletcFlag = 0; // 1 大于现在的时间不能被选中 2 小于现在的时间不能被选中 0 没有限制
var pregrantDays = 36000;

//有效的时间范围
var sd_date_start,sd_date_end,sd_g_object
var sd_today = new Date();
var sd_separator="-";
var sd_inover=false;

function sd_change_date(temp, mode) {
	var t_month,t_year;

	var cele_date_month = document.getElementById('cele_date_month');
	var  cele_date_year = document.getElementById('cele_date_year');
    if (mode){
        if(mode==1) {
	        t_month=parseInt(cele_date_month.value, 10) + parseInt(temp,10);
        } else {
        	t_month=parseInt(temp)
        }
        
        if (t_month<cele_date_month.options[0].text) {
            cele_date_month.value=cele_date_month.options[cele_date_month.length-1].text;
            sd_change_date(parseInt(cele_date_year.value,10)-1,0);
            }
        else{
            if (t_month>cele_date_month.options[cele_date_month.length-1].text){
                cele_date_month.value=cele_date_month.options[0].text;
                sd_change_date(parseInt(cele_date_year.value,10)+1,0);
             } else {cele_date_month.value=t_month;
                 sd_set_cele_date(cele_date_year.value,cele_date_month.value);
            }
        }
    } else{
        t_year=parseInt(temp,10);

        if (t_year<cele_date_year.options[0].text) {
            cele_date_year.value=cele_date_year.options[0].text;
            sd_set_cele_date(cele_date_year.value,1);
       	} else{
            if (parseInt(t_year,10)>parseInt(cele_date_year.options[cele_date_year.length-1].text,10)){
                cele_date_year.value=cele_date_year.options[cele_date_year.length-1].text;
                sd_set_cele_date(cele_date_year.value,12);
            } else {cele_date_year.value=t_year;
                 sd_set_cele_date(cele_date_year.value,cele_date_month.value);
            }
        }
    }
document.getElementById('cele_date').focus();
}

function getChineseMonth(i) {
	switch (i) {
		case 1:
			return '一月'
		case 2:
			return '二月'
		case 3:
			return '三月'
		case 4:
			return '四月'
		case 5:
			return '五月'
		case 6:
			return '六月'
		case 7:
			return '七月'
		case 8:
			return '八月'
		case 9:
			return '九月'
		case 10:
			return '十月'
		case 11:
			return '十一月'
		case 12:
			return '十二月'
		default:
			break;
	}

}

function sd_init(d_start,d_end) {
     var temp_str;
     var i=0
     var j=0
     document.getElementById('cele_date').innerHTML="";
     
     temp_str="<table border=\"1\" width=\"185\" style=\"margin-left:0px;border-collapse:collapse;text-align:center;\" bordercolor=\"#D6EBBA\"><tr><td colspan=7 onmouseover=\"sd_overcolor(this)\">";
     temp_str+="<input type=\"Button\" value=\"<\" onclick=\"sd_change_date(-1,1)\" onmouseover=\"sd_getlayerfocus()\"  style=\"color: #000000; background-color: #FFFFFF;width:25px; padding-left:5px;cursor: pointer\">";
     temp_str+="";
     temp_str+="<select name=\"cele_date_year\" id=\"cele_date_year\" length=\"8\" language=\"javascript\" onchange=\"sd_change_date(this.value,0)\" onmouseover=\"sd_getlayerfocus()\" onblur=\"sd_getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset;width:55px; background-color: #F4F8FB\">"

     for (i = d_start; i <= d_end; i++) {
     	temp_str+="<OPTION value=\""+i.toString() + "\">" + i.toString() + "</OPTION>";
     }
     
     temp_str+="</select>";
     temp_str+="";
     temp_str+="<select name=\"cele_date_month\" id=\"cele_date_month\" language=\"javascript\" onchange=\"sd_change_date(this.value,2)\" onmouseover=\"sd_getlayerfocus()\" onblur=\"sd_getlayerfocus()\" style=\"font-size: 9pt; border: 1px #666666 outset;width:60px; background-color: #F4F8FB\">"

     for (i = 1; i <= 12; i++) {
    	 temp_str+="<OPTION value=\"" + i.toString() + "\">" + getChineseMonth(i) + "</OPTION>";
     }
     
     temp_str+="</select>";
     temp_str+="";
     temp_str+="<input type=\"Button\" value=\">\" onclick=\"sd_change_date(1,1)\" onmouseover=\"sd_getlayerfocus()\"  style=\"color: #000000; background-color: #FFFFFF;width:20px; padding-left:5px;cursor: pointer\">";
     temp_str+="";
     //temp_str+="<input type=\"Button\" value=\"空\" onclick=\"clear_date()\" onmouseover=\"sd_getlayerfocus()\"  style=\"color: #000000; background-color: #FFFFFF;width:20px;padding-left:3px; cursor: pointer\">";
	 temp_str+="<input type=\"Button\" value=\"关\" onclick=\"document.getElementById('cele_date').style.display='none';\" onmouseover=\"sd_getlayerfocus()\"  style=\"color: #000000; background-color: #FFFFFF;width:20px;padding-left:3px; cursor: pointer\">";
	 
  	 temp_str+="</td></tr><tr bgColor=\"#FFFFFF\"><td onmouseover=\"sd_overcolor(this)\">"
     temp_str+="<font color=red>日</font></td><td >";temp_str+="一</td><td>"; temp_str+="二</td><td>"; temp_str+="三</td><td>"
     temp_str+="四</td><td>";temp_str+="五</td><td>"; temp_str+="<font color=red>六</td></font></tr>";
     
     for (i=1 ;i<=6 ;i++) {
     	temp_str+="<tr>";
        
        for(j=1;j<=7;j++){
        	temp_str+="<td name=\"c"+i+"_"+j+"\"id=\"c"+i+"_"+j+"\" style=\"CURSOR: pointer\" style=\"COLOR:#000000\" language=\"javascript\" onmouseover=\"sd_overcolor(this)\" onmouseout=\"sd_outcolor(this)\" onclick=\"sd_td_click(this)\"></td>"
        }
        
        temp_str+="</tr>"
     }
     
     temp_str+="</td></tr></table>";
     document.getElementById('cele_date').innerHTML=temp_str;;
}
function sd_set_cele_date(year,month) {
   year = year;

   var i,j,p,k
   var nd=new Date(year,month-1,1);
   event.cancelBubble=true;

   document.getElementById('cele_date_year').value=year;
   document.getElementById('cele_date_month').value=month;
   k=nd.getDay()-1
   
	for (i=1;i<=6;i++) {
		for(j=1;j<=7;j++) {
	  		document.getElementById("c"+i+"_"+j).innerHTML='';
	    	document.getElementById("c"+i+"_"+j).bgColor='#eeeeee';
	    	
	    	if (!isIE) {
	  			document.getElementById("c"+i+"_"+j).style.cursor='default';
	    	}
	  	}
	}
	
	var today = new Date();

	while(month-1==nd.getMonth()) { 
		j=(nd.getDay() +1);
      	p=parseInt((nd.getDate()+k) / 7)+1;
      	document.getElementById("c"+p+"_"+j).innerHTML=nd.getDate();
      	document.getElementById("c"+p+"_"+j).style.cursor='pointer';
		document.getElementById("c"+p+"_"+j).bgColor='#FFFFFF';
		
		if (j == 1 || j == 7) {
			document.getElementById("c"+p+"_"+j).style.color='red';
		} else {
			document.getElementById("c"+p+"_"+j).style.color='#215DC6';
		}
		
      	if ((nd.getDate()==sd_today.getDate())&&(document.getElementById('cele_date_month').value==sd_today.getMonth()+1)&&(document.getElementById('cele_date_year').value==sd_today.getFullYear())){
      	 	document.getElementById("c"+p+"_"+j).bgColor='#EFFB64';
      	}
      	
      	if ((seletcFlag == 1 && nd > today) || ((seletcFlag == 2 && nd < today) || (seletcFlag == 2 && nd > new Date(today.valueOf() + 86400000 * pregrantDays)))) {
			document.getElementById("c"+p+"_"+j).bgColor='#eeeeee';
			document.getElementById("c"+p+"_"+j).style.color='#000000';
			
			if (!isIE) {
				document.getElementById("c"+p+"_"+j).style.cursor='default';
			}
      	}
      	
      	nd=new Date(nd.valueOf() + 86400000)
    }
}

//var sd_afterTime=" 00:00:00";
var sd_afterTime="";
function sd_showdate(eP, d_start, d_end, t_object, ev) {	
	var cele_date_div = document.getElementById('cele_date');
	cele_date_div.style.display="";
	cele_date_div.style.zIndex=99
	var s,cur_d
	var eT = eP.offsetTop;
	var eH = eP.offsetHeight+eT;
	var dH = cele_date_div.style.pixelHeight;
	var sT = document.body.scrollTop;
	var sL = document.body.scrollLeft;
	var oldTime=t_object.value;
	var beforetime="";
	if (oldTime.length>10){
	    sd_afterTime=oldTime.substring(10,oldTime.length);
	    beforetime=oldTime.substring(0,10);
	}
	
	if (!isIE) {
		event = ev;
	}

	event.cancelBubble=true;
	cele_date_div.style.left = event.clientX + document.documentElement.scrollLeft - 20 + sL + 'px';
	cele_date_div.style.top = event.clientY + document.documentElement.scrollTop + 15 + sT + 'px';
	
//	if (cele_date_div.style.posLeft+cele_date_div.clientWidth>document.body.clientWidth) {
//		cele_date_div.style.posLeft+=eP.offsetWidth-cele_date_div.clientWidth;
//	}

	if (d_start!=""){
	    if (d_start=="today"){
	        sd_date_start=new Date(sd_today.getFullYear(),sd_today.getMonth(),sd_today.getDate());
	    }else{
	        s=d_start.split(sd_separator);
	        sd_date_start=new Date(s[0],s[1]-1,s[2]);
	    }
	}else{
	    sd_date_start=new Date(1900,1,1);
	}
	
	if (d_end!=""){
	    s=d_end.split(sd_separator);
	    sd_date_end=new Date(s[0],s[1]-1,s[2]);
	}else{
	    sd_date_end=new Date(3000,1,1);
	}
	
	sd_g_object=t_object;
	
	cur_d = new Date();
	if (beforetime.length>9){
	    s=beforetime.split(sd_separator);
	    cur_d=new Date(s[0],s[1]-1,s[2]);
	}
	
	sd_set_cele_date(cur_d.getFullYear(),cur_d.getMonth()+1);
	cele_date_div.style.display="block";
	cele_date_div.focus();
}
function sd_td_click(t_object) {
	var today = new Date();
	var selectDate = new Date(document.getElementById('cele_date_year').value, document.getElementById('cele_date_month').value - 1, parseInt(t_object.innerHTML, 10));

	if ((seletcFlag == 1 && selectDate > today) || ((seletcFlag == 2 && selectDate < today) || (seletcFlag == 2 && selectDate > new Date(today.valueOf() + 86400000 * pregrantDays)))) {
		return;
	}
	
	var t_d
	if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 )
	{ 
		var cele_date_month = document.getElementById('cele_date_month');
		var cele_date_year = document.getElementById('cele_date_year');
		t_d=new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML)
		if (t_d<=sd_date_end && t_d>=sd_date_start)
		{
			var year = cele_date_year.value;
			var month = cele_date_month.value;
			var day = t_object.innerHTML;
			if (parseInt(month)<10) month = "0" + month;
			if (parseInt(day)<10) day = "0" + day;
			
			sd_g_object.value=year+sd_separator+month+sd_separator+day+sd_afterTime;
			document.getElementById('cele_date').style.display="none";
		};
	}

}
function clear_date() {
	sd_g_object.value="";
	document.getElementById('cele_date').style.display="none";
}
function sd_h_cele_date()
{
	document.getElementById('cele_date').style.display="none";
}

var prevColor='';

function sd_overcolor(obj) {
	prevColor = obj.style.color;
  if (obj.style.cursor=="pointer"){
  	obj.style.backgroundColor = "red";
  	obj.style.color = "#FFFFFF";
  	sd_inover=true;
  	document.getElementById('cele_date').focus();
  }
}

function sd_outcolor(obj) {
  obj.style.color = prevColor;
  obj.style.backgroundColor = "";
  sd_inover=false;
}


function sd_getNow(o){
    var Stamp=new Date();
    var year = Stamp.getFullYear();
    var month = Stamp.getMonth()+1;
    var day = Stamp.getDate();
    if(month<10){
	month="0"+month;
    }
    if(day<10){
	day="0"+day;
    }
    o.value=year+sd_separator+month+sd_separator+day;
}
function sd_hilayer()
{
	if (sd_inover==false)
	{
		var lay=document.getElementById('cele_date');
		lay.style.display="none";
	}
}
function sd_getlayerfocus()
{
	sd_inover=true;
}
function sd_lostlayerfocus()
{
	sd_inover=false;
}
function sd_body_init(){

	document.write("<div name=\"cele_date\" id=\"cele_date\"  style=\"border:1px solid #D6EBBA;display:none;LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:999\" onClick=\"event.cancelBubble=true;\" onBlur=\"sd_hilayer()\" onMouseout=\"sd_lostlayerfocus()\"></div>");
	sd_init(2008,2008);
}

function born() {
	document.getElementById('cele_date').style.display='none';	
	var now = new Date();
	sd_init(now.getFullYear() - 20, now.getFullYear());
	seletcFlag = 1;
}

function pregrant() {
	document.getElementById('cele_date').style.display='none';
	var now = new Date();
	sd_init(now.getFullYear(), now.getFullYear() + 10);
	/*
	if (now.getMonth() + 1 + 10 > 12) {
		sd_init(now.getFullYear(), now.getFullYear() + 1);
	} else {
		sd_init(now.getFullYear(), now.getFullYear());
	}
	*/
	seletcFlag = 2;
}
