
// This file contains all specific functions for UCruising.com Website //

// Display ship info based on cruise line
function cl2ship(){

  var delim = '-----WOOWWOWOWOWOAsDFSADFBABYSOFTaSDFSADFWOWOW-';
  var tempary = new Array();

  if (document.getElementById(SHIP_DID) == null || document.getElementById(CL_ID) == null){
    return false;
  }

  var shipid = document.getElementById(CL_ID).options[document.getElementById(CL_ID).selectedIndex].value;
  var options = '', fieldname = 'Name';
  var shipSort = new Array();

  if (LANGUAGE_FLAG == 'CH'){fieldname = 'ChName';}
  else {fieldname = 'Name';}

  if (shipid == -1){
      if (LANGUAGE_FLAG == 'CH'){
	  document.getElementById(SHIP_DID).innerHTML = 
	      '<select id="'+SHIP_ID+'" name="'+SHIP_ID+'"><option class="standardt" value="-1">.. 所有郵輪 ..</option></select>';
      } else {
	  document.getElementById(SHIP_DID).innerHTML = 
	      '<select id="'+SHIP_ID+'" name="'+SHIP_ID+'"><option class="standardt" value="-1">All Cruise Ship</option></select>';
      }
  }
  else{
    // Create the ship dropdown list //
    var cl_size = CRUISE.length;
    var ship_size = CRUISE[shipid]['Ship'].length;

    // Ship required sort
    for (i=0; i < ship_size; i++){shipSort[i] = CRUISE[shipid]['Ship'][i][fieldname] + delim + CRUISE[shipid]['Ship'][i]['ID'];}
    shipSort = shipSort.sort();
    if (LANGUAGE_FLAG == 'CH'){options = '<option value="-1" class="standardt" selected>.. 所有郵輪 ..</option>';}
    else {options = '<option value="-1" class="standardt" selected>All Ship ..?</option>';}

     for (i=0; i < ship_size; i++){
       tempary = shipSort[i].split(delim); // Now, index 0 is the value and 1 is the ID
       if (SEARCH_FORM_SHIP != -1 && SEARCH_FORM_SHIP == tempary[1]){
         options += '<option class="standardt" value="'+tempary[1]+'" SELECTED>'+tempary[0]+'</option>';
       }else{
         options += '<option class="standardt" value="'+tempary[1]+'">'+tempary[0]+'</option>';
       }
     }
    options = '<select id="'+SHIP_ID+'" name="'+SHIP_ID+'">'+options+'</select>';
    document.getElementById(SHIP_DID).innerHTML = options;
  }

  return false;

}


// Display all search destination, price and duration //
function initSearchForm(){

  var priceOpt = durationOpt = cruiselineOpt = destOpt = excursionOpt = specialdealsOpt = index = size = 0;
  var priceOptf = durationOptf = cruiselineOptf = destOptf = excursionOptf = specialdealsOptf = cruiseOptf = cruiseOpt = 0;
  var mydate = new Date();
  var sdate = mydate.getFullYear() + '-' + chkDigitSize((mydate.getMonth() + 1),2) + '-' + chkDigitSize(mydate.getDate(),2);
  var edate = mydate.getFullYear() + '-' + chkDigitSize((mydate.getMonth() + 4),2) + '-' + chkDigitSize(mydate.getDate(),2);
  var clSort = new Array();
  var delim = '-----WOOWWOWOWOWOAsDFSADFBABYSOFTaSDFSADFWOWOW-';
  var tempary = new Array();
  var destinationary = new Array();
  var cruiseary = new Array();
  var durationary = new Array();
  var dealary = new Array();
  var budgetary = new Array();
  var fieldname = 'Name';

  if (LANGUAGE_FLAG == 'CH'){fieldname = 'ChName';}
  else {fieldname = 'Name';}

  // Assign approprate data for different languages //
  if (LANGUAGE_FLAG == 'CH'){
      destinationary = DESTINATION_CH;
      durationary = DURATION_CH;
      dealary = SPECIALDEALS_CH;
      cruiseary = CRUISE;
      budgetary = PRICE;
  }
  else {
      destinationary = DESTINATION;
      durationary = DURATION;
      dealary = SPECIALDEALS;
      cruiseary = CRUISE;
      budgetary = PRICE;
  }

  if (LANGUAGE_FLAG == 'CH'){priceOpt = '<option class="standardt_ch" value="-1" selected>..沒有預算..</option>';}
  else {priceOpt = '<option class="standardt" value="-1" selected>No Budget ..?</option>';}

  for (key in budgetary){
    if (SEARCH_FORM_BUDGET != -1 && SEARCH_FORM_BUDGET == key){
      priceOpt += '<option class="standardt" value="'+key+'" SELECTED>'+budgetary[key]+'</option>';
    }else{
      priceOpt += '<option class="standardt" value="'+key+'">'+budgetary[key]+'</option>';
    }
  }
  priceOptf = '<select id="'+PRICE_FID+'" name="'+PRICE_FID+'">'+priceOpt+'</select>';
  priceOpt  = '<select id="'+PRICE_ID+'" name="'+PRICE_ID+'">'+priceOpt+'</select>';

  if (LANGUAGE_FLAG == 'CH'){durationOpt = '<option class="standardt_ch" value="-1" selected>..任何航程日數..</option>';}
  else {durationOpt = '<option class="standardt" value="-1" selected>Any Duration ..?</option>';}
  for (key in durationary){
    if (SEARCH_FORM_DURATION != -1 && SEARCH_FORM_DURATION == key){
      durationOpt += '<option class="standardt" value="'+key+'" SELECTED>'+durationary[key]+'</option>';
    }else{
      durationOpt += '<option class="standardt" value="'+key+'">'+durationary[key]+'</option>';
    }
  }
  durationOpt = '<select id="'+DURATION_ID+'" name="'+DURATION_ID+'">'+durationOpt+'</select>';

  // Cruise Line required to sort //
  
  for (key in cruiseary){clSort[index] = cruiseary[key][fieldname] + delim + key;index++;}
  clSort = clSort.sort(); // Sort all name //
  if (LANGUAGE_FLAG == 'CH'){cruiselineOpt = '<option class="standardt_ch" value="-1" selected>..所有郵輪公司..</option>';}
  else {cruiselineOpt = '<option class="standardt" value="-1" selected>All Cruise Line ..?</option>';}
  size = clSort.length;
  for (var i=0; i < size; i++){
    tempary = clSort[i].split(delim); // Now, index 0 is the value and 1 is the ID

    if (SEARCH_FORM_CRUISE != -1 && SEARCH_FORM_CRUISE == tempary[1]){
      cruiselineOpt += '<option class="standardt" value="'+tempary[1]+'" SELECTED>'+tempary[0]+'</option>';
    }else{
      cruiselineOpt += '<option class="standardt" value="'+tempary[1]+'">'+tempary[0]+'</option>';
    }
  }
  cruiselineOpt = '<select id="'+CL_ID+'" name="'+CL_ID+'" onchange="cl2ship();">'+cruiselineOpt+'</select>';



  destinationary = mySort(destinationary);
  if (LANGUAGE_FLAG == 'CH'){destOpt = '<option class="standardt_ch" value="-1" selected>..任何目的地..</option>';}
  else {destOpt = '<option class="standardt" value="-1" selected>All Destination ..?</option>';}
  for (key in destinationary){
    if (SEARCH_FORM_DEST != -1 && SEARCH_FORM_DEST == key){
      destOpt += '<option class="standardt" value="'+key+'" SELECTED>'+destinationary[key]+'</option>';
    }else{
      destOpt += '<option class="standardt" value="'+key+'">'+destinationary[key]+'</option>';
    }
  }
  destOptf = '<select id="'+DEST_FID+'" name="'+DEST_FID+'">'+destOpt+'</select>';
  destOpt  = '<select id="'+DEST_ID+'" name="'+DEST_ID+'">'+destOpt+'</select>';


  /*
  excursionOpt = '<option class="standardt" value="-1" selected>'+"Doesn't Matter"+'</option>';
  for (key in EXCURSION){
    if (SEARCH_FORM_EXCURSION != -1 && SEARCH_FORM_EXCURSION == key){
      excursionOpt += '<option class="standardt" value="'+key+'" SELECTED>'+EXCURSION[key]+'</option>';
    }else{
      excursionOpt += '<option class="standardt" value="'+key+'">'+EXCURSION[key]+'</option>';
    }
  }
  excursionOpt = '<select id="'+EXCURSION_ID+'" name="'+EXCURSION_ID+'">'+excursionOpt+'</select>';
  */


  // Create All Ship List //
  if (LANGUAGE_FLAG == 'CH'){cruiseOpt = '<option class="standardt_ch" value="-1" selected>.. 所有郵輪 ..</option>';}
  else {cruiseOpt = '<option class="standardt" value="-1" selected>'+"All Cruise Ships..?"+'</option>';}
  for (cruisekey in cruiseary){
      for (key in cruiseary[cruisekey]['Ship']){
	  if (SEARCH_FORM_SHIP != -1 && SEARCH_FORM_SHIP == cruiseary[cruisekey]['Ship'][key]['ID']){
	      cruiseOpt += '<option class="standardt" value="'+cruiseary[cruisekey]['Ship'][key]['ID']+'" SELECTED>'+
		  cruiseary[cruisekey]['Ship'][key][fieldname]+'</option>';
	  }else{
	      cruiseOpt += '<option class="standardt" value="'+cruiseary[cruisekey]['Ship'][key]['ID']+'">'+
		  cruiseary[cruisekey]['Ship'][key][fieldname]+'</option>';
	  }
      }
  }
  cruiseOptf = '<select id="'+SHIP_FID+'" name="'+SHIP_FID+'">'+cruiseOpt+'</select>';


  if (LANGUAGE_FLAG == 'CH'){specialdealsOpt = '<option class="standardt_ch" value="-1" selected>.. 所有行程 ..</option>';}
  else {specialdealsOpt = '<option class="standardt" value="-1" selected>'+"All Itineraries"+'</option>';}
  for (key in dealary){
    if (SEARCH_FORM_SPECIALDEALS != -1 && SEARCH_FORM_SPECIALDEALS == key){
      specialdealsOpt += '<option class="standardt" value="'+key+'" SELECTED>'+dealary[key]+'</option>';
    }else{
      specialdealsOpt += '<option class="standardt" value="'+key+'">'+dealary[key]+'</option>';
    }
  }
  specialdealsOpt = '<select id="'+SPECIALDEALS_ID+'" name="'+SPECIALDEALS_ID+'">'+specialdealsOpt+'</select>';






  // Re-Assign all data //
  document.getElementById(PRICE_DID).innerHTML = priceOpt;
  if (document.getElementById(PRICE_FDID)!==null){document.getElementById(PRICE_FDID).innerHTML = priceOptf;}
  document.getElementById(DURATION_DID).innerHTML = durationOpt;
  document.getElementById(CL_DID).innerHTML = cruiselineOpt;
  document.getElementById(DEST_DID).innerHTML = destOpt;
  if (document.getElementById(DEST_FDID)!==null){document.getElementById(DEST_FDID).innerHTML = destOptf;}
  // document.getElementById(EXCURSION_DID).innerHTML = excursionOpt;
  document.getElementById(SPECIALDEALS_DID).innerHTML = specialdealsOpt;
  if (document.getElementById(SHIP_FDID)!==null){document.getElementById(SHIP_FDID).innerHTML = cruiseOptf;}

  // Create Date //
  document.getElementById(SDATE_ID).value = sdate;
  // document.getElementById(EDATE_ID).value = edate;
  updateS2EDate(true);

  // If search form has default data, use it //
  if (SEARCH_FORM_SDATE != '-1'){document.getElementById(SDATE_ID).value = SEARCH_FORM_SDATE;}
  if (SEARCH_FORM_EDATE != '-1'){document.getElementById(EDATE_ID).value = SEARCH_FORM_EDATE;}
  if (SEARCH_FORM_DEAL != '-1'){document.getElementById(DEALNUMBER_ID).value = SEARCH_FORM_DEAL;}

  // Reset Ship Option List //
  cl2ship();

  return false;

}





// Display all search destination, price and duration //
function initPortSearchForm(){

  var priceOpt = durationOpt = cruiselineOpt = destOpt = excursionOpt = 0;
  var mydate = new Date();
  var sdate = mydate.getFullYear() + '-' + chkDigitSize((mydate.getMonth() + 1),2) + '-' + chkDigitSize(mydate.getDate(),2);
  var edate = mydate.getFullYear() + '-' + chkDigitSize((mydate.getMonth() + 4),2) + '-' + chkDigitSize(mydate.getDate(),2);

  // Create Date //
  if (document.getElementById(SDATE_ID) != null && document.getElementById(EDATE_ID) != null){
    document.getElementById(SDATE_ID).value = sdate;
    // document.getElementById(EDATE_ID).value = edate;
    updateS2EDate(true);

    // If search form has default data, use it //
    if (SEARCH_FORM_SDATE != '-1'){document.getElementById(SDATE_ID).value = SEARCH_FORM_SDATE;}
    if (SEARCH_FORM_EDATE != '-1'){document.getElementById(EDATE_ID).value = SEARCH_FORM_EDATE;}
  }

  return false;

}





// Update the end searching date based on the start searching date + ENDDATEDIFF (in macro) month
// Note, date will only update once, then it's all manual
// Param1: bypass the "only update once" counter, false(default): do not bypass, true: bypass
function updateS2EDate(bypass){
  var date = new Array();
  var newDateObj = '';
  var newDate = '';

  date = document.getElementById(SDATE_ID).value.split('-');

  // Do a calculation on month add, Bugs on November:
  // Month Become 0, and year become the next year

  // Add 3 month from starting date
  date[1] = Number(date[1]) + ENDDATEDIFF; // For default:3 months

  // Do month add on my own
  if (date[1] <= 12){
  }else{
    // Next year, year add one
    date[1] = Number(date[1]) - 12;
    date[0]++;
  }
  newDate = date[0] + '-' + chkDigitSize(date[1],2) + '-' + chkDigitSize(date[2],2);

  //  if (DATEUPDATED === false){
    document.getElementById(EDATE_ID).value = newDate;
    if (bypass == undefined || bypass === null || bypass === false){DATEUPDATED = true;}
    return;
  //  }
  return false;
}


// Update the end searching date based on the start searching date + 3 month
// Note, date will only update once, then it's all manual
function updateS2EDate_backup(){
  var sdate = document.getElementById(SDATE_ID).value;
  var mydate = new Date();
  var edate = '';
  var dateAry = new Array();

  dateAry = sdate.split('-');
  mydate.setFullYear(Number(dateAry[0]),Number(dateAry[1])-1,Number(dateAry[2]));
  edate = mydate.getFullYear() + '-' + chkDigitSize((mydate.getMonth() + 4),2) + '-' + chkDigitSize(mydate.getDate(),2);
  document.getElementById(EDATE_ID).value = edate;
  return false;

}



// Connect to the internet to search for pictures and map for this port
// Param1: the port name you wish to search
// Return: null
function connectWorldPicture(word){

  var temp = word.split(', ');
  var city = temp[0];
  var country = temp[1];
  var ffURL = 'http://maps.google.ca/maps?f=q&geocode=&q='+word+'&hl=en&layer=xt&t=p&z=11';
  var otherURL = 'http://maps.google.ca/maps?f=q&geocode=&q='+word+'&hl=en&layer=xt&t=p&lci=lmc:panoramio,lmc:wikipedia_en&z=11';
  var timeURL = 'http://www.google.ca/search?hl=en&q='+city+'+time&btnG=Search&meta=';
  var weatherURL = 'http://www.google.ca/search?hl=en&q='+city+'+weather&btnG=Search&meta=';
  var url = worldimgwin = '';
  var topmargin = 300;
  var displayall = false;

  if (navigator.userAgent.indexOf('Firefox') > -1){url = ffURL;}
  else{url = otherURL;}

  if (displayall === true){
    worldimgwin = window.open('','worldImg','left=120,top=120,width=800,height=600,toolbar=no,resizable=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes');
    worldimgwin.focus();
  
    worldimgwin.document.writeln("<table width=100% height=100% border=0 cellspacing=0 cellpadding=0 style='cursor:normal;'>");
    worldimgwin.document.writeln("<tr bgcolor='#E8ECF9'><td align=left valign=center colspan=2>");
    worldimgwin.document.writeln("&nbsp;&nbsp;<font size=2 face=arial><b>Port Information from the Internet</b></font>");
    worldimgwin.document.writeln("</td></tr>");
    worldimgwin.document.writeln("<tr height=76% ><td align=center valign=center colspan=2>");
    worldimgwin.document.writeln("<iframe  id='mapid' src='"+url+"' width=100% height=90% frameborder=0></iframe>");
    worldimgwin.document.writeln("</td></tr>");
    worldimgwin.document.writeln("<tr height=20%><td align=center valign=center>");
    worldimgwin.document.writeln("<iframe scrolling=no id='timeid' src='"+timeURL+"' width=90% height=90% frameborder=0></iframe>");
    worldimgwin.document.writeln("</td><td align=center valign=center>");
    worldimgwin.document.writeln("<iframe scrolling=no id='weatherid' src='"+weatherURL+"' width=90% height=90% frameborder=0></iframe>");
    worldimgwin.document.writeln("</td></tr>");
    worldimgwin.document.writeln("</table>");
    worldimgwin.document.writeln("<script type='text/javascript'>");
    worldimgwin.document.writeln("document.getElementById('mapid').scrollTop = " + topmargin + ";");
    worldimgwin.document.writeln("document.getElementById('weatherid').scrollTop = " + topmargin + ";");
    worldimgwin.document.writeln("document.getElementById('timeid').scrollTop = " + topmargin + ";");
    worldimgwin.document.writeln("</script>");
  }else{
    worldimgwin = window.open(url,'worldImg','left=120,top=120,width=800,height=600,toolbar=no,resizable=yes,location=no,directories=no,status=no,menubar=no,scrollbars=yes');
    worldimgwin.focus();
  }

  return false;

}


