
var dateDept;
var depMonth;
var depDay;
var depYear;
var depMonthDays ;


var dateRet;
var retMonth;
var retDay;
var retYear;
var retMonthDays;

 function citysearch(fldname) {
   document.req.txtname.value=fldname;
   var w= window.open('/Travel-Network/citylist.html','',
                      'width=600,height=450,scrollbars=yes',nomenu=true);
   if (w.opener == null) {
   w.opener = self;
   }
 }




function Showthis() {
    var wi = screen.availWidth;
    var h = screen.availHeight;

    wi = wi - 15;
    h = h - 120;
	
   	if (document.URL.indexOf("PSAEROS_ES") >= 0) 
   	{
   		var w = this.open("/Travel-Network/perform_ES.html", "Processing", "scrollbars=no,toolbar=no,height=150,width=600");
	}
	else if (document.URL.indexOf("PSAEROS_PT") >= 0)
	{
		var w = this.open("/Travel-Network/perform_PT.html", "Processing", "scrollbars=no,toolbar=no,height=150,width=600");
	}
	else 
	{
		var w = this.open("/Travel-Network/perform.html", "Processing", "scrollbars=no,toolbar=no,height=150,width=600");
	}
	
    w.moveTo(((wi/2)-300),((h/2)-75));
if (w.opener == null) {
    w.opener = self;
 }
}


function AssignDate(aDay, aMonth, aYear) {
  var aDate = new Date();
  aDate.setMonth(0);
  aDate.setFullYear(aYear);
  aDate.setDate(aDay);
  aDate.setMonth(aMonth);
  return aDate;
}



    function valid() {
     var addays =2;

      if (document.forms['req'].COMPANY.value  == "INTERVAL")
        {
         addays =4;
         }
      if (document.forms['req'].COMPANY.value  == "DOITALLTVL")
        {
         addays =2;
         }
    var sysdate=document.req.sysdate1.value;
  var mm1 = document.req.sysdate1.value.substring(0,2);
  var dd1 = document.req.sysdate1.value.substring(2,4);
   var y1=document.req.sysdate1.value.substring(4,document.req.sysdate1.value.length);
   var d1 = eval(dd1) + addays;
   var m1 = eval(mm1) ;
    var SysDateStr=m1+'/'+d1+'/'+y1;
    var date1 = new Date(SysDateStr);
    var dat=(depMonth+1) + "/" + depDay + "/" + "200"+depYear;
    var date2=new Date(dat);
    var date1parse=Date.parse(date1);
    var date2parse=Date.parse(date2);
    var diff=(date2parse-date1parse);
    if (diff<0)  {

  if (document.forms['req'].COMPANY.value  == "DOITALLTVL")
 {

 alert("Reservations must be booked at least two days prior to departure");
 document.req.Dept_Day.focus();
      return false;
   }else {
 alert("Earliest travel date we can accommodate is 4 days from today.");
  document.req.Dept_Day.focus();
       return false;
    }}else {
        return true;
      } }


function DeptOptions(dateForm) {
  depMonth = dateForm.Dept_Month.selectedIndex;
  depYear = dateForm.Dept_Year.value;
  depDay = dateForm.Dept_Day.selectedIndex + 1;
  depMonthDays = GetDaysInMonth(depMonth, "200"+depYear)
  if(depDay > depMonthDays)
    dateDept = AssignDate(depMonthDays, depMonth, "200"+depYear)
if(depDay > depMonthDays)
    dateDept = AssignDate(depMonthDays, depMonth, "200"+depYear)
  else
    dateDept = AssignDate(depDay, depMonth, "200"+depYear)
  document.forms['req'].Dept_Day.options[dateDept.getDate()-1].selected =
true;
}

function RetOptions(dateForm) {
  retMonth = dateForm.Ret_Month.selectedIndex;
  retYear = dateForm.Ret_Year.value;
  retDay = dateForm.Ret_Day.selectedIndex + 1;
  retMonthDays = GetDaysInMonth(retMonth, "200"+retYear)
  if(retDay+1 > retMonthDays)
    dateRet = AssignDate(retMonthDays, retMonth, "200"+retYear)
  else
    dateRet = AssignDate(retDay, retMonth, "200"+retYear)
  document.forms['req'].Ret_Day.options[dateRet.getDate()-1].selected =
true;
}

function AdvanceDate(dateForm) {
  if(dateDept.getTime() > dateRet.getTime()) {
    dateRet = dateDept;
    dateRet.setDate(dateDept.getDate() + 1);
    dateDept = AssignDate(depDay, depMonth, "200"+depYear)
    retMonth = dateRet.getMonth();
    retDay = dateRet.getDate();
    retYear = dateRet.getFullYear() - 2000;
    retMonthDays = GetDaysInMonth(retMonth, dateRet.getFullYear());

    document.forms['req'].Ret_Month.options[retMonth].selected = true;
    document.forms['req'].Ret_Year.value = retYear;
    document.forms['req'].Ret_Day.options[retDay-1].selected = true;
  }
}


function FindYear(dateform){
 var curMonth1 = document.req.sysdate1.value.substring(0,2);
 var curDay =  document.req.sysdate1.value.substring(2,4);
 var curYear = document.req.sysdate1.value.substring(7,8);
 var curMonth = eval(curMonth1) - 1;
 //alert(curMonth + " " + curDay + " " + curYear );
var depYear;
var retYear;
 // alert(curYear+2000);
 depYear = 0;
 retYear = 0;
  depMonth=dateform.Dept_Month.selectedIndex;
  depDay=dateform.Dept_Day.selectedIndex + 1;
  if (depMonth>curMonth)
  depYear=curYear;
   if (depMonth<curMonth)
  depYear=eval(curYear)+1;

if ((depMonth==curMonth)&&(depDay<curDay))
  depYear=eval(curYear)+1;
    if ((depMonth==curMonth)&&(depDay>=curDay))
    depYear=curYear;
    dateform.Dept_Year.value=depYear;
  //alert(curYear+2000);
  //alert(depYear+2000);

    retMonth=dateform.Ret_Month.selectedIndex;
    retDay=dateform.Ret_Day.selectedIndex + 1;

    if (retMonth>curMonth)
    retYear=curYear;
    if (retMonth<curMonth)
    retYear=eval(curYear)+1;
    if ((retMonth==curMonth)&&(retDay<curDay))
    retYear=eval(curYear)+1;
    if ((retMonth==curMonth)&&(retDay>=curDay))
    retYear=curYear;
    dateform.Ret_Year.value=retYear;
    //alert(retYear+2000);

    }

function DateHandler(dateForm) {
  document.forms['req'].pickdate.value =
(document.forms['req'].Dept_Month.selectedIndex + 1) +
"/" + (document.forms['req'].Dept_Day.selectedIndex + 1) +
"/0" + document.forms['req'].Dept_Year.value;
  document.forms['req'].dropdate.value =
(document.forms['req'].Ret_Month.selectedIndex + 1) +
"/" + (document.forms['req'].Ret_Day.selectedIndex + 1) +
"/0" + document.forms['req'].Ret_Year.value;
}



function GetDaysInMonth(iMonth, iYear) {
  if(iMonth == 0 || iMonth == 2 || iMonth == 4 ||
iMonth == 6 || iMonth == 7 || iMonth == 9 ||
iMonth == 11) numDays=31;
  if(iMonth == 1){
    if(iYear%4 == 0) {
      if(iYear%100 != 0 || iYear%400 == 0){
        numDays=29;
      }
      else numDays=28;
    }
    else numDays=28;
  }
  if(iMonth == 3 || iMonth == 5 || iMonth == 8 ||
iMonth == 10) numDays=30;
  return numDays;
}



function mOvr(src,id,R) {
if (!src.contains(event.fromElement)) {
var cellID = id + 'Cell';
document.all.toolbar.rows(R).cells(cellID).bgColor =
'#ffff6b';
}
}

function mOut(src,id,R) {
if (!src.contains(event.toElement)) {
var cellID = id + 'Cell';
document.all.toolbar.rows(R).cells(cellID).bgColor =
'#ffffcc';
}
}



function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))}

function isCharInString(searchChar, theString)
{
var i;

if (!searchChar || !theString)
return false;

for (i = 0; i < theString.length; i++ ) {
var c = theString.charAt(i);
if (c == searchChar) {
return true;
}
}
return false;
}


// CheckField : validate content of form field.
// formname = name of form
// attributeName = input field
// attributeLabel = text to use in alert messages that identify the field
// mand = whether field is mandatory
// type = what to check for, 'N' for number, 'C' or character, 'anything' for both, null for none
// addChars = Additional characters - as string without comma - that are okay as field content

function CheckFieldExtra(form, attributeName, attributeLabel, mand, type, addChars) {
var     attribute;

eval("attribute = form." + attributeName + ";");
if (!attribute) {
alert("Attribute " + attributeName + " not found.");
return false;
}

  if (mand)
  {
      if(attribute.type.indexOf("SELECT") >=0 ||
      attribute.type.indexOf("select") >=0) {
       if (attribute.selectedIndex < 0) {
       alert(attributeLabel + " is a required field.");
       return false;
       }
      } else
       if (attribute.value.length == 0) {
       alert(attributeLabel + " is a required field.");
       return false;
       }
  }

  if (attribute.type.indexOf("SELECT") >=0 ||
      attribute.type.indexOf("select") >=0) {
      return true;
      }


if (attribute.value.length > 0 && type) {
// alphabets
if (type.toUpperCase() == "C") {
for ( i = 0; i < attribute.value.length; i++ ) {
var c = attribute.value.charAt(i);
if (!isLetter(c) && !isCharInString(c, addChars)) {
alert(attributeLabel + " can only contain characters (a-z,A-Z).");
return false;
}
}
}
// numeric
if (type.toUpperCase() == "N") {
for ( i = 0; i < attribute.value.length; i++ ) {
var c = attribute.value.charAt(i);
if (!isDigit(c) && !isCharInString(c, addChars)) {
alert(attributeLabel + " can only contain numbers (0-9).");
return false;
}
}
}
// alphanumeric
else {
for (i = 0; i < attribute.value.length; i++) {
var c = attribute.value.charAt(i);
if (!isDigit(c) && !isLetter(c) && !isCharInString(c, addChars)) {
alert(attributeLabel + " can only contain alphanumeric character.");
return false;
}
}
}
}

return true;
}

function chkSeniors() {
if (document.req.seniors.value == "" ||
document.req.seniors.value == " ")
{
document.req.childs.focus();
}
}

function chkChilds() {
if (document.req.childs.value == "" ||
document.req.childs.value == " ")
{
document.req.Infants.focus();
}
}

function isValidDate(fieldname, dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert(fieldname + ": " + "Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert(fieldname + ": " + "Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
alert(fieldname + ": " + "Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert(fieldname + ": " + "Month "+month+" doesn't have 31 days!")
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert(fieldname + ": " + "February " + year + " doesn't have " + day + " days!");
return false;
}
}
return true;  // date is valid
}






function ValidateDates (form) {
if (!isValidDate("Pickip Date", form.pickdate.value))
return false
if (!isValidDate("Dropoff Date", form.dropdate.value))
return false;
return true;
}

function CheckForm (form) {


if (!CheckFieldExtra(form, "PICKUP", "Pickup City",    true, "C", " "))
return true;

if (!CheckFieldExtra(form, "DROPOFF","Dropoff City", false, "C", " "))
return true;

if(!ValidateDates(form))
return true;

return Showthis();
}

 function clear_form()  {
  if ((document.req.PICKUP.type=="select") && (document.req.DROPOFF.type!="select")){
  document.req.PICKUP.options[0].selected=true;
  document.req.DROPOFF.value="";
  }
  if ((document.req.DROPOFF.type=="select") && (document.req.PICKUP.type!="select")){
  document.req.PICKUP.value="";
  document.req.DROPOFF.options[0].selected=true;
  }
  if (document.req.PICKUP.type=="select"){
  document.req.PICKUP.options[0].selected=true;
  document.req.DROPOFF.options[0].selected=true;
  }
  else{
  document.req.DROPOFF.value="";
 document.req.PICKUP.value="";
 }
 if ((document.req.PICKUP.type!="select") && (document.req.DROPOFF.type!="select")){
 document.req.PICKUP.value="";
 document.req.DROPOFF.value="";
 }
 document.req.Dept_Month.options[0].selected=true;
 document.req.Dept_Day.options[0].selected=true;
 document.req.hourcrpu.options[0].selected=true;
 document.req.Ret_Month.options[0].selected=true;
 document.req.Ret_Day.options[0].selected=true;
 document.req.hourcrdo.options[0].selected=true;
 document.req.car_size.options[0].selected=true;
 document.req.car_catg.options[0].selected=true;
 document.req.car_tranny.options[0].selected=true;
 document.req.car_ac.options[0].selected=true;
 //document.req.carcomp.options[0].selected=true;
 document.req.car_sort.options[0].selected=true;
 document.req.car_avail.options[0].selected=true;
 document.forms['req'].elements['hourcrpu'].selectedIndex=7;
 document.forms['req'].elements['hourcrdo'].selectedIndex=7;

  for(var i=0; i<document.req.carcomp.options.length; i++)
  document.req.carcomp.options[i].selected=false;
 document.forms['req'].elements['carcomp'].selectedIndex=0;
  depMonth= eval(depMonth1);
  depDay  = eval(depDay1);
  depYear = eval(depYear1);
  retMonth= eval(retMonth1);
  retDay  = eval(retDay1);
  retYear = eval(retYear1) ;


 }

function StartUp() {
 var month,depDay1,retDay1,addays,maxdays;
   addays =2;
 if (document.forms['req'].COMPANY.value  == "INTERVAL")
   addays =4;
 if (document.forms['req'].COMPANY.value  == "DOITALLTVL")
   addays =2;
  if (document.forms['req'].Dept_Month.selectedIndex == 0)
  {
  if(depMonth == 0 || depMonth == 2 || depMonth == 4 ||
  depMonth == 6 || depMonth == 7 || depMonth == 9 ||
  depMonth == 11)

     {
       maxdays = 31;
    if (eval(depDay)+addays>maxdays)
       {
         depDay1=eval(depDay)+addays-maxdays;
         month=eval(depMonth)+1;

				//carango - 122903: Fix for Date bug (January = month 12)
				if (month == 12)
				{
					month = 0;
				}
				//carango - 122903
       }
    else
       {
         depDay1=eval(depDay)+addays;
         month=eval(depMonth);
       }


    if(eval(depDay)+addays+1>maxdays)
       {
         retDay1=eval(depDay)+addays+1-maxdays;
         var retmonth=eval(depMonth)+1;

				//carango - 122903: Fix for Date bug (January = month 12)
				if (retmonth == 12)
				{
					retmonth = 0;
				}
				//carango - 122903
          }
       else
          {
            retDay1=depDay1+1;
            retmonth=eval(depMonth);
          }
  }

  if(depMonth == 1)
       {
         if(depYear%4 == 0)
           {
            maxdays=29;
            if(depYear%100 != 0 || depYear%400 == 0)
              {
               if(eval(depDay)+addays>maxdays)
                 {
                   depDay1=eval(depDay)+addays-maxdays;

                   month=eval(depMonth)+1;
                 }
               else

                       {
                        depDay1=eval(depDay)+addays;
                        month=eval(depMonth);
                       }

                     if(eval(depDay)+addays+1>maxdays)
                       {
                        retDay1=eval(depDay)+addays+1-maxdays;
                         var retmonth=eval(depMonth)+1;
                        }
                      else
                        {
                         retDay1=depDay1+1;
                         retmonth=eval(depMonth);
                        } //for second if
                 }
         } //for leap year( % 100)
       else
        {
         maxdays=28;
           if(eval(depDay)+addays>maxdays)
            {
               depDay1=eval(depDay)+addays-maxdays;
                 month=eval(depMonth)+1;
              }
             else
              {
                depDay1=eval(depDay)+addays;
                month=eval(depMonth);
              }
             if(eval(depDay)+addays+1>maxdays)
              {
                retDay1=eval(depDay)+addays+1-maxdays;
                var retmonth=eval(depMonth)+1;
              }
             else
              {
                retDay1=depDay1+1;
                var retmonth=eval(depMonth);
     } //for second if

   }

 } //first if

 if(depMonth == 3 || depMonth == 5 || depMonth == 8 || depMonth == 10)
 {

 maxdays=30;
  if (eval(depDay)+addays>maxdays)
   {
    depDay1=eval(depDay)+addays-maxdays;
    month=eval(depMonth)+1;
   }
  else
    {
    depDay1=eval(depDay)+addays;
    month=eval(depMonth);

    }


   if(eval(depDay)+addays+1>maxdays)
    {
    retDay1=eval(depDay)+addays+1-maxdays;
    var retmonth=eval(depMonth)+1;

    }
   else
    {

    retDay1=depDay1+1;
       var retmonth=eval(depMonth);
       }
   }

   document.forms['req'].Dept_Month.options[month].selected = true;

   document.forms['req'].Dept_Year.value = depYear;
   document.forms['req'].Dept_Day.options[depDay1-1].selected = true;
   document.forms['req'].Ret_Month.options[retmonth].selected = true;
   document.forms['req'].Ret_Year.value = retYear;
   document.forms['req'].Ret_Day.options[retDay1-1].selected = true;
   document.forms['req'].pickdate.value =
      (depMonth+1) + "/" + depDay + "/" + "0"+depYear;
   document.forms['req'].dropdate.value =
       (retMonth+1) + "/" + retDay + "/" + "0"+retYear;





   var sysdate=document.req.sysdate1.value;
    var mm1 = document.req.sysdate1.value.substring(0,2);
    var dd1 = document.req.sysdate1.value.substring(2,4);
   var y1=document.req.sysdate1.value.substring(4,document.req.sysdate1.value.length);
    var d1 = eval(dd1);
    var m1 = eval(mm1) ;
   var SysDateStr=m1+'/'+d1+'/'+y1;
   dateDept = new Date(SysDateStr);
   var sysdate11=document.req.sysdate1.value;
    var mm11 = document.req.sysdate1.value.substring(0,2);
    var dd11 = document.req.sysdate1.value.substring(2,4);
  var y11=document.req.sysdate1.value.substring(4,document.req.sysdate1.value.length);
    var d1 = eval(dd11)+1;
    var m1 = eval(mm11) ;
   var SysDateStr=m1+'/'+d1+'/'+y11;
   dateRet = new Date(SysDateStr);
  }

  }


