﻿
var Portal = {
    UI: {
        Alert: function(t, m, icon, cb) {
            if (MsgWindow && MsgWindow.alert) {
                return MsgWindow.alert(m, t, icon, cb);
            } else {
                alert(m);
            }
            return null;
        }
, Loader: {
    Show: function(divId,msg) {
        ShowLoader(divId, msg);
    }
, Hide: function(divId) {
    HideLoader(divId);
}
}
, Request: {
    Start: function(e) {
        var msg = '';
        try {
            msg = GetResourceText('ProcessingMessage');
        } catch (error) {
            msg = 'Processing your request... please wait';
        }
        if (MsgWindow && MsgWindow.requestStart) {
            MsgWindow.requestStart(msg);
        }
        return true;
    }
, End: function(e) {
    if (MsgWindow && MsgWindow.requestEnd) {
        MsgWindow.requestEnd();
    }
    var title = '';
    try {
        title = GetResourceText('AlertMessageTitle');
    } catch (error) {
        title = 'Application Alert';
    }

    if (e && e.Message) { return Portal.UI.Alert(title, e.Message); }
}
}
    }
}

/* Rich text Box */
var RichDropDown = {
    HiddenId: null,
    LabelId: null,
    DivId: null,
    Init: function(hiddenId, labelId, divId) {
        this.HiddenId = hiddenId;
        this.LabelId = labelId;
        this.DivId = divId;
    }
    , Select: function(Id, Name) {
        if (this.LabelId == null || this.HiddenId == null) {
            alert('Dropdown has not been initialized');
        }
        setInputValue(this.HiddenId, Id);
        updateDiv(this.LabelId, Name);
        this.Toggle();
    }
    , RadTreeNode_Click: function(node) {
        if (node)
            this.Select(node.Value, node.Text);
    }
    , Toggle: function() { toggleEl(this.DivId); }
};

/* Set Selected Classes */
var Elements = {
    InitToolbars: function() {
        var divElements = document.getElementsByTagName('div');
        var divToolIdx = 0;
        for (var e = 0; e < divElements.length; e++) {
            if (divElements[e].className == 'tool') {
                if (divToolIdx == 0)
                    Elements.Select(divElements[e]);
                divElements[e].savedevents = { onclick: divElements[e].onclick };
                divElements[e].onclick = function() {
                    Elements.Select(this);
                    if (this.savedevents && this.savedevents.onclick)
                        return this.savedevents.onclick();
                    return false;
                }
                divToolIdx++;
            }
        }
    }
    , Select: function(htmlElement, cssClass) {
        cssClass = cssClass ? cssClass : 'selected';

        var divSiblings = htmlElement.parentNode.childNodes;
        for (var c = 0; c < divSiblings.length; c++) {
            if (divSiblings[c].nodeType == 1) {
                var className = divSiblings[c].className;
                divSiblings[c].className = ReplaceVB(className, cssClass, '');
            }
        }
        htmlElement.className += ' selected';
    }
}
// initialize the tool bars
addOnloadEvent(Elements.InitToolbars);


function Login_Init() {
    Portal.UI.Loader.Show('LoginStatus', 'Checking user credentials....');
    return true;
}
function Login_Callback(obj) {
    Portal.UI.Loader.Hide('LoginStatus');
    if (obj.LoginOk) {
        updateDiv('LoginStatus', 'Loading account information....');
        location.replace(obj.Url);
    } else {
        // failed to login
    Portal.UI.Alert('Login Failed', obj.Message);
    }
} 