﻿function HideElement(ElementID)
{
    var element;
    element = document.getElementById(ElementID);
    if (element)
    {
        element.style.visibility = "hidden";
    }
}

function ShowElement(ElementID)
{
    var element;
    element = document.getElementById(ElementID);
    if (element)
    {
        element.style.visibility = "visible";
    }
}

function HideRow(ElementID)
{
    var element;
    element = document.getElementById(ElementID);
    if (element)
    {
        element.style.display = "none";
    }
}

function ShowRow(ElementID)
{
    var element;
    element = document.getElementById(ElementID);
    if (element)
    {
        element.style.display = "";
    }
}

// YV: Issue 20382. This function doesn't run in all browsers.
//function SetInnerText(obj, text) {
//    if (obj.firstChild) {
//        obj.firstChild.nodeValue = text;
//    }
//    else {
//        obj.appendChild(document.createTextNode(text));
//    }
//}

function SetInnerText(obj, text) {
    if (obj.textContent) {
        obj.textContent = text;
    }
    else if (obj.innerText) {
        obj.innerText = text;
    }
   }

function GetInnerText(ElementID) {
var element;
element = document.getElementById(ElementID);
if (element.textContent)
	return (element.textContent);
else
	return (element.innerText);
}

function getInternetExplorerVersion() {
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer') {
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
			rv = parseFloat(RegExp.$1);
	}
	return rv;

}

function SetBorderToElementByClass(theClass) {
    SetBorderToElementByClassAndTag(theClass, "div");
    SetBorderToElementByClassAndTag(theClass, "table");
    SetBorderToElementByClassAndTag(theClass, "tr");
    SetBorderToElementByClassAndTag(theClass, "td");
    SetBorderToElementByClassAndTag(theClass, "span");    
}

function RestoreBorderToElementByClass(theClass) {
    RestoreBorderToElementByClassAndTag(theClass, "div");
    RestoreBorderToElementByClassAndTag(theClass, "table");
    RestoreBorderToElementByClassAndTag(theClass, "tr");
    RestoreBorderToElementByClassAndTag(theClass, "td");
    RestoreBorderToElementByClassAndTag(theClass, "span");
}

function SetBorderToElementByClassAndTag(theClass, theTag) {
    var allElements;
    allElements = document.getElementsByTagName(theTag);
    
    for (i = 0; i < allElements.length; i++) {
        if (allElements[i].className == theClass)
            SetBorderToElement(allElements[i]);
    }
}

function RestoreBorderToElementByClassAndTag(theClass, theTag) {
    var originalBorderTop = tmpStyleborderTop; // The RestoreBorderToElementByID clears the tmpStyleborderTop that's why we need to keep a copy
    var allElements;
    allElements = document.getElementsByTagName(theTag);
    
    for (i = 0; i < allElements.length; i++) {
        if (allElements[i].className == theClass) {
            tmpStyleborderTop = originalBorderTop;
            RestoreBorderToElement(allElements[i]);
        }

    }
}

function changecss(theClass, element, value) {
    //Last Updated on June 23, 2009
    //documentation for this script at
    //http://www.shawnolson.net/a/503/altering-css-class-attributes-with-javascript.html
    var cssRules;

    var added = false;
    for (var S = 0; S < document.styleSheets.length; S++) {

        if (document.styleSheets[S]['rules']) {
            cssRules = 'rules';
        } else if (document.styleSheets[S]['cssRules']) {
            cssRules = 'cssRules';
        } else {
            //no rules found... browser unknown
        }

        for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
            if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
                if (document.styleSheets[S][cssRules][R].style[element]) {
                    document.styleSheets[S][cssRules][R].style[element] = value;
                    added = true;
                    break;
                }
            }
        }
        if (!added) {
            if (document.styleSheets[S].insertRule) {
                document.styleSheets[S].insertRule(theClass + ' { ' + element + ': ' + value + '; }', document.styleSheets[S][cssRules].length);
            } else if (document.styleSheets[S].addRule) {
                document.styleSheets[S].addRule(theClass, element + ': ' + value + ';');
            }
        }
    }
}


var tmpStyleborderTop;
var tmpStyleborderBottom;
var tmpStyleborderLeft;
var tmpStyleborderRight;
function SetBorderToElementByID(id) {
    SetBorderToElement(document.getElementById(id));
}

function SetBorderToElement(element) {
    if (tmpStyleborderTop == null) {
        tmpStyleborderTop = element.style.borderTop;
        tmpStyleborderBottom = element.style.borderBottom;
        tmpStyleborderLeft = element.style.borderLeft;
        tmpStyleborderRight = element.style.borderRight;
        element.style.border = "1px solid blue";
    }
}

function RestoreBorderToElementByID(id) {
    RestoreBorderToElement(document.getElementById(id));
}

function RestoreBorderToElement(element) {
    if (tmpStyleborderTop == "") {
        element.style.borderTopWidth = "";
        element.style.borderTopStyle = "";
        element.style.borderTopColor = "";
    }
    else
        element.style.borderTop = tmpStyleborderTop;

    if (tmpStyleborderBottom == "") {
        element.style.borderBottomWidth = "";
        element.style.borderBottomStyle = "";
        element.style.borderBottomColor = "";
    }
    else
        element.style.borderBottom = tmpStyleborderBottom;

    if (tmpStyleborderLeft == "") {
        element.style.borderLeftWidth = "";
        element.style.borderLeftStyle = "";
        element.style.borderLeftColor = "";
    }
    else
        element.style.borderLeft = tmpStyleborderLeft;

    if (tmpStyleborderRight == "") {
        element.style.borderRightWidth = "";
        element.style.borderRightStyle = "";
        element.style.borderRightColor = "";
    }
    else
        element.style.borderRight = tmpStyleborderRight;

    tmpStyleborderTop = null;
}
