/*
 * (C) 2008 ICZ, a.s.
 */

/**
 * Funkce zaskrtnuti vsech checkboxu pomoci jednoho.
 * Vsechny checkboxy seznamu musi mit class 'selector' a 
 * zaskrtavaci checkbox pro ostatni polozky musi mit 
 * id 'selectAll'.
 */
$(document).ready( function() {
    $('#selectAll').click(selectAll);
    $('.selector').click(checkSelectAll);
});

function selectAll(e) {
    $('.selector').attr('checked', this.checked);
}

function checkSelectAll(e) {
    var exprChecked = '.selector:checked';
    var exprAll = '.selector';

    var selectAll = $(exprChecked).length == $(exprAll).length;
    $('#selectAll').attr('checked', selectAll);
}

/**
 * Odstraneni zakazanych znaku z textoveho policka.
 * 	- odstraneni mezer ze zacatku a konce textu
 *  - odstraneni vycenasobnych mezer v textu
 *  - odstraneni znaku "{}|"
 * 
 * @param inputFieldId id vstupního pole
 */
function removeForbiddenChars(inputFieldId) {
	var field = $('#' + inputFieldId);
	
	if (field != null) {
		var text = jQuery.trim(field.val())
			.replace(/\s+/g, ' ')
			.replace(/[{}|]/g, '');
		
		field.val(text);
	}
}

/**
 * Zkontroluje zda je IČ zadané ve vstupním poli 
 * (identifikováno pomocí icFieldId) validní. Pokud
 * IČ není validní zobrazí dotaz uživateli zda chce pokračovat
 * v odeslání formuláře.
 * 
 * Použití:
 * <form onsubmit="return confirmInvalidIC('ic');">
 * 
 * @param icFieldId id pole s IČ
 * @param invalidMessage zpráva která se zobrazí, pokud není IČ validní
 * @return <code>true</code> pokud je IČ validní nebo si uživatel přeje
 * 		pokračovat ve zpracování i s nevalidním IČ.
 */
function confirmInvalidIC(icFieldId, invalidMessage) {
	var valid = false;
	var ic = $('#' + icFieldId).val();
    ic = jQuery.trim(ic).replace(/\s+/g, '');
    
    // nezobrazovat hlasku, projde validace, ale nesmí projít validace na prázdné pole
    if (ic.length == 0)
    	return true;

    // má požadovaný tvar?
    if (ic.search(/'^\d{8}$'/)) {

	    // kontrolní součet
	    var a = 0;
	    for (var i = 0; i < 7; i++) {
	        a += ic.charAt(i) * (8 - i);
	    }
	    
	    a = a % 11;
	    
	    if (a == 0) c = 1;
	    else if (a == 10) c = 1;
	    else if (a == 1) c = 0;
	    else c = 11 - a;
	    
	    valid = (ic.charAt(7) == c);
    }
    
    if (valid)
    	return true;
    
    return confirm(invalidMessage);
}
