var isNetscape = false;

if(navigator.appName.indexOf("Netscape") >= 0 ) {
  isNetscape = true;
}
else {
  isNetscape = false;
}

window.onload = InitBW;
document.onclick = HideEm;


var d, fTSR;
var gBF=false;
var g_MINY = 1601;
var g_MAXY = 4500;
var g_month = 0;
var g_day = 0;
var g_year = 0;
var g_yLow = 1990;
var g_eC=null;
var g_eCV="";
var g_dFmt=GetDateFmt();
var g_fnCB=null;

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;

function InitBW(e) {
	var pHourCtrl = document.getElementById("res1_phour");
	if (pHourCtrl)
		pHourCtrl.onfocus = HideEm;
	
	var rHourCtrl = document.getElementById("res1_rhour");
	if (rHourCtrl)
		rHourCtrl.onfocus = HideEm;	
}

function PickDate(el) {
  var today = new Date();
	if (document.getElementById('CalFrame')==null){return;}
	//if we are selecting a pickup date (pdt)
	if (el.id == 'res1_pdt') {
	  //show the calendar using today's date as the minimum date
		ShowCalendar(document.getElementById('res1_pdt'),document.getElementById('res1_pdt'),null,today.getMonth() + 1 + '/' + today.getDate() + '/' + today.getFullYear(),'12/31/2099',true);
	}
	//if we are selecting a return date (rdt)
	if (el.id == 'res1_rdt') {
		//show the calendar using the pickup date as the min date
		var resDate = ParseInternationalDate(document.resForm['res1:pdt'].value);
		var dateString = resDate.getMonth() + 1 + '/' + resDate.getDate() + '/' + resDate.getFullYear()
		ShowCalendar(document.getElementById('res1_rdt'),document.getElementById('res1_rdt'),null,dateString,'12/31/2099');
	}
}

//take the date from pickup date and add a day and set it as the return date
function setReturnDate(d,m,y) {
  var f = MM_findObj('res1_rdt');
  //check the value in return date
  if(f) {
    //Get the existing value of return date
    var retDate = ParseInternationalDate(f.value);
    var newRetDate = new Date();
    newRetDate.setDate(1);
    newRetDate.setMonth(m - 1);
    newRetDate.setFullYear(y);
    newRetDate.setDate(d + 1);
    if(retDate < newRetDate) {
	  try {
		f.value = GetInternationalDate(newRetDate);
	  }
	  catch(ex) {
		f.value = (newRetDate.getMonth() + 1) + '/' + newRetDate.getDate() + '/' + newRetDate.getFullYear();
      }
    }
  }
}

function ShowCalendar(eP,eD,eDP,dmin,dmax,fnCB){
  
  if(isNetscape) {
    var dF=MM_findObj('CalFrame');
    var wF = Calendar1;
  }
  else {
    var dF=document.all.Calendar1;
    var wF=window.frames.Calendar1;
  }
  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(eD==g_eC && "block"==dF.style.display){
    if(g_eCV != eD.value && GetInputDate(eD.value,g_dFmt)){
      wF.SetInputDate(g_day,g_month,g_year);
      wF.SetDate(g_day,g_month,g_year);
      g_eCV=eD.value;
    }
    else
      dF.style.display="none";
  }
  else{
    if(GetInputDate(eD.value,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=eP; p&&p.tagName!='BODY'; p=p.offsetParent){
      eL+=p.offsetLeft;
      eT+=p.offsetTop;
    }
    //added
    dF.style.pixelHeight = 194;
    dF.style.pixelWidth = 148;
    var eH=eP.offsetHeight;
    var dH=dF.style.pixelHeight;
    var sT=document.body.scrollTop;
    //added
    if(dF.style) {
      //Updated for Mac
      //dF.style.left=eL;
      dF.style.left = eL + 'px';
      if(eT-dH >= sT && eT+eH+dH > document.body.clientHeight+sT)
        //Updated for Mac
        //dF.style.top=eT-dH;
        dF.style.top=eT-dH + 'px';
      else
        //Updated for Mac
        //dF.style.top=eT+eH;
        dF.style.top=eT+eH + 'px';
		if ((_locationPickerIFrame) && (_locationPickerIFrame.style.visibility == 'hidden')){
			if("hidden"==dF.style.visibility) {
				dF.style.visibility="visible";
			}
		}
		else if (!_locationPickerIFrame){
			if("hidden"==dF.style.visibility) {
				dF.style.visibility="visible";
			}
		}
      g_eC=eD;
      g_eCV=eD.value;
      
    }
  }
}

function HideEm(e)
{
	if(isNetscape) {
	  if(e.target.id != 'res1_pdt' && e.target.id != 'res1_rdt') {
	    var c = MM_findObj('CalFrame');
  	  
	    if (c!=null) {
	      c.style.visibility="hidden";
	    }
	  }
	}
	else {
	  if(event.srcElement.id != 'res1_pdt' && event.srcElement.id != 'res1_rdt') {
	    var c = document.getElementById('CalFrame');
  	  
	    if (c!=null) {
	      c.style.visibility="hidden";
	    }
	  }
	}
}

function LCal()
{
	var c = document.getElementById('CalFrame');
	if (c!=null) {
	  if (c.src=='') {
	    c.src='/includes/calendar.htm';
	  }
	}
}

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 m;
  var d;
  var y;

  var dateFormatArray = dateFormat.split(dateSeperator);
  var dateArray = t.split(dateSeperator);
  
  for (var i=0; i < dateArray.length; i++) {

	if (String(dateFormatArray[i]).toUpperCase() == 'M') {
		m = parseInt(dateArray[i], 10);
	}
	else if (String(dateFormatArray[i]).toUpperCase() == 'D') {
		d = parseInt(dateArray[i], 10);
	}
	else if (String(dateFormatArray[i]).toUpperCase() == 'Y') {
		y = parseInt(dateArray[i], 10);
	}
  }

  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 SetDate(d,m,y){

  var localDate = new Date(y,(m-1),d);
  
  g_eC.value = GetInternationalDate(localDate);
  
  g_eCV=g_eC.value;
  
  if(null != g_fnCB && "" != g_fnCB)
    //eval(g_fnCB);
    setReturnDate(d,m,y);
}

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="/images/cal/w" + GetDOW2(1,m,y) + "d" + GetMonthCount(m,y) + ".gif";
    m++;
    if(12 < m){
      m=1;
      y++;
    }
  }
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function GetInternationalDate(dateFrom) {
	var day = String(dateFrom.getDate());
	var month = String(dateFrom.getMonth() + 1);
	var year = String(dateFrom.getFullYear());
	
	if (day.length < dayLen) {
		day = "0" + day;
	}
	
	if (month.length < monthLen) {
		month = "0" + month;
	}

	
	return dateFormat.replace(/M/, month).replace(/D/, day).replace(/Y/, year);
}

function ParseInternationalDate(dateString) {
	var d = 0;
	var m = 0;
	var y = 0;

	var dateFormatArray = dateFormat.split(dateSeperator);
	var dateStringArray = dateString.split(dateSeperator);
		
	for (var i=0; i < dateStringArray.length; i++) {
		if (String(dateFormatArray[i]).toUpperCase() == 'M') {
			m = parseInt(dateStringArray[i], 10);
		}
		else if (String(dateFormatArray[i]).toUpperCase() == 'D') {
			d = parseInt(dateStringArray[i], 10);
		}
		else if (String(dateFormatArray[i]).toUpperCase() == 'Y') {
			y = parseInt(dateStringArray[i], 10);
		}
	}
	
	var returnDate = new Date(y,(m-1),d);
	return returnDate;
}

LoadMonths(12);