﻿/*firefox window.event*/
function __firefox(){
    HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);
    window.constructor.prototype.__defineGetter__("event", __window_event);
    Event.prototype.__defineGetter__("srcElement", __event_srcElement);
}
function __element_style(){return this.style;}
function __window_event(){return __window_event_constructor();}
function __event_srcElement(){return this.target;}
function __window_event_constructor(){
    if(document.all){return window.event;}
    var _caller = __window_event_constructor.caller;
    while(_caller!=null){
        var _argument = _caller.arguments[0];
        if(_argument){
            var _temp = _argument.constructor;
            if(_temp.toString().indexOf("Event")!=-1){return _argument;}
        }
        _caller = _caller.caller;
    }
    return null;
}
if(window.addEventListener){__firefox();}
/*end firefox.event*/
//获取JS所在路径
var __calendar_Script=document.getElementsByTagName("script");
var __calendar_Path=__calendar_Script[__calendar_Script.length-1].src.substring(0,__calendar_Script[__calendar_Script.length-1].src.lastIndexOf("/")+1);
document.write('<iframe id=CalFrame name=CalFrame frameborder=0 src=/template/W0001/calendar/cal.htm style=display:none;position:absolute;z-index:110></iframe>');
document.onclick=hideCalendar;
function calendar(Iname,_Rz){if(_Rz==null){_Rz=false;};event.cancelBubble=true;showCalendar(Iname,_Rz,Iname);}
function showCalendar(sImg,bOpenBound,sFld1,sNextP,sNextD,sStartD,sEndD,sVD,sOE,sVDE,sOT,s3F,sFld2,sCallback,sNextVDE){
	//1.sImg日历弹出位置的控件的名称; 2.bOpenBound; 3.sFld1取得日期的控件名称,
	//4.sNextP选取日期后新日历弹出的位置的控件名称,可不输入,
	//5.sNextD选取日期后新日历弹出从中取值的控件名称,可不输入,
	//6.sStartD开始有效时间; 7.sEndD截至有效时间,
	//8.sVD周几有效,例如：'1,3,5',注意星期日应输入'0'
	//9.sOE,单双日有效,'0'表示双日,'1'表示单日
	//10.sVDE特殊日期,例如'2004-10-11,2004-11-20,',最后一定要输入','
	//11.sOT如果是直接在文本框中点击则值为'text',
	//12.s3F下一个日历弹出并选择后点取日期后定位到新的控件
	//sFld2,弹出日历默认日期; sNextVDE 下一次焦点的有效时间.
	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.thirdfocus=s3F;
	if(cf.style.display=="block"){cf.style.display="none";return;}
	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.toLowerCase()!="body"){eT+=p.offsetTop;eL+=p.offsetLeft;p=p.offsetParent;}
	//调用日历的控件的高度获取有问题.下面的注释掉.;eH=oImg.height;
	var bottomSpace=myClient.clientHeight-eT-myScroll.sTop;eH=5;
	if(sOT=="text"){cf.style.top=(eT+eH+20).toString()+"px";}
	else{cf.style.top=(eT+eH+20).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; 用法与测试:var myClient = getClient();
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
//用法与测试:var myScroll = getScroll();
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};
}