.=< { Star Gans Tq } >=.

  • Home

  • Killme
  • Download
  • Current Path : /home/m/e/h/meharicl/home2/meharicl/www/recensement2/js/jquery/updatepanel/
    Upload File
    @Command ~ $  
    Current File : /home/m/e/h/meharicl/home2/meharicl/www/recensement2/js/jquery/updatepanel/ccs-update-panel-im.js

    (function ($) {
    
        var Url = $.fn.Url;
    
        var dataParameterName = "ccsUpdatePanel";
    
        var defaults = {
            cache: false
        };
    
        var defaultRequest = {
            method: "GET"
        };
    
        var panels = ({});
    
    
        var sortFunc = function (a, b) {
            if (!a.handler.order)
                a.handler.order = 0;
            if (!b.handler.order)
                b.handler.order = 0;
            return a.handler.order - b.handler.order;
        };
    
        if (!$.fn.oldOn) {
            $.fn.oldOn = $.fn.on;
            $.fn.on = function () {
                var res = $.fn.oldOn.apply(this, arguments);
                res.each(function () {
                    $.each($._data(this)["events"], function () {
                        this.sort(sortFunc);
                    });
                });
                return res;
            };
        }
        
        var replacemetFunctions = {
            _updatePanel: function (updatePanelElement, rendering) {
                var $updatePanelElement = $(updatePanelElement);
                $updatePanelElement.html(rendering);
                events.onafterrefresh($updatePanelElement);
                $updatePanelElement.trigger($.Event("afterrefresh.ccsUpdatePanel"), {});
            }
        };
    
    
        var events = {
            onLinkClick: function (event) {
                var obj = $(this);
                var href = obj.attr("href");
                if (href.indexOf("javascript:") != 0)
                    return true;
                eval(href.replace(/^javascript:/, ""));
                return false;
            },
            onSubmitClick: function (event) {
                var obj = $(this);
                event.data.lastClick = obj;
            },
            onFormSubmit: function (event) {
                var obj = $(this);
                var method = obj.attr("method").toUpperCase();
                method = method == "" ? "GET" : method;
                var ajaxParams = { url: obj.attr("action"), type: method };
                event.data.self.trigger($.Event("beforeresubmit.ccsUpdatePanel"), {});
                if (method == "POST") {
                    var u = new Url("?" + obj.serialize());
                    if (event.data.lastClick)
                        u.parameter(event.data.lastClick.attr("name"), event.data.lastClick.attr("value"));
                    ajaxParams.data = u.parameterString();
                }
                else {
                    var u = new Url(ajaxParams.url);
                    u._params = [];
                    u.params(obj.serialize());
                    if (event.data.lastClick)
                        u.parameter(event.data.lastClick.attr("name"), event.data.lastClick.attr("value"));
                    ajaxParams.url = u.toString();
                };
                methods.refresh.call(event.data.self, ajaxParams);
                return false;
            },
            onafterrefresh: function (obj) {
                methods.bindHandlers.call(obj, {});
                obj.ccsBind("reBind");
            },
            onbeforerefresh: function (obj) {
            },
            onafterrequest: function (obj) {
            }
        };
    
        events.onFormSubmit.order = 1;
        events.onSubmitClick.order = 1;
        events.onLinkClick.order = 1;
    
        var methods = {
            init: function (options) {
                var settings = $.extend({}, defaults, options);
    
                return this.each(function () {
                    var obj = $(this);
                    var id = obj.attr("id");
                    panels[id] = obj;
                    var opts = $.extend({}, settings, { self: obj, currentUrl: window.location.href, state: "ready" });
                    obj.data(dataParameterName, opts);
                    methods.bindHandlers.call(obj, options);
                });
            },
            getReplacementFunction: function (funcName) {
                return replacemetFunctions[funcName];
            },
            invoke: function (clientId, eventName) {
                var obj = typeof (clientId) == "string" ? $("#" + clientId) : $(clientId);
                events["on" + eventName](obj);
                obj.trigger($.Event(eventName + ".ccsUpdatePanel"), {});
            },
            getPanelId: function (e) {
                var params = e.get_response().get_responseData().split('|');
                for (var i = 0; i < params.length; i++) {
                    if (params[i] == "updatePanel") {
                        return params[i + 1];
                    }
                }
                return "";
            },
            getPanelByPostback: function (e) {
                var obj = e.get_postBackElement();
                var node = obj;
                while (node != document) {
                    if ($(node).data(dataParameterName))
                        return node;
                    node = node.parentNode;
                }
                return null;
            },
            refresh: function (options) {
                if (!options) {
                    options = this.data(dataParameterName);
                    options.url = options.currentUrl;
                }
                var url = options.url;
                if (url == "#")
                    return;
                var obj = $(this);
                var data = obj.data(dataParameterName);
                var name = data.name;
                url = new Url(url);
                url.parameter("FormFilter", name);
                url = url.toString();
                obj.trigger($.Event("beforerefresh.ccsUpdatePanel"), {});
                $.ajax(url, options)
                    .done(function (text) {
                        var index = text.indexOf("|");
                        data.currentUrl = text.substring(0, index);
                        obj.html(text.substr(index + 1));
                        obj.ccsBind("reBind");
                        methods.bindHandlers.call(obj, options);
                        obj.trigger($.Event("afterrefresh.ccsUpdatePanel"), {});
                    })
                    .fail(function () {
                        obj.trigger($.Event("afterrefresh.ccsUpdatePanel"), {});
                        url = new Url(url);
                        url.removeParameter("FormFilter");
                        window.location.href = url.toString();
                    });
            },
            bindHandlers: function (options) {
                var obj = $(this);
                var data = obj.data(dataParameterName);
    
                obj.find("a").each(function () {
                    var control = $(this);
                    if (control.data(dataParameterName)) return;
                    control.data(dataParameterName, data);
                    control.bind("click", data, events.onLinkClick);
                });
            }
        };
    
        $.fn.ccsUpdatePanel = function (method) {
            if (methods[method]) {
                return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
            } else if (typeof method === 'object' || !method) {
                return methods.init.apply(this, arguments);
            } else {
                $.error('Method ' + method + ' does not exist on jQuery.ccsUpdatePanel');
                return $;
            };
        };
    })(jQuery);