$.widget("ui.atk4_loader",{base_url:undefined,loading:false,cut_mode:"page",cut:"1",helper:undefined,_init:function(){var a=this;console.log(this.element[0]);this.element.addClass("atk4_loader");if(this.options.url){this.base_url=this.options.url}if(this.options.cut_object){this.cut_mode="object";this.cut=this.options.cut_object}if(this.options.debug){var b=$('<div style="z-index: 2000"/>');b.css({background:"#fe8",border:"1px solid black",position:"absolute",width:"100px",height:"50px"});$("<a/>").attr("title","Canceled close").attr("href","javascript: void(0)").text("X").css({"float":"right"}).click(function(){$(this).closest("div").next().css({border:"0px"});$(this).closest("div").remove()}).appendTo(b);b.append(" ");$("<a/>").attr("title","Reload this region").attr("href","javascript: void(0)").text("Reload").click(function(){a.reload()}).appendTo(b);b.append(" ");$("<a/>").attr("title","Show URL").attr("href","javascript: void(0)").text("URL").click(function(){alert(a.base_url)}).appendTo(b);b.append(" ");$("<a/>").attr("title","Attempt to remove").attr("href","javascript: void(0)").text("Remove").click(function(){a.remove()}).appendTo(b);b.append(" ");$("<a/>").attr("title","Successful close").attr("href","javascript: void(0)").text("OK").click(function(){a.successClose()}).appendTo(b);b.append(" ");$("<a/>").attr("title","Canceled close").attr("href","javascript: void(0)").text("Cancel").click(function(){a.cancelClose()}).appendTo(b);b.insertBefore(a.element);b.draggable();a.helper=b;a.element.css({border:"1px dashed green"})}},destroy:function(){var a=this;this.element.removeClass("atk4_loader");if(this.helper){this.helper.remove();this.helper=undefined}},_loadHTML:function(el,url,callback,reload){var self=this;var selector,off=url.indexOf(" ");if(off>=0){selector=url.slice(off,url.length);url=url.slice(0,off)}if(self.loading){$.univ().loadingInProgress();return false}var m;self.loading=true;$.atk4.get(url,null,function(res){var scripts=[],source=res;while((s=source.indexOf("<script"))>=0){s2=source.indexOf(">",s);e=source.indexOf("<\/script",s2);e2=source.indexOf(">",e);scripts.push(source.substring(s2+1,e));source=source.substring(0,s)+source.substring(e2+1)}m=el;if(!(jQuery.browser.msie)){m.hide()}var source=$("<div/>").append(source);var n=source.children();if(n.length==1&&(reload||(n.attr("id")&&n.attr("id")==el.attr("id")))){n=n.contents();el.triggerHandler("remove")}else{if(reload){console.error("Cannot reload content: ",reload,n[0],n[1],n[2])}n=source.contents()}el.empty();el.atk4_loader({base_url:url});n.each(function(){$(this).remove().appendTo(el)});for(var i in scripts){try{window.region=el;if(eval.call){eval.call(window,scripts[i])}else{with(window){eval(scripts[i])}}}catch(e){console.error("JS:",e,scripts[i])}}if(callback){$.atk4(callback,true)}$.atk4(function(){m.show();m.find("form:first").find("input:visible,select:visible").eq(0).focus()})},function(){self.loading=false})},_loadingStart:function(){var a=this;if(false===a._trigger("loadingStart")){return false}},reload:function(b){var a=this.base_url;if(b){this.base_url=$.atk4.addArgument(this.base_url,b)}this.loadURL(this.base_url);this.base_url=a},remove:function(){var a=this;a.helper&&a.helper.css({background:"red"});if(a.element.find(".form_changed").length){if(!confirm("Changes on the form will be lost. Continue?")){return false}}return true},successClose:function(){console.log("successClose")},cancelClose:function(){console.log("cancelClose")},setURL:function(b){var a=this;a.base_url=b},loadURL:function(b,d,c){var a=this;if(a.loading){$.univ().loadingInProgress();return false}if(a.element.find(".form_changed").length){if(!confirm("Changes on the form will be lost. Continue?")){return false}}$("#tiptip_holder").remove();a.base_url=b;b=$.atk4.addArgument(b,"cut_"+a.cut_mode+"="+a.cut);this._loadHTML(a.element,b,d,c)}});$.extend($.ui.atk4_loader,{getter:"remove"});$.fn.extend({atk4_load:function(a,b){this.atk4_loader().atk4_loader("loadURL",a,b)},atk4_reload:function(b,a,c){if(a){$.each(a,function(d,e){b=$.atk4.addArgument(b,d+"="+encodeURIComponent(e))})}this.atk4_loader().atk4_loader("loadURL",b,c,true)}});
