/*
  lista.js
  javascript functions for www.rentacarpoland.com/lista/

  Date: Mar 05 2002
  Author: Piotr Klaban <post at klaban.torun.pl>
*/
// date_recalc() is called after each change of the date



function buildQueryString(theFormName,num) {
  theForm = document.forms[theFormName];
  var qs = ''
  //var id=1;
  for (e=0;e<theForm.elements.length;e++) {
    var last = theForm.elements[e].name.length -1; 
    var lastTwoChars = theForm.elements[e].name.substring(theForm.elements[e].name.length-2); 
    if ((theForm.elements[e].name!='')&&((lastTwoChars==num) || (theForm.elements[e].name.charAt(last)==num) || (theForm.elements[e].name.charAt(last)=='1') || (theForm.elements[e].name.charAt(last)=='2') || (theForm.elements[e].name=='conf') || (theForm.elements[e].name=='day_diff') || (theForm.elements[e].name=='lang') || (theForm.elements[e].name=='lang2'))) {
      qs+=(qs=='')?'?':'&'
      qs+=theForm.elements[e].name+'='
	    +escape(theForm.elements[e].value)
      }
    }
  return qs
}

function startLyteFrame(title, url) {
      var anchor = this.document.createElement('a');
      anchor.setAttribute('rev', 'width: 640px; height: 680px; scrolling: auto;');
      anchor.setAttribute('title', title);
      anchor.setAttribute('href', url);
      anchor.setAttribute('rel', 'lyteframe');
      //alert(anchor.getAttrbute('title'));
      myLytebox.start(anchor, false, true);
      return false;
}

      function getIFrameDocument(aID){
        var rv = null;
      
        // if contentDocument exists, W3C compliant (Mozilla)
        if (document.getElementById(aID).contentDocument){
          rv = document.getElementById(aID).contentDocument;
        } else {
          // IE
          rv = document.frames[aID].document;
        }
        return rv;
      }
function date_recalc(myform)
{
  // 1. read date1 and date2
  var plywak = getIFrameDocument('plywak');
  var o_dd1 = myform.elements['dd1'];
  var o_mm1 = myform.elements['mm1'];
  var o_yy1 = myform.elements['yy1'];
  var o_hh1 = myform.elements['hh1'];
  var o_mi1 = myform.elements['mi1'];
  
  var o_dd2 = myform.elements['dd2'];
  var o_mm2 = myform.elements['mm2'];
  var o_yy2 = myform.elements['yy2'];
  var o_hh2 = myform.elements['hh2'];
  var o_mi2 = myform.elements['mi2'];

  if (!o_dd1 || !o_mm1 || !o_yy1 || !o_hh1 || !o_mi1 ||
      !o_dd2 || !o_mm2 || !o_yy2 || !o_hh2 || !o_mi2)
    return;

  var v_dd1 = o_dd1.options[o_dd1.selectedIndex].value;
  var v_mm1 = o_mm1.options[o_mm1.selectedIndex].value;
  var v_yy1 = o_yy1.options[o_yy1.selectedIndex].value;
  var v_hh1 = o_hh1.options[o_hh1.selectedIndex].value;
  var v_mi1 = o_mi1.options[o_mi1.selectedIndex].value;
  
  var v_dd2 = o_dd2.options[o_dd2.selectedIndex].value;
  var v_mm2 = o_mm2.options[o_mm2.selectedIndex].value;
  var v_yy2 = o_yy2.options[o_yy2.selectedIndex].value;
  var v_hh2 = o_hh2.options[o_hh2.selectedIndex].value;
  var v_mi2 = o_mi2.options[o_mi2.selectedIndex].value;
  
  

  getIFrameDocument('plywak').forms[0].elements["dd1"].value = v_dd1;
  getIFrameDocument('plywak').forms[0].elements["mm1"].value = v_mm1;
  getIFrameDocument('plywak').forms[0].elements["yy1"].value = v_yy1;
  getIFrameDocument('plywak').forms[0].elements["hh1"].value = v_hh1;
  getIFrameDocument('plywak').forms[0].elements["mi1"].value = v_mi1;
  
  getIFrameDocument('plywak').forms[0].elements["dd2"].value = v_dd2;
  getIFrameDocument('plywak').forms[0].elements["mm2"].value = v_mm2;
  getIFrameDocument('plywak').forms[0].elements["yy2"].value = v_yy2;
  getIFrameDocument('plywak').forms[0].elements["hh2"].value = v_hh2;
  getIFrameDocument('plywak').forms[0].elements["mi2"].value = v_mi2;



  var o_date1 = new Date(v_yy1, v_mm1 - 1, v_dd1, v_hh1, v_mi1, 0);
  var o_date2 = new Date(v_yy2, v_mm2 - 1, v_dd2, v_hh2, v_mi2, 0);
  var o_timecur = new Date();
  //var o_datecur = new Date(o_timecur.getFullYear(), o_timecur.getMonth(), o_timecur.getDate(), o_timecur.getHours(), o_timecur.getMinutes(), o_timecur.getSeconds());
  var o_datecur = new Date(o_timecur.getTime()+(o_timecur.getTimezoneOffset()+60)*60000);
  var o_conf = myform.elements['conf'];
  // 1a. check date
  if (((v_mm1 - 1) != o_date1.getMonth()) ||
      (v_dd1 != o_date1.getDate()) ||
      (v_yy1 != o_date1.getFullYear())) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: wrong begin date:\n'" + String(o_date1) + "'");
    else
      alert("Błąd: data początkowa jest nieprawidłowa:\n'" + String(o_date1) + "'");
  }
  if (((v_mm2 - 1) != o_date2.getMonth()) ||
      (v_dd2 != o_date2.getDate()) ||
      (v_yy2 != o_date2.getFullYear())) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: wrong end date:\n'" + String(o_date2) + "'");
    else
      alert("Błąd: data końcowa jest nieprawidłowa:\n'" + String(o_date2) + "'");
  }
/*
  // 1b. date in the past?
  if (o_date1.getTime() < o_datecur.getTime()) {
    if (o_conf.value == 'en')
      alert("Error: begin date selected in the past\n'" + String(o_date1) + "'");
    else
      alert("Błąd: data początkowa wybrana z przeszłości\n'" + String(o_date1) + "'");
  }

  if (o_date2.getTime() < o_datecur.getTime()) {
    if (o_conf.value == 'en')
      alert("Error: end date selected in the past\n'" + String(o_date2) + "'");
    else
      alert("Błąd: data końcowa wybrana z przeszłości\n'" + String(o_date2) + "'");
  }

  if (o_date2 < o_date1) {
    if (o_conf.value == 'en')
      alert("Error: end date is earlier than begin date\n'" + String(o_date2) + "'");
    else
      alert("Błąd: data końcowa jest wcześniejsza niż data początkowa\n'" + String(o_date2) + "'");
  }
  */
  // 2. calc day interval

  var date_diff = o_date2 - o_date1-3600000;
  if(date_diff<0)date_diff=0;
  var day_diff = Math.floor(date_diff / 1000 / 86400);
  day_diff += 1; // add one day - count days including the specified days
  if (day_diff < 0)
    day_diff = 0;
  // 2a. update day_diff INPUT hidden form element
  var o_ddiff = getIFrameDocument('plywak').forms[0].elements['day_diff'];
  if (o_ddiff) {
    o_ddiff.value = day_diff;
  }
  // 3. update prices
  var elemlen = getIFrameDocument('plywak').forms[0].elements.length;
  for (var i=0; i<elemlen; ++i) {
    var o_el = getIFrameDocument('plywak').forms[0].elements[i];
    var n_el = String(o_el.name);
    if (n_el.indexOf('sam_id') != -1) {
      var no = n_el.substr(6) + '';
      no = parseInt(no);
      var o_priceeur  = getIFrameDocument('plywak').forms[0].elements['priceeur'  + no];
      var o_priceeurl = getIFrameDocument('plywak').forms[0].elements['priceeurl' + no];
      var o_priceeurll= getIFrameDocument('plywak').forms[0].elements['priceeurll' + no];
      var o_pricepln  = getIFrameDocument('plywak').forms[0].elements['pricepln'  + no];
      var o_priceplnl = getIFrameDocument('plywak').forms[0].elements['priceplnl' + no];
      var o_priceplnll= getIFrameDocument('plywak').forms[0].elements['priceplnll' + no];
      var o_priceusd  = getIFrameDocument('plywak').forms[0].elements['priceusd'  + no];
      var o_priceusdl = getIFrameDocument('plywak').forms[0].elements['priceusdl' + no];
      var o_priceusdll= getIFrameDocument('plywak').forms[0].elements['priceusdll' + no];      
      var o_suma      = getIFrameDocument('plywak').forms[0].elements['suma'      + no];
      var o_ramkan    = getIFrameDocument('plywak').getElementById('n'+no).style;
      var o_ramkal    = getIFrameDocument('plywak').getElementById('l'+no).style;
      var o_ramkall   = getIFrameDocument('plywak').getElementById('ll'+no).style;
      
      o_ramkan.background='';
      o_ramkal.background='';
      o_ramkall.background='';
      o_ramkan.color='';
      o_ramkal.color='';
      o_ramkall.color='';
      if (o_priceeur && o_priceeurl) {
        var price = parseFloat(o_priceeur.value);
        var stylik = o_ramkan;
        if (day_diff > 7)
        {
          price = parseFloat(o_priceeurl.value);
          stylik = o_ramkal;
        }
        if (day_diff > 14)
        {
          price = parseFloat(o_priceeurll.value);
          stylik = o_ramkall;
        }
        suma = parseCena(price * day_diff);
      } else if (o_pricepln && o_priceplnl) {
        var price = parseFloat(o_pricepln.value);
        var stylik = o_ramkan;
        if (day_diff > 7)
        {  
           price = parseFloat(o_priceplnl.value);
          stylik = o_ramkal;
        }
        if (day_diff > 14)
        {  price = parseFloat(o_priceplnll.value);
          stylik = o_ramkall;
        }
        suma = parseCena(price * day_diff);
        stylik.background="#4AA9E9";
		stylik.fontWeight='bold';
        stylik.color = 'white';
      } else if (o_priceusd && o_priceusdl) {
        var price = parseFloat(o_priceusd.value);
        var stylik = o_ramkan;
        if (day_diff > 7)
        {  
           price = parseFloat(o_priceusdl.value);
          stylik = o_ramkal;
        }
        if (day_diff > 14)
        {  price = parseFloat(o_priceusdll.value);
          stylik = o_ramkall;
        }
        suma = parseCena(price * day_diff);
        stylik.background="#4AA9E9";
		stylik.fontWeight='bold';
        stylik.color = 'white';
      }

      if (o_conf.value == 'pl')
         o_suma.value = suma + ' zł';
      else
         o_suma.value = suma + ' EUR';
      if (o_conf.value == 'us')
         o_suma.value = suma + ' USD';                  
    }
  }
}

// substytut sprintf("%.2f", val)
function parseCena(val)
{
  var s_val = String(Math.round(val * 100));

  if (s_val.length < 3)
    s_val = '0' + s_val;
  if (s_val.length < 3)
    s_val = '0' + s_val;

  var c_val = s_val.substr(s_val.length - 2); 
  var t_val = s_val.substr(0, s_val.length - 2);
  
  if (parseInt(c_val) > 0)
    t_val += '.' + c_val;

  return t_val;
}

// check if all the necessary values are not blank
// book_submit() called from zam.php
function book_submit(myform)
{
  var o_name = myform.elements['personal_name'];
  var o_adr1 = myform.elements['address1'];
  var o_adr2 = myform.elements['address2'];
  var o_tel  = myform.elements['tel'];
  var o_fax  = myform.elements['fax'];
  var o_email= myform.elements['email'];
  var o_conf = myform.elements['conf'];
  var o_rent_inne = myform.elements['rent_city_inne'];
  var o_rent_inne_b = myform.elements['rent_city_inne_b'];
  
  if (!o_name) {
    alert('Script error: personal_name field not found');
    return false;
  }
  var address = String(o_adr1.value) + String(o_adr2.value);
  if (o_name.value == '' || o_email == '' || o_tel.value == '') {
    {
      if (o_conf.value=='en' || o_conf.value == 'us')
        alert('Please fill in a form\n(name, address, phone no.)');
      else
        alert('Proszę wypełnić pola formularza\n(imię i nazwisko, adres, telefon)');
    }
    return false;
  }
  
  // check no. of days selected
  var o_ddiff = myform.elements['day_diff'];
  if (parseInt(o_ddiff.value) <= 0)
  {
    if (o_conf.value=='en' || o_conf.value == 'us')
      alert("Error: Wrong date bounds selected");
    else
      alert("Błąd: Wybrano nieprawidłową datę - koniec wcześniej od początku");
    return false;
  }

  // check if begin date is in the past
  var o_dd1 = myform.elements['dd1']; // hidden values
  var o_mm1 = myform.elements['mm1'];
  var o_yy1 = myform.elements['yy1'];
  var o_hh1 = myform.elements['hh1'];
  var o_mi1 = myform.elements['mi1'];
  var v_dd1 = o_dd1.value;
  var v_mm1 = o_mm1.value;
  var v_yy1 = o_yy1.value;
  var v_hh1 = o_hh1.value;
  var v_mi1 = o_mi1.value;
  
  var o_dd2 = myform.elements['dd2']; // hidden values
  var o_mm2 = myform.elements['mm2'];
  var o_yy2 = myform.elements['yy2'];
  var o_hh2 = myform.elements['hh2'];
  var o_mi2 = myform.elements['mi2'];
  var v_dd2 = o_dd2.value;
  var v_mm2 = o_mm2.value;
  var v_yy2 = o_yy2.value;
  var v_hh2 = o_hh2.value;
  var v_mi2 = o_mi2.value;
  
  
  var o_date1 = new Date(v_yy1, v_mm1 - 1, v_dd1,v_hh1,v_mi1,0);
  var o_date2 = new Date(v_yy2, v_mm2 - 1, v_dd2,v_hh2,v_mi2,0);
  var o_timecur = new Date();
  //var o_datecur = new Date(o_timecur.getFullYear(), o_timecur.getMonth(), o_timecur.getDate(), o_timecur.getHours(), o_timecur.getMinutes(), o_timecur.getSeconds());
  var o_datecur = new Date(o_timecur.getTime()+(o_timecur.getTimezoneOffset()+60)*60000);

  
  if (o_date1.getTime() < o_datecur.getTime()) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: begin date selected in the past\n'" + String(o_date1) + "'");
    else
      alert("Błąd: data początkowa wybrana z przeszłości\n'" + String(o_date1) + "'");
  }

  if (o_date2.getTime() < o_date1.getTime()) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: end date is earlier than begin date\n'" + String(o_date2) + "'");
    else
      alert("Błąd: data końcowa jest wcześniejsza niż data początkowa\n'" + String(o_date2) + "'");
  }

  myform.submit();
  return true;
}


// called from the main Price/Offer window before calling zam.php
function book_presubmit(myform,num)
{
  var o_conf = myform.elements['conf'];

  // check no. of days selected
  var o_ddiff = myform.elements['day_diff'];
  if (parseInt(o_ddiff.value) <= 0)
  {
    if (o_conf.value=='en' || o_conf.value == 'us')
      alert("Error: Wrong date bounds selected");
    else
      alert("Błąd: Wybrano nieprawidłową datę - koniec wcześniej od początku");
    return false;
  }

  // check if begin date is in the past
  var o_dd1 = myform.elements['dd1'];
  var o_mm1 = myform.elements['mm1'];
  var o_yy1 = myform.elements['yy1'];
  var o_hh1 = myform.elements['hh1'];
  var o_mi1 = myform.elements['mi1'];
  var v_dd1 = o_dd1.value;
  var v_mm1 = o_mm1.value;
  var v_yy1 = o_yy1.value;
  var v_hh1 = o_hh1.value;
  var v_mi1 = o_mi1.value;
  

  var o_dd2 = myform.elements['dd2'];
  var o_mm2 = myform.elements['mm2'];
  var o_yy2 = myform.elements['yy2'];
  var o_hh2 = myform.elements['hh2'];
  var o_mi2 = myform.elements['mi2'];
  var v_dd2 = o_dd2.value;
  var v_mm2 = o_mm2.value;
  var v_yy2 = o_yy2.value;
  var v_hh2 = o_hh2.value;
  var v_mi2 = o_mi2.value;  
  //alert (v_dd1+v_mm1+v_yy1);
  var o_date1 = new Date(v_yy1, v_mm1 - 1, v_dd1,v_hh1,v_mi1,0);
  var o_date2 = new Date(v_yy2, v_mm2 - 1, v_dd2,v_hh2,v_mi2,0);
  var o_timecur = new Date();
  //var o_datecur = new Date(o_timecur.getFullYear(), o_timecur.getMonth(), o_timecur.getDate(), o_timecur.getHours(), o_timecur.getMinutes(), o_timecur.getSeconds());
  var o_datecur = new Date(o_timecur.getTime()+(o_timecur.getTimezoneOffset()+60)*60000);

  
  if (o_date1.getTime() < o_datecur.getTime()) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: begin date selected in the past\n'" + String(o_date1) + "'");
    else
      alert("Błąd: data początkowa wybrana z przeszłości\n'" + String(o_date1) + "'");
    return false;
  }
  if (o_date2.getTime() < o_date1.getTime()) {
    if (o_conf.value == 'en' || o_conf.value == 'us')
      alert("Error: end date is earlier than begin date\n'" + String(o_date2) + "'");
    else
      alert("Błąd: data końcowa jest wcześniejsza niż data początkowa\n'" + String(o_date2) + "'");
    return false;
  }

  //window.open('', 'Okienko', 'height=600,width=420,scrollbars=1,status=0,directories=0,resizable=0,toolbar=0,menubar=0');
  
  
  var linkurl = buildQueryString('samochody',num);
  //alert('zam.php'+linkurl);
  startLyteFrame('','zam.php'+linkurl+'&book'+num+'=true');
  return false;
}
   

