﻿function getNodeValue(node) {
	return node.firstChild.nodeValue;
}

function elementById(elementid) {
	return document.getElementById(elementid);
}

function _gel(elementid) {
	return document.getElementById(elementid);
}

function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\s)" + searchClass + "(\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function setClass(elementid, classname) {
	var e = elementById(elementid);

	setElementClass(e, classname);
}

function setElementClass(element, classname) {
	element.className = classname;
	element.setAttribute("classname", classname);
}

function disableButton(id, text) {
	elementById(id).disabled=true;
	elementById(id).value = text;
}

function enableButton(id, text) {
	elementById(id).disabled=false;
	elementById(id).value = text;
}

function showElement(id) {
	elementById(id).style.display = "inline";
}

function hideElement(id) {
	elementById(id).style.display = "none";
}

function removeElement(id) {
	var elem = elementById(id);
	elem.parentNode.removeChild(elem);
}

function toggleVisibility(id) {

	if (elementById(id).style.display!="inline") {
		showElement(id);
	} 
	else { 
		hideElement(id); 
	}
}

function toggleElementWithImage(id, img, imgExpand, imgCollapse) {
	if (elementById(id).style.display=="inline") {
		hideElement(id);
		elementById(img).src = imgExpand;
	}
	else {
		showElement(id);
		elementById(img).src = imgCollapse;
	}
}

function swapElements(visible, invisible) {
	showElement(visible);
	hideElement(invisible);
}

function showLoadingMessage() {
	elementById('divLoadingMessage').style.display="inline";
}

function hideLoadingMessage() {
	elementById('divLoadingMessage').style.display="none";
}

String.prototype.replaceAll = function (strTarget, strSubString) {
	var strText = this;
	var intIndexOfMatch = strText.indexOf( strTarget );

	while (intIndexOfMatch != -1) {
		strText = strText.replace(strTarget, strSubString);
		intIndexOfMatch = strText.indexOf(strTarget);
	}

	return(strText);
}

function getComboValue(id) {
	return elementById(id).options[elementById(id).selectedIndex].text;
}

function setModuleMessage(id, message) {
	elementById(id).innerHTML = "<img src='img/ico_alert.gif' align='left' /> " + message;
	setTimeout('elementById("' + id + '").innerHTML = "";', 3500);
}

function changeColor(el, color) {

	el.style.color = color;
}

function buildPostData(elementId) {

    var doc = _gel(elementId);

    var inputs = doc.getElementsByTagName('input');
    var selects = doc.getElementsByTagName('select');
    var textareas = doc.getElementsByTagName('textarea');

    var returning = new String();

    for (var i = 0; i < selects.length; i++) {
        returning += escape(selects[i].name) + "=" + encodeURIComponent(selects[i].value) + "&";
    }

    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == "text" || inputs[i].type=="password" || inputs[i].type=="hidden")
            returning += escape(inputs[i].name) + "=" + encodeURIComponent(inputs[i].value) + "&";
    }

    for (var i = 0; i < textareas.length; i++) {
        returning += escape(textareas[i].name) + "=" + encodeURIComponent(textareas[i].value) + "&";
    }

    return returning.substr(0, returning.length - 1);

}

function createTableRow(cells) {

    var row = document.createElement("tr");

    for (var i = 0; i < cells.length; i++) {
        var cell = document.createElement("td");
        cell.innerHTML = cells[i];
        row.appendChild(cell);
    }

    return row;

}

function ComboSelectedText(element) {
    return element.options[element.selectedIndex].text;
}

function SetComboValueByText(element, text) {

    for (var i = 0; i < element.options.length; i++) {
        if (element.options[i].text == text) {
            element.options[i].selected = true;
        }
    }
}

function nextFocus(element, nextElement) {
    if (element.value.length >= element.maxLength) {
        nextElement.focus();
    }

}

function stopPropagation(e) {
    e = e || event;
    e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
} 


function parseXmlText(text) {

    var xmlDoc = null;
    
    try //Internet Explorer
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(text);
    }
    catch (e) {
        try //Firefox, Mozilla, Opera, etc.
        {
            parser = new DOMParser();
            xmlDoc = parser.parseFromString(text, "text/xml");
        }
        catch (e) { alert(e.message) }
    }

    return xmlDoc;

}
