var zz, zv, d, fTSR;
var gBF=false;
var g_MINY = 1601;
var g_MAXY = 4500;

var tempControl = new Date();
var g_month = tempControl.getMonth()+1;
var g_day = tempControl.getDate();
var g_year = tempControl.getFullYear();

var g_yLow = 1990;
var g_DateControl=null;
var g_DateControlV="";
var g_dFmt=GetDateFmt();
var g_fnCB=null;

var g_TimeControl=null;
var g_TimeControlV="";

var rgMC = new Array(12);
rgMC[0] = 31;rgMC[1] = 28;rgMC[2] = 31;rgMC[3] = 30;rgMC[4] = 31;rgMC[5] = 30;rgMC[6] = 31;rgMC[7] = 31;rgMC[8] = 30;rgMC[9] = 31;rgMC[10] = 30;rgMC[11] = 31;

d = new Date();
fTSR=0;
zv = d.getTime();
zz = "&zz="+zv;

function GetDowStart() {return 0;}
function GetDateFmt() {return "mmddyy";}
function GetDateSep() {return "/";}

function GetInputDate(t,f){
  var l = t.length;
  if(0 == l) return false;
  var cSp = '\0';
  var sSp1 = "";
  var sSp2 = "";
  for(var i = 0; i < t.length; i++){
    var c = t.charAt(i);
    if(c == ' ' || isdigit(c)) continue;
    else if(cSp == '\0' && (c == '/' || c == '-' || c == '.')){
      cSp = c;
      sSp1 = t.substring(i+1,l);
    }
    else if(c == cSp) sSp2 = t.substring(i+1,l);
    else if(c != cSp) return false;
  }
  if(0 == sSp1.length) return false;
  var m;
  var d;
  var y; 
  if(f=="mmddyy"){
    m = atoi(t);
    d = atoi(sSp1);
    if(0 != sSp2.length) y = atoi(sSp2);
    else y = DefYr(m,d);
  }
  else if(f=="ddmmyy"){
    m = atoi(sSp1);
    d = atoi(t);
    if(0 != sSp2.length) y = atoi(sSp2);
    else y = DefYr(m,d);
  }
  else{
    if(0 == sSp2.length) return false;
    m = atoi(sSp1);
    d = atoi(sSp2);
    y = atoi(t);
  }
  if(y < 100){
    y = 1900+y;
    while(y < g_yLow) y = y+100;
  }
  if(y < g_MINY || y > g_MAXY || m < 1 || m > 12) return false;
  if(d < 1 || d > GetMonthCount(m,y)) return false;
  g_month = m;
  g_day = d;
  g_year = y;
  return true;
}

function DefYr(m,d){
  var dt = new Date();
  var yCur = (dt.getYear() < 1000) ? 1900+dt.getYear() : dt.getYear();
  if(m-1 < dt.getMonth() || (m-1 == dt.getMonth() && d < dt.getDate())) return 1+yCur;
  else return yCur;
}

function atoi(s){
  var t = 0;
  for(var i = 0; i < s.length; i++){
    var c = s.charAt(i);
    if(!isdigit(c)) return t;
    else t = t*10 + (c-'0');
  }
  return t;
}

function isdigit(c) {return(c >= '0' && c <= '9');}
function GetMonthCount(m,y){
  var c = rgMC[m-1];
  if((2 == m) && IsLeapYear(y)) c++;
  return c;
}
function IsLeapYear(y){
  if(0 == y % 4 && ((y % 100 != 0) || (y % 400 == 0))) return true;
  else return false;
}

function hideCalTimeFrame(frameId) {
	var dF = document.getElementById(frameId);
	
	if(dF) {
		dF.style.visibility="hidden";
		
		//needed for NS.  Move frame out of the viewable area so it won't block other inputs
		dF.style.top = -1000;
		dF.style.left = -1000;
	}
}

function hideCalendar() {
	hideCalTimeFrame("x7y8z9CalFrame")
}

function hideTimePicker() {
	hideCalTimeFrame("x7y8z9TimeFrame")
}

function ShowCalendar(pImage,pControl,eDP,dmin,dmax,fnCB){
  var dF=document.getElementById("x7y8z9CalFrame");
  var wF=window.frames.x7y8z9CalFrame;
	
	//rs added to hide time picker in case it's in view
	//document.getElementById("x7y8z9TimeFrame").style.visibility="hidden";
	hideTimePicker();
	
	//rs added to create default date
	var dValue=pControl.value;
	if (dValue=='') dValue=g_month + '/' + g_day + '/' + g_year;
	
	
  if(null==wF.g_fCalLoaded || false==wF.g_fCalLoaded){
    alert("Unable to load popup calendar.\r\nPlease reload the page.");
    return;
  }
	

  wF.SetMinMax(new Date(dmin),new Date(dmax));
  g_fnCB=fnCB;

  if(pControl==g_DateControl && "visible"==dF.style.visibility){
    if(g_DateControlV != dValue && GetInputDate(dValue,g_dFmt)){
      wF.SetInputDate(g_day,g_month,g_year);
      wF.SetDate(g_day,g_month,g_year);
      g_DateControlV=dValue;
    }
    else {
      //dF.style.visibility="hidden";
	  hideCalendar();
	}
  }
  else{
    if(GetInputDate(dValue,g_dFmt)){
      wF.SetInputDate(g_day,g_month,g_year);
      wF.SetDate(g_day,g_month,g_year);
    }
    else if(null != eDP && GetInputDate(eDP.value,g_dFmt)){
      wF.SetInputDate(g_day,g_month,g_year);
      wF.SetDate(g_day,g_month,g_year);
    }
    else{
      var dt=new Date(dmin);
      wF.SetInputDate(-1,-1,-1);
      wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
    }
    var eL=0;var eT=0;
    for(var p=pImage; p&&p.tagName!='BODY'; p=p.offsetParent){
      eL+=p.offsetLeft;
      eT+=p.offsetTop;
    }

    var eH=pImage.offsetHeight;
    var dH=dF.style.pixelHeight;
    var sT=document.body.scrollTop;
    
		dF.style.left=eL;
		
    if(eT-dH >= sT && eT+eH+dH > document.body.clientHeight+sT) {
      dF.style.top=eT-dH;
		}
    else {
      dF.style.top=eT+eH;
		}

    if("hidden"==dF.style.visibility) {
      dF.style.visibility="visible";
		}
    g_DateControl=pControl;
    g_DateControlV=dValue;
  }
}

function SetDate(d,m,y){
  var ds=GetDateSep();
  g_DateControl.focus();
  if("mmddyy"==g_dFmt) g_DateControl.value=m+ds+d+ds+y;
  else if("ddmmyy"==g_dFmt) g_DateControl.value=d+ds+m+ds+y;
  else g_DateControl.value=y+ds+m+ds+d;
  g_DateControlV=g_DateControl.value;
  if(null != g_fnCB && "" != g_fnCB)
    eval(g_fnCB);
}

function SetTime(hr, mn, AmPm){
  var hrStr, mnStr
	
	hrStr = hr;
	mnStr = mn;
	AmPmStr = AmPm;
	
  if (hr < 10) hrStr = '0' + hr;
	else hrStr = hr;
	
  if (hr == 0) hrStr = '12';

  if (mn < 10) mnStr = '0' + mn;
	else mnStr = mn;
		 	
  g_TimeControl.focus();
  g_TimeControl.value=hrStr + ":" + mnStr + " " + AmPm;
  g_TimeControlV=g_TimeControl.value;
}

function GetDOW2(d,m,y){
  var dt=new Date(y,m-1,d);
  return(dt.getDay()+(7-GetDowStart()))%7;
}

function LoadMonths(n){
  var dt=new Date();
  var m=dt.getMonth()+1;
  var y=dt.getFullYear();
  var rg=new Array(n);
  for(i=0; i < n; i++){
    rg[i]=document.createElement("IMG");
    rg[i].src="/eta/months/w" + GetDOW2(1,m,y) + "d" + GetMonthCount(m,y) + ".gif";
    m++;
    if(12 < m){
      m=1;
      y++;
    }
  }
}

//rs added
function ShowTimePicker(pImage,pControl){

  var dF=document.getElementById("x7y8z9TimeFrame");
  var wF=window.frames.x7y8z9TimeFrame;
	
	//rs added to hide date picker in case it's in view
	//document.getElementById("x7y8z9CalFrame").style.visibility="hidden";
	hideCalendar();

	//rs added to create default date
	var dValue=pControl.value;
	if (dValue>'') {
    var timeVal = new Date('1/1/1900 ' + dValue);
		var hrSelect = wF.document.getElementById("hrSelect");
    hrSelect.value = 1;
		hrSelect.value = timeVal.getHours() % 12;
		wF.document.getElementById("mnSelect").value = timeVal.getMinutes();
		wF.document.getElementById("AmPmSelect").value = (timeVal.getHours() < 12) ? 'AM' : 'PM';	
	}
	
	/*
  if(null==wF.g_fTimeLoaded || false==wF.g_fTimeLoaded){
    alert("Unable to load popup time picker.\r\nPlease reload the page.");
    return;
  }
	*/


  if(pControl==g_TimeControl && "visible"==dF.style.visibility){
    if(g_TimeControlV != dValue && GetInputDate(dValue,g_dFmt)){
//      wF.SetInputDate(g_day,g_month,g_year);
//      wF.SetDate(g_day,g_month,g_year);
      g_TimeControlV=dValue;
    }
    else {
      //dF.style.visibility="hidden";
	  hideTimePicker();
		}
  }
  else{
	/*
    if(GetInputDate(dValue,g_dFmt)){
      wF.SetInputDate(g_day,g_month,g_year);
      wF.SetDate(g_day,g_month,g_year);
    }
    else {
			if(null != eDP && GetInputDate(eDP.value,g_dFmt)){
	      wF.SetInputDate(g_day,g_month,g_year);
	      wF.SetDate(g_day,g_month,g_year);
	    }
	    else{
	      var dt=new Date(dmin);
	      wF.SetInputDate(-1,-1,-1);
	      wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
	    }
		}
*/
    var eL=0;var eT=0;
    for(var p=pImage; p&&p.tagName!='BODY'; p=p.offsetParent){
      eL+=p.offsetLeft;
      eT+=p.offsetTop;
    }
    var eH=pImage.offsetHeight;
    var dH=dF.style.pixelHeight;
    var sT=document.body.scrollTop;
    
		dF.style.left=eL;
		
    if(eT-dH >= sT && eT+eH+dH > document.body.clientHeight+sT) {
      dF.style.top=eT-dH;
		}
    else {
      dF.style.top=eT+eH;
		}
		

    if("hidden"==dF.style.visibility) {
     dF.style.visibility="visible";
		}
    g_TimeControl=pControl;
    g_TimeControlV=dValue;
  }
	
}

//}

LoadMonths(12);
