function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function resetFields(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.type == "submit") continue;
    if (!element.defaultValue) continue;
    element.onfocus = function() {
    if (this.value == this.defaultValue) {
      this.value = "";
     }
    }
    element.onblur = function() {
      if (this.value == "") {
        this.value = this.defaultValue;
      }
    }
  }
}

function validateForm(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
    if (element.className.indexOf("required") != -1) {
      if (!isFilled(element)) {
        alert("Vyplňte pole "+element.name+".");
        return false;
      }
    }
    if (element.className.indexOf("email") != -1) {
      if (!isEmail(element)) {
        alert(element.name+" musí byť validný.");
        return false;
      }
    }
    if (element.className.indexOf("cislo") != -1) {
      var formcislo = new RegExp("^[0-9]{1,}$"); 
      if (!formcislo.test(element.value)) { 
        alert("Pole "+element.name+" musí byť číslo.");
	      return false; 
      }  
    }
    if (element.className.indexOf("kontrola") != -1) {
      if (element.value!=16){
        alert("Nesprávne zadaná kontrola.");
        return false;
      }
    }
  }
  return true;
}

function isFilled(field) {
  if (field.value.length < 1 || field.value == field.defaultValue) {
    return false;
  } else {
    return true;
  }
}

function isEmail(field) {
  var regmail = new RegExp("^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$"); 
	 if (!regmail.test(field.value)) { 
	   return false; 
	 } else {
     return true;
   }	 
}

function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
    resetFields(thisform);
    thisform.onsubmit = function() {
      return validateForm(this);
    }
  }
}

function referenciemenu() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("referenciemenu")) return false;
  var nav = document.getElementById("referenciemenu");
  var links = nav.getElementsByTagName("a");
  for (var i=0; i<links.length; i++) {
    //alert(links[i].getAttribute("href"));
    var linkurl = links[i].getAttribute("href");
    var currenturl = window.location.href;
    if (currenturl.indexOf(linkurl) != -1) {
      links[i].className = "here";
      //var linktext = links[i].lastChild.nodeValue.toLowerCase();
      //document.body.setAttribute("id",linktext);
    }
  }
}

//----------------------------------



function prepareInternalnav() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("doporucujemeklik")) return false;
  var nav = document.getElementById("doporucujemeklik");
  //var links = nav.getElementsByTagName("a");
  //for (var i=0; i<links.length; i++ ) {
  //  var sectionId = links[i].getAttribute("href").split("#")[1];
  //  if (!document.getElementById(sectionId)) continue;
    document.getElementById("doporucujemezoznam").style.display = "none";
    //links[i].destination = sectionId;
    nav.onclick = function() {
      zoznam = document.getElementById("doporucujemezoznam");
      if (zoznam.style.display == "block") {
        zoznam.style.display = "none";
      } else {
        zoznam.style.display = "block";
      }
       return false;
    }
 // }
}

addLoadEvent(prepareInternalnav);


addLoadEvent(prepareForms);
addLoadEvent(referenciemenu);

