/*** CONSTANT ***************************************************************/

var MT_DELETE_OBJECT = 'Opravdu chcete smazat objekt? / Do you really want to delete the object?';

/****************************************************************************/

var mtIE = document.getElementById && document.all;  // Internet Explorer 5.+ 
var mtMozilla = document.getElementById && !document.all;      // Mozilla 1.+ 

/*** OBJECT functions *******************************************************/

function mtGetObject(name) {
    // DOM, Internet Explorer, Mozilla 
    if (document.getElementById)
      	return document.getElementById(name);
    // Internet Explorer 
    else if (document.all)
    	return document.all[name];
    // Netscape 
    else if (document.layers)
       	return document.layers[name];
    return false;
}

function mtGetEventElement(e) {
    if (e = e ? e : (window.event ? window.event : false)) {
        e = e.target ? e.target : (e.srcElement ? e.srcElement : false);
        while (e.nodeType != 1)
            e = e.parentNode;
    }
    return e;
}

function mtGetEventObject(e) {
    return e ? e : (window.event ? window.event : false);
}

/*** SEARCH functions *******************************************************/

function mtFindNearestObject(sender, findAttr, findValue, stopAttr, stopValue) {
    findRE = new RegExp(findValue, 'i');
    stopRE = new RegExp(stopValue, 'i');
    while (sender) {
        if (findAttr == 'tagName' ? sender.tagName && sender.tagName.match(findRE)
                                  : sender.getAttribute && (attr = sender.getAttribute(findAttr))
                                                        && attr.match(findRE))
            return sender;
        if (stopAttr == 'tagName' ? sender.tagName && sender.tagName.match(stopRE)
                                  : sender.getAttribute && (attr = sender.getAttribute(stopAttr))
                                                        && attr.match(stopRE))
            return false;
        sender = sender.parentNode;
    }
    return false;
}

function mtDeleteNearestObject(sender, findAttr, findValue, ask, stopAttr, stopValue) {
    if ((sender = mtFindNearestObject(sender, findAttr, findValue, stopAttr, stopValue)) &&
        (ask || confirm(MT_DELETE_OBJECT)))
    {
        sender.parentNode.removeChild(sender);
        return true;
    }
    return false;
}

/*** MOUSE functions ********************************************************/

// souřadnice kurzoru myši vzhledem k levému okraji aktivního prvku / vrstvy 
function mtGetX(e) { return e.x ? e.x : (e.layerX ? e.layerX : 0); }
function mtGetY(e) { return e.y ? e.y : (e.layerY ? e.layerY : 0); }

// souřadnice kurzoru myši vzhledem k levému okraji prohlíženého okna 
function mtGetPageX(e) { return e.clientX ? e.clientX : (e.pageX ? e.pageX : 0); }
function mtGetPageY(e) { return e.clientY ? e.clientY : (e.pageY ? e.pageY : 0); }

// souřadnice kurzoru myši vzhledem k levému rohu obrazovky uživatele 
function mtGetScreenX(e) { return e.screenX ? e.screenX : 0; }
function mtGetScreenY(e) { return e.screenY ? e.screenY : 0; }

// hodnota zmačknutého tlačítka 
function mtGetButton(e) {
    if (mtIE && e.button)
        switch (e.button) {
            case 1: return 'left';
            case 4: return 'middle';
            case 2: return 'right';
        }
    if (mtMozilla && e.which)
        switch (e.which) {
            case 1: return 'left';
            case 2: return 'middle';
            case 3: return 'right';
        }
    return false;
}

/*** EVENT functions ********************************************************/

// přidání obsluhy události 
function mtAddEvent(eventName, functionPointer) {
    if (mtIE && document.attachEvent)
        document.attachEvent(eventName, functionPointer);
    if (mtMozilla && document.addEventListener)
        document.addEventListener(eventName, functionPointer, true);
}

// zrušení obsluhy události 
function mtRemoveEvent(eventName, functionPointer) {
    if (mtIE && document.detachEvent)
        document.detachEvent(eventName, functionPointer);
    if (mtMozilla && document.removeEventListener)
        document.removeEventListener(eventName, functionPointer, true);
}

// zastavení šíření události 
function mtStopEvent(e) {
	if (mtIE) {
        e.cancelBubble = true;
        return false;
    }
	if (mtMozilla) {
        e.stopPropagation();
        e.preventDefault();
        return false;
    }
}

/****************************************************************************/

/* End of file. */