<?php
// itinerary.php
// RJM Programming
// December, 2016

$start_end_offsets = array(0.0, 0.0);
$emailto = "";
$interactive = true;
$posttz = ",";
$isokay = true;
$kcnt='zpx';
$tabitis="Name(s): \n\nAirport From: \n\nFlight: \n\nFrom: \n Terminal: \n Takeoff Time: as per time to the left\n Timezone From: as per timezone to the left\n Time to Arrive at Terminal: \n Comments: \nTransit Information: \n\nAirport To: \n\nTo: \n Terminal: \n Landing Time: as per time to the right\n Timezone To: as per timezone to the right\n Estimated Baggage Pickup Time at Terminal: ";
$itinis="Itinerary";
$itins="Itinerary";
$itinthis="<a title='Another " . $itinis . "' href='./itinerary.php'>Another " . $itinis . "?</a> "; 
$itinother="<a title='Another Timeline with Dates and Times and Calendar Events' href='./itinerary.php?justaddtime=y'>Another Timeline with Dates and Times and Calendar Events?</a> "; 
$legs="Legs of Itinerary";


function get_timezone_offset($remote_tz, $origin_tz = "Europe/London") {  // thanks to http://php.net/manual/en/function.timezone-offset-get.php
    $origin_dtz = new DateTimeZone($origin_tz);
    $remote_dtz = new DateTimeZone($remote_tz);
    $origin_dt = new DateTime("now", $origin_dtz);
    $remote_dt = new DateTime("now", $remote_dtz);
    $offset = $origin_dtz->getOffset($origin_dt) - $remote_dtz->getOffset($remote_dt);
    if (isset($_GET['region_city']) && isset($_GET['topdiv']) && isset($_GET['newinput'])) {
      echo "<!doctype html><html<head><scr" . "ipt type='text/javascript'> if (top.document.getElementById('" . urldecode($_GET['topdiv']) . "')) {  if (top.document.getElementById('" . urldecode($_GET['newinput']) . "')) {  top.document.getElementById('" . urldecode($_GET['newinput']) . "').value='" . $offset . "';  } else { top.document.getElementById('" . urldecode($_GET['topdiv']) . "').innerHTML+='<input type=hidden id=" . urldecode($_GET['newinput']) . " value=" . $offset . "></input>';  } } </scr" . "ipt></head><body></body></html>";
      exit;
    }
    return $offset;
}

if (isset($_GET['region_city'])) {
    $ofs=get_timezone_offset(str_replace("%20","_",str_replace("%20","_",str_replace("%2C",",",str_replace("%2c",",",str_replace("%2F","/",str_replace("%2f","/",$_GET['region_city'])))))), "Europe/London");
    if (!isset($_GET['topdiv']) || !isset($_GET['newinput'])) {
      echo $ofs;
    }
    exit;
}



function ourtimezonelist($ididea) { // thanks to http://php.net/manual/en/function.timezone-identifiers-list.php
  global $kcnt;
  $idi=1;
  if (strpos($ididea, "end") !== false) {
   $idi=2;
  } //else {
  // $kcnt++;
  //}
  $selstuff='<select id=s' . $ididea . $kcnt . ' onchange=changetz(' . $idi . ',this.value,this);><option title=' . "''" . ' value=' . "''" . ' selected>Local</option><option title= value=0>GMT</option></select>';
  for ($xoff=-24.0; $xoff<=24.0; $xoff+=0.5) {
    $selstuff=str_replace("</select>", "<option title='' value='" . str_replace("+-","-",("+" . (0.0 - $xoff))) . "'>" . str_replace("+-","-",("+" . $xoff . " hours")) . "</option></select>", $selstuff);
  }
  $zones = timezone_identifiers_list();
  foreach ($zones as $zone) {
    $origzone=$zone;
    //$ourtz=new DateTimeZone($zone);
    $zone = explode('/', $zone); // 0 => Continent, 1 => City
    // Only use "friendly" continent names
    if ($zone[0] == 'Africa' || $zone[0] == 'America' || $zone[0] == 'Antarctica' || $zone[0] == 'Arctic' || $zone[0] == 'Asia' || $zone[0] == 'Atlantic' || $zone[0] == 'Australia' || $zone[0] == 'Europe' || $zone[0] == 'Indian' || $zone[0] == 'Pacific') {       
        if (isset($zone[1]) != '') {
            //$locations[$zone[0]][$zone[0]. '/' . $zone[1]] = str_replace('_', ' ', $zone[1]); // Creates array(DateTimeZone => 'Friendly name')
            //$ourtz=new DateTimeZone(str_replace('_', ' ', $zone[0]. '/' . $zone[1]));
            //$selstuff=str_replace("</select>", "<option title='" . $ourtz->getLocation()[latitude] . "," . $ourtz->getLocation()[longitude] . ",~" . urlencode(str_replace('_', ' ', $zone[1])) . "~' value='" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "'>" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "</option></select>", $selstuff);
            //$selstuff=str_replace("</select>", "<option title='" . $origzone . "' value='" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "'>" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "</option></select>", $selstuff);
            $selstuff=str_replace("</select>", "<option title='" . $origzone . "' value='" . $zone[0]. '/' . $zone[1] . "'>" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "</option></select>", $selstuff);
            //$selstuff=str_replace("</select>", "<option value='" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "'>" . str_replace('_', ' ', $zone[0]. '/' . $zone[1]) . "</option></select>", $selstuff);
        }
    }
  }
  return $selstuff;
}


function dateselcombo($parid, $defstr) {
  global $kcnt;
  $tati=str_replace("datestart","Takeoff Time: ", str_replace("dateend","Landing Time: ", $parid));
  $mths=["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
  $yyyystr="<input title='" . $tati . "'  style=display:none;width:50px; onchange=fixthis(this," . $parid . ",0,4,this.value); type=number step=1 id=yyyy" . $parid . $kcnt  . " value=" . substr($defstr,0,4) . "></input>";
  $mmstr="<select title='" . $tati . "'  style=display:none; onchange=fixthis(this," . $parid . ",4,6,this.value); id='mm" . $parid . $kcnt  . "'><option value='" . substr($defstr,4,2) . "'>" . substr($defstr,4,2) . "</option>";
  $prefix="0";
  for ($i=1; $i<=9; $i++) $mmstr.="<option value='" . $prefix . $i . "'>" . $mths[$i] . "</option>";
  $prefix="";
  for ($i=10; $i<=12; $i++) $mmstr.="<option value='" . $prefix . $i . "'>" . $mths[$i] . "</option>";
  $mmstr.="</select>";
  $ddstr="<select title='" . $tati . "'  style=display:none; onchange=fixthis(this," . $parid . "',6,8,this.value); id='dd" . $parid . $kcnt  . "'><option value='" . substr($defstr,6,2) . "'>" . substr($defstr,6,2) . "</option>";
  $prefix="0";
  for ($i=1; $i<=9; $i++) $ddstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $prefix="";
  for ($i=10; $i<=31; $i++) $ddstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $ddstr.="</select>";
  $hhstr="<select title='" . $tati . "' onchange=fixthis(this," . $parid . ",9,11,this.value); id='hh" . $parid . $kcnt . "'><option value='" . substr($defstr,9,2) . "'>" . substr($defstr,9,2) . "</option>";
  $prefix="0";
  for ($i=0; $i<=9; $i++) $hhstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $prefix="";
  for ($i=10; $i<=23; $i++) $hhstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $hhstr.="</select>";
  $mistr="<select title='" . $tati . "' onchange=fixthis(this," . $parid . ",11,13,this.value); id='mi" . $parid . $kcnt . "'><option value='" . substr($defstr,11,2) . "'>" . substr($defstr,11,2) . "</option>";
  $prefix="0";
  for ($i=0; $i<=9; $i++) $mistr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $prefix="";
  for ($i=10; $i<=59; $i++) $mistr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $mistr.="</select>";
  $ssstr="<select title='" . $tati . "' onchange=fixthis(this," . $parid . ",13,15,this.value); id='ss" . $parid . $kcnt . "'><option value='" . substr($defstr,13,2) . "'>" . substr($defstr,13,2) . "</option>";
  $prefix="0";
  for ($i=0; $i<=9; $i++) $ssstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $prefix="";
  for ($i=10; $i<=59; $i++) $ssstr.="<option value='" . $prefix . $i . "'>" . $prefix . $i . "</option>";
  $ssstr.="</select>";
  //if ($parid == "dateend") $kcnt++;
  return $yyyystr . $mmstr . $ddstr . "" . $hhstr . $mistr . $ssstr;
}

function retval($inv) {
    if (strpos($inv, "E-") !== false) return "0";
    return $inv;
  }
?>

<html>
  <head> 
   <script type="text/javascript" src="http://www.rjmprogramming.com.au/gchartgen.js"></script>
    <title>Itinerary - RJM Programming - http://www.rjmprogramming.com.au (Copyright &copy; 2013 rjmprogramming.com.au all rights reserved.)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/yahoo/yahoo.js"></script> 
 <script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/event/event.js" ></script> 
 <script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/dom/dom.js" ></script> 
 <script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/calendar/calendar.js"></script> 
<link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.9.0/build/calendar/assets/skins/sam/calendar.css"> 
    <script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['timeline']}]}"></script>
    <script type="text/javascript">
    var thisurl=document.URL.split('?')[0].split('#')[0];
    var num = 0;
    var emailto = "";
    var colonetc = ":000000";
    var colonetcend = ":010000";
    var sgreen = "5px solid red";
    var etwo = "";
    var calwl = "";
    var calcmds=[];
    var thiscalcmd=-1;
    var retval = "";
    var ttitle = "";
    var ttask = "";
    var ta="";
var mapurl="http://www.rjmprogramming.com.au/PHP/Map/map.php?title=Places&onclick=y&label=['Lat',&value='Lon','Name']&data=,[0.0000,0.0000,~Timbuktu~]";
var maphuh='0.0000,0.0000,~Timbuktu~';

var prev_Takeoff_Time=[]; //="as per time to the left";
var prev_Timezone_From=[]; //="as per timezone to the left";
var prev_Landing_Time=[]; //="as per time to the right";
var prev_Timezone_To=[]; //="as per timezone to the right";


	    YAHOO.namespace("example.calendar"); 	 
	    //YAHOO.example.calendar.init = function() { 
	    // YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1","cal1SContainer"); 
	    // YAHOO.example.calendar.cal1.render(); 
	    //} 	 
	    //YAHOO.util.Event.onDOMReady(YAHOO.example.calendar.init); 	    

<?php 
      if (isset($_GET['justaddtime'])) {
      $itinother="<a title='Another Itinerary' href='./itinerary.php'>Another Itinerary?</a> "; 
      $itinthis="<a title='Another Timeline with Dates and Times and Calendar Events' href='./itinerary.php?justaddtime=y'>Another Timeline with Dates and Times and Calendar Events?</a> "; 
      $tabitis = "";
      $itinis = "Timeline with Dates and Times and Calendar Events";
      $itins="";
      $legs="Sections of Timeline";
      $GETtitle = "My Timeline with Dates and Times and Calendar Events";
      $GETtask = ""; //"Task";
      $GETdesc = "Timeline with Dates and Times and Calendar Events";
      $GETdata = '[ "Mr and Mrs Smith", new Date(2016, 0, 29, 0, 0, 0), new Date(2016, 0, 31, 0, 0, 0) ],[ "Ms Adams",      new Date(2016, 1, 3),  new Date(2016, 1, 12, 0, 0, 0) ],[ "Mr Jefferson",  new Date(2016, 1, 13, 0, 0, 0),  new Date(2016, 1, 27, 0, 0, 0) ]';
      } else {
      $GETtitle = "My Trip";
      $GETtask = ""; //"Task";
      $GETdesc = "Itinerary";
      $GETdata = '[ "Mr and Mrs Smith\nFlight: QF1\nFrom: Sydney (SYD), AUS\nTo: London (LHR), GBR", new Date(2016, 0, 29, 0, 0, 0), new Date(2016, 0, 31, 0, 0, 0) ],[ "Ms Adams\nFlight: QF11\nFrom: Sydney (SYD), AUS\nTo: Los Angeles (LAX), USA",      new Date(2016, 1, 3, 0, 0, 0),  new Date(2016, 1, 12, 0, 0, 0) ],[ "Mr Jefferson\nFlight: QF9\nFrom: Sydney (SYD), AUS\nTo: London (LHR), GBR",  new Date(2016, 1, 13, 0, 0, 0),  new Date(2016, 1, 27, 0, 0, 0) ]';
      }
      if (isset($_GET['data'])) {
       //$GETtitle = str_replace("~~", "##", $_GET['title']);
       $GETtitle = str_replace("~~", "'", str_replace('~', '"', str_replace("`", "'", $_GET['title'])));
       //$GETtitle = str_replace("##", "'", $GETtitle);
       $GETtask = $_GET['task'];
       //$GETdesc = str_replace("~~", "##", $_GET['desc']);
       $GETdesc = str_replace("~~", "'", str_replace('~', '"', str_replace("`", "'", $_GET['desc'])));
       //$GETdesc = str_replace("##", "'", $GETdesc);
       $GETdata = $_GET['data'];
      }
      
      //echo ' google.load("visualization", "1", {packages:["corechart"]}); ' . "\n";
      echo ' google.setOnLoadCallback(drawChart); ' . "\n";
      echo ' function drawChart() { ' . "\n";
      echo " var container = document.getElementById('chart_div'); \n";

      echo " var chart = new google.visualization.Timeline(container); \n";

      echo ' var dataTable = new google.visualization.DataTable(); ' . "\n";
      echo " dataTable.addColumn({ type: 'string', id: '" . $GETdesc . "' }); \n";
      echo " dataTable.addColumn({ type: 'date', id: 'Start' }); \n";
      echo " dataTable.addColumn({ type: 'date', id: 'End' }); \n";

      echo ' dataTable.addRows([' . "\n";
      echo str_replace("~~", "'", str_replace("newDate", "new Date", str_replace("%2c", ",", str_replace("%27", "'", str_replace("%20", " ", str_replace("%28", "(", str_replace("%29", ")", str_replace("%5b", "[", str_replace("`", "'",str_replace("%5d", "]",str_replace('~,', '",', str_replace('[~', '["', str_replace(",]", ",0]", str_replace(",]", ",0]", str_replace(",]", ",0]", $GETdata)))))))))))))));
      echo "]);\n";

      //echo " var chart = new google.visualization.Timeline(document.getElementById('chart_div')); \n";
      echo " chart.draw(dataTable); \n } \n";
      
      $ic = 1;
      
      for ($ic=1; $ic<100; $ic++) {
 echo ' function nocr(ins) { var outins=ins; while (outins.indexOf(String.fromCharCode(10)) != -1) { outins=outins.replace(String.fromCharCode(10)," ");  } return outins;  }' . "\n";
 echo ' function cals' . $ic . '(inhuh,mode) { halfway=""; ' . "\n";
 echo ' if (inhuh > ' . $ic . ') { return cals' . ($ic + 1) . '(inhuh,mode); } else if (inhuh < ' . $ic . ') { return cals' . ($ic - 1) . '(inhuh,mode); } else { ' . "\n";
 echo ' if (mode == 0) {YAHOO.example.calendar.cals' . $ic . ' = new YAHOO.widget.Calendar("cals' . $ic . '","cal' . $ic . 'SContainer");  ' . "\n";
 echo ' YAHOO.example.calendar.cals' . $ic . '.render();  ' . "\n";
 echo ' YAHOO.example.calendar.cale' . $ic . ' = new YAHOO.widget.Calendar("cale' . $ic . '","cal' . $ic . 'EContainer");  ' . "\n";
 echo ' YAHOO.example.calendar.cale' . $ic . '.render(); ' . "\n"; 
 echo ' } else { ' . "\n"; 
 echo ' retval = "";  ' . "\n"; 
 echo ' var calzero = document.getElementById("calzero' . $ic . 'store").value; ' . "\n"; 
 echo ' var iput = document.getElementById("i' . $ic . 'put"); ' . "\n"; 
 echo " retval = retval + '[" . '"' . "' + iput.value + '" . '"' . ",'; " . "\n"; 
 echo ' var ourbstage = nocr(iput.value); ' . "\n"; 
 echo ' var pDates = YAHOO.example.calendar.cals' . $ic . '.getSelectedDates()[0]; ' . "\n"; 
 echo ' var pDatee = YAHOO.example.calendar.cale' . $ic . '.getSelectedDates()[0]; ' . "\n"; 
 echo ' if (pDates) { ' . "\n"; 
 echo ' halfway="newDate(" + eval(1900 + pDates.getYear()) + ","; ' . "\n"; 
 echo ' halfway = halfway + eval(0 + pDates.getMonth()) + ","; ' . "\n"; 
 echo ' halfway = halfway + pDates.getDate() + zextractstime(' . $ic . ') + "),"; retval+=lookatretz(halfway,extracttimezones(' . $ic . '),0,' . $ic . ');  ' . "\n"; 
 //echo ' retval = retval + pDates.getDate() + ".";	         ' . "\n"; 
 echo ' if (pDatee) { ' . "\n"; 
 echo ' if (calzero.length == 1 && emailto.indexOf("@") == -1) { if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { while (emailto.indexOf("@") == -1) {   emailto=prompt("Please enter who you want to email calendar reminders to", "fill.in@email.here"); if (emailto == null) {  emailto=""; }  }   } else { emailto=prompt("Optionally enter email address of who you want to email calendar reminders to, else we will call the iCal Calendar application, interactively, now.", ""); if (emailto == null) { emailto=""; } if (emailto == "") { emailto="@"; }  }   if (emailto == "@") {  etwo="&emode=Address&address=Address";   } else { etwo="&emode=To&address=' . '" + encodeURIComponent(emailto);  }   }  ' . "\n";
 echo ' if (calzero.length == 1) calcmds.push("http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + "%20" + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) + ("0" + pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDatee.getYear()) + eval(1 + pDatee.getMonth()) + pDatee.getDate() + extractetime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl)); ' . "\n";
 echo ' if (calzero.length == 1) document.getElementById("calzero' . $ic . 'store").value = "http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + " " + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) + ("0" + pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDatee.getYear()) + eval(1 + pDatee.getMonth()) + pDatee.getDate() + extractetime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl); ' . "\n";
 echo ' } else { ' . "\n"; 
 echo ' if (calzero.length == 1 && emailto.indexOf("@") == -1) { if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { while (emailto.indexOf("@") == -1) {   emailto=prompt("Please enter who you want to email calendar reminders to", "fill.in@email.here"); if (emailto == null) {  emailto=""; }  }   } else { emailto=prompt("Optionally enter email address of who you want to email calendar reminders to, else we will call the iCal Calendar application, interactively, now.", ""); if (emailto == null) { emailto=""; }  if (emailto == "") { emailto="@"; }   } if (emailto == "@") {  etwo="&emode=Address&address=Address";   } else { etwo="&emode=To&address=' . '" + encodeURIComponent(emailto);  }   } ' . "\n";
 echo ' if (calzero.length == 1) calcmds.push("http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + "%20" + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) + ("0" + pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDates.getYear()) + eval(1 + pDates.getMonth()) + pDates.getDate() + extractstime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl)); ' . "\n";
 echo ' if (calzero.length == 1) document.getElementById("calzero' . $ic . 'store").value = "http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + " " + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) +("0" +  pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDates.getYear()) + eval(1 + pDates.getMonth()) + pDates.getDate() + extractstime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl); ' . "\n";
 echo ' }  ' . "\n"; 
 echo '      } else { ' . "\n"; 
 echo '  pDates = YAHOO.example.calendar.cale' . ($ic - 1) . '.getSelectedDates()[0]; ' . "\n"; 
 echo ' if (pDates) { ' . "\n"; 
 echo ' halfway="newDate(" + eval(1900 + pDates.getYear()) + ","; ' . "\n"; 
 echo ' halfway = halfway + eval(0 + pDates.getMonth()) + ","; ' . "\n"; 
 echo ' halfway = halfway + pDates.getDate() + zextractstime(' . $ic . ') + "),"; retval+=lookatretz(halfway,extracttimezones(' . $ic . '),0,' . $ic . '); ' . "\n"; 
 //echo ' retval = retval + pDates.getDate() + ".";	         ' . "\n"; 
 echo '      }  ' . "\n"; 
 echo '      } ' . "\n"; 
 echo ' if (pDatee) { ' . "\n"; 
 echo ' halfway="newDate(" + eval(1900 + pDatee.getYear()) + ","; ' . "\n"; 
 echo ' halfway = halfway + eval(0 + pDatee.getMonth()) + ","; ' . "\n"; 
 echo ' halfway = halfway + pDatee.getDate() + zextractetime(' . $ic . ') + ")]";  retval+=lookatretz(halfway,extracttimezones(' . $ic . '),1,' . $ic . '); ' . "\n"; 
 //echo ' retval = retval + pDatee.getDate() + ".";	         ' . "\n"; 
 echo '     } else { ' . "\n"; 
 echo '  pDatee = YAHOO.example.calendar.cals' . ($ic + 1) . '.getSelectedDates()[0]; ' . "\n"; 
 echo ' if (pDatee) { ' . "\n"; 
 echo ' halfway="newDate(" + eval(1900 + pDatee.getYear()) + ","; ' . "\n"; 
 echo ' halfway = halfway + eval(0 + pDatee.getMonth()) + ","; ' . "\n"; 
 echo ' halfway = halfway + pDatee.getDate() + zextractetime(' . $ic . ') + ")]";  retval+=lookatretz(halfway,extracttimezones(' . $ic . '),1,' . $ic . '); ' . "\n"; 
 //echo ' retval = retval + pDatee.getDate() + ".";	         ' . "\n"; 
 echo ' if (calzero.length == 1 && emailto.indexOf("@") == -1) { if (navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i)) { while (emailto.indexOf("@") == -1) {   emailto=prompt("Please enter who you want to email calendar reminders to", "fill.in@email.here"); if (emailto == null) {  emailto=""; }  }   } else { emailto=prompt("Optionally enter email address of who you want to email calendar reminders to, else we will call the iCal Calendar application, interactively, now.", ""); if (emailto == null) { emailto=""; } if (emailto == "") { emailto="@"; }  }   if (emailto == "@") {  etwo="&emode=Address&address=Address";   } else { etwo="&emode=To&address=' . '" + encodeURIComponent(emailto);  }   }  ' . "\n";
 echo ' if (calzero.length == 1) calcmds.push("http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + "%20" + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) + ("0" + pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDatee.getYear()) + eval(1 + pDatee.getMonth()) + pDatee.getDate() + extractetime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl)); ' . "\n";
 echo ' if (calzero.length == 1) document.getElementById("calzero' . $ic . 'store").value = "http://www.rjmprogramming.com.au/PHP/ics_attachment.php?id=0&tz=" + extracttimezones(' . $ic . ') + "&inhouse_ynft=y&eventwords=test&title=" + encodeURIComponent(document.getElementsByTagName("h1")[0].innerHTML) + " " + "' . $ic . '&stage=" + encodeURIComponent(ourbstage) + "&datestart=' . '" + eval(1900 + pDates.getYear()) + ("0" + eval(1 + pDates.getMonth())).slice(-2) + ("0" + pDates.getDate()).slice(-2) + extractstime(' . $ic . ') + "&dateend=' . '" + eval(1900 + pDatee.getYear()) + eval(1 + pDatee.getMonth()) + pDatee.getDate() + extractetime(' . $ic . ') + etwo + "&description=Description&url=" + encodeURIComponent(thisurl); ' . "\n";
 echo '     }  ' . "\n"; 
 echo '      }  ' . "\n"; 
 echo '  return retval;  } ' . "\n"; 
 echo ' } return ""; } ' . "\n";
      }
      
?>
   function cals0(huh,huh2) {
   }
   function cals100(huh,huh2) {
   }
   
   function fixremail() {
     var re=document.getElementById('remail');
<?php
     echo "\n if (re != null) re.innerHTML=re.innerHTML.replace(' Google Chart', ' <?php echo $GETtitle; ?>" . $itins . "'); \n";
?>
     re=document.getElementById('zmenu');
     if (re != null) re.style.display='none';
   }

   function goforth() {
   //alert(99);
     var ii=1;
     var dt = "";
     var ci = "";
     while (ii <= num) {
       dt = dt + ci + cals1(ii,1);
       dt = dt.replace("'", "~~").replace('"', '~');
       dt = dt.replace("'", "~~").replace('"', '~');
       dt = dt.replace("'", "~~").replace('"', '~');
       dt = dt.replace("'", "~~").replace('"', '~');
       ttitle = ttitle.replace("'", "~~").replace('"', '~');
       ttitle = ttitle.replace("'", "~~").replace('"', '~');
       ci = ",";
       ii = ii + 1;
       //alert(dt);
     }


     if (calcmds.length > 0) {
       //calwl = "./itinerary.php?title=" + ttitle.replace("'", "~~").replace('"', '~') + "&onclick=y&desc=" + ttitle.replace("'", "~~").replace('"', '~') + "&data=" + dt.replace("'", "~~").replace('"', '~');
       calwl = "http://www.rjmprogramming.com.au/PHP/TimelineChart/timeline_chart.php?title=" + ttitle.replace("'", "~~").replace('"', '~') + "&onclick=y&desc=" + ttitle.replace("'", "~~").replace('"', '~') + "&data=" + dt.replace("'", "~~").replace('"', '~');
       //calwl = "http://localhost:8888/PHP/timeline_chart/timeline_chart.php?title=" + ttitle.replace("'", "~~").replace('"', '~') + "&onclick=y&desc=" + ttitle.replace("'", "~~").replace('"', '~') + "&data=" + dt.replace("'", "~~").replace('"', '~');
       thiscalcmd=0;
       setTimeout(docalendar, 100);
     } else {
       //window.location = "./itinerary.php?title=" + ttitle.replace("'", "~~").replace('"', '~') + "&onclick=y&desc=" + ttitle.replace("'", "~~").replace('"', '~') + "&data=" + dt.replace("'", "~~").replace('"', '~');
       var wloc=maybegettopost("http://www.rjmprogramming.com.au/PHP/TimelineChart/timeline_chart.php?title=" + ttitle.replace("'", "~~").replace('"', '~') + "&onclick=y&desc=" + ttitle.replace("'", "~~").replace('"', '~') + "&data=" + dt.replace("'", "~~").replace('"', '~'), true);
       if (wloc.replace('about:blank;','').replace('about:blank','') != '') window.location = wloc;
     }


   }
      
function docgetclass(inc, intag) {
  if (document.getElementsByClassName) {
    return document.getElementsByClassName(inc);
  } else {
    var ijl;
    var anarris=[];
    var huhs=document.getElementsByTagName(intag);
    for (ijl=0; ijl<huhs.length; ijl++) {
     if (huh[ijl].className.indexOf(inc) != -1) {
      anarris.push(huhs[ijl]);
     }
    }
    return anarris;
  }
}

function checkforclass() {
var buildup='';
var cfcs=docgetclass('emojioverlay','*');
for (var ij=0; ij<cfcs.length; ij++) {
  if (cfcs[ij].innerHTML.replace(/&amp;/g,'&').indexOf(';&') != -1) {
    var emjs=cfcs[ij].innerHTML.replace(/&amp;/g,'&').split('&');
    buildup=''; //&#' + emjs[1].split(';')[0] + ';';
    cfcs[ij].style.opacity=eval(cfcs[ij].style.opacity / eval(-1 + emjs.length));
    for (var iemjs=1; iemjs<emjs.length; iemjs++) {
      buildup+='<span title=\"Click to enable Calendar iCal Event for this Timeline Event\" style=\"position:absolute;top:' + cfcs[ij].style.top + ';left:' + cfcs[ij].style.left + ';font-size:' + cfcs[ij].style.fontSize + ';opacity:' + cfcs[ij].style.opacity + ';z-index:' + cfcs[ij].style.zIndex + ';\">&#' + emjs[iemjs].split(';')[0] + ';</span>';
    } 
    cfcs[ij].innerHTML=buildup;  
    cfcs[ij].style.visibility='visible'; 
  }
}
}

//Name(s): 

//Airport From: 

//Flight: 

//From: 
// Terminal: 
// Takeoff Time: as per time to the left
// Timezone From: as per timezone to the left
// Time to Arrive at Terminal: 
// Comments: 
//Transit Information: 

//Airport To: 

//To: 
// Terminal: 
// Landing Time: as per time to the right
// Timezone To: as per timezone to the right
// Estimated Baggage Pickup Time at Terminal: 

//var prev_Takeoff_Time=" as per time to the left";
//var prev_Timezone_From=" as per timezone to the left";
//var prev_Landing_Time=" as per time to the right";
//var prev_Timezone_To=" as per timezone to the right";
   
   function lookatretz(inb, tzs, isatend, numrow) {
     // Depending on tzs[0] for start and/or via %2C (and %2F is "/") tzs[1] for end change the date/time of inb to be mapped to local time
 //    alert(inb + ' ... ' + tzs + ' ... ' + isatend);
     var dd, qw1="", thistz='', tzsa=tzs.replace("%20"," ").replace("%20"," ").replace("%2C",",").replace("%2c",",").replace("%2F","/").replace("%2f","/").split(',');
     var mindiff=0, hourdiff=0;
     var currentLocalTime, currentDateTimeCentralTimeZone, sixdt, inbdate, ndate, inbs, inbe;
     sixdt=inb.replace('newDate(','').replace('new Date(','').replace(')',',').split(',');
     if (isatend == 0) {
       thistz=tzsa[0].replace('Local','');
       if (document.getElementById('jdatestart' + numrow)) {
         thistz='' + eval(document.getElementById('jdatestart' + numrow).value / 3600);
    //     alert(thistz);
         inbdate=new Date(Date.UTC(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5]))); 
       } else if (document.getElementById('sdatestart' + numrow).value.replace('Local','') == "") {
         return inb;
       } else if (('' + thistz) != '' && ('' + thistz).indexOf('/') == -1 && ('' + thistz).indexOf('GMT') == -1) {
         dd=new Date();
         qw1=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
         if (dd.toTimeString().indexOf('+') != -1) qw1=-qw1;
         thistz='' + eval(60 * (eval(('' + thistz).replace('+','') - (eval(qw1)))));
  //   alert(inb + ' ... ' + tzs + ' ... ' + isatend);
   //      alert(thistz + ' ... ' + qw1);
        inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
       }
     } else if (tzsa.length > 1) {
       thistz=tzsa[1].replace('Local','');
       if (document.getElementById('jdateend' + numrow)) {
         thistz='' + eval(document.getElementById('jdateend' + numrow).value / 3600);
      //   alert(thistz);
         inbdate=new Date(Date.UTC(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5]))); 
       } else if (document.getElementById('sdateend' + numrow).value.replace('Local','') == "") {
         return inb;
       } else if (('' + thistz) != '' && ('' + thistz).indexOf('/') == -1 && ('' + thistz).indexOf('GMT') == -1) {
         dd=new Date();
         qw1=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
         if (dd.toTimeString().indexOf('+') != -1) qw1=-qw1;
         thistz='' + eval(60 * (eval(('' + thistz).replace('+','') - (eval(qw1)))));
 //    alert(inb + ' ... ' + tzs + ' ... ' + isatend);
   //      alert(thistz + ' ... ' + qw1);
         inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
       }
     } else {
       thistz=tzsa[0].replace('Local','');
       if (document.getElementById('jdatestart' + numrow)) {
         thistz='' + eval(document.getElementById('jdatestart' + numrow).value / 3600);
       //  alert(thistz);
         inbdate=new Date(Date.UTC(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5]))); 
       } else if (document.getElementById('sdateend' + numrow).value.replace('Local','') == "") {
         return inb;
       } else if (('' + thistz) != '' && ('' + thistz).indexOf('/') == -1 && ('' + thistz).indexOf('GMT') == -1) {
         dd=new Date();
         qw1=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
         if (dd.toTimeString().indexOf('+') != -1) qw1=-qw1;
         thistz='' + eval(60 * (eval(('' + thistz).replace('+','') - (eval(qw1)))));
     //alert(inb + ' ... ' + tzs + ' ... ' + isatend);
        // alert(thistz + ' ... ' + qw1);
         inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
       }
     }
     //if (thistz == 'GMT') thistz='Europe/London';
     if (thistz.indexOf('/') != -1 || thistz.indexOf('GMT') != -1) {
     //alert(thistz);
     currentLocalTime = new Date(); // This is local time
     // Converts the local time to a locale specific format, including adjusting for timezone.
     currentDateTimeCentralTimeZone = new Date(currentLocalTime.toLocaleString('en-US', { timeZone: thistz }));

     if (currentLocalTime.getDate() == currentDateTimeCentralTimeZone.getDate()) {
      mindiff=eval(eval(60 * currentLocalTime.getHours() + currentLocalTime.getMinutes()) - eval(60 * currentDateTimeCentralTimeZone.getHours() + currentDateTimeCentralTimeZone.getMinutes()));
  //alert(thistz + ' mindiff=' + mindiff);
     } else if (1 == Math.abs(currentLocalTime.getDate() - currentDateTimeCentralTimeZone.getDate())) {
      mindiff=eval(eval(24 * 60 * currentLocalTime.getDate() + 60 * currentLocalTime.getHours() + currentLocalTime.getMinutes()) - eval(24 * 60 * currentDateTimeCentralTimeZone.getDate() + 60 * currentDateTimeCentralTimeZone.getHours() + currentDateTimeCentralTimeZone.getMinutes()));
   //alert(thistz + ' minDiff=' + mindiff);
    } else if (currentLocalTime.getDate() < currentDateTimeCentralTimeZone.getDate()) {
      mindiff=eval(eval(24 * 60 + 60 * currentLocalTime.getHours() + currentLocalTime.getMinutes()) - eval(60 * currentDateTimeCentralTimeZone.getHours() + currentDateTimeCentralTimeZone.getMinutes()));
   //alert(thistz + ' mindIff=' + mindiff);
    } else {
      mindiff=eval(eval(60 * currentLocalTime.getHours() + currentLocalTime.getMinutes()) - eval(24 * 60 + 60 * currentDateTimeCentralTimeZone.getHours() + currentDateTimeCentralTimeZone.getMinutes()));
   //alert(thistz + ' mindiFf=' + mindiff);
    }
    
     //inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
     ndate=new Date(inbdate.getTime() + mindiff*60000);
    
     inbs=inb.split('(');
     inbe=inbs[1].split(')');
    
     return inbs[0] + '(' + ndate.getFullYear() + ',' + ndate.getMonth() + ',' + ndate.getDate() + ',' + ndate.getHours() + ',' + ndate.getMinutes() + ',' + ndate.getSeconds() + ')' + inbe[1];
     } else if (('' + thistz).indexOf('-') != -1) {
     mindiff=eval(('' + thistz).replace('+','') * 60);
     //inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
     ndate=new Date(inbdate.getTime() + mindiff*60000);
    
     inbs=inb.split('(');
     inbe=inbs[1].split(')');
    
     return inbs[0] + '(' + ndate.getFullYear() + ',' + ndate.getMonth() + ',' + ndate.getDate() + ',' + ndate.getHours() + ',' + ndate.getMinutes() + ',' + ndate.getSeconds() + ')' + inbe[1];
     } else {
     mindiff=eval(('' + thistz).replace('-','') * 60);
     //inbdate=new Date(eval(sixdt[0]),eval(sixdt[1]),eval(sixdt[2]),eval(sixdt[3]),eval(sixdt[4]),eval(sixdt[5])); 
     ndate=new Date(inbdate.getTime() - (mindiff*60000));
    
     inbs=inb.split('(');
     inbe=inbs[1].split(')');
    
     return inbs[0] + '(' + ndate.getFullYear() + ',' + ndate.getMonth() + ',' + ndate.getDate() + ',' + ndate.getHours() + ',' + ndate.getMinutes() + ',' + ndate.getSeconds() + ')' + inbe[1];
     }
     return inb;
   }
   
   function extracttimezones(iwhich) {
     var outtz="", dd, qw1="", qw2="";
     if (document.getElementById('sdatestart' + iwhich).value == '') {
       dd=new Date();
       qw1=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
       if (dd.toTimeString().indexOf('+') != -1) qw1=-qw1;
       //alert(qw1 + ' ... ' + dd.toTimeString());
     } else {
       qw1=document.getElementById('sdatestart' + iwhich).value;
     }
     if (document.getElementById('sdateend' + iwhich).value == '') {
       dd=new Date();
       qw2=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
       if (dd.toTimeString().indexOf('+') != -1) qw2=-qw2;
       //alert(qw2 + ' ... ' + dd.toTimeString());
     } else {
       qw2=document.getElementById('sdateend' + iwhich).value;
     }
     outtz+=qw1 + ',' + qw2;
     return encodeURIComponent(outtz);
   }
   
   function extractstime(iwhich) {
     var outtz=":";
     outtz+=document.getElementById('hhdatestart' + iwhich).value;
     outtz+=document.getElementById('midatestart' + iwhich).value;
     outtz+=document.getElementById('ssdatestart' + iwhich).value;
     return encodeURIComponent(outtz);
   }
   
   function extractetime(iwhich) {
     var outtz=":";
     outtz+=document.getElementById('hhdateend' + iwhich).value;
     outtz+=document.getElementById('midateend' + iwhich).value;
     outtz+=document.getElementById('ssdateend' + iwhich).value;
     return encodeURIComponent(outtz);
   }
   
   function zextractstime(iwhich) {
     var outtz=",";
     outtz+=document.getElementById('hhdatestart' + iwhich).value;
     outtz+="," + document.getElementById('midatestart' + iwhich).value;
     outtz+="," + document.getElementById('ssdatestart' + iwhich).value;
     return outtz;
   }
   
   function zextractetime(iwhich) {
     var outtz=",";
     outtz+=document.getElementById('hhdateend' + iwhich).value;
     outtz+="," + document.getElementById('midateend' + iwhich).value;
     outtz+="," + document.getElementById('ssdateend' + iwhich).value;
     return outtz;
   }

function dota(tv) {
  ta=tv;
  //alert(ta);
} 

function changetz(itz,tzwith,tdd) {
  var insel=tdd, owid=null, wid=0;
  if (insel != null) {
   if (insel.id.indexOf('sdatestart') == 0) {
     wid=insel.id.replace('sdatestart','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Timezone_From[-1 + eval(wid)] == "as per time to the left") {
        owid.value=owid.value.replace(insel.title + prev_Timezone_From[-1 + eval(wid)], insel.title + insel.value);
        prev_Timezone_From[-1 + eval(wid)]=insel.value;
      } else if (owid.value.indexOf(insel.title + prev_Timezone_From[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Timezone_From[-1 + eval(wid)], insel.title + insel.value);
        prev_Timezone_From[-1 + eval(wid)]=insel.value;
      }
     }
   } else if (insel.id.indexOf('sdateend') == 0) {
     wid=insel.id.replace('sdateend','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Timezone_To[-1 + eval(wid)] == "as per time to the left") {
        owid.value=owid.value.replace(insel.title + prev_Timezone_To[-1 + eval(wid)], insel.value);
        prev_Timezone_To[-1 + eval(wid)]=insel.value;
      } else if (owid.value.indexOf(insel.title + prev_Timezone_To[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Timezone_To[-1 + eval(wid)], insel.value);
        prev_Timezone_To[-1 + eval(wid)]=insel.value;
      }
     }
   }
   if (tdd.value.indexOf('/') != -1) {
     if (document.getElementById(tdd.id.replace('s','f'))) {
       document.getElementById(tdd.id.replace('s','f')).src='./itinerary.php?region_city=' + encodeURIComponent(tdd.value) + '&topdiv=tzoffsets&newinput=' + encodeURIComponent(tdd.id.replace('s','j'));
     } else {
       document.getElementById('tzoffsets').innerHTML+='<iframe id=' + tdd.id.replace('s','f') + ' src="./itinerary.php?region_city=' + encodeURIComponent(tdd.value) + '&topdiv=tzoffsets&newinput=' + encodeURIComponent(tdd.id.replace('s','j')) + '"></iframe>';
     }
   }  
 }
}

   
   function docalendar() {
    if (thiscalcmd >= 0 && thiscalcmd < calcmds.length) {
     document.title='Sending calendar email ' + eval(1 + thiscalcmd) + ' of ' + calcmds.length + ' ...';
     //alert(calcmds[thiscalcmd]);
     var dgs=maybegettopost(calcmds[thiscalcmd], false);
     if (dgs.replace('about:blank;','').replace('about:blank','') != '') document.getElementById('mycalendartwo').src=dgs;
     thiscalcmd++;
     setTimeout(docalendar, 3000);
    } else {
     var cwloc=maybegettopost(calwl, true);
     if (cwloc.replace('about:blank;','').replace('about:blank','') != '') window.location = cwloc;
    }
   }
 
function fixthis(insel,which,at1,at2,withthis) {
 var wid=0, owid=null;
 if (withthis.length > 0) {
  if (insel != null) {
   if (insel.id.indexOf('hhdatestart') == 0) {
     wid=insel.id.replace('hhdatestart','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Takeoff_Time[-1 + eval(wid)] == "as per time to the left") {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      } else if (owid.value.indexOf(insel.title + prev_Takeoff_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      }
     }
   } else if (insel.id.indexOf('midatestart') == 0) {
     wid=insel.id.replace('midatestart','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Takeoff_Time[-1 + eval(wid)] == "as per time to the left") {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      } else if (owid.value.indexOf(insel.title + prev_Takeoff_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      }
     }
   } else if (insel.id.indexOf('ssdatestart') == 0) {
     wid=insel.id.replace('ssdatestart','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Takeoff_Time[-1 + eval(wid)] == "as per time to the left") {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      } else if (owid.value.indexOf(insel.title + prev_Takeoff_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Takeoff_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00',''));
        prev_Takeoff_Time[-1 + eval(wid)]=document.getElementById('hhdatestart' + wid).value + ':' + document.getElementById('midatestart' + wid).value + (':' + document.getElementById('ssdatestart' + wid).value).replace(':00','');
      }
     }
   } else if (insel.id.indexOf('hhdateend') == 0) {
     wid=insel.id.replace('hhdateend','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Landing_Time[-1 + eval(wid)] == "as per time to the right") {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
      } else if (owid.value.indexOf(insel.title + prev_Landing_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
      }
     }
   } else if (insel.id.indexOf('midateend') == 0) {
     wid=insel.id.replace('midateend','');
     owid=document.getElementById('i' + wid + 'put');
     if (owid.value.indexOf(insel.title) != -1) {
      if (prev_Landing_Time[-1 + eval(wid)] == "as per time to the right") {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
      } else if (owid.value.indexOf(insel.title + prev_Landing_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
      }
     }
   } else if (insel.id.indexOf('ssdateend') == 0) {
     wid=insel.id.replace('ssdateend','');
     owid=document.getElementById('i' + wid + 'put');
     //alert('owid.innerHTML=' + owid.innerHTML);
     if (owid.value.indexOf(insel.title) != -1) {
     //alert('owid.value=' + owid.value);
      if (prev_Landing_Time[-1 + eval(wid)] == "as per time to the right") {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
     //alert('New owid.value=' + owid.value);
        owid.innerHTML=owid.value;
      } else if (owid.value.indexOf(insel.title + prev_Landing_Time[-1 + eval(wid)]) != -1) {
        owid.value=owid.value.replace(insel.title + prev_Landing_Time[-1 + eval(wid)], insel.title + document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00',''));
        prev_Landing_Time[-1 + eval(wid)]=document.getElementById('hhdateend' + wid).value + ':' + document.getElementById('midateend' + wid).value + (':' + document.getElementById('ssdateend' + wid).value).replace(':00','');
     //alert('new owid.value=' + owid.value);
        owid.innerHTML=owid.value;
      }
     }
     //alert('new owid.innerHTML=' + owid.innerHTML);
   }
      document.title=insel.id;
      if (owid != null) document.title+=' ' + owid.id;
  } else {
  if (which == 'datestart' || which == 'dateend') {
   var wasstr=document.getElementById(which).value;
   if (at1 == 0) {
    //alert('huh1=' + withthis + wasstr.substring(withthis.length));
    document.getElementById(which).value=withthis + wasstr.substring(withthis.length);
   } else {
    //alert('huh2=' + wasstr.substring(0,at1) + withthis + wasstr.substring(at2));
    document.getElementById(which).value=wasstr.substring(0,at1) + withthis + wasstr.substring(at2);
   }
  } else {
   //alert('huh3=' + withthis);
   document.getElementById(which).value=withthis;
  }
  }
 }
}

function prefixthis(which,withthis) {
 //alert(withthis);
 fixthis(null,'yyyy' + which, 0, 0, withthis.substring(0,4));
 fixthis(null,'mm' + which, 0, 0, withthis.substring(4,6));
 fixthis(null,'dd' + which, 0, 0, withthis.substring(6,8));
 fixthis(null,'hh' + which, 0, 0, withthis.substring(9,11));
 fixthis(null,'mi' + which, 0, 0, withthis.substring(11,13));
 fixthis(null,'ss' + which, 0, 0, withthis.substring(13,15));
}

function dodates() {
  var isv1='', isv2='';
  var dd=new Date();
  //alert(eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
  var qw=eval(eval((eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2]) - eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 100) + eval((0.0 + eval(dd.toTimeString().replace('-',' ').replace('+',' ').split(' ')[2] % 100)) / 60.0));
  if (dd.toTimeString().indexOf('+') != -1) qw=-qw;
  document.getElementById('tz').value=qw;
  isv1='' + dd.getFullYear() + ('0' + eval(1 + dd.getMonth())).slice(-2) + ('0' + dd.getDate()).slice(-2) + ':' + dd.toTimeString().split(' ')[0].replace(/:/g,'');
  //dd.getFullYear() + ' + ' + ('0' + eval(1 + dd.getMonth())).slice(-2) + ' + ' + ('0' + dd.getDate()).slice(-2) + ' + ' + dd.toTimeString().split(' ')[0].replace(/:/g,''));
  //document.getElementById('datestart').value=isv1;
  prefixthis('datestart',isv1);
  isv2='' + dd.getFullYear() + ('0' + eval(1 + dd.getMonth())).slice(-2) + ('0' + dd.getDate()).slice(-2) + ':' + dd.toTimeString().split(' ')[0].replace(/:/g,'');
  //document.getElementById('dateend').value=isv2;
  prefixthis('dateend',isv2);
  document.getElementById('datestart').value=isv1;
  document.getElementById('dateend').value=isv2;
  //alert(isv1);
  document.getElementById('title').focus();
}

function maybegettopost(instg, showit) {
  return instg;
}

<?php
      echo " </script> \n";
      echo "<script type='text/javascript' src='gettopost.js' defer='defer'></script> </head> \n";
      echo " <body class='yui-skin-sam' onload=' setTimeout(later, 2 * 1000); '><div id='page1'> \n";
      echo " <h1>" . $GETtitle . " " . $itins . "</h1> \n";
?>
    <div id="chart_div" style="width: 900px; height: 200px; background-color: yellow;"></div>
    <div id="calendar_table"></div>
    <?php 
      //echo "\n<a title='Another " . $itinis . "' href='./itinerary.php'>Another " . $itinis . "?</a> <a title='Another Timeline' href='./timeline_chart.php'>Another Timeline?</a> \n";
      echo "\n" . $itinthis . $itinother . "\n<a title='Another Timeline' href='./timeline_chart.php'>Another Timeline?</a> \n";
      if (isset($_GET['desc'])) {
        echo '<' . 'script' . '> function later() { } <' . '/script>' . "\n ";
      }
      if (!isset($_GET['desc'])) {
      
        echo '<' . 'script' . '>' . "\n ";
    ?>

<?php       
        echo " function later() { \n" . ' var datalineprefix = " "; ' . "\n";
        echo ' var datalinesuffix = ""; ' . "\n";
        echo ' var extra = ""; ' . "\n";
        echo ' var bits = "", datestart="datestart",dateend="dateend"; ' . "\n";
        echo ' var task = ""; ' . "\n";
        echo ' var ict = 0; ' . "\n";
        echo ' var thisline = 1; ' . "\n";
        echo ' var totalleft = 100.0; ' . "\n";
        echo ' var title = prompt("Enter ' . $itinis . ' Title", "' . $GETtitle . '"); ' . "\n";
        
        echo ' if (title != null) { ' . "\n";
        echo ' ttitle = title; ' . "\n" . ' task = prompt("Enter Number of " + title + " ' . $legs . '", "0"); ttask = task; ' . "\n";
        
        
        echo ' if (task == null) { ' . "\n";
        echo '  title = title; ' . "\n";
        echo ' } else if (task != "0" && task.indexOf("-") == -1 && (task.length == 1 || task.length == 2)) { ' . "\n";
        echo '  bits = "<br><a href=# onclick=' . "'" . 'goforth();' . "'" . ' title=' . "'" . 'Show' . "'" . '>Click here to Show ' . $itins . ' Timeline when All Filled out Below ...</a><br><table border=1><tr><td>From</td><td>Description</td><td>To</td></tr>";' . "\n";

        echo '  num = task;' . "\n" . 'while (ict != task) { ' . "\n";
        echo '    bits = bits + "<tr>";' . "\n";
        echo '    ict = ict + 1;' . "\n";
        echo ' prev_Takeoff_Time.push("as per time to the left");' . "\n";
        echo ' prev_Timezone_From.push("as per timezone to the left");' . "\n";
        echo ' prev_Landing_Time.push("as per time to the right");' . "\n";
        echo ' prev_Timezone_To.push("as per timezone to the right");' . "\n";

        echo '    bits = bits + ("<td><div id=cal" + ict + "SContainer></div><input id=' . "'" . 'calzero" + ict + "store' . "'" . ' type=hidden value=\"\"></input><span onmousedown=this.style.opacity=1.0;this.style.border=sgreen;document.getElementById(' . "'" . 'calzero" + ict + "store' . "'" . ').value=1; id=' . "'" . 'calzero" + ict + "put' . "'" . ' style=z-index:5;opacity:1.0;font-size:50px;cursor:pointer; class=emojioverlay>&128197;&128231;</span><br>' . ourtimezonelist('datestart') . ' <br>Time: <input style=display:none;width:100px; type=text onblur=prefixthis(datestart,this.value); id=datestart name=datestart value=' . date("Ymd:His") . '></input><span style=display:none;> or </span>' . dateselcombo("datestart",date("Ymd:His")) . '</td>").replace(/zpx/g,ict);' . "\n";
        if (strlen($tabitis) == 0) {
        echo '    bits = bits + "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea onchange=dota(this.value); rows=22 cols=45 id=i" + ict + "put></textarea></td>"' . "\n";
        } else {
        echo '    bits = bits + "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea onchange=dota(this.value); rows=22 cols=45 id=i" + ict + "put>Name(s): \n\nAirport From: \n\nFlight: \n\nFrom: \n Terminal: \n Takeoff Time: as per time to the left\n Timezone From: as per timezone to the left\n Time to Arrive at Terminal: \n Comments: \nTransit Information: \n\nAirport To: \n\nTo: \n Terminal: \n Landing Time: as per time to the right\n Timezone To: as per timezone to the right\n Estimated Baggage Pickup Time at Terminal: </textarea></td>"' . "\n";
        }
        echo '    bits = bits + ("<td><div id=cal" + ict + "EContainer></div><br>' . ourtimezonelist('dateend') . ' <br>Time: <input style=display:none;width:100px; type=text onblur=prefixthis(dateend,this.value); id=dateend name=dateend value=' . date("Ymd:His") . '></input><span style=display:none;> or </span>' . dateselcombo("dateend",date("Ymd:His")) . '<br></td>").replace(/zpx/g,ict);' . "\n";
        echo '    bits = bits + "</tr>";' . "\n";
        //echo '  alert(ict + " -- " + bits);' . "\n";
        echo '    } ' . "\n";

        echo '  } else { alert("Can only handle 99 or less."); window.location = "./itinerary.php"; }' . "\n";
        echo '  bits = bits + "</table>";' . "\n";
        //echo '  alert(bits);' . "\n";
        echo ' var ct = document.getElementById("calendar_table"); ' . "\n";
        echo '  ct.innerHTML = bits;' . "\n";
        //echo '  alert(ct.innerHTML);' . "\n";
        echo '    if (ict != 0) { ict = 0; ' . "\n";
        echo '  while (ict != task) { ' . "\n";
        echo '    ict = ict + 1;' . "\n";
        echo '    cals1(ict,0);' . "\n";
        echo '    } } ' . "\n";
        echo ' }  ' . "\n";
        echo " var ddd; \n ddd=new Date(); \n for (var kij=1; kij<=ict; kij++) { \n document.getElementById('hhdatestart' + kij).value=('0' + ddd.getHours()).slice(-2); \n document.getElementById('midatestart' + kij).value=('0' + ddd.getMinutes()).slice(-2); \n document.getElementById('hhdateend' + kij).value=('0' + ddd.getHours()).slice(-2); \n document.getElementById('midateend' + kij).value=('0' + ddd.getMinutes()).slice(-2); \n } " . "\n";
        echo ' checkforclass(); ' . "\n";
        echo "} \n" . '</' . 'script' . '>' . "\n";
      } 
    ?>
    <script> setTimeout(fixremail, 3000); </script>
  <iframe id="mycalendartwo" scr="about:blank" style="display:none;width:1px;height:1px;"></iframe>
  </div><div id='tzoffsets'></div></body>
</html>
