function getElement(iVal){
 return (document.all) ? document.all[iVal] : document.getElementById(iVal);
}
//===========================================================================================
function getFormElement(iVal,frmNum){ //gets element by name or #, easier than always typing document.forms[#].elements[Ele]
 var frm = (frmNum) ? frmNum : 0;
 var Ele = document.forms[frm].elements[iVal];
 var type = Ele.type;
 return (type == "select-one") ? Ele.options[Ele.selectedIndex] : Ele;
} // end function
//===========================================================================================
function Populate(iVal){
 var iv = (iVal) ? iVal : "fClass";
 var s = getFormElementValue("fResource");
 ClearOptions(iv);
 aj.doAJAX("getclasses.php?fResource="+s+"&sid="+Math.random(),"AddOpts");
} // end populate
//===========================================================================================
function AddOpts(iVal){ 
 var cList = iVal.split(";"); //Multiple Airports
 for (i=0;i<=cList.length;i++) AddToOptionList("NearestAirports", cList[i], cList[i], "fAirport");
}    
//===========================================================================================
function AddToOptionList(OptionList, OptionValue, OptionText, frmNum) {
 var frm = (frmNum) ? frmNum : 0;
 var Xpr =/\[disabled\]/i;
 var OText = OptionText.replace(Xpr,"");
 var OValue = OptionText.replace(Xpr,"");
 var oList = document.forms[frm].elements[OptionList]; 
 if (OText && OValue) oList[oList.length] = new Option(OText, OValue);
} // end function
//===========================================================================================
function ClearOptions(OptionList,frmNum) {
 // Always clear an option list from the last entry to the first
 var frm = (frmNum) ? frmNum : 0;
 var oList = document.forms[frm].elements[OptionList];
 for (x = oList.length; x >= 1; x--) oList[x] = null;
}
//===========================================================================================
function FindAirport(){
 var iVal = getFormElement("iAirport","fAirport").value;
 if (iVal) aj.doAJAX("getairport.php?airport="+iVal+"&sid="+Math.random(),"ShowAirports");
}
//===========================================================================================
function ShowAirports(){
 var output = aj.getData();
 var Xpr = /~/;
 var Stuff = ""; //NearestAirports
 if (output) {
  ClearOptions("NearestAirports","fAirport");
  AddOpts(output);
 }
}
//===========================================================================================
function validateme(frm){
 var fLen = frm.length-1;
 var Required = frm.elements["REQUIREDFIELDS"].value.split(",");
 var err = "";
 var tmp = ""
 
 for (i in Required){
  tmp = Required[i];	 
  if (frm.elements[tmp].value == "" || !frm.elements[tmp].value) err += frm.elements[tmp].name+" is Required.\n";
 }
 if (err) {
  err += " \n \n";
  alert("Errors:\n"+err);
 }
 return (err) ? false : true;
}
var gdir = "";
var miles = 0;
var duration = 0;
//===========================================================================================
function Display2(){
 var RetData = aj.getData(); 
 var Xpr = /Please Call/i;
 if (RetData) {
  if (!Xpr.test(RetData)) RetData="$"+RetData;
  getElement("EstimatedRate").innerHTML = RetData.replace(/query:.*/,"");
  window.status = RetData;
 }
}
//===========================================================================================
function display(){
 var actDuration = gdir.getDuration().html;
 miles = gdir.getDistance().html.replace(/(&nbsp;)|(mi)/ig,"");	
 duration = gdir.getDuration().seconds / 60; // == min ?
 duration = Math.ceil(duration); // in min..
 getElement("duration").innerHTML = actDuration;
 GetAirportCode(duration);
}
//===========================================================================================
function GetAirportCode(iDuration){
 var iVal = getFormElement("driveTo","quickquote").value; //-- needs minutes too.
 var cType = getFormElement("carType","quickquote").value;
 var minVal = parseInt(iDuration/10)*10;
 var tUrl = "getrate.php?airport="+iVal+"&duration="+minVal+"&carType="+cType+"&r="+Math.random();  
 window.status = tUrl;
 aj.doAJAX(tUrl,"Display2");
}
//===========================================================================================
function setDirections() {
 var fromAddress = getFormElement("driveFrom","quickquote").value;  //
 var toAddress = getFormElement("driveTo","quickquote").value; // 
 if (fromAddress && toAddress){
  var locale = "en_US"; //locale   
  var summary = "";
  var distance = "";
  var duration = "";   
  var map = new GMap2(document.getElementById("map_canvas"));
  gdir = new GDirections(map, document.getElementById("quickquote")); //
  GEvent.addListener(gdir,"load",display);      
  gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
  //GMap2.removeOverlay()
  //map.removeOverlay();
 }
 else {
  alert("Error, Select Address(es)");
 }
}
//===========================================================================================
function handleErr(msg, url, line_no){
 errorMsg = "Error: " + msg + "\n";
 errorMsg += "URL: " + url + "\n";
 errorMsg += "Line: " + line_no + "\n\n";
 alert(errorMsg);
}
//===========================================================================================
window.onerror = handleErr;  
document.oncontextmenu = function(){return false;}





