var C8_encountered;
function buildHeaderTrip(EffFrom, EffTo, period) {
	var str2Return = 	  '<div class="effectiveperiod_schedule">	Effective Period <span>';
	if (EffFrom===null)  str2Return = str2Return + '---'
	      else str2Return = str2Return + EffFrom.firstChild.nodeValue;
	str2Return = str2Return + '  >  ';
	if (EffTo===null)  str2Return = str2Return + '--'
	      else str2Return = str2Return + EffTo.firstChild.nodeValue;
	str2Return = str2Return + ' / ';
	if (period===null) str2Return = str2Return  + '--';
	      else str2Return = str2Return + period.firstChild.nodeValue;
	str2Return = str2Return + '</span></div>';
//	str2Return = str2Return + '<div class="effectiveperiod_schedule">';
//	str2Return = str2Return + '	<input type="radio" name="rdUTC_LT" value="lt" id="rd1" checked="checked"/> Local Time (LT) &nbsp;&nbsp;';
//	str2Return = str2Return + '	<input type="radio" name="rdUTC_LT" value="utc" id="rd2"/> Universal Time coordinated (UTC)';
//	str2Return = str2Return + '</div>';
	return(str2Return);
}
function buildHeaderRow(LATtime, LATday) {
	var str2Return = '<tr>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="65px">Flight</td>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="215px">Flight Segment/Milestones</td>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="105px">Flight Type</td>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="100px">Departure Day</td>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="60px">Time</td>';
	str2Return = str2Return + '<td class="legendtable_schedule" width="90px">Arrival Day</td>';
	str2Return = str2Return + '<td class="legendtable_schedule2" width="60px">Time</td>';
	str2Return = str2Return + '</tr>';			
	str2Return = str2Return + '<tr>';
	str2Return = str2Return + '<td colspan="3" align="right" class="lastacceptance_schedule">Latest Acceptance Time (LAT)</td>';
	str2Return = str2Return + '<td class="lastacceptance_schedule">';
	if (LATday===null) str2Return = str2Return + '--';
	  else str2Return = str2Return + DAY_NAMES[LATday.firstChild.nodeValue];
	str2Return = str2Return + '</td><td class="lastacceptance_schedule">';
	if (LATtime===null) str2Return = str2Return + '--:--';
	  else str2Return = str2Return + LATtime.firstChild.nodeValue;
	str2Return = str2Return + '</td>';
	str2Return = str2Return + '<td>&nbsp;</td>';
	str2Return = str2Return + '<td>&nbsp;</td>';
	str2Return = str2Return + '</tr>';
    return (str2Return);                                  
}
function  checkItaliaFlight(aVal) {
  if (aVal.substring(0,2)=='C8') {
	aVal =  aVal + "*";
    C8_encountered = true;
  }
  return (aVal)
}
//var arrWeekDay = new Array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
function buildLegRowLT(aTrip, rowCol) {
	theClass = (rowCol)? 'result1':'result2';
	var str2Return = '<tr class="'+theClass+'">';
	var idStat = aTrip.attributes.getNamedItem("id").nodeValue; //alert('This is LEG Nr '+idStat);
	str2Return = str2Return + '	<td>' + checkItaliaFlight(idStat) + ' </td>';
	dep = aTrip.getElementsByTagName("start")[0];
	arr = aTrip.getElementsByTagName("end")[0];
	str2Return = str2Return + '	<td>'+dep.firstChild.nodeValue+' to '+arr.firstChild.nodeValue+'</td>';
	type = aTrip.getElementsByTagName("type")[0];
	str2Return = str2Return + '	<td>'+type.firstChild.nodeValue+'</td>';
	departDayLT = aTrip.getElementsByTagName("departDayLT")[0];
	str2Return = str2Return + '	<td>'+DAY_NAMES[departDayLT.firstChild.nodeValue]+'</td>';
	departTimeLT = aTrip.getElementsByTagName("departTimeLT")[0];
	str2Return = str2Return + '	<td>'+departTimeLT.firstChild.nodeValue+'</td>';
	arrivalDayLT = aTrip.getElementsByTagName("arrivalDayLT")[0];
	str2Return = str2Return + '	<td>'+DAY_NAMES[arrivalDayLT.firstChild.nodeValue]+'</td>';
	arrivalTimeLT = aTrip.getElementsByTagName("arrivalTimeLT")[0];
	str2Return = str2Return + '	<td>'+arrivalTimeLT.firstChild.nodeValue+'</td>';
	str2Return = str2Return + '</tr>';
    return (str2Return);                                  
}
function buildLegRowUTC(aTrip, rowCol) {
	theClass = (rowCol)? 'result1':'result2';
	var str2Return = '<tr class="'+theClass+'">';
	var idStat = aTrip.attributes.getNamedItem("id").nodeValue; //alert('This is LEG Nr '+idStat);
	str2Return = str2Return + '	<td>' + checkItaliaFlight(idStat) + ' </td>';
	dep = aTrip.getElementsByTagName("start")[0];
	arr = aTrip.getElementsByTagName("end")[0];
	str2Return = str2Return + '	<td>'+dep.firstChild.nodeValue+' to '+arr.firstChild.nodeValue+'</td>';
	type = aTrip.getElementsByTagName("type")[0];
	str2Return = str2Return + '	<td>'+type.firstChild.nodeValue+'</td>';
	departDayUTC = aTrip.getElementsByTagName("departDayUTC")[0];
	str2Return = str2Return + '	<td>'+DAY_NAMES[departDayUTC.firstChild.nodeValue]+'</td>';
	departTimeUTC = aTrip.getElementsByTagName("departTimeUTC")[0];
	str2Return = str2Return + '	<td>'+departTimeUTC.firstChild.nodeValue+'</td>';
	arrivalDayUTC = aTrip.getElementsByTagName("arrivalDayUTC")[0];
	str2Return = str2Return + '	<td>'+DAY_NAMES[arrivalDayUTC.firstChild.nodeValue]+'</td>';
	arrivalTimeUTC = aTrip.getElementsByTagName("arrivalTimeUTC")[0];
	str2Return = str2Return + '	<td>'+arrivalTimeUTC.firstChild.nodeValue+'</td>';
	str2Return = str2Return + '</tr>';
    return (str2Return);                                  
}

function reformatDate (aDate) {
  if (aDate.substr(0,2) != '20')
    return ('--');
  else 
    return (aDate.substr(6,2) + '/' + aDate.substr(4,2) + '/' + aDate.substr(0,4));
}

function chkTimeToLT () {//alert ('chkTimeToLT');
  document.getElementById("schedule_output").innerHTML = strFullTripLT;
}
function chkTimeToUTC () {//alert ('chkTimeToUTC');
  document.getElementById("schedule_output").innerHTML = strFullTripUTC;
}
function show_div(divName, how) {
  obj = document.getElementById(divName);//	  obj.className = 'schedule_results ShowHide-b';
  if (obj) obj.style.visibility = (how=='Y')? "visible":"hidden";
   else alert ('obj '+divName+' NOT found')
}

function addStatus(msg) {
  strStatus = strStatus + msg + '<br>';
  document.getElementById("comments_schedule").innerHTML = strStatus;

}
function readData() {
var request = getXhr();
if (!request) {  alert ('getXhr is null > no tracking'); 
	  return false;
}
if (request) {
	  C8_encountered = false;
	  var strParam = "";
	  strParam = strParam + "DepDate="+document.getElementById('startDateFrom').value; 
	  strParam = strParam + "&DepCity="+document.getElementById('acceptanceAirportCode').value;  							
	  strParam = strParam + "&ArrCity="+document.getElementById('destinationAirportCode').value;  							
	  d = new Date();
	  strParam = strParam + "&tmpcode="+d.getDay()+d.getHours()+d.getMinutes()+d.getSeconds();
	  strParam = encodeURI(strParam);
	  var url = curHost + "soap/soap_call_flights.php";
	  //var url = "http://www.cargolux.com/cv2008/soap/soap_call_flights.php";
//addStatus (url+' <> '+strParam);
	  //request.onreadystatechange = function() { updatePage(request); } //  
//alert (url);	  
	  request.onreadystatechange = function (){	updatePage(request)};
	  request.open('POST', url, true);
	  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  request.setRequestHeader("Content-length", strParam.length);
	  request.setRequestHeader("Connection", "close"); 
	  request.send(strParam); 
	/* REQUEST EN GET :  
	  var url = curHost + "soap/soap_call_flights.php?"+strParam;
	  request.open('GET', url, true);
	  request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  //request.setRequestHeader("Content-length", strParam.length);
	  request.setRequestHeader("Connection", "close"); 
	  request.send(); */ 
  }
}
function updatePage(request) { //if (request.readyState) addStatus('readyState == '+request.readyState)
  if (request.readyState == 4) { //if (request.status) addStatus('status == '+request.status)
    if (request.status == 200) {
	  obj = document.getElementById("animWait");
	  if (obj) obj.innerHTML = "";  //else alert ('obj animWait NOT found')
	  show_div ('divRadUTC_LT', 'Y');
			  //obj = document.getElementById('divRadUTC_LT');obj.className = 'schedule_results ShowHide-b';
	  show_div ('schedule_results', 'Y');
	  show_div ('schedule_output', 'Y');
	  show_div ('comments_schedule', 'Y');
	  var xmlDoc = request.responseXML; //   alert(xmlDoc); 
	  //alert('childNodes.nodeValue='+xmlDoc.documentElement.getElementsByTagName("airportArrivalName")[0].firstChild.nodeValue);
	  //alert('childNodes.nodeValue='+xmlDoc.documentElement.getElementsByTagName("airportDepartureName")[0].firstChild.nodeValue);
	  var strTitleSchedule = '';
	  obj = xmlDoc.documentElement.getElementsByTagName("airportDepartureName")[0];
	  if (obj) {
	    if (obj.hasChildNodes) 
	      strTitleSchedule = strTitleSchedule + obj.firstChild.nodeValue;
	  }
	  obj = xmlDoc.documentElement.getElementsByTagName("airportArrivalName")[0];
	  if (obj){
	    if (obj.hasChildNodes) 
	      strTitleSchedule = strTitleSchedule + ' to '+ obj.firstChild.nodeValue;  
	  }
	  var aDate = reformatDate(xmlDoc.documentElement.getElementsByTagName("departureDate")[0].firstChild.nodeValue);
	  strTitleSchedule = strTitleSchedule + '<br><span class="date_schedule">from '+ aDate;
	  aDate = reformatDate(xmlDoc.documentElement.getElementsByTagName("arrivalDate")[0].firstChild.nodeValue);
	  strTitleSchedule = strTitleSchedule + ' to '+aDate+'</span>';
	  document.getElementById('title_resultschedule').innerHTML = strTitleSchedule;

	  var nrRow = true;
	  var nbRow = 0;
	  strFullTripUTC = '';
	  strFullTripLT = '';
	  for(var i=0; i<=xmlDoc.documentElement.childNodes.length; i++) {
		var xmlBindings = xmlDoc.documentElement.childNodes[i]; 
		if (xmlBindings!=null) { //alert("Tag:"+ xmlBindings.tagName + " > "+ xmlBindings.hasChildNodes+' > '+xmlBindings.childNodes.length);
		  if (xmlBindings.tagName == 'addText') {  
			strCommentsSchedule = xmlBindings.firstChild.nodeValue;
			document.getElementById('comments_schedule').innerHTML = xmlBindings.firstChild.nodeValue;
			if (C8_encountered==true)
			  document.getElementById('comments_schedule').innerHTML = document.getElementById('comments_schedule').innerHTML + '<br>* Cargolux Italia flight sold by Cargolux as GSA.';		  }
		  else if (xmlBindings.tagName=='EffectivePeriod') {  // here we have a full trip
			nbRow = nbRow + 1;
			var idStat = xmlBindings.attributes.getNamedItem("id").nodeValue; //alert('This is full trip Nr '+idStat);
			EffectivePeriodDay = xmlBindings.getElementsByTagName("EffectivePeriodDayUTC")[0]; //if (IsNull(EffectivePeriodDayUTC)) alert('this is null');
			EffectivePeriodStart = xmlBindings.getElementsByTagName("EffectivePeriodStartUTC")[0];
			EffectivePeriodEnd = xmlBindings.getElementsByTagName("EffectivePeriodEndUTC")[0];
			strFullTripUTC = strFullTripUTC + buildHeaderTrip(EffectivePeriodStart, EffectivePeriodEnd, EffectivePeriodDay);

			EffectivePeriodDay = xmlBindings.getElementsByTagName("EffectivePeriodDayLT")[0]; //if (IsNull(EffectivePeriodDayUTC)) alert('this is null');
			EffectivePeriodStart = xmlBindings.getElementsByTagName("EffectivePeriodStartLT")[0];
			EffectivePeriodEnd = xmlBindings.getElementsByTagName("EffectivePeriodEndLT")[0];
			strFullTripLT = strFullTripLT + buildHeaderTrip(EffectivePeriodStart, EffectivePeriodEnd, EffectivePeriodDay);

		    strFullTripUTC = strFullTripUTC + '<div id="table_results" class="table_results">';
		    strFullTripLT = strFullTripLT   + '<div id="table_results" class="table_results">';			
			strFullTripUTC = strFullTripUTC + '<table cellpadding="0" cellspacing="0" width="695px">';	
			strFullTripLT = strFullTripLT   + '<table cellpadding="0" cellspacing="0" width="695px">';	
			var LATtime = xmlBindings.getElementsByTagName("LATtimeUTC")[0];			
			var LATday = xmlBindings.getElementsByTagName("LATdayUTC")[0];			
			strFullTripUTC = strFullTripUTC + buildHeaderRow (LATtime, LATday);
			
			LATtime = xmlBindings.getElementsByTagName("LATtimeLT")[0];			
			LATday = xmlBindings.getElementsByTagName("LATdayLT")[0];			
			strFullTripLT = strFullTripLT + buildHeaderRow (LATtime, LATday);
			
			for (var j=0; j<xmlBindings.childNodes.length; j++) {
			  var xmlBindings2 = xmlBindings.childNodes[j];
			    //alert("Checking Child Nodes for " + xmlBindings2.tagName + " > "+ xmlBindings2.hasChildNodes+' > '+xmlBindings2.childNodes.length);
			  if (xmlBindings2.tagName=='trip') {  // here we have a leg
			    strFullTripUTC = strFullTripUTC + buildLegRowUTC(xmlBindings2, nrRow);
			    strFullTripLT = strFullTripLT + buildLegRowLT(xmlBindings2, nrRow);
				nrRow = (!nrRow);
			  } //if (xmlBindings2.tagName=='trip')
			}// for
			strFullTripUTC = strFullTripUTC + '</table></div>';
			strFullTripLT = strFullTripLT + '</table></div>';
		  }// else if
		}//if (xmlBindings!=null
	  }//for(var i=0; i<=xmlDoc.documentElement.childNodes.length; i++) {
	  
	  if (nbRow==0){
	    strFullTripUTC = '<br>The system has not found a schedule to match your input. Please contact your local Cargolux office for alternatives.';
	    strFullTripLT = strFullTripUTC;
		document.getElementById('comments_schedule').innerHTML = '';
	  }
	  if (document.getElementById('rd1').checked) chkTimeToLT(); //document.all.schedule_output.innerHTML = strFullTripLT;
	                else chkTimeToUTC();

    }
  }
}

