﻿var today = new Date();
var separator="-"; 
var inover=false;
//Default_day,Default_month,Default_year
var Default_day = today.getDate();       
var Default_month = today.getMonth() + 1;       
var Default_year = today.getFullYear();       
var Default_date = Default_year + "-" + Default_month + "-" + Default_day;       
var changeFunction =null;
var changeid = false;
var currentDay;

function change_date(temp,mode,index)
{
/*
	if(arguments.length==3)
		index=index=='2'?'2':'';
	else
	    index = '';
	alert(index);*/
change_double_date(temp, mode, index);
/*
	if(sod=='2')
	{
		if(index=="2")
			{
				var tempdate=new Date(document.getElementById("cele_date_year2").value,parseInt(document.getElementById("cele_date_month2").value,10)-1,1);
				tempdate.setMonth(parseInt(tempdate.getMonth(),10)-1);
				document.getElementById("cele_date_year").value=tempdate.getFullYear().toString();
				document.getElementById("cele_date_month").value=(parseInt(tempdate.getMonth(),10)+1).toString();
				set_double_calendar(tempdate.getFullYear(),parseInt(tempdate.getMonth(),10)+1,'');
			}
		if(index=="")
		{
				var tempdate=new Date(document.getElementById("cele_date_year").value,parseInt(document.getElementById("cele_date_month").value,10)-1,1);
				tempdate.setMonth(parseInt(tempdate.getMonth(),10)+1);
				
				document.getElementById("cele_date_year2").value=tempdate.getFullYear().toString();
				document.getElementById("cele_date_month2").value=(parseInt(tempdate.getMonth(),10)+1).toString();
				set_double_calendar(tempdate.getFullYear(),parseInt(tempdate.getMonth(),10)+1,'2');
		}
	}*/
	display_btn_prvnxt();
 
}
function change_double_date(temp,mode,index)
{
	var t_month,t_year;
	var monthobj,yearobj,monthobj2,yearobj2;
		monthobj=document.getElementById("cele_date_month");
		yearobj=document.getElementById("cele_date_year");
		/*
		var start=date_start;
		var end=date_end;
		if(index=='2')
		{
			var date_start2=new Date(date_start.getFullYear(),date_start.getMonth(),date_start.getDate());
			date_start2.setMonth(eval(parseInt(date_start.getMonth(),10)+1));
			var date_end2=new Date(date_end.getFullYear(),date_end.getMonth(),date_end.getDate());;
			date_end2.setMonth(eval(parseInt(date_end.getMonth()) + 1));
			start=date_start2;
			end=date_end2;
		}
	*/
	if (mode){
        if(mode==1)
      	  t_month=parseInt(monthobj.value,10)+parseInt(temp,10);
		else
       	 t_month=parseInt(temp,10);
			
		if (t_month<monthobj.options[0].innerHTML) {
			resetMonthSelect(parseInt(yearobj.value,10)-1,index);
            monthobj.value=monthobj.options[monthobj.length-1].innerHTML;
	        change_double_date(parseInt(yearobj.value,10)-1,0,index);
            }
        else{
            if (t_month>monthobj.options[monthobj.length-1].innerHTML)
			{
				resetMonthSelect(parseInt(yearobj.value,10)+1,index);
                monthobj.value=monthobj.options[0].innerHTML;
            	change_double_date(parseInt(yearobj.value,10)+1,0,index);
                }            
            else
                {monthobj.value=t_month;
                 set_double_calendar(yearobj.value,monthobj.value,index);                
                }
        }
    }  
    else{
        t_year=parseInt(temp,10);
        
        if (t_year<yearobj.options[0].innerHTML) {
            yearobj.value=yearobj.options[0].innerHTML;
			set_double_calendar(yearobj.value,start.getMonth(),index);                
            }
        else{
            if (parseInt(t_year,10)>parseInt(yearobj.options[yearobj.length-1].innerHTML,10)){
                yearobj.value=yearobj.options[yearobj.length-1].innerHTML;
                set_double_calendar(yearobj.value,end.getMonth(),index);                
                }            
            else
                {yearobj.value=t_year;
				
				if(date_start.getFullYear()==parseInt(t_year,10)&&date_start.getMonth()>eval(monthobj.value-1))
					set_double_calendar(yearobj.value,eval(start.getMonth()+1),index);
				else if(date_end.getFullYear()==parseInt(t_year,10)&&date_end.getMonth()<eval(monthobj.value-1))
				 	set_double_calendar(yearobj.value,eval(end.getMonth()+1),index);
				else
                 set_double_calendar(yearobj.value,monthobj.value,index);     
				
                }
        }
    }

}

function display_btn_prvnxt()
{
		monthobj=document.getElementById("cele_date_month");
		yearobj=document.getElementById("cele_date_year");
		if(yearobj.value==date_end.getFullYear()&&parseInt(monthobj.value,10)>parseInt(date_end.getMonth(),10))
			document.getElementById("btn_nxt").style.display="none";
		else
			document.getElementById("btn_nxt").style.display="block";
		if(yearobj.value==date_start.getFullYear()&&parseInt(monthobj.value,10)<parseInt(date_start.getMonth(),10)+2)
		    document.getElementById("btn_prv").style.visibility = "hidden";
		else
		    document.getElementById("btn_prv").style.visibility = "visible";
		document.getElementById("msgDiv").focus();
		//alert(document.getElementById("msgDiv").innerHTML);
	
}
function init(d_start,d_end,sord)
{
	var curday=today.getFullYear()+"-"+eval(today.getMonth()+1)+"-"+today.getDate();
     var temp_str="";
     var i=0
     var j=0
	 var minYear,maxYear;
     date_start=new Date(1980,7,1)
     date_end=new Date(2020,8,1)
	 minYear=d_start!="" ? parseInt((d_start.split(separator))[0],10):date_start.getFullYear();
	 maxYear=d_end!="" ? parseInt((d_end.split(separator))[0],10):date_end.getFullYear();
     temp_str+="";
	 var temp_top="";
	 var str_btn_prv = "<span class='prev' ><img id='btn_prv'  src='/images/prev.gif' onclick=\"change_date(-1,1)\" onmouseover=\"getlayerfocus()\" \/>&nbsp;<\/span>"; 
	 var str_btn_nxt = "<span><img id='btn_nxt' src=\"/images/clanext.gif\" onclick=\"change_date(1,1)\" onmouseover=\"getlayerfocus();\" \/></span>"; 
	 var Year_Select1_NameId=" name=\"cele_date_year\" id=\"cele_date_year\" onchange=\"change_date(this.value,0,'')\"";
	 var Year_Select2_NameId=" name=\"cele_date_year2\" id=\"cele_date_year2\" onchange=\"change_date(this.value,0,'2')\"";
	 var Month_Select1_NameId=" name=\"cele_date_month\" id=\"cele_date_month\" onchange=\"change_date(this.value,2,'')\"";
	 var Month_Select2_NameId=" name=\"cele_date_month2\" id=\"cele_date_month2\" onchange=\"change_date(this.value,2,'2')\"";
	 var Date_Day_td1="";
	 var Date_Day_td2="";
	 for (i=1 ;i<=6 ;i++)
     {
     Date_Day_td1+="<tr>";
	 Date_Day_td2+="<tr>";
        for(j=1;j<=7;j++){
            Date_Day_td1+="<td name=\"c"+i+"_"+j+"\" id=\"c"+i+"_"+j+"\"   onclick=\"td_click(this,'')\"></td>";
			Date_Day_td2+="<td name=\"c"+i+"_"+j+"2\" id=\"c"+i+"_"+j+"2\"  onclick=\"td_click(this,'2')\"></td>"
            }
     Date_Day_td1+="</tr>";
	 Date_Day_td2+="</tr>";  
     }
     temp_top += "<table cellspacing='0' cellpadding='0' class='calendar'>";
	 temp_top+="        <TBODY>";
     temp_top+="        <TR >";
     temp_top += "<th colspan='7' class='th1'>";
	 temp_top+=" $$btn_prv$$";
 	 temp_top+="<select $$Year_Select_NameId$$ onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\" class='s1'>";

     for (i=minYear;i<=maxYear;i++)
     {
     	temp_top+="<option value=\""+i.toString()+"\">"+i.toString()+"</option>";
     }
	
	temp_top+="<\/SELECT>";
	temp_top+="<SELECT $$Month_Select_NameId$$   ";
	temp_top+="onmouseover=\"getlayerfocus()\" onblur=\"getlayerfocus()\">";
	
	  for (i=1;i<=12;i++)
		 {
			temp_top+="<option value=\""+i.toString()+"\">"+i.toString()+"</option>";
		 }
	temp_top+="<\/SELECT>";
	temp_top += "$$btn_nxt$$";
	temp_top += "<img src='/images/claclose.gif' class='close' onclick=\"Divclose();\" \/>";
	temp_top += "<\/th><\/TR>";
	temp_top += "<tr><th id='Today_tr' colspan='7' class='th2' onclick=\"Settoday('" + curday + "')\" style='cursor:pointer;'>Today:" + curday + "<\/th><\/tr>";
	

temp_str+="<tr>"
	temp_str+="                <TH>Sun<\/TH>";
	temp_str+="                <TH >Mon<\/TH>";
	temp_str+="                <TH>Tue<\/TH>";
	temp_str+="                <TH>Wed<\/TH>";
	temp_str+="                <TH >Thu<\/TH>";
	temp_str+="                <TH>Fri<\/TH>";
	temp_str+="                <TH>Sat<\/TH>";
	temp_str += "              <\/TR>";
	temp_str += "              $$Date_day_td$$";
	temp_str += "<\/tbody><\/table>";
//temp_str+="<input type=\"button\" value=\"trace\" onclick=\"document.write(document.getElementById('innertable').innerHTML);\" />";

	if(sord=='1')
	{
		temp_top=(((temp_top.replace("$$btn_prv$$",str_btn_prv)).replace("$$btn_nxt$$",str_btn_nxt)).replace("$$Year_Select_NameId$$",Year_Select1_NameId)).replace("$$Month_Select_NameId$$",Month_Select1_NameId);
		//temp_top=temp_top.replace("float:left;width:50%","width:100%");
		temp_str="<div id=\"innertable\" onblur=\"hilayer()\">"+temp_top+temp_str.replace("$$Date_day_td$$",Date_Day_td1)+"</div>"
	}
	else
	{
		temp_top=(((temp_top.replace("$$btn_prv$$",str_btn_prv)).replace("$$btn_nxt$$","")).replace("$$Year_Select_NameId$$",Year_Select1_NameId)).replace("$$Month_Select_NameId$$",Month_Select1_NameId)+(((temp_top.replace("$$btn_prv$$","")).replace("$$btn_nxt$$",str_btn_nxt)).replace("$$Year_Select_NameId$$",Year_Select2_NameId)).replace("$$Month_Select_NameId$$",Month_Select2_NameId);
		temp_str="<div id=\"innertable\" onblur=\"hilayer()\">"+temp_top+"<div style=\"float:left;width:50%\">"+(temp_str.replace("$$Date_day_td$$",Date_Day_td1))+"</div><div style=\"float:right;width:50%\">"+(temp_str.replace("$$Date_day_td$$",Date_Day_td2))+"</div>"+temp_bottom+"</div>";
}
//document.write (temp_str);
return temp_str;
}
function set_cele_date(year, month) {
	set_double_calendar(year,month,'');
	var nexmonth=new Date(year,month-1,1);
	nexmonth.setMonth(parseInt(nexmonth.getMonth(),10)+1);

	set_double_calendar(nexmonth.getFullYear(), nexmonth.getMonth() + 1, '2');
 	display_btn_prvnxt();
}
function set_double_calendar(year, month, index) {
    if (arguments.length == 3)
        index = index == '2' ? '2' : '';
    else
        index = '';
    resetMonthSelect(year, index);
    var i, j, p, k;
    var temp;
    var nd = new Date(year, month - 1, 1);
    var yearobj = document.getElementById("cele_date_year" + index);
    var monthobj = document.getElementById("cele_date_month" + index);
    yearobj.value = year;
    monthobj.value = month;
    for (i = 1; i <= 6; i++)
        for (j = 1; j <= 7; j++) {
        var tempobj1 = document.getElementById("c" + i + "_" + j + "" + index);
        tempobj1.innerHTML = "";
        //	     tempobj1.style.background="";
        tempobj1.className = "";
        tempobj1.onmouseout = null;
        tempobj1.onmouseover = null;
        tempobj1.style.cursor = "text";
    }
    k = nd.getDay() - 1;

    while (month - 1 == nd.getMonth()) {
        j = (nd.getDay() + 1);
        p = parseInt((nd.getDate() + k) / 7) + 1;
        var tempobj;
        tempobj = document.getElementById("c" + p + "_" + j + "" + index);
        tempobj.innerHTML = nd.getDate();
        //	  tempobj.style.background="";


        if (nd <= date_end && nd >= date_start) {
            //		  tempobj.style.background="#d2dcfe";
            tempobj.onmouseover = function() { overcolor(this) };
            tempobj.onmouseout = function() { outcolor(this) };
            tempobj.style.cursor = "pointer";
        }


        if (currentDay != "") {
            var tempDate = new Date(currentDay);
            if ((nd.getDate() == tempDate.getDate()) && (monthobj.value == tempDate.getMonth() + 1) && (yearobj.value == tempDate.getFullYear())) {
                tempobj.className = "red";
                tempobj.onmouseout = null;
                tempobj.onmouseover = null;
                inover = false;
            } else {
                //设置给定日期前和给定日期后的日期样式。
                if (nd > date_end || nd < date_start) {
                    tempobj.style.cursor = "text";
                    tempobj.className = "none";
                } else {
                    //如果当前位置没有日期，则清除样式。
                    tempobj.className = "";

                }
            }
        }
        else if ((nd.getDate() == today.getDate()) && (monthobj.value == today.getMonth() + 1) && (yearobj.value == today.getFullYear())) {
            //      	 tempobj.style.background="#ffd2a6";
            tempobj.onmouseout = null;
            tempobj.onmouseover = null;
        }
        
        //改变当前日期，为下一天
        nd = new Date(nd.valueOf() + 86400000);
    }
    //document.write(document.getElementById("innertable").innerHTML);
}
function resetMonthSelect(year,ind)
{
	ind=ind=='2'?'2':'';
			var monthobj=document.getElementById("cele_date_month"+ind);
			var monthoptlen=monthobj.options.length;
			var start=date_start;
			var end=date_end;
			if(ind=='2')
				{
					var date_start2=new Date(date_start.getFullYear(),date_start.getMonth(),date_start.getDate());
					date_start2.setMonth(eval(parseInt(date_start.getMonth(),10)+1));
					var date_end2=new Date(date_end.getFullYear(),date_end.getMonth(),date_end.getDate());;
					date_end2.setMonth(eval(parseInt(date_end.getMonth()) + 1));
					if(date_start2.getFullYear()>date_start.getFullYear()&&ind=='2')
						{
							var yearobj=document.getElementById("cele_date_year2");
							yearobj.removeChild(yearobj.options[0]);
						}
					if(date_end2.getFullYear()>date_end.getFullYear()&&ind=='2')
						{
							var yearobj=document.getElementById("cele_date_year2");
							yearobj.options.add( new Option(date_end2.getFullYear(),date_end2.getFullYear()) );
						}
						start=date_start2;
						end=date_end2;
				}

				if(start.getFullYear()==end.getFullYear())
				{
					for (var i=0; i<monthoptlen; i++)
						   {
							 monthobj.removeChild(monthobj.options[0]);
						   }
						   
					for (var i=start.getMonth();i<=end.getMonth();i++)
						   {
							   monthobj.options.add( new Option((i+1).toString(),(i+1).toString()) );
						   }
				}
				else if(start.getFullYear()==year)
					{
						  for (var i=0; i<monthoptlen; i++)
						   {
							 monthobj.removeChild(monthobj.options[0]);
						   }
						   for (i=start.getMonth();i<12;i++)
						   {
							   monthobj.options.add( new Option((i+1).toString(),(i+1).toString()) );
						   }
					}
				else if(end.getFullYear()==year)
					{
						  for (var i=0; i<monthoptlen; i++)
						   {
							 monthobj.removeChild(monthobj.options[0]);
						   }
						   for (var i=0;i<=end.getMonth();i++)
						   {
							   monthobj.options.add( new Option((i+1).toString(),(i+1).toString()) );
						   }
					}
					else
					{
						for (var i=0; i<monthoptlen; i++)
						   {
							 monthobj.removeChild(monthobj.options[0]);
						   }
						   for (var i=0;i<=11;i++)
						   {
							   monthobj.options.add( new Option((i+1).toString(),(i+1).toString()) );
						   }
					}
}
function show_cele_date(d_start, d_end, paramDate, obj, sord) {

    if (d_start == null || d_start == "") {
        d_start = Default_date;
    }
    if (d_end == null || d_end == "") {
        d_end = Default_date;
    }
    //	if (paramDate==null || paramDate=="")
    //	{
    //		paramDate=d_start;
    //	}

    if (obj.value != "")
        paramDate = obj.value;

    if (arguments.length == 5)
        sord = sord == '2' ? '2' : '1';
    else
        sord = '1';
    var frm = null;


    if (document.getElementById("msgDiv") != null) {       
        document.body.removeChild(document.getElementById("msgDiv"));
    }    
    var msgObj = document.createElement("div");
    msgObj.setAttribute("id", "msgDiv");
    msgObj.setAttribute("tabindex", "0");
    msgObj.style.border = "1px solid #d6d6d6";
    msgObj.style.position = "absolute";

    msgObj.style.left = getobjLeft(obj, frm);
    msgObj.style.top = getobjTop(obj, frm);
    // msgObj.style.width =sord=='1'?"165px":"330px"; 
    msgObj.style.width = "176px";
    msgObj.style.height = "auto";
    msgObj.style.textAlign = "center";
    msgObj.style.zIndex = "100";
    msgObj.onblur = function() { hilayer() };
    msgObj.onmouseout = function() { lostlayerfocus() };
    msgObj.onmouseover = function() { getlayerfocus() };
    
    //将日历控件初始化到创建的div中
    msgObj.innerHTML = init(d_start, d_end, sord);

    //将div添加到窗体中
    document.body.appendChild(msgObj);
    msgObj.focus();
    var s, cur_d;
    if (d_start != "") {
        if (d_start == Default_date) {
            date_start = new Date(today.getFullYear(), today.getMonth(), today.getDate());
        }
        else {

            s = d_start.split(separator);
            date_start = new Date(s[0], s[1] - 1, s[2]);
        }
    }
    else {//Default_day,Default_month,Default_year
        date_start = new Date(1980, 8, 1);
    }

    if (d_end != "") {
        s = d_end.split(separator);
        date_end = new Date(s[0], s[1] - 1, s[2]);
    }
    else {
        date_end = new Date(2020, 7, 1);
    }
    g_object = obj;

    if (paramDate == "") {
        if (g_object.value == "") {
            cur_d = new Date();
            if (sord == '1') {
                set_double_calendar(date_start.getFullYear(), date_start.getMonth() + 1, date_start.getDate(), '');
                display_btn_prvnxt();
            }
            else
                set_cele_date(cur_d.getFullYear(), cur_d.getMonth() + 1, cur_d.getDate());
        }
        else {
            var curdate = g_object.value;
            var curdate_array = curdate.split(separator);
            var cur_date = new Date(curdate_array[0], curdate_array[1] - 1, curdate_array[2]);
            if ((d_start != "") && (date_start >= cur_date)) {
                g_object.value = d_start;
                cur_date = date_start;
            }
            if (sord == '1') {
                set_double_calendar(cur_date.getFullYear(), cur_date.getMonth() + 1, '');
                display_btn_prvnxt();
            }
            else
                set_cele_date(cur_date.getFullYear(), cur_date.getMonth() + 1);

        }
    }
    else {
        var paramdate_array = paramDate.split(separator);
        prmDate = new Date(paramdate_array[0], paramdate_array[1] - 1, paramdate_array[2]);
        currentDay = prmDate;

        if ((d_start != "") && (date_start >= prmDate)) {
            prmDate = date_start;
        }

        if (sord == '1') {
            set_double_calendar(prmDate.getFullYear(), prmDate.getMonth() + 1, '');
            display_btn_prvnxt();
        }
        else
            set_cele_date(prmDate.getFullYear(), prmDate.getMonth() + 1);

    }
    sod = sord;
    if (date_start <= today && date_end >= today) {
        var tempobj = document.getElementById("Today_tr");
        //				tempobj.style.color="#ffffff";
        //				tempobj.onmouseover=function(){this.style.color="#9999ff";};
        //	      		tempobj.onmouseout=function(){this.style.color="#ff8844";};
    }
    else
        document.getElementById("Today_tr").style.cursor = "text";
    //msgObj.focus();
    //document.getElementById("msgDiv").focus();
}
function td_click(t_object,index)
{
	if(arguments.length==2)
		index=index=='2'?'2':'';
	else
		index='';
		
	var t_d
	if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 ) 
	 { 
	 	t_d=new Date(document.getElementById("cele_date_year"+index).value,document.getElementById("cele_date_month"+index).value-1,t_object.innerHTML)
		if (t_d<=date_end && t_d>=date_start)
		 {
			var year = document.getElementById("cele_date_year"+index).value;
			var month = document.getElementById("cele_date_month"+index).value;
			var day = t_object.innerHTML;
			if (parseInt(month)<10) month = "0" + month;
			if (parseInt(day)<10) day = "0" + day;
			
			g_object.value=year+separator+month+separator+day;
			//window.document.getElementById("cele_date").style.display="none";
			//onchanged
			if(changeFunction!=null && typeof(changeFunction) == "function" )
				changeFunction(g_object);
Divclose();

try{
if (undefined!=clockClickFire  && clockClickFire != null)
    clockClickFire();
}catch(err){}
		 };
}
	
}
function Settoday(todays)
{ 
	if(today<date_start||today>date_end)
	return false;
	g_object.value=todays;
	Divclose();
}


function overcolor(obj)
{
  //if (obj.style.cursor=="pointer") obj.style.background= "#86a3fd";

  inover=true;

}

function outcolor(obj)
{
	//obj.style.background= "#D2DCFE";
	inover=false;

}
function orcolor(obj)
{
	obj.style.background= "";
}

function 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+separator+month+separator+day;
}

function hilayer()
{ //return;
	if (inover==false)
	{
		Divclose();
	}
}
function getlayerfocus()
{
	inover=true;
	//document.getElementById("msgDiv").focus();
}
function lostlayerfocus()
{
	
	inover=false;
}

function getAbsPoint(e)
{
  var x = e.offsetLeft;
  var y = e.offsetTop;
  while(e = e.offsetParent){
    x += e.offsetLeft;
    y += e.offsetTop;
  }
  return {"x": x, "y": y};
}

function getobjTop(e,ef)
{
	var topy;
	if(ef==null)
		{
 			var xy =getAbsPoint(e);
			topy=(xy.y + e.offsetHeight)+ "px";
		}
		else
		{	var xyF=getAbsPoint(ef);
			var xy =getAbsPoint(e);
			topy=(xyF.y+xy.y + e.offsetHeight)+ "px";
		}
	return topy;
}
function getobjLeft(e,ef)
{
	var leftx;
	if(ef==null)
	 {
		 var xy =getAbsPoint(e);
		leftx=xy.x + "px";
		 
	  }
	else
	  {var xyF=getAbsPoint(ef);
			var xy =getAbsPoint(e);
		 leftx=xyF.x+xy.x + "px";
	   }
	return leftx;
}
function Divclose()
{
	 document.body.removeChild(document.getElementById("msgDiv"));
	 //document.body.removeChild(document.getElementById("coverIframe"));
}
 
