﻿var isIE = (navigator.userAgent.indexOf("MSIE") != -1)

function addNonIEPx() {
    // Firefox requires "px" on style.width etc.
    if (isIE) {
        return 0;
    } else {
        return "px";
    }
}

function getElement(elementId) {
    try {
        var alternateElementId = elementId.replace(new RegExp(':', 'g'), "_");
        if (document.getElementById) {
            if (document.getElementById(elementId)) return document.getElementById(elementId);
            if (document.getElementById(alternateElementId)) return document.getElementById(alternateElementId);
        } else {
            if (document.all(elementId)) return document.all(elementId);
            if (document.all(alternateElementId)) return document.all(alternateElementId);
        }
    } catch (err) {
        self.status = 'JS Error in iBrowserCompatibility.js (getElement) element not in page [' + elementId + ']';
    }
}

function getElementName(el) {
    if (el.name) return el.name;
    else if (el.attributes["name"]) return el.attributes["name"].value;
}
function setElementName(el, value) {
    if (el.name) el.name = value;
    else if (el.attributes["name"]) el.attributes["name"].value = value;
}

function getElementText(el) {
    if (isIE) return el.innerText;
    else if (el.textContent) return el.textContent;
    return "";
}
function setElementText(el, value) {
    if (isIE) el.innerText = value;
    else el.textContent = value;
}

function mouseCoords(evt) {
    if (!evt) evt = window.event || window.Event;

    if (evt.pageX || evt.pageY) { return { x: evt.pageX, y: evt.pageY }; }
    return { x: evt.clientX + document.body.scrollLeft - document.body.clientLeft,
        y: evt.clientY + document.body.scrollTop - document.body.clientTop
    };
}

function getMouseOffset(target, evt) {
    if (!evt) evt = window.event || window.Event;
    var docPos = getPosition(target);
    var mousePos = mouseCoords(evt);
    return { x: mousePos.x - docPos.x,
        y: mousePos.y - docPos.y - 50
    };
}

var TAB_KEY = 9;
var ENTER_KEY = 13;
var SHIFT_KEY = 16;
var CTRL_KEY = 17;
var ALT_KEY = 18;
var ESCAPE_KEY = 27;
var SPACE_KEY = 32;
var LEFT_ARROW_KEY = 37;
var UP_ARROW_KEY = 38;
var RIGHT_ARROW_KEY = 39;
var DOWN_ARROW_KEY = 40;
var S_KEY = 83;
var DIVIDE_KEY = 111; // Last key before F1

function getKeyPressedCode(evt) {
    // returns 65 (for A)
    if (!evt) evt = window.event || window.Event;
    var keyCode = (evt.which) ? evt.which : evt.keyCode;
    return keyCode;
}
function getKeyPressed(evt) {
    // returns "A"
    if (!evt) evt = window.event || window.Event;
    var keyCode = (evt.which) ? evt.which : evt.keyCode;
    return String.fromCharCode(keyCode).toUpperCase();
}
function setKeyPressedCode(keyCode, evt) {
    if (!evt) evt = window.event || window.Event;
    //if (evt.keyCode) evt.keyCode = keyCode;
}


