  /*
    Obecne funkce, ktere by se meli pouzivat namisto primeho pristupu z javascriptu
    @since 25.08.2005 PF
    TODO:
      // resolved -> 26.08.05_2 ... 25.08.05 - dodelat (domyslet) chybove hlasky -> tedy doplnit podminku "else" pro "document.getElementById(el_id) != null"
      26.08.05 - otestovat funkce

    CHANGES:
      26.08.05_1 - (+)  fce  tge, tgpe, tgpte  - ktere vraci true/false podle toho, jestli dany element existuje.
      26.08.05_2 - (*)  fce   ge,  gpe,  gpte  - nyni vraci taky null, pokud element neexistuje, aby se daly pouzit k testovani

      30.08.05_1 - (+)  fce  ge_v - zjisteni hodnoty elementu podle id
      30.08.05_2 - (+)  fce  se_v - nastaveni hodnoty elementu podle id
  */




  // funkce vraci hodnotu elementu na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID // @return string | null // @since 30.08.2005
  function ge_n(el_id){
    if (document.getElementById(el_id) !== null)
    {
      return document.getElementById(el_id).name;
    } // if(else)
    else
    {
      return null;
    } // end (if)else
  } // end if 
  
  // funkce provede submit formulare podle jeho id na vybrany "target" a "action"
  // @package elements.js // @access public // @see - // @author PF // @param form_id - id formulare, @new_target - target, @new_action - action // @return // @since 25.08.2006
  function submit_handle(form_id, new_target, new_action){
         
    form_name = ge_n(form_id);
        
        
    document.forms[form_name].target = new_target;
    document.forms[form_name].action = new_action;
 
    document.forms[form_name].submit();
  
  } // end function 

                              

  // funkce submitne formular po stiknuti klavesy enter. Vola se napriklad na keypress
  // @package main.js // @access public // @see - // @author PF // @param form ane form_name - nazev formu // @return // @since 01.09.2005
  function submit_by_enter(form_name){
    if (myKeycode == 13)
    {
      document.forms[form_name].submit();
    } // end if

  } // end function





  // funkce nastavuje obsah elementu na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID, @param string content - obsah // @return string | null // @since 30.08.2006
  function se_c(el_id, content){
    if (document.getElementById(el_id) !== null)
    {
      document.getElementById(el_id).innerHTML = content;
    } // if(else)
  } // end if

  
  // funkce nastavuje hodnotu elementu na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID, @param string val - hodnota // @return string | null // @since 30.08.2005
  function se_v(el_id, val){
    if (document.getElementById(el_id) !== null)
    {
      document.getElementById(el_id).value = val;
    } // if(else)
  } // end if


  // funkce vraci hodnotu elementu na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID // @return string | null // @since 30.08.2005
  // funkce vreaci hodnotu elementu na zaklade jeho typu - 20070302op
  function ge_v(el_id)
  {
    var el = document.getElementById(el_id);
    if(el)
    {
        if(el.type == 'select-one') // select
        {
            return el.options[el.selectedIndex].value;
        }
        else // input (text, hidden, submit, button)
        {
            return el.value;
        }
    }
    return null;
  } // end function
  // --- 
  


   // funkce vraci hodnotu elementu na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID // @return string | null // @since 30.08.2005
 // 0711071343pf-1 PATCH "Logika presunuta do funkce 'ge_v'"
  function ge_s(el_id){
    return ge_v(el_id);
  }



function selectGoto()
{
 page = ge_s('gotopage');
 window.document.location.href = page;
}


  // funkce vraci element na zaklade jeho id pomoci funkce getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID // @return HTMLelement | null // @since 25.08.2005
  function ge(el_id){
    if (document.getElementById(el_id) !== null)
    {
      return document.getElementById(el_id);
    } // if(else)
    else
    {
      return null;
    } // end (if)else
  } // end if


  // test element - funkce vraci true/flase, jestli dany element existuje
  // @package main.js // @access public // @see - ge // @author PF // @param element_id el_id - HTMLelementID // @return boolean // @since 26.08.2005
    function tge(el_id){
    if (ge(el_id) !== null){
      return true;
    } // if(else)
    else
    {
      return false;
    } // end (if)else
  } // end function



  // funkce vraci element na zaklade jeho id pomoci funkce parent.getElementById
  // @package main.js // @access public // @see - // @author PF // @param element_id el_id - HTMLelementID // @return HTMLelement // @since 25.08.2005
  function gpe(el_id){
    if (parent.document.getElementById(el_id) !== null)
    {
      return parent.document.getElementById(el_id);
    } // if(else)
    else
    {
      return null;
    } // end (if)else
  } // end if



  // zobrazeni elementu - nastavenim atributu style.display na "block"
  // @package main.js // @access public // @see - // @author PF // @param element eld - HTML element // @return // @since 25.08.2005
  function el_display_show(el){
    el.style.display = "block";
  } // end function

    // zobrazeni elementu - nastavenim atributu style.display na "block"
    // @package main.js // @access public // @see el_display_show // @author PF // @param element_id el_id - HTML element id // @return // @since 25.08.2005
    function el_id_display_show(el_id){
      if (tge(el_id))
      {
        el_display_show(ge(el_id));
      } // end if
    } // end function


  // zobrazeni elementu - nastavenim atributu style.display na "block"
  // @package main.js // @access public // @see - // @author PF // @param element eld - HTML element // @return // @since 25.08.2005
  function el_display_hide(el){
    el.style.display = "none";
  } // end function

    // zobrazeni elementu - nastavenim atributu style.display na "block"
    // @package main.js // @access public // @see el_display_hide // @author PF // @param element_id el_id - HTML element id // @return // @since 25.08.2005
    function el_id_display_hide(el_id){
      if (tge(el_id))
      {
        el_display_hide(ge(el_id));
      } // end if
    } // end function


  // getmouseclick -> e - event - vola se napriklad na udalosti onmousedown="gmc(event);"
  function gmc(e){

    if (navigator.appName == "Microsoft Internet Explorer") {
      msbclick = event.button;
    }
    else if (navigator.appName == "Netscape")
    {
      msbclick = e.which;
    }

    return msbclick;

  } // end function


  // zmeni, u vybraneho elementu podle jeho id, hodnotu atributu stylu display, na opacnou, nez jaka je.
  // tzn. budto ho zobrazni, nebo schova
  function switchdisplay(el_id)
  {
    
    if (ge(el_id).style.display == "none")
    {
      el_id_display_show(el_id);
    } // end if 
    else
    {
      el_id_display_hide(el_id); 
    } // else 
      
  } // end function

  

  function movediv_general(el_id,x,y,cor_x,cor_y) {
    document.getElementById(el_id).style.left = x + cor_x + "px";
    document.getElementById(el_id).style.top = y + cor_y + "px" ;
    return true;
  } // end function
  
  
  
  function getoffsetLeft(element){/* Calculate the offsetLeft sum of all offsetParents. The result is element.style.left */
    if(!element) { return 0; }
    return element.offsetLeft + getoffsetLeft(element.offsetParent);
  } // end function


  function getoffsetTop(element){/* Calculate the offsetTop sum of all offsetParents. The result is element.style.top */
    if(!element) { return 0; }
    return element.offsetTop + getoffsetTop(element.offsetParent);
  } // end function
  
  // funkce nacte vsechny data z poslaneho formulare a preformatuje je do retezce.
  function get_fullformquery(el_form_id){
                                           
    queryString="&"; 
    
    var frm = ge(el_form_id);  
    var numberElements = frm.elements.length;     
    
    // Pro kazdy element formulare     
    for(var i = 0; i < numberElements; i++) 
    {       
      if (( typeof( frm.elements[i]) !== "undefined" ) && (frm.elements[i].nodeName == "SELECT" || frm.elements[i].nodeName == "INPUT") && frm.elements[i].name != "" && frm.elements[i].value != "")
      {    
        if ((frm.elements[i].type == "checkbox") || frm.elements[i].type == "radio")
        {
          if (frm.elements[i].checked === true)
          {
            //alert(frm.elements[i].name + " " + frm.elements[i].value);
            queryString += frm.elements[i].name+"="+ escape(frm.elements[i].value);  // encodeURIComponent // URLEncode
            if(i < numberElements-1) 
            {           
             queryString += "&";
            } // end ifr            
          } // end if 
        } // end if 
        else
        {                  
          queryString += frm.elements[i].name+"="+ escape(frm.elements[i].value); // URLEncode //  encodeURIComponent
          if(i < numberElements-1) 
          {           
           queryString += "&";
          } // end ifr            
        } // end if
         
      } // end if 
    } // end for

    return queryString;
  
  } // end function  
  

  // musi byt struktura <div id="id_group_div">  <div><input type="checkbox" /></div><div><input type="checkbox" /><div>...</div>
  function checkbox_check_all(checked_all, id_group_div){
     
    el = ge(id_group_div);
    el_ch = el.childNodes;
    c = el_ch.length;                  
             
    for (var j=0; j < c; j++) 
    {                    
      cur_el = el_ch[j];
      
      cur_el_ch = cur_el.childNodes;
      c_ch = cur_el_ch.length;
      
      for (var i=0; i < c_ch; i++) 
      {                    
        cur_el_ch_2 = cur_el_ch[i];
        if (cur_el_ch_2.nodeName && cur_el_ch_2.nodeName == "INPUT")
        {
          cur_el_ch_2.checked = checked_all;
        } // end if 
      } // end if                     
    } // end for
    
  } // end function 
    
                   

