﻿var objComm = new proComm();
var objCookie = new proCookie();
var objXML = new proXML();
var strPathFile = '';
var aryId = new Array()
var aryXML = new Array()
var aryDirty = new Array()

//--- Communication
function proComm() {
}
proComm.prototype.submitRequest = function(strTablePk, strSqlPk, strParm0, strParm1, strParm2, strParm3, strParm4, strParm5) {
    var strEvent = objTest.addEvent('submitRequest(' + strTablePk + '&sep;' + strSqlPk + '&sep;' + strParm0 + '&sep;' + strParm1 + '&sep;' + strParm2 + '&sep;' + strParm3 + '&sep;' + strParm4 + '&sep;' + strParm5); // DelMe
    __doPostBack2(strTablePk + '&sep;' + strSqlPk, strParm0 + '&sep;' + strParm1 + '&sep;' + strParm2 + '&sep;' + strParm3 + '&sep;' + strParm4 + '&sep;' + strParm5);
}
proComm.prototype.sendRsp = function(elmObj, strTabId, strControlPk, strControlTypePk, strSepParm, strPageNo) {
    var strEvent = objTest.addEvent('sendRsp(' + getId(elmObj) + ',' + strTabId + ',' + strControlPk + ',' + strControlTypePk + ',' + strSepParm + ',' + strPageNo + ')');
    try {
        soapRsp(strTabId, strControlPk, strControlTypePk, objXML.getXML(elmObj), strSepParm, strPageNo)
    } catch (err) { objTest.showIssue(err); }
}
proComm.prototype.sendRqt = function(elmObj, strTabId, strControlPk, strControlTypePk, strTablePk, strSqlPk, strXMLParm, strSepParm) {
    var strEvent = objTest.addEvent('sendRqt(' + getId(elmObj) + ',' + strTabId + ',' + strControlPk + ',' + strControlTypePk + ',' + strTablePk + ',' + strSqlPk + ',' + strXMLParm + ',' + strXMLParm + ')');
    try {
        if (getContinue((strSqlPk.substring(0, 3) == 'del'), strDeleteItem)) {
            soapRqt(strTabId, strControlPk, strControlTypePk, strTablePk, strSqlPk, objXML.getXML(elmObj), strSepParm);
        }
    } catch (err) { objTest.showIssue(err); } 
}
proComm.prototype.sendUpl = function(elmObj, strTablePk, strSqlPk, strSepParm) {
var strEvent = objTest.addEvent('sendUpl(' + getId(elmObj) + ',' + strTablePk + ',' + strSqlPk + ',' + strSepParm + ')');
    try {
        soapUpl(strTablePk, strSqlPk, objXML.getXML(elmObj), strSepParm);
    } catch (err) { objTest.showIssue(err); }
}
//--- Cookie
function proCookie() {
}
proCookie.prototype.saveCookie = function(strSqlPk) {
    // DefenseOn - No xml 
    //var strEvent = objTest.addEvent('objCookie.saveCookie(' + strSqlPk + ')');
    try {
        if (strSqlPk.toLowerCase() == 'delallcookie') {
            var strCookies = document.cookie.split(';');
            for (var idx = 0; idx < strCookies.length; idx++) {
                var strSub = strCookies[idx].indexOf('=');
                var strName = strSub > -1 ? strCookies[idx].substr(0, strSub) : strCookies[idx];
                document.cookie = unescape(strName) + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
            }
            refreshParent();
        }
    } catch (err) { objTest.showIssue(err); }
}
proCookie.prototype.setCookie = function(strName, strValue, lngDays) {
    var strEvent = objTest.addEvent('objCookie.setCookie(strName:=' + strName + ', strValue:=' + strValue + ', lngDays:=' + lngDays + ')');
    try {
        var expireDate = new Date();
        expireDate.setDate(expireDate.getDate() + lngDays);
        document.cookie = strName + '=' + escape(strValue) + ((lngDays == null) ? "" : ';expires=' + expireDate.toGMTString());
    } catch (err) { objTest.showIssue(err); }
}
proCookie.prototype.getCookie = function(strKey) {
    var strEvent = objTest.addEvent('objCookie.getCookie(strName:=' + strName + ')');
    try {
        if (isNOE(document.cookie)) {
            return '';
        } else {
            var strCookies = document.cookie.split('; ');
            for (var idx = 0; idx < strCookies.length; idx++) {
                if (strName == strCookies[idx].split('=')[0]) {
                    return strCookies[idx].split('=')[1];
                }
            }
        }
    } catch (err) { objTest.showIssue(err); return ''; }
}
//--- XML (Neromancer [low-tech])
function proXML() {
    //--- Ut 2008.06.11 *Dc*
}
proXML.prototype.initXML = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    var strEvent = objTest.addEvent('objXML.initXML(' + getId(elmObj) + ')', '');
    if (!elmObj) { return ''; } //--- Defense
    if (isNOE(getId(elmObj))) { return ''; } //--- Defense
    if (!this.getElement(elmObj)) { return ''; } //--- Defense
    try {
        this.addItem(elmObj, getInnerHTML(this.getElement(elmObj)));
        objEditor.initEditor(elmObj);
    } catch (err) { objTest.showIssue(err); }
}
proXML.prototype.getXML = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    var strEvent = objTest.addEvent('objXML.getXML(' + getId(elmObj) + ')', '');
    if (!elmObj) { return ''; } //--- Defense
    this.initXML(elmObj);
    var strPre = this.getName(elmObj, 'hdn').substring(0, this.getName(elmObj, 'hdn').indexOf('_', 0)) + '_';
    return replaceAll(this.getItem(elmObj), strPre, '');
}
proXML.prototype.setXML = function(strTablePk, strPks, strIds) {
    //---
    var aryId = strIds.split(",");
    var aryPk = strPks.split(",");
    var strXml = '<' + strTablePk + '><' + strTablePk + '>';
    for (var idx = 0; idx < aryId.length; idx++) {
        strXml = strXml + '<' + aryPk[idx] + '>' + getText(aryId[idx]) + '</' + aryPk[idx] + '>'
    }
    return strXml + '</' + strTablePk + '></' + strTablePk + '>';
}
proXML.prototype.setValue = function(elmObj, strValue) {
    //--- Ut 2008.06.11 *Dc*
    var strEvent = objTest.addEvent('objXML.setValue(' + getId(elmObj) + ', ' + strValue + ')', '');
    if (!elmObj) { return ''; } //--- Defense
    this.initXML(elmObj);
    this.setItem(elmObj, replaceAll(this.getItem(elmObj), '<' + this.getName(elmObj) + '>' + this.getValue(elmObj) + '</' + this.getName(elmObj) + '>', '<' + this.getName(elmObj) + '>' + strValue + '</' + this.getName(elmObj) + '>'))
}
proXML.prototype.getValue = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    var strEvent = objTest.addEvent('objXML.getValue(' + getId(elmObj) + ')', '');
    if (!elmObj) { return ''; } //--- Defense
    var strName = this.getName(elmObj); objTest.addEvent(strEvent, '2');
    return this.getItem(elmObj).substring(this.getItem(elmObj).indexOf('<' + strName + '>') + (strName.length + 2), this.getItem(elmObj).indexOf('</' + strName + '>'));
}
proXML.prototype.getName = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    var strEvent = objTest.addEvent('objXML.getName(' + getId(elmObj) + ')', '');
    if (!elmObj) { return ''; } //--- Defense
    if (isNOE(getId(elmObj))) { return ''; } //--- Defense
    var strName = getId(elmObj).replace(getId(elmObj).substring(0, 3), 'hdn'); objTest.addEvent(strEvent, '1');
    var strPre = '<' + this.getIdHdn(elmObj); objTest.addEvent(strEvent, '2');
    if (this.getItem(elmObj).indexOf(strPre.toUpperCase()) >= 0) { return strName.toUpperCase(); }; objTest.addEvent(strEvent, '3');
    if (this.getItem(elmObj).indexOf(strPre.toLowerCase()) >= 0) { return strName.toLowerCase(); }; objTest.addEvent(strEvent, '4');
    return strName.substring(0, strName.indexOf('_', 0));
}
proXML.prototype.getIdHdn = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    if (!elmObj) { return ''; } //--- Defense
    if (isNOE(getId(elmObj))) { return ''; } //--- Defense
    var strIdHdn = getId(elmObj).replace(getId(elmObj).substring(0, 3), 'hdn')
    if (strIdHdn.indexOf('_', 0) > 0) { strIdHdn = strIdHdn.substring(0, strIdHdn.indexOf('_', 0)); }
    return strIdHdn
}
proXML.prototype.getElement = function(elmObj) {
    //--- Ut 2008.10.06 *Dc*
    if (!elmObj) { return ''; } //--- Defense
    if (isNOE(getId(elmObj))) { return ''; } //--- Defense
    elmObj = document.getElementById(this.getIdHdn(elmObj));
    if (elmObj) { return elmObj; } //--- Defense
}
proXML.prototype.addItem = function(elmObj, strXML) {
    //--- Ut 2008.06.11 *Dc*
    if (!elmObj) { return ''; } //--- Defense
    if (!isNOE(this.getItem(elmObj))) { return ''; } //--- Defense
    aryId.push(getId(this.getElement(elmObj)));
    aryXML.push(strXML);
    aryDirty.push(false);
}
proXML.prototype.getItem = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    if (!elmObj) { return ''; } //--- Defense
    for (var idx = 0; idx < aryId.length; idx++) {
        if (getId(this.getElement(elmObj)) == aryId[idx]) {
            return aryXML[idx];
        }
    }
    return '';
}
proXML.prototype.setItem = function(elmObj, strXML) {
    //--- Ut 2008.06.11 *Dc*
    if (!elmObj) return ''; //--- Defense
    for (var idx = 0; idx < aryId.length; idx++) {
        if (getId(this.getElement(elmObj)) == aryId[idx]) {
            aryXML[idx] = strXML;
            aryDirty[idx] = true;
        }
    }
}
proXML.prototype.clearItems = function() {
    //--- Ut 2008.06.11 *Dc*
    for (var idx = 0; idx < aryId.length; idx++) {
        aryId.pop(idx);
        aryXML.pop(idx);
        aryDirty.pop(idx);
    }
}
proXML.prototype.getDirty = function(elmObj) {
    //--- Ut 2008.06.11 *Dc*
    if (!elmObj) return ''; //--- Defense
    return this.aryDirty[getId(this.getElement(elmObj))];
}
//--- Date
Date.prototype.toMMDDYYYY = function () {
    return isNaN (this) ? 'NaN' : [this.getMonth() > 8 ? this.getMonth() + 1 : '0' + (this.getMonth() + 1), this.getDate() > 9 ? this.getDate() : '0' + this.getDate(), this.getFullYear()].join('/')
}
function ValidatorCommonOnSubmit() {
    event.returnValue = !Page_BlockSubmit;
    alert('j');
    Page_BlockSubmit = false;
}
function Save(strTablePk, strSqlPk, strPks, strIds) {
    Page_ClientValidate();
    if (Page_IsValid) {
        alert(strSqlPk + objXML.setXML(strTablePk, strPks, strIds));
    }
}
