ProcessIndicator={_spinning:[],_updateDelay:null,options:{"class":".hasProgress",delay:200,spinnerOptions:{}},init:function(n){ProcessIndicator._spinning=[],ProcessIndicator.options=n=$extend(ProcessIndicator.options,n||{});if(Intergration.isNamespaceDefined("Sys.WebForms.PageRequestManager")){var t=Sys.WebForms.PageRequestManager.getInstance();t.add_beginRequest(ProcessIndicator._beginRequestHandler),t.add_endRequest(ProcessIndicator._endRequestHandler)}$$(n["class"]).each(function(n){var i,t;switch(n.tagName){case"FORM":i=!1,Intergration.isNamespaceDefined("Sys.WebForms.PageRequestManager")&&(t=Sys.WebForms.PageRequestManager.getInstance(),t._form==n&&(t._onSubmitStatements.push(function(){return ProcessIndicator.cancel(!1),ProcessIndicator._spinning.push(n),ProcessIndicator._showProgress.delay(ProcessIndicator.options.delay),!0}),i=!0)),i||n.addEvent("submit",function(){ProcessIndicator.cancel(!1),ProcessIndicator._spinning.push(n),ProcessIndicator._showProgress.delay(ProcessIndicator.options.delay)});break;default:if(n.hasClass("updatePanel"))break;n.addEvent("click",function(){ProcessIndicator.cancel(!1),(n.tagName!="A"||n.target!="_blank")&&(ProcessIndicator._spinning.push(n),ProcessIndicator._showProgress.delay(ProcessIndicator.options.delay))})}})},_beginRequestHandler:function(n,t){t.get_updatePanelsToUpdate().length>0?t.get_updatePanelsToUpdate().each(function(t){var i=document.id(n._updatePanelClientIDs[n._updatePanelIDs.indexOf(t)]),r=ProcessIndicator.options["class"].substring(1);i.hasClass(r)&&ProcessIndicator._spinning.push(i)}):(el=Utilities.getParent(n._activeElement,".updatePanel"),el!=null&&ProcessIndicator._spinning.push(el)),ProcessIndicator._updateDelay&&$clear(ProcessIndicator._updateDelay),ProcessIndicator._updateDelay=ProcessIndicator._showProgress.delay(ProcessIndicator.options.delay)},_endRequestHandler:function(){ProcessIndicator.cancel()},_showProgress:function(){ProcessIndicator._spinning.each(function(n){ProcessIndicator.showSpinner(n)})},_getSpinnerOptions:function(n){var i=ProcessIndicator.options.spinnerOptions,t=n.retrieve("spinner:options"),u,r;return t&&(t=t["class"]),t||(t=(new Spinner).options["class"]),u=ProcessIndicator.options["class"].substring(1)+"-",n.className.split(" ").each(function(n){if(n.indexOf(u)==0){var i=n.substring(u.length);t+=" "+i}}),t=t.trim(),t.trim()!=""&&(i["class"]=t),r=n.getProperty("spinnerOptions"),r&&(i=$extend(i,JSON.decode(r))),i},showSpinner:function(n){n=document.id(n);var t=ProcessIndicator._getSpinnerOptions(n),n=Utilities.getParent(n,".progress-container")||n;return n.spin(t),n},cancel:function(){var t,n;for(ProcessIndicator._updateDelay&&($clear(ProcessIndicator._updateDelay),ProcessIndicator._updateDelay=null),t=0;t<ProcessIndicator._spinning.length;t++)n=document.id(ProcessIndicator._spinning[t]),n&&n&&n.unspin();ProcessIndicator._spinning=[]}},window.addEvent("domready",function(){ProcessIndicator.init()})
