var aOnSubmit = new Array();
var aTrueScript = "";
var aFalseScript = "";

//-------------------------------------------------------------------------------------------

function GetWidget(widgetId) {
    GetWidget(widgetId, "", widgetId, false);
}

function GetWidget(widgetId, params) {
    GetWidget(widgetId, params, widgetId, false);
}

function GetWidget(widgetId, params, divId) {
    GetWidget(widgetId, params, widgetId, false);
}

function GetWidget(widgetId, params, divId, all) {
    var xmlHttp = GetXmlHttpObject();
    var url = "Widget.aspx";
    url = url + "?_widget=" + widgetId;
    if (params != "") {
        url = url + "&" + params;
    }
    url = url + "&_widgetid=" + divId;
    if (all) {
        url = url + "&_action=all";
    }
    url = url + "&" + Math.random();
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
            document.getElementById(divId).innerHTML = xmlHttp.responseXML.documentElement.getElementsByTagName('content')[0].firstChild.data;
            var finish = xmlHttp.responseXML.documentElement.getElementsByTagName('finish')[0].firstChild.data;
            if (finish && finish != '') {
                eval(finish);
            }
            var dialogID = xmlHttp.responseXML.documentElement.getElementsByTagName('dialogid')[0].firstChild.data;
            if (dialogID && dialogID != '') {
                document.getElementById(dialogID).innerHTML = xmlHttp.responseXML.documentElement.getElementsByTagName('dialog')[0].firstChild.data;
            }
            delete xmlHttp;
        }
    }
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

//------------------------------------------------------------------------------------------

function GetPortlet(portletId) {
    GetPortlet(portletId, "", portletId, false);
}

function GetPortlet(portletId, params) {
    GetPortlet(portletId, params, portletId, false);
}


function GetPortlet(portletId, params, divId) {
    GetPortlet(portletId, params, divId, false);
}

function GetPortlet(portletId, params, divId, all) {
    var xmlHttp = GetXmlHttpObject();
    var url = "Portlet.aspx";
    url = url + "?_portlet=" + portletId;
    if (params != "") {
        url = url + "&" + params;
    }
    url = url + "&_portletid=" + divId;
    if (all) {
        url = url + "&_action=all";
    }
    url = url + "&" + Math.random();
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
            document.getElementById(divId).innerHTML = xmlHttp.responseXML.documentElement.getElementsByTagName('content')[0].firstChild.data;
            var finish = xmlHttp.responseXML.documentElement.getElementsByTagName('finish')[0].firstChild.data;
            if (finish && finish != '') {
                eval(finish);
            }
            var dialogID = xmlHttp.responseXML.documentElement.getElementsByTagName('dialogid')[0].firstChild.data;
            if (dialogID && dialogID != '') {
                document.getElementById(dialogID).innerHTML = xmlHttp.responseXML.documentElement.getElementsByTagName('dialog')[0].firstChild.data;
            }
            delete xmlHttp;
        }
    }
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

//-------------------------------------------------------------------------------------------

function postPortlet(portletId, params, form) {
    var xmlHttp = GetXmlHttpObject();
    var url = "Portlet.aspx";
    url = url + "?_portlet=" + portletId;
    if (params != "") {
        url = url + "&" + params;
    }
    url = url + "&" + Math.random();

    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
            document.getElementById(portletId).innerHTML = xmlHttp.responseText;

        }
    }
    var parameters = buildFields(form);
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.send(parameters);
}

function GetXmlHttpObject() {
    if (typeof window.XMLHttpRequest != "undefined") {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
		"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
        for (var i = 0; i < aVersions.length; i++) {
            try {
                var oXmlHttp = new ActiveXObject(aVersions[i]);
                return oXmlHttp;
            } catch (oError) {
                //Do nothing
            }
        }
    }
}

function buildFields(obj) {
    var getstr = "";
    for (i = 0; i < obj.elements.length; i++) {
        if (obj.elements[i].tagName == "INPUT") {
            if (obj.elements[i].type == "text") {
                getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
            } else if (obj.elements[i].type == "radio") {
                if (obj.elements[i].checked) {
                    getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
                }
            } else if (obj.elements[i].type == "hidden") {
                getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
            } else if (obj.elements[i].type == "password") {
                getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
            } else if (obj.elements[i].type == "file") {
                getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
            } else if (obj.elements[i].type == "checkbox") {
                if (obj.elements[i].checked == true) {
                    getstr += obj.elements[i].name + "=" + escape1("on") + "&";
                } else {
                    getstr += obj.elements[i].name + "=" + escape1("off") + "&";
                }
            }
        }
        if (obj.elements[i].tagName == "TEXTAREA") {
            getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].value) + "&";
        }
        if (obj.elements[i].tagName == "SELECT") {
            for (var ii = (obj.elements[i].options.length - 1); ii >= 0; ii--) {
                if (obj.elements[i].options[ii].selected == true) {
                    getstr += obj.elements[i].name + "=" + escape1(obj.elements[i].options[ii].value) + "&";
                }
            }
        }
    }
    return getstr;
}

function escape1(what) {
    if (what != undefined) {
        if (what == "") { return ""; }
        what = what.replace(/&/g, "%26");
        return what;
    } else {
        return "";
    }
}

function clearSubmit() {
    aOnSubmit = new Array();
}

function addSubmit(text, code) {
    if (code == '' || !code) {
        aOnSubmit[aOnSubmit.length] = text;
    }
    else if (code == 'true') {
        aTrueScript = text;
    }
    else if (code == 'false') {
        aFalseScript = text;
    }
}

function doSubmit() {
    var x;
    for (ii = 0; ii < aOnSubmit.length; ii++) {
        x = eval(doEval1(aOnSubmit[ii]));
        if (x == undefined) { x = true; }
        if ((x + "*") == "*") { x = true; }
        if (x == false) {
            if (aFalseScript != '') {
                eval(doEval1(aFalseScript));
            }
            return false;
        }
    }
    if (aTrueScript != '') {
        eval(doEval1(aTrueScript));
    }
    return true;
}

//---------------------------------------
function DataPortletGet(displayDiv, url) {
    var obj = document.getElementById(displayDiv);
    url = url + "&" + Math.random();
    xhr = GetXmlHttpObject();
    if (xhr) {
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 || xhr.readyState == "complete") {
                obj.innerHTML = xhr.responseText;
                var x = obj.getElementsByTagName("script");
                for (var i = 0; i < x.length; i++) {
                    if (x[i].text != "") {
                        doEval2(x[i].text);
                        printWait('');
                    }
                }
            }
        }
        killMCE(document.form)
        xhr.open("GET", url, true);
        xhr.send(null);
    }
}

//-------------------------------------------------
function DataPortletPost(displayDiv, url) {
    var obj = document.getElementById(displayDiv);
    url = url + "&" + Math.random();
    xhr = GetXmlHttpObject();
    if (xhr) {
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 || xhr.readyState == "complete") {
                obj.innerHTML = xhr.responseText;
                var x = obj.getElementsByTagName("script");
                for (var i = 0; i < x.length; i++) {
                    if (x[i].text != "") {
                        doEval2(x[i].text);
                        printWait('');
                    }
                }
            }
        }
        killMCE(document.form)
        var parameters = buildFields(document.form);
        xhr.open("POST", url, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
        xhr.setRequestHeader("Content-length", parameters.length);
        xhr.send(parameters);
    }
}

//-------------------------------------------------


//--Code for Login Widget Type-----------------------------------------------
function wlogin(uid, pwd, rem, oklink, noklink) {
    var obj = document.getElementById(uid);
    var obj2 = document.getElementById(pwd);
    var obj3 = document.getElementById(rem);
    if (obj && obj2) {
        LoginWidgetPost(obj.value, obj2.value, obj3.value, oklink, noklink);
    }
}

function loginWSubmit(field, event, uid, pwd, rem, oklink, noklink) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        wlogin(uid, pwd, rem, oklink, noklink); return false;
    }
    else { return true; }
}

function LoginWidgetPost(uid, pwd, rem, oklink, noklink) {
    url = "Servlet.aspx?_servlet=Login";
    url += "&" + Math.random();
    xhr = GetXmlHttpObject();
    if (xhr) {
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 || xhr.readyState == "complete") {
                tmp = xhr.responseText;
                if (tmp == "guest") {
                    window.open(noklink, '_self');
                }
                if (tmp == "trueid") {
                    window.open(oklink, '_self')
                }
            }
        }
        var parameters = "uid=" + uid + "&pwd=" + pwd + "&rem=" + rem;
        xhr.open("POST", url, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
        xhr.setRequestHeader("Content-length", parameters.length);
        xhr.send(parameters);
    }
}

//--Code for Server Validation-----------------------------------------------
function CheckOnServer(nme) {
    this.attribute = "";
    this.field = "";
    this.filter = "";
    this.container = "";
    this.servlet = "Check";
    this.type = "";
    this.message = "";
    this.name = nme;
}

CheckOnServer.prototype.SetField = function(att, fld) {
    this.attribute = att;
    this.field = fld;
}

CheckOnServer.prototype.SetContainer = function(cont) {
    this.container = cont;
}

CheckOnServer.prototype.SetFilter = function(flt) {
    this.filter = flt;
}

CheckOnServer.prototype.SetType = function(tpe) {
    this.type = tpe;
}

CheckOnServer.prototype.IsUnique = function(fld) {
    if (this.message == "Found") { return true; }
    if (this.message == "Not Found") { return true; }
    printError(fld, "This value must be unique");
    return false;
}

CheckOnServer.prototype.Check = function(dn, value) {
    this.message = "*";
    url = "Servlet.aspx?_servlet=" + this.servlet;
    url += "&" + Math.random();
    xhr = GetXmlHttpObject();
    xhr.test = this.name;
    if (xhr) {
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 || xhr.readyState == "complete") {
                eval(xhr.test + '.message = xhr.responseText;');
            }
        }
        tmp = this.filter + " ";
        i = tmp.lastIndexOf("}}");
        if (i >= 0) {
            j = tmp.lastIndexOf("{{");
            if (j >= 0) {
                mid = tmp.substring(j + 2, i);
                obj = document.getElementById(mid);
                if (obj) {
                    if (obj.value) {
                        tmp = tmp.substring(0, j) + obj.value + tmp.substring(i + 2);
                    }
                }
            }
        }
        parameters = "type=" + escape1(this.type);
        parameters += "&container=" + escape1(this.container);
        parameters += "&filter=" + escape1(tmp);
        parameters += "&attribute=" + escape1(this.attribute);
        parameters += "&field=" + escape1(this.field);
        parameters += "&dn=" + escape1(dn);
        parameters += "&value=" + escape1(this.value);
        parameters += "&name=" + escape1(this.name);
        xhr.open("POST", url, true);
        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
        xhr.setRequestHeader("Content-length", parameters.length);
        xhr.send(parameters);
    }
}


