var IgnoreCheckResult = false;
var timeEntryVisible=true;

/* 
Following getElementById function implementation based 
on code from The JavaScript Source!! http://javascript.internet.com
Created by: Ultimater :: http://ultimiacian.tripod.com/
 */
if(!document.getElementById){
  if(document.all)
  document.getElementById=function(){
    if(typeof document.all[arguments[0]]!="undefined")
    return document.all[arguments[0]]
    else
    return null
  }
  else if(document.layers)
  document.getElementById=function(){
    if(typeof document[arguments[0]]!="undefined")
    return document[arguments[0]]
    else
    return null
  }
}


function selectTime(which, TheForm)
{
  var f = TheForm;
  var agt=navigator.userAgent.toLowerCase();

  if ((agt.indexOf("aol") == -1) ||
      (agt.indexOf("mac") == -1)) {
    f.tm[which].checked = true;
    return true;
  }
}

function Additional()
{
IgnoreCheckResult=true;
return;
}

function Map()
{
IgnoreCheckResult=true;
return;
}

function formCheck(TheForm)
{
  if (IgnoreCheckResult) {return true;}
  var f = TheForm;
  var now=new Date();
  var dateFormat=""; 
  if (now.getHours()<=12) {dateFormat+=now.getHours()} else {dateFormat+=now.getHours()-12};
  dateFormat+=":"; 
  if (now.getMinutes()<10) {dateFormat+="0"};
  dateFormat+=now.getMinutes();  
  if (f.t1) {f.t1.value=f.t1.value.replace(";",":")}
  if (f.t2) {f.t2.value=f.t2.value.replace(";",":")}
  if (f.fs && f.fs.value == "")
  { alert("Please enter a STARTING LOCATION to process your itinerary request.");
    f.fs.focus();
    return false;
  }
  if (f.ts && f.ts.value == "")
  { alert("Please enter a DESTINATION to process your itinerary request.");
    f.ts.focus();
    return false;
  }
  if (f.tm[1].checked && invalidTime(f.t1.value))
  { alert("The STARTING POINT TIME is invalid -- please correct using the format " + dateFormat + ".");
    f.t1.focus();
    return false;
  }
  if (f.tm[4].checked && f.t2 && invalidTime(f.t2.value))
  { alert("The DESTINATION TIME is invalid -- please correct using the format " + dateFormat + ".");
    f.t2.focus();
    return false;
  }
  return true;
}

function formShortCheck(TheForm)
{ 
  var f = TheForm; 
  if (f.fs.value == "")
  { alert("Please enter a STARTING LOCATION to process your itinerary request.");
    f.fs.focus();
    return false;
  }
  if (f.fc.value == "")
  { alert("Please enter a STARTING LOCATION to process your itinerary request.");
    f.fs.focus();
    return false;
  }
  if (f.ts.value == "")
  { alert("Please enter a DESTINATION to process your itinerary request.");
    f.ts.focus();
    return false;
  }
  if (f.tc.value == "")
  { alert("Please enter a DESTINATION to process your itinerary request.");
    f.ts.focus();
    return false;
  }
  return true;
}

function invalidTime(timeStr)
{
  var timePat = /^\s?noon\s?$/i;
  if (timeStr.match(timePat)) {
    return false;
  }
  var timePat = /^(\d{1,2}):(\d{2})\s?([ap]\.?m?\.?)?$/i;	
  var matchArray = timeStr.match(timePat);
  if (matchArray == null) {
    return true;
  }
  hour = matchArray[1];
  minute = matchArray[2];
  ampm = matchArray[3];
  if (ampm=="") { ampm = null }
  if (ampm != null) {
    return true;
  }
  if (hour < 0  || hour > 23) {
    return true;
  }
  if (hour > 12 && ampm != null) {
    return true;
  }
  if (minute < 0 || minute > 59) {
    return true;
  }
  return false;
}

function AnyOptionClick(TheForm)
{var f = TheForm;
	f.rt1.selectedIndex=0;
	f.rt2.selectedIndex=0;
	f.rt3.selectedIndex=0;
	return false;
}

function OptionClick(TheForm, ListNum)
{var f = TheForm;
	f.rs.checked=false;
	if (ListNum!=1) {f.rt1.selectedIndex=0;};
	if (ListNum!=2) {f.rt2.selectedIndex=0;};
	if (ListNum!=3) {f.rt3.selectedIndex=0;};
	return false;
}

function ChooseTime(radioValue)
{var theForm=this.window.document.ItineraryForm;
	for (i=0; i<theForm.elements.length; i++)
		{
			if (theForm.elements[i].name=="tm" && theForm.elements[i].value==radioValue)
			{
				theForm.elements[i].checked=true;
				return;
			}
		}
	return;
}

function CheckTimeControls() {
    var theForm=this.window.document.ItineraryForm;
    var selValue=theForm.tm.options[theForm.tm.selectedIndex].value;
    var now=new Date();
    var currentTime=""; 
    var isAM=now.getHours()<=12;
    if (isAM) {currentTime+=now.getHours()} else {currentTime+=now.getHours()-12};
    currentTime+=":"; 
    if (now.getMinutes()<10) currentTime+="0";
    currentTime+=now.getMinutes();
    if (selValue=='N'){
        if (isAM) {currentTime+=' AM'} else {currentTime+=' PM'};
        document.getElementById('TimeControls').innerHTML="<b>"+currentTime+"</b>";
    }
    else {
        var controls='';
        controls+='<input name="t1" id="t1" type="text" value="'+currentTime+'" size="5" tabindex="1072" onkeypress="return checkTimeEntry(this, event)"/>';
        controls+='<select name="am1" size="1" id="am1" tabindex="1073">';
        controls+='<option value="am"'; if (isAM) {controls+=' selected';} controls+='>am</option>';
        controls+='<option value="pm"'; if (!isAM) {controls+=' selected';} controls+='>pm</option></select>';
        document.getElementById('TimeControls').innerHTML=controls;
    }
    if (selValue=='L' || selValue=='A' || selValue=='N'){
        timeEntryVisible=true;
    	if (document.getElementById) document.getElementById('TimeControls').style.visibility = 'visible';
    }
    else {
        timeEntryVisible=false;
    	if (document.getElementById) document.getElementById('TimeControls').style.visibility = 'hidden';
    }
    return;
}

function formCheck2(TheForm)
{
  if (IgnoreCheckResult) {return true;}  
  var f = TheForm;
  var now=new Date();
  var dateFormat=""; 
  if (now.getHours()<=12) {dateFormat+=now.getHours()} else {dateFormat+=now.getHours()-12};
  dateFormat+=":"; 
  if (now.getMinutes()<10) {dateFormat+="0"};
  dateFormat+=now.getMinutes();   
  
  if (f.t1) {f.t1.value=f.t1.value.replace(";",":")}
  if (f.t2) {f.t2.value=f.t2.value.replace(";",":")}
  
  if (f.fs && f.fs.value == "")
  { alert("Please enter a STARTING LOCATION to process your itinerary request.");
    f.fs.focus();
    return false;
  }
  if (f.ts && f.ts.value == "")
  { alert("Please enter a DESTINATION to process your itinerary request.");
    f.ts.focus();
    return false;
  }
  if (timeEntryVisible && invalidTime(f.t1.value))
//  if (invalidTime(f.t1.value))
  { alert("The TIME is invalid -- please correct using the format " + dateFormat + ".");
    f.t1.focus();
    return false;
  }
  return true;
}

function checkTimeEntry(field, e, dec) {
    // based on http://www.htmlcodetutorial.com/forms/index_famsupp_158.html
    var key;
    var keychar;

    if (window.event) key = window.event.keyCode;
        else 
            if (e) key = e.which;
                else return true;
    keychar = String.fromCharCode(key);

    // control keys
    if ((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27)) return true;
    if ((("0123456789:").indexOf(keychar) > -1)) return true;
    return false;
}