﻿var PagingControl = {
    Init: function(el) {
        var className = (el.id);
        if (ControlManager.Exists(className)) {
            var ctrl = ControlManager.Get(className);
        }
        else {
            var ctrl = new BaseControl(
            el.dom.innerHTML,
            "",
            "",
            null,
            "action_" + Utils.GetControlName(el),
            this.CurrentPage,
            el
            );
        }
        ctrl.init();

        return ctrl;
    },
    PageChange: function(action) {
        action.dom.disabled = true;
        var Form = action.basicForm;
        var FormEl = action.basicForm.el;
        var fullActionName = action.dom.getAttribute("name");
        var parameters = "";
        var ProgressEl = null;

        Utils.MaskParentFormElementByActionName(fullActionName);
     
        /*
        var matches = fullActionName.match(new RegExp("parent_([a-zA-Z0-9_:]+)$"));        
        var parentControlName = matches[1];
        var matches = parentControlName.match(new RegExp(":([a-zA-Z0-9_]+)$"));
        if (matches != null)
        {
        var parentControlName = matches[1];
        }
        var parentControl = Ext.DomQuery.selectNode("div[@class*='" + Utils.ControlNamePrefix +  parentControlName +  "']");
        var parent = Ext.get(parentControl.id)
        var parentForm = Ext.DomQuery.selectNode("div[@class*='" + Utils.ControlFormClassName +  " ']", parent.dom)
        Ext.get(parentForm).mask();        
        */

        AjaxProcessor.Request(
            Form.baseCtrl.ajaxPage,
            fullActionName,
            parameters,
            { ctrl: Form.baseCtrl, formEl: FormEl, progressEl: ProgressEl, submitEl: this }
        );
    },
    ItemsOnPageChange: function(action) {
        action.dom.disabled = true;
        var Form = action.basicForm;
        var FormEl = action.basicForm.el;
        var pagingSelect = Form.el.select('[name="' + action.dom.name.replace('action_', '') + '"]:not(.extSubmit)', true).elements[0];
        var fullActionName = action.dom.name + "_itemsCount_" + pagingSelect.dom.value;
        var parameters = "";
        var ProgressEl = null;

        Utils.MaskParentFormElementByActionName(fullActionName);

        AjaxProcessor.Request(
            Form.baseCtrl.ajaxPage,
            fullActionName,
            parameters,
            { ctrl: Form.baseCtrl, formEl: FormEl, progressEl: ProgressEl, submitEl: this }
        );
    }
};