function show(co)
{
 if (document.getElementById(co).style.display == "none")
 	document.getElementById(co).style.display = "inline";
 else		
 	document.getElementById(co).style.display = "none"	
}


function del(odkaz)
{
var x=window.confirm("Opravdu chcete tento záznam smazat?")
if (x)
window.location.href=odkaz;
else
return false;

}


// document.getElementsByName
//      ie se ridi dle id
//      mozzila se ridi dle name
//      reseni: u elementu uvadet stejne id i name

/* Vrátí název souboru v zadané cestě */
function basename(path)
{
  //alert("basename of " + path)
  if (path == null || path.length == 0) return ""
  var len = path.length
  if (path.substring(len-1,len) == "/") {
    len--
    path = path.substring(0, len)
  }  
  var basenm = path.substring(path.lastIndexOf("/") + 1, len)
  if (basenm.length == 0) {
    basenm = path
  }
  //alert(basenm)
  return basenm  
}

/* Vypíše seznam všech vlastností zadaného objektu (např. this) */
function objProperties(obj)
{
  var result = ""
  for (var i in obj)
    result += i + " = " + obj[i] + "\n";
  alert(result);
}
function objPropertiesShort(obj)
{
  var result = ""
  var objStr = "";
  for (var i in obj) {
      objStr=obj[i]+" ";
      if (objStr.substring(1,9) == "function") {
          result += i + " = " + objStr.substring(1,9) + "...|| ";
      } else {
          result += i + " = " + objStr.substring(0,35) + "|| ";
      }
  }  
  alert(result);
}

function inspect(elm){
  var str = "";
  for (var i in elm){
    if (i.indexOf("text") != -1 || i.indexOf("back") != -1) {
        str += i + ": " + elm.getAttribute(i) + "|| ";
    }
  }
  alert(str);
}

function inspectStyle(elm){
  if (elm.style){
    var str = "";
    for (var i in elm.style){
    if (i.indexOf("text") != -1 || i.indexOf("back") != -1) {
	  str += i + ": " + elm.style[i] + "|| ";
    }
	}
	alert(str);
  }
}


/* Funkce pro skrývání částí formu */
function setFocus(id)
{
  var obj=document.getElementById(id);
  if (obj != null) {
    //obj.select();
    obj.focus();
  }  
}       

/* Funkce pro boční menu */
function OnMsOverMI(obj)
{
  obj.style.color="aqua";
  //obj.style.fontWeight="800";
}
function OnMsOutMI(obj)
{
  obj.style.color="lightcyan";
  //obj.style.fontWeight="normal";
}
function OnMsClickMI(cil)
{
  parent.fr_form.location.href=cil;
}

/* Funkce pro skrývání částí formu */
function hideTagId(id)
{
  if (document.getElementById(id).style.display=="none")
        document.getElementById(id).style.display="";
  else           
        document.getElementById(id).style.display="none";
}       

function hideDiv()
{
  var srcId, targetId, srcElement, targetElement;
  srcElement = window.event.srcElement;
  if (srcElement.className == "hideRoll")
  {
    srcId = srcElement.name;
    elements = documentAll();
    targetId = srcId + "OnOff";
    for (var i = srcElement.sourceIndex; i < elements.length; i++) {
      targetElement = element.item(i);
      if (targetElement.tagName == "DIV" && targetElement.name == targetId) {
      if (targetElement.style.display == "none") {
          targetElement.style.display = "";
          } else {
          targetElement.style.display = "none";
          }
          break;
      }
    }
  }
}

// Nastavení viditelnosti všech tagů div, jejichž id začíná na zadané jméno
// na zadanou hodnotu ("" nebo "none")
function setDisplayDivsByName(div_name,display_value)
{
  // Vytvoření pole tagů "DIV"
  var div_list = document.getElementsByTagName("div");
  //objPropertiesShort(div_list[0]);
  for (i = 0; i < div_list.length; i++) {
    // Obsahuje identifikator tagu menu_ nebo navi_?
    if (div_list[i].id.indexOf(div_name) != -1) {
      div_list[i].style.display = display_value;
    }
  }
}  

function setFilterImage(imageName, state) {
    image = document.getElementById(imageName)
    if (state == "off") {
         image.src = "image/filter_off.gif";
    } else {
         image.src = "image/filter_on.gif";
    }
}
function changeFilterImage(imageName, stateName) {
    image = document.getElementById(imageName)
    if (image.src.indexOf("image/filter_on.gif") != -1) {
         image.src = "image/filter_off.gif";
         value = "off";
    } else {
         image.src = "image/filter_on.gif";
         value = "on";
    }
    elements = document.getElementsByName(stateName);
    for (i = 0; i < elements.length; i++) {
        elements[i].value = value;
    }
}

var lastIndex = null;
function markRow(objectName, index, count) {
    if (index != lastIndex) {
        rowName = objectName + "Row" + index;
        lastRowName = objectName + "Row" + lastIndex;

        // odznačení původního záznamu
        if (lastRowName != null) {
            elements = document.getElementsByName(lastRowName);
            for (i = 0; i < elements.length; i++) {
                setElClass(elements[i], lastRowClass);
            }
        }

        // označení nového záznamu
        elements = document.getElementsByName(rowName);
        lastIndex = index;
        lastRowClass = getElClass(elements[0]);
        for (i = 0; i < elements.length; i++) {
            setElClass(elements[i], "actualRow");
        }

        // hidden pole se vyskytuje ve vsech formularich na jsp 
        // a slouzi k prenosu posledniho zvoleneho indexu pri requestu
        elements = document.getElementsByName("markedRow" + objectName);
        for (i = 0; i < elements.length; i++) {
            elements[i].value = index;
        }

        // zobrazeni aktualniho cisla zaznamu
        document.getElementById("htmlMarkedRow" + objectName).innerHTML = parseInt(index) + 1;

        // ovlivneni pristupnosti tlacitek pro prechod na prvni/predchozi/dalsi/posledni zaznam
        first = document.getElementById('first' + objectName);
        prev = document.getElementById('prev' + objectName);
        next = document.getElementById('next' + objectName);
        last = document.getElementById('last' + objectName);

        first.disabled = true;
        prev.disabled = true;
        next.disabled = true;
        last.disabled = true;

        if (index > 0) {
            first.disabled = false;
            prev.disabled = false;
        }
        if ((index + 1) < count) {
            next.disabled = false;
            last.disabled = false;
        }
    }
}

function markRowDirection(objectName, direction, count) {
    if (count > 1) {
        if (direction == "first") {
            markRow(objectName, 0, count);
        } else if (direction == "prev" && lastIndex > 0) {
            markRow(objectName, lastIndex - 1, count);
        } else if (direction == "next" && lastIndex - 1 < count) {
            markRow(objectName, lastIndex + 1, count);
        } else if (direction == "last") {
            markRow(objectName, count - 1, count);
        }
    }
}

function changeDisplayDivsByName(name) {
    changeDisplayTag("div", name);
}

function changeDisplayTag(tag, name) {
    if (tag == "all") {
      changeDisplay(documentAll(), name);
    } else {
      var elements = document.getElementsByTagName(tag);
      changeDisplay(elements, name);
    }
}

// Nastavení viditelnosti všech daných elementů
// podle opačné hodnoty, než má první nalezený prvek ("" nebo "none")
function changeDisplay(elements, name)
{
  var first_value = "none";
  var ii = 0;
  // Procházení všech tagů
  for (i = 0; i < elements.length; i++) {
    // Obsahuje identifikator elementu dane jmeno?
    if (elements[i].id.indexOf(name) != -1) {
      // pro první vyhovující tag nastaví hodnotu pro ostatní tagy  
      if (ii==0) {
        first_value = elements[i].style.display;
        if (elements[i].style.display == "none") {
            new_value = "";
        } else {
            new_value = "none";
        }
      }  
      // zápis nové hodnoty do tagu
      elements[i].style.display = new_value;
      // zvýšení počítadla vyhovujících tagů
      ii++;
    }
  }
}  

// value = "on" | "off"
function setDisplayTag(tag, name, value) {
    if (value == "off") {
        displayValue = "none";
    } else {
        displayValue = "";
    }

    if (tag == "all") {
        setDisplay(documentAll(), name, displayValue);
    } else {
        var elements = document.getElementsByTagName(tag);
        setDisplay(elements, name, displayValue);
    }
}

// Nastavení viditelnosti všech daných elementů ("" nebo "none")
function setDisplay(elements, name, value) {
  // Procházení všech tagů
  for (i = 0; i < elements.length; i++) {
    // Obsahuje identifikator elementu dane jmeno?
    if (elements[i].id.indexOf(name) != -1) {
      // zápis nové hodnoty do tagu
      elements[i].style.display = value;
    }
  }
}  

// Skrytí všech tagů div, jejichž id začíná na zadané jméno
function hideDivsByName(div_name)
{
  setDisplayDivsByName(div_name,"none")
}
// Zobrazení všech tagů div, jejichž id začíná na zadané jméno
function showDivsByName(div_name)
{
  setDisplayDivsByName(div_name,"")
}
// Zobrazení nebo skrytí všech tagů div, jejichž id začíná na zadané jméno
// podle opačné hodnoty, než má první nalezený prvek ("" nebo "none")
function showhideDivsByName(div_name)
{
  changeDisplayDivsByName(div_name)
}

// Zakliknutí nebo odkliknutí všech checkboxů, jejichž id začíná na zadané jméno
// podle názvu na tlačítku určí, jestli se bude označovat nebo odznačovat
// a nastaví název na opačnou hodnotu
// Disabled prvky se vynechávají
function markTagsByName(butt_id,tag_substring)
{
  // Vytvoření pole tagů "tag"
  var tag_list = document.getElementsByTagName("input");
  var first_value = false
  var new_value = false
  var ii = 0;
  // podle názvu na tlačítku určí, jestli se bude označovat nebo odznačovat
  // a nastaví název na opačnou hodnotu
  if (document.getElementById(butt_id).value == "vše") {
    new_value = true;
    document.getElementById(butt_id).value = "nic";
  } else {
    new_value = false;
    document.getElementById(butt_id).value = "vše";
  }  
  // Procházení všech vybraných tagů
  for (i = 0; i < tag_list.length; i++) {
    // Obsahuje identifikator tagu menu_ nebo navi_?
    if (tag_list[i].id.indexOf(tag_substring) != -1 && (!tag_list[i].isDisabled)) {
      //objPropertiesShort(tag_list[i]);
      // pro první vyhovující tag nastaví hodnotu pro ostatní tagy  
      //if (ii==0) {
      //  first_value = tag_list[i].checked;
      //  //alert(first_value);
      //  if (tag_list[i].checked) {
      //    new_value = false;
      //  } else {
      //    new_value = true;
      //  }
      //}  
      // zápis nové hodnoty do tagu
      tag_list[i].checked = new_value;
      // zvýšení počítadla vyhovujících tagů tag
      ii++;
    }
  }
}

function kod2nazev(kod, nazev, nazevHidden) {
   otherIndex = document.getElementById(kod).options[document.getElementById(kod).selectedIndex].i;
   document.getElementById(nazev).selectedIndex=otherIndex;
   if (typeof nazevHidden != "undefined") {
       document.getElementById(nazevHidden).value = document.getElementById(nazev).options[document.getElementById(nazev).selectedIndex].text;
   }
}

function nazev2kod(nazev, kod, nazevHidden) {
   otherIndex = document.getElementById(nazev).options[document.getElementById(nazev).selectedIndex].value;
   document.getElementById(kod).selectedIndex=otherIndex;
   if (typeof nazevHidden != "undefined") {
       document.getElementById(nazevHidden).value = document.getElementById(nazev).options[document.getElementById(nazev).selectedIndex].text;
   }
}

function disableMoveButtons(kod)
{
   index = document.getElementById(kod).selectedIndex;
   first = document.getElementById('first');
   prev = document.getElementById('prev');
   next = document.getElementById('next');
   last = document.getElementById('last');
   kodLength = document.getElementById(kod).length;

   first.disabled = true;
   prev.disabled = true;
   next.disabled = true;
   last.disabled = true;

   if (index > 0) {
       first.disabled = false;
       prev.disabled = false;
   }
   if ((index + 1) < kodLength) {
       next.disabled = false;
       last.disabled = false;
   }
}

// under construction
function objPropertiesSorted(obj)
{
  var result = ""
  var objStr = "";
  //var pole = new Array();
  var index = 0;
  for (var propertyName in obj) {
      pole[index] = propertyName;
  }
  alert(index);
      
  //  objStr=obj[propertyName]+" ";
  //  result += propertyName + " = " + objStr.substring(0,35) + "|| ";
  for (k = 1; k <= 3; k++) {
  }

}

  function doplnCasPrichoduAOdchodu(defPrichod,defOdchod)  {

    var pole = new Array("nahr.volno",
                         "dovolena",
                         "nemoc",
                         "ocr",
                         "svatek");
    var bSt=false;
    //var defPrichod="8:00";
    //var defOdchodInt=8+uvazek;
    //var defOdchod=defOdchodInt+":00";

    var selText=document.getElementById("denDefAkce").options[document.getElementById("denDefAkce").selectedIndex].value;

    for(i=0;i<pole.length;i++) if(pole[i]==selText) bSt=true;

    //if(bSt==true) {
    //  if(document.getElementById("denPrichod").value!="") bSt=false;
    //  if(document.getElementById("denOdchod").value!="") bSt=false;
    //}

    if(bSt==true) {

      document.getElementById("denPrichod").value=defPrichod;
      document.getElementById("denOdchod").value=defOdchod;
    }
  }

function x()
{
    var s="";
    var te="";
    elements = documentAll();
    for (var i = 0; i < elements.length; i++) {
      if (elements.item(i).tagName == "DIV") {
        s = s+elements.item(i).tagName+" "
             +elements.item(i).name+" "
             +"\n";
      }
    }
    alert(s);
}

function setStartForm(formId, fieldId)
{
  //alert("par1=" + formId + " par2=" + fieldId);
  if (parent != null && parent.fr_form != null && parent.fr_form.document != null && parent.fr_form.document.location != null) {
    document.getElementById(fieldId).value = basename(parent.fr_form.document.location.pathname);
    //alert("> " + document.getElementById(fieldId).value);
    document.getElementById(formId).submit();
    document.getElementById(fieldId).value = "undef";
  }
}

// vyčištění obsahu všech inputů a selectů, jejichž id začíná na zadané jméno
// Disabled prvky se vynechávají
function clearInputs(idPrefix)
{
    elements = documentAll();
    for (i = 0; i < elements.length; i++) {
        el = elements.item(i);
        if (el.id.indexOf(idPrefix) != -1 && (!el.isDisabled)) {
            if (el.tagName == "INPUT") {
                if (el.type == "text") {
                    el.value = "";
                }
                if (el.type == "checkbox") {
                    el.checked = false;
                }
            }
        }
        if (el.tagName == "SELECT") {
            el.value = "";
        }
    }
}

function checkRequired() {
  check = true;
  elements = documentAll();
  for (i = 0; i < elements.length; i++) {
      el = elements.item(i);
      if (el.tagName == "INPUT") {
          if (isElClass(el, "valueTabReq") && trim(el.value).length < 1) {
              check = false;
              break;
          }
      }
      
      if (el.tagName == "TEXTAREA") {
          if (isElClass(el, "valueTabReq") && trim(el.value).length < 1) {
              check = false;
              break;
          }
      }
      
      if (el.tagName == "SELECT") {
          if (isElClass(el, "valueTabReq") && trim(el.options[el.selectedIndex].value).length < 1) {
              check = false;
              break;
          }
      }
  }

  if (! check) {
      pole = "";
      if (el.title != "") {
          pole = el.title;
      } else {
          if (el.parentNode != null && el.parentNode.title != "") {
              pole = el.parentNode.title;
          }
      }

      if (pole == "") {
          alert("Vyplňte, prosím, povinnou hodnotu.");
      } else {
          alert("Vyplňte, prosím, povinnou hodnotu pole '" + pole + "'.");
      }
      el.focus();
  }
  return check;
}

function isElClass (el, className) {
    result = false;
    for (var i = 0; i < el.attributes.length; i++) {
        if (el.attributes.item(i).nodeName == 'class') {
           if (el.attributes.item(i).nodeValue == className) {
               result = true;
               break;
           }
        }
    }
    return result;
}

function getElClass (el) {
    result = null;
    for (var i = 0; i < el.attributes.length; i++) {
        if (el.attributes.item(i).nodeName == 'class') {
           result = el.attributes.item(i).nodeValue;
           break;
        }
    }
    return result;
}

function setElClass (el, className) {
    for (var i = 0; i < el.attributes.length; i++) {
        if (el.attributes.item(i).nodeName == 'class') {
           el.attributes.item(i).nodeValue = className;
           break;
        }
    }
}


// Removes leading and trailing spaces from the passed string.
function trim(inputString) {
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   return retValue; // Return the trimmed string back to the user
}

function isInteger(s){
    var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

// prevod dd.mm.yy na dd.mm.yyyy
function unifyDateString(a) {
    if (! checkDateString(a)) return a;
    pointFirst = a.indexOf(".");
    pointSecond = a.indexOf(".", pointFirst + 1);
    yyyy = a.substring(pointSecond + 1, a.length) // year
    if (yyyy >= 100) return a;

    if (yyyy >= 0 && yyyy < 50) yyyy = parseInt(yyyy) + parseInt(2000);
    if (yyyy >= 50 && yyyy < 100) yyyy = parseInt(yyyy) + parseInt(1900);
    return a.substring(0, pointSecond + 1) + yyyy;
}

// minimalni format:    d.m.yy
// maximalni format:    dd.mm.yyyy
function checkDateString(a) {
    var check = true;

    if (a.length < 6 || a.length > 10) check = false;
    pointFirst = a.indexOf(".");
    pointSecond = a.indexOf(".", pointFirst + 1);
    
    dd = a.substring(0, pointFirst) // day
    c = a.substring(pointFirst, pointFirst + 1) // '.'
    mm = a.substring(pointFirst + 1, pointSecond) // month
    e = a.substring(pointSecond, pointSecond + 1) // '.'
    yyyy = a.substring(pointSecond + 1, a.length) // year

    // integer checking
    if (!isInteger(dd)) check = false;
    if (!isInteger(mm)) check = false;
    if (!isInteger(yyyy)) check = false;

    // zapis 'yy' prevedu na zapis 'yyyy'
    if (yyyy >= 0 && yyyy < 50) yyyy = parseInt(yyyy) + parseInt(2000);
    if (yyyy >= 50 && yyyy < 100) yyyy = parseInt(yyyy) + parseInt(1900);

    //basic error checking
    if (mm < 1 || mm > 12) check = false;
    if (c != '.') check = false;
    if (dd < 1 || dd > 31) check = false;
    if (e != '.') check = false;
    if (yyyy < 1900 || yyyy > 2100) check = false;
    
    //advanced error checking

    // months with 30 days
    if (mm==4 || mm==6 || mm==9 || mm==11) {
        if (dd==31) check = false;
    }

    // february, leap year
    if (mm==2) {
        // feb
        var g = parseInt(yyyy/4)
        if (isNaN(g)) {
            check = false;
        }

        if (dd>29) check = false;
        if (dd==29 && ((yyyy/4)!=parseInt(yyyy/4))) check = false;
    }

    return check;
}

function checkDateInput(el) {
    if (el.value.length < 1) {
        return true;
    }

    if (! checkDateString(el.value)) {
        alert('Vložte, prosím, správné datum.');
        el.focus();
        return false;
    }
    // prevod dd.mm.yy na dd.mm.yyyy
    el.value = unifyDateString(el.value);
    return true;
}

var ie = (document.all) ? true : false;
function documentAll() {
    if (ie) {
        return document.all;
    } else {
        return document.getElementsByTagName('*');
    }
}

function sendRedirect(jspName) {
    redirectJspName = document.getElementById("redirectJspName")
    redirectJspName.value = jspName;

    redirectAction = document.getElementById("redirectAction")
    redirectAction.value = "redirect";

    document.getElementById("formRedirect").submit();
}

