var _xmlHttp;
var _innerHtmlId = "";
var _isMouseDown;
var _getFocused = "";
var _requiredFields = [];
document.getElementsByClassName = function (cl) {
    var retnode = [];
    var myclass = new RegExp('\\b' + cl + '\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};

function confirmLoadExit() {
    return "This page is still loading. You may loose any unsaved data.";
}

function confirmExit() {
    return "You may loose any unsaved data.";
}

function confirmUnsavedExit() {
    return "You have made changes without saving. You may loose any unsaved data.";
}

function query2array(str) {
    var arr = str.split('&');
    var nArr = [];
    var i = 0;
    var kv;
    for (i = 0; i < arr.length; i++) {
        if (arr[i] && arr[i] !== '' && arr[i] !== ' ') {
            kv = arr[i].split('=');
            nArr[kv[0]] = kv[1];
        }
    }
    return nArr;
}

function stateChanged() {
    if (_xmlHttp.readyState == 4 || _xmlHttp.readyState == "complete") {
        document.getElementById(_innerHtmlId).innerHTML = _xmlHttp.responseText;
    }
}

function getXmlHttpObject() {
    _xmlHttp = null;
    try {
        _xmlHttp = new XMLHttpRequest();
    } catch (e) {
        try {
            _xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            _xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return _xmlHttp;
}

function ajax(id, phpUrl, getString) {
    _innerHtmlId = id;
    _xmlHttp = getXmlHttpObject();
    if (_xmlHttp === null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url = phpUrl;
    url = url + "?randCacheNumIntVal=" + Math.random() + "&";
    url = url + getString;
    _xmlHttp.onreadystatechange = stateChanged;
    _xmlHttp.open("GET", url, true);
    _xmlHttp.send(null);
}

function changeElem(id, v) {
    if (document.getElementById(id)) {
        var elem = document.getElementById(id);
        if (elem) {
            var type = elem.type;
            var val;
            if (type == "select-one" || type == "select-multiple") {
                val = v.split(',');
                elem.options.length = 0;
                elem.options[0] = new Option(" - select - ", "");
                for (i = 1; i <= val.length; i++) {
                    if (val[(i - 1)]) {
                        elem.options[i] = new Option(val[(i - 1)], val[(i - 1)]);
                    }
                }
                if (elem.options.length > 1) {
                    elem.selectedIndex = 1;
                    elem.disabled = false;
                } else {
                    elem.disabled = true;
                    elem.options[0] = new Option("None", "");
                }
            } else if (type == "text" || type == "password" || type == "hidden" || type == "textarea") {
                elem.value = v;
            } else {
                elem.innerHTML = v;
            }
        }
    }
}

function run(f, phpUrl, pString, id) {
    if (pString === undefined) {
        pString = "";
    }
    if (id === undefined) {
        id = false;
    }
    _xmlHttp = getXmlHttpObject();
    if (_xmlHttp === null) {
        alert("Browser does not support HTTP Request");
        return;
    }
    var url;
    url = phpUrl + '.php';
    url = url + "?randVal=" + Math.random() + "&";
    _xmlHttp.open("POST", url, true);
    _xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    _xmlHttp.setRequestHeader("Content-length", pString.length);
    _xmlHttp.setRequestHeader("Connection", "close");
    if (f) {
        _xmlHttp.onreadystatechange = function () {
            if (_xmlHttp.readyState == 4 && _xmlHttp.status == 200) {
                if (id) {
                    f(id, _xmlHttp.responseText);
                } else {
                    f(_xmlHttp.responseText);
                }
            }
        };
    }
    _xmlHttp.send(pString);
}

function setOpacity(obj, opacity) {
    if (opacity > 100) {
        opacity = 100;
    }
    if (opacity < 0) {
        opacity = 0;
    }
    opacity = (opacity == 100) ? 99.999 : opacity;
    if (navigator.appName == "Microsoft Internet Explorer") {
        obj.style.filter = "alpha(opacity=" + opacity + ")";
    } else {
        obj.style.opacity = opacity / 100;
    }
}

function fade(dir, objId, opacity, rt, end, nel) {
    if (rt === undefined) {
        rt = 33;
    }
    if (end === undefined) {
        end = 100;
    }
    if (opacity === undefined) {
        opacity = (dir == "IN") ? 0 : 100;
    }
    if (nel === undefined) {
        nel = '';
    }
    if (document.getElementById) {
        if (document.getElementById(objId)) {
            var obj = document.getElementById(objId);
            if (opacity >= 0 && opacity <= end) {
                setOpacity(obj, opacity);
                if (dir == "IN") {
                    opacity += rt;
                } else {
                    opacity -= rt;
                }
                window.setTimeout("fade('" + dir + "','" + objId + "'," + opacity + "," + rt + "," + end + ",'" + nel + "')", 25);
            } else if (dir != "IN" && opacity < 0 && objId == 'divTT') {
                document.body.removeChild(obj);
            } else if (dir = "IN" && opacity >= end && nel) {
                fade("IN", nel, 0, 20);
            }
        }
    }
}

function loadBG(num) {
    if (num) {
        var obj = document.getElementById('loadImgDiv');
        obj.style.background = "";
        obj.style.background = "url('images/loader_" + num + ".gif') center no-repeat";
    }
    window.onbeforeunload = confirmLoadExit;
}

function fLoad(sid, num, nel) {
    if (nel === undefined) {
        nel = false;
    }
    var divImg;
    var lStr;
    if (num > 0 && document.getElementById('loadDiv') && document.getElementById('divAsk')) {
        document.getElementById('divAsk').style.display = 'none';
        if (sid) {
            window.setTimeout("submitForm('" + sid + "')", 100);
        }
        divImg = document.createElement("div");
        divImg.id = "loadImgDiv";
        divImg.style.position = "fixed";
        divImg.style.zIndex = '12';
        divImg.style.top = "0px";
        divImg.style.left = "0px";
        divImg.style.width = "100%";
        divImg.style.height = "100%";
        if (num) {
            lStr = "url('/images/loader_" + num + ".gif') center no-repeat";
            divImg.style.background = lStr;
            if (navigator.appName == "Microsoft Internet Explorer") {
                document.title = "Loading ... ";
                setTimeout("loadBG(" + num + ")", 1000);
            } else {
                setTimeout("loadBG(false)", 1000);
            }
        }
        if (navigator.appName == "Microsoft Internet Explorer") {
            divImg.style.filter = "alpha(opacity=80)";
        } else {
            divImg.style.opacity = 0.80;
        }
        document.body.appendChild(divImg);
        fade('IN', 'loadImgDiv', 0, 20, 80);
    }
    if (!document.getElementById('loadDiv')) {
        var divTag = document.createElement("div");
        divTag.id = "loadDiv";
        divTag.style.position = "fixed";
        divTag.style.zIndex = '10';
        divTag.style.top = "0px";
        divTag.style.left = "0px";
        divTag.style.width = '100%';
        divTag.style.height = '100%';
        divTag.style.backgroundColor = "#F3F3F3";
        if (navigator.appName == "Microsoft Internet Explorer") {
            divTag.style.filter = "alpha(opacity=80)";
        } else {
            divTag.style.opacity = 0.80;
        }
        divTag.className = "loader";
        divTag.ondblclick = function () {
            ask('close');
        };
        document.body.appendChild(divTag);
        if (num) {
            divImg = document.createElement("div");
            divImg.id = "loadImgDiv";
            divImg.style.position = "fixed";
            divImg.style.zIndex = '12';
            divImg.style.top = "0px";
            divImg.style.left = "0px";
            divImg.style.width = "100%";
            divImg.style.height = "100%";
            lStr = "url('images/loader_" + num + ".gif') center no-repeat";
            divImg.style.background = lStr;
            if (navigator.appName == "Microsoft Internet Explorer") {
                document.title = "Loading ... ";
                setTimeout("loadBG(" + num + ")", 1000);
            } else {
                setTimeout("loadBG(false)", 1000);
            }
            if (navigator.appName == "Microsoft Internet Explorer") {
                divImg.style.filter = "alpha(opacity=80)";
            } else {
                divImg.style.opacity = 0.80;
            }
            document.body.appendChild(divImg);
            nel = divImg.id;
            if (sid) {
                window.setTimeout("submitForm('" + sid + "')", 100);
            }
        }
        fade('IN', 'loadDiv', 0, 20, 80, nel);
    }
}

function ask(h, hdr, timeout, tagstostring) {
    var divAsk;
    if (hdr === undefined) {
        hdr = "&nbsp;";
    }
    if (timeout === undefined) {
        timeout = 0;
    }
    if (tagstostring === undefined) {
        tagstostring = false;
    }
    if (h === 'close') {
        if (document.getElementById('tpl_DivAsk')) {
            divAsk = document.getElementById('tpl_DivAsk');
            document.body.removeChild(divAsk);
        }
        if (document.getElementById('loadDiv')) {
            var loadDiv = document.getElementById('loadDiv');
            document.body.removeChild(loadDiv);
        }
        if (document.getElementById('loadImgDiv')) {
            var loadImgDiv = document.getElementById('loadImgDiv');
            document.body.removeChild(loadImgDiv);
        }
    } else {
        if (!document.getElementById('divAsk')) {
            divAsk = document.createElement("div");
            divAsk.id = "tpl_DivAsk";
            divAsk.className = "ask";
            if (tagstostring) {
                h = h.split('<').join('&lt;');
                h = h.split('>').join('&gt;');
            }
            divAsk.innerHTML = '<div id="ask_header"><div id="ask_title" onselectstart="return false;" onmousedown="startDrag(event, document.getElementById(\'tpl_DivAsk\'));">' + hdr + '</div><div align="right" id="ask_close" onclick="javascript:ask(\'close\');"></div></div><div id="ask_content" align="left">' + h + '</div>';
            if (navigator.appName == "Microsoft Internet Explorer") {
                divAsk.style.filter = "alpha(opacity=00)";
            } else {
                divAsk.style.opacity = 0.00;
            }
            document.body.appendChild(divAsk);
            fLoad(false, false, divAsk.id);
            if (timeout > 0) {
                setTimeout("ask('close')", (timeout * 1000));
            }
        }
        if (document.getElementById('divAsk')) {
            document.getElementById('divAsk').focus();
            document.getElementById('divAsk').blur();
        }
    }
}

function changeBtn(id, direction, square) {
    if (square === undefined) {
        square = false;
    }
    var imgL = dig(id + "_left");
    var imgC = dig(id + "_center");
    var imgR = dig(id + "_right");
    var from;
    var to;
    switch (direction) {
    case "over":
        from = "/up/";
        to = "/over/";
        break;
    case "up":
        from = "/over/";
        to = "/up/";
        break;
    case "down":
        from = "/over/";
        to = "/down/";
        break;
    }
    if (!square || navigator.appName != "Microsoft Internet Explorer") {
        if (to == "/down/") {
            imgC.style.paddingTop = '2px';
        } else {
            imgC.style.paddingTop = '0px';
        }
    }
    if (_isMouseDown) {
        if (!square) {
            imgL.src = imgL.src.split('/down/').join(to);
            imgR.src = imgR.src.split('/down/').join(to);
        }
        imgC.style.backgroundImage = imgC.style.backgroundImage.split('/down/').join(to);
    } else {
        if (!square) {
            imgL.src = imgL.src.split(from).join(to);
            imgR.src = imgR.src.split(from).join(to);
        }
        imgC.style.backgroundImage = imgC.style.backgroundImage.split(from).join(to);
    }
}

function loadBtn(dir, ext, inp) {
    if (ext === undefined) {
        ext = ".gif";
    }
    if (inp === undefined) {
        inp = false;
    }
    if (!inp) {
        var loimg = new Image();
        loimg.src = dir + '/over/left' + ext;
        var roimg = new Image();
        roimg.src = dir + '/over/right' + ext;
        var ldimg = new Image();
        ldimg.src = dir + '/down/left' + ext;
        var rdimg = new Image();
        rdimg.src = dir + '/down/right' + ext;
    }
    var coimg = new Image();
    coimg.src = dir + '/over/center' + ext;
    var cdimg = new Image();
    cdimg.src = dir + '/down/center' + ext;
}

function getElemValue(elem) {
    var val = '';
    var frm = elem.form;
    var nm = elem.name;
    var tp = (elem.type !== undefined ? elem.type : '');
	var regx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if (tp == 'radio') {
        for (var e = 0; e < frm[nm].length; e++) {
            if (frm[nm][e].checked) {
                val = frm[nm][e].value;
            }
        }
    } else if (tp == 'checkbox') {
        if (elem.checked) {
            val = elem.value;
        }
    } else {
		if(elem.type == 'hidden' && dig(elem.id + '___Config'))
		{
			if(FCKeditorAPI !== undefined){
				val = FCKeditorAPI.GetInstance(elem.id).GetHTML();
				val = val.split('&nbsp;').join('');
				val = val.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
				val = val.replace(/^<br \/>/, '');
			}
		}
		else
		{
        	val = elem.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
		}
		if(elem.name.indexOf("email-") > -1 || elem.name.indexOf("email_address-") > -1) {
			if(regx.test(val) == false)
			{
				return false;
			}
		}
    }
    return val;
}

function checkRequiredFields(frm) {
    var pass = true;
    var firstMiss = false;
    var tp;
    var elem_lbl;
	var label = false;
	var labels = frm.getElementsByTagName('LABEL');
	var alert_msg = "Missing Required Fields";
	 
    for (i = 0; i < frm.elements.length; i++) {
        elem_lbl = frm.elements[i].name;
        tp = (frm.elements[i].type !== undefined ? frm.elements[i].type : '');
        if (tp == 'file') {
            if (_requiredFields[frm.elements[i].id] !== undefined && _requiredFields[frm.elements[i].id] !== false) {
                elem_lbl = frm.elements[i].id;
            }
        }
        if ((frm.elements[i].type != 'hidden' || (frm.elements[i].type == 'hidden' && dig(frm.elements[i].id + '___Config'))) && _requiredFields[elem_lbl] !== undefined && _requiredFields[elem_lbl] !== false) {
            
			for(var l = 0; l < labels.length; l++)
			{
				if(labels[l].id == 'label_' + elem_lbl)
				{
					label = labels[l];
				}
			}
			if(!label)
			{
				label = dig('label_' + elem_lbl);
			}
			
			if (!getElemValue(frm.elements[i])) {
                if (!firstMiss) {
                    firstMiss = frm.elements[i];
                }
				
				if (label) 
				{
                    label.className = "amap_error tpl_error";
                }
                if ((frm.elements[i].type != 'hidden' || (frm.elements[i].type == 'hidden' && dig(frm.elements[i].id + '___Config')))) {
                    pass = false;
                }
				if(frm.elements[i].name.indexOf("email-") > -1 || frm.elements[i].name.indexOf("email_address-") > -1)
				{
					alert_msg = "Invalid Email Address";
				}
				else
				{
					alert_msg = "Missing Required Fields";
				}
            } else {
                if (label) {
                    if (label.className) {
                        if (label.className == "amap_error tpl_error") {
                            label.className = "";
                        }
                    }
                }
            }
        }
    }
    if (pass) {
        return true;
    } else {
        alert(alert_msg+":\nPlease fill in all Required (*) Fields.");
        if (firstMiss.type != "hidden") {
            firstMiss.focus();
        }
        return false;
    }
}

function fileWillUpload(frm) {
    var r = false;
    for (var f = 0; f < frm.elements.length; f++) {
        if (frm.elements[f].type == 'file') {
            if (frm.elements[f].value) {
                r = true;
            }
        }
    }
    return r;
}

function submitForm(elemorid) {
	var elem;
	if(typeof(elemorid) == "object")
	{
		elem = elemorid;
	}
	else
	{
		elem = dig(elemorid);
	}
    var frm;
    if (elem.form) {
        frm = elem.form;
    } else if (elem.id) {
        for (i = 0; i < document.forms.length; i++) {
            if (document.forms[i] == elem.form) {
                frm = document.forms[i];
                break;
            }
        }
    }
    if (checkRequiredFields(frm)) {
        if (frm.enctype == "multipart/form-data" && !document.getElementById('loadDiv') && fileWillUpload(frm)) {
            fLoad(elem.id, 1);
        } else {
            frm.submit();
        }
    }
}

function sortNumber(a, b) {
    a = parseFloat(a);
    b = parseFloat(b);
    return a - b;
}

function sortAlphabetical(a, b) {
    var varA = String(a).toLowerCase();
    var varB = String(b).toLowerCase();
    if (varA < varB) {
        return -1;
    } else if (varA > varB) {
        return 1;
    } else {
        return 0;
    }
}

function strip_tags(html) {
    if (arguments.length < 3) {
        html = html.replace(/<\/?(?!\!)[^>]*>/gi, '');
    } else {
        var allowed = arguments[1];
        var specified = eval("[" + arguments[2] + "]");
        if (allowed) {
            var regex = '</?(?!(' + specified.join('|') + '))\b[^>]*>';
            html = html.replace(new RegExp(regex, 'gi'), '');
        } else {
            var regex = '</?(' + specified.join('|') + ')\b[^>]*>';
            html = html.replace(new RegExp(regex, 'gi'), '');
        }
    }
    return html;
}

function isNumeric(sText) {
    var ValidChars = "$-0123456789.%,";
    var IsNumber = true;
    var Char;
    var c = 0;
    sText = sText.split("&nbsp;").join("");
    sText = sText.split(" ").join("");
    sText = strip_tags(sText);
    for (c = 0; c < sText.length && IsNumber === true; c++) {
        Char = sText.charAt(c);
        if ((c === 0) && (Char === "-")) {
            continue;
        }
        if (ValidChars.indexOf(Char) === -1) {
            IsNumber = false;
        }
    }
    return IsNumber;
}

function sortDataGrid(tabldid, cellnum, obj, dir, arrow, cname, showInfo) {
    if (showInfo === undefined) {
        showInfo = false;
    }
    var order;
    if (obj.innerHTML.indexOf(String.fromCharCode(8595)) > 0) {
        order = 0;
        obj.innerHTML = obj.innerHTML.replace(String.fromCharCode(8595), String.fromCharCode(8593));
    } else {
        if (obj.innerHTML.indexOf(String.fromCharCode(8593)) > 0) {
            order = 1;
            obj.innerHTML = obj.innerHTML.replace(String.fromCharCode(8593), String.fromCharCode(8595));
        } else {
            order = 0;
            if (dir == "DESC") {
                obj.innerHTML = obj.innerHTML + " " + String.fromCharCode(8595);
            } else if (arrow === true) {
                obj.innerHTML = obj.innerHTML + " " + String.fromCharCode(8593);
            }
        }
    }
    var n = 0;
    for (n = 0; n < obj.parentNode.cells.length; n++) {
        if (obj.parentNode.cells[n] != obj) {
            obj.parentNode.cells[n].innerHTML = obj.parentNode.cells[n].innerHTML.replace(String.fromCharCode(8593), '');
            obj.parentNode.cells[n].innerHTML = obj.parentNode.cells[n].innerHTML.replace(String.fromCharCode(8595), '');
        }
    }
    var tb = document.getElementById(tabldid);
    var arr = [];
    var sNumeric = true;
    var i = 0;
    var num = 0;
    for (i = 0; i < tb.rows.length; i++) {
        if (showInfo && i % 2 == 1) {
            continue;
        }
        arr[num] = [];
        arr[num][0] = tb.rows[i].cells[cellnum].innerHTML;
        if (!isNumeric(tb.rows[i].cells[cellnum].innerHTML)) {
            sNumeric = false;
        } else {
            arr[num][0] = tb.rows[i].cells[cellnum].innerHTML.split("$").join("");
            arr[num][0] = strip_tags(arr[num][0]);
        }
        if (tb.rows[i].cells[cellnum].abbr) {
            arr[num][0] = tb.rows[i].cells[cellnum].abbr;
        }
        arr[num][1] = tb.rows[i].id;
        arr[num][2] = i;
        arr[num][3] = (i + 1);
        num++;
    }
    if (sNumeric) {
        arr.sort(sortNumber);
    } else {
        arr.sort(sortAlphabetical);
    }
    var newRows = [];
    for (i = 0; i < arr.length; i++) {
        newRows.push(document.getElementById(tabldid).rows[arr[i][2]]);
        if (showInfo) {
            newRows.push(document.getElementById(tabldid).rows[arr[i][3]]);
        }
    }
    var eo = 'Odd';
    var el;
    for (i = 0; i < newRows.length; i++) {
        if (dir === "DESC" || order === 1) {
            if (showInfo && i % 2 == 1) {
                document.getElementById(tabldid).insertBefore(newRows[i], document.getElementById(tabldid).rows[1]);
            } else {
                document.getElementById(tabldid).insertBefore(newRows[i], document.getElementById(tabldid).rows[0]);
            }
        } else {
            document.getElementById(tabldid).insertBefore(newRows[i], null);
        }
        if (showInfo) {
            if (i % 2 == 0 && i > 0) {
                eo = (eo == 'Even' ? 'Odd' : 'Even');
            }
        } else {
            eo = i % 2 == 0 ? 'Odd' : 'Even';
        }
        if (eo == 'Odd') {
            newRows[i].className = newRows[i].className.split('Even').join('Odd');
        } else {
            newRows[i].className = newRows[i].className.split('Odd').join('Even');
        }
    }
}

function showDataGridInfo() {
    var OddRows = document.getElementsByClassName("amap_dataGridRowOddInfo");
    var EvenRows = document.getElementsByClassName("amap_dataGridRowEvenInfo");
    var rows = OddRows.concat(EvenRows);
    for (i = 0; i < rows.length; i++) {
        if (rows[i].style.display == 'none') {
            rows[i].style.display = '';
        } else {
            rows[i].style.display = 'none';
        }
    }
}

function keyPress(e, i, id) {
    var keynum;
    if (window.event) {
        keynum = e.keyCode;
    } else if (e.which) {
        keynum = e.which;
    }
    if (keynum == 13) {
        if (checkRequiredFields(document.forms[i])) {
            if (document.forms[i].enctype == "multipart/form-data" && !document.getElementById('loadDiv')) {
                fLoad(id, 1);
            } else {
                document.forms[i].submit();
            }
        }
    }
}

function setEnd(txt) {
    if (txt.createTextRange) {
        var FieldRange = txt.createTextRange();
        FieldRange.moveStart('character', txt.value.length);
        FieldRange.collapse();
        FieldRange.select();
    }
}

function fixIcons() {
    var icons = document.getElementsByClassName('icon');
    for (var i = 0; i < icons.length; i++) {
        mouseIcon(icons[i]);
    }
}

function mouseIcon(img) {
    var imsrc = img.src.substr(0, (img.src.length - 4));
    var ext = img.src.substr((img.src.length - 4), img.src.length);
    img.onmouseover = function () {
        img.src = imsrc + '_hover' + ext;
    };
    img.onmouseout = function () {
        img.src = imsrc + ext;
    };
    img.onmousedown = function () {
        img.src = imsrc + '_down' + ext;
    };
    img.onmouseup = function () {
        img.src = imsrc + '_hover' + ext;
    };
}

function addOnKeyDown() {
    var i = 0;
    var e = 0;
    var tag;
    var val;
    var textNum = 0;
    var newElem;
    for (i = 0; i < document.forms.length; i++) {
        for (e = 0; e < document.forms[i].elements.length; e++) {
            if (document.forms[i].elements[e].type == "text" || document.forms[i].elements[e].type == "password") {
                textNum++;
                if (navigator.appName == "Microsoft Internet Explorer") {
                    tag = document.forms[i].elements[e].outerHTML;
                    val = document.forms[i].elements[e].value;
                    document.forms[i].elements[e].outerHTML = tag.substr(0, tag.length - 1) + ' onKeyDown="keyPress(event,' + i + ', this.id)">';
                    document.forms[i].elements[e].value = val;
                } else {
                    document.forms[i].elements[e].setAttribute('onkeydown', 'keyPress(event,' + i + ', this.id)');
                }
                if ((document.forms[i].elements[e].id && _getFocused && _getFocused == document.forms[i].elements[e].id) || (_getFocused === "" && document.forms[i].elements[e].id.substr(document.forms[i].elements[e].id.length - 2, document.forms[i].elements[e].id.length) === "_f")) {
                    document.forms[i].elements[e].focus();
                    document.forms[i].elements[e].focus();
                    setEnd(document.forms[i].elements[e]);
                }
            }
        }
        if (textNum <= 1) {
            newElem = document.createElement("input");
            newElem.type = "text";
            newElem.style.display = "none";
            document.forms[i].appendChild(newElem);
            document.forms[i].appendChild(newElem);
            newElem = document.createElement("input");
            newElem.type = "text";
            newElem.style.display = "none";
            document.forms[i].appendChild(newElem);
            document.forms[i].appendChild(newElem);
        }
    }
    document.body.onmousedown = function () {
        _isMouseDown = true;
    }
    document.body.onmouseup = function () {
        _isMouseDown = false;
    }
    if (typeof this.window['showEdits'] == 'function') {
        document.onkeydown = keyDown;
        document.onkeyup = keyUp;
    }
    fixIcons();
}

function popup(url, w, h, s, r) {
    if (s === undefined) {
        s = 'yes';
    }
    if (s === false) {
        s = 'no';
    }
    if (r === undefined) {
        r = 'yes';
    }
    if (r === false) {
        r = 'no';
    }
    window.open(url, 'popupWindow', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=' + s + ',resizable=' + r + ',copyhistory=no,width=' + w + ',height=' + h + ',screenX=300,screenY=300,top=150,left=150');
}

function loadImage(id, sc, at, lnk) {
    if (lnk === undefined) {
        lnk = false;
    }
    var obj = document.getElementById(id);
    obj.onload = function () {
        if (lnk) {
            obj.parentNode.parentNode.style.background = '';
        } else {
            obj.parentNode.style.background = '';
        }
        obj.alt = at;
    }
    obj.src = sc;
}

function numOnly(elem) {
    var val = elem.value;
    if (val.indexOf(',') > -1) {
        val = val.split(',').join('');
    }
    if (isNaN(val)) {
        elem.value = 0;
        alert("Number Values Only");
    }
}

function monOnly(elem) {
    var val = elem.value;
    if (val.indexOf(',') > -1) {
        val = val.split(',').join('');
    }
    if (isNaN(val)) {
        elem.value = '0.00';
        alert("Number Values Only");
    }
}

function decOnly(elem) {
    var val = elem.value;
    if (val.indexOf(',') > -1) {
        val = val.split(',').join('');
        elem.value = val;
    }
    if (isNaN(val)) {
        elem.value = 0;
        alert("Number Values Only");
    }
}

function onMouseMove(e) {
    if (e === null || e === undefined || e === false) {
        e = window.event;
    }
    _dragElement.style.left = (_offsetX + e.clientX - _startX) + 'px';
    _dragElement.style.top = (_offsetY + e.clientY - _startY) + 'px';
}

function extractNumber(value) {
    var n = parseInt(value);
    return n == null || isNaN(n) ? 0 : n;
}

function onMouseUp(e) {
    if (_dragElement != null) {
        _dragElement.style.zIndex = _oldZIndex;
        document.onmousemove = null;
        document.onselectstart = null;
        _dragElement.ondragstart = null;
        _dragElement = null;
    }
}

function initDragDrop() {
    document.onmouseup = onMouseUp;
}

function startDrag(e, obj) {
    initDragDrop();
    if (e === null || e === undefined || e === false) {
        e = window.event;
    }
    var target = obj;
    _startX = e.clientX;
    _startY = e.clientY;
    target.style.left = (_startX - (obj.className == 'askbg' ? 320 : 150)) + 'px';
    target.style.top = (_startY - 10) + 'px';
    _offsetX = extractNumber(target.style.left);
    _offsetY = extractNumber(target.style.top);
    _oldZIndex = target.style.zIndex;
    target.style.zIndex = 10000;
    _dragElement = target;
    document.onmousemove = onMouseMove;
    document.body.focus();
    document.onselectstart = function () {
        return false;
    };
    target.ondragstart = function () {
        return false;
    };
    return false;
}

function dig(id) {
    var elem = document.getElementById(id);
    return elem;
}

function dump(arr, level) {
    var dumped_text = "";
    if (level === undefined) {
        level = 0;
    }
    var level_padding = "";
    for (var j = 0; j < level + 1; j++) {
        level_padding += "\t";
    }
    if (typeof (arr) == 'object') {
        for (var item in arr) {
            var value = arr[item];
            if (typeof (value) == 'object') {
                dumped_text += level_padding + "[" + item + "] = Array(\n";
                dumped_text += dump(value, level + 1);
            } else {
                dumped_text += level_padding + "[" + item + "] => " + value + ";\n";
            }
        }
    } else {
        dumped_text = "===>" + arr + "<===(" + typeof (arr) + ")";
    }
    return dumped_text;
}

function show(arr) {
    alert(dump(arr));
}

function selectAll(f, s) {
    var elem;
    var frm = dig(f);
    for (e = 0; e < frm.elements.length; e++) {
        elem = frm.elements[e];
        if (elem.type == 'checkbox') {
            elem.checked = s;
        }
    }
}
