//funkcje do blokowania klawiszy

function checkKeyCode(type, code) {
    if (badKeys[type][code]) {
        return true;
    } else {
        return false;
    }
}
function getKeyText(type, code) {
    return badKeys[type][code];
}

var ie = document.all;
var w3c = document.getElementById && !document.all;

function keyEventHandler(evt) {
    this.target = evt.target || evt.srcElement;
    this.keyCode = evt.keyCode || evt.which;
    var targtype = this.target.type;
    if (w3c) {
        if (document.layers) {
            this.altKey = ((evt.modifiers & Event.ALT_MASK) > 0);
            this.ctrlKey = ((evt.modifiers & Event.CONTROL_MASK) > 0);
            this.shiftKey = ((evt.modifiers & Event.SHIFT_MASK) > 0);
        } else {
            //this.altKey = evt.altKey;
            //this.ctrlKey = evt.ctrlKey;
            if (evt.keyCode != 18 && evt.keyCode != 17)
	        {
	            this.altKey = evt.altKey;
	        }
	        else
	        {
	            this.altKey = false;
	        }
	
	        if (evt.keyCode != 18 && evt.keyCode != 17 && !this.altKey)
	        {
	
	            this.ctrlKey = evt.ctrlKey;
	        }
	        else
	        {
	            this.ctrlKey = false;
	        }
        }
        // Internet Explorer
    } else {
        if (evt.keyCode != 18 && evt.keyCode != 17)
        {
            this.altKey = evt.altKey;
        }
        else
        {
            this.altKey = false;
        }

        if (evt.keyCode != 18 && evt.keyCode != 17 && !this.altKey)
        {

            this.ctrlKey = evt.ctrlKey;
        }
        else
        {
            this.ctrlKey = false;
        }
        if ((evt.keyCode == 37 || evt.keyCode == 39 ) && this.altKey) alert('Nawigacja strzałkami jest wyłączona');
    }
    // Find out if we need to disable this key combination
    var badKeyType = "single";
    if (this.ctrlKey) {
        badKeyType = "ctrl";
    } else if (this.altKey) {
        badKeyType = "alt";
    }
    if (checkKeyCode(badKeyType, this.keyCode)) {
        return cancelKey(evt, this.keyCode, this.target, getKeyText(badKeyType, this.keyCode));
    }
}

function cancelKey(evt, keyCode, target, keyText) {
    if (evt.preventDefault) {
        evt.preventDefault();
        evt.stopPropagation();
    } else {
        evt.keyCode = 0;
        evt.returnValue = false;
    }
    window.status = "Użycie " + keyText + " jest zablokowane";
    return false;
}
// ============= DisableKeys.js =============//

function addEvent(obj, evType, fn, useCapture) {
    // General function for adding an event listener
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        alert(evType + " handler could not be attached");
    }
}
function addKeyEvent() {
    // Specific function for this particular browser
    var e = 'keydown';//(document.addEventListener) ? 'keypress' : 'keydown';
    addEvent(document, e, keyEventHandler, false);
}

function handleContextMenu(evt) {
    var event;
    if (evt) {
    	event = evt;
    } else {
		event = window.event;
	}
    var tgt = event.target || event.srcElement;
    if (tgt.type == "text" || tgt.type == "textarea" || tgt.type == "password") {
        return true;
    }
    return false;
}

addKeyEvent();
document.oncontextmenu = handleContextMenu;

