var AjaxForm=new Class({options:{data:{},auto_js:true,action:null,confirm:null,isValid:$lambda(true),popup_module:"Popup",beforeRequest:$empty,onRequest:$empty,onSuccess:$empty,onFailure:$empty,onInvalid:$empty,onFailureInvoke:function(a){this.options.onFailure(a.RESPONSE.MSG)}},request:null,initialize:function(b,a){this.options=$extend(this.options,a);this.options.onFailureInvoke=this.options.onFailureInvoke.bind(this);if((this.form=$(b))==null){return false}this.form.addEvent("submit",function(c){if(c){c.stop()}if(this.options.isValid()){this.options.beforeRequest();if(this.options.confirm){new window[this.options.popup_module]({title:this.options.confirm.title||"Potwierdzanie",content:this.options.confirm.text,content_safe_mode:false,width:this.options.confirm.width||300,buttons:[{label:"Tak",onClick:this.send.bind(this)},{label:"Nie"}]})}else{this.send()}}else{this.options.onInvalid()}}.bind(this));this.request=new Request.NK({url:(this.options.action?this.options.action:this.form.get("action"))+(this.options.auto_js?"/js":""),onRequest:this.options.onRequest.bind(this),data:{t:Cookie.read(nk_options.auth.basic_auth_cookie_name)},onSuccess:function(c){if(c.STATUS=="OK"){this.options.onSuccess(c)}else{if(c.STATUS=="ERROR"||c.STATUS=="FAILED"){if($type(c.RESPONSE.FORM_ERRORS)=="array"&&c.RESPONSE.FORM_ERRORS.length){if(c.RESPONSE.FORM_ERRORS.length==1){this.options.onFailure(c.RESPONSE.FORM_ERRORS[0])}else{var e=new Element("ul",{"class":"popup_form_errors"});for(var d=0;d<c.RESPONSE.FORM_ERRORS.length;d++){new Element("li",{text:c.RESPONSE.FORM_ERRORS[d]}).inject(e)}this.options.onFailure(e)}}else{this.options.onFailureInvoke(c)}}}}.bind(this),onFailure:function(){this.options.onFailure(PopupConfig.ajax_error)}.bind(this),onException:this.options.onFailure.bind(this)})},send:function(){this.request.send(this.form.toQueryString()+"&t="+Cookie.read(nk_options.auth.basic_auth_cookie_name))}});var AjaxFormGetter=new Class({Implements:[Options],form:null,options:{action:null,query_string:"",append_query_string:false,ticket:null,onRequest:$empty,onSuccess:$empty,onFailure:$empty,isValid:$lambda(true),onInvalid:$empty,onLoad:$empty,use_ajax_form:true,use_foreign_action:false,onFailureInvoke:function(a){this.options.onFailure(a.RESPONSE.MSG)}},inject_form:function(a){},close_container:function(){},show_error:function(b,a){},initialize:function(a){this.setOptions(a);this.get_form()},switch_to_ajax_form:function(){return new AjaxForm(this.form,{onSuccess:function(a){this.options.onSuccess(a);this.close_container()}.bind(this),onFailure:function(a){this.options.onFailure(a);this.close_container()}.bind(this),onFailureInvoke:this.options.onFailureInvoke.bind(this),isValid:this.options.isValid,onInvalid:this.options.onInvalid,action:this.options.use_foreign_action?null:this.options.action,auto_js:!this.options.use_foreign_action})},get_form:function(){new Request.NK({url:this.options.action+"/js/get/"+this.options.ticket+(this.options.append_query_string?window.location.search:this.options.query_string),method:"get",data:{t:Cookie.read(nk_options.auth.basic_auth_cookie_name)},onSuccess:function(c){if(c.STATUS=="OK"){var a=new Element("div",{html:c.RESPONSE.CONTENT});this.form=a.getElement("form");this.inject_form(a);form_attach_scripts(this.form);if(this.options.use_ajax_form){this.switch_to_ajax_form()}var b=a.getElement(".no_button");if(b){b.onclick=function(){this.close_container();return false}.bind(this)}}else{msg=PopupConfig.ajax_error;if(c.RESPONSE.MSG){msg=c.RESPONSE.MSG}this.options.onFailure(msg)}this.options.onLoad()}.bind(this),onFailure:function(){if(this.options.quite_mode){this.options.onFailure()}else{this.show_error(PopupConfig.ajax_error,[{label:"Ok",onClick:this.options.onFailure}])}}.bind(this)}).send()}});var AjaxFormInjecter=new Class({Extends:AjaxFormGetter,container:$empty,initialize:function(a,b){this.parent(b);this.container=a},inject_form:function(a){this.container.grab(a)},close_container:function(){this.container.empty()},show_error:function(b,a){this.container.empty();this.container.adopt(new Element("p",{html:b}))}});var AjaxFormPopup=new Class({Extends:AjaxFormGetter,popup:null,options:{title:null,popup:{},popup_module:"GenericPopup",extra_class:"",quite_mode:false},initialize:function(a){this.parent(a);var b={title:"Ładowanie",extra_class:this.options.extra_class,content:PopupConfig.loading,content_safe_mode:false};this.popup=new window[this.options.popup_module]($extend(b,this.options.popup))},inject_form:function(a){this.popup.update($extend({width:this.options.width,title:this.options.title,position:null,content:a},this.options.popup))},close_container:function(){this.popup.close()},show_error:function(b,a){this.popup.update({title:"Błąd",content:b,buttons:a})},switch_to_ajax_form:function(){var a=this.parent();this.popup.addEvent("close",a.request.cancel.bind(a.request))}});var FormPopup=function(b,j,i,g,f,a,h,c){var e=this;this.link=i;this.form_id=j;this.ticket=g;this.use_ajax_form=c;this.box=b;this.onSuccess=f;if(a!=null){this.onFail=a}else{this.onFail=function(l){e.box.show(l.CONTENT);var k=e.box.getElement(".no_button");if(k!=null){k.onclick=function(){e.box.close_window();return false}}}}if(h!=null){this.onOtherError=h}else{this.onOtherError=function(){e.box.show("<p>Wystąpił błąd. Przepraszamy.</p><br><p>Odśwież stronę i zaloguj się na nowo.</p>")}}var d=new sack(e.link+"/js/get/"+e.ticket+"?t="+Cookie.read(nk_options.auth.basic_auth_cookie_name));d.onCompletion=function(){try{var l=this.parseResponse();if(typeof(l)=="object"&&l.STATUS){if(l.STATUS=="OK"){e.box.show(l.RESPONSE.CONTENT);if(e.use_ajax_form){var m=new AjaxForm(e.form_id,{action:e.link,onSuccess:function(o){e.onSuccess(o.RESPONSE)},onFailure:function(o){e.onFail({CONTENT:o})}});e.box.add_on_close_event(m.request.cancel.bind(m.request))}var k=e.box.content.getElement(".no_button");if(k!=null){k.onclick=function(){e.box.close_window();return false}}}else{if(l.STATUS=="NOT_VALID"){e.box.show("<p>Wystąpił błąd. Przepraszamy.</p><br><p>Odśwież stronę i spróbuj ponownie.</p>")}else{e.onOtherError()}}}else{e.onOtherError()}}catch(n){e.onOtherError()}};d.onError=function(){e.onOtherError()};d.method="GET";this.box.add_on_close_event(function(){d.xmlhttp.abort();d.reset()});this.box.show('<div class="loading_container"></div>');d.runAJAX();return false};var AjaxYesNoDeprecatedPageHandler=new Class({box:null,Implements:[Options],options:{onNo:$empty,onYes:$empty,onLoad:$empty,use_ajax:true,popup_type:window.Popup,popup_options:{title:"Potwierdzenie",content_safe_mode:false}},initialize:function(b,a){var d=this;this.setOptions(a);this.popup=new this.options.popup_type($extend({content:PopupConfig.loading},this.options.popup_options));var c="";if(b.search("/?/")){var e=b.split("?");c=e[0]+"/js/get?"+e[1]}else{c=b+"/js/get"}new Request.NK({url:c,method:"get",onSuccess:function(f){this.popup.update({content:f.CONTENT,position:null,title:f.TITLE||this.options.popup_options.title});if(!this.options.use_ajax){this.popup.box.contener.getElements("form").each(function(g){g.set("action",g.get("action").replace(/\/js/,""))});return}this.set_actions_to_buttons();this.options.onLoad()}.bind(this),onFailure:function(f){this.popup.update({title:"Błąd",content:PopupConfig.ajax_error,position:null,buttons:[{label:"OK"}]})}.bind(this)}).send()},set_actions_to_buttons:function(){var a=this.popup.box.contener.getElements("form");if(a.length){this.configure_yes_form(a[0])}if(a.length==2){this.configure_no_form(a[1])}},configure_yes_form:function(a){new AjaxForm(a,{auto_js:false,onSuccess:function(b){this.popup.close();if(b.STATUS=="OK"){this.options.onYes(b)}else{this.popup.update({title:"Błąd",content:"Wystąpił błąd.",position:null,buttons:[{label:"OK"}]})}}.bind(this),onFailure:function(b){this.popup.update({title:"Błąd",content:b,position:null,buttons:[{label:"OK"}]})}.bind(this),onFailureInvoke:function(b){this.popup.update({title:"Błąd",content:b.RESPONSE.MSG,position:null,buttons:[{label:"OK"}]})}.bind(this)})},configure_no_form:function(a){new AjaxForm(a,{isValid:function(){this.popup.close();this.options.onNo();return false}.bind(this)})}});var AjaxYesNoPageHandler=new Class({Extends:AjaxYesNoDeprecatedPageHandler,options:{popup_type:window.GenericPopup},set_actions_to_buttons:function(){var b=this.popup.box.contener.getElement("form");if(b){this.configure_yes_form(b)}var a=this.popup.box.contener.getElement(".no_button");if(a){a.addEvent("click",function(c){this.popup.close();this.options.onNo()}.bindWithStopEvent(this))}}});
