var Abl={};Abl.DEBUG={};Abl.UI={};Abl.DEBUG.debug=1;Abl.DEBUG.useAlert=false;Abl.DEBUG.trace=function(a){if(Abl.DEBUG.debug){if((typeof console==="object")&&(typeof console.debug==="function")&&(!Abl.DEBUG.useAlert)){console.debug(a);}else{if((Abl.DEBUG.debug>1)||(Abl.DEBUG.useAlert)){alert(a);}}}};Array.prototype.remove=function(c,b){var a=this.slice((b||c)+1||this.length);this.length=c<0?this.length+c:c;return this.push.apply(this,a);};(function(a){a.fn.getBookmark=function(){var e=/#(.*)$/,c=this.filter("a").eq(0),b=c.attr("href"),d=e.exec(b);return(d)?d[1]:"";};a.fn.findForm=function(){var b=this.find("form");return((b)&&(b.length))?b:this.closest("form");};}(jQuery));Abl.UI.CreateIFrame=function(a){if(!a){a={};}return $("<iframe></iframe>").attr({tabindex:a.tabIndex||"-1",frameBorder:a.frameBorder||"0",border:"0 none",src:a.source||"about:blank",width:a.width||100,height:a.height||100}).css({border:"0 none",width:a.width||100,height:a.height||100});};Abl.Uri=function(c){var e=this,i=/^(((https?|ftp):\/\/)([^\/:\?\#]*)?(:(\d*))?)?([^\?#]*)?((\?|#)(.*))?$/i,g=/^((\/)?.*\/)?(.*)$/i;function d(){e.localUrl=null;e.host=null;e.protocol=null;e.domain=null;e.port=null;e.path=null;e.pathSegments=null;e.folder=null;e.file=null;e.fileLessExtension=null;e.fragment=null;e.query=null;e.params=null;}function a(j){var k=window.location.protocol+"//"+window.location.hostname;if(!j){return"";}if(window.location.port){k+=":"+window.location.port;}if(j.toLowerCase().indexOf(k.toLowerCase())===0){return j.substr(k.length);}else{return j;}}function h(){var j={},p=e.query.replace("+"," "),m,l,o,k,n;m=p.split(/[&;]/g);for(l=0;l<m.length;l++){o=m[l].split("=");k=decodeURIComponent(o[0]).toLowerCase();n=decodeURIComponent(o[1]);j[k]=n;}return j;}function f(m){var j=[],k,l=m.split("/");for(k=0;k<l.length;k++){if(l[k]){j.push(l[k]);}}return j;}function b(l){var k,j;e.url=l||"";e.localUrl=a(e.url);k=i.exec(e.url);if(k){e.host=k[1]||"";e.protocol=k[3]||"";e.domain=k[4]||"";e.port=k[6]||"";e.path=k[7]||"";e.pathSegments=f(e.path);e.fragment=k[9]||"";e.query=k[10]||"";j=g.exec(e.path);e.folder=j[1]||"";e.file=j[3]||"";e.fileLessExtension=e.file.match(/^[^\.]*/)[0];e.params=h();}else{d();}}this.toString=function(){var j="",k;for(k in e){if(e.hasOwnProperty(k)){if(j.length){j+="\r\n";}j+=k+": "+((e[k])?e[k]:"--");}}return j;};this.compare=function(m,l,j){var k=(m instanceof Abl.Uri)?m:new Abl.Uri(m);l=(l)?l.toLowerCase():"url";function n(r,q,o){var p;if((typeof r!=="string")||(typeof q!=="string")){return false;}r=r.toLowerCase();q=q.toLowerCase();if(o){p=Math.min(r.length,q.length);return(r.substr(0,p)===q.substr(0,p));}else{return(r===q);}}switch(l){case"url":return(e.url.toLowerCase()===k.url.toLowerCase());case"localurl":return(e.localUrl.toLowerCase()===k.localUrl.toLowerCase());case"host":return(e.host.toLowerCase()===k.host.toLowerCase());case"protocol":return(e.protocol.toLowerCase()===k.protocol.toLowerCase());case"domain":return(e.domain.toLowerCase()===k.domain.toLowerCase());case"port":return(e.port.toLowerCase()===k.port.toLowerCase());case"path":return(e.path.toLowerCase()===k.path.toLowerCase());case"folder":return n(e.folder,k.folder,j);case"file":return(e.file.toLowerCase()===k.file.toLowerCase());case"fileLessExtension":return(e.fileLessExtension.toLowerCase()===k.fileLessExtension.toLowerCase());case"fragment":return(e.fragment.toLowerCase()===k.fragment.toLowerCase());case"query":return(e.query.toLowerCase()===k.query.toLowerCase());default:throw"Illegal comparison element '"+l+"'!";}};(function(j){if(typeof j==="string"){b(j);}else{if((typeof j==="object")&&(j.href)){b(j.href);}else{if((j)&&(j instanceof Abl.Uri)){b(j.url);}else{if((j)&&(j instanceof jQuery)&&(j[0])&&(j[0].href)){b(j[0].href);}else{b(window.location.href);}}}}}(c));};Abl.buildOption=function(d,b,a){var c="<option value='"+b+"'";if(a){c+=" selected='selected'";}c+=">"+d+"</option>";return c;};Abl.buildOptionFromSelectListItem=function(a){return Abl.buildOption(a.Text,a.Value,a.Selected);};Abl.loadSelectList=function(e,d,a){var b=(e instanceof jQuery)?e:$(e),c;if(a){b.empty();}for(c=0;c<d.length;c++){b.append(Abl.buildOptionFromSelectListItem(d[c]));}};Abl.syncSelectLists=function(d,a,c,b,h){var f=(d instanceof jQuery)?d:$(d),g=(a instanceof jQuery)?a:$(a);function e(i){if(i){f.removeAttr("disabled");g.removeAttr("disabled");}else{f.attr("disabled","disabled");g.attr("disabled","disabled");}}f.change(function(){e();$.ajax({type:"POST",url:c,data:b(f,g),dataType:"json",cache:false,success:function(i){Abl.loadSelectList(g,i,true);if(typeof h==="function"){h();}},error:function(k,i,j){var l="Abl.syncSelectLists() - Ajax Error\r\n"+i;alert(l);},complete:function(){e(true);}});});};Abl.UI.Menu={};Abl.UI.Menu.checkPageMatch=function(e,a){var d,c,b;if(e.compare(a,"path",false)){return"exact";}d=Math.min(e.pathSegments.length,a.pathSegments.length);if(d>1){--d;}c=e.pathSegments.slice(0,d).join("/").toLowerCase();b=a.pathSegments.slice(0,d).join("/").toLowerCase();if((c)&&(c===b)){return"partial";}return null;};Abl.UI.Menu.addClassToParentItems=function(c,e,b){var a=e.get(0),d=c.parent();while((d)&&(d.length)&&(d.get(0)!==a)){if(d.is("li")){d.addClass(b);}d=d.parent();}};Abl.UI.Menu.DoubleDecker=function(b,a){return(function(f,d){var i={},e=(f instanceof jQuery)?f:$(f),h=e.find("li"),c=$("li ul",e),g=new Abl.Uri();(function(){e.addClass("root-menu").children("li").addClass("root-item");c.addClass("sub-menu").find("li").addClass("sub-item");h.each(function(){var k=$(this),j=k.children("a:first"),m=new Abl.Uri(j),n=k.children("ul"),l=Abl.UI.Menu.checkPageMatch(g,m);if(l){k.addClass(l+"-match active");Abl.UI.Menu.addClassToParentItems(k,e,"target-trail");n.show();}else{n.hide();}});}());return i;}(b,a));};
