function GetXmlHttpObject() {
var xmlHttp=null;
try {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 } catch (e) {
 //Internet Explorer
 try  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

/*#
	--> Get the train and trip details
#*/

function get_details(str)
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }
 
rst_dtls() //-> Clear other form elements

var day = document.trp_plnr.text_date.value;
var station = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var dept_time = document.trp_plnr.dprt_time.options[document.trp_plnr.dprt_time.selectedIndex].value;
var sched_type = document.trp_plnr.sched_type.value;


	if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
		newLondon = '0';
	} else {
		
		for (var i=0; i < 2; i++) {
			if (document.forms['trp_plnr'].elements['m_ride'][i].checked) {
				var newLondon = document.forms['trp_plnr'].elements['m_ride'][i].value;
			}
		}	
	}

var url="../ajax/plnnr_get_details.ax.php"
url=url+"?s="+str;
url=url+"&d="+station;
url=url+"&t="+dept_time;
url=url+"&type="+sched_type;
url=url+"&nl="+newLondon;
url=url+"&day="+day;
xmlHttp.onreadystatechange=stateChanged_dtls
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';

}

function stateChanged_dtls() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		
		
			//-> Let's see what info has been returned

			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.trp_dtls) {
				var details = respObj.trp_dtls;
			}
			
			document.getElementById("trip_details").innerHTML=details;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';
			
	} 
}

/*#
	--> Change the arrival time based on the arrival station
#*/

function arrv_time(str)

{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }

rst_dtls()

var day = document.trp_plnr.text_date.value;
var station   = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var sched_type = document.trp_plnr.sched_type.value;

	if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
		newLondon = '0';
	} else {
		
		for (var i=0; i < 2; i++) {
			if (document.forms['trp_plnr'].elements['m_ride'][i].checked) {
				var newLondon = document.forms['trp_plnr'].elements['m_ride'][i].value;
			}
		}	
	}


//-> mn_arr_tm is only needed for MN connections -> if there is no connection pass a place holder
if (typeof(document.forms['trp_plnr'].elements['mn_arr_time']) == 'undefined') {
	var mn_arr_tm = '0-0-0';
} else {
	var mn_arr_tm = document.trp_plnr.mn_arr_time.options[document.trp_plnr.mn_arr_time.selectedIndex].value;
}

	var plan_by = document.forms['trp_plnr'].elements['plan_by'].value;

var url="../ajax/plnnr_get_arrval_time.ax.php"
url=url+"?s="+str;
url=url+"&pb="+plan_by;
url=url+"&d="+station;
url=url+"&a="+mn_arr_tm;
url=url+"&day="+day;		//-> This time is only needed when there is a connection from MN to SLE
							//-> The SLE connection departure times can't be earlier than the MN arrival times
url=url+"&type="+sched_type;
url=url+"&nl="+newLondon;
xmlHttp.onreadystatechange=stateChanged_arr
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';

}

function stateChanged_arr() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		
		
			//-> Let's see what info has been returned

			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.arr_stops) {
				var arr_times = respObj.arr_stops;
			}
			
			document.getElementById("arr_time").innerHTML=arr_times;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';
	} 
}

/*#
	--> Find the SLE arrival information when SLE train is after MN
#*/

function sle_con_lst(str)
{
	
document.getElementById("submit_plan").innerHTML='';

xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }

var day = document.trp_plnr.text_date.value;
var sched_type = document.trp_plnr.sched_type.value;
var arrv_station = document.trp_plnr.arrv_station.options[document.trp_plnr.arrv_station.selectedIndex].value;
var dep_station = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var plan_by = document.forms['trp_plnr'].elements['plan_by'].value;

var url="../ajax/plnnr_get_arrval_time_sle.ax.php"
url=url+"?s="+str;
url=url+"&ar_stat="+arrv_station;
url=url+"&dep_stat="+dep_station;
url=url+"&pb="+plan_by;
url=url+"&day="+day;

url=url+"&type="+sched_type;
xmlHttp.onreadystatechange=stateChanged_sle
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';

}

function stateChanged_sle() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		
		
			//-> Let's see what info has been returned
			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.sle_arr_stops) {
				var sle_arr_times = respObj.sle_arr_stops;
			}
			
			document.getElementById("sle_arr_time").innerHTML=sle_arr_times;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';

	} 
}

/*#
	--> Find the MN connections for SLE or vice versa
#*/

function metro(str)
{ 

document.getElementById("submit_plan").innerHTML='';


xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }

var day = document.trp_plnr.text_date.value;
var station = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var sched_type = document.trp_plnr.sched_type.value;

	if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
		newLondon = '0';
	} else {
		
		for (var i=0; i < 2; i++) {
			if (document.forms['trp_plnr'].elements['m_ride'][i].checked) {
				var newLondon = document.forms['trp_plnr'].elements['m_ride'][i].value;
			}
		}	
	}


var plan_by = document.forms['trp_plnr'].elements['plan_by'].value;

var url="../ajax/plnnr_get_arrval_time_mn.ax.php"
url=url+"?s="+str;
url=url+"&pb="+plan_by;
url=url+"&d="+station;
url=url+"&type="+sched_type;
url=url+"&nl="+newLondon;
url=url+"&day="+day;
xmlHttp.onreadystatechange=stateChanged_metro
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';

}

function stateChanged_metro() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		
		
			//-> Let's see what info has been returned

			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.mn_arr_stops) {
				var mn_arr_times = respObj.mn_arr_stops;
			}
			
			document.getElementById("mn_arr_time").innerHTML=mn_arr_times;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';
			
	}

}

/*#
	--> Metro North when arrival time is selected
#*/


function metro_arrival(str)
{ 

document.getElementById("submit_plan").innerHTML='';


xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 }

var day = document.trp_plnr.text_date.value;
var station = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var sched_type = document.trp_plnr.sched_type.value;

	if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
		newLondon = '0';
	} else {
		
		for (var i=0; i < 2; i++) {
			if (document.forms['trp_plnr'].elements['m_ride'][i].checked) {
				var newLondon = document.forms['trp_plnr'].elements['m_ride'][i].value;
			}
		}	
	}


var plan_by = document.forms['trp_plnr'].elements['plan_by'].value;

var url="../ajax/plnnr_get_arrval_time_mn.ax.php"
url=url+"?s="+str;
url=url+"&pb="+plan_by;
url=url+"&d="+station;
url=url+"&type="+sched_type;
url=url+"&nl="+newLondon;
url=url+"&day="+day;
xmlHttp.onreadystatechange=stateChanged_metro_arrival
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';

}

function stateChanged_metro_arrival() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		
		
			//-> Let's see what info has been returned

			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.mn_arr_stops) {
				var mn_arr_times = respObj.mn_arr_stops;
			}
			
			document.getElementById("mn_arr_time_arrival").innerHTML=mn_arr_times;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';
			
	}

}

/*#
	--> Change the arrival station <select> menu based on the departure station
#*/

function dprt_details(str) {
var dep_stat = document.trp_plnr.dprt_stn.options[document.trp_plnr.dprt_stn.selectedIndex].value;
var arr_stat = document.trp_plnr.arrv_station.options[document.trp_plnr.arrv_station.selectedIndex].value;	
		
	if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
		newLondon = '0';
	} else {
		
		for (var i=0; i < 2; i++) {
			if (document.forms['trp_plnr'].elements['m_ride'][i].checked) {
				var newLondon = document.forms['trp_plnr'].elements['m_ride'][i].value;
			}
		}	
	}
	
			
	if (dep_stat == arr_stat) {
		
		document.getElementById("dprt_time").innerHTML='<p class="plnnr_instruct" id="step_error">Please select different arrival and departure stations</p>';
		
	} else if (dep_stat >= 9 && arr_stat >= 9) {
		
		document.getElementById("arr_time").innerHTML='';
		
		document.getElementById("dprt_time").innerHTML='<p class="plnnr_instruct" id="not_required">A trip from '+station_arr[dep_stat]+' to '+station_arr[arr_stat]+' does not require Shore Line East. Please use <b><a href="http://as0.mta.info/mnr/schedules/sched_form.cfm">Metro North Railroad</a></b> to plan your trip.</p>';

	} else {	

		xmlHttp=GetXmlHttpObject()
		if (xmlHttp==null) {
		 alert ("Browser does not support HTTP Request")
		 return
		}
			//-> Reset arrival times on change of form
			document.getElementById("arr_time").innerHTML='';
		
		rst_dtls()
	
		var day = document.trp_plnr.text_date.value;
		var plan_by = document.forms['trp_plnr'].elements['plan_by'].value;

		var uri="../ajax/plnnr_get_time.ax.php"
		var sched_type = document.trp_plnr.sched_type.value;
		
		uri=uri+"?pb="+plan_by;
		uri=uri+"&s="+str;
		uri=uri+"&d="+dep_stat;
		uri=uri+"&type="+sched_type;
		uri=uri+"&nl="+newLondon;
		uri=uri+"&day="+day;
		xmlHttp.onreadystatechange=stateChanged 
		xmlHttp.open("GET",uri,true)
		xmlHttp.send(null)
		
		//-> Start state image here
document.getElementById("im_thinking").innerHTML='<img src="../images/ajax-loader.gif" alt="">';
		
		}
		
		function stateChanged() 
		{ 
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {	//-> We've got a good response

			//-> Let's see what info has been returned

			respObj = eval('('+xmlHttp.responseText+')');

			if (respObj.output) {
				var send_times = respObj.output;
			}

			document.getElementById("dprt_time").innerHTML=send_times;
			
			//-> Change state image back here
			document.getElementById("im_thinking").innerHTML='<input name="new_date" type="button" onClick="window.location=\'../index.php\'"value="Select a New Date" id="new_date">';

		 }

		//document.getElementById("submit_plan").innerHTML='<input name="submit" type="submit" value="Submit">';
	}



		//-> The parent function list_arrival() is called when choosing stations and when changing multi-ride ticket status
		//-> Only create radio buttons if they haven't been created yet
		//if (arrv_station.options[arrv_station.selectedIndex].value < 1) {
		if (document.getElementById('arrv_station').selectedIndex == 1) {
			//-> Look for New London and ask about multi-ride tickets if necessary
			if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
				
				document.getElementById("multi_ride_mn").style.display="block";
				document.getElementById("multi_ride_mn").innerHTML='<p>Are you a Shore Line East multi-ride pass holder?</p>'+
																   ' <input name="m_ride" onClick="dprt_details('+arr_stat+')" id="m_ride" '+
																   'type="radio" value="0" checked="yes">No'+
																   ' <input name="m_ride" onClick="dprt_details('+arr_stat+')" id="m_ride" '+
																   'type="radio" value="1" >Yes'+
																   ' - <a href="javascript:;" onclick="NewWindow(\'new_london_explain.php\',\'new_london\',\'500\',\'300\',\'yes\');return false">What\'s this?</a>';
				//onClick="list_arrival()"
			//-> It's not New London -> Remove the radio buttons if they're there
			}

		} else {
		
			//if (document.getElementById('arrv_station').selectedIndex != 1) {
				document.getElementById("multi_ride_mn").innerHTML='';
				document.getElementById("multi_ride_mn").style.display="none";
				//var objDiv = document.getElementById("multi_ride_mn");
			//}			
		
		}



}

/*#
	--> Change the arrival <select> menu based on the departure station
#*/

function list_arrival() {

	//-> Visitor is changing form info - reset all elements
	document.getElementById("dprt_time").innerHTML='';
	document.getElementById("arr_time").innerHTML='';
	document.getElementById("trip_details").innerHTML='';
	document.trp_plnr.arrv_station.innerHTML='';
	document.getElementById("multi_ride_mn").innerHTML='';


station_arr = new Array();

		  station_arr[1] = 'New London';
		  station_arr[2] = 'Old Saybrook';
		  station_arr[3] = 'Westbrook';
		  station_arr[4] = 'Clinton';
		  station_arr[5] = 'Madison';
		  station_arr[6] = 'Guilford';
		  station_arr[7] = 'Branford';
		  station_arr[8] = 'New Haven State Street';
		  station_arr[9] = 'New Haven Union Station';
		 station_arr[10] = 'Milford';		
		 station_arr[11] = 'Stratford';			
		 station_arr[12] = 'Bridgeport';			
		 station_arr[13] = 'South Norwalk';			
		 station_arr[14] = 'Stamford';			
		 station_arr[15] = 'Greenwich';			
		 station_arr[16] = 'Grand Central Terminal';

var dprt_station = document.getElementById("dprt_stn");

	//-> Always add a blank option first
	document.forms['trp_plnr'].arrv_station.options[0] = new Option('-','');
	
	//-> MN departure, show SLE destination stations only
	if (dprt_station.options[dprt_station.selectedIndex].value  > 9) {		
			
		for (i=1;i<10;i++) {
			document.forms['trp_plnr'].arrv_station.options[i] = new Option(station_arr[i],i);
		}
		
	//-> SLE departure, show SLE & MN destination stations		
	} else if (dprt_station.options[dprt_station.selectedIndex].value < 10) {	
	
		for (i=1;i<17;i++) {
				
			//-> Don't include departure station
			if (i != dprt_station.options[dprt_station.selectedIndex].value) {
				document.forms['trp_plnr'].arrv_station.options[i] = new Option(station_arr[i],i);
			} else {
				document.forms['trp_plnr'].arrv_station.options[i] = new Option(station_arr[i],i);
				document.forms['trp_plnr'].arrv_station.options[i].style.color = '#bbbbbb';
				document.forms['trp_plnr'].arrv_station.options[i].style.fontStyle = 'italic';
			}
				
		}
	
	}
	
		//-> The parent function list_arrival() is called when choosing stations and when changing multi-ride ticket status
		//-> Only create radio buttons if they haven't been created yet
		if (dprt_station.options[dprt_station.selectedIndex].value == 1) {
			//-> Look for New London and ask about multi-ride tickets if necessary
			if (typeof(document.forms['trp_plnr'].elements['m_ride']) == 'undefined') {
				
				document.getElementById("multi_ride_sle").style.display="block";
				document.getElementById("multi_ride_sle").innerHTML='<p>Are you a Shore Line East multi-ride pass holder?</p>'+
																' <input name="m_ride" onClick="list_arrival()" id="m_ride" '+
																'type="radio" value="0" checked="yes">No'+
																' <input name="m_ride" onClick="list_arrival()" id="m_ride" '+
																'type="radio" value="1" >Yes'+
																' - <a href="javascript:;" onclick="NewWindow(\'new_london_explain.php\',\'new_london\',\'500\',\'300\',\'yes\');return false">What\'s this?</a>';
				//onClick="list_arrival()"
			//-> It's not New London -> Remove the radio buttons if they're there
			}

		} else {
		
			if (dprt_station.options[dprt_station.selectedIndex].value != 1) {
				document.getElementById("multi_ride_sle").innerHTML='';
				document.getElementById("multi_ride_sle").style.display="none";
				//var objDiv = document.getElementById("multi_ride_sle");
			}			
		
		}


}

//-> Reset form details on change
function rst_dtls() {
	document.getElementById("trip_details").innerHTML='';
	document.getElementById("submit_plan").innerHTML='';
}


/* Show the submit button -> The submit button is only need for trips with a connection */
function show_submit (clr) {
	
	if (clr != '-') {
	document.getElementById("submit_plan").innerHTML='<input name="submit" type="submit" value="Plan Trip" id="connctn_submit_but">';
	} else {
	document.getElementById("submit_plan").innerHTML='<p class="plnnr_instruct" id="step_error" style="padding: 2px 5px 2px 20px;">Please select a time</p>';
	}
	
	
}