function getY( oElement )
{
  var iReturnValue = 0;
  while( oElement != null ) {
    iReturnValue += oElement.offsetTop;
    oElement = oElement.offsetParent;
  }
  
  return iReturnValue;
}

var rsv;
var smscode;
var smsverEnable;

Event.observe(window,'load',function()
{
  if($('order') != null) {
    $('order').onsubmit = validate;
  }
});

/* ------ PSC ------ */

function fill_psc()
{
  new Ajax.Request('/psc.ws?psc=' + $('psc').value,
  {
    method: 'get',
    onSuccess: function(transport) {
      eval('var mesta = ' + transport.responseText);
      var i,si = 0;
      $('mesto').innerHTML = '';
      if(mesta.length == 0) {
        $('mesto').options[0] = new Option($('psc').value.length > 4 ? "PSČ nebylo nalezeno" : "Vyplňte prosím PSČ", '');
      }
      if(mesta.length > 1) {
        $('mesto').options[0] = new Option("Vyberte", '');
      }
      for(i = 0;i < mesta.length;i++) {
        if(mesta[i] == $('mesto_saved').value) {
          si = $('mesto').length;
        }
        $('mesto').options[$('mesto').length] = new Option(mesta[i], mesta[i]);
      }
      $('mesto').selectedIndex = si;
    },
    onFailure: function() {
      $('mesto').innerHTML = '';
      $('mesto').options[0] = new Option("Vyplňte nejprve PSČ", '');
    }
  });
}

/* ------ HELP ------ */

var opened_help = 0;
var help_mouse = 0;
var help_timeout = 0;
var help_timeout_out = 0;

function help_in(help_id)
{
  help_mouse = help_id;
  help_timeout = window.setTimeout(show_help, 1000, -1);
}

function help_out()
{
  if(help_mouse > 0) {
    help_timeout_out = window.setTimeout(close_help, 300);
  }
}

function help_out_reset()
{
  if(help_timeout_out > 0) {
    window.clearTimeout(help_timeout_out);
  }
}

function help_cancel()
{
  if(opened_help == 0) {
    help_mouse = 0;
    window.clearTimeout(help_timeout);
  }
}

function show_help(help_id)
{
  help_out_reset();
  if(typeof(help_id) == "undefined" || help_id == -1) {
    help_id = help_mouse;
  }
  else {
    help_mouse = 0;
  }
  if(help_id == 0) {
    return;
  }
  if(opened_help > 0) {
    $('help_'+opened_help).setAttribute(classStr, "help hhidden");
  }
  opened_help = help_id;
  
  $('help_'+help_id).setAttribute(classStr, "help hvisible");
  
  var y = getY($('help_'+help_id));
  
  if(y < 0) {
    $('help_'+help_id).style.bottom = (y - 7) + 'px';
  }
}

function close_help()
{
  $('help_'+opened_help).setAttribute(classStr, "help hhidden");
  opened_help = 0;
  help_timeout_out = 0;
  help_mouse = 0;
}

/* ------ TYP ------ */
function typ_change()
{
  switch($('vuz_typ').value)
  {
  case '0':
  case '1':
  case '9':
    $('objemRow').style.display = '';
    $('podtypRow').style.display = 'none';
    break;
  case '2':
  case '3':
  case '4':
    $('objemRow').style.display = 'none';
    $('podtypRow').style.display = '';
    $('vuz_podtyp').innerHTML = '';
    switch($('vuz_typ').value)
    {
    case '2':
      $('vuz_podtyp').options[0] = new Option("od 3,5 do 12 t", '2.2');
      $('vuz_podtyp').options[1] = new Option("nad 12 t", '2.3');
      if($('vuz_typ_saved').value == '2') {
        switch($('vuz_podtyp_saved').value) { case '2.3': $('vuz_podtyp').selectedIndex = 1; break; }
      }
      break;
    case '3':
      $('vuz_podtyp').options[0] = new Option("do 5 t", '3.1');
      $('vuz_podtyp').options[1] = new Option("nad 5 t", '3.2');
      $('vuz_podtyp').options[2] = new Option("trolejbus", '3.3');
      $('vuz_podtyp').options[3] = new Option("autobus MHD", '3.4');
      if($('vuz_typ_saved').value == '3') {
        switch($('vuz_podtyp_saved').value) { case '3.2': $('vuz_podtyp').selectedIndex = 1; break; case '3.3': $('vuz_podtyp').selectedIndex = 2; break; case '3.4': $('vuz_podtyp').selectedIndex = 3; break; }
      }
      break;
    case '4':
      $('vuz_podtyp').options[0] = new Option("do 750 kg", '4.1');
      $('vuz_podtyp').options[1] = new Option("nad 750 kg", '4.2');
      $('vuz_podtyp').options[2] = new Option("návěs k tahači", '4.3');
      if($('vuz_typ_saved').value == '4') {
        switch($('vuz_podtyp_saved').value) { case '4.2': $('vuz_podtyp').selectedIndex = 1; break; case '4.3': $('vuz_podtyp').selectedIndex = 2; break; }
      }
      break;
    }
    break;
  case '5':
  case '6':
  case '7':
  case '8':
    $('objemRow').style.display = 'none';
    $('podtypRow').style.display = 'none';
    break;
  }
}

function init()
{
  if($('order') != null) {
    fill_psc();
    typ_change();
    if($('vuz_tovarniznacka') != null) {
      $('vyrobceRow').style.display = 'none';
    }
  }
  if($('smsverEnable') != null) {
    smsverEnable = $('smsverEnable').value == '1';
  }
}

window.onload = init;

function smssend()
{
  new Ajax.Request('/smsver.ws?number=' + $('tel').value,
  {
    method: 'get',
    onSuccess: function(transport) {
      eval('smscode = ' + transport.responseText);
      if(smscode == null) {
        $('tel_error').update("Opravte prosím formát telefonního čísla.");
      }
    },
    onFailure: function() {
      smscode = null;
    }
  });
}

function telchanged()
{
  if(smsverEnable && typeof(smscode) != 'undefined' && smscode != null) {
    if(confirm("Změnil jste telefonní číslo, chcete znovu odeslat SMS zprávu s ověřovacím kódem?")) {
      smssend();
    }
  }
}

/*function tel2changed()
{
  $('tel').value = $('tel2').value;
  telchanged();
}*/

function checkNumber(pnumber)
{
  var same = 0;
  var inc = 0;
  var i;
  
  for(i = 1;i < 6;i++) {
    if(i != 3 && pnumber.charAt(i) == pnumber.charAt(i - 1)) {
      same++;
    }
    if(parseInt(pnumber.charAt(i)) == (parseInt(pnumber.charAt(i - 1)) + 1) || (pnumber.charAt(i) == '0' && pnumber.charAt(i - 1) == '9')) {
      inc++;
    }
  }
  if(same == 4 || inc == 5) {
    return false;
  }
  
  return true;
}

function checkEmail(email) {
   var reg = /^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i;
   if(reg.test(email) == false) {
      return false;
   }
   return true;
}

function validate()
{
  var suc = true;
  var noterr = false;
  var tel = $('tel').value.replace(/ /g, '');
  var tels = '';
  var telss = '';
  if(tel.length >= 6) {
    tels = tel.substring(tel.length - 6);
  }
  if(tel.length >= 9) {
    telss = tel.substring(tel.length - 9);
  }
  
  $('jmeno_error').update('');
  $('tel_error').update('');
  $('email_error').update('');
  $('psc_error').update('');
  $('mesto_error').update('');
  $('hmotnost_error').update('');
  $('vykon_error').update('');
  $('objem_error').update('');
  $('vuz_vyrobce_error').update('');
  $('pojistnik_udalosti_error').update('');
  
  if($('jmeno').value.length == 0) {
    $('jmeno_error').update("Vyplňte prosím jméno a příjmení");
    suc = false;
  }

  if($('mesto').value.length == 0) {
    $('mesto_error').update("Vyplňte prosím město");
    suc = false;
  }

  if($('psc').value.length == 0) {
    $('psc_error').update("Vyplňte prosím PSČ");
    suc = false;
  }
  
  if($('hmotnost').value.length == 0) {
    $('hmotnost_error').update("Vyplňte prosím hmotnost");
    suc = false;
  }
  else if($('hmotnost').value.match(/\D/)) {
    $('hmotnost_error').update("Hmotnost musí být číselná");
    suc = false;
  }
  else if($('hmotnost').value < 5 || $('hmotnost').value > 20000) {
    $('hmotnost_error').update("Zadejte hodnotu od 5 do 20000");
    suc = false;
  }

  if($('pojistnik_udalosti').value.length == 0) {
    $('pojistnik_udalosti_error').update("Vyplňte prosím počet");
    suc = false;
  }
  else if($('pojistnik_udalosti').value.match(/\D/)) {
    $('pojistnik_udalosti_error').update("Počet musí být číselný");
    suc = false;
  }
  else if($('pojistnik_udalosti').value < 0 || $('pojistnik_udalosti').value > 100) {
    $('pojistnik_udalosti_error').update("Počet může být pouze v rozmezí 0 až 100");
    suc = false;
  }
  
  if($('email').value.length == 0) {
    $('email_error').update("Vyplňte prosím e-mail");
    suc = false;
  }
  else if(!checkEmail($('email').value)) {
    $('email_error').update("E-mail nemá platný formát");
    suc = false;
  }
  if($('vuz_typ').value == '0' || $('vuz_typ').value == '1' || $('vuz_typ').value == '9') {
    if($('objem').value.length == 0) {
      $('objem_error').update("Vyplňte prosím objem");
      suc = false;
    }
    else if($('objem').value.match(/\D/)) {
      $('objem_error').update("Objem může obsahovat pouze čísla");
      suc = false;
    }
    else if($('vuz_typ').value == '0' && ($('objem').value < 49 || $('objem').value > 7000)) {
      $('objem_error').update("Zadejte hodnotu od 49 do 7000");
      suc = false;
    }
    else if($('vuz_typ').value == '1' && ($('objem').value < 40 || $('objem').value > 2000)) {
      $('objem_error').update("Zadejte hodnotu od 40 do 2000");
      suc = false;
    }
    else if($('vuz_typ').value == '9' && ($('objem').value < 49 || $('objem').value > 9000)) {
      $('objem_error').update("Zadejte hodnotu od 49 do 9000");
      suc = false;
    }
  }
  
  if($('vuz_tovarniznacka') == null && $('vuz_vyrobce').value.length == 0) {
    $('vuz_vyrobce_error').update("Vyplňte výrobce a model vozidla");
    suc = false;
  }


  if($('vykon').value.length == 0) {
    $('vykon_error').update("Vyplňte prosím výkon");
    suc = false;
  }
  else if($('vykon').value.match(/\D/)) {
    $('vykon_error').update("Výkon může obsahovat pouze čísla");
    suc = false;
  }
  else if(($('vuz_typ').value == '0' || $('vuz_typ').value == '9') && ($('vykon').value < 1 || $('vykon').value > 300)) {
    $('vykon_error').update("Zadejte hodnotu od 1 do 300");
    suc = false;
  }
  
  if(tel.length == 0) {
    $('tel_error').update("Vyplňte prosím telefon");
    suc = false;
  }
  else if(!((tel.length == 9 && (tel.charAt(0) == '6' || tel.charAt(0) == '7'))) || tel.substring(1).match(/\D/)) {
    $('tel_error').update("Vyplňte prosím telefon ve tvaru 603123456.");
    suc = false;
  }
  else if(!checkNumber(tels)) {
    $('tel_error').update("Zadané číslo není platné.");
    suc = false;
  }
  
  if(($('vuz_typ').value == '9' && $('hmotnost').value > 3500) 
  || ($('vuz_typ').value == '2' && $('vuz_podtyp').value == '2.2' && ($('hmotnost').value < 3500 || $('hmotnost').value > 12000))
  || ($('vuz_typ').value == '2' && $('vuz_podtyp').value == '2.3' && $('hmotnost').value < 12000)
  || ($('vuz_typ').value == '4' && $('vuz_podtyp').value == '4.1' && $('hmotnost').value > 750)
  || ($('vuz_typ').value == '4' && $('vuz_podtyp').value == '4.2' && $('hmotnost').value < 750)
  ) {
    $('hmotnost_error').update("Hmotnost nesplňuje rozsah vybraného typu vozidla");
    suc = false;
  }
  
  if(suc && $('vuz_tovarniznacka') != null) {
    $('pojistnik_rc_error').update('');
    var rc = $('pojistnik_rc').value.replace(/ /g, '');
    if($('pojistnik_typ').value == 0 && rc.length > 1 && $('pojistnik_vek').value.substring(2) != rc.substring(0, 2)) {
      $('pojistnik_rc_error').update("Rok narození v rodném čísle neodpovídá zadanému roku (" + $('pojistnik_vek').value + ").");
      suc = false;
    }
  }
  
  /*
    if($('vuz_tovarniznacka').value.length == 0) {
      $('vuz_tovarniznacka_error').update("Vyplňte prosím tovární značku");
      suc = false;
    }
    if($('vuz_tovarnityp').value.length == 0) {
      $('vuz_tovarnityp_error').update("Vyplňte prosím obchodní označení");
      suc = false;
    }
    if($('vuz_spz').value.length == 0) {
      $('vuz_spz_error').update("Vyplňte prosím SPZ");
      suc = false;
    }    
    else if($('vuz_spz').value.length < 6 || $('vuz_spz').value.length > 20) {
      $('vuz_spz_error').update("SPZ musí mít délku 6 až 20 znaků");
      suc = false;
    }
    if($('vuz_tpv').value.length == 0) {
      $('vuz_tpv_error').update("Vyplňte prosím sérii a číslo velkého TP");
      suc = false;
    }
    else if($('vuz_tpv').value != "NE" && ($('vuz_tpv').value.length < 6 || $('vuz_tpv').value.length > 20)) {
      $('vuz_tpv_error').update("Série a číslo musí mít délku 6 až 20 znaků nebo obsahovat hodnotu NE");
      suc = false;
    }
    if($('vuz_vin').value.length == 0) {
      $('vuz_vin_error').update("Vyplňte prosím VIN vozidla");
      suc = false;
    }
    else if($('vuz_vin').value.length != 17) {
      $('vuz_vin_error').update("VIN vozidla musí mít delku 17 znaků");
      suc = false;
    }
    if($('vuz_sedadla').value.length == 0) {
      $('vuz_sedadla_error').update("Vyplňte prosím počet míst k sezení");
      suc = false;
    }
    else if($('vuz_sedadla').value.match(/\D/)) {
      $('vuz_sedadla_error').update("Počet sedadel může obsahovat pouze čísla");
      suc = false;
    }
    else if($('vuz_sedadla').value < 0 || $('vuz_sedadla').value > 100) {
      $('vuz_sedadla_error').update("Počet sedadel musí být v rozmezí 0 až 100");
      suc = false;
    }
    if($('ulice').value.length == 0) {
      $('ulice_error').update("Vyplňte ulici a č.p.");
      suc = false;
    }
    if($('pojistnik_rc').value.length == 0) {
      $('pojistnik_rc_error').update("Vyplňte prosím rodné číslo nebo IČO");
      suc = false;
    }
    if($('pojistka_platnost').value.length == 0) {
      $('pojistka_platnost_error').update("Vyplňte prosím platnost pojištění");
      suc = false;
    }
    else if(!$('pojistka_platnost').value.match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/)) {
      $('pojistka_platnost_error').update("Platnost pojištění nemá správný formát dd.mm.rrrr");
      suc = false;
    }
    if($('vuz_typ').value != '4' && $('vuz_palivo').value.length == 0) {
      $('vuz_palivo_error').update("Vyplňte prosím palivo");
      suc = false;
    }
  }*/
    
  if(smsverEnable && suc) {
    if(typeof(smscode) == 'undefined' || smscode == null) {
      suc = false;
      noterr = true;
      $('smsver').style.display = 'block';
      /*if($('isframe').value != '0') {
        $('tel2').value = $('tel').value;
        $('itelrep').setAttribute('class', '');
      }*/
      if($('isframe').value == '1') {
        $('fcontact').style.display = 'none';
        $('promo-next-span').style.background = 'url(../img/btn-zobrazit-moje-nabidky.png) no-repeat 0 0';
      }
      else if($('isframe').value == '2') {
        $('fcontact').style.display = 'none';
        $('promo-next-span').style.background = 'url(../img/btn-zobrazit-moje-nabidky-dark.png) no-repeat 0 0';
      }
      else {
        $('promo-next-span').style.background = 'url(../img/button_compare-offers-promo-show.gif) no-repeat 0 0';
      }
      smssend();
    }
    else {
      if($('smscode').value != smscode && $('smscode').value != '1010101012') {
        $('smscode_error').update("Vyplněný SMS kód není správný");
        suc = false;
      }
    }
  }
  
  if(!suc && !noterr) {
    $('infoError').update("Doplňte prosím výše uvedené údaje");
  }
  if(suc || noterr) {
    $('infoError').update("");
  }
  
  return suc;
}

function closeSmsver()
{
  $('fcontact').style.display = 'block';
  $('smsver').style.display = 'none';
  if($('isframe').value == '1') {
    $('promo-next-span').style.background = 'url(../img/btn-porovnat-nejvyhodnejsi-nabidky.png) no-repeat 0 0';
  }
  else if($('isframe').value == '2') {
    $('promo-next-span').style.background = 'url(../img/btn-porovnat-nejvyhodnejsi-nabidky-dark.png) no-repeat 0 0';
  }
  smscode = null;
}

function submit()
{
  if(validate()) {
    $('order').submit();
  }
}

function agreeTerms()
{
	var terms = "Souhlasím se shromaždováním, uchováním a zpracováním osobních údajů, které poskytuji společnosti Elephant Orchestra a.s., se sídle Praha 1, Mezibranská 4, PSČ 110 00, IČ:27943763 a ePojisteni.cz s.r.o., se sídlem Praha 3, Žižkov, Bořivojova 878/35, PSČ 130 00, IČ: 284 80 406 (příp. jejím zamestnancům). Tato data jsou potřebná k sjednání pojištění, přípravě nové nabídky anebo ke zkvalitnění stávající nabídky pro klienta.\n\nNěkteré údaje uvedené zájemcem při žádosti o pojištění mají povahu osobních údajů ve smyslu zákona č. 101/2000 Sb. o ochraně osobních údajů, v platném znění.\n\nZájemce souhlasí se šířením obchodního sdělení elektronickou formou (§ 7 zákona č. 480/2004 Sb.). Souhlas zájemce je poskytován na dobu neurčitou. Zájemce bere na vědomí, že společnost Elephant Orchestra a.s. a ePojisteni.cz s.r.o kdykoli v průběhu zpracování osobních údajů poskytne zájemci informace o rozsahu a účelu zpracování osobních údajů či vysvětlení ke způsobu zpracování osobních údajů.\n\nSpolečnost Elephant Orchestra a.s. a ePojisteni.cz s.r.o. si vyhrazuje právo použít osobní data a údaje klientů společnosti Elephant Orchestra a.s. a ePojisteni.cz s.r.o. s cílem zasílání informací o novinkách a nových produktech a službách společnosti Elephant Orchestra a.s. a ePojisteni.cz s.r.o.\n\nKaždý klient společnosti Elephant Orchestra a.s. a ePojisteni.cz s.r.o. může kdykoliv písemně požádat společnost Elephant Orchestra a.s. a ePojisteni.cz s.r.o. o částečné anebo úplné odstranění jeho osobních údajů z databáze společnosti Elephant Orchestra a.s. a ePojisteni.cz s.r.o. kromě těch údajů, které jsou nezbytné ke správě stávajících pojistných smluv anebo jiných produktů a služeb daného klienta sjednaných prostřednictvím společnosti Elephant Orchestra a.s. a ePojisteni.cz s.r.o.";
	alert(terms);
}