var mailOK = false;
var projectOK = false;
var passOK = false;
var boxOK = false;
var T_SPATNY_MAIL;
var T_SPATNE_PROJEKT;
var T_HESLA_SPATNE;
var T_HESLA_NEJSOU;
var T_AKCEPTOVANI_PODMINEK; 
var T_NENI_NAZEV;
var T_NENI_JMENO;
var T_NENI_PRIJMENI;
var T_NENI_LOGIN;
var T_NENI_INSTITUCE;
var T_NENI_ULICE;
var T_NENI_MESTO;
var T_NENI_PSC;
var T_NENI_IC;
var T_NENI_DIC;
var T_UVOZOVKY_NAZEV,T_UVOZOVKY_JMENO,T_UVOZOVKY_PRIJMENI,T_UVOZOVKY_LOGIN,T_UVOZOVKY_INSTITUCE,T_UVOZOVKY_ULICE,T_UVOZOVKY_MESTO,T_UVOZOVKY_PSC,T_UVOZOVKY_IC,T_UVOZOVKY_DIC;


function setLang(language) {
  var lang = language;
  if (language == 'en') {
    T_SPATNY_MAIL = "Enter a valid e-mail!";
    T_SPATNE_PROJEKT = "Enter a valid project name!";
    T_HESLA_SPATNE = "Passwords don't match!";
    T_HESLA_NEJSOU = "Both password and password again collumns must be filled!";
    T_AKCEPTOVANI_PODMINEK = "In order to finish the registration you have to accept the general terms of the Capsa server!"; 
    T_NENI_NAZEV = "Enter a project name!";
    T_NENI_JMENO = "Enter your name!";
    T_NENI_PRIJMENI = "Enter you surname!";
    T_NENI_LOGIN = "Enter a login!";
    T_NENI_INSTITUCE = "Enter institution name!";
    T_NENI_ULICE = "Enter a street!";
    T_NENI_MESTO = "Enter a city!";
    T_NENI_PSC = "Enter a city code!";
    T_NENI_IC = "Enter your ID number!";
    T_NENI_DIC = "Enter your VAT number!";
    
    T_UVOZOVKY_NAZEV = "Project name can't contain quotes!";
    T_UVOZOVKY_JMENO = "Your name can't contain quotes!";
    T_UVOZOVKY_PRIJMENI = "Your surname can't contain quotes!";
    T_UVOZOVKY_LOGIN = "Login can't contain quotes!";
    T_UVOZOVKY_INSTITUCE = "Institution name can't contain quotes!";
    T_UVOZOVKY_ULICE = "Street can't contain quotes!";
    T_UVOZOVKY_MESTO = "City can't contain quotes!";
    T_UVOZOVKY_PSC = "Code can't contain quotes!";
    T_UVOZOVKY_IC = "ID number can't contain quotes!";
    T_UVOZOVKY_DIC = "VAT can't contain quotes!";
  }
  else {
    T_SPATNY_MAIL = "Zadaný e-mail není platný!";
    T_SPATNE_PROJEKT = "Zadaná adresa projektu není platná!";
    T_HESLA_SPATNE = "Zadaná hesla se neshodují!";
    T_HESLA_NEJSOU = "Pro pokračování je nutné vyplnit kolonky heslo i heslo znovu!";
    T_AKCEPTOVANI_PODMINEK = "Pro dokončení registrace je nutné souhlasit se všeobecnými podmínkami server Capsa!"; 
    T_NENI_NAZEV = "Zadejte název projektu!";
    T_NENI_JMENO = "Zadejte jméno";
    T_NENI_PRIJMENI = "Zadejte příjmení!";
    T_NENI_LOGIN = "Zadejte login!";
    T_NENI_INSTITUCE = "Zadejte název instituce!";
    T_NENI_ULICE = "Zadejte ulici!";
    T_NENI_MESTO = "Zadejte město!";
    T_NENI_PSC = "Zadejte PSC";
    T_NENI_IC = "Zadejte IC";
    T_NENI_DIC = "Zadejte DIC";
    
    T_UVOZOVKY_NAZEV = "Název projektu nesmí obsahovat uvozovky!";
    T_UVOZOVKY_JMENO = "Jméno nesmí obsahovat uvozovky!";
    T_UVOZOVKY_PRIJMENI = "Příjmení nesmí obsahovat uvozovky!";
    T_UVOZOVKY_LOGIN = "Login nesmí obsahovat uvozovky!";
    T_UVOZOVKY_INSTITUCE = "Název instituce nesmí obsahovat uvozovky!";
    T_UVOZOVKY_ULICE = "Ulice nesmí obsahovat uvozovky!";
    T_UVOZOVKY_MESTO = "Město nesmí obsahovat uvozovky!";
    T_UVOZOVKY_PSC = "PSČ nesmí obsahovat uvozovky!";
    T_UVOZOVKY_IC = "IČ nesmí obsahovat uvozovky!";
    T_UVOZOVKY_DIC = "DIČ nesmí obsahovat uvozovky!";
  } 
}


function attachRegistrationEvents(lang) {
  setLang(lang);
  var form1 = document.getElementById('form1');
  form1.onsubmit = submitCheck;
  var mailInput = document.getElementById('email');
  mailInput.onchange = checkEmail;
  mailInput.onkeyup = checkEmail;
  var projektInput = document.getElementById('projekt');
  projektInput.onchange = checkProjectAddress;
  projektInput.onkeyup = checkProjectAddress;
  var passInput = document.getElementById('heslo');
  passInput.onkeyup = checkPass;
  var passInput2 = document.getElementById('heslo2');
  passInput2.onchange = checkPass2;
  passInput2.onkeyup = checkPass2;
  var acceptBox = document.getElementById('souhlas');
  acceptBox.onchange = checkAccept;
  var variantaSelect = document.getElementById('tarif');
  variantaSelect.onchange = tarifChange;
  fakturacniUdajeInit();
}

function submitCheck(event) {
  var mailInput = document.getElementById('email');
  var projektInput = document.getElementById('projekt');
  var pass1 = document.getElementById('heslo');
  var pass2 = document.getElementById('heslo2');
  var acceptBox = document.getElementById('souhlas');
  var failed = false;
  var failMessage = 'a';
  var failId = checkRest2();
  
  if (!isProjectAddressOK(projektInput)) {
    failed = true;
    failMessage = T_SPATNE_PROJEKT;
  }
  else if (failId!='x') {
        failed = true;
        switch (failId) {
          case 1: failMessage = T_NENI_JMENO;break;
          case 2: failMessage = T_NENI_PRIJMENI;break;
          case 3: failMessage = T_NENI_LOGIN;break;
          case 4: failMessage = T_NENI_INSTITUCE;break;
          case 5: failMessage = T_NENI_ULICE;break;
          case 6: failMessage = T_NENI_MESTO;break;
          case 7: failMessage = T_NENI_PSC;break;
          case 8: failMessage = T_NENI_IC;break;
          case 9: failMessage = T_NENI_DIC;break;
          case 20: failMessage = T_UVOZOVKY_NAZEV;break;
          case 21: failMessage = T_UVOZOVKY_JMENO;break;
          case 22: failMessage = T_UVOZOVKY_PRIJMENI;break;
          case 23: failMessage = T_UVOZOVKY_LOGIN;break;
          case 24: failMessage = T_UVOZOVKY_INSTITUCE;break;
          case 25: failMessage = T_UVOZOVKY_ULICE;break;
          case 26: failMessage = T_UVOZOVKY_MESTO;break;
          case 27: failMessage = T_UVOZOVKY_PSC;break;
          case 28: failMessage = T_UVOZOVKY_IC;break;
          case 29: failMessage = T_UVOZOVKY_DIC;break;
          case 50: failMessage = T_NENI_NAZEV;break;
      }
  }
  else if (!isMailOK(mailInput)) {
    failed = true;
    failMessage = T_SPATNY_MAIL;
  }
  else if (!isPassOK(pass1,pass2)) {
    failed = true;
    if (pass1.value.length==0 || pass2.value.length==0) {
      failMessage = T_HESLA_NEJSOU;
    }
    else {
      failMessage = T_HESLA_SPATNE;
    }
  }
  else if (!isAccepted(acceptBox)) {
    failed = true;
    failMessage = T_AKCEPTOVANI_PODMINEK;
  }
  
    
	if (failed) {	
	  alert(failMessage);
    return false;
	}
	else {
    return true;		
	}
}

//zkontroluje formularova pole a vrati id spatne vyplneneho
function checkRest2() {
  var ok = true;
  var inputs = new Array();
  var index='x';
  inputs[0] = document.getElementById('nazev');
  inputs[1] = document.getElementById('jmeno');
  inputs[2] = document.getElementById('prijmeni');
  inputs[3] = document.getElementById('login_field');
  
  var tarif = document.getElementById('tarif');
  if (tarif.value > 0) {
    inputs[4] = document.getElementById('instituce');
    inputs[5] = document.getElementById('ulice');
    inputs[6] = document.getElementById('mesto');
    inputs[7] = document.getElementById('psc');
    inputs[8] = document.getElementById('ic');
    inputs[9] = document.getElementById('dic');
  }  
  
  var end = inputs.length;
  
  for (var i = (end-1); i >= 0; i--) {
    if (inputs[i].value.length == 0) {
      index = i;
    }
    else if (inputs[i].value.indexOf("'")!=-1 || inputs[i].value.indexOf('"')!=-1) {
      if (inputs[i].id!='jmeno' || inputs[i].id!='prijmeni') {
        index = (i+20);
      }
    }
  }
  if (index == 0 || index=='') {
    index = 50;
  }
  return index;
}

//zkontroluje formularova pole a vrati id spatne vyplneneho
function checkRest() {
  var ok = true;
  var inputs = new Array();
  inputs[0] = document.getElementById('nazev');
  inputs[1] = document.getElementById('jmeno');
  inputs[2] = document.getElementById('prijmeni');
  inputs[3] = document.getElementById('login_field');
  
  var tarif = document.getElementById('tarif');
  if (tarif.value > 0) {
    inputs[4] = document.getElementById('instituce');
    inputs[5] = document.getElementById('ulice');
    inputs[6] = document.getElementById('mesto');
    inputs[7] = document.getElementById('psc');
    inputs[8] = document.getElementById('ic');
    inputs[9] = document.getElementById('dic');
  }  
  
  var end = inputs.length;
  for (i = end-1; i >= 0; i--) {
    if (inputs[i].value.length == 0) {
      ok = false;
    }
  }
  return ok;
}

function greenBg(element) {
  element.style.background='';//'#33cc66';
}

function redBg(element) {
  element.style.background='#FECBB1';
}

function disableSubmitting() {
  var submit = document.getElementById('submit');
  //submit.disabled=true;
}

function enableSubmitting() {
  if (mailOK && projectOK && passOK && boxOK) {
    var submit = document.getElementById('submit');
    submit.disabled=false;
  }
}

function checkEmail(event) {
  var emailInput = document.getElementById('email');
  if (isMailOK(emailInput)) {
    greenBg(emailInput);
    mailOK=true;
    enableSubmitting();
  }
  else {
    redBg(emailInput);
    mailOK=false;
    disableSubmitting();
  }
}

function isMailOK(input1) {
  var valueStr1 = input1.value;
  if (valueStr1!="") {
    var re1 = /^[a-zA-Z0-9][a-zA-Z0-9\._-]*@[a-zA-Z0-9\._-]+\.[a-zA-Z0-9]{2,4}$/;
    var result1 = valueStr1.match(re1);
    if (result1!=null) {
      return true;
    }
    else {
      return false;
    }
  }
}

function checkProjectAddress(event2) {
  var projectInput = document.getElementById('projekt');
  if (isProjectAddressOK(projectInput)) {
    greenBg(projectInput);
    projectOK=true;
    enableSubmitting();
  } 
  else {
    redBg(projectInput);
    projectOK=false;
    disableSubmitting();
  }
}

function isProjectAddressOK(input2) {
  var valueStr2 = input2.value;
  if (valueStr2!="") {
    var re2 = /^[a-z0-9]+$/;
    var result2 = valueStr2.match(re2);
    if (result2!=null) {
      return true;
    }
    else {
      return false;
    }
  }
}

function checkPass(event3) {
  var pass1 = document.getElementById('heslo');
  var pass2 = document.getElementById('heslo2');
  if (isPassOK(pass1,pass2)) {
    greenBg(pass2);
    passOK=true;
    enableSubmitting();
  }
  else {
    redBg(pass2);
    passOK=false;
    disableSubmitting();
  }
}

function checkPass2(event4) {
  var pass1 = document.getElementById('heslo');
  var pass2 = document.getElementById('heslo2');
  if (isPassOK2(pass1,pass2)) {
    greenBg(pass2);
    passOK=true;
    enableSubmitting();
  }
  else {
    redBg(pass2);
    passOK=false;
    disableSubmitting();
  }
}
  
function isPassOK(heslo1, heslo2) {
  if (heslo1.value.length != 0 && heslo1.value==heslo2.value) {
    return true;
  }
  else {
    return false;
  }
} 

function isPassOK2(heslo1, heslo2) {
  if (heslo1.value==heslo2.value) {
    return true;
  }
  else {
    return false;
  }
}

function checkAccept(event) {
  var chkbox = document.getElementById('souhlas');
  if (isAccepted(chkbox)){
    boxOK = true;
    enableSubmitting();
  }
  else {
    boxOK=false;
    disableSubmitting();
  }
  
}

function isAccepted(box) {
  if (box.checked!='') {
    return true;
  }
  else {
    return false;
  }
}

function tarifChange(event) {
  var tarif = document.getElementById('tarif');
  var cast = document.getElementById('fakturacni_udaje_t');  //cast s fakturacnimi udaji
  if (tarif.value > 0) {
    cast.style.display = "";
  }
  else {
    cast.style.display = "none";
  }
}

function fakturacniUdajeInit() {
  var tarif = document.getElementById('tarif');
  var cast = document.getElementById('fakturacni_udaje_t');  //cast s fakturacnimi udaji
  if (tarif.value > 0) {
    cast.style.display = "";
  }
  else {
    cast.style.display = "none";
  }
}