var Abl={};Abl.Cms={};Abl.Cms.Editors={};Abl.Cookie={};Abl.DateTime={};Abl.DEBUG={};Abl.IO={};Abl.Json={};Abl.Math={};Abl.String={};Abl.UI={};Abl.Window={};Abl.version="1.0.0";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);}}}};Abl.Uri=function(g){var l=this,a,j,o,n,f,c,p,b,d,i,k,m=/^((((https?|ftp):\/\/)?([^\/:\?#]*))(:(\d+))?)((\/(.*\/)?)?([^\?#]*))?(([\?#])(.*)?)?$/i;this.getUrl=function(){return a;};this.getLocalUrl=function(){return j;};this.getHost=function(){return o;};this.getProtocol=function(){return n;};this.getDomain=function(){return f;};this.getPort=function(){return c;};this.getPath=function(){return p;};this.getFolder=function(){return b;};this.getFile=function(){return d;};this.getFragment=function(){return i;};this.getQuery=function(){return k;};this.getProperties=function(){return({url:a,localUrl:j,host:o,protocol:n,domain:f,port:c,path:p,folder:b,file:d,fragment:i,query:k});};this.getParams=function(){var q={},w=k.replace("+"," "),t,s,v,r,u;t=w.split(/[&;]/g);for(s=0;s<t.length;s++){v=t[s].split("=");r=decodeURIComponent(v[0]);u=decodeURIComponent(v[1]);q[r]=u;}return q;};this.getParam=function(q){var r=l.getParams();return(r)?r[q]:null;};this.printProperties=function(){var r="",t,q=this.getProperties();for(t in q){if(q.hasOwnProperty(t)){if(r.length){r+="\r\n";}r+=t+": "+((q[t])?q[t]:"--");}}alert(r);};this.compare=function(t,s,q){var r=(t instanceof Abl.Uri)?t:new Abl.Uri(t);s=(s)?s.toLowerCase():"url";function u(y,x,v){var w;if((typeof y!=="string")||(typeof x!=="string")){return false;}y=y.toLowerCase();x=x.toLowerCase();if(v){w=Math.min(y.length,x.length);return(y.substr(0,w)===x.substr(0,w));}else{return(y===x);}}switch(s){case"url":return(a.toLowerCase()===r.getUrl().toLowerCase());case"localurl":return(j.toLowerCase()===r.getLocalUrl().toLowerCase());case"host":return(o.toLowerCase()===r.getHost().toLowerCase());case"protocol":return(n.toLowerCase()===r.getProtocol().toLowerCase());case"domain":return(f.toLowerCase()===r.getDomain().toLowerCase());case"port":return(c.toLowerCase()===r.getPort().toLowerCase());case"path":return(p.toLowerCase()===r.getPath().toLowerCase());case"folder":return u(b,r.getFolder(),q);case"file":return(d.toLowerCase()===r.getFile().toLowerCase());case"fragment":return(i.toLowerCase()===r.getFragment().toLowerCase());case"query":return(k.toLowerCase()===r.getQuery().toLowerCase());default:throw"Illegal comparison element '"+s+"'!";}};this.getLocalUrl=function(q){var r=window.location.protocol+"//"+window.location.hostname;if(!q){return"";}if(window.location.port){r+=":"+window.location.port;}if(q.toLowerCase().indexOf(r.toLowerCase())===0){return q.substr(r.length);}else{return q;}};function h(){j="";o="";n="";f="";c="";p="";b="";d="";i="";k="";}function e(r){a=r||"";j=l.getLocalUrl(a);var q=m.exec(a);if(q!==null){o=q[1]||"";n=q[4]||"";f=q[5]||"";c=q[7]||"";p=q[8]||"";b=q[9]||"";d=q[11]||"";i=q[13]||"";k=q[14]||"";}else{h();}}this.setUri=function(q){if(typeof q==="string"){e(q);}else{if((typeof q==="object")&&(q.href)){e(q.href);}else{if((q)&&(q instanceof Abl.Uri)){e(q.getUrl());}else{if((q)&&(q instanceof jQuery)&&(q[0])&&(q[0].href)){e(q[0].href);}else{e(window.location.href);}}}}};this.setUri(g);};Abl.chain=function(d,c){var a,b;if(typeof d!=="function"){return c;}else{a=[d,c];return function(){for(b=0;b<a.length;b++){a[b]();}};}};Abl.DateTime.toMilliseconds=function(b,a){switch(a){case"s":return(b*1000);case"m":return(b*60*1000);case"h":return(b*60*60*1000);case"d":return(b*24*60*60*1000);case"w":return(b*7*24*60*60*1000);default:return b;}};Abl.Cookie.set=function(d,f,e,a){var c,b;if(e){c=new Date();c.setTime(c.getTime()+Abl.DateTime.toMilliseconds(e,a));b="; expires="+c.toGMTString();}document.cookie=d+"="+escape(f)+b+"; path=/";};Abl.Cookie.get=function(b){var e=b+"=",a=document.cookie.split(";"),d,f;for(d=0;d<a.length;d++){f=a[d];while(f.charAt(0)===" "){f=f.substring(1,f.length);}if(f.indexOf(e)===0){return f.substring(e.length,f.length);}}return null;};Abl.Cookie.getInt=function(b){var a=Abl.Cookie.get(b);return(a)?parseInt(a,10):0;};Abl.Cookie.getFloat=function(b){var a=Abl.Cookie.get(b);return(a)?parseFloat(a):0;};Abl.UI.getIFrameDocument=function(b){var a=null;if(document.frames){a=document.frames[b].document;}else{a=document.getElementById(b).contentDocument;}return a;};Abl.UI.createBackgroundIframe=function(a){return $("<iframe></iframe>").attr({tabindex:"-1",frameBorder:"0",border:"0 none",src:a.source||"javascript:false",width:a.width||100,height:a.height||100}).css({border:"0 none",width:a.width||100,height:a.height||100});};Math.constrain=function(c,b,a){return Math.min(Math.max(c,b),a);};Math.getInt=function(c,b){var a=parseInt(c,b||10);return(isNaN(a)?0:a);};Math.forceFit=function(b,a,d,c){if(b>d){a=parseInt(a*(d/b),10);b=d;}if(a>c){b=parseInt(b*(c/a),10);a=c;}return[b,a];};String.prototype.trim=function(){return this.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};String.prototype.padLeft=function(c,a){var b=this;while(b.length<a){b=c+b;}return b;};String.prototype.padRight=function(c,a){var b=this;while(b.length<a){b+=c;}return b;};String.prototype.trimToIntro=function(a,b,d){var e=this,c;if(e.length>a){c=a-b;if(c<0){c=0;}while(((c<a)&&(e.substr(c,1)!==" "))){c++;}e=e.substr(0,c).trim()+d;}return e;};String.prototype.isSpace=function(){return((this.length)&&(/\s/.test(this)));};String.prototype.isUpper=function(){return((this.length)&&(this.substr(0,1)>="A")&&(this.substr(0,1)<="Z"));};String.prototype.isLower=function(){return((this.length)&&(this.substr(0,1)>="a")&&(this.substr(0,1)<="z"));};String.prototype.toProperCase=function(d){var f="",e="",b=true,c=0,a=(this.length-1);for(c=0;c<=a;c++){e=this.substr(c,1);f+=(b)?e.toUpperCase():e;b=e.isSpace();if((d)&&(c<a)){if((e.isLower())&&(this.substr(c+1,1).isUpper())){f+=" ";}}}return f;};Abl.UI.getPageHeight=function(){return $(document).height();};Abl.UI.getPageWidth=function(){return $(document).width();};Abl.UI.getPageMetrics=function(){return({size:{width:$(document).width(),height:$(document).height()},scroll:{left:$(document).scrollLeft(),top:$(document).scrollTop()}});};Abl.UI.getWindowHeight=function(){return $(window).height();};Abl.UI.getWindowWidth=function(){return $(window).width();};Abl.UI.getWindowMetrics=function(){return({size:{width:$(window).width(),height:$(window).height()},scroll:{left:$(window).scrollLeft(),top:$(window).scrollTop()}});};Abl.Window.Uri=function(a){this.href="";if(typeof a==="string"){this.href=a;}else{if((typeof a==="object")&&(a.href)){this.href=a.href;}else{if((a)&&(a instanceof Abl.Window.Uri)){this.href=a.href;}else{if((a)&&(a instanceof jQuery)&&(a[0])&&(a[0].href)){this.href=a[0].href;}else{this.href=window.location.href;}}}}};Abl.Window.Uri.prototype.getQueryString=function(){var a=this.href.indexOf("?");if(a<0){return"";}else{return this.href.substr(a+1);}};Abl.Window.Uri.prototype.getLocalUrl=function(){return Abl.Window.Uri.stripLocation(this.href);};Abl.Window.Uri.prototype.getBaseUrl=function(){var a=Abl.Window.Uri.stripLocation(this.href);return Abl.Window.Uri.stripQueryString(a);};Abl.Window.Uri.getFileName=function(d){var c=new Abl.Window.Uri(d),a=c.href.lastIndexOf("/"),b=(a>=0)?c.href.substr(a+1):c.href;return Abl.Window.Uri.stripQueryString(b);};Abl.Window.Uri.stripProtocol=function(b){var a=new Abl.Window.Uri(b);if(a.href.indexOf(window.location.protocol)===0){return a.href.substr(window.location.protocol.length);}else{return a.href;}};Abl.Window.Uri.stripLocation=function(b){var a=new Abl.Window.Uri(b),c=window.location.protocol+"//"+window.location.hostname;if(window.location.port){c+=":"+window.location.port;}if(a.href.indexOf(c)===0){return a.href.substr(c.length);}else{return a.href;}};Abl.Window.Uri.stripQueryString=function(c){var b=new Abl.Window.Uri(c),a;a=b.href.search(/(\?|#)/);if(a>=0){b.href=b.href.substr(0,a);}return b.href;};Abl.Window.Uri.getBaseUrl=function(c){var b=new Abl.Window.Uri(c),a=Abl.Window.Uri.stripLocation(b.href);return Abl.Window.Uri.stripQueryString(a);};Abl.Window.Uri.parseQueryString=function(g){var a={},d,c,f,b,e;if(typeof g==="undefined"){g=(window.location.search)?window.location.search:"";}if(g.charAt(0)==="?"){g=g.substring(1);}g=g.replace("+"," ");d=g.split(/[&;]/g);for(c=0;c<d.length;c++){f=d[c].split("=");b=decodeURIComponent(f[0]);e=decodeURIComponent(f[1]);a[b]=e;}return a;};Abl.Window.Uri.getParam=function(c,b){var a=Abl.Window.Uri.parseQueryString(b);return(a)?a[c]:null;};(function($){$.fn.getBookmark=function(evaluate){var regex=/#(.*)$/,$link=this.filter("a").eq(0),href=$link.attr("href"),match=regex.exec(href);if(match){return(evaluate)?eval("("+match[1]+")"):match[1];}else{return null;}};$.fn.setFocus=function(selectContent){var $ctrl;return this.each(function(){$ctrl=$(this);if(($ctrl.is("textarea, select, :text"))&&($ctrl.is(":visible"))&&(!$ctrl.is(":disabled"))){if(this.focus){this.focus();if((selectContent)&&(this.select)){this.select();}}}});};$.fn.setCheckbox=function(checked){var $chk;return this.each(function(){$chk=$(this);if($chk.is(":checkbox")){$chk.attr("checked",((checked)?"checked":""));}});};$.fn.enable=function(enabled){var $ctrl;return this.each(function(){$ctrl=$(this);if($ctrl.is(":input")){if(enabled){$ctrl.attr("disabled","").removeClass("disabled");}else{$ctrl.attr("disabled","disabled").addClass("disabled");}}});};$.fn.alternateRows=function(){return this.each(function(){if($(this).is("table")){$(this).find("tr:not(:has(th)):odd").addClass("odd");$(this).find("tr:not(:has(th)):even").addClass("even");}});};$.fn.wrapper=function(classList){classList=classList||$.fn.wrapper.defaultList;return this.each(function(){var $this=$(this),i,wrapper;for(i=classList.length-1;i>=0;i--){wrapper="<div class='"+classList[i]+"'></div>";$this.wrapInner(wrapper);}});};$.fn.wrapper.defaultList=["e","s","w","ne","se","sw","nw","panelBody"];$.fn.simplePanel=function(options){var params=$.extend({},$.fn.simplePanel.defaults,options);return this.each(function(){$(this).wrapInner("<div class='"+params.bodyPanelClass+"'></div>").wrapInner("<div class='"+params.bottomBorderClass+"'></div>").wrapInner("<div class='"+params.topBorderClass+"'></div>");});};$.fn.simplePanel.defaults={bodyPanelClass:"panelBody",topBorderClass:"topBorder",bottomBorderClass:"bottomBorder"};$.fn.panel=function(className,options){var params=$.extend({},$.fn.panel.defaults,options);return this.each(function(){var $e=$(this),$panelBody,$titlebar,$header,$closeLink;if(className){$e.addClass(className);}$e.css(params.css);$e.wrapper();$panelBody=$("div.panelBody",$e);if(params.width){$e.width(params.width);}if(params.height){$panelBody.height(params.height);}if((params.innerWidth)||(params.innerHeight)){$e.css("position","absolute");$panelBody.width(params.innerWidth);$panelBody.height(params.innerHeight);}if(params.titlebar){$titlebar=$("<div class='titlebar'></div>");$panelBody.before($titlebar);if(params.title){$titlebar.append("<h2 class='title'>"+params.title+"</h2>");}else{$header=$panelBody.children(":first-child:header").addClass("title");if($header.length){$titlebar.append($header);}}}if(params.closeLink){$closeLink=$("<a></a>").addClass(params.closeLinkClass).attr("title",params.closeLinkTitle).attr("href",params.closeLinkHref).text(params.closeLinkText).appendTo($titlebar);}if((params.draggable)&&($e.draggable)){$e.draggable($.extend({handle:($titlebar)?$titlebar:$e},params.dragOptions));}});};$.fn.panel.defaults={width:null,height:null,innerWidth:null,innerHeight:null,titlebar:true,title:"",closeLink:false,closeLinkClass:"close",closeLinkTitle:"Close",closeLinkHref:"#close",closeLinkText:"X",css:{},draggable:true,dragOptions:{containment:"parent"}};$.fn.panel.getPanelOffsets=function($panel){var width=$panel.width(),height=$panel.height(),$panelBody=$("div.panelBody",$panel),innerWidth=$panelBody.width(),innerHeight=$panelBody.height();return{width:width-innerWidth,height:height-innerHeight};};$.fn.panel.setContentArea=function($panel,width,height){var offset=$.fn.panel.getPanelOffsets($panel),$panelBody=$("div.panelBody",$panel);if(width){$panel.width(width+offset.width);$panelBody.width(width);}if(height){$panel.height(height+offset.height);$panelBody.height(height);}};$.fn.hideClamshell=function(speed,callback){function setAttributes($li,$link){$link.attr("title","Expand");$li.removeClass("expanded").addClass("collapsed");if(typeof callback==="function"){callback.call(this,false);}}return this.each(function(){var $li=$(this),$link=$li.children("a"),$sub=$li.children("ul");if($sub.is(":visible")){$sub.hide(speed,function(){setAttributes($li,$link);});}else{$sub.hide();setAttributes($li,$link);}});};$.fn.showClamshell=function(speed,callback){function show($li,$link,$sub){if(!$sub.is(":visible")){$sub.show(speed,function(){$link.attr("title","Collapse");$li.removeClass("collapsed").addClass("expanded");if(typeof callback==="function"){callback.call(this,true);}});}}return this.each(function(){var $li=$(this),$link=$li.children("a"),$sub=$li.children("ul"),$parent=$li.parent("ul");$parent=(($parent.length>0)&&(!$parent.is(":visible")))?$parent=$parent.parent("li"):null;if(($parent)&&($parent.length>0)){$parent.showClamshell(speed,function(){show($li,$link,$sub);});}else{show($li,$link,$sub);}});};$.fn.toggleClamshell=function(speed,callback){return this.each(function(){var $li=$(this),$sub=$li.children("ul");if($sub.is(":visible")){$li.hideClamshell(speed,function(visible){if(typeof callback==="function"){callback.call(this,visible);}});}else{$li.showClamshell(speed,function(visible){if(typeof callback==="function"){callback.call(this,visible);}});}});};$.fn.minHeight=function(minHeight){return this.each(function(){var $elem=jQuery(this);if((!minHeight)||(typeof(minHeight)!=="number")){minHeight=parseInt($elem.css("min-height"),10);}if((minHeight)&&(typeof(minHeight)==="number")&&($elem.height()<minHeight)){$elem.height(minHeight);}});};$.fn.minWidth=function(minWidth){return this.each(function(){var $elem=jQuery(this);if((!minWidth)||(typeof(minWidth)!=="number")){minWidth=parseInt($elem.css("min-width"),10);}if((minWidth)&&(typeof(minWidth)==="number")&&($elem.width()<minWidth)){$elem.width(minWidth);}});};}(jQuery));Abl.UI.Panel=function(b,d,c){var a=this,e=$.extend(true,{},$.fn.panel.defaults,Abl.UI.Panel.defaults,c);this.$=(b instanceof jQuery)?b:$(b);this.$.panel(d,e);this.$body=$("div.panelBody",this.$);this.$titlebar=$("div.titlebar",this.$);this.$closeLink=$("a."+e.closeLinkClass,this.$).click(function(f){f.preventDefault();if(typeof e.onClose==="function"){e.onClose.call(a,f);}});this.setContentArea=function(g,f){$.panel.setContentArea(this.$,g,f);};this.isVisible=function(){return this.$.is(":visible");};this.dispose=function(){this.$closeLink.unbind("click");};};Abl.UI.Panel.defaults={onClose:null};Abl.UI.ImagePreLoader=function(j,d){var e=this,r=$.extend(true,{},Abl.UI.ImagePreLoader.defaults,d),m=j.length,o=0,s=0,l=0,k=0,n=0,h=false,g=0,b=[];function q(){n++;if(n===m){h=true;if(typeof r.onLoaded==="function"){r.onLoaded.call(e);}}}function a(){$(this).data("preload").loaded=true;s++;q();}function f(){$(this).data("preload").error=true;l++;if(typeof r.onError==="function"){r.onError.call($(this));}q();}function p(){$(this).data("preload").aborted=true;k++;if(typeof r.onAbort==="function"){r.onAbort.call($(this));}q();}function c(t){var i=$("<img />");b.push(i);i.bind("load",a);i.bind("error",f);i.bind("abort",p);i.data("preload",{loaded:false,error:false,aborted:false});i.attr({src:t.src,alt:t.alt});}this.isLoaded=function(){return h;};this.getNoImages=function(){return m;};this.getNoLoaded=function(){return s;};this.getNoErrors=function(){return l;};this.getNoAborted=function(){return k;};this.getIndex=function(){return g;};this.setIndex=function(t){if((t<0)||(t>=m)){t=0;}g=t;};this.setNextImage=function(){this.setIndex(g+1);};this.getImage=function(){return b[g];};this.getNextImage=function(){this.setNextImage();return this.getImage();};this.dispose=function(){var u,t;for(u=0;u<b.length;u++){t=b[u];t.removeData("preload").unbind();}};for(o=0;o<j.length;o++){c(j[o]);}};Abl.UI.ImagePreLoader.defaults={onLoaded:null,onError:null,onAbort:null};Abl.Json.unescape=function(a){if((a)&&(typeof a==="string")){a=a.replace(/\\\'/g,"'");a=a.replace(/\\\"/g,'"');}return a;};Abl.UI.Thumbnail=function(a,b){return(function(c,e){var h={},g=(c instanceof jQuery)?c:$(c),d=null;h.params=$.extend(true,{},Abl.UI.Thumbnail.defaults,e);h.clearImage=function(){if(d){d.onload=null;d=null;}g.find("img.thumbnail").remove();g.find("div.sizeInfo").remove();};h.getDimensions=function(){var i={width:0,height:0};if(d){i.width=d.width;i.height=d.height;}return i;};h.getImage=function(){return d;};h.equalSize=function(j){var i=(j instanceof Array)?{width:j[0],height:j[1]}:j;return((d)&&(d.width===i.width)&&(d.height===i.height));};function f(){var i=Math.forceFit(d.width,d.height,h.params.thumbWidth,h.params.thumbHeight),k=null,l=0,j="";$("<img />").attr({width:i[0],height:i[1],alt:d.alt,title:d.alt,src:d.src}).css({width:i[0]+"px",height:i[1]+"px"}).addClass("thumbnail").appendTo(g);if(h.params.showInfo){k=$("<div class='sizeInfo'></div>").appendTo(g);$("<span class='dim'></span>").text("Size: "+d.width+" x "+d.height).appendTo(k);l=parseInt((i[0]/d.width)*100,10);j=(l===100)?"(Shown full size)":"(Shown at "+l+"% of actual size)";$("<span class='scale'></span>").text(j).appendTo(k);}if(typeof h.params.onLoad==="function"){h.params.onLoad(d);}}h.addOnLoadEventHandler=function(i){h.params.onLoad=Abl.chain(h.params.onLoad,i);};h.loadImage=function(i){d=new Image();d.onload=f;d.src=i;};h.dispose=function(){h.clearImage();};return h;}(a,b));};Abl.UI.Thumbnail.defaults={thumbWidth:150,thumbHeight:100,showInfo:true};