var calx_cF=null;
var calx_cW=null;
var calx_g_tid=0;
var calx_g_cP,calx_g_eD,calx_g_eDP,calx_g_dmin,calx_g_dmax;
var calx_nextFocus;
var calx_g_fNoCal=false;

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 SCal(cP,eD,eDP,dmin,dmax){
 clearTimeout(calx_g_tid);
 if(calx_g_fNoCal){calx_g_fNoCal=false;return;}
	if(calx_g_calShown && eD==calx_g_eD)return;
	calx_g_calShown = true;
	calx_g_calCB = null;
 calx_g_cP=cP;
 calx_g_eD=eD;
 calx_g_eDP=eDP;
 calx_g_dmin=dmin;
 calx_g_dmax=dmax;
 WaitCal();}
function CancelCal(){clearTimeout(calx_g_tid);if(!calx_cF)calx_cF=getObj('CalFrame');calx_cF.style.visibility="hidden";calx_g_calShown=false;}
function WaitCal()
{ 
 if(!calx_cW)calx_cW=frames['CalFrame'];

 if(null==calx_cW||null==calx_cW.g_fCL||false==calx_cW.g_fCL){
	calx_g_tid=setTimeout("WaitCal()", 200);
	}
 else{
 if(!calx_cF)calx_cF=getObj('CalFrame');
	calx_cF.style.visibility="hidden";
	setTimeout("DoCal()",1);
	}
}
function DoCal(){PosCal(calx_g_cP);
if(!calx_cW)calx_cW=frames['CalFrame'];
calx_cW.DoCal(calx_g_eD,calx_g_eDP,calx_g_dmin,calx_g_dmax);}

function getScrollTop()
{
	if(document.documentElement.scrollTop) return document.documentElement.scrollTop;
	if(document.body.scrollTop) return document.body.scrollTop;
	if(window.pageYOffset) return window.pageYOffset;
	return 0;
}

function getWinHeight()
{
	if(window.innerHeight) return window.innerHeight;
	if(document.documentElement.clientHeight) return document.documentElement.clientHeight;
	if(document.body.clientHeight) return document.body.clientHeight;
	return 0;
}

function PosCal(cP)
{
 var dB=document.body;var eL=0;var eT=0;
 if(!calx_cF)calx_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(calx_cF.style.height);var sT=getScrollTop();
	if(eT-dH>=sT&&eT+eH+dH>getWinHeight()+sT)eT-=dH;else eT+=eH;
	if (typeof ActiveXObject != 'undefined')
	    {calx_cF.style.left=eL-(screen.width-1010)/2+'px';calx_cF.style.top=eT+'px';}
	else
	    {calx_cF.style.left=eL-(screen.width-1006)/2+'px';calx_cF.style.top=eT+'px';}
}

function SetNextFocus(e){calx_nextFocus=e;if(calx_nextFocus)calx_nextFocus.onfocus=CancelCal;}
function SetPrevFocus(e){if(e)e.onfocus=CancelCal;}

function FGoNextFocus(){if(calx_nextFocus){calx_nextFocus.focus();return true;}return false;}

function CalSetFocus(e){if(e){calx_g_fNoCal=true;e.focus();setTimeout("EndCalFocus()", 200);}}
function EndCalFocus(){calx_g_fNoCal=false;}
function elementID(inStr)
{
    if(inStr!='')
    {
        return inStr.substring(inStr.lastIndexOf('_'));
    }
}
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;
	if(!giveFocus)
	CalSetFocus(eInp);
	
	if(elementID(eInp.id)=='_dptdate')
	{
	    parent.setDeptAndRetrunDates_OverRidden();
	}
}

var calx_g_calShown = false;
function SetCalShown(fcshown){calx_g_calShown=fcshown;}

var calx_g_calCB;
function CalendarCallback(){if(calx_g_calCB)g_calCB();}
function SetCalendarCallback(cb){calx_g_calCB=cb;}


function GetInputDate(t)
{
	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);
}

var calx_rM=new Array(12);calx_rM[0]=calx_rM[2]=calx_rM[4]=calx_rM[6]=calx_rM[7]=calx_rM[9]=calx_rM[11]=31;calx_rM[3]=calx_rM[5]=calx_rM[8]=calx_rM[10]=30;calx_rM[1]=28;
function GetMonthCount(m,y){var c=calx_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 GetDowStart()
{
    return 0;
}
function GetDateFmt()
{
    return "mmddyy";
}
function GetDateSep()
{
    return "/";
}
function ShowCalendar(eP,eD,eDP,dmin)
{
    var dmax = new Date(dmin);
    dmax.setFullYear(dmax.getFullYear() + 1);
    dmax.setDate(dmax.getDate() - 1);
    SCal(eP,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 TEK(a,evt)
{	
    var keycode;
    if (window.event)
    {
        keycode = window.event.keyCode;
        evt = window.event;
    }
    else if(evt)
    {
        keycode = evt.which;
    }
    else
    {
        return true;
    }
    if(13==keycode)
    {
        evt.cancelBubble = true;
        evt.returnValue = false;
        eval(a);
    }
}

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 DoNothing() {return false;}