//Zdroj: http://blogspot.i-lasek.cz/javascript/javascript-funkce-addevent-removeevent/

/**
    *  Priradi urcite udalosti objektu zadanou obsluznou funkci. Rozhodne
    *  automaticky, zda pouzit attachEvent, nebo addEventListener. Resi problem
    *  s pouzitim this uvnitr obsluzne funkce.
    *  @param obj Objekt, u nehoz chceme udalost obsluhovat.
    *  @param event Udalost, jiz hodlame obslouzit - ve formatu click, load apod.
    *               (nikoliv onclick, onload).
    *  @param funct Nazev obsluzne funkce.
    */
function addEvent(obj, event, funct) {
    if (obj.attachEvent) { //IE
        obj['e' + event + funct] = funct;
        obj['x' + event + funct] = function() {
            obj['e' + event + funct](window.event);
        }
        obj.attachEvent('on' + event, obj['x' + event + funct]);
    } else // other browser
        obj.addEventListener(event, funct, false);
}

/**
    *  Odstrani zadanou obsluznou funkci registrovanou u objektu.
    *  @param obj Objekt, u nehoz chceme obsluznou funkci odstrani.
    *  @param event Udalost, jiz doposud funkce obsluhovala - ve formatu click,
    *               load apod. (nikoliv onclick, onload).
    *  @param funct Nazev obsluzne funkce, jiz planujeme odstranit.
    */
function removeEvent(obj, event, funct) {
    if (obj.detachEvent) { // IE
        obj.detachEvent('on' + event, obj[event + funct]);
        obj['x' + event + funct] = null;
    } else // other browser
        obj.removeEventListener(event, funct, false );
}

/**
 * Vraci URL odkazu na danou stranku s parametry
 * @param stranka Stranka
 * @param parametry Parametry
 * @return string Interni URL odkazu
 */
function interniOdkaz(stranka,parametry){
    parametry=parametry.replace("&", "&amp;");
    return stranka+".html?"+parametry;
}

/**
 * Zrusi probublavani udalosti
 */
function cancelBubble(windowEvent) {
    var objEvent;
    try {
        objEvent=windowEvent;
        objEvent.cancelBubble=true;
    } catch (ex) {
    }
}
