﻿/// <reference name="MicrosoftAjax.js" />
//
// Prometeo S.p.A.
// 
// AtlanteWeb NameSpace
//
var AtlanteWeb = {
    debugMode: false,
    loaded: false,
    newEmail: -1,
    emailStatus: '',
    prevRowClick: 0,
    Init: function () {
        if (AtlanteWeb.loaded) return
        AtlanteWeb._resize(null);
        $addHandler(window, "resize", AtlanteWeb.resize);
        setInterval("AtlanteWeb.checkStatus();", 30000);
        AtlanteWeb.loaded = true;
    },
    resize: function (e) {
        setTimeout("AtlanteWeb._resize(null)", 1);
    },
    _resize: function (e) {
        var he = (document.body.clientHeight - 80);
        if (AtlanteWeb.querySt("ControlID")) {
            $get("h").style.display = "none";
            he = document.body.clientHeight - 20;
        }
        var b = $get("b");
        b.style.height = he + "px";
        var b1 = $get("b1");
        b1.style.height = he + "px";
        var divs = b1.getElementsByTagName("div");
        if (divs.length > 0) {
            var s = divs[0].id;
            if (s.indexOf("splitter") != -1 || s.indexOf("Splitter") != -1) {
                var ss = $find(s);
                ss.resize(null, he);
            }
        }
    },
    checkStatus: function () {
        try { ClientService.getStatus(AtlanteWeb.checkStatusOK, AtlanteWeb.checkStatusKO); } catch (err) { AtlanteWeb.onError(err) }
    },
    findMenuNode: function (nodes, text) {
        for (i = 0; i < nodes.length; i++) {
            tempNode = nodes[i].getElementsByTagName("a")[0];
            if (tempNode.innerHTML.indexOf(text) != -1)
                return tempNode;
        }
        return null;
    },
    checkStatusOK: function (result) {
        try {
            var res = eval(result);
            if (res) {
                var temp = $get("RadMenu1").getElementsByTagName("ul")[0].getElementsByTagName("li");
                var node1 = AtlanteWeb.findMenuNode( temp, "Posta");
                var node2 = AtlanteWeb.findMenuNode(temp, "Calendario");
                if (node1 != null)
                    AtlanteWeb.setNumberOnNode(node1, res.NewEmail);
                if (node2 != null)
                    AtlanteWeb.setNumberOnNode(node2, res.TodayActivity);
                if (AtlanteWeb.emailStatus != res.emailStatus) {
                    if ((res.emailStatus != '') && (window.delEmail)) { ajReq("refresh"); }
                    AtlanteWeb.newEmail = res.NewEmail;
                    AtlanteWeb.emailStatus = res.emailStatus;
                }
            }
        } catch (err) { AtlanteWeb.onError(err) }
    },
    setNumberOnNode: function (node, number) {
        if (node.childNodes.length > 1) { node.removeChild(node.childNodes[1]) }
        if (number > 0) {
            var n = document.createElement("span");
            n.setAttribute("class", "numAdvise");
            n.innerHTML = number;
            node.appendChild(n);
        }
    },
    checkStatusKO: function (result) { },
    querySt: function (ji) { hu = window.location.search.substring(1); gy = hu.split("&"); for (i = 0; i < gy.length; i++) { ft = gy[i].split("="); if (ft[0] == ji) { return ft[1]; } } },
    SetValueInThisWindow: function (ControlID, ItemValue, ItemText, doPostBack) {
        if (!ItemText) { ItemText = "Loading.." }
        //Il controllo popupSelector ha all'interno 2 controlli: 
        // un HiddenField (_txt0) per il valore ed un RadInput (_txt2) per la descrizione
        var targetCtrVal = $get(ControlID + '_txt0');
        var targetCtrDescr = $find(ControlID + '_txt2');
        if (!(targetCtrDescr)) { targetCtrDescr = $get(ControlID + '_txt2'); }
        if ((targetCtrDescr != undefined) && (targetCtrVal != undefined)) {
            targetCtrVal.value = ItemValue;
            if (targetCtrDescr.set_value) targetCtrDescr.set_value(ItemText);
            else targetCtrDescr.value = ItemText;
            if (doPostBack) { __doPostBack(targetCtrVal.name, ""); }
        } else { alert('Problema nel popup di selezione'); }
    },
    IsPopUpSelector: function () { if (AtlanteWeb.querySt("ControlID") != null && window.open != null) { return true } return false },
    SetValueInCallerWindow: function (ItemValue, ItemText, doPostBack) {
        if (doPostBack == undefined) { doPostBack = AtlanteWeb.querySt("postback"); }
        var ControlID = AtlanteWeb.querySt("ControlID");
        if ((ControlID) && (window.opener)) { //Setto il valore sulla finestra padre
            window.opener.AtlanteWeb.SetValueInThisWindow(ControlID, ItemValue, ItemText, doPostBack);
            window.close();
            return
        }
        alert("c'è un problema nel popup di selezione, si prega di chiudere la finesta e riprovare..");
    },
    openDetWindow: function (WindowUrl, queryStringName, queryStringValue, isWizard) {
        var url = ((queryStringName != undefined) && (queryStringValue != undefined) ? WindowUrl + "?" + queryStringName + "=" + queryStringValue : WindowUrl);
        if (isWizard == true) { WndSizeX = 500; WndSizeY = 600; } else { WndSizeX = 900; WndSizeY = 600; }
        var wndOpt = "menubar=0,resizable=0,scrollbars=0,status=0,width=" + WndSizeX + ",height=" + WndSizeY + ",top=" + ((screen.height - WndSizeY) / 2) + ",left=" + ((screen.width - WndSizeX) / 2);
        var w = window.open(url, "_blank", wndOpt, false);
        w.focus();
    },
    openPopupDetWindow: function (ControlID, WindowUrl) {
        var value = $get(ControlID + '_txt0').value;
        if (value) { AtlanteWeb.openDetWindow(String.format(WindowUrl, value)) }
    },
    openSelectorWindow: function (ControlID, WindowUrl, Postback) {
        var url;
        if (WindowUrl.indexOf("?", 0) > 0) { url = WindowUrl + '&ControlID=' + ControlID + '&postback=' + Postback; }
        else { url = WindowUrl + '?ControlID=' + ControlID + '&postback=' + Postback; }
        var wndOpt = "menubar=0,resizable=0,scrollbars=0,status=0,width=900,height=600,top=" + ((screen.height - 600) / 2) + ",left=" + ((screen.width - 900) / 2);
        var w = window.open(url, "_blank", wndOpt, false);
        w.focus();
    },
    EnDisControl: function (ctrlID, doPostBack) { var ctrl = $get(ctrlID); (ctrl.enabled ? ctrl.enabled = false : ctrl.enabled = true) },
    GetGridSelectedValue: function (grid, key) {
        if ((grid) && (key)) { var selection = grid.get_selectedItems(); if (selection.length > 0) { return selection[0].getDataKeyValue(key); } }
    },
    GetGridSelectedValueCount: function (grid, key) { return grid.get_selectedItems().length; },
    contextMenuOnGrid: function (grid, menu, eventArgs) {
        var evt = eventArgs.get_domEvent();
        var index = eventArgs.get_itemIndexHierarchical();
        grid.get_masterTableView().selectItem(grid.get_masterTableView().get_dataItems()[index].get_element(), true);
        menu.show(evt);
        evt.cancelBubble = true;
        evt.returnValue = false;
        if (evt.stopPropagation) { evt.stopPropagation(); evt.preventDefault(); }
    },
    disableAJAX: function (sender, args) { args.EnableAjax = false; },
    trim: function (str) { return str.replace(/^\s+|\s+$/g, ''); },
    popUpEvent: function (event, elID, doPostBack) {
        if (event.type == "keypress") { return false; }
        else if (event.type == "keyup") {
            if (event.keyCode == 8 || event.keyCode == 46) { //if key pressed is canc or del
                var el1 = $get(elID + "_txt0");
                var el2 = $find(elID + "_txt1");
                var el3 = $get(elID + "_txt2");
                var el4 = $find(elID + "_rcb");
                el1.value = "";
                if (el2) { el2.set_value(""); el2.set_textBoxValue("") }
                el3.value = "";
                if (el4) { el4.clearItems(); el4.set_text("") }
                if (doPostBack) { __doPostBack(el1.name, ""); }
            }
            else { return false; }
            return true;
        }
    },
    isDoubleClick: function (value) {
        setTimeout("AtlanteWeb.prevRowClick=0;", 1000);
        if (parseInt(AtlanteWeb.prevRowClick) > 0 && AtlanteWeb.prevRowClick == value) {
            return true;
        } else { AtlanteWeb.prevRowClick = value; return false; }
    },
    onError: function (err) { if (AtlanteWeb.debugMode) { alert(err) } }
};

var GCB = {
    setBgPosition: function (im) { if (im.style.backgroundPositionX == "") im.style.backgroundPositionX = "0px"; if (im.style.backgroundPositionY == "") im.style.backgroundPositionY = "0px"; im.style.backgroundPosition = im.style.backgroundPositionX + " " + im.style.backgroundPositionY; },
    onmouseover: function (imID) { var im = $get(imID); im.style.backgroundPositionX = "-20px"; GCB.setBgPosition(im); },
    onmouseout: function (imID) { var im = $get(imID); im.style.backgroundPositionX = "0px"; GCB.setBgPosition(im); },
    onclick: function (elID, imID) { var el = $get(elID); var im = $get(imID); if (el.value == "True") { el.value = "False"; im.style.backgroundPositionY = "0px"; } else { el.value = "True"; im.style.backgroundPositionY = "-19px"; } GCB.setBgPosition(im); }
};

