function addBookmark(obj, url, title)
{            
  if (!url) url = location.href;
  if (!title) title = document.title;
  //Gecko
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  //IE4+
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  //Opera7+
  else if (window.opera && document.createElement && (obj != null))
  {
    var lnk = obj;       
    lnk.rel = 'sidebar';
    lnk.href = url;
    lnk.title = title;
  }
  else return false;
  return true;
}

function formatCurrency(num) 
{
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))
    num = "0";
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents<10)
    cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
      num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + '$' + num + '.' + cents);
}


function checkValidDate(dateStr) {
    // dateStr must be of format month day year with either slashes
    // or dashes separating the parts. Some minor changes would have
    // to be made to use day month year or another format.
    // This function returns True if the date is valid.
    var slash1 = dateStr.indexOf("/");
    if (slash1 == -1) { slash1 = dateStr.indexOf("-"); }
    // if no slashes or dashes, invalid date
    if (slash1 == -1) { return false; }
    var dateMonth = dateStr.substring(0, slash1)
    var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
    var slash2 = dateMonthAndYear.indexOf("/");
    if (slash2 == -1) { slash2 = dateMonthAndYear.indexOf("-"); }
    // if not a second slash or dash, invalid date
    if (slash2 == -1) { return false; }
    var dateDay = dateMonthAndYear.substring(0, slash2);
    var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
    if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) { return false; }
    // if any non-digits in the month, invalid date
    for (var x=0; x < dateMonth.length; x++) {
        var digit = dateMonth.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text month to a number
    var numMonth = 0;
    for (var x=0; x < dateMonth.length; x++) {
        digit = dateMonth.substring(x, x+1);
        numMonth *= 10;
        numMonth += parseInt(digit);
    }
    if ((numMonth <= 0) || (numMonth > 12)) { return false; }
    // if any non-digits in the day, invalid date
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text day to a number
    var numDay = 0;
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        numDay *= 10;
        numDay += parseInt(digit);
    }
    if ((numDay <= 0) || (numDay > 31)) { return false; }
    // February can't be greater than 29 (leap year calculation comes later)
    if ((numMonth == 2) && (numDay > 29)) { return false; }
    // check for months with only 30 days
    if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) { 
        if (numDay > 30) { return false; } 
    }
    // if any non-digits in the year, invalid date
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text year to a number
    var numYear = 0;
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        numYear *= 10;
        numYear += parseInt(digit);
    }
    // Year must be a 2-digit year or a 4-digit year
    if ( (dateYear.length != 2) && (dateYear.length != 4) ) { return false; }
    // if 2-digit year, use 50 as a pivot date
    if ( (numYear < 50) && (dateYear.length == 2) ) { numYear += 2000; }
    if ( (numYear < 100) && (dateYear.length == 2) ) { numYear += 1900; }
    if ((numYear <= 0) || (numYear > 9999)) { return false; }
    // check for leap year if the month and day is Feb 29
    if ((numMonth == 2) && (numDay == 29)) {
        var div4 = numYear % 4;
        var div100 = numYear % 100;
        var div400 = numYear % 400;
        // if not divisible by 4, then not a leap year so Feb 29 is invalid
        if (div4 != 0) { return false; }
        // at this point, year is divisible by 4. So if year is divisible by
        // 100 and not 400, then it's not a leap year so Feb 29 is invalid
        if ((div100 == 0) && (div400 != 0)) { return false; }
    }
    // date is valid
    return true;
}

function imageOn( imgN, imgU )
{
  if(document.images)document.images[imgN].src=imgU;
}

function widgetExpand(classOn, classOff)
{
  document.getElementById(classOn).style.display = 'block';
  document.getElementById(classOff).style.display = 'none';
}

function widgetExpand2(classOn, classOff)
{
  document.getElementById(classOn).style.display = 'block';
  document.getElementById(classOff).style.display = 'none';
  document.getElementById('subPgMainContent').style.height = '660px';
}

function checkSearchParameters(airportCtrl, startDateCtrl, startTimeCtrl, endDateCtrl, endTimeCtrl, newurl, curPage)
{
            var txtLogin = document.getElementById("resUNWidget");
            var txtPassword = document.getElementById("resPWWidget");
            var txtError = document.getElementById("resWidgetError");

            if(txtLogin && document.getElementById("resWidget_loginFields").style.display != 'none')
            {
	      if(txtLogin.value && txtPassword.value)
	      {
                res = dologin(curPage, 'resUNWidget', 'resPWWidget', 'btnlogin', 'loginError', false);
                if(!res) return false;
	      }
            }

	    if (!airportCtrl) airportCtrl = "selectAirport";
            if (!startDateCtrl) startDateCtrl = "checkInDate";	
            if (!startTimeCtrl) startTimeCtrl = "checkInTime";	
            if (!endDateCtrl) endDateCtrl = "checkOutDate";	
            if (!endTimeCtrl) endTimeCtrl = "checkOutTime";		    

            var airport = document.getElementById(airportCtrl);
            var txtStartDate = document.getElementById(startDateCtrl);
            var txtStartTime = document.getElementById(startTimeCtrl);
            var txtEndDate = document.getElementById(endDateCtrl);
            var txtEndTime = document.getElementById(endTimeCtrl);

if (txtStartTime.value == "" || txtEndTime.value == "")
            {
		txtError.innerHTML = "Please correct Check-In date and time";
                return false;
	    }



            var today = new Date();
            var startDateTime = new Date(txtStartDate.value + " " + txtStartTime.value.substring(0, txtStartTime.value.length-2) + ' ' + txtStartTime.value.substring(txtStartTime.value.length-2));
            var endDateTime = new Date(txtEndDate.value + " " + txtEndTime.value.substring(0, txtEndTime.value.length-2) + ' ' + txtEndTime.value.substring(txtEndTime.value.length-2));

            if (isNaN(startDateTime))
              startDateTime = 0;	
		
            if (isNaN(endDateTime))
              endDateTime = 0;

            //validate
            if (startDateTime < today)
            {
                txtError.innerHTML = "Please correct Check-In date and time";
                return false;
            }
            
            if (endDateTime < today) 
            {
                txtError.innerHTML = "Please correct Check-Out date and time";
                return false;
            }
            if (startDateTime >= endDateTime) 
            {
                txtError.innerHTML = "Please correct Check-In date and time";
                return false;
            } 
            
	    if (!checkValidDate(txtStartDate.value)){
		txtError.innerHTML = "Please correct Check-In date and time";
		return false;
		}
	    if (!checkValidDate(txtEndDate.value)) {
		txtError.innerHTML = "Please correct Check-Out date and time";
		return false;
		}
		

            var oneHourInMinutes=1000*60
            var datediff = (endDateTime.getTime() - startDateTime.getTime())/oneHourInMinutes
            if (datediff <= 60) 
            {
                txtError.innerHTML = "Invalid Date Range.";
                return false;
            }       

            var cutoffDate = new Date();
            
            //due to safari bug any one dateadd must be less than 1 byte (128)
            cutoffDate.setDate(today.getDate() + 90);
            cutoffDate.setDate(cutoffDate.getDate() + 90);
            if (endDateTime >= cutoffDate) 
            {
                txtError.innerHTML = "Please choose a date less than 6 months from today.";
                return false;
            }          
            if (airport.selectedIndex == 0) {
                txtError.innerHTML = 'Please choose an airport';
                return false;  
            }
            document.getElementById('searchdone').value='true';         

            var frm = document.forms['searchform'];
            frm.submit();                                 
        //    location.href = newurl + "?aid=" + airport.options[airport.selectedIndex].value.substring(1) + "&startdate=" + txtStartDate.value + 
	//	"&starttime=" + txtStartTime.value + "&enddate=" +  txtEndDate.value  + "&endtime=" + txtEndTime.value;
            
        }

function openwin(res)
{
    win = window.open("","","width=400,height=400,status=yes,scrollbars=yes");
    win.document.open("text/html");
    win.document.write("<html xmlns='http://www.w3.org/1999/xhtml'><head><title>FASTTRACK</title></head><body><img src='" + res+ "'/></body></html>");
}

function doreservation(paymenttype, rid, url)
{   
  //document.getElementById('paymenttype').value=paymenttype;
  document.getElementById('rid').value = rid;
  document.forms['reserveform'].action = url + "?" + ((paymenttype == 3) ? "prepaid=" : "payatlot=");
  document.forms['reserveform'].submit();
  return false;
}

function trim(s)
{
	try 
	{
            return s.replace(/^\s+|\s+$/g, "");
        } 
	catch(e) 
	{
            return s;
        }
}

function checkSignUpEmail(emailctrl, msgdiv)
{
  var email = document.getElementById(emailctrl).value;
  var msgCtrl = document.getElementById(msgdiv);   
  msgCtrl.style.color='red';
  if (trim(email) == '')
  {
    msgCtrl.innerHTML="Invalid Email Address";
    return false;
  }  
  var expr = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
  if (!email.match(expr))
  {
    msgCtrl.innerHTML="Invalid Email Address";
    return false;
  }
  msgCtrl.innerHTML="";
  return true;
}
function setLabel(obj) {
	var labels=document.getElementsByTagName("label"),lbl;
try{
	for(var i=0; i<labels.length;i++ ){
		if(labels[i].htmlFor==obj.id) lbl = labels[i]
	}
	if (lbl.style.display != 'none') lbl.style.display = 'none';
	else { if (obj.value == '') lbl.style.display = 'block'; }
}
catch(err) {}
}

function setPreferredAirport()
{
sel = document.getElementById('selectAirport');
aid = document.getElementById('preferredAid');

if(sel.selectedIndex == 0 && aid)
{
  for(i = 0; i < sel.length; i++)
  {
    if(sel.options[i].value == '#' + aid.value)
    {
      sel.selectedIndex = i;
      break;
    }
  }
}
}
