/*!
 * NOTE: This is a custom build with an extra "background-size" test. If updating,
 *       please copy test["backgroundsizecover"] to the updated version.
 *
 * Modernizr v2.0.6
 * http://www.modernizr.com
 *
 * Copyright (c) 2009-2011 Faruk Ates, Paul Irish, Alex Sexton
 * Dual-licensed under the BSD or MIT licenses: www.modernizr.com/license/
 */
/*
 * Modernizr tests which native CSS3 and HTML5 features are available in
 * the current UA and makes the results available to you in two ways:
 * as properties on a global Modernizr object, and as classes on the
 * <html> element. This information allows you to progressively enhance
 * your pages with a granular level of control over the experience.
 *
 * Modernizr has an optional (not included) conditional resource loader
 * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
 * To get a build that includes Modernizr.load(), as well as choosing
 * which tests to include, go to www.modernizr.com/download/
 *
 * Authors        Faruk Ates, Paul Irish, Alex Sexton, 
 * Contributors   Ryan Seddon, Ben Alman
 *
 */
window.Modernizr=function(a,b,c){function B(a){k.cssText=a}function C(a,b){return B(o.join(a+";")+(b||""))}function D(a,b){return typeof a===b}function E(a,b){return!!~(""+a).indexOf(b)}function F(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function G(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return F(d,b)}var d="2.0.6",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);return f=["&shy;","<style>",a,"</style>"].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k),!!h},x=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;return w("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),c},y=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),z={}.hasOwnProperty,A;!D(z,c)&&!D(z.call,c)?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],c)};var H=function(a,b){}(['@font-face {font-family:"font";src:url("https://")}',["@media (",o.join("touch-enabled),("),i,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",o.join("transform-3d),("),i,")","{#csstransforms3d{left:9px;position:absolute}}"].join(""),['#generatedcontent:after{content:"',m,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.touch=function(){return"ontouchstart"in a},r.backgroundsize=function(){return G("backgroundSize")},r.backgroundsizecover=function(){return B("background-size: cover"),E(k.backgroundSize,"cover")};for(var I in r)A(r,I)&&(v=I.toLowerCase(),e[v]=r[I](),u.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return;b=typeof b=="boolean"?b:!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},B(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");return a.innerHTML="<elem></elem>",a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b<g)a.createElement(f[b])}a.iepp=a.iepp||{};var d=a.iepp,e=d.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",f=e.split("|"),g=f.length,h=new RegExp("(^|\\s)("+e+")","gi"),i=new RegExp("<(/*)("+e+")","gi"),j=/^\s*[\{\}]\s*$/,k=new RegExp("(^|[^\\n]*?\\s)("+e+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),l=b.createDocumentFragment(),m=b.documentElement,n=m.firstChild,o=b.createElement("body"),p=b.createElement("style"),q=/print|all/,r;d.getCSS=function(a,b){if(a+""===c)return"";var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,q.test(b)&&h.push(d.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},d.parseCSS=function(a){var b=[],c;while((c=k.exec(a))!=null)b.push(((j.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(h,"$1.iepp_$2")+c[4]);return b.join("\n")},d.writeHTML=function(){var a=-1;r=r||b.body;while(++a<g){var c=b.getElementsByTagName(f[a]),d=c.length,e=-1;while(++e<d)c[e].className.indexOf("iepp_")<0&&(c[e].className+=" iepp_"+f[a])}l.appendChild(r),m.appendChild(o),o.className=r.className,o.id=r.id,o.innerHTML=r.innerHTML.replace(i,"<$1font")},d._beforePrint=function(){p.styleSheet.cssText=d.parseCSS(d.getCSS(b.styleSheets,"all")),d.writeHTML()},d.restoreHTML=function(){o.innerHTML="",m.removeChild(o),m.appendChild(r)},d._afterPrint=function(){d.restoreHTML(),p.styleSheet.cssText=""},s(b),s(l);if(d.disablePP)return;n.insertBefore(p,n.firstChild),p.media="print",p.className="iepp-printshim",a.attachEvent("onbeforeprint",d._beforePrint),a.attachEvent("onafterprint",d._afterPrint)}(a,b),e._version=d,e._prefixes=o,e._domPrefixes=p,e.mq=x,e.hasEvent=y,e.testProp=function(a){return F([a])},e.testAllProps=G,e.testStyles=w,e.prefixed=function(a){return G(a,"pfx")},g.className=g.className.replace(/\bno-js\b/,"")+(f?" js "+u.join(" "):""),e}(this,this.document),jQuery.cookie=function(a,b,c){if(typeof b=="undefined"){var i=null;if(document.cookie&&document.cookie!=""){var j=document.cookie.split(";");for(var k=0;k<j.length;k++){var l=jQuery.trim(j[k]);if(l.substring(0,a.length+1)==a+"="){i=decodeURIComponent(l.substring(a.length+1));break}}}return i}c=c||{},b===null&&(b="",c.expires=-1);var d="";if(c.expires&&(typeof c.expires=="number"||c.expires.toUTCString)){var e;typeof c.expires=="number"?(e=new Date,e.setTime(e.getTime()+c.expires*24*60*60*1e3)):e=c.expires,d="; expires="+e.toUTCString()}var f=c.path?"; path="+c.path:"",g=c.domain?"; domain="+c.domain:"",h=c.secure?"; secure":"";document.cookie=[a,"=",encodeURIComponent(b),d,f,g,h].join("")},function(a,b,c){function j(a){return a=a||location.href,"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}"$:nomunge";var d="hashchange",e=document,f,g=a.event.special,h=e.documentMode,i="on"+d in b&&(h===c||h>7);a.fn[d]=function(a){return a?this.bind(d,a):this.trigger(d)},a.fn[d].delay=50,g[d]=a.extend(g[d],{setup:function(){if(i)return!1;a(f.start)},teardown:function(){if(i)return!1;a(f.stop)}}),f=function(){function n(){var c=j(),e=m(h);c!==h?(l(h=c,e),a(b).trigger(d)):e!==h&&(location.href=location.href.replace(/#.*/,"")+e),g=setTimeout(n,a.fn[d].delay)}var f={},g,h=j(),k=function(a){return a},l=k,m=k;return f.start=function(){g||n()},f.stop=function(){g&&clearTimeout(g),g=c},a.browser.msie&&!i&&function(){var b,c;f.start=function(){b||(c=a.fn[d].src,c=c&&c+j(),b=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){c||l(j()),n()}).attr("src",c||"javascript:0").insertAfter("body")[0].contentWindow,e.onpropertychange=function(){try{event.propertyName==="title"&&(b.document.title=e.title)}catch(a){}})},f.stop=k,m=function(){return j(b.location.href)},l=function(c,f){var g=b.document,h=a.fn[d].domain;c!==f&&(g.title=e.title,g.open(),h&&g.write('<script>document.domain="'+h+'"</script>'),g.close(),b.location.hash=c)}}(),f}()}(jQuery,this),function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e=/[+-]\d+%?/,f=/^\w+/,g=/%$/,h="center",i=a.fn.position;a.position={scrollbarWidth:function(){var b,c,d=a("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),e=d.children()[0];return a("body").append(d),b=e.offsetWidth,d.css("overflow","scroll"),c=e.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),b-c},getScrollInfo:function(b){var c=b[0]!==window,d=c?b.css("overflow-x"):"",e=c?b.css("overflow-y"):"",f=d==="auto"||d==="scroll"?a.position.scrollbarWidth():0,g=e==="auto"||e==="scroll"?a.position.scrollbarWidth():0;return{height:b.height()<b[0].scrollHeight?g:0,width:b.width()<b[0].scrollWidth?f:0}}},a.fn.position=function(b){if(!b||!b.of)return i.apply(this,arguments);b=a.extend({},b);var j=a(b.of),k=a(b.within||window),l=j[0],m=(b.collision||"flip").split(" "),n={},o,p,q,r;return l.nodeType===9?(p=j.width(),q=j.height(),r={top:0,left:0}):a.isWindow(l)?(p=j.width(),q=j.height(),r={top:j.scrollTop(),left:j.scrollLeft()}):l.preventDefault?(b.at="left top",p=q=0,r={top:b.of.pageY,left:b.of.pageX}):(p=j.outerWidth(),q=j.outerHeight(),r=j.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" "),g,i;a.length===1&&(a=c.test(a[0])?a.concat([h]):d.test(a[0])?[h].concat(a):[h,h]),a[0]=c.test(a[0])?a[0]:h,a[1]=d.test(a[1])?a[1]:h,g=e.exec(a[0]),i=e.exec(a[1]),n[this]=[g?g[0]:0,i?i[0]:0],b[this]=[f.exec(a[0])[0],f.exec(a[1])[0]]}),m.length===1&&(m[1]=m[0]),b.at[0]==="right"?r.left+=p:b.at[0]===h&&(r.left+=p/2),b.at[1]==="bottom"?r.top+=q:b.at[1]===h&&(r.top+=q/2),o=[parseInt(n.at[0],10)*(g.test(n.at[0])?p/100:1),parseInt(n.at[1],10)*(g.test(n.at[1])?q/100:1)],r.left+=o[0],r.top+=o[1],this.each(function(){var c=a(this),d=c.outerWidth(),e=c.outerHeight(),f=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,j=a.position.getScrollInfo(k),l=d+f+(parseInt(a.curCSS(this,"marginRight",!0))||0)+j.width,s=e+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0)+j.height,t=a.extend({},r),u=[parseInt(n.my[0],10)*(g.test(n.my[0])?c.outerWidth()/100:1),parseInt(n.my[1],10)*(g.test(n.my[1])?c.outerHeight()/100:1)],v;b.my[0]==="right"?t.left-=d:b.my[0]===h&&(t.left-=d/2),b.my[1]==="bottom"?t.top-=e:b.my[1]===h&&(t.top-=e/2),t.left+=u[0],t.top+=u[1],a.support.offsetFractions||(t.left=Math.round(t.left),t.top=Math.round(t.top)),v={marginLeft:f,marginTop:i},a.each(["left","top"],function(f,g){a.ui.position[m[f]]&&a.ui.position[m[f]][g](t,{targetWidth:p,targetHeight:q,elemWidth:d,elemHeight:e,collisionPosition:v,collisionWidth:l,collisionHeight:s,offset:[o[0]+u[0],o[1]+u[1]],my:b.my,at:b.at,within:k,elem:c})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(t,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=c.within,e=a(window),f=a.isWindow(c.within[0]),g=f?e.scrollLeft():d.offset().left,h=f?e.width():d.outerWidth(),i=b.left-c.collisionPosition.marginLeft,j=g-i,k=i+c.collisionWidth-h-g,l,m;c.collisionWidth>h?j>0&&k<=0?(l=b.left+j+c.collisionWidth-h-g,b.left+=j-l):k>0&&j<=0?b.left=g:j>k?b.left=g+h-c.collisionWidth:b.left=g:j>0?b.left+=j:k>0?b.left-=k:b.left=Math.max(b.left-i,b.left)},top:function(b,c){var d=c.within,e=a(window),f=a.isWindow(c.within[0]),g=f?e.scrollTop():d.offset().top,h=f?e.height():d.outerHeight(),i=b.top-c.collisionPosition.marginTop,j=g-i,k=i+c.collisionHeight-h-g,l,m;c.collisionHeight>h?j>0&&k<=0?(m=b.top+j+c.collisionHeight-h-g,b.top+=j-m):k>0&&j<=0?b.top=g:j>k?b.top=g+h-c.collisionHeight:b.top=g:j>0?b.top+=j:k>0?b.top-=k:b.top=Math.max(b.top-i,b.top)}},flip:{left:function(b,c){if(c.at[0]===h)return;c.elem.removeClass("ui-flipped-left ui-flipped-right");var d=c.within,e=a(window),f=a.isWindow(c.within[0]),g=(f?0:d.offset().left)+d.scrollLeft(),i=f?d.width():d.outerWidth(),j=b.left-c.collisionPosition.marginLeft,k=j-g,l=j+c.collisionWidth-i-g,m=c.my[0]==="left",n=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,o=c.at[0]==="left"?c.targetWidth:-c.targetWidth,p=-2*c.offset[0],q,r;if(k<0){q=b.left+n+o+p+c.collisionWidth-i-g;if(q<0||q<Math.abs(k))c.elem.addClass("ui-flipped-right"),b.left+=n+o+p}else if(l>0){r=b.left-c.collisionPosition.marginLeft+n+o+p-g;if(r>0||Math.abs(r)<l)c.elem.addClass("ui-flipped-left"),b.left+=n+o+p}},top:function(b,c){if(c.at[1]===h)return;c.elem.removeClass("ui-flipped-top ui-flipped-bottom");var d=c.within,e=a(window),f=a.isWindow(c.within[0]),g=(f?0:d.offset().top)+d.scrollTop(),i=f?d.height():d.outerHeight(),j=b.top-c.collisionPosition.marginTop,k=j-g,l=j+c.collisionHeight-i-g,m=c.my[1]==="top",n=m?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,o=c.at[1]==="top"?c.targetHeight:-c.targetHeight,p=-2*c.offset[1],q,r;k<0?(r=b.top+n+o+p+c.collisionHeight-i-g,b.top+n+o+p>k&&(r<0||r<Math.abs(k))&&(c.elem.addClass("ui-flipped-bottom"),b.top+=n+o+p)):l>0&&(q=b.top-c.collisionPosition.marginTop+n+o+p-g,b.top+n+o+p>l&&(q>0||Math.abs(q)<l)&&(c.elem.addClass("ui-flipped-top"),b.top+=n+o+p))}},flipfit:{left:function(){a.ui.position.flip.left.apply(this,arguments),a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments),a.ui.position.fit.top.apply(this,arguments)}}},function(){var b,c,d,e,f;body=document.getElementsByTagName("body")[0],div=document.createElement("div"),b=document.createElement(body?"div":"body"),d={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},body&&jQuery.extend(d,{position:"absolute",left:"-1000px",top:"-1000px"});for(f in d)b.style[f]=d[f];b.appendChild(div),c=body||document.documentElement,c.insertBefore(b,c.firstChild),div.style.cssText="position: absolute; left: 10.7432222px;",e=a(div).offset().left,a.support.offsetFractions=e>10&&e<11,b.innerHTML="",c.removeChild(b)}(),a.uiBackCompat!==!1&&function(a){var c=a.fn.position;a.fn.position=function(d){if(!d||!d.offset)return c.call(this,d);var e=d.offset.split(" "),f=d.at.split(" ");return e.length===1&&(e[1]=e[0]),/^\d/.test(e[0])&&(e[0]="+"+e[0]),/^\d/.test(e[1])&&(e[1]="+"+e[1]),f.length===1&&(/left|center|right/.test(f[0])?f[1]="center":(f[1]=f[0],f[0]="center")),c.call(this,a.extend(d,{at:f[0]+e[0]+" "+f[1]+e[1],offset:b}))}}(jQuery)}(jQuery),function(){if(!window.console){var a=function(){};window.console={log:a,debug:a,info:a,warn:a,error:a,trace:a,dir:a}}}();var Jux=function(){this.uA=window.navigator.userAgent.toLowerCase(),this.browserVersion=parseFloat(this.uA.match(/.+(?:rv|it|ml|ra|ie)[\/: ]([\d.]+)/)[1]),this.isSafari=/webkit/.test(this.uA),this.isOpera=/opera/.test(this.uA),this.isIE=/msie/.test(this.uA)&&!/opera/.test(this.uA),this.isMoz=/mozilla/.test(this.uA)&&!/(compatible|webkit)/.test(this.uA),this.isWebKit=/applewebkit/.test(this.uA),this.isGecko=/gecko/.test(this.uA)&&/khtml/.test(this.uA)===!1,this.isKHTML=/khtml/.test(this.uA),this.isMobileSafari=!!this.uA.match(/apple.*mobile.*safari/),this.isMac=/mac/.test(this.uA),this.isWindows=/win/.test(this.uA),this.isLinux=/linux/.test(this.uA),this.isUnix=/x11/.test(this.uA),this.isIPhone=/iphone/.test(this.uA),this.isIPod=/ipod/.test(this.uA),this.isTouch=Modernizr.touch,this.isIPad=this.isTouch&&Modernizr.mq("only screen and (min-device-width: 768px) and (max-device-width: 1024px)"),this.isHandheld=this.isTouch&&Modernizr.mq("only screen and (min-device-width: 320px) and (max-device-width: 480px)"),this.isIOS4=this.isTouch&&/os 4_/.test(this.uA),this.isIOS5=this.isTouch&&/os 5_/.test(this.uA)};Jux.prototype={constructor:Jux,emptyFn:function(){},abstractFn:function(){throw new Error("method must be implemented in subclass")},newId:function(){var a=0;return function(){return++a}}(),apply:function(a,b,c){c&&Jux.apply(a,c);if(a&&b&&typeof b=="object")for(var d in b)a[d]=b[d];return a},applyIf:function(a,b){if(a)for(var c in b)Jux.isDefined(a[c])||(a[c]=b[c]);return a},copyTo:function(a,b,c){return typeof c=="string"&&(c=c.split(/[,;\s]/)),Jux.each(c,function(c){b.hasOwnProperty(c)&&(a[c]=b[c])},this),a},extend:function(){var a=0,b=Object.prototype.constructor,c=function(a){for(var b in a)this[b]=a[b]};return function(d,e,f){Jux.isArray(e)||(f=e,e=[]);var g=f.constructor!=b?f.constructor:function(){d.apply(this,arguments)},h=function(){},i,j=d.prototype;h.prototype=j,i=g.prototype=new h,i.constructor=g,g.superclass=j,j.constructor==b&&(j.constructor=d),g.override=function(a){Jux.override(g,a)},i.superclass=i.supr=function(){return j},i.override=c,Jux.override(g,f),g.extend=function(a,b){return Jux.extend(g,a,b)},g.constructor=i.constructor;for(var k=e.length-1;k>=0;k--){var l=e[k].prototype;for(var m in l)typeof i[m]=="undefined"&&(i[m]=l[m])}g.mixins=e;var n={};return g.hasMixin=i.hasMixin=function(b,c){var d=b._classId;d||(d=b._classId=++a);if(typeof n[d]!="undefined")return n[d];var e=c||g,f=e.mixins;if(!f)return n[d]=!1,!1;for(var h=0,i=f.length;h<i;h++)if(f[h]===b)return n[d]=!0,!0;if(e.superclass&&e.superclass.constructor&&e.superclass.constructor!==Object){var j=arguments.callee(b,e.superclass.constructor);return n[d]=j,j}return n[d]=!1,!1},g}}(),isInstanceOf:function(a,b){if(typeof b!="function")throw new Error("jsClass argument of isInstanceOf method expected a Function (constructor function) for a JavaScript class");return Jux.isObject(a)?a instanceof b?!0:a.hasMixin&&a.hasMixin(b)?!0:!1:!1},override:function(a,b){if(b){var c=a.prototype;Jux.apply(c,b),Jux.isIE&&b.hasOwnProperty("toString")&&(c.toString=b.toString)}},namespace:function(){var a,b;return Jux.each(arguments,function(c){b=c.split("."),a=window[b[0]]=window[b[0]]||{},Jux.each(b.slice(1),function(b){a=a[b]=a[b]||{}})}),a},toArray:function(a,b,c,d){if(Jux.isIE){d=[];for(var e=0,f=a.length;e<f;e++)d.push(a[e]);return d.slice(b||0,c||d.length)}return Array.prototype.slice.call(a,b||0,c||a.length)},each:function(a,b,c){if(Jux.isEmpty(a,!0))return;if(typeof a.length=="undefined"||Jux.isPrimitive(a))a=[a];for(var d=0,e=a.length;d<e;d++)if(b.call(c||a[d],a[d],d,a)===!1)return d},isArray:function(a){return!!a&&Object.prototype.toString.apply(a)==="[object Array]"},isObject:function(a){return!!a&&Object.prototype.toString.call(a)==="[object Object]"},isFunction:function(a){return!!a&&a.constructor===Function},isDate:function(a){return Object.prototype.toString.apply(a)==="[object Date]"},isString:function(a){return typeof a=="string"},isNumber:function(a){return typeof a=="number"&&isFinite(a)},isBoolean:function(a){return typeof a=="boolean"},isRegExp:function(a){return!!a&&a.constructor===RegExp},isElement:function(a){return a?a.nodeType===1:!1},isJQuery:function(a){return a instanceof jQuery},isDefined:function(a){return typeof a!="undefined"},isUndefined:function(a){return typeof a=="undefined"},isPrimitive:function(a){return Jux.isString(a)||Jux.isNumber(a)||Jux.isBoolean(a)},isEmpty:function(a,b){return a===null||a===undefined||Jux.isArray(a)&&!a.length||(b?!1:a==="")},parseUrlCache:{},parseUrl:function(a){a=a||window.location.href;var b;if(!this.parseUrlCache[a]){var c=a.match(/^((\w+):)?(\/\/((\w+)?(:(\w+))?@)?([^\/\?:]+)(:(\d+))?)?(\/?([^\/\?#][^\?#]*)?)?(\?([^#]+))?(#(.*))?/);this.parseUrlCache[a]={url:c[0],protocol:c[2],username:c[5],password:c[7],host:c[8]||"",port:c[10],pathname:c[11]||"",querystring:c[14]||"",fragment:c[16]||""}}return b=this.parseUrlCache[a],b.param=function(a){var b=(new RegExp("[?&]"+a+"=([^&]*)?","i")).exec("?"+this.querystring);return b?b[1]:null},b.hashParam=function(a){var b=(new RegExp("[#&]"+a+"=([^&]*)?","i")).exec("#"+this.fragment);return b?decodeURIComponent(b[1]):null},b.getAllHashParams=function(){var a=this.fragment.split("&"),b={};for(var c=0;c<a.length;c++){var d=a[c].split("=");b[d[0]]=decodeURIComponent(d[1])}return b},b},escapeRe:function(a){return a.replace(/([\-.*+?\^$\{\}\(\)|\[\]\/\\])/g,"\\$1")},clone:function(a,b){typeof b=="undefined"&&(b=!0);var c;if(typeof a!="object"||a===null)return a;c=new a.constructor;for(var d in a)a.hasOwnProperty(d)&&(c[d]=b?this.clone(a[d],!0):a[d]);return c}},Jux=new Jux,Jux.namespace("Jux.data","Jux.util"),Jux.Analytics=new function(){this.gametrics=null,this.startTime=(new Date).getTime(),this.requestTracking={},setTimeout(function(){try{Jux.Analytics._loadGoogleAnalytics();if(!Jux.Cookies.read("user_src")&&(!Jux.Util.uri.isInJuxDomain(document.referrer)||Jux.parseUrl().param("trafficsource"))){var a="Referrer="+document.referrer+", Source="+Jux.parseUrl().param("trafficsource");Jux.Cookies.create("user_src",a,{domain:Jux.Hosts.origin.split(":")[0]})}}catch(b){console.log("Analytics","error","Cannot load analytics",b)}},100),this.trackAction=function(){try{var a=[];for(var b=0;b<arguments.length;b++)a.push(arguments[b]);var c=Jux.Util.uri.normalize("/"+a.join("/"));this.gametrics?this.gametrics._trackPageview(c):setTimeout(function(){Jux.Analytics.gametrics&&Jux.Analytics.gametrics._trackPageview(c)},2e3)}catch(d){console.log("Analytics","error","Problem tracking action",d)}},this.trackEvent=function(a,b,c,d){a=a||(window.location.pathname==="/"?"/site="+window.location.hostname:window.location.pathname);try{c=c?c:{};if(this.gametrics){var e=JSON.stringify(c);e.length<255&&this.gametrics._trackEvent(a,b,e)}else d||setTimeout(function(){Jux.Analytics.trackEvent(a,b,c,!0)},1e3)}catch(f){console.log("Analytics","error","Problem tracking event",f)}},this.trackJuxCall=function(a,b,c){this.requestTracking.current&&(this.requestTracking[this.requestTracking.current].push({calltype:a,url:Jux.Util.uri.chompSlash(b).split("/").pop().split("?").shift(),time:c}),this.requestTracking[this.requestTracking.current][0].endTime=(new Date).getTime())},this.getBucketValue=function(a){var b=0,c=2;while(a>0&&b<4)a-=c,b++,c++;return b},this.sendJuxAnalysis=function(a){var b=this.requestTracking[this.requestTracking.current];if(b.length>1){var c=this.getBucketValue(Math.ceil((b[0].endTime-b[0].startTime)/1e3));this.trackEvent(null,"/response"+a,c)}},this.trackAllClicks=function(a){window.jQuery&&!Jux.Util.lang.inArray(window.location.href,[new RegExp("/apps/bitmix"),new RegExp("iframed")])&&jQuery(document).click(function(b){try{var c=function(a){return typeof a=="undefined"||a===null||jQuery.trim(a)===""?!1:!0},d=jQuery(b.target);!c(d.attr("title"))&&!c(d.attr("id"))&&!c(d.text())&&!c(d.attr("src"))&&(d=d.parent());var e={title:d.attr("title"),id:d.attr("id"),className:d.prop("className"),text:jQuery.trim(d.text()),type:d.prop("tagName"),src:d.attr("src")};e.type!=="html"&&Jux.Analytics.trackEvent(a,"click",e)}catch(f){}})},this._loadGoogleAnalytics=function(){var a=this;jQuery(document).ready(function(){if(!window._gat&&!Jux.Util.lang.inArray(window.location.href,[new RegExp("iframed")])){var b=document.createElement("script");b.type="text/javascript",b.async=!0,b.src=(document.location.protocol==="https:"?"https://ssl":"http://www")+".google-analytics.com/ga.js";var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c),b.onload=b.onreadystatechange=function(){window._gat&&(a.gametrics=_gat._getTracker(a.getUAString()),a.gametrics._setDomainName(a.getDomain()),a.gametrics._setAllowLinker(!0),a.gametrics._setAllowHash(!1),a.gametrics._trackPageLoadTime(),a.trackPageView())}}})},this.switchAnalytics=function(a){var b=function(){window._gat&&(Jux.Analytics.gametrics=_gat._getTracker(a),Jux.Analytics.gametrics._trackPageview(window.location.hostname+window.location.pathname+window.location.search+escape(window.location.hash)))};window._gat?b():setTimeout(function(){b()},2e3)},this.trackPageView=function(){try{this.trackAction(window.location.pathname)}catch(a){console.log("Analytics","error","Cannot track page view",a)}},this.getUAString=function(){var a={production:"UA-4454143-6",development:"UA-4454143-12",testing:"UA-5426741-3"};return a[Jux.Util.getModeOfOperation()]},this.getDomain=function(){var a=window.location.hostname.split(".");return a[a.length-2]+"."+a[a.length-1]}},Jux.CSS={hashToString:function(a){var b=/([A-Z])/g,c="",d;for(var e in a)a.hasOwnProperty(e)&&(d=e.replace(b,"-$1").toLowerCase(),c+=d+":"+a[e]+";");return c}},Jux.Cdn={BASE_URI:"https://dk66xvwfh9hft.cloudfront.net/"},Jux.Cookies={create:function(a,b,c){var d=c||{};a=encodeURIComponent(a),b=encodeURIComponent(b),d.domain=d.domain?"; domain="+encodeURIComponent(d.domain):"",d.path=d.path||"/";var e;if(d.days){var f=new Date;f.setTime(f.getTime()+d.days*24*60*60*1e3),e="; expires="+f.toGMTString()}else e="";try{return document.cookie=a+"="+b+e+"; path="+d.path+d.domain,!0}catch(g){return!1}},update:function(a,b,c){var d=a||null,e=b||null,f=c||null;return this.create(d,e,f)},read:function(a){var b=encodeURIComponent(a)+"=",c=document.cookie.split(";");for(var d=0;d<c.length;d++){var e=c[d];while(e.charAt(0)===" ")e=e.substring(1,e.length);if(e.indexOf(b)===0)return decodeURIComponent(e.substring(b.length,e.length))}return!1},erase:function(a,b){return b=b||{},b.days=-1,this.create(a,"",b)}},Jux.Facebook={APP_ID:"163259900390076"},Jux.apply(Function.prototype,{createInterceptor:function(a,b){var c=this;return Jux.isFunction(a)?function(){var d=this,e=arguments;return a.target=d,a.method=c,a.apply(b||d||window,e)!==!1?c.apply(d||window,e):null}:this},createSequence:function(a,b){var c=this;return typeof a!="function"?this:function(){var d=c.apply(this||window,arguments);return a.apply(b||this||window,arguments),d}},createCallback:function(){var a=arguments,b=this;return function(){return b.apply(window,a)}},createDelegate:function(a,b,c){var d=this;return function(){var e=b||arguments;if(c===!0)e=Array.prototype.slice.call(arguments,0),e=e.concat(b);else if(Jux.isNumber(c)){e=Array.prototype.slice.call(arguments,0);var f=[c,0].concat(b);Array.prototype.splice.apply(e,f)}return d.apply(a||window,e)}},defer:function(a,b,c,d){var e=this.createDelegate(b,c,d);return a>0?setTimeout(e,a):(e(),0)}}),Jux.Help={normalOrSsoUrl:function(){return Jux.User.isLoggedIn()?"/multipass/assistly/auth":"http://helpers.jux.com"}},Jux.Hosts={baseHost:"jux.com",origin:"https://jux.com",magickly:"https://jux.com/images"},Jux.Magickly={convertImageUrl:function(a,b){b=b||{};var c=this.optionsToQueryStr(b);return c&&(c+="&"),c+="src="+encodeURIComponent(a),Jux.Hosts.magickly+"?"+c},convertImagePathOrUri:function(a,b){b=b||{};var c=Jux.Util.uri.makeAbsolute(a);return this.convertImageUrl(c,b)},optionsToQueryStr:function(a){a=a||{};if(Jux.isObject(a))for(var b in a)(a[b]===!1||a[b]===undefined)&&delete a[b];else for(var c=a.length-1;c>=0;c--)(a[c].value===!1||a[c].value===undefined)&&a.splice(c,1);return jQuery.param(a)}},Jux.Share={createMailtoUrl:function(a,b,c){return"mailto:"+encodeURIComponent(a||"")+"?subject="+encodeURIComponent(b||"")+"&body="+encodeURIComponent(c||"")},getShareUrl:function(a){return a||(a=Jux.Util.uri.getWindowOrigin()+window.location.pathname),Jux.Util.uri.makeAbsolute(a)},email:function(a){a=a||{};var b=this.createMailtoUrl(a.to,a.subject,a.message);!a.newWindow&&"newWindow"in a?window.location=b:window.open(b)},facebookShare:function(a,b){a=a||"",b=b||this.getShareUrl(),a&&(a=Jux.Util.Html.stripTags(a),a=encodeURIComponent(a));var c="http://www.facebook.com/sharer.php?u="+encodeURIComponent(b)+"&t="+a;window.open(c),window._gaq&&window._gaq.push(["_trackSocial","facebook","share",b])},tweet:function(a,b){b=b||{};var c,d=c?c.length:15;d+=21,a=Jux.Util.Html.stripTags(a),a=a.replace(/\n/g," "),a=Jux.Util.ellipsis(a,140-d,!0),c&&(a+=" "+c);var e=this.getShareUrl(b.shareUrl),f="http://twitter.com/intent/tweet?url="+encodeURIComponent(e)+"&text="+encodeURIComponent(a)+(c?"":"&via=JuxDotCom")+"&related=JuxDotCom";if(b.authorize){var g=b.scope||this;window.twitterOauthCallback=function(a,c){return b.callback&&b.callback.call(g,c.nickname),window.twitterOauthCallback=null,f},window.open("/auth/twitter?callback=twitterOauthCallback")}else window.open(f);window._gaq&&window._gaq.push(["_trackSocial","twitter","tweet",e])}},Jux.User={_displayNames:{},isLoggedIn:function(){return!!Jux.Cookies.read("user")},getUsername:function(){return Jux.Cookies.read("user")||null},displayname_anyuser:function(a,b){b=b||{};var c;return a?this._displayNames[a]?(c=this._displayNames[a],typeof b.success=="function"&&b.success.call(b.scope||window,c)):jQuery.ajax({url:"/users/"+a+".json",dataType:"json",async:!!b.async,success:function(d){c=d.displayname,this._displayNames[a]=c,typeof b.success=="function"&&b.success.call(b.scope||window,c)},error:b.failure||Jux.emptyFn,context:this}):typeof b.success=="function"&&b.success.call(b.scope||window,undefined),b.async?undefined:c},getDisplayName:function(a,b){return typeof a=="object"?(b=a,a=Jux.User.getUsername()):typeof a=="undefined"&&(a=Jux.User.getUsername()),this.displayname_anyuser(a,b)}},Jux.Util={uuid:function(a,b){var c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),d=[],e;b=b||c.length;if(a)for(e=0;e<a;e++)d[e]=c[0|Math.random()*b];else{var f;d[8]=d[13]=d[18]=d[23]="-",d[14]="4";for(e=0;e<36;e++)d[e]||(f=0|Math.random()*16,d[e]=c[e==19?f&3|8:f])}return d.join("")},tmpl_cache:{},tmpl:function a(a,b){try{var c=this.tmpl_cache[a];if(!c){var d="var p=[],print=function(){p.push.apply(p,arguments);};with( obj ){ p.push('"+a.replace(/[\r\t\n]/g," ").replace(/'(?=[^%]*%>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<%=(.+?)%>/g,"',$1,'").split("<%").join("');").split("%>").join("p.push('")+"');}return p.join('');";c=new Function("obj",d),this.tmpl_cache[a]=c}return c(b)}catch(e){throw new Error("Template Error: "+e.message)}},getModeOfOperation:function(){var a=Jux.Hosts.origin,b={"limebits.com":"production","jux.com":"production","jux.nu":"development","jux.int":"development","smackaho.st":"development",".build.":"testing"};for(var c in b)if(b.hasOwnProperty(c)){var d=new RegExp(c);if(a.match(d))return b[c]}throw new Error("getModeOfOperation() did not find a mode of operation for the current domain.")},ellipsis:function(a,b,c){if(a&&a.length>b){if(c){var d=a.substr(0,b-2),e=Math.max(d.lastIndexOf(" "),d.lastIndexOf("."),d.lastIndexOf("!"),d.lastIndexOf("?"));return e==-1||e<b-15?a.substr(0,b-3)+"...":d.substr(0,e)+"..."}return a.substr(0,b-3)+"..."}return a}},Jux.util=Jux.Util,Jux.Util.DelayedTask=function(a,b,c){var d=this,e,f=function(){clearInterval(e),e=null,a.apply(b,c||[])};d.delay=function(g,h,i,j){d.cancel(),a=h||a,b=i||b,c=j||c,e=setInterval(f,g)},d.cancel=function(){e&&(clearInterval(e),e=null)},d.isPending=function(){return!!e}},Jux.Util.Html={encode:function(a){return a?String(a).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;"):a},decode:function(a){return a?String(a).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&"):a},stripTags:function(a){return a?String(a).replace(/<\/?[^>]+>/gi,""):a},nl2br:function(a){return a.replace(/\n/gim,"<br />")}},function(){function h(a,c,d){return function(){c.target==arguments[0]&&a.apply(d,b(arguments))}}function i(c,d,e,f){return e.task=new a.DelayedTask,function(){e.task.delay(d.buffer,c,f,b(arguments))}}function j(a,b,c,d){return function(){return b.removeListener(c,d),a.apply(d,arguments)}}function k(c,d,e,f){return function(){var g=new a.DelayedTask;e.tasks||(e.tasks=[]),e.tasks.push(g),g.delay(d.delay||10,c,f,b(arguments))}}var a=Jux.Util,b=Jux.toArray,c=Jux.each,d=Jux.isObject,e=!0,f=!1;a.Observable=function(){var a=this,b=a.events;a.events=b||{},a.listeners&&(a.on(a.listeners),delete a.listeners)},a.Observable.prototype={filterOptRe:/^(?:scope|delay|buffer|single)$/,fireEvent:function(){var a=b(arguments),c=a[0].toLowerCase(),g=this,h=e,i=g.events[c],j,k;if(g.eventsSuspended===e)j=g.eventQueue,j&&j.push(a);else if(d(i)&&i.bubble){if(i.fire.apply(i,a.slice(1))===!1)return f;var l=i.bubbleFn,m=i.bubbleFnScope;if(l&&l.call(m,this)===!1)return!1;k=g.getBubbleTarget&&g.getBubbleTarget();if(k&&k.enableBubble)return(!k.events[c]||!Jux.isObject(k.events[c])||!k.events[c].bubble||!k.events[c].bubbleFn&&l)&&k.enableBubble({eventName:c,bubbleFn:l,scope:m}),k.fireEvent.apply(k,a)}else d(i)&&(a.shift(),h=i.fire.apply(i,a));return h},addListener:function(b,c,f,g){var h=this,i,j,k,l;if(d(b)){g=b;for(i in g)j=g[i],h.filterOptRe.test(i)||h.addListener(i,j.fn||j,j.scope||g.scope,j.fn?j:g)}else b=b.toLowerCase(),l=h.events[b]||e,Jux.isBoolean(l)&&(h.events[b]=l=new a.Event(h,b)),l.addListener(c,f,d(g)?g:{})},removeListener:function(a,b,c){var e=this.events[a.toLowerCase()];d(e)&&e.removeListener(b,c)},purgeListeners:function(){var a=this.events,b,c;for(c in a)b=a[c],d(b)&&b.clearListeners()},addEvents:function(a){var b=this;b.events=b.events||{};if(Jux.isString(a)){var c=arguments,d=c.length;while(d--)b.events[c[d]]=b.events[c[d]]||e}else Jux.applyIf(b.events,a)},hasListener:function(a){var b=this.events[a];return d(b)&&b.listeners.length>0},suspendEvents:function(a){this.eventsSuspended=e,a&&!this.eventQueue&&(this.eventQueue=[])},resumeEvents:function(){var a=this,b=a.eventQueue||[];a.eventsSuspended=f,delete a.eventQueue,c(b,function(b){a.fireEvent.apply(a,b)})},relayEvents
:function(a,b){function d(a){return function(){return c.fireEvent.apply(c,[a].concat(Array.prototype.slice.call(arguments,0)))}}var c=this;for(var e=0,f=b.length;e<f;e++){var g=b[e];c.events[g]=c.events[g]||!0,a.on(g,d(g),c)}},enableBubble:function(b){var c=this;Jux.isEmpty(b)||(b=Jux.isArray(b)?b:Jux.toArray(arguments),Jux.each(b,function(b){var d,e,f;typeof b=="object"?(d=b.eventName,e=b.bubbleFn,f=b.scope):d=b,d=d.toLowerCase();var g=c.events[d]||!0;Jux.isBoolean(g)&&(g=new a.Event(c,d),c.events[d]=g),g.bubble=!0,typeof e=="function"&&(g.bubbleFn=e,g.bubbleFnScope=f||c)}))},getBubbleTarget:function(){return null}};var g=a.Observable.prototype;g.on=g.addListener,g.un=g.removeListener,a.Observable.releaseCapture=function(a){a.fireEvent=g.fireEvent},a.Event=function(a,b){this.name=b,this.obj=a,this.listeners=[]},a.Event.prototype={addListener:function(a,b,c){var d=this,e;b=b||d.obj,d.isListening(a,b)||(e=d.createListener(a,b,c),d.firing&&(d.listeners=d.listeners.slice(0)),d.listeners.push(e))},createListener:function(a,b,c){c=c||{},b=b||this.obj;var d={fn:a,scope:b,options:c},e=a;return c.target&&(e=h(e,c,b)),c.delay&&(e=k(e,c,d,b)),c.single&&(e=j(e,this,a,b)),c.buffer&&(e=i(e,c,d,b)),d.fireFn=e,d},findListener:function(a,b){var c=this.listeners,d=c.length,e,f;while(d--){e=c[d];if(e){f=e.scope;if(e.fn==a&&(f==b||f==this.obj))return d}}return-1},isListening:function(a,b){return this.findListener(a,b)!=-1},removeListener:function(a,b){var c,d,g,h=this,i=f;if((c=h.findListener(a,b))!=-1){h.firing&&(h.listeners=h.listeners.slice(0)),d=h.listeners[c],d.task&&(d.task.cancel(),delete d.task),g=d.tasks&&d.tasks.length;if(g){while(g--)d.tasks[g].cancel();delete d.tasks}h.listeners.splice(c,1),i=e}return i},clearListeners:function(){var a=this,b=a.listeners,c=b.length;while(c--)a.removeListener(b[c].fn,b[c].scope)},fire:function(){var a=this,c=b(arguments),d=a.listeners,g=d.length,h=0,i,j=!1;if(g>0){a.firing=e;for(;h<g;h++)i=d[h],i&&i.fireFn.apply(i.scope||a.obj||window,c)===f&&(j=!0)}return a.firing=f,j?!1:!0}}}(),Jux.Util.TaskRunner=function(a){a=a||10;var b=[],c=[],d=0,e=!1,f=function(){e=!1,clearInterval(d),d=0},g=function(){e||(e=!0,d=setInterval(i,a))},h=function(a){c.push(a),a.onStop&&a.onStop.apply(a.scope||a)},i=function(){var a=c.length,d=(new Date).getTime();if(a>0){for(var e=0;e<a;e++)b.remove(c[e]);c=[];if(b.length<1){f();return}}for(var e=0,g,i,j,k=b.length;e<k;++e){g=b[e],i=d-g.taskRunTime;if(g.interval<=i){j=g.run.apply(g.scope||g,g.args||[++g.taskRunCount]),g.taskRunTime=d;if(j===!1||g.taskRunCount===g.repeat){h(g);return}}g.duration&&g.duration<=d-g.taskStartTime&&h(g)}};this.start=function(a){return b.push(a),a.taskStartTime=(new Date).getTime(),a.taskRunTime=0,a.taskRunCount=0,g(),a},this.stop=function(a){return h(a),a},this.stopAll=function(){f();for(var a=0,d=b.length;a<d;a++)b[a].onStop&&b[a].onStop();b=[],c=[]}},Jux.TaskMgr=new Jux.Util.TaskRunner,Jux.Util.lang={augmentObject:function(a,b){for(var c in b)a[c]=b[c]},diff:function(a,b){var c={};for(var d in a)b[d]||(c[d]=a[d]);return c},diffByValue:function(a,b){var c={};for(var d in a)b[d]&&a[d]!==b[d]&&(c[d]=b[d]);return c},equals:function(a,b,c){typeof c=="undefined"&&(c=!0);if(typeof a!=typeof b)return!1;if(typeof a!="object"){if(a!==b)return!1}else{if(a===null&&a!==b)return!1;var d=Jux.Util.lang.objLength;if(d(a)!==d(b))return!1;for(var e in a){if(typeof a[e]!=typeof b[e])return!1;if(a[e]===null!=(b[e]===null))return!1;switch(typeof a[e]){case"undefined":if(typeof b[e]!="undefined")return!1;break;case"object":if(a[e]!==null&&b[e]!==null&&(a[e].constructor.toString()!==b[e].constructor.toString()||(c?!Jux.Util.lang.equals(a[e],b[e]):!1)))return!1;break;case"function":if(a[e].toString()!=b[e].toString())return!1;break;default:if(a[e]!==b[e])return!1}}}return!0},escapeSpecialChars:function(a){return String(a).replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\'/g,"\\'").replace(/\"/g,'\\"')},isEmpty:function(a,b){if(b){for(var c in a)if(a.hasOwnProperty(c))return!1}else for(var c in a)return!1;return!0},objLength:function(a,b){var c=0;if(b)for(var d in a)a.hasOwnProperty(d)&&c++;else for(var d in a)c++;return c},inArray:function(a,b){if(!Jux.isArray(b))return!1;for(var c=0;c<b.length;c++){if(a instanceof RegExp&&b[c].match(a))return!0;if(b[c]instanceof RegExp&&a.match(b[c]))return!0;if(b[c]==a)return!0}return!1},indexOfArray:function(a,b){if(b.length)for(var c=0;c<b.length;c++)if(b[c]===a)return c;return-1},trim:function(a){return a?(a=a.replace(/^\s+|\s+$/g,""),a):""},capitalizeFirst:function(a){return a.charAt(0).toUpperCase()+a.slice(1)},shuffle:function(a){if(a&&a.length>1)for(var b,c,d=a.length;d;b=parseInt(Math.random()*d,10),c=a[--d],a[d]=a[b],a[b]=c);return a}},Jux.Util.lang.areEqual=Jux.Util.lang.equals,Jux.Util.uri={getWindowOrigin:function(){var a=window.location;return a.protocol+"//"+a.host},getFolder:function(a){return a.replace(/\/[^\/]*$/,"/")},getFile:function(a){return a.replace(/.*\//,"")},getParent:function(a){return a.replace(/\/[^\/]*\/?$/,"/")},isAbsoluteUrl:function(a){return!!a.match(/^https?:\/\//)},isRelativeUrl:function(a){return!a.match(/^https?:\/\//)&&!a.match(/^\//)},normalize:function(a,b){return a=a.replace(/\/\/*/g,"/"),a=a.replace(/http:\/(?=[^\/])/,"http://"),a=a.replace(/%20/g," "),b&&(a=Jux.Util.uri.chompSlash(a)),a},makeAbsolute:function(a,b){if(this.isAbsoluteUrl(a))return a;if(a.charAt(0)==="/")return a=a.replace(/^\//,""),this.addTrailingSlash(b||Jux.Util.uri.getWindowOrigin())+a;if(b)throw"If including a baseUrl, please prefix the uri with a slash.";return a.match(/^http/)||(a="http://"+a),a},isOnDomain:function(a){var b=window.location.hostname;return a===b||"www."+a===b},protocolize:function(a,b){return a.indexOf("#")===0||a.indexOf("?")===0||a.indexOf(".htm")>-1?a:(b=b||"http",a.indexOf("://")>-1&&(a=a.split("://")[1]),a=b+"://"+a,a)},chompSlash:function(a){return a.replace(/[\/\\]*$/,"")},addTrailingSlash:function(a){return a.charAt(a.length-1)!=="/"?a+"/":a},isInJuxDomain:function(a){return a.indexOf(this.getJuxDomain())>-1?!0:!1},getJuxDomain:function(){return Jux.Hosts.origin}},Jux.data.AbstractProxy=Jux.extend(Jux.util.Observable,{constructor:function(a){Jux.apply(this,a)},create:function(a){throw new Error("Jux.data.AbstractProxy::create() not yet implemented")},read:function(a){throw new Error("Jux.data.AbstractProxy::read() not yet implemented")},update:function(a){throw new Error("Jux.data.AbstractProxy::update() not yet implemented")},destroy:function(a){throw new Error("Jux.data.AbstractProxy::destroy() not yet implemented")},supportsIncrementalUpdates:function(){throw new Error("Jux.data.AbstractProxy::supportsIncrementalUpdates() must be implemented in subclass.")}}),Jux.data.Field=Jux.extend(Object,{name:"",persist:!0,constructor:function(a){typeof a!="object"&&(a={name:a}),Jux.apply(this,a);var b=this.name;if(b===undefined||b===null||b==="")throw new Error("no 'name' property provided to Jux.data.Field constructor");typeof this.name=="number"&&(this.name=b.toString()),this["default"]&&(this.defaultValue=this["default"]),typeof this.defaultValue=="function"&&(this.defaultValue=this.defaultValue()),typeof this.defaultValue=="object"&&function c(a){for(var b in a)a.hasOwnProperty(b)&&(typeof a[b]=="function"?a[b]=a[b]():typeof a[b]=="object"&&c(a[b]))}(this.defaultValue)},getName:function(){return this.name}}),Jux.data.Model=Jux.extend(Jux.util.Observable,{dirty:!1,initialized:!1,fields:[],constructor:function(a){Jux.apply(this,a),Jux.data.Model.superclass.constructor.call(this),this.addEvents("datachange"),this.initFields();var b=this.data||{},c=this.fields;for(var d in c)b[d]===undefined&&(b[d]=c[d].defaultValue);this.data={},this.modifiedData={},this.set(b),this.commit(),this.initialized=!0},initFields:function(){this.fields={};var a=[],b=this.constructor,c=b.prototype;do c.hasOwnProperty("fields")&&Jux.isArray(c.fields)&&(a=a.concat(c.fields));while(b=(c=b.superclass)&&c.constructor);for(var d=a.length;d--;){var e=new Jux.data.Field(a[d]);this.fields[e.getName()]=e}},get:function(a){if(a in this.data)return this.data[a];throw new Error("Jux.data.Model::get() error: provided key '"+a+"' was not found in the Model.")},getAll:function(){return Jux.clone(this.data,!1)},set:function(a,b){var c=this.fields,d=[];if(typeof a=="object"){var e=a;for(a in e)e.hasOwnProperty(a)&&a in c&&(typeof c[a].convert=="function"?d.push(a):this.set(a,e[a]));for(var f=0,g=d.length;f<g;f++)a=d[f],this.set(a,e[a])}else{var h=c[a];if(!h)throw new Error("Jux.data.Model.set(): A field with the fieldName '"+a+"' was not found.");var i=this.data[a];typeof h.convert=="function"&&(b=h.convert.call(h.scope||window,b,this)),a in this.modifiedData||(this.modifiedData[a]=i),this.data[a]=b,this.dirty=!0,this.initialized&&this.fireEvent("datachange",this,a,b)}},getDefault:function(a){return this.fields[a].defaultValue},has:function(a){return!!this.fields[a]},isDirty:function(){return this.dirty},isModified:function(a){return this.modifiedData.hasOwnProperty(a)},getChanges:function(){var a=this.modifiedData,b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=this.get(c));return b},commit:function(){this.modifiedData={},this.dirty=!1},rollback:function(){var a=this.modifiedData;for(var b in a)a.hasOwnProperty(b)&&(this.data[b]=a[b]);this.modifiedData={},this.dirty=!1},setProxy:function(a){this.proxy=a},save:function(a){a=a||{};if(!this.proxy)throw new Error("Jux.data.Model::save() error: Cannot save. No configured proxy.");var b=this.getChanges(),c=this.getAll(),d;this.proxy.supportsIncrementalUpdates()?d=b:d=c;var e=this.fields;for(var f in e)e.hasOwnProperty(f)&&e[f].persist===!1&&(delete d[f],delete b[f]);if(Jux.Util.lang.isEmpty(b,!0)){typeof a.success=="function"&&a.success.call(a.scope||window),typeof a.complete=="function"&&a.complete.call(a.scope||window);return}var g=Jux.clone(this.data),h=function(){this.commit();var b=this.getAll();for(var c in g)g.hasOwnProperty(c)&&!Jux.Util.lang.areEqual(g[c],b[c])&&(this.modifiedData[c]=g[c],this.dirty=!0);typeof a.success=="function"&&a.success.call(a.scope||window)},i=function(){typeof a.failure=="function"&&a.failure.call(a.scope||window)},j=function(){typeof a.complete=="function"&&a.complete.call(a.scope||window)},k={async:typeof a.async=="undefined"?!0:a.async,success:h,failure:i,complete:j,scope:this};this.proxy.update(d,k)}}),Jux.data.RestProxy=Jux.extend(Jux.data.AbstractProxy,{url:"",create:function(){throw new Error("create() not yet implemented")},read:function(){throw new Error("read() not yet implemented")},update:function(a,b){b=b||{};var c;this.wrapperProperty?(c={},c[this.wrapperProperty]=a):c=a,jQuery.ajax({async:typeof b.async=="undefined"?!0:b.async,url:this.url,type:"PUT",headers:{},contentType:"application/json",data:JSON.stringify(c),success:b.success||Jux.emptyFn,error:b.failure||Jux.emptyFn,complete:b.complete||Jux.emptyFn,context:b.scope||window})},destroy:function(){throw new Error("destroy() not yet implemented")},supportsIncrementalUpdates:function(){return!0}}),function(a){var b=function(){var b={},c,d=65,e,f='<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',g={eventName:"click",onShow:function(){},onBeforeShow:function(){},onHide:function(){},onChange:function(){},onSubmit:function(){},color:"ff0000",livePreview:!0,flat:!1},h=function(b,c){var d=O(b);a(c).data("colorpicker").fields.eq(1).val(d.r).end().eq(2).val(d.g).end().eq(3).val(d.b).end()},i=function(b,c){a(c).data("colorpicker").fields.eq(4).val(b.h).end().eq(5).val(b.s).end().eq(6).val(b.b).end()},j=function(b,c){a(c).data("colorpicker").fields.eq(0).val(Q(b)).end()},k=function(b,c){a(c).data("colorpicker").selector.css("backgroundColor","#"+Q({h:b.h,s:100,b:100})),a(c).data("colorpicker").selectorIndic.css({left:parseInt(150*b.s/100,10),top:parseInt(150*(100-b.b)/100,10)})},l=function(b,c){a(c).data("colorpicker").hue.css("top",parseInt(150-150*b.h/360,10))},m=function(b,c){a(c).data("colorpicker").currentColor.css("backgroundColor","#"+Q(b))},n=function(b,c){a(c).data("colorpicker").newColor.css("backgroundColor","#"+Q(b))},o=function(b){var c=b.charCode||b.keyCode||-1;if(c>d&&c<=90||c==32)return!1;var e=a(this).parent().parent();e.data("colorpicker").livePreview===!0&&p.apply(this)},p=function(b){var c=a(this).parent().parent(),d;this.parentNode.className.indexOf("_hex")>0?c.data("colorpicker").color=d=M(K(this.value)):this.parentNode.className.indexOf("_hsb")>0?c.data("colorpicker").color=d=I({h:parseInt(c.data("colorpicker").fields.eq(4).val(),10),s:parseInt(c.data("colorpicker").fields.eq(5).val(),10),b:parseInt(c.data("colorpicker").fields.eq(6).val(),10)}):c.data("colorpicker").color=d=N(J({r:parseInt(c.data("colorpicker").fields.eq(1).val(),10),g:parseInt(c.data("colorpicker").fields.eq(2).val(),10),b:parseInt(c.data("colorpicker").fields.eq(3).val(),10)})),b&&(h(d,c.get(0)),j(d,c.get(0)),i(d,c.get(0))),k(d,c.get(0)),l(d,c.get(0)),n(d,c.get(0)),c.data("colorpicker").onChange.apply(c,[d,Q(d),O(d)])},q=function(b){var c=a(this).parent().parent();c.data("colorpicker").fields.parent().removeClass("colorpicker_focus")},r=function(){d=this.parentNode.className.indexOf("_hex")>0?70:65,a(this).parent().parent().data("colorpicker").fields.parent().removeClass("colorpicker_focus"),a(this).parent().addClass("colorpicker_focus")},s=function(b){var c=a(this).parent().find("input").focus(),d={el:a(this).parent().addClass("colorpicker_slider"),max:this.parentNode.className.indexOf("_hsb_h")>0?360:this.parentNode.className.indexOf("_hsb")>0?100:255,y:b.pageY,field:c,val:parseInt(c.val(),10),preview:a(this).parent().parent().data("colorpicker").livePreview};a(document).bind("mouseup",d,u),a(document).bind("mousemove",d,t)},t=function(a){return a.data.field.val(Math.max(0,Math.min(a.data.max,parseInt(a.data.val+a.pageY-a.data.y,10)))),a.data.preview&&p.apply(a.data.field.get(0),[!0]),!1},u=function(b){return p.apply(b.data.field.get(0),[!0]),b.data.el.removeClass("colorpicker_slider").find("input").focus(),a(document).unbind("mouseup",u),a(document).unbind("mousemove",t),!1},v=function(b){var c={cal:a(this).parent(),y:a(this).offset().top};c.preview=c.cal.data("colorpicker").livePreview,a(document).bind("mouseup",c,x),a(document).bind("mousemove",c,w)},w=function(a){return p.apply(a.data.cal.data("colorpicker").fields.eq(4).val(parseInt(360*(150-Math.max(0,Math.min(150,a.pageY-a.data.y)))/150,10)).get(0),[a.data.preview]),!1},x=function(b){return h(b.data.cal.data("colorpicker").color,b.data.cal.get(0)),j(b.data.cal.data("colorpicker").color,b.data.cal.get(0)),a(document).unbind("mouseup",x),a(document).unbind("mousemove",w),!1},y=function(b){var c={cal:a(this).parent(),pos:a(this).offset()};c.preview=c.cal.data("colorpicker").livePreview,a(document).bind("mouseup",c,A),a(document).bind("mousemove",c,z)},z=function(a){return p.apply(a.data.cal.data("colorpicker").fields.eq(6).val(parseInt(100*(150-Math.max(0,Math.min(150,a.pageY-a.data.pos.top)))/150,10)).end().eq(5).val(parseInt(100*Math.max(0,Math.min(150,a.pageX-a.data.pos.left))/150,10)).get(0),[a.data.preview]),!1},A=function(b){return h(b.data.cal.data("colorpicker").color,b.data.cal.get(0)),j(b.data.cal.data("colorpicker").color,b.data.cal.get(0)),a(document).unbind("mouseup",A),a(document).unbind("mousemove",z),!1},B=function(b){a(this).addClass("colorpicker_focus")},C=function(b){a(this).removeClass("colorpicker_focus")},D=function(b){var c=a(this).parent(),d=c.data("colorpicker").color;c.data("colorpicker").origColor=d,m(d,c.get(0)),c.data("colorpicker").onSubmit(d,Q(d),O(d),c.data("colorpicker").el)},E=function(b){var c=a("#"+a(this).data("colorpickerId"));c.data("colorpicker").onBeforeShow.apply(this,[c.get(0)]);var d=a(this).offset(),e=H(),f=d.top+this.offsetHeight,g=d.left;return f+176>e.t+e.h&&(f-=this.offsetHeight+176),g+356>e.l+e.w&&(g-=356),c.css({left:g+"px",top:f+"px"}),c.data("colorpicker").onShow.apply(this,[c.get(0)])!=0&&c.show(),a(document).bind("mousedown",{cal:c},F),!1},F=function(b){G(b.data.cal.get(0),b.target,b.data.cal.get(0))||(b.data.cal.data("colorpicker").onHide.apply(this,[b.data.cal.get(0)])!=0&&b.data.cal.hide(),a(document).unbind("mousedown",F))},G=function(a,b,c){if(a==b)return!0;if(a.contains)return a.contains(b);if(a.compareDocumentPosition)return!!(a.compareDocumentPosition(b)&16);var d=b.parentNode;while(d&&d!=c){if(d==a)return!0;d=d.parentNode}return!1},H=function(){var a=document.compatMode=="CSS1Compat";return{l:window.pageXOffset||(a?document.documentElement.scrollLeft:document.body.scrollLeft),t:window.pageYOffset||(a?document.documentElement.scrollTop:document.body.scrollTop),w:window.innerWidth||(a?document.documentElement.clientWidth:document.body.clientWidth),h:window.innerHeight||(a?document.documentElement.clientHeight:document.body.clientHeight)}},I=function(a){return{h:Math.min(360,Math.max(0,a.h)),s:Math.min(100,Math.max(0,a.s)),b:Math.min(100,Math.max(0,a.b))}},J=function(a){return{r:Math.min(255,Math.max(0,a.r)),g:Math.min(255,Math.max(0,a.g)),b:Math.min(255,Math.max(0,a.b))}},K=function(a){var b=6-a.length;if(b>0){var c=[];for(var d=0;d<b;d++)c.push("0");c.push(a),a=c.join("")}return a},L=function(a){var a=parseInt(a.indexOf("#")>-1?a.substring(1):a,16);return{r:a>>16,g:(a&65280)>>8,b:a&255}},M=function(a){return N(L(a))},N=function(a){var b={h:0,s:0,b:0},c=Math.min(a.r,a.g,a.b),d=Math.max(a.r,a.g,a.b),e=d-c;return b.b=d,d==0,b.s=d!=0?255*e/d:0,b.s!=0?a.r==d?b.h=(a.g-a.b)/e:a.g==d?b.h=2+(a.b-a.r)/e:b.h=4+(a.r-a.g)/e:b.h=-1,b.h*=60,b.h<0&&(b.h+=360),b.s*=100/255,b.b*=100/255,b},O=function(a){var b={},c=Math.round(a.h),d=Math.round(a.s*255/100),e=Math.round(a.b*255/100);if(d==0)b.r=b.g=b.b=e;else{var f=e,g=(255-d)*e/255,h=(f-g)*(c%60)/60;c==360&&(c=0),c<60?(b.r=f,b.b=g,b.g=g+h):c<120?(b.g=f,b.b=g,b.r=f-h):c<180?(b.g=f,b.r=g,b.b=g+h):c<240?(b.b=f,b.r=g,b.g=f-h):c<300?(b.b=f,b.g=g,b.r=g+h):c<360?(b.r=f,b.g=g,b.b=f-h):(b.r=0,b.g=0,b.b=0)}return{r:Math.round(b.r),g:Math.round(b.g),b:Math.round(b.b)}},P=function(b){var c=[b.r.toString(16),b.g.toString(16),b.b.toString(16)];return a.each(c,function(a,b){b.length==1&&(c[a]="0"+b)}),c.join("")},Q=function(a){return P(O(a))},R=function(){var b=a(this).parent(),c=b.data("colorpicker").origColor;b.data("colorpicker").color=c,h(c,b.get(0)),j(c,b.get(0)),i(c,b.get(0)),k(c,b.get(0)),l(c,b.get(0)),n(c,b.get(0))};return{init:function(b){b=a.extend({},g,b||{});if(typeof b.color=="string")b.color=M(b.color);else if(b.color.r!=undefined&&b.color.g!=undefined&&b.color.b!=undefined)b.color=N(b.color);else if(b.color.h!=undefined&&b.color.s!=undefined&&b.color.b!=undefined)b.color=I(b.color);else return this;return this.each(function(){if(!a(this).data("colorpickerId")){var c=a.extend({},b);c.origColor=b.color;var d="collorpicker_"+parseInt(Math.random()*1e3);a(this).data("colorpickerId",d);var e=a(f).attr("id",d);c.flat?e.appendTo(this).show():e.appendTo(document.body),c.fields=e.find("input").bind("keyup",o).bind("change",p).bind("blur",q).bind("focus",r),e.find("span").bind("mousedown",s).end().find(">div.colorpicker_current_color").bind("click",R),c.selector=e.find("div.colorpicker_color").bind("mousedown",y),c.selectorIndic=c.selector.find("div div"),c.el=this,c.hue=e.find("div.colorpicker_hue div"),e.find("div.colorpicker_hue").bind("mousedown",v),c.newColor=e.find("div.colorpicker_new_color"),c.currentColor=e.find("div.colorpicker_current_color"),e.data("colorpicker",c),e.find("div.colorpicker_submit").bind("mouseenter",B).bind("mouseleave",C).bind("click",D),h(c.color,e.get(0)),i(c.color,e.get(0)),j(c.color,e.get(0)),l(c.color,e.get(0)),k(c.color,e.get(0)),m(c.color,e.get(0)),n(c.color,e.get(0)),c.flat?e.css({position:"relative",display:"block"}):a(this).bind(c.eventName,E)}})},showPicker:function(){return this.each(function(){a(this).data("colorpickerId")&&E.apply(this)})},hidePicker:function(){return this.each(function(){a(this).data("colorpickerId")&&a("#"+a(this).data("colorpickerId")).hide()})},setColor:function(b){if(typeof b=="string")b=M(b);else if(b.r!=undefined&&b.g!=undefined&&b.b!=undefined)b=N(b);else if(b.h!=undefined&&b.s!=undefined&&b.b!=undefined)b=I(b);else return this;return this.each(function(){if(a(this).data("colorpickerId")){var c=a("#"+a(this).data("colorpickerId"));c.data("colorpicker").color=b,c.data("colorpicker").origColor=b,h(b,c.get(0)),i(b,c.get(0)),j(b,c.get(0)),l(b,c.get(0)),k(b,c.get(0)),m(b,c.get(0)),n(b,c.get(0))}})},destroy:function(){return this.each(function(){var b=a(this).data("colorpickerId");if(b){var c=a("#"+b);c.remove()}})}}}();a.fn.extend({ColorPicker:b.init,ColorPickerHide:b.hidePicker,ColorPickerShow:b.showPicker,ColorPickerSetColor:b.setColor,ColorPickerDestroy:b.destroy})}(jQuery),function(a){function b(){this._disabledInputs=[],this.regional=[],this.regional[""]={datetimeFormat:"O/D/Y H:Ma",datetimeSeparators:".",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ampmNames:["am","pm"],isRTL:!1},this._defaults={appendText:"",initialField:0,useMouseWheel:!0,shortYearCutoff:"+10",defaultDatetime:null,minDatetime:null,maxDatetime:null,minTime:null,maxTime:null,timeSteps:[1,1,1],beforeShow:null,altField:null,altFormat:null},a.extend(this._defaults,this.regional[""])}function d(b,c){a.extend(b,c);for(var d in c)c[d]==null&&(b[d]=null);return b}var c="datetimeEntry";a.extend(b.prototype,{markerClassName:"hasDatetimeEntry",setDefaults:function(a){return d(this._defaults,a||{}),this},_connectDatetimeEntry:function(b,d){var e=a(b);if(e.hasClass(this.markerClassName))return;var f={};f.options=a.extend({},d),f._selectedYear=0,f._selectedMonth=0,f._selectedDay=0,f._selectedHour=0,f._selectedMinute=0,f._selectedSecond=0,f._field=0,this._decodeDatetimeFormat(f),f.input=a(b),a.data(b,c,f),e.addClass(this.markerClassName).bind("focus.datetimeEntry",this._doFocus).bind("blur.datetimeEntry",this._doBlur).bind("click.datetimeEntry",this._doClick).bind("keydown.datetimeEntry",this._doKeyDown).bind("keypress.datetimeEntry",this._doKeyPress),a.browser.mozilla&&e.bind("input.datetimeEntry",function(b){a.datetimeEntry._extractDatetime(f)}),a.browser.msie&&e.bind("paste.datetimeEntry",function(b){setTimeout(function(){a.datetimeEntry._extractDatetime(f)},1)}),this._get(f,"useMouseWheel")&&a.fn.mousewheel&&e.mousewheel(this._doMouseWheel)},_enableDatetimeEntry:function(a){this._enableDisable(a,!1)},_disableDatetimeEntry:function(a){this._enableDisable(a,!0)},_enableDisable:function(b,d){var e=a.data(b,c);if(!e)return;b.disabled=d,b.nextSibling&&b.nextSibling.nodeName.toLowerCase()=="span"&&a.datetimeEntry._changeSpinner(e,b.nextSibling,d?5:-1),a.datetimeEntry._disabledInputs=a.map(a.datetimeEntry._disabledInputs,function(a){return a==b?null:a}),d&&a.datetimeEntry._disabledInputs.push(b)},_isDisabledDatetimeEntry:function(b){return a.inArray(b,this._disabledInputs)>-1},_changeDatetimeEntry:function(b,e,f){var g=a.data(b,c);if(g){if(typeof e=="string"){var h=e;e={},e[h]=f}var i=this._parseDatetime(g,a(b).val());d(g.options,e||{}),this._decodeDatetimeFormat(g),i&&this._setDatetime(g,i)}a.data(b,c,g)},_decodeDatetimeFormat:function(a){var b=this._get(a,"datetimeFormat");a._fields=[],a._ampmField=-1;for(var c=0;c<b.length;c++)b.charAt(c).match(/[yYoOnNdDwWhHmMsSa]/)&&a._fields.push(c),b.charAt(c)=="a"&&(a._ampmField=a._fields.length-1)},_destroyDatetimeEntry:function(b){var d=a(b);if(!d.hasClass(this.markerClassName))return;d.removeClass(this.markerClassName).unbind(".datetimeEntry"),a.fn.mousewheel&&d.unmousewheel(),this._disabledInputs=a.map(this._disabledInputs,function(a){return a==b?null:a}),d.parent().replaceWith(d),a.removeData(b,c)},_setDatetimeDatetimeEntry:function(b,d){var e=a.data(b,c);e&&(d===null||d===""?e.input.val(""):this._setDatetime(e,d?typeof d=="object"?new Date(d.getTime()):d:null))},_getDatetimeDatetimeEntry:function(b){var d=a.data(b,c);return d?this._parseDatetime(d,a(b).val()):null},_getOffsetDatetimeEntry:function(b){var d=a.data(b,c),e=d?a.datetimeEntry._parseDatetime(d,d.input.val()):null;return e?(e.getHours()*3600+e.getMinutes()*60+e.getSeconds())*1e3:0},_doFocus:function(b){var e=b.nodeName&&b.nodeName.toLowerCase()=="input"?b:this;if(a.datetimeEntry._lastInput==e||a.datetimeEntry._isDisabledDatetimeEntry(e)){a.datetimeEntry._focussed=!1;return}var f=a.data(e,c);a.datetimeEntry._focussed=!0,a.datetimeEntry._lastInput=e,a.datetimeEntry._blurredInput=null;var g=a.datetimeEntry._get(f,"beforeShow");d(f.options,g?g.apply(e,[e]):{}),a.data(e,c,f),a.datetimeEntry._extractDatetime(f),setTimeout(function(){a.datetimeEntry._showField(f)},10)},_doBlur:function(b){a.datetimeEntry._blurredInput=a.datetimeEntry._lastInput,a.datetimeEntry._lastInput=null},_doClick:function(b){var d=b.target,e=a.data(d,c);if(!a.datetimeEntry._focussed){var f=a.datetimeEntry._get(e,"datetimeFormat");e._field=0;if(d.selectionStart!=null){var g=0;for(var h=0;h<f.length;h++){g+=a.datetimeEntry._fieldLength(e,f.charAt(h));if(d.selectionStart<g)break;e._field+=f.charAt(h).match(/[yondwhmsa]/i)?1:0}}else if(d.createTextRange){var i=a(b.srcElement),j=d.createTextRange(),k=function(a){return{thin:2,medium:4,thick:6}[a]||a},l=b.clientX+document.documentElement.scrollLeft-(i.offset().left+parseInt(k(i.css("border-left-width")),10))-j.offsetLeft,g=0;for(var h=0;h<f.length;h++){g+=a.datetimeEntry._fieldLength(e,f.charAt(h)),j.collapse(),j.moveEnd("character",g);if(l<j.boundingWidth)break;e._field+=f.charAt(h).match(/[yondwhmsa]/i)?1:0}}}a.data(d,c,e),a.datetimeEntry._showField(e),a.datetimeEntry._focussed=!1},_doKeyDown:function(b){if(b.keyCode>=48)return!0;var d=a.data(b.target,c);switch(b.keyCode){case 9:return b.shiftKey?a.datetimeEntry._changeField(d,-1,!0):a.datetimeEntry._changeField(d,1,!0);case 35:b.ctrlKey?a.datetimeEntry._setValue(d,""):(d._field=d._fields.length-1,a.datetimeEntry._adjustField(d,0));break;case 36:b.ctrlKey?a.datetimeEntry._setDatetime(d):(d._field=0,a.datetimeEntry._adjustField(d,0));break;case 37:a.datetimeEntry._changeField(d,-1,!1);break;case 38:a.datetimeEntry._adjustField(d,1);break;case 39:a.datetimeEntry._changeField(d,1,!1);break;case 40:a.datetimeEntry._adjustField(d,-1);break;case 46:a.datetimeEntry._setValue(d,"")}return!1},_doKeyPress:function(b){var d=String.fromCharCode(b.charCode==undefined?b.keyCode:b.charCode);if(d<" ")return!0;var e=a.data(b.target,c);return a.datetimeEntry._handleKeyPress(e,d),!1},_doMouseWheel:function(b,d){if(a.datetimeEntry._isDisabledDatetimeEntry(b.target))return;d=a.browser.opera?-d/Math.abs(d):a.browser.safari?d/Math.abs(d):d;var e=a.data(b.target,c);e.input.focus(),e.input.val()||a.datetimeEntry._extractDatetime(e),a.datetimeEntry._adjustField(e,d),b.preventDefault()},_findPos:function(a){var b=curTop=0;if(a.offsetParent){b=a.offsetLeft,curTop=a.offsetTop;while(a=a.offsetParent){var c=b;b+=a.offsetLeft,b<0&&(b=c),curTop+=a.offsetTop}}return{left:b,top:curTop}},_findScroll:function(b){var c=!1;a(b).parents().each(function(){c|=a(this).css("position")=="fixed"});if(c)return[0,0];var d=b.scrollLeft,e=b.scrollTop;while(b=b.parentNode)d+=b.scrollLeft||0,e+=b.scrollTop||0;return[d,e]},_get:function(b,c){return b.options[c]!=null?b.options[c]:a.datetimeEntry._defaults[c]},_extractDatetime:function(b){var c=this._parseDatetime(b,a(b.input).val())||this._normaliseDatetime(this._determineDatetime(b,this._get(b,"defaultDatetime"))||new Date),d=this._constrainTime(b,[c.getHours(),c.getMinutes(),c.getSeconds()]);b._selectedYear=c.getFullYear(),b._selectedMonth=c.getMonth(),b._selectedDay=c.getDate(),b._selectedHour=d[0],b._selectedMinute=d[1],b._selectedSecond=d[2],b._lastChr="",b._field=Math.max(0,this._get(b,"initialField")),b.input.val()!=""&&this._showDatetime(b)},_parseDatetime:function(a,b){if(!b)return null;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=this._get(a,"datetimeFormat"),k=function(){while(i<b.length&&b.charAt(i).match(/^[0-9]/))i++},l;for(l=0;l<j.length&&i<b.length;l++){var m=j.charAt(l),n=parseInt(b.substring(i),10);if(m.match(/y|o|d|h|m|s/i)&&isNaN(n))throw"Invalid date";n=isNaN(n)?0:n;switch(m){case"y":case"Y":c=n,k();break;case"o":case"O":d=n,k();break;case"n":case"N":var o=this._get(a,m=="N"?"monthNames":"monthNamesShort");for(var p=0;p<o.length;p++)if(b.substring(i).substr(0,o[p].length).toLowerCase()==o[p].toLowerCase()){d=p+1,i+=o[p].length;break}break;case"w":case"W":var q=this._get(a,m=="W"?"dayNames":"dayNamesShort");for(var p=0;p<q.length;p++)if(b.substring(i).substr(0,q[p].length).toLowerCase()==q[p].toLowerCase()){i+=q[p].length+1;break}n=parseInt(b.substring(i),10),n=isNaN(n)?0:n;case"d":case"D":e=n,k();break;case"h":case"H":f=n,k();break;case"m":case"M":g=n,k();break;case"s":case"S":h=n,k();break;case"a":var r=this._get(a,"ampmNames"),s=b.substr(i,r[1].length).toLowerCase()==r[1].toLowerCase();f=(f==12?0:f)+(s?12:0),i+=r[0].length;break;default:i++}}if(l<j.length)throw"Invalid date";c+=c>=100||j.indexOf("y")==-1?0:c>this._shortYearCutoff(a)?1900:2e3;var t=this._constrainTime(a,[f,g,h]),u=new Date(c,Math.max(0,d-1),e,t[0],t[1],t[2]);if(!j.match(/y|o|n|d|w/i)||u.getFullYear()==c&&u.getMonth()+1==d&&u.getDate()==e)return u;throw"Invalid date"},_showDatetime:function(a){this._setValue(a,this._formatDatetime(a,this._get(a,"datetimeFormat"))),this._showField(a)},_formatDatetime:function(a,b){var c="",d=b.indexOf("a")>-1;for(var e=0;e<b.length;e++){var f=b.charAt(e);switch(f){case"y":c+=this._formatNumber(a._selectedYear%100);break;case"Y":c+=this._formatNumber(a._selectedYear,4);break;case"o":case"O":c+=this._formatNumber(a._selectedMonth+1,f=="o"?1:2);break;case"n":case"N":c+=this._get(a,f=="N"?"monthNames":"monthNamesShort")[a._selectedMonth];break;case"d":case"D":c+=this._formatNumber(a._selectedDay,f=="d"?1:2);break;case"w":case"W":c+=this._get(a,f=="W"?"dayNames":"dayNamesShort")[(new Date(a._selectedYear,a._selectedMonth,a._selectedDay)).getDay()]+" "+this._formatNumber(a._selectedDay);break;case"h":case"H":c+=this._formatNumber(d?a._selectedHour%12||12:a._selectedHour,f=="h"?1:2);break;case"m":case"M":c+=this._formatNumber(a._selectedMinute,f=="m"?1:2);break;case"s":case"S":c+=this._formatNumber(a._selectedSecond,f=="s"?1:2);break;case"a":c+=this._get(a,"ampmNames")[a._selectedHour<12?0:1];break;default:c+=f}}return c},_showField:function(b){var c=b.input[0];if(b.input.is(":hidden")||a.datetimeEntry._lastInput!=c)return;var d=this._get(b,"datetimeFormat"),e=0;for(var f=0;f<b._fields[b._field];f++)e+=this._fieldLength(b,d.charAt(f));var g=e+this._fieldLength(b,d.charAt(f));if(c.setSelectionRange)c.setSelectionRange(e,g);else if(c.createTextRange){var h=c.createTextRange();h.moveStart("character",e),h.moveEnd("character",g-b.input.val().length),h.select()}c.disabled||c.focus()},_fieldLength:function(a,b){switch(b){case"Y":return 4;case"n":case"N":return this._get(a,b=="N"?"monthNames":"monthNamesShort")[a._selectedMonth].length;case"w":case"W":return this._get(a,b=="W"?"dayNames":"dayNamesShort")[(new Date(a._selectedYear,a._selectedMonth,a._selectedDay)).getDay()].length+3;case"y":case"O":case"D":case"H":case"M":case"S":return 2;case"o":return(""+(a._selectedMonth+1)).length;case"d":return(""+a._selectedDay).length;case"h":return(""+(a._ampmField==-1?a._selectedHour:a._selectedHour%12||12)).length;case"m":return(""+a._selectedMinute).length;case"s":return(""+a._selectedSecond).length;case"a":return this._get(a,"ampmNames")[0].length;default:return 1}},_formatNumber:function(a,b){a=""+a,b=b||2;while(a.length<b)a="0"+a;return a},_setValue:function(b,c){if(c!=b.input.val()){var d=this._get(b,"altField");d&&a(d).val(c?this._formatDatetime(b,this._get(b,"altFormat"
)||this._get(b,"datetimeFormat")):""),b.input.val(c).trigger("change")}},_changeField:function(b,d,e){var f=b.input.val()==""||b._field==(d==-1?0:b._fields.length-1);return f||(b._field+=d),this._showField(b),b._lastChr="",a.data(b.input[0],c,b),f&&e},_adjustField:function(a,b){a.input.val()==""&&(b=0);var c=this._get(a,"datetimeFormat").charAt(a._fields[a._field]),d=a._selectedYear+(c.match(/y/i)?b:0),e=a._selectedMonth+(c.match(/o|n/i)?b:0),f=c.match(/d|w/i)?a._selectedDay+b:Math.min(a._selectedDay,this._getDaysInMonth(d,e)),g=this._get(a,"timeSteps"),h=a._selectedHour+(c.match(/h/i)?b*g[0]:0)+(c=="a"&&b!=0?a._selectedHour<12?12:-12:0),i=a._selectedMinute+(c.match(/m/i)?b*g[1]:0),j=a._selectedSecond+(c.match(/s/i)?b*g[2]:0);this._setDatetime(a,new Date(d,e,f,h,i,j))},_getDaysInMonth:function(a,b){return(new Date(a,b+1,0)).getDate()},_setDatetime:function(b,d){d=this._normaliseDatetime(this._determineDatetime(b,d||this._get(b,"defaultDatetime"))||new Date);var e=this._constrainTime(b,[d.getHours(),d.getMinutes(),d.getSeconds()]);d.setHours(e[0],e[1],e[2]);var f=this._normaliseDatetime(this._determineDatetime(b,this._get(b,"minDatetime"))),g=this._normaliseDatetime(this._determineDatetime(b,this._get(b,"maxDatetime"))),h=this._normaliseDatetime(this._determineDatetime(b,this._get(b,"minTime")),"d"),i=this._normaliseDatetime(this._determineDatetime(b,this._get(b,"maxTime")),"d");d=f&&d<f?f:g&&d>g?g:d,h&&this._normaliseDatetime(new Date(d.getTime()),"d")<h&&this._copyTime(h,d),i&&this._normaliseDatetime(new Date(d.getTime()),"d")>i&&this._copyTime(i,d),b._selectedYear=d.getFullYear(),b._selectedMonth=d.getMonth(),b._selectedDay=d.getDate(),b._selectedHour=d.getHours(),b._selectedMinute=d.getMinutes(),b._selectedSecond=d.getSeconds(),this._showDatetime(b),a.data(b.input[0],c,b)},_copyDate:function(a,b){b.setFullYear(a.getFullYear()),b.setMonth(a.getMonth()),b.setDate(a.getDate())},_copyTime:function(a,b){b.setHours(a.getHours()),b.setMinutes(a.getMinutes()),b.setSeconds(a.getSeconds())},_determineDatetime:function(b,c){var d=function(a){var b=new Date;return b.setSeconds(b.getSeconds()+a),b},e=function(c){var d;try{d=a.datetimeEntry._parseDatetime(b,c);if(d)return d}catch(e){}c=c.toLowerCase(),d=new Date;var f=d.getFullYear(),g=d.getMonth(),h=d.getDate(),i=d.getHours(),j=d.getMinutes(),k=d.getSeconds(),l=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g,m=l.exec(c);while(m){switch(m[2]||"s"){case"s":k+=parseInt(m[1],10);break;case"m":j+=parseInt(m[1],10);break;case"h":i+=parseInt(m[1],10);break;case"d":h+=parseInt(m[1],10);break;case"w":h+=parseInt(m[1],10)*7;break;case"o":g+=parseInt(m[1],10);break;case"y":f+=parseInt(m[1],10)}m=l.exec(c)}return new Date(f,g,h,i,j,k)};return c?typeof c=="string"?e(c):typeof c=="number"?d(c):c:null},_normaliseDatetime:function(a,b){return a?(b=="d"&&(a.setFullYear(0),a.setMonth(0),a.setDate(0)),b=="t"&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0)),a.setMilliseconds(0),a):null},_handleKeyPress:function(a,b){b=b.toLowerCase();var c=this._get(a,"datetimeFormat"),d=this._get(a,"datetimeSeparators"),e=c.charAt(a._fields[a._field]),f=c.charAt(a._fields[a._field]+1);f="yYoOnNdDwWhHmMsSa".indexOf(f)==-1?f:"";if((d+f).indexOf(b)>-1)this._changeField(a,1,!1);else if(b>="0"&&b<="9"){var g=parseInt(b,10),h=parseInt(a._lastChr+b,10),i=e.match(/y/i)?h:a._selectedYear,j=e.match(/o|n/i)?h>=1&&h<=12?h:g>0?g:a._selectedMonth+1:a._selectedMonth+1,k=e.match(/d|w/i)?h>=1&&h<=this._getDaysInMonth(i,j-1)?h:g>0?g:a._selectedDay:a._selectedDay,l=e.match(/h/i)?a._ampmField==-1?h<24?h:g:(h>=1&&h<=12?h:g>0?g:a._selectedHour)%12+(a._selectedHour>=12?12:0):a._selectedHour,m=e.match(/m/i)?h<60?h:g:a._selectedMinute,n=e.match(/s/i)?h<60?h:g:a._selectedSecond,o=this._constrainTime(a,[l,m,n]),p=this._shortYearCutoff(a);this._setDatetime(a,new Date(i+(i>=100||e!="y"?0:i>p?1900:2e3),j-1,k,o[0],o[1],o[2])),a._lastChr=(e!="Y"?"":a._lastChr.substr(Math.max(0,a._lastChr.length-2)))+b}else if(e.match(/n/i)){a._lastChr+=b;var q=this._get(a,e=="n"?"monthNamesShort":"monthNames"),r=function(){for(var b=0;b<q.length;b++)if(q[b].toLowerCase().substring(0,a._lastChr.length)==a._lastChr)return b;return-1},j=r();j==-1&&(a._lastChr=b,j=r());if(j==-1)a._lastChr="";else{var i=a._selectedYear,k=Math.min(a._selectedDay,this._getDaysInMonth(i,j));this._setDatetime(a,this._normaliseDatetime(new Date(i,j,k,a._selectedHour,a._selectedMinute,a._selectedSecond)))}}else if(a._ampmField>-1){var s=this._get(a,"ampmNames");if(b==s[0].substring(0,1).toLowerCase()&&a._selectedHour>=12||b==s[1].substring(0,1).toLowerCase()&&a._selectedHour<12){var t=a._field;a._field=a._ampmField,this._adjustField(a,1),a._field=t,this._showField(a)}}},_shortYearCutoff:function(a){var b=this._get(a,"shortYearCutoff");return typeof b=="string"&&(b=(new Date).getFullYear()+parseInt(b,10)),b%100},_constrainTime:function(a,b){var c=b!=null;if(!c){var d=this._determineTime(a,this._get(a,"defaultTime"))||new Date;b=[d.getHours(),d.getMinutes(),d.getSeconds()]}var e=!1,f=this._get(a,"timeSteps");for(var g=0;g<f.length;g++)e?b[g]=0:f[g]>1&&(b[g]=Math.round(b[g]/f[g])*f[g],e=!0);return b}});var e=["getDatetime","getOffset","isDisabled"];a.fn.datetimeEntry=function(b){var c=Array.prototype.slice.call(arguments,1);return typeof b=="string"&&a.inArray(b,e)>-1?a.datetimeEntry["_"+b+"DatetimeEntry"].apply(a.datetimeEntry,[this[0]].concat(c)):this.each(function(){var d=this.nodeName.toLowerCase();if(d=="input")if(typeof b=="string")a.datetimeEntry["_"+b+"DatetimeEntry"].apply(a.datetimeEntry,[this].concat(c));else{var e=a.fn.metadata?a(this).metadata():{};a.datetimeEntry._connectDatetimeEntry(this,a.extend(e,b))}})},a.datetimeEntry=new b}(jQuery),Jux.namespace("ui","ui.anim","ui.bits","ui.layouts","ui.containers","ui.formFields","ui.toolButtons","ui.plugins","ui.utils"),ui.ComponentManager={componentClasses:{},registerType:function(a,b){a=a.toLowerCase();if(!this.componentClasses[a])this.componentClasses[a]=b;else throw new Error("Error: ui.ComponentManager already has a type '"+a+"'")},getType:function(a){return this.componentClasses[a.toLowerCase()]},hasType:function(a){return a?!!this.componentClasses[a.toLowerCase()]:!1},create:function(a){var b=a.type?a.type.toLowerCase():undefined;if(a instanceof ui.Component)return a;if(this.hasType(b||"container"))return new this.componentClasses[b||"container"](a);throw new Error("ComponentManager.create(): Unknown type: '"+b+"'")}},ui.Component=Jux.extend(Jux.util.Observable,{elType:"div",hidden:!1,cls:"",masked:!1,parentContainer:null,rendered:!1,deferMaskShow:!1,destroyed:!1,constructor:function(a){Jux.apply(this,a),this.initialConfig=Jux.apply({},a),ui.Component.superclass.constructor.call(this),this.addEvents("render","show","hide","beforedestroy","destroy");if(this.hasOwnProperty("onRender")){var b=this.onRender;this.addListener({render:function(a){b.call(this,a)},scope:this}),delete this.onRender}this.id=this.id||"ui-cmp-"+Jux.newId(),this.elId=this.elId||"ui-cmp-"+Jux.newId(),this.plugins=this.plugins||[],Jux.isObject(this.plugins)&&(this.plugins=[this.plugins]),this.initComponent(),this.plugins.length>0&&this.initPlugins(this.plugins),this.renderTo&&(this.render(this.renderTo),delete this.renderTo)},initComponent:function(){},initPlugins:function(a){if(Jux.isArray(a)){for(var b=0,c=a.length;b<c;b++)this.initPlugins(a[b]);return}if(a instanceof ui.plugins.AbstractPlugin)a.initPlugin(this);else throw new Error("error: a plugin provided to this Component was not of type ui.plugins.AbstractPlugin")},render:function(a){var b=jQuery(a);if(this.rendered)this.$el.appendTo(b);else{var c=[],d=this.attr;if(d)for(var e in d)d.hasOwnProperty(e)&&c.push(e+'="'+d[e]+'"');var f="";this.style&&(f=Jux.CSS.hashToString(this.style)),this.$el=jQuery("<"+this.elType+' id="'+this.elId+'" class="'+this.cls+'" style="'+f+'" '+c.join(" ")+" />"),b.append(this.$el),this.rendered=!0,this.onRender(b);var g=this.getContentTarget();this.html&&g.append(this.html),this.contentEl&&g.append(this.contentEl),typeof this.height!="undefined"&&this.$el.height(this.height),typeof this.width!="undefined"&&this.$el.width(this.width),typeof this.minHeight!="undefined"&&this.$el.css({minHeight:this.minHeight}),typeof this.minWidth!="undefined"&&this.$el.css({minWidth:this.minWidth}),typeof this.maxHeight!="undefined"&&this.$el.css({maxHeight:this.maxHeight}),typeof this.maxWidth!="undefined"&&this.$el.css({maxWidth:this.maxWidth}),this.hidden&&this.$el.hide(),this.masked&&this.mask(this.deferredMaskConfig),this.afterRender(b),this.fireEvent("render",this)}},onRender:function(a){},afterRender:function(a){},update:function(a){this.rendered?this.getContentTarget().empty().append(a):(delete this.contentEl,this.html=a)},getContentTarget:function(){return this.getEl()},getId:function(){return this.id},getEl:function(){return this.$el},getInitialConfig:function(){return this.initialConfig},show:function(a){this.hidden=!1,this.rendered&&(typeof a=="object"?(a.target=this,this.currentAnimation=new ui.anim.Animation(a),this.currentAnimation.start()):this.$el.show(),this.onShow(),this.fireEvent("show",this))},onShow:function(){this.deferMaskShow&&this.mask(this.deferredMaskConfig)},hide:function(a){this.hidden=!0,this.rendered&&(typeof a=="object"?(a.target=this,this.currentAnimation=new ui.anim.Animation(a),this.currentAnimation.start()):this.$el.hide(),this.onHide(),this.fireEvent("hide",this))},onHide:function(){},isHidden:function(){if(!this.rendered)return this.hidden;if(this.$el.css("display")==="none")return!0;var a=this.$el.parents(),b=a.length;if(b===0||a[b-1].tagName.toLowerCase()!=="html")return!0;for(var c=0,d=a.length;c<d;c++)if(jQuery(a[c]).css("display")==="none")return!0;return!1},mask:function(a){a=a||this.maskConfig,this.masked=!0,this.rendered?this.isHidden()?(this.deferMaskShow=!0,this.deferredMaskConfig=a):(this._mask?this._mask.updateConfig(a):this._mask=new ui.Mask(this.getMaskTarget(),a),this._mask.show(),this.deferMaskShow=!1,delete this.deferredMaskConfig):this.deferredMaskConfig=a},unMask:function(){this.masked=!1,this.deferMaskShow=!1,delete this.deferredMaskConfig,this.rendered&&this._mask&&this._mask.hide()},isMasked:function(){return this.masked},getMaskTarget:function(){return this.getEl()},setParentContainer:function(a){this.parentContainer=a},getParentContainer:function(){return this.parentContainer},bubble:function(a,b,c){var d=this;while(d){if(a.apply(b||d,c||[d])===!1)break;d=d.parentContainer}},findParentBy:function(a){for(var b=this.parentContainer;b!==null&&!a(b,this);b=b.parentContainer);return b||null},findParentById:function(a){for(var b=this.parentContainer;b&&b.id!==a;b=b.parentContainer);return b||null},findParentByType:function(a){if(typeof a=="string"){a=ui.ComponentManager.getType(a);if(!a)return null}for(var b=this.parentContainer;b&&!(b instanceof a);b=b.parentContainer);return b||null},getBubbleTarget:function(){return this.parentContainer},destroy:function(){if(!this.destroyed&&this.fireEvent("beforedestroy",this)!==!1){this.onDestroy(),this._mask instanceof ui.Mask&&this._mask.destroy();for(var a in this)if(this.hasOwnProperty(a)){var b=this[a];Jux.isElement(b)?(jQuery(b).remove(),delete this[a]):Jux.isJQuery(b)&&(b.remove(),delete this[a])}this.rendered=!1,this.destroyed=!0,this.fireEvent("destroy",this),this.purgeListeners()}},onDestroy:function(){}}),ui.ComponentManager.registerType("Component",ui.Component),ui.Container=Jux.extend(ui.Component,{defaultType:"Container",destroyRemoved:!0,deferLayout:!1,initComponent:function(){this.items&&(this.html=undefined,this.contentEl=undefined),this.addEvents("beforeadd","add","reorder","beforeremove","remove","afterlayout"),this.enableBubble("add","remove"),ui.Container.superclass.initComponent.call(this),this.childComponents=[],this.items&&(this.add(this.items),delete this.items),this.layout&&this.setLayout(this.layout),this.data&&this.setData(this.data)},createComponent:function(a){return a=Jux.apply({},a,{parentContainer:this,type:this.defaultType}),ui.ComponentManager.create(a)},add:function(a){var b;if(Jux.isArray(a)){b=[];for(var c=0,d=a.length;c<d;c++)b.push(this.doInsert(a[c]))}else b=this.doInsert(a);return this.doLayout(),b},insert:function(a,b){return a=this.doInsert(a,b),this.doLayout(),a},doInsert:function(a,b){typeof b!="number"?b=this.childComponents.length:b<0?b=0:b>this.childComponents.length&&(b=this.childComponents.length);var c=a instanceof ui.Component,d=c&&this.has(a);if(d){var e=this.childComponents;for(var f=0,g=e.length;f<g;f++)if(e[f]===a){this.childComponents.splice(f,1);break}return this.childComponents.splice(b,0,a),this.onReorder(a,b,f),this.fireEvent("reorder",this,a,b,f),a}c||(a=this.createComponent(a));if(this.fireEvent("beforeadd",this,a)!==!1){var h=a.getParentContainer();return h!==null&&h.remove(a,!1),a.setParentContainer(this),this.childComponents.splice(b,0,a),this.onAdd(a,b),this.fireEvent("add",this,a,b),a}return null},onAdd:Jux.emptyFn,onReorder:Jux.emptyFn,remove:function(a,b){var c;if(Jux.isArray(a)){c=[];for(var d=0,e=a.length;d<e;d++){var f=this.doRemove(a[d],b);f&&c.push(f)}}else c=this.doRemove(a,b);return this.doLayout(),c},removeAll:function(a){var b=this.childComponents;for(var c=b.length-1;c>=0;c--)this.doRemove(b[c],a);this.doLayout()},doRemove:function(a,b){var c,d;if(Jux.isArray(a)){for(c=0,d=a.length;c<d;c++)this.remove(a[c],b);return}var e=this.childComponents,f=-1;b=typeof b=="undefined"?this.destroyRemoved:b;for(c=0,d=e.length;c<d;c++)if(e[c]===a){f=c;break}return f!==-1&&this.fireEvent("beforeremove",this,a)!==!1?(a.setParentContainer(null),a.rendered&&a.getEl().detach(),e.splice(f,1),this.onRemove(a,f),this.fireEvent("remove",this,a,f),b&&a.destroy(),a):null},onRemove:Jux.emptyFn,getItems:function(){return this.childComponents},getItemAt:function(a){return this.childComponents[a]||null},getItemIndex:function(a){var b=this.childComponents;for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},has:function(a){return this.getItemIndex(a)!==-1},afterRender:function(a){ui.Container.superclass.afterRender.apply(this,arguments),this.doLayout()},onShow:function(){ui.Container.superclass.onShow.apply(this,arguments),this.deferLayout&&this.doLayout();var a=this.childComponents;for(var b=0,c=a.length;b<c;b++){var d=a[b];d.hidden||a[b].onShow()}},doLayout:function(){this.canLayout()?(this.deferLayout=!1,this.getLayout().doLayout(),this.onLayout(),this.fireEvent("afterlayout",this)):this.deferLayout=!0},onLayout:Jux.emptyFn,canLayout:function(){return this.rendered&&!this.isHidden()},getLayout:function(){return this.layout||this.setLayout(new ui.layouts.ContainerLayout),this.layout},setLayout:function(a){this.layout instanceof ui.layouts.AbstractLayout&&this.layout!==a&&this.layout.setContainer(null);if(a instanceof ui.layouts.AbstractLayout)this.layout=a,a.setContainer(this);else{var b,c={container:this};if(typeof a=="string")b=a;else if(typeof a=="object")b=a.type||"container",c=Jux.apply({},c,a),delete c.type;else throw new Error("Invalid layout argument provided to setLayout. See method description in docs.");b=b.toLowerCase();if(!ui.Container.LAYOUTS[b])throw new Error("layout type '"+b+"' is not a registered layout type.");this.layout=new ui.Container.LAYOUTS[b](c)}},setData:function(a){var b=this.getDataControls();for(var c=0,d=b.length;c<d;c++){var e=b[c],f=e.getKey();typeof a[f]!="undefined"&&e.setData(a[f])}},getData:function(){var a={},b=this.getDataControls();for(var c=0,d=b.length;c<d;c++){var e=b[c],f=e.getKey();f&&(a[f]=e.getData())}return a},getDataControls:function(){var a=[];return this.cascade(function b(b){if(Jux.isInstanceOf(b,ui.DataControl))return a.push(b),!1},this),a},cascade:function(a,b,c){if(a.apply(b||this,c||[this])!==!1){var d=this.childComponents;if(d.length>0)for(var e=0,f=d.length;e<f;e++)d[e].cascade?d[e].cascade(a,b,c):a.apply(b||d[e],c||[d[e]])}},findById:function(a){var b=null,c=this;return this.cascade(function(d){if(d!==c&&d.id===a)return b=d,!1}),b},findByKey:function(a){if(!a)return null;var b=null,c=this,d=Jux.isInstanceOf,e=ui.DataControl;return this.cascade(function(f){if(f!==c&&d(f,e))return f.getKey()===a&&(b=f),!1}),b},findBy:function(a,b){var c=[],d=this;return this.cascade(function(e){e!=d&&a.call(b||e,e,d)===!0&&c.push(e)}),c},onDestroy:function(){var a=this.childComponents;for(var b=0,c=a.length;b<c;b++)a[b].destroy();this.layout instanceof ui.layouts.AbstractLayout&&this.layout.destroy(),ui.Container.superclass.onDestroy.apply(this,arguments)}}),ui.Container.LAYOUTS={},ui.Container.registerLayout=function(a,b){ui.Container.LAYOUTS[a.toLowerCase()]=b},ui.ComponentManager.registerType("Container",ui.Container),ui.AbstractOverlay=Jux.extend(ui.Container,{autoDestroy:!0,autoOpen:!1,closeOnEscape:!0,opened:!1,opening:!1,closing:!1,currentAnimation:null,initComponent:function(){ui.AbstractOverlay.superclass.initComponent.call(this),this.addEvents("beforeopen","open","openbegin","opencomplete","beforeblurclose","beforeclose","closebegin","close","closecomplete"),this.autoOpen&&this.open()},onRender:function(){ui.AbstractOverlay.superclass.onRender.apply(this,arguments),this.$contentContainer=jQuery('<div class="ui-overlay-content" />').appendTo(this.$el),this.closeOnEscape&&this.$el.keydown(function(a){a.keyCode===jQuery.ui.keyCode.ESCAPE&&this.close()}.createDelegate(this));var a=new Jux.Util.DelayedTask(function(){this.onWindowResize()},this);this.windowResizeHandler=function(){a.delay(150)},jQuery(window).bind("resize",this.windowResizeHandler)},getContentTarget:function(){return this.$contentContainer},open:function(a){a=a||{},typeof a.animate=="undefined"&&(a.animate=!0),this.closing&&this.currentAnimation.end();if(!this.opened&&this.fireEvent("beforeopen",this)!==!1){this.opened=!0,this.opening=!0,this.rendered||this.render(document.body),this.show(),this.onBeforeOpen(a);if(a.anchor)this.setAnchor(a.anchor);else if(a.hasOwnProperty("x")||a.hasOwnProperty("y")){var b=typeof a.x!="undefined"?a.x:this.x,c=typeof a.y!="undefined"?a.y:this.y;this.setPosition(b,c)}else this.updatePosition();this.onOpen(),this.fireEvent("openbegin",this),this.fireEvent("open",this);if(this.openAnim&&a.animate){var d=Jux.apply({},{target:this},this.openAnim);this.currentAnimation=new ui.anim.Animation(d),this.currentAnimation.addListener("afteranimate",this.openComplete,this),this.currentAnimation.start()}else this.openComplete()}},onBeforeOpen:function(a){},openComplete:function(){this.opening=!1,this.currentAnimation=null,this.fireEvent("opencomplete",this)},onOpen:function(){},isOpen:function(){return this.opened},getHeight:function(){return this.isOpen()?this.$el.outerHeight():0},getWidth:function(){return this.isOpen()?this.$el.outerWidth():0},setPosition:function(a,b){this.x=a,this.y=b,this.anchor=null,this.updatePosition()},setAnchor:function(a){this.anchor=a,this.updatePosition()},updatePosition:function(){if(this.isOpen()){var a,b,c,d,e,f=this.$el;if(this.anchor){var g=this.anchor;a=g.my||"left top",b=g.at||"left bottom",c=g.element||g.of,d=g.offset,e=g.collision||"flip",c instanceof ui.Component&&(c=c.getEl())}else{var h=this.x>0?"left":"right",i=this.y>0?"top":"bottom";a=b=h+" "+i,c=document.body,d=this.x+" "+this.y}f.position({my:a,at:b,of:c,offset:d,collision:e}),this.checkCollision()}},checkCollision:function(){var a=this.anchor;if(a){var b=a.collision||"flip";if(b.indexOf("flip")>-1){var c=this.$el.attr("class");/(^| )ui-flipped-(top|bottom|left|right)( |$)/.test(c)&&this.onCollision("flip",{top:/(^| )ui-flipped-bottom( |$)/.test(c),bottom:/(^| )ui-flipped-top( |$)/.test(c),left:/(^| )ui-flipped-right( |$)/.test(c),right:/(^| )ui-flipped-left( |$)/.test(c)})}}},onCollision:function(a,b){},onWindowResize:function(){this.updatePosition()},close:function(a){a=a||{},typeof a.animate=="undefined"&&(a.animate=!0),this.opening&&this.currentAnimation.end();if(this.opened&&!this.closing&&this.fireEvent("beforeclose",this)!==!1){this.opened=!1,this.closing=!0,this.onBeforeClose(a),this.fireEvent("closebegin",this);if(this.closeAnim&&a.animate){var b=Jux.apply({},{target:this},this.closeAnim);this.currentAnimation=new ui.anim.Animation(b),this.currentAnimation.addListener("afteranimate",this.closeComplete,this),this.currentAnimation.start()}else this.closeComplete()}},onBeforeClose:function(a){},closeComplete:function(){this.closing=!1,this.currentAnimation=null,this.hide(),this.onClose(),this.fireEvent("close",this),this.fireEvent("closecomplete",this),this.autoDestroy&&this.destroy()},onClose:function(){},onDestroy:function(){this.isOpen()&&this.close({animate:!1}),jQuery(window).unbind("resize",this.windowResizeHandler),this.windowResizeHandler=null,ui.AbstractOverlay.superclass.onDestroy.apply(this,arguments)}}),ui.Overlay=Jux.extend(ui.AbstractOverlay,{arrow:null,initComponent:function(){this.cls+=" ui-overlay",this.hidden=!0,this.value&&this.setArrow(this.arrow),ui.Overlay.superclass.initComponent.call(this)},onRender:function(){ui.Overlay.superclass.onRender.apply(this,arguments),this.arrow&&this.renderArrow(this.arrow)},renderArrow:function(a){this.$arrow&&(this.$arrow.remove(),this.$arrow=null);if(a){var b=a.offset,c=(b<0?"right: ":"left: ")+Math.abs(b)+"px";this.$arrow=jQuery('<div class="ui-overlay-arrow ui-overlay-arrow-'+a.side+'" style="'+c+'"></div>').prependTo(this.$el)}},open:function(a){a=a||{},a.dontCloseOn&&(this.dontCloseOn=a.dontCloseOn),ui.Overlay.superclass.open.call(this,a),this.docBodyClickHandler=function(a){this.onDocBodyClick(a)}.createDelegate(this),window.setTimeout(function(){jQuery(document.body).bind("mousedown touchend",this.docBodyClickHandler)}.createDelegate(this),10)},setArrow:function(a){this.arrow=a,a&&typeof a.offset=="undefined"&&(a.offset=10),this.rendered&&this.renderArrow(a)},setDontCloseOn:function(a){this.dontCloseOn=a},onCollision:function(a,b){ui.Overlay.superclass.onCollision.apply(this,arguments);var c=Jux.clone(this.arrow);if(c&&a==="flip"){var d=c.side;if(b.top||b.bottom){if(d==="top"||d==="bottom")c.side=d==="top"?"bottom":"top";if(d==="left"||d==="right")c.offset*=-1}if(b.left||b.right){if(d==="left"||d==="right")c.side=d==="left"?"right":"top";if(d==="top"||d==="bottom")c.offset*=-1}this.renderArrow(c)}},onDocBodyClick:function(a){var b=jQuery(a.target).parents().andSelf();!b.is(this.$el)&&!b.is(this.dontCloseOn)&&this.fireEvent("beforeblurclose",this,a)!==!1&&this.close()},onBeforeClose:function(){jQuery(document.body).unbind("mousedown",this.docBodyClickHandler).unbind("touchend",this.docBodyClickHandler),this.docBodyClickHandler=null}}),ui.Dialog=Jux.extend(ui.Container,{autoDestroy:!0,autoOpen:!1,modal:!1,overlay:!0,x:"center",y:"center",height:"auto",width:"auto",minHeight:10,minWidth:"auto",title:"",closeButton:!0,closeOnEscape:!0,buttons:[],initComponent:function(){this.dialogHeight=this.height,this.height=undefined,this.dialogWidth=this.width,this.width=undefined,this.dialogMinHeight=this.minHeight,this.minHeight=undefined,this.dialogMinWidth=this.minWidth,this.minWidth=undefined,this.dialogMaxHeight=this.maxHeight,this.maxHeight=undefined,this.dialogMaxWidth=this.maxWidth,this.maxWidth=undefined,this.addEvents("beforeopen","open","beforeclose","close","keypress"),this.cls+=" dialog-content",this.setTitle(this.title);var a=!1,b=this.footer;if(Jux.isString(b)||Jux.isElement(b)||Jux.isJQuery(b))a=!0;this.footerContainer=new ui.Container({cls:"dialog-bottom-content-left",style:{display:"inline-block"},contentEl:a?b:undefined,items:a?undefined:b}),this.buttonsContainer=new ui.Container({defaultType:"Button",cls:"dialog-bottom-content-right",style:{display:"inline-block"},items:this.buttons}),this.bottomBarContainer=new ui.Container({cls:"dialog-bottom-content ui-corner-all",hidden:!0,items:[this.footerContainer,this.buttonsContainer]}),ui.Dialog.superclass.initComponent.call(this),this.autoOpen&&this.open()},onRender:function(){ui.Dialog.superclass.onRender.apply(this,arguments),this.$dialog=jQuery("<div />"),this.$contentContainer=this.$el.appendTo(this.$dialog),typeof this.dialogMinWidth!="undefined"&&this.$contentContainer.css("min-width",this.dialogMinWidth),typeof this.dialogMinHeight!="undefined"&&this.$contentContainer.css("min-height",this.dialogMinHeight),this.bottomBarContainer.render(this.$dialog),this.$dialog.dialog({dialogClass:"jux-dialog jux "+this.cls,title:this.title,modal:this.modal,draggable:!0,autoOpen:!1,resizable:!1,closeOnEscape:!1,minWidth:0,minHeight:0,width:this.dialogWidth,height:this.dialogHeight,dragStop:this.onDragStop.createDelegate(this)});var a=this.$dialogOuter=this.$dialog.dialog("widget");a.wrapInner('<div class="dialog-innerWrap" />'),this.$dialogInner=a.find(".dialog-innerWrap");var b=a.find("div.ui-dialog-titlebar"),c=b.find("a.ui-dialog-titlebar-close");c.remove(),this.closeButton===!0&&(this.closeButton=new ui.toolButtons.CloseButton({handler:function(){this.close()},scope:this})),this.closeButton instanceof ui.Button&&(this.closeButton.render(b),this.closeButton.getEl().addClass("ui-dialog-titlebar-close")),this.$contentContainer.bind("keypress",this.onKeyPress.createDelegate(this));var d=new Jux.Util.DelayedTask(function(){this.onWindowResize()},this);this.windowResizeHandler=function(){d.delay(150)},jQuery(window).bind("resize",this.windowResizeHandler)},open:function(){this.fireEvent("beforeopen",this)!==!1&&(this.rendered||this.render(document.body),this.$dialog.dialog("open"),this.modal===!0&&(this.$overlayEl=jQuery("body div.ui-widget-overlay:last"),this.overlay===!1&&this.$overlayEl.css("opacity",0)),this.show(),(this.footer||this.buttons.length>0)&&this.bottomBarContainer.show(),this.resizeContentContainer(),this.setPosition(this.x,this.y),this.onOpen(),this.fireEvent("open",this))},onOpen:Jux.emptyFn,isOpen:function(){return this.rendered&&this.$dialog.dialog("isOpen")},getHeight:function(){return this.isOpen()?this.$dialog.dialog("widget").outerHeight():0},getWidth:function(){return this.isOpen()?this.$dialog.dialog("widget").outerWidth():0},setTitle:function(a){if(a instanceof ui.Component){var b=document.createDocumentFragment();a.render(b),a=a.getEl()}this.title=a,this.$dialog&&this.$dialog.dialog("option","title",a)},setFooter:function(a){this.bottomBarContainer.isHidden()&&this.bottomBarContainer.show(),this.footerContainer.removeAll(),this.footerContainer.getEl().empty(),a instanceof ui.Component?this.footerContainer.add(a):this.footerContainer.getEl().append(a)},setButtons:function(a){this.bottomBarContainer.isHidden()&&this.bottomBarContainer.show(),this.buttonsContainer.removeAll(),this.buttonsContainer.add(a)},setPosition:function(a,b){this.x=a,this.y=b;if(this.isOpen()){if(a<0||b<0){var c=jQuery(window);a<0&&(a=c.width()-this.getWidth()- -a),b<0&&(b=c.height()-this.getHeight()- -b)}this.$dialog.dialog("option","position",[a,b])}},getPosition:function(){if(!this.isOpen())return{x:0,y:0,left:0,top:0,right:0,bottom:0};var a=jQuery(window),b=this.$dialog.dialog("widget").position(),c=b.left,d=b.top,e=a.width()-(b.left+this.getWidth()),f=a.height()-(b.top+this.getHeight());return{x:c,y:d,left:c,top:d,right:e,bottom:f}},resizeContentContainer:function(){if(this.isOpen()){var a=jQuery(window),b=this.$dialog.dialog("widget"),c=this.$dialogInner,d=this.$dialog,e=b.find("div.ui-dialog-titlebar"),f=this.bottomBarContainer.getEl(),g=this.$contentContainer,h=function(a){return{height:parseInt(a.css("marginTop"),10)+parseInt(a.css("borderTopWidth"),10)+parseInt(a.css("paddingTop"),10)+parseInt(a.css("marginBottom"),10)+parseInt(a.css("borderBottomWidth"),10)+parseInt(a.css("paddingBottom"),10),width:parseInt(a.css("marginLeft"),10)+parseInt(a.css("borderLeftWidth"),10)+parseInt(a.css("paddingLeft"),10)+parseInt(a.css("marginRight"),10)+parseInt(a.css("borderRightWidth"),10)+parseInt(a.css("paddingRight"),10)}},i=h(b),j=h(c),k=h(d),l=i.height+j.height+k.height+e.outerHeight(!0)+f.outerHeight(!0),m=i.width+j.width+k.width,n=Math.min(+this.dialogMaxHeight||Number.POSITIVE_INFINITY,a.height()-20),o=Math.min(+this.dialogMaxWidth||Number.POSITIVE_INFINITY,a.width()-20),p=n-l,q=o-m;b.css("maxHeight",Math.max(n-i.height,0)),b.css("maxWidth",Math.max(o-i.width,0)),c.css("maxHeight",Math.max(n-i.height-j.height,0)),c.css("maxWidth",Math.max(o-i.width-j.width,0)),g.css("maxHeight",Math.max(p,0)),g.css("maxWidth",Math.max(q,0)),this.masked&&this.mask()}},onWindowResize:function(){this.resizeContentContainer(),this.setPosition(this.x,this.y)},onDragStop:function(a,b){var c=b.position;this.x=c.left,this.y=c.top},onKeyPress:function(a){this.fireEvent("keypress",this,a),this.closeOnEscape&&a.keyCode===jQuery.ui.keyCode.ESCAPE&&this.close()},close:function(){this.rendered&&this.fireEvent("beforeclose",this)!==!1&&(this.onBeforeClose(),this.modal&&this.overlay===!1&&this.$overlayEl.css("opacity",""),this.$overlayEl=null,this.$dialog.dialog("close"),this.onClose(),this.fireEvent("close",this),this.autoDestroy&&this.destroy())},onBeforeClose:Jux.emptyFn,onClose:Jux.emptyFn,onDestroy:function(){this.isOpen()&&this.close(),this.bottomBarContainer.destroy(),this.rendered&&(jQuery(window).unbind("resize",this.windowResizeHandler),this.$dialog.dialog("destroy"),this.$dialog.unbind()),ui.Dialog.superclass.onDestroy.apply(this,arguments)},getMaskTarget:function(){return this.$dialogInner},cascade:function(){ui.Dialog.superclass.cascade.apply(this,arguments),this.bottomBarContainer.cascade.apply(this.bottomBarContainer,arguments)}}),ui.FieldSet=Jux.extend(ui.Container,{title:"",elType:"fieldset",initComponent:function(){this.cls+=" dialog-fieldSet",ui.FieldSet.superclass.initComponent.call(this)},onRender:function(){ui.FieldSet.superclass.onRender.apply(this,arguments),this.$legendEl=jQuery("<legend>"+this.title+"</legend>").appendTo(this.$el)},setTitle:function(a){this.rendered?this.$legendEl.empty().append(a):this.title=a}}),ui.ComponentManager.registerType("FieldSet",ui.FieldSet),ui.Button=Jux.extend(ui.Component,{iconSrc:"",text:"",tooltip:"",priority:"normal",disabled:!1,removeHoverStateOnClick:!1,elType:"button",initComponent:function(){ui.Button.superclass.initComponent.call(this),this.addEvents("click","mouseenter","mouseleave"),this.label&&(this.text=this.label,delete this.label),this.hasOwnProperty("onClick")&&(this.handler=this.onClick,delete this.onClick)},onRender:function(a){ui.Button.superclass.onRender.apply(this,arguments),this.text&&this.$el.append(this.text),this.tooltip&&this.$el.attr("title",this.tooltip);var b={icons:{primary:null,secondary:null},text:this.text!==""?!0:!1,disabled:this.disabled};this.primaryIcon&&(b.icons.primary=this.primaryIcon),this.secondaryIcon&&(b.icons.secondary=this.secondaryIcon),this.$el.button(b),this.priority==="primary"?this.$el.addClass("ui-priority-primary"):this.priority==="secondary"&&this.$el.addClass("ui-priority-secondary");if(this.iconSrc){var c=jQuery('<img src="'+this.iconSrc+'" style="margin-right: 5px; vertical-align: middle;" />');this.$el.find("span").prepend(c)}this.$el.bind({mouseenter:this.onMouseEnter.createDelegate(this),mouseleave:this.onMouseLeave.createDelegate(this),click:this.onClick.createDelegate(this)})},setText:function(a){this.rendered?this.$el.find("span").empty().append(a):this.text=a},disable:function(){this.rendered?this.$el.button("disable"):this.disabled=!0},enable:function(){this.rendered?this.$el.button("enable"):this.disabled=!1},onClick:function(){this.removeHoverStateOnClick&&this.$el.removeClass("ui-state-hover"),typeof this.handler=="function"&&this.handler.call(this.scope||this,this),this.fireEvent("click",this)},onMouseEnter:function(){this.fireEvent("mouseenter",this)},onMouseLeave:function(){this.fireEvent("mouseleave",this)}}),ui.ComponentManager.registerType("Button",ui.Button),ui.ComponentManager.registerType("ChoiceButton",ui.Button),ui.DataControl=Jux.extend(Jux.util.Observable,{key:null,constructor:function(){ui.DataControl.superclass.constructor.call(this),this.addEvents("datachange")},getKey:function(){return this.key},getData:function(){throw new Error("ui.DataControl::getData() must be implemented in subclass.")},setData:function(a){throw new Error("ui.DataControl::setData() must be implemented in subclass.")},onDataChange:function(){this.fireEvent("datachange",this)}}),ui.Label=Jux.extend(ui.Component,{text:"",initComponent:function(){this.cls+=" ui-label",ui.Label.superclass.initComponent.call(this),this.help&&(this.text=this.help),this.label&&(this.text=this.label)},onRender:function(){ui.Label.superclass.onRender.apply(this,arguments),this.$el.append(this.text||"")},setText:function(a){this.rendered?this.$el.empty().append(a):this.text=a},getText:function(){return this.rendered?this.$el.html():this.text||""}}),ui.ComponentManager.registerType("Label",ui.Label),ui.ComponentManager.registerType("Introduction",ui.Label),ui.Mask=Jux.extend(Object,{
spinner:!0,msg:"",spinnerURL:Jux.Cdn.BASE_URI+"assets/spinner2e2d2d.gif",rendered:!1,shown:!1,constructor:function(a,b){if(Jux.isElement(a))this.$targetEl=jQuery(a);else{if(!Jux.isJQuery(a))throw new Error("ui.Mask requires the first argument to its constructor to be an HTMLElement, or a jQuery wrapped set");if(a.length!==1)throw new Error("If the 'targetEl' argument to the ui.Mask constructor is a jQuery wrapped set, it must contain exactly one element.");this.$targetEl=a}this.updateConfig(b)},updateConfig:function(a){delete this.spinner,delete this.msg,Jux.apply(this,a),this.rendered&&this.updateMaskElements()},initMaskElements:function(){if(!this.rendered){var a=this.$targetEl;this.$maskEl=jQuery('<div class="ui-mask" />').click(function(a){a.stopPropagation()}).appendTo(a),this.$contentEl=jQuery('<div class="ui-mask-content" />').append('<img class="ui-mask-content-spinner" src="'+this.spinnerURL+'" />').click(function(a){a.stopPropagation()}).appendTo(a),this.$msgEl=jQuery('<div class="ui-mask-msg" />').appendTo(this.$contentEl),this.rendered=!0,this.updateMaskElements()}},updateMaskElements:function(){this.rendered&&(this.spinner?this.$contentEl.addClass("ui-mask-spinnerEnabled"):this.$contentEl.removeClass("ui-mask-spinnerEnabled"),this.$msgEl.empty(),this.msg?(this.$contentEl.addClass("ui-mask-contentBox"),this.$msgEl.append(this.msg)):this.$contentEl.removeClass("ui-mask-contentBox"))},show:function(){this.initMaskElements();var a=this.$targetEl,b=this.$maskEl,c=this.$contentEl;a.addClass("ui-masked"),a.css("position")==="static"&&!a.is("body")&&a.addClass("ui-masked-relative"),b.show(),b.height(a.outerHeight()),c.show(),this.shown=!0,this.repositionContentEl();var d=setInterval(function(){this.isShown()?this.repositionContentEl():clearInterval(d)}.createDelegate(this),100)},repositionContentEl:function(){this.$contentEl.position({my:"center center",at:"center center",of:this.$targetEl})},hide:function(){this.isShown()&&(this.$maskEl.hide(),this.$contentEl.hide(),this.$targetEl.removeClass("ui-masked").removeClass("ui-masked-relative"),this.shown=!1)},isShown:function(){return this.shown},destroy:function(){this.hide(),this.rendered&&(this.$msgEl.remove(),this.$contentEl.remove(),this.$maskEl.remove())}}),ui.Slider=Jux.extend(ui.Component,[ui.DataControl],{min:0,max:100,step:1,initComponent:function(){this.addEvents("change"),this.cls+=" ui-sliderComponent",this.handlePositions?Jux.isArray(this.handlePositions)||(this.handlePositions=[this.handlePositions]):this.handlePositions=[this.min],ui.Slider.superclass.initComponent.call(this),ui.DataControl.constructor.call(this)},onRender:function(){ui.Slider.superclass.onRender.apply(this,arguments);var a=this.$el,b=jQuery("<div />").appendTo(a);b.slider({min:this.min,max:this.max,step:this.step,values:this.handlePositions,slide:this.onSlideChange.createDelegate(this)}),b.wrapInner('<div class="ui-slider-handleHelper" />'),this.$handleHelper=b.find(".ui-slider-handleHelper"),this.$handles=b.find(".ui-slider-handle"),this.$handles.bind({mousedown:function(){b.width(this.$handleHelper.width())}.createDelegate(this)}),b.bind("slidestop",function(){b.width("100%")}),this.$sliderEl=b,window.setTimeout(function(){this.sizeHandleHelper()}.createDelegate(this),10)},onShow:function(){ui.Slider.superclass.onShow.apply(this,arguments),this.sizeHandleHelper()},sizeHandleHelper:function(){if(!this.destroyed){var a=this.$sliderEl,b=this.$handleHelper,c=this.$handles,d=c.outerWidth();c.css("margin-left",-d/2),b.width("").width(a.innerWidth()-d)}},onSlideChange:function(a,b){this.handlePositions=b.values,this.notifyOfChange()},notifyOfChange:function(){this.fireEvent("change",this,this.getHandlePositions()),this.onDataChange()},setHandlePositions:function(a){Jux.isArray(a)||(a=[a]),this.handlePositions=a,this.rendered&&this.$sliderEl.slider("values",a),this.notifyOfChange()},getHandlePositions:function(){return this.handlePositions},setData:function(){this.setHandlePositions.apply(this,arguments)},getData:function(){return this.getHandlePositions()}}),ui.ComponentManager.registerType("Slider",ui.Slider),ui.ButtonSet=Jux.extend(ui.Component,[ui.DataControl],{buttonSetTpl:'<input type="radio" id="<%=id%>_<%=num%>" name="buttonSet_<%=id%>" value="<%=value%>" title="<%=text%>" <% if( checked ) { %>checked<% } %>><label for="<%=id%>_<%=num%>"><%=text%></label>',initComponent:function(){this.addEvents("change"),this.optionsStore=new ui.utils.OptionsStore(this.options);if(this.optionsStore.getOptions().length===0)throw new Error("Error: The ButtonSet's 'options' was not configured.");typeof this.value=="undefined"?this.value=this.optionsStore.getOptions()[0].value:this.optionsStore.getByValue(this.value)===null&&(this.value=this.optionsStore.getOptions()[0].value),ui.ButtonSet.superclass.initComponent.call(this),ui.DataControl.constructor.call(this)},onRender:function(){ui.ButtonSet.superclass.onRender.apply(this,arguments),this.$el.change(this.onChange.createDelegate(this)),this.redrawOptions()},onChange:function(a){this.fireEvent("change",this,this.getValue()),this.onDataChange()},setOptions:function(a){this.optionsStore.setOptions(a),this.redrawOptions()},getOptions:function(){return this.optionsStore.getOptions()},redrawOptions:function(){if(this.rendered){var a=this.getOptions(),b=this.buttonSetTpl,c=this.$el,d,e;c.buttonset("destroy"),c.empty();var f="";for(d=0,e=a.length;d<e;d++){var g=a[d],h={id:this.id,num:d,text:g.text,value:"radio"+d,checked:g.value===this.value};f+=Jux.Util.tmpl(b,h)}c.append(f);var i=c.find("input");for(d=0,e=i.length;d<e;d++)jQuery(i[d]).data("value",a[d].value);c.buttonset()}},setValue:function(a){if(typeof a=="undefined"||a===null)return;var b=this.optionsStore.getByValue(a);if(b!==null){this.value=a;if(!this.rendered)this.onChange();else{var c=this.$el.find(":radio");c.prop("checked",!1);for(var d=0,e=c.length;d<e;d++){var f=jQuery(c[d]);if(f.data("value")===a){f.prop("checked",!0),f.change();break}}}}},getValue:function(){return this.rendered?this.$el.find(":radio:checked").data("value"):this.value},setData:function(){this.setValue.apply(this,arguments)},getData:function(){return this.getValue()}}),ui.ComponentManager.registerType("ButtonSet",ui.ButtonSet),ui.ColorPicker=Jux.extend(ui.Component,[ui.DataControl],{color:"#0000FF",initComponent:function(){this.addEvents("change"),this.cls+=" ui-colorPicker",this.color&&(this.color=this.normalizeColorValue(this.color)),ui.ColorPicker.superclass.initComponent.call(this),ui.DataControl.constructor.call(this)},onRender:function(){ui.ColorPicker.superclass.onRender.apply(this,arguments);var a=this.$el;this.$selectedColorEl=jQuery('<div class="ui-colorPicker-selectedColor" style="background-color: '+this.color+'" />').appendTo(a),a.ColorPicker({color:this.color,onShow:function(a){return jQuery(a).fadeIn(500),!1},onHide:function(a){return jQuery(a).fadeOut(500),!1},onChange:this.onChange.createDelegate(this)})},onChange:function(a,b,c){this.updateStoredColorValue("#"+b)},normalizeColorValue:function(a){a.charAt(0)!=="#"&&(a="#"+a);if(a.length===4){var b=a.substr(1);a="#";for(var c=0;c<3;c++){var d=b[c].toString();a+=d+d}}return a},updateStoredColorValue:function(a){this.color=a,this.rendered&&this.$selectedColorEl.css("background-color",a),this.fireEvent("change",this,a),this.onDataChange()},setColor:function(a){a=this.normalizeColorValue(a),this.rendered&&this.$el.ColorPickerSetColor(a),this.updateStoredColorValue(a)},getColor:function(){return this.color},onDestroy:function(){this.rendered&&this.$el.ColorPickerDestroy(),ui.ColorPicker.superclass.onDestroy.apply(this,arguments)},setData:function(){this.setColor.apply(this,arguments)},getData:function(){return this.getColor()}}),ui.ComponentManager.registerType("ColorPicker",ui.ColorPicker),ui.anim.Animation=Jux.extend(Jux.util.Observable,{duration:250,easing:"linear",running:!1,complete:!1,constructor:function(a){Jux.apply(this,a),ui.anim.Animation.superclass.constructor.call(this),this.addEvents("beforeanimate","afteranimate");if(!this.target)throw new Error("ui.anim.Animation: Error. No 'target' config provided");this.target instanceof ui.Component?this.$target=jQuery(this.target.getEl()):this.$target=jQuery(this.target),delete this.target;if(!this.to&&!this.effect)throw new Error("ui.anim.Animation: Error. No 'to' or 'effect' config provided")},start:function(){if(!this.running&&!this.complete&&this.fireEvent("beforeanimate",this)!==!1){this.running=!0,this.from&&this.$target.css(this.from);if(this.effect){var a,b;typeof this.effect=="object"?(a=this.effect.type,b=this.effect):(a=this.effect,b={}),this.$target.effect(a,b,this.duration,this.onLastFrame.createDelegate(this))}else this.$target.animate(this.to,{duration:this.duration,easing:this.easing,complete:this.onLastFrame.createDelegate(this)})}},isRunning:function(){return this.running},isComplete:function(){return this.complete},end:function(){this.running&&(this.$target.stop(!1,!0),this.onLastFrame())},onLastFrame:function(){this.running&&(this.running=!1,this.complete=!0,typeof this.callback=="function"&&this.callback.call(this.scope||window,this),this.fireEvent("afteranimate",this),delete this.$target)}}),ui.layouts.AbstractLayout=Jux.extend(Jux.util.Observable,{container:null,constructor:function(a){this.addEvents("destroy"),Jux.apply(this,a),ui.layouts.AbstractLayout.superclass.constructor.call(this),this.initLayout()},initLayout:function(){},setContainer:function(a){this.container=a},getContainer:function(){return this.container},doLayout:function(){var a=this.container,b=this.container.getItems(),c=b.length,d=a.getContentTarget();for(var e=0;e<c;e++)b[e].rendered&&b[e].getEl().detach();this.onLayout(b,d)},onLayout:function(a,b){},destroy:function(){this.onDestroy(),this.fireEvent("destroy",this),this.purgeListeners()},onDestroy:function(){}}),ui.layouts.AccordionLayout=Jux.extend(ui.layouts.AbstractLayout,{activeItem:0,icons:!1,iconPosition:"left",initLayout:function(){this.addEvents("itemchange"),ui.layouts.AccordionLayout.superclass.initLayout.call(this)},onLayout:function(a,b){ui.layouts.AccordionLayout.superclass.onLayout.apply(this,arguments),b.empty().addClass("ui-accordion ui-widget");var c="",d=a.length,e;for(e=0;e<d;e++){var f=a[e].title||"(No title property set on child item)";c+='<h3 class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-top"><a href="#">'+f+"</a></h3>",c+='<div class="ui-accordion-content ui-widget-content ui-helper-reset ui-corner-bottom ui-accordion-content-active" style="display: block;" />'}b.append(c);var g=b.find("div");for(e=0;e<d;e++)a[e].render(g[e]),jQuery(g[e]).css("display","");b.accordion({active:this.activeItem,fillSpace:!0,autoHeight:!1,icons:this.icons,change:this.onActiveItemChange.createDelegate(this)}),this.icons&&(this.iconPosition==="right"?b.addClass("ui-accordion-iconsRight"):b.addClass("ui-accordion-iconsLeft"))},setActiveItem:function(a){a instanceof ui.Component&&(a=this.container.getItemIndex(a)),a=parseInt(a,10),!isNaN(a)&&a!==-1&&(this.container.rendered?this.container.getContentTarget().accordion("activate",a):this.activeItem=a)},getActiveItem:function(){return this.container.rendered?this.container.getItemAt(this.container.getContentTarget().accordion("option","active")):this.container.getItemAt(this.activeItem)},getActiveItemIndex:function(){return this.container.rendered?this.container.getContentTarget().accordion("option","active"):this.activeItem},onActiveItemChange:function(){var a=this.getActiveItem();a.onShow(),this.fireEvent("itemchange",a)}}),ui.Container.registerLayout("accordion",ui.layouts.AccordionLayout),ui.layouts.CardsLayout=Jux.extend(ui.layouts.AbstractLayout,{activeItem:0,initLayout:function(){this.addEvents("cardchange"),this.transition||(this.transition=new ui.layouts.CardsLayout.SwitchTransition),ui.layouts.CardsLayout.superclass.initLayout.call(this)},onLayout:function(a,b){ui.layouts.CardsLayout.superclass.onLayout.apply(this,arguments),typeof this.activeItem=="number"&&(this.activeItem=this.getContainer().getItemAt(this.activeItem));for(var c=0,d=a.length;c<d;c++)a[c].render(b),this.activeItem!==a[c]&&a[c].hide()},setActiveItem:function(a,b){typeof a=="number"?a=this.container.getItemAt(a):a instanceof ui.Component&&!this.container.has(a)&&(a=null);if(!this.getContainer().rendered)this.activeItem=a;else if(!a||this.activeItem!==a||a.isHidden()){var c=this.activeItem;c instanceof ui.Component||(c=null),this.transition.setActiveItem(this,c,a,b),this.activeItem=a,this.fireEvent("cardchange",a)}},getActiveItem:function(){var a=this.activeItem;return a instanceof ui.Component||a===null?a:this.container.getItemAt(a)},getActiveItemIndex:function(){var a=this.activeItem;return a===null?-1:a instanceof ui.Component?this.container.getItemIndex(a):a},onDestroy:function(){this.transition.destroy(),ui.layouts.CardsLayout.superclass.onDestroy.apply(this,arguments)}}),ui.Container.registerLayout("cards",ui.layouts.CardsLayout),ui.layouts.CardsLayout.AbstractTransition=Jux.extend(Object,{setActiveItem:function(a,b,c,d){},destroy:function(){this.onDestroy()},onDestroy:function(){}}),ui.layouts.CardsLayout.SwitchTransition=Jux.extend(ui.layouts.CardsLayout.AbstractTransition,{setActiveItem:function(a,b,c,d){ui.layouts.CardsLayout.SwitchTransition.superclass.setActiveItem.apply(this,arguments),b&&b.hide(),c&&c.show()}}),ui.layouts.CardsLayout.SlideTransition=Jux.extend(ui.layouts.CardsLayout.AbstractTransition,{animRunning:!1,setActiveItem:function(a,b,c,d){ui.layouts.CardsLayout.SlideTransition.superclass.setActiveItem.apply(this,arguments),this.animRunning&&this.endAnimation();if(!b&&c){c.show();return}if(b&&!c){b.hide();return}if(!b&&!c)return;d=d||{},d.direction=d.direction||"right",d.duration=typeof d.duration!="undefined"?d.duration:600,this.$viewportEl||(this.$viewportEl=jQuery('<div style="margin: 0; padding: 0; border: 0; white-space: nowrap;" />'),this.$slideEl=jQuery('<div style="margin: 0; padding: 0; border: 0; white-space: nowrap;" />').appendTo(this.$viewportEl));var e=this.$viewportEl,f=this.$slideEl,g=a.getContainer(),h=g.getEl(),i={height:0,width:0,outerHeight:0,outerWidth:0},j={height:0,width:0,outerHeight:0,outerWidth:0},k=b.getEl();i.height=k.height(),i.width=k.width(),i.outerHeight=k.outerHeight(!0),i.outerWidth=k.outerWidth(!0);var l=c.getEl(),m=l[0].style.position;l.css("position","absolute"),j.height=l.height(),j.width=l.width(),j.outerHeight=l.outerHeight(!0),j.outerWidth=l.outerWidth(!0),l.css("position",m),e.css({height:i.outerHeight+"px",width:i.outerWidth+"px",overflow:"visible"}).appendTo(h),f.css({"margin-left":d.direction==="left"?-j.outerWidth:0}),f.append(k);var n=k[0].style,o={display:n.display,width:n.width,height:n.height,verticalAlign:n.verticalAlign,overflow:n.overflow};k.css("display","inline-block"),k.css({width:i.width+"px",height:i.height+"px","vertical-align":"top",overflow:"visible"}),d.direction==="left"?f.prepend(l):f.append(l),c.show();var p=l[0].style,q={display:p.display,width:p.width,height:p.height,verticalAlign:p.verticalAlign,overflow:p.overflow};l.css("display","inline-block"),l.css({width:j.width,height:j.height,"vertical-align":"top"}),this.animRunning=!0,e.animate({height:j.outerHeight+"px",width:j.outerWidth+"px"},{duration:d.duration,step:function(a,b){b.prop==="width"&&(d.direction==="left"?f.css("margin-left",-j.outerWidth*(1-b.pos)):f.css("margin-left",-i.outerWidth*b.pos)),typeof d.onStep=="function"&&d.onStep.call(d.scope||window,b)},complete:function(){e.detach(),k.appendTo(h),k.css({display:o.display,width:o.width,height:o.height,"vertical-align":o.verticalAlign,overflow:o.overflow}),b.hide(),l.css({display:q.display,width:q.width,height:q.height,"vertical-align":q.verticalAlign,overflow:q.overflow}),l.appendTo(h),this.animRunning=!1,typeof d.onComplete=="function"&&d.onComplete.call(d.scope||window)}.createDelegate(this)})},endAnimation:function(){this.$viewportEl&&(this.$viewportEl.stop(!0,!0),this.animRunning=!1)},onDestroy:function(){this.animRunning&&this.endAnimation(),this.$viewportEl&&(this.$viewportEl.remove(),this.$slideEl.remove()),ui.layouts.CardsLayout.superclass.onDestroy.apply(this,arguments)}}),ui.layouts.ColumnsLayout=Jux.extend(ui.layouts.AbstractLayout,{onLayout:function(a,b){ui.layouts.CardsLayout.superclass.onLayout.apply(this,arguments),b.empty();var c="",d=a.length,e;for(e=0;e<d;e++){var f=a[e].columnWidth;typeof f!="undefined"?String(f).lastIndexOf("%")===-1&&(f+="px"):f="auto",c+='<div style="float: left; width: '+f+'" />'}c+='<div style="clear: both;" />',b.append(c);var g=b.find("div");for(e=0;e<d;e++)a[e].render(g[e])}}),ui.Container.registerLayout("columns",ui.layouts.ColumnsLayout),ui.layouts.ContainerLayout=Jux.extend(ui.layouts.AbstractLayout,{onLayout:function(a,b){ui.layouts.CardsLayout.superclass.onLayout.apply(this,arguments);for(var c=0,d=a.length;c<d;c++)a[c].render(b)}}),ui.Container.registerLayout("container",ui.layouts.ContainerLayout),ui.layouts.TabsLayout=Jux.extend(ui.layouts.AbstractLayout,{activeTab:0,initLayout:function(){ui.layouts.TabsLayout.superclass.initLayout.call(this),this.addEvents("tabchange")},onLayout:function(a,b){ui.layouts.TabsLayout.superclass.onLayout.apply(this,arguments);var c=this.activeTab=this.normalizeTabIndex(this.activeTab);b.empty();var d=this.container,e=d.elId,f=d.height,g=f?f-40-5:0,h=[],i=[],j,k=a.length;h.push("<ul>");for(j=0;j<k;j++){var l=a[j],m=l.title||"(No title property set on child item)",n=j!==c?"ui-tabs-hide":"",o=g>0?"height: "+g+"px; overflow-y: auto;":"",p=e+"-tab-"+j;h.push('<li><a href="#',p,'">',m,"</a></li>"),i.push('<div id="',p,'" class="',n,'" style="',o,'">','<div class="ui-tabs-panel-inner" />',"</div>")}h.push("</ul>");var q=h.concat(i);b.append(q.join(""));var r=b.find("div.ui-tabs-panel-inner");for(j=0;j<k;j++)a[j].render(r[j]);b.tabs({selected:c,show:this.onTabChange.createDelegate(this)})},normalizeTabIndex:function(a){var b=this.container,c=b.getItems().length;return typeof a=="string"&&(a=parseInt(a,10)||-1),c===0?a=-1:typeof a=="number"?(a=Math.floor(a),a<0?a=0:a>c-1&&(a=c-1)):a instanceof ui.Component?(a=b.getItemIndex(a),a===-1&&(a=0)):a=0,a},setActiveTab:function(a){var b=this.container,c=this.activeTab,d=this.activeTab=this.normalizeTabIndex(a);b.rendered?b.getContentTarget().tabs("option","selected",d):this.fireEvent("tabchange",this,b.getItemAt(d),b.getItemAt(c))},getActiveTab:function(){return this.container.getItemAt(this.getActiveTabIndex())},getActiveTabIndex:function(){return this.normalizeTabIndex(this.activeTab)},onTabChange:function(){var a=this.container,b=this.container.getItemAt(this.activeTab),c=this.activeTab=a.getContentTarget().tabs("option","selected"),d=a.getItemAt(c);d.onShow(),this.fireEvent("tabchange",this,d,b)}}),ui.Container.registerLayout("tabs",ui.layouts.TabsLayout),ui.containers.AccordionContainer=Jux.extend(ui.Container,{activeItem:0,initComponent:function(){this.addEvents("itemchange"),this.layout=new ui.layouts.AccordionLayout({activeItem:this.activeItem,icons:this.icons,iconPosition:this.iconPosition,listeners:{itemchange:function(a){this.fireEvent("itemchange",this,a)},scope:this}}),ui.containers.AccordionContainer.superclass.initComponent.call(this)},setActiveItem:function(a){this.getLayout().setActiveItem(a)},getActiveItem:function(){return this.getLayout().getActiveItem()},getActiveItemIndex:function(){return this.getLayout().getActiveItemIndex()}}),ui.ComponentManager.registerType("Accordion",ui.containers.AccordionContainer),ui.containers.CardsContainer=Jux.extend(ui.Container,{activeItem:0,initComponent:function(){this.addEvents("cardchange"),this.layout=new ui.layouts.CardsLayout({activeItem:this.activeItem,listeners:{cardchange:function(a){this.fireEvent("cardchange",this,a)},scope:this}}),ui.containers.CardsContainer.superclass.initComponent.call(this)},setActiveItem:function(a){this.getLayout().setActiveItem(a)},getActiveItem:function(){return this.getLayout().getActiveItem()},getActiveItemIndex:function(){return this.getLayout().getActiveItemIndex()}}),ui.ComponentManager.registerType("Cards",ui.containers.CardsContainer),ui.containers.ColumnsContainer=Jux.extend(ui.Container,{initComponent:function(){this.layout=new ui.layouts.ColumnsLayout,ui.containers.ColumnsContainer.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("Columns",ui.containers.ColumnsContainer),ui.containers.SectionContainer=Jux.extend(ui.Container,{title:"",initComponent:function(){this.cls+=" dialog-section",ui.containers.SectionContainer.superclass.initComponent.call(this)},onRender:function(){ui.containers.SectionContainer.superclass.onRender.apply(this,arguments);var a=jQuery('<div class="dialog-section-inner" />');if(this.title){var b=jQuery('<div class="dialog-section-title">'+this.title+"</div>").prependTo(a);this.titleStyle&&b.css(this.titleStyle)}this.$contentEl=jQuery('<div class="dialog-section-content" />').appendTo(a),a.appendTo(this.$el)},getContentTarget:function(){return this.$contentEl}}),ui.ComponentManager.registerType("Section",ui.containers.SectionContainer),ui.containers.TabsContainer=Jux.extend(ui.Container,{initComponent:function(){this.addEvents("tabchange"),this.layout=new ui.layouts.TabsLayout({activeTab:this.activeTab,listeners:{tabchange:this.onTabChange,scope:this}}),ui.containers.TabsContainer.superclass.initComponent.call(this)},setActiveTab:function(a){this.getLayout().setActiveTab(a)},getActiveTab:function(){this.getLayout().getActiveTab()},getActiveTabIndex:function(){this.getLayout().getActiveTabIndex()},onTabChange:function(a,b,c){this.fireEvent("tabchange",this,b,c)}}),ui.ComponentManager.registerType("Tabs",ui.containers.TabsContainer),ui.formFields.AbstractField=Jux.extend(ui.Component,[ui.DataControl],{label:"",labelPosition:"left",labelWidth:"19%",help:"",initComponent:function(){this.addEvents("change","focus","blur"),this.cls+=" dialog-formField",typeof this.value=="function"&&(this.value=this.value()),this.labelPosition=this.labelPosition.toLowerCase(),this.label===""?this.cls+=" dialog-formField-noLabel":this.cls+=" dialog-formField-"+this.labelPosition+"Label",this.inputId=this.inputId||"ui-cmp-input-"+Jux.newId(),this.inputName=typeof this.inputName!="undefined"?this.inputName:this.inputId,ui.formFields.AbstractField.superclass.initComponent.call(this),ui.DataControl.constructor.call(this)},onRender:function(){ui.formFields.AbstractField.superclass.onRender.apply(this,arguments);var a=this.$el,b=ui.formFields.AbstractField.renderTpl,c="",d="",e="";if(this.label!==""&&this.labelPosition==="left"){var f=parseInt(this.labelWidth,10);c+="width: "+f+"%;",d+="width: "+(100-f)+"%;",e+="padding-left: "+f+"%;"}var g=Jux.Util.tmpl(b,{inputId:this.inputId,label:this.label||"",help:this.help||"",labelWrapStyles:c,inputContainerWrapStyles:d,helpStyles:e});a.append(g),this.$labelEl=a.find("label.dialog-formField-label"),this.$inputContainerEl=a.find("div.dialog-formField-inputContainer"),this.$helpEl=a.find("div.dialog-formField-help")},setLabel:function(a){this.rendered?(a!==""?this.$el.removeClass("dialog-formField-noLabel"):this.$el.addClass("dialog-formField-noLabel"),this.$labelEl.empty().append(a)):this.label=a},setHelp:function(a){this.rendered?this.$helpEl.html(a):this.help=a},getLabelEl:function(){return this.$labelEl},getInputContainerEl:function(){return this.$inputContainerEl},getHelpEl:function(){return this.$helpEl},setValue:function(a){throw new Error("setValue() must be implemented in AbstractField subclass")},getValue:function(){throw new Error("getValue() must be implemented in AbstractField subclass")},onChange:function(a){this.fireEvent("change",this,a),this.lastDataChangeValue!==a&&(this.lastDataChangeValue=a,this.onDataChange())},focus:function(){this.onFocus()},onFocus:function(){this.fireEvent("focus",this)},blur:function(){this.onBlur()},onBlur:function(){this.fireEvent("blur",this)},setData:function(){this.setValue.apply(this,arguments)},getData:function(){return this.getValue()}}),Jux.apply(ui.formFields.AbstractField,{renderTpl:['<div class="dialog-formField-labelWrap" style="<%= labelWrapStyles %>">','<label for="<%= inputId %>" class="dialog-formField-label"><%= label %></label>',"</div>",'<div class="dialog-formField-inputContainerWrap" style="<%= inputContainerWrapStyles %>">','<div class="dialog-formField-inputContainer" style="position: relative;" />',"</div>",'<div class="dialog-formField-help" style="<%= helpStyles %>"><%= help %></div>'].join("")}),ui.formFields.WrappedInputField=Jux.extend(ui.formFields.AbstractField,{onRender:function(a){ui.formFields.WrappedInputField.superclass.onRender.apply(this,arguments),this.$inputContainerEl.addClass("dialog-formField-wrappedInputField")},onFocus:function(){this.$inputContainerEl.addClass("dialog-formField-wrappedInputField-focus"),ui.formFields.WrappedInputField.superclass.onFocus.apply(this,arguments)},onBlur:function(){this.$inputContainerEl.removeClass("dialog-formField-wrappedInputField-focus"),ui.formFields.WrappedInputField.superclass.onBlur.apply(this,arguments)}}),ui.formFields.CheckboxField=Jux.extend(ui.formFields.AbstractField,{checkboxLabel:"",onRender:function(){ui.formFields.CheckboxField.superclass.onRender.apply(this,arguments),this.$inputEl=jQuery('<input type="checkbox" class="checkbox" id="'+this.inputId+'" name="'+this.inputName+'"'+(this.value?" checked":"")+" />").appendTo(this.$inputContainerEl),this.$checkboxLabelEl=jQuery('<label for="'+this.inputId+'" class="dialog-formField-label" />&nbsp;'+(this.checkboxLabel||"")).appendTo(this.$inputContainerEl),this.$inputEl.bind({change:function(){this.onChange(this.getValue())}.createDelegate(this)})},setValue:function(a){this.rendered?this.$inputEl.prop("checked",!!a):this.value=a},getValue:function(){return this.rendered?this.$inputEl.prop("checked"):!!this.value}}),ui.ComponentManager.registerType("Checkbox",ui.formFields.CheckboxField),ui.ComponentManager.registerType("Boolean",ui.formFields.CheckboxField),ui.formFields.TextField=Jux.extend(ui.formFields.WrappedInputField,{selectOnFocus:!1,restoreEmptyText:!0,initComponent:function(){ui.formFields.TextField.superclass.initComponent.call(this),this.addEvents("keydown","keyup","keypress"),this.labelPosition==="infield"?this.behaviorState=new ui.formFields.TextField.InfieldLabelBehavior:this.behaviorState=new ui.formFields.TextField.EmptyTextBehavior,this.value=this.normalizeValue(this.value),this.value===""&&this.emptyText&&(this.value=this.emptyText)},onRender:function(a){ui.formFields.TextField.superclass.onRender.apply(this,arguments),this.$inputEl=this.createInputEl().appendTo(this.$inputContainerEl),this.$inputEl.bind({change:function(a){this.onChange(this.getValue())}.createDelegate(this),focus:this.onFocus.createDelegate(this),blur:this.onBlur.createDelegate(this),keydown:this.onKeyDown.createDelegate(this),keyup:this.onKeyUp.createDelegate(this),keypress:this.onKeyPress.createDelegate(this)}),this.behaviorState.onRender(this)},createInputEl:function(){var a=this.value?Jux.Util.Html.encode(this.value):"";return jQuery('<input type="text" class="text" id="'+this.inputId+'" name="'+this.inputName+'" value="'+a+'" />')},getInputEl:function(){return this.$inputEl||null},normalizeValue:function(a){return typeof a=="undefined"||a===null?"":typeof a!="string"?a.toString():a},setValue:function(a){a=this.normalizeValue(a),this.rendered?(this.$inputEl.val(a),this.behaviorState.onSetValue(this,a)):this.value=a,this.onChange(a)},getValue:function(){return this.rendered?this.$inputEl.val():this.value},setEmptyText:function(a){this.emptyText=a},getEmptyText:function(){return this.emptyText},select:function(){this.$inputEl.select()},onChange:function(){this.behaviorState.onChange(this),ui.formFields.TextField.superclass.onChange.apply(this,arguments)},focus:function(){this.$inputEl.focus(),ui.formFields.TextField.superclass.focus.apply(this,arguments)},blur:function(){this.$inputEl.blur(),ui.formFields.TextField.superclass.blur.apply(this,arguments)},onFocus:function(){this.behaviorState.onFocus(this),this.selectOnFocus&&this.select(),ui.formFields.TextField.superclass.onFocus.apply(this,arguments)},onBlur:function(){this.behaviorState.onBlur(this),ui.formFields.TextField.superclass.onBlur.apply(this,arguments)},onKeyDown:function(a){this.behaviorState.onKeyDown(this,a),this.fireEvent("keydown",this,a)},onKeyUp:function(a){this.behaviorState.onKeyUp(this,a),this.fireEvent("keyup",this,a);var b=this.getValue();this.lastDataChangeValue!==b&&(this.lastDataChangeValue=b,this.onDataChange())},onKeyPress:function(a){this.behaviorState.onKeyPress(this,a),this.fireEvent("keypress",this,a)}}),ui.ComponentManager.registerType("Text",ui.formFields.TextField),ui.formFields.TextField.AbstractBehavior=Jux.extend(Object,{onRender:Jux.emptyFn,onSetValue:Jux.emptyFn,onChange:Jux.emptyFn,onFocus:Jux.emptyFn,onBlur:Jux.emptyFn,onKeyDown:Jux.emptyFn,onKeyUp:Jux.emptyFn,onKeyPress:Jux.emptyFn}),ui.formFields.TextField.EmptyTextBehavior=Jux.extend(ui.formFields.TextField.AbstractBehavior,{emptyTextCls:"ui-hint-text",onSetValue:function(a,b){b===a.getEmptyText()?a.getInputEl().addClass(this.emptyTextCls):a.getInputEl().removeClass(this.emptyTextCls)},onFocus:function(a){a.getInputEl().removeClass(this.emptyTextCls),a.getValue()===a.getEmptyText()&&a.setValue("")},onBlur:function(a){a.restoreEmptyText&&a.getValue()===""&&a.setValue(a.getEmptyText()||"")}}),ui.formFields.TextField.InfieldLabelBehavior=Jux.extend(ui.formFields.TextField.AbstractBehavior,{fadeOpacity:.5,fadeDuration:300,labelShown:!0,onRender:function(a){a.getInputContainerEl().append(a.getLabelEl()),a.getInputEl().attr("autocomplete","false"),this.checkForEmpty(a)},onSetValue:function(a,b){a.rendered&&this.checkForEmpty(a)},onChange:function(a){a.rendered&&this.checkForEmpty(a)},onFocus:function(a){a.rendered&&this.labelShown&&this.setLabelOpacity(a.getLabelEl(),this.fadeOpacity)},onBlur:function(a){a.rendered&&this.checkForEmpty(a)},onKeyDown:function(a,b){if(a.rendered){if(b.keyCode===16||b.keyCode===9)return;this.labelShown&&(a.getLabelEl().hide(),this.labelShown=!1)}},setLabelOpacity:function(a,b){a.stop().animate({opacity:b},this.fadeDuration),this.labelShown=b>0},prepLabelForShow:function(a){this.labelShown||a.css({opacity:0}).show()},checkForEmpty:function(a){var b=a.getLabelEl();a.getValue()===""?(this.prepLabelForShow(b),this.setLabelOpacity(b,1)):this.setLabelOpacity(b,0)}}),ui.formFields.LinkTextField=Jux.extend(ui.formFields.TextField,{initComponent:function(){this.cls+=" linkTextField",this.linkPickerOverlay=new ui.components.LinkPickerOverlay,ui.formFields.LinkTextField.superclass.initComponent.call(this)},onRender:function(a){ui.formFields.LinkTextField.superclass.onRender.apply(this,arguments),this.linkPickerOverlay.setAnchor({element:this.$inputEl,offset:"0 10"}),this.$linkButton=jQuery('<button class="linkTextField-linkButton">Link</button>').button(),this.$linkButton.appendTo(this.$inputContainerEl),this.$linkButton.bind({click:function(){this.linkPickerOverlay.open()}.createDelegate(this)})},setValue:function(a){typeof a=="string"&&(a={text:a});if(!this.rendered)this.value=a;else{var b=a||{},c=b.text||"";this.$inputEl.val(c);var d=this.getDefaultValue();typeof d=="object"&&c===d.text?this.$inputEl.addClass("ui-hint-text"):this.$inputEl.removeClass("ui-hint-text"),this.linkPickerOverlay.setState({url:b.url,pageid:b.pageid})}},getValue:function(){var a={};if(!this.rendered)Jux.apply(a,typeof this.value=="string"?{text:this.value}:this.value);else{var b=this.linkPickerOverlay.getState();a.url=b.url,a.pageid=b.pageid,a.target=b.target,a.text=this.$inputEl.val()}return a},onDestroy:function(){this.linkPickerOverlay.destroy(),ui.formFields.LinkTextField.superclass.onDestroy.apply(this,arguments)}}),ui.ComponentManager.registerType("Link",ui.formFields.LinkTextField),ui.ComponentManager.registerType("LinkTextField",ui.formFields.LinkTextField),ui.formFields.TextAreaField=Jux.extend(ui.formFields.TextField,{autoGrow:!1,autoGrowMimicStyles:["paddingTop","paddingRight","paddingBottom","paddingLeft","fontSize","lineHeight","fontFamily","width","fontWeight"],onRender:function(){ui.formFields.TextAreaField.superclass.onRender.apply(this,arguments);if(this.autoGrow){var a=this.autoGrowMimicStyles,b=this.$inputEl,c=jQuery("<div />").css({position:"absolute",display:"none","word-wrap":"break-word"}),d=parseInt(b.css("line-height"),10)||parseInt(b.css("font-size"),10),e=parseInt(b.css("height"),10)||d*3,f=parseInt(b.css("max-height"),10)||Number.MAX_VALUE;f<0&&(f=Number.MAX_VALUE),b.css("resize","none"),this.autoGrowComputedStyles={lineHeight:d,minHeight:e,maxHeight:f},c.appendTo(b.parent());var g=a.length;while(g--)c.css(a[g],b.css(a[g]));b.css("minHeight"
,e),b.css("overflow","hidden"),b.bind("cut paste",function(){this.updateAutoGrowHeight()}.createDelegate(this)),this.autoGrowPasteHandler=function(){this.updateAutoGrowHeight.defer(250,this)}.createDelegate(this),b.live("input",this.autoGrowPasteHandler),b.live("paste",this.autoGrowPasteHandler),this.$autoGrowTwinDiv=c,this.updateAutoGrowHeight()}},createInputEl:function(){return jQuery('<textarea id="'+this.inputId+'" name="'+this.inputName+'">'+(this.value||"")+"</textarea>")},setHeightAndOverflow:function(a,b){var c=this.$inputEl,d=Math.floor(parseInt(a,10));c.height()!=d&&c.css({height:d+"px",overflow:b})},updateAutoGrowHeight:function(){if(this.rendered){var a=this.$inputEl,b=this.$autoGrowTwinDiv,c=this.autoGrowComputedStyles,d=a.val().replace(/&/g,"&amp;").replace(/ {2}/g,"&nbsp;").replace(/<|>/g,"&gt;").replace(/\n/g,"<br />"),e=b.html().replace(/<br>/ig,"<br />");if(d+"&nbsp;"!=e){b.html(d+"&nbsp;");if(Math.abs(b.height()+c.lineHeight-a.height())>3){var f=b.height()+c.lineHeight;f>=c.maxHeight?this.setHeightAndOverflow(c.maxHeight,"auto"):f<=c.minHeight?this.setHeightAndOverflow(c.minHeight,"hidden"):this.setHeightAndOverflow(f,"hidden")}}}},setValue:function(){ui.formFields.TextAreaField.superclass.setValue.apply(this,arguments),this.autoGrow&&this.updateAutoGrowHeight()},onChange:function(){ui.formFields.TextAreaField.superclass.onChange.apply(this,arguments),this.autoGrow&&this.updateAutoGrowHeight()},onKeyUp:function(a){ui.formFields.TextAreaField.superclass.onKeyUp.apply(this,arguments),this.autoGrow&&this.updateAutoGrowHeight()},onBlur:function(){ui.formFields.TextAreaField.superclass.onBlur.apply(this,arguments);if(this.autoGrow){var a=this.$inputEl,b=this.$autoGrowTwinDiv,c=this.autoGrowComputedStyles;b.height()<c.maxHeight&&(b.height()>c.minHeight?a.height(b.height()):a.height(c.minHeight))}},onDestroy:function(){if(this.autoGrow&&this.rendered){var a=this.$inputEl;a.die("input",this.autoGrowPasteHandler),a.die("paste",this.autoGrowPasteHandler),this.$autoGrowTwinDiv.remove()}ui.formFields.TextAreaField.superclass.onDestroy.apply(this,arguments)}}),ui.ComponentManager.registerType("TextArea",ui.formFields.TextAreaField),ui.formFields.HiddenField=Jux.extend(ui.formFields.AbstractField,{initComponent:function(){this.label="",this.help="",this.hidden=!0,ui.formFields.HiddenField.superclass.initComponent.call(this)},onRender:function(a){ui.formFields.HiddenField.superclass.onRender.apply(this,arguments),this.$inputEl=jQuery('<input type="hidden" id="'+this.inputId+'" name="'+this.inputName+'" value="'+(this.value||"")+'" />').appendTo(this.$inputContainerEl)},setValue:function(a){this.rendered?this.$inputEl.val(a):this.value=a},getValue:function(){return this.rendered?this.$inputEl.val():this.value}}),ui.ComponentManager.registerType("Hidden",ui.formFields.HiddenField),ui.formFields.DateField=Jux.extend(ui.formFields.TextField,{initComponent:function(){ui.formFields.DateField.superclass.initComponent.apply(this,arguments),this.emptyText=this.handleDateValue(this.emptyText),this.value=this.handleDateValue(this.value)},onRender:function(a){ui.formFields.DateField.superclass.onRender.apply(this,arguments),this.$inputEl.datepicker({dateFormat:"mm/dd/yy"})},setValue:function(a){a=this.handleDateValue(a),ui.formFields.DateField.superclass.setValue.call(this,a)},setEmptyText:function(a){a=this.handleDateValue(a),ui.formFields.DateField.superclass.setEmptyText.call(this,a)},handleDateValue:function(a){return a==="now"?jQuery.datepicker.formatDate("mm/dd/yy",new Date):a},onDestroy:function(){this.rendered&&this.$inputEl.datepicker("destroy"),ui.formFields.DateField.superclass.onDestroy.apply(this,arguments)}}),ui.ComponentManager.registerType("Date",ui.formFields.DateField),ui.formFields.DateTimeField=Jux.extend(ui.formFields.TextField,{initComponent:function(){ui.formFields.DateTimeField.superclass.initComponent.apply(this,arguments),this.emptyText=this.handleDateValue(this.emptyText),this.value=this.handleDateValue(this.value)},onRender:function(a){ui.formFields.DateTimeField.superclass.onRender.apply(this,arguments),this.$inputEl.datetimeEntry({datetimeFormat:"Y/O/D H:M"})},setValue:function(a){a=this.handleDateValue(a),ui.formFields.DateTimeField.superclass.setValue.call(this,a)},setEmptyText:function(a){a=this.handleDateValue(a),ui.formFields.DateTimeField.superclass.setEmptyText.call(this,a)},handleDateValue:function(a){return a==="now"?new Date:a},onDestroy:function(){this.rendered&&this.$inputEl.datetimeEntry("destroy"),ui.formFields.DateTimeField.superclass.onDestroy.apply(this,arguments)}}),ui.ComponentManager.registerType("DateTime",ui.formFields.DateTimeField),ui.formFields.RadioField=Jux.extend(ui.formFields.AbstractField,{stacked:!1,radioTpl:['<input type="radio" id="<%= name %>-<%= num %>" name="<%= name %>" class="radio" value="<%= inputValue %>" <% if( checked ) { %>checked<% } %>>','<label for="<%= name %>-<%= num %>" ><%= text %></label>'].join(""),initComponent:function(){this.optionsStore=new ui.utils.OptionsStore(this.options);if(this.optionsStore.getOptions().length===0)throw new Error("Error: The ButtonSet's 'options' was not configured.");typeof this.value=="undefined"?this.value=this.optionsStore.getOptions()[0].value:this.optionsStore.getByValue(this.value)===null&&(this.value=this.optionsStore.getOptions()[0].value),ui.formFields.RadioField.superclass.initComponent.call(this);if(!this.inputName)throw new Error("Error: RadioField must have a valid inputName. Make sure that the inputName and inputId configs have not been set to an empty string or other falsy value.")},onRender:function(a){ui.formFields.RadioField.superclass.onRender.apply(this,arguments);var b=this.optionsStore.getOptions(),c=this.radioTpl,d=this.inputName,e=this.$inputContainerEl,f=this.stacked,g=this.value,h="";for(var i=0,j=b.length;i<j;i++){var k=b[i];h+=Jux.Util.tmpl(c,{name:d,num:i,inputValue:k.value,text:k.text,checked:g===k.value})+(f?"<br />":"")}e.append(h),e.bind({change:function(){this.onChange(this.getValue())}.createDelegate(this)})},setValue:function(a){var b=this.optionsStore.getByValue(a);b!==null&&(this.rendered?this.$inputContainerEl.find(":radio[value="+a+"]").prop("checked",!0):this.value=a)},getValue:function(){return this.rendered?this.$inputContainerEl.find(":radio:checked").val():this.value}}),ui.ComponentManager.registerType("Radio",ui.formFields.RadioField),ui.formFields.DropdownField=Jux.extend(ui.formFields.WrappedInputField,{menuCls:"",menuCollisionStrategy:"flip",optionsMenuOpen:!1,initComponent:function(){ui.formFields.DropdownField.superclass.initComponent.call(this),this.optionsStore=new ui.utils.OptionsStore(this.options);if(this.optionsStore.getOptions().length===0)throw new Error("Error: 'options' not provided to DropdownField configuration, or a generating 'options' function didn't return any options.");this.initValue()},initValue:function(){typeof this.value=="undefined"?this.value=this.optionsStore.getOptions()[0].value:this.optionsStore.getByValue(this.value)===null&&(this.value=this.optionsStore.getOptions()[0].value)},onRender:function(a){ui.formFields.DropdownField.superclass.onRender.apply(this,arguments);var b=this.$inputContainerEl,c=ui.formFields.DropdownField.dropdownRenderTpl,d=this.getValue(),e=this.optionsStore.getByValue(d),f=Jux.Util.tmpl(c,{inputName:this.inputName,initialValue:d,optionText:e.text,optionClass:e.cls?e.cls:"",optionStyles:e.style?Jux.CSS.hashToString(e.style):""});b.append(f),this.$inputEl=b.find('input[name="'+this.inputName+'"]'),this.$dropdownContainer=b.find("div.ui-dropdownField"),this.$selectText=this.$dropdownContainer.find("div.ui-dropdownField-selectText"),this.$openButton=this.$dropdownContainer.find("div.ui-dropdownField-openButton"),this.$selectText.click(this.onDropdownClick.createDelegate(this)),this.$openButton.click(this.onDropdownClick.createDelegate(this)),this.$optionsMenu=jQuery('<ul class="ui-dropdownField-menu '+this.menuCls+'" />').hide().appendTo(document.body),this.redrawOptions(),this.documentClickHandler=this.onDocumentClick.createDelegate(this),jQuery(document).bind("mousedown",this.documentClickHandler)},onDocumentClick:function(a){if(this.optionsMenuOpen){var b=jQuery(a.target).parents().andSelf(),c=this.$dropdownContainer[0],d=this.$optionsMenu[0],e=!1;for(var f=0,g=b.length;f<g;f++)if(b[f]===c||b[f]===d){e=!0;break}e||this.hideOptionsMenu()}},onDropdownClick:function(a){a.preventDefault(),this.toggleOptionsMenu();var b=this.$optionsMenu,c=jQuery("a.selected",b).offset().top-b.offset().top;b.animate({scrollTop:c})},onOptionClick:function(a){a.preventDefault();var b=jQuery(a.target),c=this.getValue(),d=b.data("value");c!==d&&(this.setValue(d),this.onChange(this.getValue())),this.hideOptionsMenu()},setOptions:function(a){this.optionsStore.setOptions(a),this.redrawOptions()},getOptions:function(){return this.optionsStore.getOptions()},redrawOptions:function(){if(this.rendered){var a=this.getOptions(),b=a.length,c=this.$optionsMenu,d=ui.formFields.DropdownField.optionsMenuRenderTpl,e=this.getValue(),f,g;c.empty();var h="";for(f=0;f<b;f++)g=a[f],h+=Jux.Util.tmpl(d,{anchorClass:(g.cls||"")+(g.value===e?" selected":""),anchorStyle:g.style?Jux.CSS.hashToString(g.style):"",text:g.text});c.append(h);var i=c.find("a");for(f=0;f<b;f++)jQuery(i[f]).data("value",a[f].value);c.find("a").click(this.onOptionClick.createDelegate(this))}},showOptionsMenu:function(){this.optionsMenuOpen=!0,this.$optionsMenu.show(),this.$optionsMenu.width(this.$selectText.width()),this.$optionsMenu.position({my:"left top",at:"left bottom",of:this.$selectText,collision:this.menuCollisionStrategy})},hideOptionsMenu:function(a){this.optionsMenuOpen=!1,this.$optionsMenu.hide()},toggleOptionsMenu:function(){this.optionsMenuOpen?this.hideOptionsMenu():this.showOptionsMenu()},setValue:function(a){if(typeof a=="undefined"||a===null)return;var b=this.optionsStore.getByValue(a);if(b!==null){this.value=a;if(this.rendered){var c=jQuery('<div class="'+b.cls+'" style="'+(b.style?Jux.CSS.hashToString(b.style):"")+'">'+b.text+"</div>");this.$selectText.empty().append(c);var d=this.$optionsMenu;d.find("a.selected").removeClass("selected");var e=d.find("a");for(var f=0,g=e.length;f<g;f++){var h=jQuery(e[f]);if(h.data("value")===a){h.addClass("selected");break}}this.$inputEl.val(a)}}},getValue:function(){return this.value},setText:function(a){var b=this.optionsStore.getByText(a);b&&this.setValue(b.value)},getText:function(){var a=this.optionsStore.getByValue(this.getValue());return a.text},onDestroy:function(){this.rendered&&(jQuery(document).unbind("mousedown",this.documentClickHandler),this.$optionsMenu.remove()),ui.formFields.DropdownField.superclass.onDestroy.call(this)}}),Jux.apply(ui.formFields.DropdownField,{dropdownRenderTpl:['<input type="hidden" name="<%= inputName %>" value="<%= initialValue %>" />','<div class="ui-dropdownField">','<div class="ui-dropdownField-selectText">','<div class="<%= optionClass %>" style="<%= optionStyles %>"><%= optionText %></div>',"</div>",'<div class="ui-dropdownField-openButton" />',"</div>"].join(" "),optionsMenuRenderTpl:["<li>",'<a href="#" class="<%= anchorClass %>" style="<%= anchorStyle %>"><%= text %></a>',"</li>"].join(" ")}),ui.ComponentManager.registerType("Dropdown",ui.formFields.DropdownField),ui.toolButtons.ToolButton=Jux.extend(ui.Button,{size:"large",initComponent:function(){this.cls+=" ui-toolButton ui-toolButton-"+this.size,ui.toolButtons.ToolButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("ToolButton",ui.toolButtons.ToolButton),ui.toolButtons.CloseButton=Jux.extend(ui.toolButtons.ToolButton,{tooltip:"Close",initComponent:function(){this.size==="tiny"?this.primaryIcon="jux-icon-x-dkgray-sm":this.size==="small"?this.primaryIcon="ui-icon-delete":this.primaryIcon="jux-icon-close",ui.toolButtons.CloseButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("CloseButton",ui.toolButtons.CloseButton),ui.toolButtons.EditButton=Jux.extend(ui.toolButtons.ToolButton,{tooltip:"Edit",initComponent:function(){this.size==="small"?this.primaryIcon="ui-icon-pencil":this.primaryIcon="ui-icon-pencil-lg",ui.toolButtons.EditButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("EditButton",ui.toolButtons.EditButton),ui.toolButtons.HideButton=Jux.extend(ui.toolButtons.ToolButton,{buttonState:"visible",visibleTooltip:"Hide",hiddenTooltip:"Show",initComponent:function(){if(this.buttonState!=="visible"&&this.buttonState!=="hidden")throw new Error("Invalid buttonState config. Must be either 'visible' or 'hidden'.");this.size==="small"?(this.visibleIconCls="ui-icon-eyeopen",this.hiddenIconCls="ui-icon-eyeclosed"):(this.visibleIconCls="jux-icon-show-lg",this.hiddenIconCls="jux-icon-hide-lg"),this.buttonState==="visible"?(this.primaryIcon=this.visibleIconCls,this.tooltip=this.visibleTooltip):(this.primaryIcon=this.hiddenIconCls,this.tooltip=this.hiddenTooltip),ui.toolButtons.HideButton.superclass.initComponent.call(this)},onClick:function(){this.toggleButtonState(),ui.toolButtons.HideButton.superclass.onClick.apply(this,arguments)},toggleButtonState:function(){this.buttonState==="visible"?this.setButtonState("hidden"):this.setButtonState("visible")},setButtonState:function(a){if(a!=="visible"&&a!=="hidden")throw new Error("Invalid buttonState argument. Must be either 'visible' or 'hidden'.");this.buttonState=a,a==="visible"?(this.$el.button("option","icons",{primary:this.visibleIconCls,secondary:null}),this.$el.attr("title",this.visibleTooltip)):(this.$el.button("option","icons",{primary:this.hiddenIconCls,secondary:null}),this.$el.attr("title",this.hiddenTooltip))},getButtonState:function(){return this.buttonState}}),ui.ComponentManager.registerType("HideButton",ui.toolButtons.HideButton),ui.toolButtons.DeleteButton=Jux.extend(ui.toolButtons.ToolButton,{tooltip:"Delete",initComponent:function(){this.size==="tiny"?this.primaryIcon="jux-icon-x-ltgray-sm":this.size==="small"?this.primaryIcon="ui-icon-delete":this.primaryIcon="jux-icon-x-circle-lg",ui.toolButtons.DeleteButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("DeleteButton",ui.toolButtons.DeleteButton),ui.toolButtons.UpButton=Jux.extend(ui.toolButtons.ToolButton,{tooltip:"Move Up",initComponent:function(){this.size==="small"?this.primaryIcon="ui-icon-arrowthick-1-n":this.primaryIcon="jux-icon-arrow-circle-n-lg",ui.toolButtons.UpButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("UpButton",ui.toolButtons.UpButton),ui.toolButtons.DownButton=Jux.extend(ui.toolButtons.ToolButton,{tooltip:"Move Down",initComponent:function(){this.size==="small"?this.primaryIcon="ui-icon-arrowthick-1-s":this.primaryIcon="jux-icon-arrow-circle-s-lg",ui.toolButtons.DownButton.superclass.initComponent.call(this)}}),ui.ComponentManager.registerType("DownButton",ui.toolButtons.DownButton),ui.plugins.AbstractPlugin=Jux.extend(Jux.util.Observable,{constructor:function(a){Jux.apply(this,a),ui.plugins.AbstractPlugin.superclass.constructor.call(this)},initPlugin:function(a){}}),ui.plugins.DragAndDropSort=Jux.extend(ui.plugins.AbstractPlugin,{itemsSelector:"> *",draggedItem:null,initPlugin:function(a){if(a instanceof ui.Container)this.container=a,a.onRender=a.onRender.createSequence(this.onRender,this);else throw new Error("error: DragAndDropSort plugin can only be added as a plugin to a ui.Container, or ui.Container subclass")},onRender:function(){var a=this.container,b=a.getContentTarget();b.addClass("juxUI-draggable"),b.sortable({containment:"parent",tolerance:"pointer",items:this.itemsSelector,start:function(c,d){var e=b.children().index(d.item);this.draggedItem=a.getItems()[e]}.createDelegate(this),beforeStop:function(c,d){var e=b.children().index(d.item);a.insert(this.draggedItem,e),this.draggedItem=null}.createDelegate(this)})}}),ui.utils.OptionsStore=Jux.extend(Object,{constructor:function(a){this.setOptions(a||[])},setOptions:function(a){typeof a=="function"&&(a=a());var b=[];if(Jux.isObject(a))for(var c in a)a.hasOwnProperty(c)&&b.push({text:c,value:a[c]});else for(var d=0,e=a.length;d<e;d++){var f=a[d],g={};if(typeof f=="object"){g.value=typeof f.value!="undefined"?f.value:f.text,g.text=f.text;for(var h in f)h!=="text"&&h!=="value"&&f.hasOwnProperty(h)&&(g[h]=f[h])}else g.value=f,g.text=f;b.push(g)}this.options=b},getOptions:function(){return this.options},getAtIndex:function(a){return this.options[a]||null},getByValue:function(a){var b=this.options;for(var c=0,d=b.length;c<d;c++)if(b[c].value===a)return b[c];return null},getByText:function(a){var b=this.options;for(var c=0,d=b.length;c<d;c++)if(b[c].text===a)return b[c];return null}})
