var timer,posunuti=5,offsetStart,offsetCil,cisloVozidla=0,cisloPosadky=1,uri;

function getElement(id){
  return document.getElementById(id);
}

function getLeft(element){
  var left=0;
  if(element.offsetParent){
    while(1)
    {
      left+=element.offsetLeft;
      if(!element.offsetParent){break;}
      element=element.offsetParent;
    }
  }
  else if(element.x){
    left+=element.x;
  }
  return left;
}

function getBrowserVs(){
  if(navigator.appName=="Microsoft Internet Explorer"){     
    reg=new RegExp("MSIE [0-9]\.[0-9]");
    navigatorVerze=String(navigator.appVersion.match(reg));
    navigatorVerze=navigatorVerze.substring(5);
    navigatorVerze=parseInt(navigatorVerze);
    if(navigatorVerze<=6){return "ie6";}
    else{return "ie7";}
  }
  else{return "gecko";}
}

function getWindowLeft(){
  switch(getBrowserVs()){
    case "ie6": var left=document.body.scrollLeft;
    break;
    case "ie7": var left=document.documentElement.scrollLeft;
    break;
    default: var left=window.pageXOffset;
  }
  return left;
}

function posun(element){
  offsetStart=getWindowLeft();
  offsetCil=getLeft(getElement(element.href.substring(element.href.length-7,element.href.length)));
  if(offsetCil>offsetStart){timer=setTimeout("posunVpravo()",10);}
  else if(offsetCil<offsetStart){timer=setTimeout("posunVlevo()",10);}
  uri=element.href;
  return false;
}

function posunVlevo(){
  clearTimeout(timer);
  var dilek=posunuti/5;
  posunuti=posunuti+dilek;
  var prah=offsetStart-offsetCil;
  if(posunuti>=prah){
    dilek-=(posunuti-prah);
    window.scrollBy(-dilek,0);  
    posunuti=5;
    location.assign(uri);
    return;
  }
  else{
    window.scrollBy(-dilek,0);
    timer=setTimeout("posunVlevo()",10);
  }
}

function posunVpravo(){
  clearTimeout(timer);
  var dilek=posunuti/5;
  posunuti=posunuti+dilek;
  var prah=offsetCil-offsetStart;
  if(posunuti>=prah){
    dilek-=(posunuti-prah);
    window.scrollBy(dilek,0);  
    posunuti=5;
    location.assign(uri);
    return;
  }
  else{
    window.scrollBy(dilek,0);
    timer=setTimeout("posunVpravo()",10);
  }
}

function pridejRadek(box){
  var element=getElement(box);
  var radek=document.createElement("p");
      element.appendChild(radek);
  switch(box){
    case "posadkaRadky":
      var cislo=document.createElement("span");
      var input=document.createElement("input");
      var zavri=document.createElement("a");
      radek.appendChild(cislo);
      radek.appendChild(input);
      radek.appendChild(zavri);
      
      cislo.innerHTML=(++cisloPosadky)+" &nbsp;";
      input.setAttribute("name","jmeno"+cisloPosadky);
      input.setAttribute("id","jmeno"+cisloPosadky);
      zavri.setAttribute("href","javascript:");
      zavri.innerHTML="×";
      zavri.style.fontWeight="bold";
      zavri.style.fontSize="1.5em";
      zavri.onclick=function (){element.removeChild(radek);}
      input.focus();
      break;
    case "vozidlaRadky":
      var typ=document.createElement("input");
      var rv=document.createElement("input");
      var zeme=document.createElement("input");
      var spz=document.createElement("input");
      var mezera1=document.createElement("span");
      var mezera2=document.createElement("span");
      var mezera3=document.createElement("span");
      var zavri=document.createElement("a");
      radek.appendChild(typ);
      radek.appendChild(mezera1);
      radek.appendChild(rv);
      radek.appendChild(mezera2);
      radek.appendChild(zeme);
      radek.appendChild(mezera3);
      radek.appendChild(spz);
      radek.appendChild(zavri);
      
      mezera1.innerHTML="&nbsp;";
      mezera2.innerHTML="&nbsp;";
      mezera3.innerHTML="&nbsp;";
      typ.setAttribute("name","typ"+(++cisloVozidla));
      typ.setAttribute("id","typ"+cisloVozidla);
      rv.setAttribute("name","rv"+cisloVozidla);
      rv.setAttribute("id","rv"+cisloVozidla);
      zeme.setAttribute("name","zeme"+cisloVozidla);
      zeme.setAttribute("id","zeme"+cisloVozidla);
      spz.setAttribute("name","spz"+cisloVozidla);
      spz.setAttribute("id","spz"+cisloVozidla);
      zavri.setAttribute("href","javascript:");
      zavri.innerHTML="×";
      zavri.style.fontWeight="bold";
      zavri.style.fontSize="1.5em";
      zavri.onclick=function (){element.removeChild(radek);}
      typ.focus();
      break;
  }
}

function vyberUbytovani(element){
  getElement("historickyVuz").style.textDecoration="line-through";
  getElement("civil").style.textDecoration="line-through";
  getElement("dobovy").style.textDecoration="line-through";
  getElement("vlastni").style.textDecoration="line-through";
  element.style.textDecoration="none";
  getElement("ubytovani").value=element.id;
}

function vyberBezVozidla(){
  var element=getElement("bezVozidla");
  var vozidla=getElement("vozidla");
  var posadka=getElement("posadka");
  if(element.checked==true){
    vozidla.style.display="none";
    posadka.style.display="none";
  }
  else{
    vozidla.style.display="block";
    posadka.style.display="block";
  }
}

//nastavené regulérní výrazy
var regMail=new RegExp("^([a-zA-Z]){1}([a-zA-Z0-9\_\.\-])*[@]{1}([a-zA-Z]){1}([a-z][a-zA-Z0-9\_\.\-]*)([\.]{1}[a-zA-Z]{2,3})$");
var regText=new RegExp(".+");
var regTelefon=new RegExp("^[\+]{1}420[\.]?[0-9\-]{5,}$");
var regDatum=new RegExp("^[1-2]{1}[0-9]{3}\-((0[1-9]{1})|(1[0-2]{1}))\-((0[1-9]{1})|([1-2][0-9]{1})|(3[0-1]{1}))$");
var regYTube=new RegExp("^http://www[\.]youtube[\.]com/watch[\?]v=.+$");
var regUrl=new RegExp("^http://.+");
var regSignatura=new RegExp("^[\-]{1}[^\-]+[\-]{1}$")
var regLogin=new RegExp("^[a-zA-Z0-9]{5,}$");
var regHeslo=new RegExp("^[a-zA-Z0-9]{5,}$");
var regCislo=new RegExp("^[0-9]+$")

function zkontrolujForm(){
  var hlaska="";
  var form=getElement("registraceForm");
  var jmeno=form.jmeno.value;
  var prijmeni=form.prijmeni.value;
  var adresa=form.adresa.value;
  var mesto=form.mesto.value;
  var psc=form.psc.value;
  var zeme=form.zeme.value;
  var email=form.email.value;
  var web=form.web.value;
  var telefon=form.telefon.value;
  var ubytovani=form.ubytovani.value;
  switch(ubytovani){
    case "historickyVuz": ubytovani="historický vůz";
      break;
    case "civil": ubytovani="stan civilní";
      break;
    case "dobovy": ubytovani="stan dobový";
      break;
    case "vlastni": ubytovani="vlastní";
  }
  var magnetka=form.magnetka.value;
  var i=0;
  var vozidla=new Array();
  while(i<50 || getElement("typ"+i)){
    if(!getElement("typ"+i)){i++;continue;}
    vozidla[i]=new Array();
    vozidla[i][0]=getElement("typ"+i).value;
    vozidla[i][1]=getElement("rv"+i).value;
    vozidla[i][2]=getElement("zeme"+i).value;
    vozidla[i][3]=getElement("spz"+i).value;
    i++;
  }
  i=0;
  var posadka=new Array();
  while(i<50 || getElement("jmeno"+(i+1))){
    if(!getElement("jmeno"+(i+1))){i++;continue;}
    posadka[i]=getElement("jmeno"+(++i)).value;
  }  
  
  if(!regText.test(jmeno)){hlaska+="- není vyplněno jméno\n";}
  if(!regText.test(prijmeni)){hlaska+="- není vyplněno příjmení\n";}
  if(!regText.test(adresa)){hlaska+="- není vyplněna adresa\n";}
  if(!regText.test(mesto)){hlaska+="- není vyplněno město\n";}
  if(!regCislo.test(psc)){hlaska+="- PSČ má neplatný tvar\n";}
  if(!regText.test(zeme)){hlaska+="- není vyplněna země\n";}
  if(!regMail.test(email)){hlaska+="- e-mail má neplatný tvar\n";}
  if(!regTelefon.test(telefon) && telefon!="" && telefon!="+420."){hlaska+="- telefon má neplatný tvar\n";}
  else if(telefon=="+420."){telefon="";}
  if(!regText.test(ubytovani)){hlaska+="- není vyplněn druh ubytování\n";}
  if(getElement("bezVozidla").checked==false){
    if(!regText.test(vozidla[0][0])){hlaska+="- nejsou vyplněny údaje o vozidle\n";}
    else{
      var vypisVozidel="";
      for(i=0;i<vozidla.length;i++){
        if(!vozidla[i]){continue;}
        vypisVozidel+="vozidlo č."+(i+1)+"\n"+
                      "typ: "+vozidla[i][0]+"\n"+
                      "r.v.: "+vozidla[i][1]+"\n"+
                      "země původu: "+vozidla[i][2]+"\n"+
                      "SPZ: "+vozidla[i][3]+"\n\n";      
      }
    }
    if(!regText.test(posadka[0])){hlaska+="- není vyplněno jméno posádky\n";}
    else{
      var vypisPosadky="";
      for(i=0;i<posadka.length;i++){
        if(!posadka[i]){continue;}
        vypisPosadky+="číslo"+(i+1)+"\n"+
                      "jméno: "+posadka[i]+"\n\n";
      }  
    }
    var vypisVozidelAPosadky="VOZIDLA: \n"+
                              vypisVozidel+
                             "POSÁDKA: \n"+
                             vypisPosadky;
  }
  else{
    var vypisVozidelAPosadky="Registrace je bez vozidla.";
  }
  
  if(hlaska==""){
    return confirm("jméno: "+jmeno+"\n"+
                   "příjmení: "+prijmeni+"\n\n"+
                   "adresa: "+adresa+"\n"+
                   "mesto: "+mesto+"\n"+
                   "země: "+zeme+"\n\n"+
                   "PSČ: "+psc+"\n\n"+
                   "e-mail: "+email+"\n"+
                   "www: "+web+"\n"+
                   "telefon: "+telefon+"\n\n"+
                   "ubytování: "+ubytovani+"\n\n"+
                   "magnetka: "+magnetka+" ks\n\n"+
                   vypisVozidelAPosadky);
  }
  else{
    alert(hlaska);
    return false;
  }
}
