function checkRegistrationForm() {
  if (!element("registration_firstname").value) {
    alert("Musíte zadat jméno.");
    element("registration_firstname").focus();
    
    return false;
  }
  
  if (!element("registration_surname").value) {
    alert("Musíte zadat příjmení.");
    element("registration_surname").focus();
    
    return false;
  }  

  if (!element("registration_city").value) {
    alert("Musíte zadat bydliště.");
    element("registration_city").focus();
    
    return false;
  }  
  
  if (!element("registration_email").value) {
    alert("Musíte zadat e-mail.");
    element("registration_email").focus();
    
    return false;
  }  

  if (!element("registration_phone").value) {
    alert("Musíte zadat mobilní telefon.");
    element("registration_phone").focus();
    
    return false;
  }  

  if (!element("registration_kraj").value) {
    alert("Musíte zadat kraj.");
    element("registration_kraj").focus();
    
    return false;
  }  

  if (!element("registration_orp").value) {
    alert("Musíte zadat obec.");
    element("registration_orp").focus();
    
    return false;
  }  

  var form = document.frm_registration;
  var count = 0;
  
  for (var i=0;i<form.length;i++) {
    if (form[i].name && form[i].name == "registration_term[]" && form[i].checked) {
      count++;
    }
  }

  if (count < 3) {
    alert("Musíte vybrat alespoň 3 termíny, kdy jste dostupný(á).");
    return false;
  }

  return true;
}

function checkLoginForm() {
  if (!element("login_username").value) {
    alert("Musíte zadat přihlašovací e-mail.");
    element("login_username").focus();
    
    return false;
  }
  
  if (!element("login_password").value) {
    alert("Musíte zadat přihlašovací heslo.");
    element("login_password").focus();
    
    return false;
  }  

  return true;
}

function checkFormTest1() {
  for (var i=1;i<11;i++) {
     if (!radioChecked("test_step_1", i)) {
       alert("Musíte zadat odpověď na otázku č. " + i + ".");
       document.getElementById("bozp_" + i).focus();
       return false;
     }
  }

  return true;
}

function checkFormTest3() {
  for (var i=1;i<14;i++) {
    if (element("video_" + i).value == "") {
       alert("Musíte zadat odpověď na otázku č. " + i + " (směr od kamery).");
       document.getElementById("video_" + i).focus();
       return false;
    }

    if (element("video_" + i + "_back").value == "") {
       alert("Musíte zadat odpověď na otázku č. " + i + " (směr ke kameře).");
       document.getElementById("video_" + i + "_back").focus();
       return false;
    }
  }

  return true;
}

function radioChecked(form_id, radio_id) {
  eval("var nodes = document." + form_id + ".bozp_" + radio_id);
  
  for (var i=0;i<nodes.length;i++) {
    if (nodes[i].checked) {
      return true;
    }
  }

  return false;
}

function testBOZPAnswer(answer) {
  var span_id = answer.toString().substring(0,1);
  for (var i=1;i<4;i++) {
    element("bozp_span_" +span_id+i.toString()).className = (span_id+i.toString() == answer ? "answered" : "");
  }
}


function checkTestConfirmation() {
  if (!element("test_confirmation").checked) {
    alert("Musíte zadat potvrzení o seznámení s obsahem školení.");
    element("test_confirmation").focus();
    
    return false;
  }  
}

/*
 * HTML object manipulation functions / START
 */
 
/**
 * get HTML element defined by id
 *
 * @return obj    HTML element
 */
function element(id) {
  var obj = document.getElementById(id);
  
  return obj;
}
 
/**
 * hide HTML element
 *    
 * @param mixed obj    object or object's id
 * @return void
 */
function elementHide(obj) {
  if (element(obj)) {    // object identified by its id
    obj = element(obj);
  }
  
  obj.style.display = "none";
}

/**
 * show HTML element
 *    
 * @param mixed obj            object or object's id
 * @param boolean is_inline    [optional] if element is inline, pass true as second parameter
 * @return void
 */
function elementShow(obj, is_inline) {
  if (element(obj)) {    // object identified by its id
    obj = element(obj);
  }

  obj.style.display = (is_inline ? "inline" : "block");
}

/**
 * switch element class name - if element has className class_1, replace it with class_2 and vice versa
 *    
 * @param mixed obj         object or object's id
 * @param string class_1    name of class 1
 * @param string class_2    name of class 2
 * @return void
 */
function switchClass(obj, class_1, class_2) {
  if (element(obj)) {    // object identified by its id
    obj = element(obj);
  }
  
  if (obj.className == "") {    // class name empty -> set class name from class_1
    obj.className = class_1;
  } else {
    if (obj.className.indexOf(class_1) != -1) {    // class_1 exists -> replace with class_2
      obj.className = obj.className.replace(class_1, class_2);
    } else {
      if ((obj.className.indexOf(class_2) != -1) && (class_2 != "")) {    // class_2 exists -> replace with class_1
        obj.className = obj.className.replace(class_2, class_1);
      } else {    // if not found, add class_1 to existing
        obj.className = obj.className + " " + class_1;
      }
    }
  }
}

/*
 * HTML object manipulation functions / END
 */
    var player = null;

    function statelistener(obj) {
      if (obj.newstate == "IDLE" || obj.newstate == "COMPLETED") {
        player.style.display = "none";
      } else {
        if (obj.newstate == "PAUSED") {
          player.sendEvent("PLAY");
        }
      }
    }

    function playerReady(thePlayer) {
	    player = document.getElementById('player1');
	    if (player) {
	      if (player.addModelListener == null) {
    		  // Opera a Firefox používá player2
    		  if (document.getElementById('player2') != null)
    		    player = document.getElementById('player2');
    	    }
	      player.addModelListener("STATE", "statelistener");
	    }
    }
function updateTestPhoto(photo_number) {
  actual_photo = photo_number;

  element("test_kategorie_photo_heading").innerHTML = "Fotografie " + actual_photo.toString() + " / " + photos.length.toString();
  element("test_kategorie_image").src = "/media/image/kat-" + photos[actual_photo - 1] + ".jpg";

  for (var i=1;i<14;i++) {
    element("kategorie_" + i.toString()).checked = false;
    element("kat_span_" + i.toString()).className = "";
  }

  if (all_answers[actual_photo - 1]) {    // otazka jiz byla zodpovezena
    element("kategorie_" + all_answers[actual_photo - 1].toString()).checked = true;
    element("kat_span_" + all_answers[actual_photo - 1].toString()).className = "answered";
    element("test_kategorie_next").className="next dis_block";
    last_answer = all_answers[actual_photo - 1];
    
  } else {    // prvni vstup na otazku
    element("test_kategorie_next").className="next dis_none";
    last_answer = "";
  }

  element("test_kategorie_info").className = "info dis_block";
  element("test_kategorie_image").className = "dis_block";
  element("test_kategorie_right").className = "dis_block";
  element("test_kategorie_photo_heading").className = "dis_block";
  element("test_kategorie_results_overview").className = "dis_none";
  element("test_kategorie_submit").className = "dis_none";

  element("test_kategorie_prev").className = (actual_photo > 1 ? "prev dis_block" : "prev dis_none");
}

function testKategorieBack() {
   updateTestPhoto(actual_photo - 1);
}

function testKategorieAnswer(answer) {
  last_answer = answer;
  for (var i=1;i<14;i++) {
    element("kat_span_" + i.toString()).className = (i == answer ? "answered" : "");
  }

  element("test_kategorie_next").className="next dis_block";
}

function checkFormTest2(sandbox) {
  if (!last_answer) {
    alert("Otázka nebyla zodpovězena.");
    return;
  }

  if (sandbox) {
    var test_kategorie_sandbox = Array("4", "7", "9", "5", "1", "11", "12", "6", "3", "13", "10", "8", "2");

    if (last_answer != test_kategorie_sandbox[actual_photo-1]) {
      alert('Chyba! Toto vozidlo patří do kategorie "' + getKategorieDescription(test_kategorie_sandbox[actual_photo-1] - 1) + '".');
      return;
    }
  }

    all_answers[actual_photo - 1] = last_answer;
    actual_photo++;

    if (actual_photo <= photos.length) {
      updateTestPhoto(actual_photo);
    } else {
      showTest2Result(sandbox);
    }

  return true;
}

function getKategorieDescription(number) {
   var desc = Array("1. LEHKÉ", "2. STŘEDNÍ (bez přívěsu)", "3. STŘEDNÍ (s přívěsem)", "4. TĚŽKÉ (bez přívěsu)", "5. nákladní TĚŽKÉ (s přívěsem)", "6. NÁVĚSOVÉ SOUPRAVY", "7. AUTO/TROLEJ BUSY (sólo)", "8. AUTO/TROLEJ BUSY (kloubové)", "9. TRAKTORY (bez přívěsu)", "10. TRAKTORY (s přívěsem)", "11. OSOBNÍ AUTOMOBILY", "12. MOTO", "13. CYKLISTICKÝ PROVOZ");

   return desc[number];
}

function showTest2Result(sandbox) {
  element("test_kategorie_info").className = "dis_none";
  element("test_kategorie_image").className = "dis_none";
  element("test_kategorie_right").className = "dis_none";
  element("test_kategorie_photo_heading").className = "dis_none";
  if (!sandbox) {
  element("test_kategorie_results_overview").innerHTML = "<div class='info'><h3>V testu byly zaznamenány tyto odpovědi:</h3><p><strong>" + all_answers + "</strong> (dle pořadí otázek)</p></div><p><br />Pokud si chcete fotografie projít znova, použijte odkaz <strong>Zpět</strong>.</p><p><br />Výsledky testu uložíte kliknutím na tlačítko <strong>Odeslat</strong>.</p>";

  element("test2_results").value = all_answers;
  element("test_kategorie_submit").className = "dis_block";
  } else {
  element("test_kategorie_results_overview").innerHTML = '<p><strong>Ukázkový test byl dokončen a tím i školení pro sčítače dopravy.</strong></p><p>Nyní můžete pokračovat do <a href="/testy/">testovací části</a>.</p><p><br />Pokud si chcete fotografie projít znova, použijte odkaz <strong>Zpět</strong>.</p>';
  }

  element("test_kategorie_results_overview").className = "dis_block";
}

function checkFormTest2All() {
  if (!element("test2_results").value) {
    alert("Všechny otázky nebyly zřejmě zodpovězeny.");
    return false;
  }

  return true;
}


function changeKraj(kraj, script) {
  var ajax = new traxi();
  ajax.action_script = script;
  ajax.execute_response = true;
  ajax.set("action", "registrace-kraj-update");
  ajax.set("kraj", kraj);
  ajax.run();	  
}

