document.write('<iframe id=\"CalFrame\" name=\"CalFrame\" frameborder=\"0\" src=\"/js/calendar2M/calendar.html\" style=\"display:none;position:absolute;z-index:110\"></iframe>');
document.onclick=hideCalendar;

function createCalendarStr(id,value) {
	var s = "<div style=\"float:left;\"><input type=\"text\" size=\"11\" style=\"text-align:center;width:80px\" name=\"" + id + "\" id=\"" + id + "\"  value=\"" + value + "\" maxlength=\"10\" onclick=\"javascript:event.cancelBubble=true;showCalendar( '" + id + "',false,'" + id + "','','','','','','','','','"+id+"','','','','')\" readonly/></div>";
	s += "<div style=\"padding-top:2px;float:left;width:20px;border:#ff0000 0px solid;text-align:center;\"><a href=\"javaScript:;\" style=\"displsy:block;margin-bottom:-3px;;\" onClick=\"javascript:event.cancelBubble=true;showCalendar( '" + id + "',false,'" + id + "','','','','','','','','','"+id+"','','','','')\"><img src=\"/js/calendar2M/calendar.files/rili1.gif\" style=\"height:16px;width:15px;\"></a></div>";
	return s;
}

function createCalendar(id,value) {
	document.write(createCalendarStr(id,value));
}

function createLimitCalendarStr(id,value,start,end,weekDays) {
	var s = "<div style=\"float:left;\"><input type=\"text\" size=\"12\" style=\"text-align:center;width:80px\" name=\"" + id + "\" id=\"" + id + "\"  value=\"" + value + "\" maxlength=\"10\" onclick=\"javascript:event.cancelBubble=true;showCalendar( '" + id + "',false,'" + id + "','','','" + start + "','" + end + "','','','','','"+id+"','','','','" +weekDays+ "')\" readonly/></div>";
	s += "<div style=\"padding-top:2px;float:left;width:20px;border:#ff0000 0px solid;text-align:center;\"><a href=\"javaScript:;\" style=\"displsy:block;margin-bottom:-3px;;\" onClick=\"javascript:event.cancelBubble=true;showCalendar( '" + id + "',false,'" + id + "','','','" + start + "','" + end + "','','','','','"+id+"','','','','" +weekDays+ "')\"><img src=\"/js/calendar2M/calendar.files/rili1.gif\" style=\"height:16px;width:15px;\"></a></div>";
	return s;
}

function createLimitCalendar(id,value,start,end,weekDays) {
	document.write(createLimitCalendarStr(id,value,start,end,weekDays));
}

/**
 * 
 * @param {Object} sImg
 * @param {Object} bOpenBound
 * @param {Object} sFld1
 * @param {Object} sNextP
 * @param {Object} sNextD
 * @param {Object} sStartD
 * @param {Object} sEndD
 * @param {Object} sVD
 * @param {Object} sOE
 * @param {Object} sVDE
 * @param {Object} sOT
 * @param {Object} s3F
 * @param {Object} sFld2
 * @param {Object} sCallback
 * @param {Object} sNextVDE
 * @param {Object} sWeekDay 0-6 0代表周日
 */
function showCalendar(sImg,bOpenBound,sFld1,sNextP,sNextD,sStartD,sEndD,sVD,sOE,sVDE,sOT,s3F,sFld2,sCallback,sNextVDE,sWeekDay)
{	
	var fld1,fld2;
	var cf=document.getElementById("CalFrame");
	var wcf=window.frames.CalFrame;
	var oImg=document.getElementById(sImg);
	if(!oImg){alert("控制对象不存在！");return;}
	if(!sFld1){alert("输入控件未指定！");return;}
	fld1=document.getElementById(sFld1);
	if(!fld1){alert("输入控件不存在！");return;}
	if(fld1.tagName!="INPUT"||fld1.type!="text"){alert("输入控件类型错误！");return;}
	if(sFld2)
	{
		fld2=document.getElementById(sFld2);
		if(!fld2){alert("参考控件不存在！");return;}
		if(fld2.tagName!="INPUT"||(fld2.type!="text"&&fld2.type!="hidden")){alert("参考控件类型错误！");return;}
	}
	if(!wcf.bCalLoaded){alert("日历未成功装载！请刷新页面！");return;}
	wcf.n_position=sNextP;
	wcf.n_textdate=sNextD;
	wcf.startdate=sStartD;
	wcf.enddate=sEndD;
	wcf.vailidday=sVD;
	wcf.oddeven=sOE;
	wcf.vailiddate=sVDE;
	wcf.nextvailiddate = sNextVDE;
	wcf.objecttype=sOT;
	wcf.validweekday=sWeekDay;
	wcf.thirdfocus=s3F;
	if(cf.style.display=="block"){cf.style.display="none";return;}
	
	//==============新版本更新: 关于日历显示位置的更改 ziqiu.zhang 开始	=================
	var eT=0,eL=0,p=oImg;
	
	var sT=(document.body.scrollTop > document.documentElement.scrollTop)? document.body.scrollTop:document.documentElement.scrollTop;
	var sL=(document.body.scrollLeft > document.documentElement.scrollLeft )? document.body.scrollLeft:document.documentElement.scrollLeft;
	var h1 = document.body.clientHeight;
	var h2 = document.documentElement.clientHeight;
	var isXhtml = (h2<=h1&&h2!=0)?true:false;
	var myClient = getClient();
	var myScroll = getScroll();
	
	var eH=oImg.height,eW=oImg.width;
	while(p&&p.tagName.toUpperCase() !="BODY"){eT+=p.offsetTop;eL+=p.offsetLeft;p=p.offsetParent;}
	var bottomSpace = myClient.clientHeight - ( eT - myScroll.sTop );
	eH=0;
	cf.height = 175;
	
	if(sOT=="text")
	{
		cf.style.top = ( (bottomSpace>=cf.height)?eT+eH+20:eT-cf.height ).toString() + "px";		
	}
	else
	{
		cf.style.top = ( (bottomSpace>=cf.height)?eT+eH+20:eT-cf.height ).toString() + "px";	
	}
	
	cf.style.left=( (isXhtml?document.documentElement.clientWidth:document.body.clientWidth-(eL-sL)>=cf.width)?eL:eL+eW-cf.width ).toString() + "px";
	cf.style.display="block";
	
	wcf.openbound=bOpenBound;
	wcf.fld1=fld1;
	wcf.fld2=fld2;
	wcf.callback=sCallback;
	wcf.initCalendar();
}
function hideCalendar()
{
	var cf=document.getElementById("CalFrame");
	cf.style.display="none";
}

//得到鼠标滚过的距离 scrollTop 与 scrollLeft 
//用法与测试:
function getScroll() 
{     
		var sTop = 0, sLeft = 0, sWidth = 0, sHeight = 0; 
        
		sTop = (document.body.scrollTop > document.documentElement.scrollTop)? document.body.scrollTop:document.documentElement.scrollTop;
		if( isNaN(sTop) || sTop <0 ){ sTop = 0 ;}
        
		sLeft = (document.body.scrollLeft > document.documentElement.scrollLeft )? document.body.scrollLeft:document.documentElement.scrollLeft;
		if( isNaN(sLeft) || sLeft <0 ){ sLeft = 0 ;}
		
		return { sTop:sTop, sLeft: sLeft, sWidth: sWidth, sHeight: sHeight }; 
}

//得到浏览器当前显示区域的大小 clientHeight 与 clientWidth

function getClient()
{
    			var h1 = document.body.clientHeight;
			var h2 = document.documentElement.clientHeight;
			var isXhtml = (h2<=h1&&h2!=0)?true:false;
				
			this.clientHeight = isXhtml?document.documentElement.clientHeight:document.body.clientHeight;
			this.clientWidth  = isXhtml?document.documentElement.clientWidth:document.body.clientWidth;
            
    return {clientHeight:this.clientHeight,clientWidth:this.clientWidth};        
}
