﻿// tocommon
function setSameHeight(e1, e2) {
    if (!e1 || !e2) return;
    var view = document.defaultView;
    if (!view) {
        ie_setSameHeight(e1, e2)
        return;
    }
    var element1 = document.getElementById(e1);
    var element2 = document.getElementById(e2);
    if (!element1 || !element2) return;
    var e1Style = view.getComputedStyle(element1, null);
    var e2Style = view.getComputedStyle(element2, null);
    if (!e1Style || !e2Style) return;
    var e1Height = parseInt(e1Style.height);
    var e2Height = parseInt(e2Style.height);
    if (e1Height < e2Height)
        element1.style.height = e2Style.height;
    else
        element2.style.height = e1Style.height;
};

function ie_setSameHeight(e1, e2) {
    if (!e1 || !e2) return;
    var element1 = document.getElementById(e1);
    var element2 = document.getElementById(e2);
    if (!element1 || !element2) return;
    var e1Height = parseInt(element1.offsetHeight);
    var e2Height = parseInt(element2.offsetHeight);
    if (e1Height < e2Height) {
        element1.style.minHeight = e2Height;
        element2.style.minHeight = e2Height;
    }
    else if (e2Height < e1Height) {
        element2.style.minHeight = e1Height;
        element1.style.minHeight = e1Height;
    }
};

function multiplyComputedHeight(e, multiplier) {
    if (!e || multiplier < 2) return;
    var view = document.defaultView;
    if (!view) {
        // Internet Explorer ...
        return ie_multiplyComputedHeight(e, multiplier);
    }
    var element = document.getElementById(e); if (!element) return;
    var eStyle = view.getComputedStyle(element, null); if (!eStyle) return;
    var sh = eStyle.height;
    if (!sh || !sh.endsWith('px')) return;
    var h = parseInt(sh); if (!h) return;
    var pad = eStyle.paddingBottom;
    var padBottom = pad ? parseInt(pad) : 0;
    element.style.height = ((h + padBottom) * multiplier) + "px";
}

function ie_multiplyComputedHeight(e, multiplier) {
    var element = document.getElementById(e); if (!element) return;
    var sh = element.currentStyle.height;
    if (!sh || !sh.endsWith('px')) return;
    var h = parseInt(sh); if (!h) return;
    var pad = element.currentStyle.paddingBottom;
    var padBottom = pad ? parseInt(pad) : 0;
    element.style.height = ((h + padBottom) * multiplier) + "px";
}

function embedLabel(e, label, labelClass, focus) {
    var element = document.getElementById(e); if (!element) return;
    if (focus && element.value == label) {
        clearEmbeddedLabel(e, label, labelClass);
        return;
    }
    if (element.value.length == 0) {
        element.value = label;
        addClass(e, labelClass);
    }
    else
        removeClass(e, labelClass);
}

function clearEmbeddedLabel(e, label, labelClass) {
    var element = document.getElementById(e); if (!element) return;
    if (element.value = label) {
        element.value = "";
        removeClass(e, labelClass);
    }
}

function addClass(e, className) {
    var element = document.getElementById(e); if (!element) return;
    if (element.className.length > 0 && element.className.contains(className))
        return;

    if (element.className == "")
        element.className = className;
    else
        element.className = element.className + "  " + element.className;
}

function removeClass(e, className) {
    var element = document.getElementById(e); if (!element) return;
    if (element.className.contains(className)) {
        element.className = element.className.replace(className, "");
        element.className = element.className.trim();
    }
}

function isKeyArrow(key) {
    return key >= 37 && key <= 40;
}

function isKeySilent(key) {
    return key == 16 || key == 17;
}

String.prototype.contains = function (str)
{ return (str.indexOf(str) != -1); }

/*
    The following code is ripped as-is from: http://www.tek-tips.com/faqs.cfm?fid=6620
*/
String.prototype.trim = function () {
    return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""))
}

String.prototype.startsWith = function (str)
{ return (this.match("^" + str) == str) }

String.prototype.endsWith = function (str)
{ return (this.match(str + "$") == str) }



