
/* pomocna funkce - zrusi oznaceni vsech checkboxu v poli chb 
   krome 'libovolne' polozky.
*/
function uncheck( chb ) {
    for (var i=0; i<chb.length; i++)
        if (chb[i].value!='--') chb[i].checked=false;
}

/* ovladani pole checkboxu s polozkou 'libovolny' majici hodnotu '--'
   pokud je libovolny aktivovan, ostatni checkboxy jsou deaktivovany
   pokud je aktivovan jiny, je deaktivovan 'libovolny'
   vola se 
   <input name="pole_checkboxu" onclick="libovolny_checkbox( formname,this );">
*/

function libovolny_checkbox( fld ) {
    var i;
    var chb = fld.form[fld.name]; /*pole checkboxu stejneho jmena*/
    var allchecked=1;             /*jsou vsechny zaskrtnuty?*/
    var nonechecked=1;            /*jsou vsechny odskrtnuty?*/
    var lib;                      /*'libovolny' checkbox */
    
    /* nalezeni 'libovolneho' a zjisteni, zda jsou zaskrtnuty vsechny
       ci zadny */
    for (i=0; i<chb.length; i++)
        if (chb[i].value!='--') {
            if ( chb[i].checked ) { 
                nonechecked=0;
            } else {
                allchecked=0;
            }
        } else {
            lib = chb[i];
        }
                
    if (fld.checked) {
        if (fld.value=='--') {
            /*zaskrtl jsem 'libovolny', ostatni odskrtnout*/
            uncheck( chb );
        } else {
            if (allchecked==1) {
                /*pokud jsou zaskrtnuty vsechny, zaskrtnout 'libovolny'*/
                uncheck( chb );
                lib.checked=true;
            } else {
                /*jinak odskrtnout libovolny*/
                lib.checked=false;
            }
        }
    } else {
        if (nonechecked==1) {
            /*pokud jsou odskrtnuty vsechny, zaskrtnout 'libovolny'*/
            uncheck( chb );
            lib.checked=true;
        }
    }
}


