<!--
//------------------------------------------------------------------------
// FILE: pas.js
// Index of JavaScript Functions
//------------------------------------------------------------------------
// - startTimer()
// - Logout()
// - checkAvailability(url)
// - updateCurrent(el)
// - updateParent(el)
// - updateParent_original(el) [deprecated]
// - getRow (el)
// - rowMouseOver(el)
// - rowMouseOut(el)
// - MM_openBrWindow(theURL,winName,features)
// - MM_findObj(n, d)
// - YY_checkform()
// - YY_checkavailabilityform()
//------------------------------------------------------------------------

function startTimer() {
	// time is in milliseconds (60,000 ms = 1 minute)
	setTimeout('Logout()',7200000);
}
	
function Logout() {
	window.location.href="logout.asp"
}

function checkAvailability(url) {
	window.location.href = url
}

function updateCurrent(el){
		var row = getRow(el)
		var parent = window.opener
		var strPassengerEMPID
		strPassengerEMPID=row.cells[0].innerText

		var url
		url = new String(parent.location)
		var offset
		offset=url.indexOf("?")
		if (offset == -1){
		// url w/o parameter(s) - create new 'pid' parameter
			url = url+'?pid='+strPassengerEMPID
		// debug
		//	alert(offset)
		}else{
		// url already has parameters - remove and replace with 'pid' parameter
			url = url.slice(0,offset)
			url = url+'?pid='+strPassengerEMPID
		}
	window.opener.location.href = url
	window.close()
}

function updateParent(el) {
		var row = getRow(el)
		var parent = window.opener
		
		// assign values to page elements
		parent.passenger.innerHTML = '<strong>Passenger</strong>: ' + row.cells[1].innerText
		parent.billingname.innerHTML = '<strong>Name</strong>: ' + row.cells[1].innerText
		parent.email.innerHTML = '<strong>E-mail</strong>: ' + row.cells[2].innerText
		parent.companycode.innerHTML = '<strong>Company Code</strong>: ' + row.cells[3].innerText
		parent.chargecode.innerHTML = '<strong>Dept. Charge Code</strong>: ' + row.cells[4].innerText
		parent.phone.innerHTML = '<strong>Phone</strong>: ' + row.cells[5].innerText

		if(typeof(parent.document.ReserveThisFlight)!="undefined") {
		// set hidden form fields
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEMPID)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEMPID.value = row.cells[0].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerName)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerName.value = row.cells[1].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEmail)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEmail.value = row.cells[2].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerCompanyCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerCompanyCode.value = row.cells[3].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerChargeCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerChargeCode.value = row.cells[4].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerPhone)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerPhone.value = row.cells[5].innerText
			}
		}
		window.close()
}

function updateZarent(el) {
// Implemented by a onClick method found on the SPASSENGER.ASP
		var row = getRow(el)
		var parent = window.opener
		if(typeof(parent.document.ReserveThisFlight)!="undefined") {
		// set hidden form fields
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEMPID)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEMPID.value = row.cells[0].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerName)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerName.value = row.cells[1].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEmail)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEmail.value = row.cells[2].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerCompanyCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerCompanyCode.value = row.cells[3].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerChargeCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerChargeCode.value = row.cells[4].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerPhone)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerPhone.value = row.cells[5].innerText
			}
		}
		// Submits the 'ReserveThisFlight' form populated above
		parent.document.ReserveThisFlight.submit()
		window.close()
}

function submitReservation(){
// Implemented by the Reserve button onClick method displayed on AVAILABILITY.ASP
//		parent.YY_checkform('ReserveThisFlight','pas_PassengerEMPID','#q','0','Field \'pas_PassengerEMPID\' is not valid.','pas_PassengerName','#q','0','Field \'pas_PassengerName\' is not valid.','pas_PassengerEmail','#q','0','Field \'pas_PassengerEmail\' is not valid.','pas_PassengerCompanyCode','#q','0','Field \'pas_PassengerCompanyCode\' is not valid.','pas_PassengerChargeCode','#q','0','Field \'pas_PassengerChargeCode\' is not valid.','pas_PassengerPhone','#q','0','Field \'pas_PassengerPhone\' is not valid.');
//		parent.YY_checkform('ReserveThisFlight','pas_PassengerEMPID','#q','0','Passenger information is invalid.','pas_PassengerName','#q','0','Passenger name is unknown.','pas_PassengerEmail','#q','0','Passenger e-mail is missing or invalid.','pas_PassengerCompanyCode','#q','0','Passenger company code is missing.','pas_PassengerChargeCode','#q','0','Passenger charge code is missing.','pas_PassengerPhone','#q','0','Passenger phone number is missing.')
		parent.YY_checkavailabilityform('ReserveThisFlight','pas_PassengerEMPID','#q','0','Passenger information is invalid.','pas_PassengerName','#q','0','Passenger name is unknown.','pas_PassengerEmail','#q','0','Passenger e-mail is missing or invalid.','pas_PassengerCompanyCode','#q','0','Passenger company code is missing.','pas_PassengerChargeCode','#q','0','Passenger charge code is missing.','pas_PassengerPhone','#q','0','Passenger phone number is missing.')

		if (parent.document.MM_returnValue){
			document.ReserveThisFlight.action="reserve.asp"
//			document.ReserveThisFlight.submit()
		}
}

function updateParent_original(el) {
		var row = getRow(el)
		var parent = window.opener

		if(typeof(parent.document.ReserveThisFlight)!="undefined") {
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEMPID)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEMPID.value = row.cells[0].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerName)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerName.value = row.cells[1].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerEmail)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerEmail.value = row.cells[2].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerCompanyCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerCompanyCode.value = row.cells[3].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerChargeCode)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerChargeCode.value = row.cells[4].innerText
			}
			if(typeof(parent.document.ReserveThisFlight.pas_PassengerPhone)!="undefined") {
			parent.document.ReserveThisFlight.pas_PassengerPhone.value = row.cells[5].innerText
			}
		}		

		parent.passenger.innerText = row.cells[1].innerText
		parent.billingname.innerText = row.cells[1].innerText
		parent.email.innerText = row.cells[2].innerText
		parent.companycode.innerText = row.cells[3].innerText
		parent.chargecode.innerText = row.cells[4].innerText
		parent.phone.innerText = row.cells[5].innerText

		window.close()
}

function getRow(el) {
		while(el.tagName != "TR" && el.tagName != "BODY") {
			el = el.parentElement
		}
		return el
}

function rowMouseOver(el) {
		el.style.background='#D0D8E0'
//		el.style.color= "red"
//		el.style.cursor="hand"
}

function rowMouseOut(el) {
		el.style.background='#ffffff'
//		el.style.color= "black"
//		el.style.cursor="default"
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

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 YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
//    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
    if (addErr){myErr+='- '+args[i+3]+'\n'; addErr=false}
  }
//  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  if (myErr!=''){alert(myErr)}
  document.MM_returnValue = (myErr=='');
}

function YY_checkavailabilityform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkavailabilityform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('This reservation can not be completed for the following reasons:\t\n\n'+myErr+'\n\nPlease contact the Air Shuttle Call Center on (877) 359-1811 for\nassistance in updating the passengers details as required.\n\n')}
  document.MM_returnValue = (myErr=='');
}
//-->