/*Mick,365UED Team,www.silentash.com*/
//日历控件
var inputH = 20;
var inputW = 100;
var sUserAgent = navigator.userAgent;
var isOpera = sUserAgent.indexOf("Opera") > -1;
var isIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1 && !isOpera;

function HS_DateAdd(interval,number,date){
	number = parseInt(number);
	if (typeof(date)=="string"){var date = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2])}
	if (typeof(date)=="object"){var date = date}
	switch(interval){
		case "y":return new Date(date.getFullYear()+number,date.getMonth(),date.getDate()); break;
		case "m":return new Date(date.getFullYear(),date.getMonth()+number,HS_checkDate(date.getFullYear(),date.getMonth()+number,date.getDate())); break;
		case "d":return new Date(date.getFullYear(),date.getMonth(),date.getDate()+number); break;
		case "w":return new Date(date.getFullYear(),date.getMonth(),7*number+date.getDate()); break;
	}
}

function HS_checkDate(year,month,date){
	var enddate = ["31","28","31","30","31","30","31","31","30","31","30","31"];
	var returnDate = "";
	if (year%4==0){enddate[1]="29"}
	if (date>enddate[month]){returnDate = enddate[month]}else{returnDate = date}
	return returnDate;
}

function HS_WeekDay(date){
	var theDate;
	if (typeof(date)=="string"){theDate = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2]);}
	if (typeof(date)=="object"){theDate = date}
	return theDate.getDay();
}

function HS_calender(){
	var htmltop="<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml'><head>"
	var lis = "";
	var style = "";
	/*可以把下面的css剪切出去独立一个css文件*/
	style +="<style type='text/css'>";
	style +="body{margin:0;padding:0;}";
	style +=".calender,.calender div{margin:0;padding:0 !important;}";
	style +=".calender { width:150px;font-size:12px; margin:0; background:url(calenderbg.gif) no-repeat right center #fff; border:1px solid #397EAE; padding:1px}";
	style +=".calender ul {list-style-type:none; margin:0; padding:0;}";
	style +=".calender .day { background-color:#EDF5FF; height:20px;}";
	style +=".calender .day li,.calender .date li{ float:left; width:14%; height:20px; line-height:20px; text-align:center}";
	style +=".calender li a { text-decoration:none; font-family:Tahoma; font-size:11px; color:#333}";
	style +=".calender li a:hover { color:#f30; text-decoration:underline}";
	style +=".calender li a.hasArticle {font-weight:bold; color:#f60 !important}";
	style +=".lastMonthDate, .nextMonthDate {color:#bbb;font-size:11px}";
	style +=".selectThisYear a, .selectThisMonth a{text-decoration:none; margin:0 2px; color:#000; font-weight:bold}";
	style +=".calender .LastMonth, .calender .NextMonth{ text-decoration:none; color:#000; font-size:18px; font-weight:bold; line-height:16px;}";
	style +=".calender .LastMonth { float:left;}";
	style +=".calender .NextMonth { float:right;}";
	style +=".calenderBody {clear:both}";
	style +=".calenderTitle {text-align:center;height:20px; line-height:20px; clear:both;}";
	style +=".today{ background-color:#ffffaa;border:1px solid #f60;padding:0 1px;}";
	style +=".today a { color:#f30; }";
	style +=".calenderBottom {clear:both; border-top:1px solid #ddd; padding: 3px 0; text-align:left;}";
	style +=".calenderBottom a {text-decoration:none; margin:2px !important; font-weight:bold; color:#000}";
	style +=".calenderBottom a.closeCalender{float:right}";
	style +=".closeCalenderBox {float:right; border:1px solid #000; background:#fff; font-size:9px; width:11px; height:11px; line-height:11px; text-align:center;overflow:hidden; font-weight:normal !important}";
	style +="</style></head><body>";
	var htmlbot = "</body></html>"
	var now;
	if (typeof(arguments[0])=="string"){
			selectDate = arguments[0].split("-");
			var year = selectDate[0];
			var month = parseInt(selectDate[1])-1+"";
			var date = selectDate[2];
			now = new Date(year,month,date);
		}
		else if (typeof(arguments[0])=="object"){
			now = arguments[0];
	}
	var lastMonthEndDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+now.getMonth()+"-01").getDate();
	var lastMonthDate = HS_WeekDay(now.getFullYear()+"-"+now.getMonth()+"-01");
	var thisMonthLastDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-01");
	var thisMonthEndDate = thisMonthLastDate.getDate();
	var thisMonthEndDay = thisMonthLastDate.getDay();
	var todayObj = new Date();
	today = todayObj.getFullYear()+"-"+todayObj.getMonth()+"-"+todayObj.getDate();

	for (i=0; i<lastMonthDate; i++){ // Last Month's Date
		lis = "<li class='lastMonthDate'>"+lastMonthEndDate+"</li>" + lis;
		lastMonthEndDate--;
	}
	for (i=1; i<=thisMonthEndDate; i++){ // Current Month's Date
	if(today == now.getFullYear()+"-"+now.getMonth()+"-"+i){
		 var todayString = now.getFullYear()+"-"+((parseInt(now.getMonth())+1) < 10 ? ("0" + (parseInt(now.getMonth())+1)) : (parseInt(now.getMonth())+1)).toString() +"-"+(i<10?("0"+i):i);
		 lis += "<li><a href=javascript:void(0) class='today' onclick='parent._selectThisDay(this)' title='"+now.getFullYear()+"-"+((parseInt(now.getMonth())+1) < 10 ? ("0" + (parseInt(now.getMonth())+1)) : (parseInt(now.getMonth())+1)) +"-"+(i<10?("0"+i):i)+"'>"+i+"</a></li>";
	}
	else{
		 lis += "<li><a href=javascript:void(0) onclick='parent._selectThisDay(this)' title='"+now.getFullYear()+"-"+((parseInt(now.getMonth())+1) < 10 ? ("0" + (parseInt(now.getMonth())+1)) : (parseInt(now.getMonth())+1)) +"-"+(i<10?("0"+i):i)+"'>"+i+"</a></li>";
	}

	}
	var j=1;
	for (i=thisMonthEndDay; i<6; i++){ // Next Month's Date
		lis += "<li class='nextMonthDate'>"+j+"</li>";
		j++;
	}
	var CalenderTitle = "<a href='javascript:void(0)' class='NextMonth' onclick=parent.HS_calender(parent.HS_DateAdd('m',1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='下个月'>&raquo;</a>";
	CalenderTitle += "<a href='javascript:void(0)' class='LastMonth' onclick=parent.HS_calender(parent.HS_DateAdd('m',-1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='上个月'>&laquo;</a>";
	CalenderTitle += "<span class='selectThisYear'><a href='javascript:void(0)' onclick='parent.CalenderselectYear(this)' title='选择其他年份' >"+now.getFullYear()+"</a></span>年<span class='selectThisMonth'><a href='javascript:void(0)' onclick='parent.CalenderselectMonth(this)' title='选择其他月份'>"+(parseInt(now.getMonth())+1).toString()+"</a></span>月";
	if (arguments.length>1){
		arguments[1].parentNode.parentNode.getElementsByTagName("ul")[1].innerHTML = lis;
		arguments[1].parentNode.innerHTML = CalenderTitle;
	}else{
		var CalenderBox = htmltop+style+"<div id='calender' class='calender'><div class='calenderTitle'>"+CalenderTitle+"</div><div class='calenderBody'><ul class='day'><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ul><ul class='date' id='thisMonthDate'>"+lis+"</ul></div><div class='calenderBottom'><a href='javascript:void(0)' id='closeCalender' class='closeCalender' onclick='parent.closeCalender(this)'>关闭</a><span><span><a href=javascript:void(0) onclick='parent._selectThisDay(this)' title='"+todayString+"'>今天</a></span></span><span><a href=javascript:void(0) onclick='parent._setEmpty(this)' title=''>置空</a></span></div></div>"+htmlbot;
		return CalenderBox;
	}
	reinitIframe();
}
function boxObj(){
	if(isIE){
		var boxObj = parent.document.all.calenderspan;
	}else{
		var boxObj = parent.document.getElementById('calenderspan');
	}
	return boxObj;
}
function _selectThisDay(d){
	try{
		if(typeof(boxObj().backfun) == "function"){
			setTimeout(function(){boxObj().backfun(d.title)},0);
		}
		else{
			boxObj().targetObj.value = d.title;
		}
		boxObj().style.display="none";
		boxObj().targetObj.blur();
	}catch(e){
	}
}
//关闭
function closeCalender(d){
	try{
		boxObj().style.display="none";
		boxObj().targetObj.blur();
	}catch(e){
	}
}
//置空
function _setEmpty(d){
	try{
		boxObj().targetObj.value = d.title;
		boxObj().style.display="none";
		boxObj().targetObj.blur();
	}catch(e){
	}
}

function CalenderselectYear(obj){
	var opt = "";
	var thisYear = obj.innerHTML;
	for (i=1970; i<=2020; i++){
		if (i==thisYear){
			opt += "<option value="+i+" selected>"+i+"</option>";
		}else{
			opt += "<option value="+i+">"+i+"</option>";
		}
	}
	opt = "<select onblur='parent.selectThisYear(this)' onchange='parent.selectThisYear(this)' style='font-size:11px'>"+opt+"</select>";
	obj.parentNode.innerHTML = opt;
}

function selectThisYear(obj){
	var monthObj = obj.parentNode.parentNode.getElementsByTagName("span")[1].getElementsByTagName("a")[0];
	var strMonth;
	if(monthObj==undefined||monthObj==null)
	{
		monthObj = obj.parentNode.parentNode.getElementsByTagName("span")[1].getElementsByTagName("select")[0];
		strMonth = monthObj.value;
	}else{
		strMonth = monthObj.innerHTML;
	}
	HS_calender(obj.value+"-"+strMonth+"-1",obj.parentNode);
}

function CalenderselectMonth(obj){
	var opt = "";
	var thisMonth = obj.innerHTML;
	for (i=1; i<=12; i++){
		if (i==thisMonth){
			opt += "<option value="+i+" selected>"+i+"</option>";
		}else{
			opt += "<option value="+i+">"+i+"</option>";
		}
	}
	opt = "<select onblur='parent.selectThisMonth(this)' onchange='parent.selectThisMonth(this)' style='font-size:11px'>"+opt+"</select>";
	obj.parentNode.innerHTML = opt;
}

function selectThisMonth(obj){
	var yearObj = obj.parentNode.parentNode.getElementsByTagName("span")[0].getElementsByTagName("a")[0];
	var strYear;
	if(yearObj==undefined||yearObj==null)
	{
		yearObj = obj.parentNode.parentNode.getElementsByTagName("span")[0].getElementsByTagName("select")[0];
		strYear = yearObj.value;
	}else{
		strYear = yearObj.innerHTML;
	}	
	HS_calender(strYear+"-"+obj.value+"-1",obj.parentNode);
}

function getDefineX(objectId)  
{  
	var iPositionX=objectId.offsetLeft;  
	while(objectId=objectId.offsetParent)  
	{  
		iPositionX+=objectId.offsetLeft;  
	}  
	return iPositionX;  
}  
function getDefineY(objectId)  
{  
	var iPositionY=objectId.offsetTop;  
	while(objectId=objectId.offsetParent)  
	{  
		iPositionY+=objectId.offsetTop;  
	}  
	return iPositionY;  
}
//鼠标事件
var oSpanClick = function(oEvent){
	if(oEvent.type =="click"){
		if(isIE){
			oEvent = window.event;
			oEvent.returnValue = false;
		}else{
			oEvent.preventDefault();
		}
	}
}
//重置iframe高度
function reinitIframe(){
	try{
		if(isIE){
			var iframe = parent.document.all.calenderspan;
		}else{
			var iframe = parent.document.getElementById('calenderspan');
		}
		var bHeight = iframe.contentWindow.document.body.scrollHeight;
		var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
		var height = Math.max(bHeight, dHeight);
		//alert(height);
		iframe.height = height;
		}catch (ex){}
}

function setday(inputObj,backfun){
	//首次生成日历，之后隐藏或显示调用日历
	var calenderObj = document.getElementById('calenderspan');
	if(calenderObj == null){
		var calenderObj = document.createElement("iframe");
		calenderObj.id = "calenderspan";
		calenderObj.frameBorder = "no";
		calenderObj.scrolling = "no";
		calenderObj.width = "152";
		calenderObj.style.position = "absolute";
		//calenderObj.innerHTML = HS_calender(new Date());
		document.body.insertBefore(calenderObj,document.body.lastChild);
		var objDoc = calenderObj.contentWindow.document;
		objDoc.write(HS_calender(new Date()));
		objDoc.close();
	}else{
		calenderObj.style.display = '';
	}
	//屏蔽input鼠标点击事件
	if(isIE){
		inputObj.attachEvent("onclick",oSpanClick);
	}else{
		inputObj.addEventListener("click",oSpanClick,false);
		calenderObj.height = "180";//为FF设置iframe初始高度
	}
	calenderObj.targetObj = inputObj;
	calenderObj.backfun	=	backfun;
	calenderObj.style.left = getDefineX(inputObj)+"px";
	calenderObj.style.top = getDefineY(inputObj)+inputH+"px";
	reinitIframe();
}