
var CalS = '';
var CalE = '';
var posEl=null;

var cF=null;var cW=null;var g_tid=0;var g_cP,g_eD,g_eDP,g_dmin,g_dmax;
var nextFocus;var g_fNoCal=false;

var nm = 12;

var months=new Array('','JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');

var nextFocus = null;

var g_calShown = false;
var g_calCB;
var g_nOfCals=2;
	
var rM=new Array(12);rM[0]=rM[2]=rM[4]=rM[6]=rM[7]=rM[9]=rM[11]=31;rM[3]=rM[5]=rM[8]=rM[10]=30;rM[1]=28;
function GetMonthCount(m,y){var c=rM[m];if((1==m)&&IsLY(y))c++;return c;}
function IsLY(y){if(0==y%4&&((y%100!=0)||(y%400==0)))return true;else return false;}
function DefYr(m,d){var dt=new Date();var yC=(dt.getYear()<1000)?1900+dt.getYear():dt.getYear();if(m<dt.getMonth()||(m==dt.getMonth()&&d<dt.getDate()))yC++;return yC;}


	
	function SetCalShown(fcshown){g_calShown=fcshown;}
	function CalendarCallback(){if(g_calCB)g_calCB();}
	function SetCalendarCallback(cb){g_calCB=cb;}
	function getEventObj(e){if(!e)e=window.event;return e;}
	function stopBubble(e){e=getEventObj(e);e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();}
	function CB(){stopBubble(event);}
	function CancelCal(){clearTimeout(g_tid);if(!cF)cF=getObj('CalFrame');cF.style.visibility="hidden";g_calShown=false;}
	function SetNextFocus(e){nextFocus=e;if(nextFocus)nextFocus.onfocus=CancelCal;}
	function SetPrevFocus(e){if(e)e.onfocus=CancelCal;}
	function FGoNextFocus(){if(nextFocus){nextFocus.focus();return true;}return false;}
	function CalSetFocus(e){if(e){g_fNoCal=true; try { e.focus(); } catch(e){}; setTimeout("EndCalFocus()", 200);}}
	function EndCalFocus(){g_fNoCal=false;}


	function UpdDt(e,d,m,y)
	{
		
		
		try 
		{

			//update selected year
			document.agentid.outyear.value=y;
			document.agentid.retyear.value=y;
						
			switch(e.id)
			{
		
				case "fdt":
						var f = DE('fdt');
						var t = DE('tdt');				
						
						setSelectedOption(document.agentid.outmonth,months[m]); //change outmonth
						setSelectedOption(document.agentid.outday,d); //change outday
										
						showdayofWeek(document.agentid.outmonth,'outDayOfWeek'); //set day word
						break;
			
				case 'tdt':	
				
				
						setSelectedOption(document.agentid.retmonth,months[m]); //change retmonth
						setSelectedOption(document.agentid.retday,d); //change retday
						showdayofWeek(document.agentid.retmonth,'retDayOfWeek'); //set day word
						break;
				default:
					var f = null;
					var t = null;
					break;
			}
		} catch (e){}

		if(null!=f&&null!=t&&null!=GetInputDate(f.value)&&(null==GetInputDate(t.value)||GetInputDate(f.value)>GetInputDate(t.value))){
			t.value=f.value;
			setSelectedOption(document.agentid.retmonth,months[m]); //change retmonth
			setSelectedOption(document.agentid.retday,d); //change retday
			showdayofWeek(document.agentid.retmonth,'retDayOfWeek'); //set day word
		}
	}



	function DE(el){return document.getElementById(el);}

	function SH(id,s){var e = DE(id);if(s){e.style.display = 'block';}else{e.style.display = 'none';}}

		var aS = new Array();

		function Concat(StringToConcat){this.aS[this.aS.length] = StringToConcat;}
		function GetValue(){return this.aS.join('');}
		function Reset(){this.aS = null;this.aS = new Array();}

		function SC(srcEl,el,nOfCals)
		{
			if (DE('CalFrame') == null){return;}

			posEl=srcEl; //store
				
			var id = el.id;
			var n = nOfCals || el.id.substr(3);

			CalS = DE('CalS').value;
			CalE = DE('CalE').value;

			if (id.substr(0,3) == 'fdt')
			{
				el.select();

				if(n == ''){ShowCalendar(el,el,null,CalS,CalE,nOfCals);}
				else if(n == '2'){ShowCalendar(el,el,DE('fdt'),CalS,CalE,nOfCals);}
				else{ ShowCalendar(el,el,DE('fdt' + (n - 1)),CalS,CalE,nOfCals);}
			}

					if (id.substr(0,3) == 'tdt'){
						el.select();

						v=DE('fdt').value;
						if (v!='') CalS=GetInputDate(v);

						ShowCalendar(el,el,DE('fdt'),CalS,CalE,nOfCals);

					}
				}

				function HCal(e)
				{
					var c = DE('CalFrame');
					//if (c!=null){SH(c,false);}
					if (c!=null){CancelCal();}
					var d;
					d = DE('fdt');
					if (d!=null){d.value = d.value;}
					d = DE('tdt');
					if (d!=null){d.value = d.value;}
				}



				function getObj(objID)
				{
					if (document.getElementById) {return document.getElementById(objID);}
					else if (document.all) {return document.all[objID];}
						else if (document.layers) {return document.layers[objID];}
						}

						var g_rgFreeEventElements=new Array();
						g_rgFreeEventElements[0] = window;

						function AddFreeEventElement(elm){FreeEventsOnUnLoad(); g_rgFreeEventElements[g_rgFreeEventElements.length]=elm;}

						var g_clearElementProps = ['onmouseover','onmouseout','onmousedown','onmouseup','onmousemove','onclick','onkeypress','onkeydown','onkeyup','onblur','onfocus',];
						var g_fFreeEventOnUnLoad = false;
						function FreeEventsOnUnLoad()
						{
							if (!g_fFreeEventOnUnLoad)
							{
								if (window.attachEvent){window.attachEvent("onunload", function(){var el;for(var d = g_rgFreeEventElements.length;d--;){el = g_rgFreeEventElements[d];for(var c = g_clearElementProps.length;c--;){el[g_clearElementProps[c]] = null;}}});}
								g_fFreeEventOnUnLoad=true;
							}
						}


						function SetFocus(obj) { try { if(obj) DE(obj.id).focus(); } catch(e){} }
						function GetDowStart() {return 0;}function GetDateFmt() {return "ddmmyy";}function GetDateSep() {return "/";}
						function ShowCalendar(eP,eD,eDP,dmin,dmax,nOfCals) { SCal(eP,eD,eDP,dmin,dmax,nOfCals); }
						function ShowCalSimp(fm,eD,eDP,dmin,dmax){
							if(!dmin)dmin='1/3/2005';if(!dmax)dmax='25/1/2006';
							if(fm){SetNextFocus(objNext(fm,eD));SetPrevFocus(objPrev(fm,eD));}
							SCal(eD,eD,eDP,dmin,dmax);
						}


						function IsVis(o)
						{
							if(!o || o.type=="hidden") return false;
							while(o && o.style && o.style.display!='none') o=o.parentNode;
							return !o || !o.style;
						}


						function getObj(objID)
						{
							if (document.getElementById) {return document.getElementById(objID);}
							else if (document.all) {return document.all[objID];}
							else if (document.layers) {return document.layers[objID];}
						}

						function objNext(f,d)
								{
									var fFnd=false,el=f.elements,i=0;
									for(;i < el.length;i++)
									{
										if('hidden'!=el[i].type && false==el[i].disabled && IsVis(el[i]) && fFnd)return el[i];
										if(d.id==el[i].id)fFnd=true;
									}
									return null;
						}
						
						function objPrev(f,d)
						{
									var fFnd=false,el=f.elements,i=el.length - 1;
									for(;i >= 0;i--)
									{
										if('hidden'!=el[i].type && false==el[i].disabled && IsVis(el[i]) && fFnd)return el[i];
										if(d.id==el[i].id)fFnd=true;
									}
									return null;
						}


						function SCal(cP,eD,eDP,dmin,dmax,nOfCals){
									clearTimeout(g_tid);

									if(g_fNoCal){g_fNoCal=false;return;}
									if(g_calShown && eD==g_eD){return;}
									g_calShown = true;
									g_calCB = null;
									//g_cP=cP;
									g_nOfCals=nOfCals;
									g_cP=posEl;
									g_eD=eD;
									g_eDP=eDP;
									
									var tmpdmin = new Date();										
									tmpdmin.setDate(tmpdmin.getDate() + 1);									
									g_dmin=tmpdmin;
									
									var tmpdmax = new Date();	
									tmpdmax.addMonths(11);									
									g_dmax=tmpdmax;			
									//alert(tmpdmin);
									//alert(tmpdmax);
									WaitCal();

						}

								function WaitCal()
								{
									if(!cW)cW=frames['CalFrame'];

									if(null==cW||null==cW.g_fCL||false==cW.g_fCL){
										g_tid=setTimeout("WaitCal()", 200);
									}
									else{
										if(!cF)cF=getObj('CalFrame');
										cF.style.visibility="hidden";
										setTimeout("DoCal()",1);
									}
								}
								function DoCal(){
									PosCal(g_cP);
									if(!cW)cW=frames['CalFrame'];

									cW.DoCal(g_eD,g_eDP,g_dmin,g_dmax,g_nOfCals);
								}

								function getScrollTop(){return document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset || 0;}
								function getWinWidth(){return window.innerWidth || document.documentElement.clientWidth || document.body.offsetWidth || 0;}
								function getWinHeight(){	return  window.innerHeight || document.documentElement.clientHeight || document.body.offsetHeight || 0; }


								function PosCal(cP)
								{
									var dB=document.body;var eL=0;var eT=0;
									if(!cF)cF=getObj('CalFrame');
									
									
									for(var p=cP; p && p.tagName!='BODY'; p=p.offsetParent){eL+=p.offsetLeft;eT+=p.offsetTop;}
									
									var eH=cP.offsetHeight;
									var dH=parseInt(cF.style.height);
									var sT=getScrollTop();
									
									if(eT-dH>=sT&&eT+eH+dH>getWinHeight()+sT)eT-=dH;
									else eT+=eH;
										cF.style.left=eL+'px';cF.style.top=eT+'px';
										
									}


									function CalDateSet(eInp,d,m,y,giveFocus)
									{
										var ds=GetDateSep();
										var fmt=GetDateFmt();

										if(fmt=="mmddyy")eInp.value=m+ds+d+ds+y;
										else if(fmt=="ddmmyy")eInp.value=d+ds+m+ds+y;
										else eInp.value=y+ds+m+ds+d;

										UpdDt(eInp,d,m,y); //update values
										

										if(!giveFocus) CalSetFocus(eInp);
									}


									function GetInputDate(t)
									{
												if (!t) return null;
												if(!t.length) return null;
												t=t.replace(/\s+/g,"");
												if(t.match(/[^-|\d|\.|\/]/)) return null;
												var rgt=t.split(/-|\.|\//);
												for(var i=0;i<rgt.length;i++) rgt[i]=parseInt(rgt[i],10);
												if(!rgt[1]) return null;
												var m,d,y;
												var fmt=GetDateFmt();
												if(fmt=="yymmdd")
												{
													if(!rgt[2]) return null;
													m=rgt[1];d=rgt[2];y=rgt[0];
												}
												else
													{
														if(fmt=="mmddyy") { m=rgt[0];d=rgt[1];} else { m=rgt[1];d=rgt[0]; } //fmt=="ddmmyy"
															if(rgt[2]) y=rgt[2]; else y=DefYr(m-1,d);
															}
															m-=1;if(y<100) y+=2000;
															if(y<1601||y>4500||m<0||m>11||d<1||d>GetMonthCount(m,y)) return null;
															return new Date(y,m,d);
									}


									document.onclick = HCal;