/**
 * Obsługa menu i linkowania na stronie utf-8
 * @version 1.01
 */

var ajaxAction = {
    
    /* pamięta, że trwa oczekiwanie na odpowiedź */
    
    actionTask : false,
    
    /*
     * Przygotowuje parametry dla funckji send
     */
    action : function(actionName, parameters, keyAction) {

        /* jesli jest wywołanie akcji z menu */
        if (actionName) this.menuAction(actionName, parameters, keyAction);
//        else this.moduleAction(parameters);
    },

    
    /** Funckja do ustawiania parametrów
     * takze zmiennych sesyjncych, drugi parametr postAction tru wywołuje
     * przeładowanie strony lub wywołanie wskazanej metodyy po ustawieniu */
    setAction : function(parameters, postAction) {

        var param = "?set";
        var url = '/ajax.do.php' + param;

        var sender = new DestSender();
        if (postAction) {
            if (postAction == true) sender.listener = this.reload;
            else sender.listener = postAction
        }
        sender.get(url, parameters);
    },

    /* Przeładowuje stronę */
    reload : function(text, xml, sender) {
        location.reload();
    },

    openSubmenuElement : null,

    /* metoda zajmuje się sterowaniem rozwijania podmenu */
    subMenuAction : function(groupName) {

        var group = document.getElementById(groupName);

        if (this.openSubmenuElement) {
            this.collapse(this.openSubmenuElement, true);

            var out = this.openSubmenuElement == group;
            this.openSubmenuElement = null;
            if (out)return;
        }
        
        
        if (group) {
            this.openSubmenuElement = group;
            this.collapse(group, group.style.display != 'none');
        }

    },

    /* Zamyka lub otwiera podmenu subMenu w zależności od collapse */
    collapse : function(subMenu, collapse) {
        if (collapse) {
          subMenu.style.display = "none";
        } else {
          subMenu.style.display = "";
        }
    },

    menuAction : function(actionName, parameters, keyAction) {

//        this.subMenuAction();

        if (ajaxAction.actionTask) return;
        ajaxAction.actionTask = true;
        
        var param = "";
        if (actionName) param = "?action=_" + actionName;
        var url = '/ajax.do.php' + param;

        var sender = new DestSender();
        sender.listener = this.waitSignalDisabled;
        this.waitSignalEnabled(sender, keyAction);
//        alert("kupka" + keyAction.style.left);
        sender.get(url, parameters);
    },

    moduleAction : function(moduleName, parameters, keyAction) {
//        alert("Dla modułu: " + moduleName + " parametr id: "+ parameters['id']);

        if (ajaxAction.actionTask) return;
        ajaxAction.actionTask = true;
        
        var param = "";
        if (moduleName) param = "?module=" + moduleName;
        var url = '/ajax.do.php' + param;

        var sender = new DestSender();
        sender.listener = this.waitSignalDisabled;
        this.waitSignalEnabled(sender, keyAction);
        sender.get(url, parameters);
    },

//    i : 100,
    
    /* włącza akcję oczekiwania na odpowiedź z serwera */
    waitSignalEnabled : function(sender, keyAction) {

        if (keyAction == null || keyAction.innerHTML == null) {
            
//            var loading = el("_loading");
//            var winWidth = document.body.offsetWidth;
//            var winHeight = document.body.offsetHeight;
//
//            var e = new WebElement('_loading2');
//
////                loading.offsetLeft - (loading.offsetWidth - loading.clientWidth);
//
//            var elHeight = loading.offsetTop;
//
//            alert("Rozmiar loadera: " + elWidth + " = " + winHeight);
//
//
//            var top = (winHeight - elHeight) / 2;
//            var left = (winWidth - elWidth) / 2;
//            loading.style.left = left + "px";
//            loading.style.top = top + "px";

//              waiter.style.display = "block";
            return;
        }
        
        sender.save('key', keyAction);
        sender.save('key.inner', keyAction.innerHTML);
        sender.save('key.cursor', keyAction.style.cursor);
        $loadingText = slownik.translate("wczytywanie danych");
        keyAction.innerHTML= '<span>' + $loadingText +'</span>';
        keyAction.style.cursor= 'wait';
    },
    
    /* wyłącza akcję oczekiwania na odpowiedź z serwera */
    waitSignalDisabled : function(text, xml, sender) {
        
        ajaxAction.actionTask = false;
        window.status = "";
        
        var keyAction = sender.restore('key');
        if (keyAction == null) {
//            var waiter = document.getElementById("_waiter");
//            waiter.style.display = "none";
            return true;
        }
        keyAction.innerHTML = sender.restore('key.inner');
        keyAction.style.cursor = sender.restore('key.cursor');
        
        var scroll = document.documentElement.scrollTop;
        var srodekTop = $("naglowek").clientHeight;
//        if (scroll > srodekTop + 50) window.scroll(0, srodekTop);
        if (scroll > srodekTop + 50) window.scroll(0, 0);
        

        return true;
    }
    
};


