// Nicola Zordan 17:42 4/28/2008 www.MappedTrips.com
// Locations list to Trip 


function locationsListText2Trip (textIn) {
  var trip;
  trip= LocationsList2Trip(textIn);
  TripXMLdocument=trip;
  window.open(ShowXMLtripURL);
  return trip;
};

//
//var skipLines=[]; // ['','OperatedBy'];
//var skipLines=['','          Operated by'];
var skipLines=['          Operated by'];

function LocationsList2Trip (textIn) {
  if (textIn==null) return null;
  var text=textIn.replace(/\r/g,'');
  var trip=null, locations=[], connections=[], description='', data,tmp;
  var textLines=text.split('\n');
  var line='',l=0;
  //0 Locations List
  // l++
  //line=textLines[l];
  //description+=textIn;
  description=' from Locations list \n\n'+text;
/*
  var itinerary=[];
  for (var i=0;i<textLines.length;i++) {
    line=textLines[i];
    //data=line.split(':');
    //data=line.split(':');
    itinerary[itinerary.length]=line;
  };
*/
  var itinerary=textLines;
  var arrays=LocationsList2TripArrays(itinerary, description);
  var trip=LocationsList2TripXML(itinerary, description)
  return trip;
};

function OpenLocationsList2Trip (textIn) {
  var trip=LocationsList2Trip(textIn);
  TripXMLdocument=trip;
  window.open(ShowXMLtripURL);
};


function removeDoubleBlanks(str) {
  var before=str;
  var after=null, tmp;
  while (before!=after) {
    //tmp=after;
    before=before.replace(/  /g,' ');
    after=before.replace(/  /g,' ');
    //if (tmp!=null) before=tmp;
  };
//alert(str+'\n'+after)
  return after;
};

function getDataDefinition(separators) {
  var stringDefinition=[];
  var ch, chp, blank=' ', from=null, to=null;
  for (var i=0;i<separators.length;i++) {
    ch=separators.charAt(i);
    if (ch!=blank) {
      if (from==null) { from=i; to=i }
       else { to=i; };
     } else {
      if (from!=null && to!=null) {
        stringDefinition[stringDefinition.length]=[from,to];
//alert(stringDefinition.length-1+'.\n'+stringDefinition[stringDefinition.length-1]);
        from=null;
      };  
    };
  };
//alert(separators+'\n'+stringDefinition);
  return stringDefinition;
};

function getData(str,definition) {
  var data=[];
  var from, to, d;
  for (var i=0;i<definition.length;i++) {
    d=definition[i];
    from=d[0];
    to=d[1];
    data[i]=str.substring(from,to+1);
  };
//alert(data);
  return data;
};

function alertData(line,definition,headers) {
  var str='';  
  var headersData=headers;
  if (typeof(headers)=='string') headersData=getData(headers,definition);
  var data=getData(line,definition);
  for (var i=0;i<headersData.length;i++) {
    if (i>0) str+='\n';
    str+='['+headersData[i]+']: \t['+data[i]+']';
  };
  alert(str);
  return str;
};

function trimblanks(str) { 
 return str.split(/\s/).join(' '); 
};

//var DeltaDataDefinition=[[0,8],[10,15],[17,22],[24,33],[38,51],[43,57],[59,64],[66,72],[74,82]];
//var DeltaDataHeaders=['Date','Flight','Status','Carrier','City','Time','Seat','Class','Meal'];
var DeltaDataDefinition=[[0,8],[10,15],[17,22],[24,33],[35,36],[38,51],[53,57],[59,64],[66,72],[74,82]];
var DeltaDataHeaders0=['Date','Flight','Status','Carrier','Action','City','Time','Seat','Class','Meal'];
var DeltaDataHeaders=['Date','Flight','Status','Carrier','City','Time','Seat','Class','Meal'];
var DeltaDataXLocationIndex=[];
function DetlaData2Location(idIn,data,dataPre) {
  var location=[];
  var id,name,address,tel,lon,lat,desc,url, dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage;
    // Locations[Locations.length]=["id","name","address","tel",longitude,latitude, "<a href='http://www.NicolaZordan.net' target='_blank'>www.NicolaZordan.net</a> 12a", "detailsURL", dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage ];	
    // Locations[Locations.length]=["id","name","address","tel",longitude,latitude, "<a href='http://www.NicolaZordan.net' target='_blank'>www.NicolaZordan.net</a> 12a", "detailsURL", dateStart, timeStart, dateEnd, timeEnd, imageUrl ];	
  id=idIn;
  //name=data[5];
  //address=data[5];
  name=data[4];
  address=data[4];
  tel='';
  lon='';
  lat='';
  desc=data[3]+': '+data[1];
//alert('['+trimblanks(desc)+']');
  if (dataPre!=null && trimblanks(desc)==':') 
    desc=dataPre[3]+': '+dataPre[1];
  url='';
  dateStart=data[0];
  if (dataPre!=null && trimblanks(dateStart)=='') dateStart=dataPre[0];
  //timeStart=data[6];
  timeStart=data[5];
  dateEnd='';
  timeEnd='';
  image='';
  pushpinImage='';

  dateStart=FormatDeltaDate(dateStart); 
  timeStart=FormatDeltaTime(timeStart); 
  dateEnd  =FormatDeltaDate(dateEnd  ); 
  timeEnd  =FormatDeltaTime(timeEnd  ); 
  // if (dateEnd=='' && timeEnd!='') dateEnd=dateStart;

  location=[id,name,address,tel,lon,lat,desc,url, dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage];
  return location;
};

function LocationList2Location(idIn,data) {
  var location=[];
  var id,name,address,tel,lon,lat,desc,url, dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage;
    // Locations[Locations.length]=["id","name","address","tel",longitude,latitude, "<a href='http://www.NicolaZordan.net' target='_blank'>www.NicolaZordan.net</a> 12a", "detailsURL", dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage ];	
    // Locations[Locations.length]=["id","name","address","tel",longitude,latitude, "<a href='http://www.NicolaZordan.net' target='_blank'>www.NicolaZordan.net</a> 12a", "detailsURL", dateStart, timeStart, dateEnd, timeEnd, imageUrl ];	
  id=idIn;
  name=data;
  address='';
  tel='';
  lon='';
  lat='';
  desc='';
  url='';
  dateStart='';
  timeStart='';
  dateEnd='';
  timeEnd='';
  image='';
  pushpinImage='';
  dateEnd  =''; 
  timeEnd  =''; 
  location=[id,name,address,tel,lon,lat,desc,url, dateStart, timeStart, dateEnd, timeEnd, image, pushpinImage];
  return location;
};

function DeltaData2Connection(idIn,dataFrom,dataTo) {
  var connection=[];
  var index, name, text, url, transportType, company, id, dateStart, timeStart, dateEnd, timeEnd, duration, description,imageURL;
    // Connections[Connections.length]=[index, name, text, (url), (transportType), (company), (id), (dateStart), (timeStart), (dateEnd), (timeEnd), (duration), (description) ];
  index=idIn;
  name='';
  //name=idIn;
  name='connection';
  text='';
  url='';
  transportType='Airline';
  company=dataFrom[3];
  id=dataFrom[1];
  dateStart=dataFrom[0];
  //timeStart=dataFrom[6];
  timeStart=dataFrom[5];
  dateEnd=dataTo[0];
  //if (trimblanks(dateEnd)=='') dateEnd=dateStart;
  //timeEnd=dataTo[6];
  timeEnd=dataTo[5];
  duration='';
  description='';
  //description='Class: '+dataFrom[8]+'<br/>'+'Meal: '+dataFrom[9];
  description='Class: '+dataFrom[7]+'<br/>'+'Meal: '+dataFrom[8];
  imageURL='';

  dateStart=FormatDeltaDate(dateStart); 
  timeStart=FormatDeltaTime(timeStart); 
  dateEnd  =FormatDeltaDate(dateEnd  ); 
  timeEnd  =FormatDeltaTime(timeEnd  ); 
  // if (dateEnd=='' && timeEnd!='') dateEnd=dateStart;

  connection=[index, name, text, url, transportType, company, id, dateStart, timeStart, dateEnd, timeEnd, duration, description, imageURL];
//alert(connection);
  return connection;
};

function LocationsList2TripData (description,locations,connections) {
  var tripData=[];
  var name, text, url, imageURL, dateStart, timeStart, dateEnd, timeEnd, tel;
    // TripData=[ name, text, (url), (imageURL), (dateStart), (timeStart), (dateEnd), (timeEnd), tel ];
  name='';
  text=description;
  //-if (description!=null) text=description.replace(/\n/g,'<br/>\n');
  //if (description!=null) name=description.split('\n')[1];
/*
  if (description!=null) {
    var l1=description.split('\n')[1];
    var confirmData=l1.split('#: ');
    name=confirmData[1];
  };
  if (name==null) 
    if (description!=null) name=description.split('\n')[1];
*/
//alert(locations[locations.length-1]+'\n'+locations[locations.length-1][1]);
  if (name==null || name=='') 
    if (locations.length>0) name=locations[locations.length-1][1];
//alert(name);
  url='';
  imageURL='';
  dateStart='';
  timeStart='';
  dateEnd='';
  timeEnd='';
  //alert('['+connections[connections.length-1][9]+']\n['+connections[connections.length-2][9]+']\n\n'+dateStart+' - '+timeStart+'\n'+dateEnd+' - '+timeEnd);
  tel='';

  //dateStart=FormatDeltaDate(dateStart); 
  //timeStart=FormatDeltaTime(timeStart); 
  //dateEnd  =FormatDeltaDate(dateEnd  ); 
  //timeEnd  =FormatDeltaTime(timeEnd  ); 

  tripData=[name, text, url, imageURL, dateStart, timeStart, dateEnd, timeEnd, tel];
  return tripData;
};


function LocationsList2TripArrays(itinerary, description) {
  var locations=[], connections=[], trip=[], itPre=null, c;
  for (var i=0;i<itinerary.length;i++) {
    if (itinerary[i]==null || itinerary[i]=='') continue;
    locations[locations.length]=LocationList2Location(i, itinerary[i]);
/*
    if (i<itinerary.length-1) {
      //connections[connections.length]=DeltaData2Connection(i+1, itinerary[i],itinerary[i+1]);
      c=[];
      if (i%2==0) c=DeltaData2Connection(i+1, itinerary[i],itinerary[i+1]);
      connections[connections.length]=c;
    };
    itPre=itinerary[i];
*/
  };
  //trip=Delta2TripData(description,locations,connections);
  trip=LocationsList2TripData(description,locations,connections);
  var r=[trip, locations, connections];
  return r;
};

function LocationsList2TripXMLtext(itinerary, description) {
  var arrays=LocationsList2TripArrays(itinerary, description);
  var trip=arrays[0];
  var locations=arrays[1];
  var connections=arrays[2];
  var areas=[];
  TripData=trip;
  //Locations=locations;
  TLocations=locations;
  Connections=connections;
  Areas=areas;
//alert(Connections[0]);
  var tripXMLtext=Trip2XMLtext();
  return tripXMLtext;
};

function LocationsList2TripXML(itinerary, description) {
  var xmlText=LocationsList2TripXMLtext(itinerary, description);
  var xmlTrip=String2XML(xmlText);
  return xmlTrip;
};

//--

function FormatDeltaDate (dDate) {
  var fDate='';
  // simple conversion
  if (trimblanks(dDate)=='') return fDate;
  // no conversion
  var wd=dDate.substring(0,3);
  var d=dDate.substring(4,6);
  var m=dDate.substring(6,9);
  fDate=wd+' '+d+'/'+m;
  fDate=wd+' '+d+' '+m;
  return fDate;
  //
  // --
  var d=dDate.substring(0,2);
  var m=dDate.substring(2,5);
  var y='08'; // get current year or something
  var yN=parseInt(y);
  var yyyy=1900+yN;
  if (yN<60) yyyy=2000+yN;
  var fDate=d+'/'+m+'/'+yy;
  return fDate;
};

function FormatDeltaTime (dTime) {
  var fTime='';
  if (trimblanks(dTime)=='') return fTime;
  var h=dTime.substring(0,2);
  var m=dTime.substring(2,4);
  var p=dTime.substring(4,1);
  var pa='am';
  if (p.toUpperCase()=='P') pa='pm';
  fTime=h+':'+m+' '+pa;
/* 24 hours
  if (pa=='pm') {
    var hh=parseInt(trimblanks(h));
    hh=hh+12;
  };
  fTime=hh+':'+m;
*/
  // no conversion
  return fTime;
};


// -- Generic Reservation 2 Trip
/*

Trip Title
People: name, name, name
Date: 5/29/2008


--- Example ---

Luisa 40th birtday
People: Luisa Crosara, Nicola Zordan
Date: 5/30/2008 - 6/1/2008
Travel:
date: 5/30/2008 17:00
method: car
from: Boca Raton FL
to: Lantana FL
Travel: 
date: 5/30/2008 17:30
method: plane
id: Zordan Airline N67AP
tel: 561-620-4868
from: KLNA
to: X25
Stay:
date: 5/30/2008 -5/31/2008
name: Chalet Suzanne
where: 3800 Chalet Suzanne Dr. Lake Wales, FL 33859
type: hotel
id: 
reservation: 
Travel:
date: 5/31/2008
from: X25
to: KTIX
id: Zordan Airlines N67AP
Stay:
date: 5/30/2008 -5/31/2008
name: Cliff Blomgern
tel: (321) 960-2160
where: 1800 tee dee, titusville, fl 32780
type: home
id: 
reservation: 


*/


function GenericLocationsList2Trip () {
};


//--

