var Abl={};Abl.Browser={};Abl.Cms={};Abl.Cms.Editors={};Abl.Cookie={};Abl.DateTime={};Abl.DEBUG={};Abl.IO={};Abl.Json={};Abl.Math={};Abl.String={};Abl.UI={};Abl.WebControls={};Abl.Window={};Abl.Xml={};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.DEBUG.keyEvent=function(a){var b=a.which,c="key:"+b+" ";if(a.shiftKey){c+="+shift";}if(a.altKey){c+="+alt";}if(a.ctrlKey){c+="+ctrl";}Abl.DEBUG.trace(c);};Abl.Browser.isIE6=function(){var b=document.documentMode||0,a=(($.browser.msie)&&(/MSIE 6\.0/.test(navigator.userAgent))&&(!b));return a;};Abl.Xml.encode=function(a){return((a)&&(typeof a==="string"))?a.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\'/g,"&apos;").replace(/\"/g,"&quot;"):"";};Abl.Xml.decode=function(a){return((a)&&(typeof a==="string"))?a.replace(/\&lt;/g,"<").replace(/\&gt;/g,">").replace(/\&apos;/g,"'").replace(/\&quot;/g,'"').replace(/\&amp;/g,"&"):"";};Abl.Xml.serialize=function(a){return(a.xml)?a.xml:(new XMLSerializer()).serializeToString(a);};Abl.Uri=function(i){var b=this,c,p,k,j,s,h,l,f,q,r,a,e,n=/^(((https?|ftp):\/\/)([^\/:\?\#]*)?(:(\d*))?)?([^\?#]*)?((\?|#)(.*))?$/i,g=/^((\/)?.*\/)?(.*)$/i;this.getUrl=function(){return c;};this.getLocalUrl=function(){return p;};this.getHost=function(){return k;};this.getProtocol=function(){return j;};this.getDomain=function(){return s;};this.getPort=function(){return h;};this.getPath=function(){return l;};this.getFolder=function(){return f;};this.getFile=function(){return q;};this.getFragment=function(){return a;};this.getQuery=function(){return e;};this.getFileLessExtension=function(){return r;};this.getProperties=function(){return({url:c,localUrl:p,host:k,protocol:j,domain:s,port:h,path:l,folder:f,file:q,fileLessExtension:r,fragment:a,query:e});};this.getParams=function(){var t={},z=e.replace("+"," "),w,v,y,u,x;w=z.split(/[&;]/g);for(v=0;v<w.length;v++){y=w[v].split("=");u=decodeURIComponent(y[0]).toLowerCase();x=decodeURIComponent(y[1]);t[u]=x;}return t;};this.getParam=function(t){var u=b.getParams();return(u)?u[t.toLowerCase()]:null;};this.printProperties=function(){var u="",v,t=this.getProperties();for(v in t){if(t.hasOwnProperty(v)){if(u.length){u+="\r\n";}u+=v+": "+((t[v])?t[v]:"--");}}alert(u);};this.compare=function(w,v,t){var u=(w instanceof Abl.Uri)?w:new Abl.Uri(w);v=(v)?v.toLowerCase():"url";function x(B,A,y){var z;if((typeof B!=="string")||(typeof A!=="string")){return false;}B=B.toLowerCase();A=A.toLowerCase();if(y){z=Math.min(B.length,A.length);return(B.substr(0,z)===A.substr(0,z));}else{return(B===A);}}switch(v){case"url":return(c.toLowerCase()===u.getUrl().toLowerCase());case"localurl":return(p.toLowerCase()===u.getLocalUrl().toLowerCase());case"host":return(k.toLowerCase()===u.getHost().toLowerCase());case"protocol":return(j.toLowerCase()===u.getProtocol().toLowerCase());case"domain":return(s.toLowerCase()===u.getDomain().toLowerCase());case"port":return(h.toLowerCase()===u.getPort().toLowerCase());case"path":return(l.toLowerCase()===u.getPath().toLowerCase());case"folder":return x(f,u.getFolder(),t);case"file":return(q.toLowerCase()===u.getFile().toLowerCase());case"fileLessExtension":return(r.toLowerCase()===u.getFileLessExtension().toLowerCase());case"fragment":return(a.toLowerCase()===u.getFragment().toLowerCase());case"query":return(e.toLowerCase()===u.getQuery().toLowerCase());default:throw"Illegal comparison element '"+v+"'!";}};function o(t){var u=window.location.protocol+"//"+window.location.hostname;if(!t){return"";}if(window.location.port){u+=":"+window.location.port;}if(t.toLowerCase().indexOf(u.toLowerCase())===0){return t.substr(u.length);}else{return t;}}function m(){p="";k="";j="";s="";h="";l="";f="";q="";r="";a="";e="";}function d(v){c=v||"";p=o(c);var u=n.exec(c),t;if(u){k=u[1]||"";j=u[3]||"";s=u[4]||"";h=u[6]||"";l=u[7]||"";a=u[9]||"";e=u[10]||"";t=g.exec(l);f=t[1]||"";q=t[3]||"";r=q.match(/^[^\.]*/)[0];}else{m();}}this.setUri=function(t){if(typeof t==="string"){d(t);}else{if((typeof t==="object")&&(t.href)){d(t.href);}else{if((t)&&(t instanceof Abl.Uri)){d(t.getUrl());}else{if((t)&&(t instanceof jQuery)&&(t[0])&&(t[0].href)){d(t[0].href);}else{d(window.location.href);}}}}};this.setUri(i);};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.getIFrameDocument=function(b){var a=null;if(document.frames){a=document.frames[b].document;}else{a=document.getElementById(b).contentDocument;}return a;};Abl.createIFrame=function(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});};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.isMessage=function(){return(this.children(":first").is("message"));};$.fn.isErrorMessage=function(){return(this.children(":first").attr("status")==="error");};$.fn.isSuccessMessage=function(){return(this.children(":first").attr("status")==="success");};$.fn.toJsonMessage=function(){var j={},$root=this.children(":first"),status=$root.attr("status"),$data=$root.children("data");if(!$root.is("message")){throw"Invalid xml message format";}if(status==="error"){j.error=$root.children("error").text();}else{if(this.isSuccessMessage()){j.success=$root.children("success").text();}else{throw"Unrecognised message status '"+status+"'!";}}if($data.length>0){j.data=$data.text();}return j;};$.fn.getMessage=function(){var j=this.toJsonMessage(),msg=j.error||j.success||"";if(j.data){msg+="\r\n\r\n"+j.data;}return msg;};$.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.removeAttr("disabled").removeClass("disabled");}else{$ctrl.attr("disabled","disabled").addClass("disabled");}}});};$.fn.charMonitor=function(options){return this.each(function(){var $textbox=$(this),maxLength=options.maxLength||100,$wrapper=$("<div></div>").addClass(options.monitorClass||"charMonitor"),$monitor=$("<span></span>");$textbox.wrap($wrapper).parent().append($monitor);$textbox.bind("change keyup keydown mouseup mousedown",function(){var $t=$(this),$m=$t.next("span"),l=$t.val().length||0;if(l>maxLength){$t.val($t.val().substr(0,maxLength));l=maxLength;}$m.text(l+"/"+maxLength+" chars").toggleClass("full",l>=maxLength);}).trigger("keyup");});};$.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.addColumnClass=function(classes){var $tr,$td,r,c,cssClass;return this.each(function(){$tr=$(this).find("tr");for(r=0;r<$tr.length;r++){$td=$tr.eq(r).children();for(c=0;c<$td.length;c++){cssClass=((classes)&&(c<classes.length))?classes[c]:"col"+(c+1);$td.eq(c).addClass(cssClass);}}});};$.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(){if(params.stacked){$(this).wrapInner("<div class='"+params.bodyPanelClass+"'></div>").append("<div class='"+params.bottomBorderClass+"'></div>").prepend("<div class='"+params.topBorderClass+"'></div>");}else{$(this).wrapInner("<div class='"+params.bodyPanelClass+"'></div>").wrapInner("<div class='"+params.bottomBorderClass+"'></div>").wrapInner("<div class='"+params.topBorderClass+"'></div>");}});};$.fn.simplePanel.defaults={stacked:false,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){return this.each(function(){var $li=$(this),$link=$li.children("a"),$sub=$li.children("ul");$link.attr("title","Expand");$li.removeClass("expanded").addClass("collapsed");if((speed)&&($sub.is(":visible"))){$sub.hide(speed,function(){if(typeof callback==="function"){callback.call(this,false);}});}else{$sub.hide();if(typeof callback==="function"){callback.call(this,false);}}});};$.fn.showClamshell=function(speed,callback){function show($li,$link,$sub){$link.attr("title","Collapse");$li.removeClass("collapsed").addClass("expanded");if((speed)&&(!$sub.is(":visible"))){$sub.show(speed,function(){if(typeof callback==="function"){callback.call(this,true);}});}else{$sub.show();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(q){var p=this,g=null,i=0,b=0,l=0,e=0,h=0,f=false,n=0,m=[];if((q)&&(q.constructor===Array)){throw"Abl.UI.ImagePreLoader::ctor does not accept an image array parameter.  Use the loadImages() method.";}g=$.extend(true,{},Abl.UI.ImagePreLoader.defaults,q);function d(){h++;if(h===i){f=true;if(typeof g.onComplete==="function"){g.onComplete.call(p);}}}function o(){$(this).data("preload").loaded=true;b++;if(typeof g.onLoad==="function"){g.onLoad.call($(this));}d();}function j(r){$(this).data("preload").error=true;l++;if(typeof g.onError==="function"){g.onError.call($(this));}d();}function c(){$(this).data("preload").aborted=true;e++;if(typeof g.onAbort==="function"){g.onAbort.call($(this));}d();}function a(s){var r=$("<img />");if(typeof s==="string"){s={src:s};}if(!s.src){s.src=s.url;}if((typeof s.src!=="string")||(s.src.length<1)){throw ("Abl.UI.ImagePreLoader.loadImage() - imageData does not specify a 'src' attribute!");}r.bind("load",o);r.bind("error",j);r.bind("abort",c);r.data("preload",{loaded:false,error:false,aborted:false});if((s.data)&&(s.data.name)&&(s.data.value)){r.data(s.data.name,s.data.value);}else{if(g.attachData){r.data("data",s);}}if(s.alt){r.attr("alt",s.alt);}r.attr("src",s.src);m.push(r);}function k(){var s,r;for(s=0;s<m.length;s++){r=m[s];r.removeData("preload").unbind();}m=[];n=i=b=l=e=h=0;f=false;}this.isLoaded=function(){return f;};this.getNoImages=function(){return i;};this.getNoLoaded=function(){return b;};this.getNoErrors=function(){return l;};this.getNoAborted=function(){return e;};this.getIndex=function(){return n;};this.setIndex=function(r){if((r<0)||(r>=i)){r=0;}n=r;};this.setNextImage=function(){this.setIndex(n+1);};this.getImage=function(){return m[n];};this.getNextImage=function(){this.setNextImage();return this.getImage();};this.each=function(s){var r=0;for(r=0;r<i;r++){s.call(m[r],r);}};this.dispose=function(){k();g.onComplete=null;g.onLoaded=null;g.onError=null;g.onAbort=null;};this.loadImages=function(r,t){var s=0;k();if(typeof t==="function"){g.onComplete=t;}i=r.length;for(s=0;s<r.length;s++){a(r[s]);}};};Abl.UI.ImagePreLoader.defaults={attachData:false,onComplete:null,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.children("img.thumbnail").remove();g.children("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 j=Math.forceFit(d.width,d.height,h.params.thumbWidth,h.params.thumbHeight),i=g.children("img.thumbnail"),m=g.children("div.sizeInfo"),o,l,n,k;if(!i.length){i=$("<img />").appendTo(g);}i.attr({width:j[0],height:j[1],alt:d.alt,title:d.alt,src:d.src}).css({width:j[0]+"px",height:j[1]+"px"}).addClass("thumbnail");if(h.params.showInfo){if(!m.length){m=$("<div class='sizeInfo'></div>").appendTo(g);}o=m.children("span.dim");if(!o.length){o=$("<span class='dim'></span>").appendTo(m);}l=m.children("span.scale");if(!l.length){l=$("<span class='scale'></span>").appendTo(m);}o.text("Size: "+d.width+" x "+d.height);n=parseInt((j[0]/d.width)*100,10);k=(n===100)?"(Shown full size)":"(Shown at "+n+"% of actual size)";l.text(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){if(!d){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};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.call(g);}},error:function(k,i,j){var l="Abl.syncSelectLists() - Ajax Error\r\n"+i;alert(l);},complete:function(){e(true);}});});};
