[fusion-commits] r1509 - in sandbox/jx2: jx/lib widgets

svn_fusion at osgeo.org svn_fusion at osgeo.org
Tue Sep 9 17:17:25 EDT 2008


Author: pagameba
Date: 2008-09-09 17:17:25 -0400 (Tue, 09 Sep 2008)
New Revision: 1509

Added:
   sandbox/jx2/jx/lib/jxskin_crispin.css
Modified:
   sandbox/jx2/jx/lib/jxlib.js
   sandbox/jx2/jx/lib/jxlib.uncompressed.js
   sandbox/jx2/jx/lib/jxskin_delicious.css
   sandbox/jx2/widgets/Navigator.js
Log:
update jx components and skins, update navigator so it drags and slides (only partially complete).

Modified: sandbox/jx2/jx/lib/jxlib.js
===================================================================
--- sandbox/jx2/jx/lib/jxlib.js	2008-09-09 20:52:42 UTC (rev 1508)
+++ sandbox/jx2/jx/lib/jxlib.js	2008-09-09 21:17:25 UTC (rev 1509)
@@ -27,4 +27,4 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  *****************************************************************************/
-var MooTools={version:"1.2dev",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype}C.prototype.constructor=C;if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D)}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N}if(G){Native.genericize(M,K,B)}F.call(M,K,N);return M};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N)}for(var M in L){I(this,M,L[M],K)}return this};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];if(M){I(this,K,M,N)}}else{for(var L in M){this.alias(L,M[L],K)}}return this};return C};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C)}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D)}}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B)}}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F)}};(function(B){for(var A in B){Native.typize(B[A],A)}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true})}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true)}return arguments.callee})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);function $chk(A){return !!(A||A===0)}function $clear(A){clearTimeout(A);clearInterval(A);return null}function $defined(A){return(A!=undefined)}function $empty(){}function $arguments(A){return function(){return arguments[A]}}function $lambda(A){return(typeof A=="function")?A:function(){return A}}function $extend(C,A){for(var B in (A||{})){C[B]=A[B]}return C}function $unlink(C){var B;switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E])}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;D<A;D++){B[D]=$unlink(C[D])}break;default:return C}return B}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G)}}return E}function $pick(){for(var B=0,A=arguments.length;B<A;B++){if(arguments[B]!=undefined){return arguments[B]}}return null}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B)}function $splat(B){var A=$type(B);return(A)?((A!="array"&&A!="arguments")?[B]:B):[]}var $time=Date.now||function(){return new Date().getTime()};function $try(){for(var B=0,A=arguments.length;B<A;B++){try{return arguments[B]()}catch(C){}}return null}function $type(A){if(A==undefined){return false}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace"}}else{if(typeof A.length=="number"){if(A.callee){return"arguments"}else{if(A.item){return"collection"}}}}return typeof A}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean())}for(var B in A){this[B]=A[B]}return this}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++}}return B},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this)}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A]}}return B}});Hash.alias("forEach","each");function $H(A){return new Hash(A)}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this)}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B]}return D}return Array.prototype.slice.call(C)}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D)}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925}}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4}}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419}}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18}}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod"}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP")})};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)}})();function $exec(B){if(!B){return B}if(window.execScript){window.execScript(B)}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");A.text=B;document.head.appendChild(A);document.head.removeChild(A)}return B}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0]}:function(A){return A.uid||(A.uid=Native.UID++)};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe")}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{}}return $extend(A,Window.Prototype)},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A}});Window.Prototype={$family:{name:"window"}};new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true)})}return $extend(A,Document.Prototype)},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A}});Document.Prototype={$family:{name:"document"}};new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false}}return true},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B])}}return C},clean:function(){return this.filter($defined)},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B}}return -1},map:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this)}return C},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true}}return false},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A]}return D},link:function(C){var A={};for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break}}}return A},contains:function(A,B){return this.indexOf(A,B)!=-1},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B])}return this},getLast:function(){return(this.length)?this[this.length-1]:null},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null},include:function(A){if(!this.contains(A)){this.push(A)}return this},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B])}return this},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1)}}return this},empty:function(){this.length=0;return this},flatten:function(){var D=[];for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B])}return D},hexToRgb:function(B){if(this.length!=3){return null}var A=this.map(function(C){if(C.length==1){C+=C}return C.toInt(16)});return(B)?A:"rgb("+A+")"},rgbToHex:function(D){if(this.length<3){return null}if(this.length==4&&this[3]==0&&!D){return"transparent"}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C)}return(D)?B:"#"+B.join("")}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B]}return this},create:function(B){var A=this;B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C)}var E=function(){return A.apply(B.bind||null,C)};if(B.delay){return setTimeout(E,B.delay)}if(B.periodical){return setInterval(E,B.periodical)}if(B.attempt){return $try(E)}return E()}},pass:function(A,B){return this.create({arguments:A,bind:B})},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})()},bind:function(B,A){return this.create({bind:B,arguments:A})},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A})},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})()},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})()},run:function(A,B){return this.apply(B,$splat(A))}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this))},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this)}},toFloat:function(){return parseFloat(this)},toInt:function(A){return parseInt(this,A||10)}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)))}}});Number.implement(A)})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this)},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s+/g," ").trim()},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(A){return parseInt(this,A||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(A)?A.slice(1).hexToRgb(B):null},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null},stripScripts:function(B){var A="";var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return""});if(B===true){$exec(A)}else{if($type(B)=="function"){B(A,C)}}return C},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1)}return(A[C]!=undefined)?A[C]:""})}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A}}return null},hasValue:function(A){return(Hash.keyOf(this,A)!==null)},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C)},this);return this},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C)},this);return this},erase:function(A){if(this.hasOwnProperty(A)){delete this[A]}return this},get:function(A){return(this.hasOwnProperty(A))?this[A]:null},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B}return this},empty:function(){Hash.each(this,function(B,A){delete this[A]},this);return this},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C}return this},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this))},this);return A},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E)}},this);return A},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false}}return true},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true}}return false},getKeys:function(){var A=[];Hash.each(this,function(C,B){A.push(B)});return A},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B)});return A},toQueryString:function(A){var B=[];Hash.each(this,function(F,E){if(A){E=A+"["+E+"]"}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F)}if(F!=undefined){B.push(D)}});return B.join("&")}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A}this.$extended=true;var J=A.type;var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;if(D>0&&D<13){M="f"+D}}M=M||String.fromCharCode(B).toLowerCase()}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;break;case"mouseout":L=A.relatedTarget||A.toElement}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode}return true}).create({attempt:Browser.Engine.gecko})()){L=false}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey})}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D])}for(var F in Class.Mutators){if(!this[F]){continue}Class.Mutators[F](this,this[F]);delete this[F]}this.constructor=A;if(E===$empty){return this}var C=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this)}return C};$extend(A,this);A.constructor=Class;A.prototype=B;return A}});Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C)})},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];if(current==undefined){self[key]=previous;continue}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ")})+")")}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current)}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments)};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1))}}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);return this},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false},clearChain:function(){if(this.$chain){this.$chain.empty()}return this}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];this.$events[C].include(B);if(A){B.internal=true}}return this},addEvents:function(A){for(var B in A){this.addEvent(B,A[B])}return this},fireEvent:function(C,B,A){C=Events.removeOn(C);if(!this.$events||!this.$events[C]){return this}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})()},this);return this},removeEvent:function(B,A){B=Events.removeOn(B);if(!this.$events||!this.$events[B]){return this}if(!A.internal){this.$events[B].erase(A)}return this},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A])}}return this}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase()})};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue}this.addEvent(A,this.options[A]);delete this.options[A]}return this}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return }A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C]}});A="<"+A+">"}return $.element(this.createElement(A)).set(B)},newTextNode:function(A){return this.createTextNode(A)},getDocument:function(){return this},getWindow:function(){return this.defaultView||this.parentWindow},purge:function(){var C=this.getElementsByTagName("*");for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B])}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);if(C){return C(B)}if(typeof A=="string"){return document.newElement(A,B)}return $(A).set(B)},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A))}Element.Prototype[A]=B}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);var A=function(){var F=$try(function(){return B.contentWindow.location.host});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);$extend(H.Element.prototype,Element.Prototype)}D.call(B.contentWindow,B.contentWindow.document)};(!window.frames[C.id])?B.addListener("load",A):A();return B}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue}G[D.uid]=true}E.push(D)}F=E}return(B.cash)?$extend(F,this):F}});Elements.implement({filter:function(A,B){if(!A){return this}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A)}:A,B))}});Elements.multi=function(A){return function(){var B=[];var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element")}}return(F)?new Elements(B):B}};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B}var A=$type(B);return($[A])?$[A](B,C,this.document):null},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A)}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);break;default:E=false}if(E){F.extend(E)}}return new Elements(F)},getDocument:function(){return this.document},getWindow:function(){return this}});$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;for(var C in B){A[C]=B[C]}}return A};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C)}return null};$.textnode=$.whitespace=$.window=$.document=$arguments(0);Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B)},getElements:function(A,D){A=A.split(",");var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F},this);return new Elements(C,{ddup:B,cash:!D})}});Element.Storage={get:function(A){return(this[A]||(this[A]={}))}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A)}},after:function(B,A){if(!A.parentNode){return }var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B)},bottom:function(B,A){A.appendChild(B)},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B)}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();Element.implement("inject"+A,function(D){C(this,$(D,true));return this});Element.implement("grab"+A,function(D){C($(D,true),this);return this})});Element.implement({getDocument:function(){return this.ownerDocument},getWindow:function(){return this.ownerDocument.getWindow()},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null}}return $.element(B,C)},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C])}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B)}return this},get:function(B){var A=Element.Properties.get(B);return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B)},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);return this},match:function(A){return(!A||Element.get(this,"tag")==A)},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A)},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A)},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);if(A){this.appendChild(A)}},this);return this},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this},clone:function(D,C){switch($type(this)){case"element":var H={};for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);if(A){J.grab(A)}}}return J;case"textnode":return document.newTextNode(this.nodeValue)}return null},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);return this},hasClass:function(A){return this.className.contains(A," ")},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean()}return this},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A)},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()]}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A)},this);return this},destroy:function(){Browser.freeMem(this.empty().dispose());return null},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected}))},toQueryString:function(){var A=[];this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return }var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D))}})});return A.join("&")},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null},getProperties:function(){var A=$A(arguments);return A.map(function(B){return this.getProperty(B)},this).associate(A)},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);if(B&&C.Bools[D]){E=(E||!A)?true:false}else{if(!A){return this.removeProperty(D)}}(B)?this[B]=E:this.setAttribute(D,E);return this},setProperties:function(A){for(var B in A){this.setProperty(B,A[B])}return this},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break}}E=E[B]}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H)};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C)},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C)},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C)},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C)},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C)},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C)},getParent:function(B,C){return A(this,"parentNode",null,B,false,C)},getParents:function(B,C){return A(this,"parentNode",null,B,true,C)},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C)},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B))}})})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"")}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("")}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false)}else{this.attachEvent("on"+B,A)}return this},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false)}else{this.detachEvent("on"+B,A)}return this},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A}return $pick(C)},store:function(B,A){var C=Element.Storage.get(this.uid);C[B]=A;return this},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});Browser.freeMem=function(A){if(!A){return }if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty}}Element.dispose(A)}if(A.uid&&A.removeEvents){A.removeEvents()}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase()})));B.erase("Camels")})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();if(Browser.Engine.trident){CollectGarbage()}});Element.Properties.events={set:function(A){this.addEvents(A)}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G)}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J)}return false}}F=A.base||F}var D=function(){return G.call(I)};var B=Element.NativeEvents[F]||0;if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop()}}}this.addListener(F,D)}H[E].values.push(D);return this},removeEvent:function(D,C){var B=this.retrieve("events");if(!B||!B[D]){return this}var G=B[D].keys.indexOf(C);if(G==-1){return this}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);if(E){if(E.onRemove){E.onRemove.call(this,C)}D=E.base||D}return(Element.NativeEvents[D])?this.removeListener(D,F):this},addEvents:function(A){for(var B in A){this.addEvent(B,A[B])}return this},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this}if(!B){for(var C in A){this.removeEvents(C)}A=null}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0])}A[B]=null}}return this},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})()},this);return this},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this}if(!A){for(var B in C){this.cloneEvents(D,B)}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E)},this)}}return this}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true}if(C===false){return false}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C))};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}})})();Element.Properties.styles={set:function(A){this.setStyles(A)}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"}}else{if(this.style.visibility!="visible"){this.style.visibility="visible"}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")"}this.style.opacity=A;this.store("opacity",A)},get:function(){return this.retrieve("opacity",1)}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true)},getOpacity:function(){return this.get("opacity")},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat"}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return""}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E}).join(" ")}else{if(A==String(Number(A))){A=Math.round(A)}}this.style[B]=A;return this},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat"}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E))}return A.join(" ")}A=this.getComputedStyle(G)}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);if(C){A=A.replace(C[0],C[0].rgbToHex())}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt()},this);return this["offset"+G.capitalize()]-D+"px"}if(Browser.Engine.presto&&String(A).test("px")){return A}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px"}}return A},setStyles:function(B){for(var A in B){this.setStyle(A,B[A])}return this},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B)},this);return A}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px"});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)"});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I)}else{this.scrollLeft=H;this.scrollTop=I}return this},getSize:function(){if(B(this)){return this.getWindow().getSize()}return{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize()}return{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){if(B(this)){return this.getWindow().getScroll()}return{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode}return H},getOffsetParent:function(){var H=this;if(B(H)){return null}if(!Browser.Engine.trident){return H.offsetParent}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H}}return null},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I)}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J)}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);H.y+=G(I)}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this)}return H},getPosition:function(K){if(B(this)){return{x:0,y:0}}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y}},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates()}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")}},position:function(H){return this.setStyles(this.computePosition(H))}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight}}var H=A(this);return{x:H.clientWidth,y:H.clientHeight}},getScroll:function(){var I=this.getWindow();var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop}},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x}}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0}function F(H){return D(H,"-moz-box-sizing")=="border-box"}function G(H){return E(H,"border-top-width")}function C(H){return E(H,"border-left-width")}function B(H){return(/^(?:body|html)$/i).test(H.tagName)}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y},getWidth:function(){return this.getSize().x},getScrollTop:function(){return this.getScroll().y},getScrollLeft:function(){return this.getScroll().x},getScrollHeight:function(){return this.getScrollSize().y},getScrollWidth:function(){return this.getScrollSize().x},getTop:function(){return this.getPosition().y},getLeft:function(){return this.getPosition().x}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F)}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F)}return new Elements(C,{ddup:(H.length>1),cash:!G})}});Element.implement({match:function(B){if(!B){return true}var D=Selectors.Utils.parseTagAndID(B);var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(B,C){if(!C){return true}var A=$uid(B);if(!C[A]){return C[A]=true}return false},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F]}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;if(B!=0){A--;while(A<1){A+=B}while(A>=B){A-=B}}else{B=A;D="index"}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};break;default:C={a:(B-1),special:"index"}}return Selectors.Cache.nth[F]=C},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E]}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I)}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J})}else{H.attributes.push({name:C,operator:"=",value:J})}}else{if(G){H.attributes.push({name:G,operator:F,value:B})}}}}if(!H.classes.length){delete H.classes}if(!H.attributes.length){delete H.attributes}if(!H.pseudos.length){delete H.pseudos}if(!H.classes&&!H.attributes&&!H.pseudos){H=null}return Selectors.Cache.parsed[E]=H},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false]},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false}}}if(C.attributes){for(D=C.attributes.length;D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false}}}return true},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);return(C&&Selectors.Filters.byTag(C,A))?[C]:[]}else{return B.getElementsByTagName(A)}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);return":)"+X}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);continue}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M)}else{var D={},H=[];for(var S=0,R=K.length;S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D)}K=H}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V)}}K=E}}return K}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F)}}return H},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B)}}return H},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B)}break}}return C},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B)}}}return C}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A))},byID:function(A,B){return(!B||(A.id&&A.id==B))},byClass:function(B,A){return(B.className&&B.className.contains(A," "))},byPseudo:function(A,D,C,B){return D.call(A,C,B)},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);if(!A){return false}if(!B||E==undefined){return true}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-")}return false}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length},not:function(A){return !Element.match(this,A)},contains:function(A){return(this.innerText||this.textContent||"").contains(A)},"first-child":function(){return Selectors.Pseudo.index.call(this,0)},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false}}return true},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false}}return true},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E)}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue}F++;var A=E.positions[$uid(B)];if(A!=undefined){F=A+F;break}}E.positions[D]=F}return(E.positions[D]%C.a==C.b)},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false}}return(C==A)},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A)},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A)}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this)}}};(function(){var B=function(){if(Browser.loaded){return }Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready")};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50)})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose()}))?B():arguments.callee.delay(50)})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B)}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C)}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null"}return null},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16)},decode:function(string,secure){if($type(string)!="string"||!string.length){return null}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+string+")")}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this)}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;this.setOptions(A)},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain}if(this.options.path){B+="; path="+this.options.path}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString()}if(this.options.secure){B+="; secure"}this.options.document.cookie=this.key+"="+B;return this},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(A)?decodeURIComponent(A[1]):null},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C)};Cookie.read=function(A){return new Cookie(A).read()};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose()};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments)}})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";E.movie=L}else{H.type="application/x-shockwave-flash";H.data=L}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"'}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />'}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);return this},inject:function(A){$(A,true).appendChild(this.toElement());return this},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments))}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");return eval(rs)};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel"}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,B))}else{this.set(this.compute(this.from,this.to,1));this.complete()}},set:function(A){return A},compute:function(C,B,A){return Fx.compute(C,B,A)},check:function(A){if(!this.timer){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false}return false},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this}this.from=B;this.to=A;this.time=0;this.startTimer();this.onStart();return this},complete:function(){if(this.stopTimer()){this.onComplete()}return this},cancel:function(){if(this.stopTimer()){this.onCancel()}return this},onStart:function(){this.fireEvent("start",this.subject)},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject)}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain()},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer){return false}this.time=$time()-this.time;this.timer=$clear(this.timer);return true},startTimer:function(){if(this.timer){return false}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true}});Fx.compute=function(C,B,A){return(B-C)*A+C};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];B[0]=D.getStyle(E)}var A=B.map(this.parse);return{from:A[0],to:A[1]}},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return }var D=F.parse(C);if($chk(D)){B={value:D,parser:F}}});B=B||{value:C,parser:Fx.CSS.Parsers.String};return B})},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser})});A.$family={name:"fx:css:value"};return A},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C)}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B))});return A},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B))},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A]}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;if(C&&C.contains("://")&&!C.contains(document.domain)){return }var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return }var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase()}):null;if(!H||!H.test("^"+A+"$")){return }Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return }K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K})})});return Fx.CSS.Cache[A]=B}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true)}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A))})},serve:function(A){return A.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A)},set:function(B,A){if(arguments.length==1){A=B;B=this.property||this.options.property}this.render(this.element,B,A,this.options.unit);return this},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to)}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel()}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A))},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A)}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")))}return this.retrieve("tween")}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this},fade:function(C){var E=this.get("tween"),D="opacity",A;C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments)}if(!A){this.eliminate("fade:flag")}return this},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));A=(A=="transparent")?"#fff":A}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));B.callChain()}.bind(this));return this}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A)},set:function(A){if(typeof A=="string"){A=this.search(A)}for(var B in A){this.render(this.element,B,A[B],this.options.unit)}return this},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C)}return A},start:function(B){if(!this.check(arguments.callee,B)){return this}if(typeof B=="string"){B=this.search(B)}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);E[C]=A.from;D[C]=A.to}return this.parent(E,D)}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel()}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A))},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A)}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")))}return this.retrieve("morph")}};Element.implement({morph:function(A){this.get("morph").start(A);return this}});(function(){var A=Fx.prototype.initialize;Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")]}this.options.transition=D}}})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A)},easeOut:function(C){return 1-B(1-C,A)},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2}})};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B])}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6)},Expo:function(A){return Math.pow(2,8*(A-1))},Circ:function(A){return 1-Math.sin(Math.acos(A))},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2)},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A)},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;break}}return C},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2])})});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers)},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return }this.running=false;this.status=0;$try(function(){this.status=this.xhr.status}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml)}else{this.response={text:null,xml:null};this.failure()}this.xhr.onreadystatechange=$empty},isSuccess:function(){return((this.status>=200)&&(this.status<300))},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A)}return A.stripScripts(this.options.evalScripts)},success:function(B,A){this.onSuccess(this.processScripts(B),A)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr)},setHeader:function(A,B){this.headers.set(A,B);return this},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A)}.bind(this))},check:function(A){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false}return false},send:function(I){if(!this.check(arguments.callee,I)){return this}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I}}var D=this.options;I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E)}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;E=(E)?F+"&"+E:F;A="post"}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C)}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true}.bind(this))){this.fireEvent("exception",[J,K])}},this);this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange()}return this},cancel:function(){if(!this.running){return this}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});(function(){var A={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(C,{method:B.toLowerCase()}))}});Request.implement(A)})();Element.Properties.send={set:function(A){var B=this.retrieve("send");if(B){B.cancel()}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A))},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A)}this.store("send",new Request(this.retrieve("send:options")))}return this.retrieve("send")}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");G.async=false;G.loadXML(D)}else{G=new DOMParser().parseFromString(D,"text/xml")}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H)}}return A})||A.set("html",C)},success:function(D){var C=this.options,B=this.response;B.html=D.stripScripts(function(E){B.javascript=E});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter)}if(C.update){$(C.update).empty().adopt(B.tree)}if(C.evalScripts){$exec(B.javascript)}this.onSuccess(B.tree,B.elements,B.html,B.javascript)}});Element.Properties.load={set:function(A){var B=this.retrieve("load");if(B){send.cancel()}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A))},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A)}this.store("load",new Request.HTML(this.retrieve("load:options")))}return this.retrieve("load")}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"})},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A)}});Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper)}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);return this},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C)});return B},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G}return this.parent(F[0],F[1])},slideIn:function(A){return this.start("in",A)},slideOut:function(A){return this.start("out",A)},hide:function(A){this[A||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(A){return this.start("toggle",A)}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel()}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B))},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A)}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")))}return this.retrieve("slide")}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E)}if(!A){this.eliminate("slide:flag")}return this}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body)}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D)},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D)},true)}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1])},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C))});return B},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A}else{D[G]=B[G]}D[G]+=this.options.offset[G]}return this.parent([B.x,B.y],[D.x,D.y])},toTop:function(){return this.start(false,0)},toLeft:function(){return this.start(0,false)},toRight:function(){return this.start("right",false)},toBottom:function(){return this.start(false,"bottom")},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y)}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);this.parent(A)},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I)}}return C},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit)}}return this},start:function(C){if(!this.check(arguments.callee,C)){return this}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to}}return this.parent(H,I)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(C){if(this.options.preventDefault){C.preventDefault()}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt()}else{this.value.now[D]=this.element[this.options.modifiers[D]]}if(this.options.invert){this.value.now[D]*=-1}this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(A){if(this.options.preventDefault){A.preventDefault()}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element)}},drag:function(A){if(this.options.preventDefault){A.preventDefault()}this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1]}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0]}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B])}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit)}else{this.element[this.options.modifiers[B]]=this.value.now[B]}}this.fireEvent("drag",this.element)},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(A){this.fireEvent("complete",this.element)}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A))}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body)}C=this.element;var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent))}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables()},true)},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt()},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G}}this.parent(B)},checkAgainst:function(B){B=B.getCoordinates();var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top)},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(A){this.overed=A;this.fireEvent("enter",[this.element,A])}else{this.overed=null}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables()}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);this.overed=null;return this.parent(A)}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A)}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);this.load()},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false}if(A=="{}"){this.dispose()}else{this.write(A)}return true},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);if(this.options.autoSave){this.save()}return D}});return A})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3)}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true)}else{if(B.match(/hsb/)){B=B.hsbToRgb()}else{B=B.hexToRgb(true)}}}}C=C||"rgb";switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();return $extend(B,this)}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C))}});return new Color(B,"rgb")},invert:function(){return new Color(this.map(function(A){return 255-A}))},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb")},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb")},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb")}});function $RGB(C,B,A){return new Color([C,B,A],"rgb")}function $HSB(C,B,A){return new Color([C,B,A],"hsb")}function $HEX(A){return new Color(A,"hex")}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A}else{if(C==I){G=2+D-L}else{G=4+A-D}}G/=6;if(G<0){G++}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)]},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C]}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D]}}return false}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);return(A)?A.hsbToRgb():null}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={}},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false}else{this.events[B].push(A)}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]))},this);return this},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false},this);if(!D){return }this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A)},this)}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E()}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return }$clear(C);E()}).periodical(50)}return B.inject(G.head)},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head)},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;var G=B[F];delete B[F];D[F]=function(){if(!D){return }if(!A.parentNode){A.width=D.width;A.height=D.height}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);A.fireEvent(E,A,1)}});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1)}return A.setProperties(B)},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);if(!D.push){D=[D]}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete()}}});A.push(E)});return new Elements(A)}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B)},this);return this},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren())},this);return this},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C)},this);return $$(A)},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren())},this);return $$(A)},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list)}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()))},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list)}return A.erase(this.clone).erase(this.element)},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables()}else{A=this.element.getAllPrevious().contains(B)?"before":"after"}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone])},start:function(B,A){if(!this.idle){return }this.idle=false;this.element=A;this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(B)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id")},this)},this);var A=C.index;if(this.lists.length==1){A=0}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible")},onHide:function(A){A.setStyle("visibility","hidden")},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className)}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements)}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B)}D.store("tip:native",D.get("title"));D.erase("title")},this);return this},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");var B=C.retrieve("tip:native");if(B){C.set("title",B)}});return this},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D)}var C=A.retrieve("tip:text");if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C)}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);this.position((!this.options.fixed)?B:{page:A.getPosition()})},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this)},elementMove:function(A){this.position(A)},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F]}this.tip.setStyle(C[F],G)}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B)},show:function(){this.fireEvent("show",this.tip)},hide:function(){this.fireEvent("hide",this.tip)}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return }var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F)}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor},true)}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;this.toElement(A);C.stop()}.bind(this))}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step)}this.knob.setStyle(this.property,A)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this))}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";F="offsetWidth"}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min}if(!((this.range>0)^(A>this.max))){A=this.max}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A)},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop()},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B)}},initialize:function(B,A){this.setOptions(A);this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this)},start:function(){this.listener.addEvent("mousemove",this.coord)},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer)},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this)}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y])}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B])}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E])}else{for(var F in this.effects){E.setStyle(F,0)}}},this);if($chk(this.options.display)){this.display(this.options.display)}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after")}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container)}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight}C.setStyle("overflow","hidden");if(!F){for(var D in this.effects){C.setStyle(D,0)}}return this},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]]}},this);return this.start(B)}});window.addEvent("load",function(){if(!("console" in window)||!("firebug" in window.console)){var B=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var A=0;A<B.length;++A){window.console[B[A]]=function(){}}}});(function(){var A=navigator.userAgent.toLowerCase();var B=A.indexOf("msie")>-1,D=A.indexOf("msie 7")>-1;if(B&&!D){try{document.execCommand("BackgroundImageCache",false,true)}catch(C){}}})();if(typeof Jx=="undefined"){var Jx={};(function(){var C=document.getElementsByTagName("SCRIPT");for(var A=0;A<C.length;A++){var B=C[A].src;var D=/(.*)(js|lib\/)jxlib(.*)/.exec(B);if(D&&D[0]){Jx.aPixel=document.createElement("img");Jx.aPixel.src=D[1]+"/images/a_pixel.png";Jx.baseURL=Jx.aPixel.src.substring(0,Jx.aPixel.src.indexOf("images/a_pixel.png"))}}})()}Jx.applyPNGFilter=function(C){var A=Jx.baseURL+"images/a_pixel.png";if(C.src!=A){var B=C.src;C.src=A;C.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+B+"',sizingMethod='scale')"}};Jx.imgQueue=[];Jx.imgLoaded={};Jx.imagesLoading=0;Jx.addToImgQueue=function(A){if(Jx.imgLoaded[A.src]){A.element.src=A.src}else{Jx.imgQueue.push(A);Jx.imgLoaded[A.src]=true}Jx.checkImgQueue()};Jx.checkImgQueue=function(){while(Jx.imagesLoading<2&&Jx.imgQueue.length>0){Jx.loadNextImg()}};Jx.loadNextImg=function(){var A=Jx.imgQueue.shift();if(A){++Jx.imagesLoading;A.element.onload=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.onerror=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.src=A.src}};Jx.createIframeShim=function(){return new Element("iframe",{"class":"jxIframeShim",scrolling:"no",frameborder:0})};Jx.UniqueId=new Class({uniqueIdRefs:null,initUniqueId:function(){this.uniqueIdRefs=[]},deregisterIds:function(){this.uniqueIdRefs=[]},registerIds:function(C,A){if(C.indexOf(A.id)!=-1){this.uniqueIdRefs[A.id]=A}for(var B=0;B<A.childNodes.length;B++){this.registerIds(C,A.childNodes[B])}},getObj:function(A){return this.uniqueIdRefs[A]||null}});Element.implement({getBoxSizing:function(){var B="content-box";if(Browser.Engine.trident||Browser.Engine.presto){var A=document.compatMode;if(A=="BackCompat"||A=="QuirksMode"){B="border-box"}else{B="content-box"}}else{if(arguments.length==0){node=document.documentElement}var C=this.getStyle("-moz-box-sizing");if(!C){C=this.getStyle("box-sizing")}B=(C?C:"content-box")}return B},getContentBoxSize:function(){var A=this.offsetWidth;var C=this.offsetHeight;var D=this.getPaddingSize();var B=this.getBorderSize();A=A-D.left-D.right-B.left-B.right;C=C-D.bottom-D.top-B.bottom-B.top;return{width:A,height:C}},getBorderBoxSize:function(){var A=this.offsetWidth;var B=this.offsetHeight;return{width:A,height:B}},getMarginBoxSize:function(){var C=this.getMarginSize();var A=this.offsetWidth+C.left+C.right;var B=this.offsetHeight+C.top+C.bottom;return{width:A,height:B}},setContentBoxSize:function(C){if(this.getBoxSizing()=="border-box"){var E=this.getPaddingSize();var B=this.getBorderSize();if(typeof C.width!="undefined"){var D=(C.width+E.left+E.right+B.left+B.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height+E.top+E.bottom+B.top+B.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"){this.style.width=C.width+"px"}if(typeof C.height!="undefined"){this.style.height=C.height+"px"}}},setBorderBoxSize:function(C){if(this.getBoxSizing()=="content-box"){var F=this.getPaddingSize();var B=this.getBorderSize();var E=this.getMarginSize();if(typeof C.width!="undefined"){var D=(C.width-F.left-F.right-B.left-B.right-E.left-E.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height-F.top-F.bottom-B.top-B.bottom-E.top-E.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"&&C.width>=0){this.style.width=C.width+"px"}if(typeof C.height!="undefined"&&C.height>=0){this.style.height=C.height+"px"}}},getPaddingSize:function(){var B=this.getNumber(this.getStyle("padding-left"));var C=this.getNumber(this.getStyle("padding-top"));var D=this.getNumber(this.getStyle("padding-right"));var A=this.getNumber(this.getStyle("padding-bottom"));return{left:B,top:C,right:D,bottom:A}},getBorderSize:function(){var B=this.getNumber(this.getStyle("border-left-width"));var C=this.getNumber(this.getStyle("border-top-width"));var D=this.getNumber(this.getStyle("border-right-width"));var A=this.getNumber(this.getStyle("border-bottom-width"));return{left:B,top:C,right:D,bottom:A}},getMarginSize:function(){var B=this.getNumber(this.getStyle("margin-left"));var C=this.getNumber(this.getStyle("margin-top"));var D=this.getNumber(this.getStyle("margin-right"));var A=this.getNumber(this.getStyle("margin-bottom"));return{left:B,top:C,right:D,bottom:A}},getNumber:function(B){var A=B==null||isNaN(parseInt(B))?0:parseInt(B);return A},getPageDimensions:function(){return{width:window.getWidth(),height:window.getHeight()}},descendantOf:function(B){var A=$(this.parentNode);if(A==B){return true}else{if(!A||!A.parentNode){return null}else{if(A.parentNode===A){return null}else{return A.descendantOf(B)}}}},findElement:function(B){if(this.tagName==B){return this}var A=$(this.parentNode);if(A){if(A.tagName==B){return A}else{if(!A.parentNode||A.parentNode==A){return null}else{return A.findElement(B)}}}else{return null}}});Jx.ContentLoader=new Class({contentIsLoaded:false,loadContent:function(A){A=$(A);if(this.options.content){var B;if(this.options.content.domObj){B=$(this.options.content.domObj)}else{B=$(this.options.content)}if(B){A.appendChild(B);this.contentIsLoaded=true}else{A.innerHTML=this.options.content;this.contentIsLoaded=true}}else{if(this.options.contentURL){this.contentIsLoaded=false;new Request({url:this.options.contentURL,method:"get",update:A,onSuccess:(function(C){A.innerHTML=C;this.contentIsLoaded=true;this.fireEvent("contentLoaded",this)}).bind(this),onFailure:(function(){this.contentIsLoaded=true;this.fireEvent("contentLoadFailed",this)}).bind(this),headers:{"If-Modified-Since":"Sat, 1 Jan 2000 00:00:00 GMT"}}).send()}else{this.contentIsLoaded=true}}if(this.contentIsLoaded){this.fireEvent("contentLoaded",this)}},processContent:function(A){$A(A.childNodes).each(function(B){if(B.tagName=="INPUT"||B.tagName=="SELECT"||B.tagName=="TEXTAREA"){if(B.type=="button"){B.addEvent("click",function(){this.fireEvent("click",this,B)})}else{B.addEvent("change",function(){this.fireEvent("change",B)})}}else{if(B.childNodes){this.processContent(B)}}},this)}});Jx.AutoPosition=new Class({position:function(F,C,N){F=$(F);C=$(C);var B=$splat(N.horizontal||["center center"]);var G=$splat(N.vertical||["center center"]);var E=$merge({top:0,right:0,bottom:0,left:0},N.offsets||{});var I;if(!$(F.parentNode)||F.parentNode==document.body){I=Element.getPageDimensions()}else{I=$(F.parentNode).getContentBoxSize()}var K=C.getCoordinates();var M=F.getMarginBoxSize();var D;var L;var J;var A;if(!B.some(function(O){var P=O.split(" ");if(P.length!=2){return false}if(!isNaN(parseInt(P[0]))){D=parseInt(P[0])}else{switch(P[0]){case"right":D=K.left+K.width;break;case"center":D=K.left+Math.round(K.width/2);break;case"left":default:D=K.left}}switch(P[1]){case"left":D-=E.left;L=D+M.width;break;case"right":D+=E.right;L=D;D=D-M.width;break;case"center":default:D=D-Math.round(M.width/2);L=D+M.width}return(D>=0&&L<=I.width)})){if(L>I.width){D=I.width-M.width}if(D<0){D=0}}F.setStyle("left",D);if(!G.some(function(O){var P=O.split(" ");if(P.length!=2){return false}if(!isNaN(parseInt(P[0]))){J=parseInt(P[0])}else{switch(P[0]){case"bottom":J=K.top+K.height;break;case"center":J=K.top+Math.round(K.height/2);break;case"top":default:J=K.top}}switch(P[1]){case"top":J-=E.top;A=J+M.height;break;case"bottom":J+=E.bottom;A=J;J=J-M.height;break;case"center":default:J=J-Math.round(M.height/2);A=J+M.height}return(J>=0&&A<=I.height)})){if(A>I.height){J=I.height-M.height}if(J<0){J=0}}F.setStyle("top",J);var H=F.retrieve("jxLayout");if(H){H.options.left=D;H.options.top=J}}});Jx.Chrome=new Class({chrome:null,makeChrome:function(A){var C=new Element("div",{"class":"jxChrome"});A.adopt(C);this.chromeOffsets=C.getPaddingSize();C.setStyle("padding",0);var B=C.getStyle("backgroundImage");if(!B.contains("http://")){B=null}else{B=B.slice(4,-1);if(B.charAt(0)=='"'){B=B.slice(1,-1)}C.setStyle("backgroundImage","none");["TL","TR","BL","BR"].each(function(D){C.adopt(new Element("div",{"class":"jxChrome"+D}).adopt(new Element("img",{src:B})))},this)}if(!window.opera){C.adopt(Jx.createIframeShim())}C.dispose();this.chrome=C},showChrome:function(A){A=$(A);if(!this.chrome){this.makeChrome(A)}if(A&&this.chrome.parentNode!==A){A.adopt(this.chrome)}},hideChrome:function(){if(this.chrome){this.chrome.dispose()}}});Jx.Button=new Class({Implements:[Options,Events],domObj:null,options:{id:"",type:"Button",image:"",tooltip:"",label:"",enabled:true,toggle:false,toggleClass:"Toggle",halign:"center",valign:"middle",isActive:false,container:"div"},initialize:function(B){this.setOptions(B);var E=new Element(this.options.container,{"class":"jx"+this.options.type+"Container"});if(this.options.toggle&&this.options.toggleClass){E.addClass("jx"+this.options.type+this.options.toggleClass)}var A=new Element("a",{"class":"jx"+this.options.type,href:"javascript:void(0)",title:this.options.tooltip,alt:this.options.tooltip,events:{click:this.clicked.bindWithEvent(this)}});if(this.options.isActive){A.addClass("jx"+this.options.type+"Active")}E.appendChild(A);var D=new Element("span",{"class":"jx"+this.options.type+"Content"});A.appendChild(D);if(this.options.image||!this.options.label){var C=new Element("img",{"class":"jx"+this.options.type+"Icon",src:Jx.aPixel.src});if(this.options.image.indexOf("a_pixel.png")==-1){C.setStyle("backgroundImage","url("+this.options.image+")")}D.appendChild(C);if(this.options.imageClass){C.addClass(this.options.imageClass)}}l=new Element("span",{html:this.options.label});if(this.options.label){l.addClass("jx"+this.options.type+"Label")}D.appendChild(l);if(this.options.id){E.id=this.options.id}if(this.options.halign=="left"){E.addClass("jx"+this.options.type+"ContentLeft")}if(this.options.valign=="top"){E.addClass("jx"+this.options.type+"ContentTop")}this.domA=A;this.domLabel=l;this.domObj=E;this.setEnabled(this.options.enabled)},clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.isActive)}else{this.fireEvent("click",{obj:this,event:A})}}},setEnabled:function(A){this.options.enabled=A;if(this.options.enabled){this.domObj.removeClass("jx"+this.options.type+"Disabled")}else{this.domObj.addClass("jx"+this.options.type+"Disabled")}},isActive:function(){return this.options.isActive},setActive:function(A){if(this.options.isActive==A){return }this.options.isActive=A;if(this.options.isActive){this.domA.addClass("jx"+this.options.type+"Active");this.fireEvent("down",this)}else{this.domA.removeClass("jx"+this.options.type+"Active");this.fireEvent("up",this)}},setImage:function(A){if(this.domImg){this.domImg.set("src",A)}},setLabel:function(A){if(this.domLabel){this.domLabel.set("html",A)}},setTooltip:function(A){if(this.domImg){this.domImg.set({title:A,alt:A})}},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.insertBefore(this.domObj,A)}else{B.appendChild(this.domObj)}}});Jx.Button.Flyout=new Class({Extends:Jx.Button,Implements:[Jx.ContentLoader,Jx.AutoPosition,Jx.Chrome],content:null,initialize:function(A){if(!Jx.Button.Flyout.Stack){Jx.Button.Flyout.Stack=[]}this.parent(A);this.domA.addClass("jx"+this.options.type+"Flyout");this.contentContainer=new Element("div",{"class":"jxFlyout"});this.content=new Element("div",{"class":"jxFlyoutContent"});this.contentContainer.adopt(this.content);this.content.store("jxFlyout",this);this.loadContent(this.content);this.keypressWatcher=this.keypressHandler.bindWithEvent(this);this.hideWatcher=this.clickHandler.bindWithEvent(this)},clicked:function(C){if(!this.owner){this.owner=document.body;var B=$(this.domObj.parentNode);while(B!=document.body&&this.owner==document.body){var A=B.retrieve("jxFlyout");if(A){this.owner=A;break}else{B=$(B.parentNode)}}}if(Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1]==this){this.hide();return }else{if(this.owner!=document.body){if(this.owner.currentFlyout==this){this.hide();return }else{if(this.owner.currentFlyout){this.owner.currentFlyout.hide()}}this.owner.currentFlyout=this}else{while(Jx.Button.Flyout.Stack.length){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}}Jx.Button.Flyout.Stack.push(this);this.options.isActive=true;this.domA.addClass("jx"+this.options.type+"Active");this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["left left","right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");window.addEvent("keypress",this.keypressWatcher);document.addEvent("click",this.hideWatcher);this.fireEvent("open",this)},hide:function(){if(this.owner!=document.body){this.owner.currentFlyout=null}Jx.Button.Flyout.Stack.pop();this.setActive(false);this.contentContainer.dispose();window.removeEvent("keypress",this.keypressWatcher);document.removeEvent("click",this.hideWatcher);this.fireEvent("close",this)},clickHandler:function(B){B=new Event(B);var C=$(B.target);var A=Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1];if(!C.descendantOf(A.content)&&!C.descendantOf(A.domObj)){A.hide()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}});Jx.Button.Multi=new Class({activeButton:null,buttons:null,initialize:function(){this.buttons=[];var A=new Element("div");this.tb=new Jx.Toolbar({parent:A,position:"right"});this.flyout=new Jx.Button.Flyout({content:A});this.flyout.domObj.firstChild.addClass("jxButtonMulti");this.domObj=new Element("div",{"class":"jxButtonMultiContainer"});this.domObj.grab(this.flyout.domObj)},add:function(){$A(arguments).each(function(B){if(!B instanceof Jx.Button){return }this.buttons.push(B);var A=new Jx.Button($merge(B.options,{onClick:this.setButton.bind(this,B)}));B.multiButton=A;this.tb.add(A);if(!this.activeButton){this.domObj.grab(B.domObj,"top");this.activeButton=B}},this)},remove:function(A){if(!A||!A.multiButton){return }if(this.tb.remove(A.multiButton)){A.multiButton=null;if(this.activeButton==A){if(!this.buttons.some(function(B){if(B!=A){this.setActiveButton(B);return true}else{return false}},this)){this.setActiveButton(null)}}this.flyout.content.style.height="";this.flyout.content.style.width="";this.buttons.erase(A)}},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.grab(this.domObj,"top")}else{B.adopt(this.domObj)}},setActiveButton:function(A){if(this.activeButton){this.activeButton.domObj.dispose()}if(A&&A.domObj){this.domObj.grab(A.domObj,"top")}this.activeButton=A},setButton:function(A){this.setActiveButton(A);A.clicked();this.flyout.hide()}});Jx.ColorPalette=new Class({Implements:[Options,Events],domObj:null,options:{color:"#000000",alpha:1},hexColors:["00","33","66","99","CC","FF"],initialize:function(C){this.setOptions(C);this.domObj=new Element("div",{id:this.options.id,"class":"jxColorPalette"});var H=new Element("div",{"class":"jxColorBar"});var Q=new Element("div",{"class":"jxColorPreview"});this.selectedSwatch=new Element("div",{"class":"jxColorSelected"});this.previewSwatch=new Element("div",{"class":"jxColorHover"});Q.adopt(this.selectedSwatch);Q.adopt(this.previewSwatch);H.adopt(Q);this.colorInputLabel=new Element("label",{"class":"jxColorLabel",html:"#"});H.adopt(this.colorInputLabel);var K=this.changed.bind(this);this.colorInput=new Element("input",{"class":"jxHexInput",type:"text",maxLength:6,events:{keyup:K,blur:K,change:K}});H.adopt(this.colorInput);this.alphaLabel=new Element("label",{"class":"jxAlphaLabel",html:"alpha (%)"});H.adopt(this.alphaLabel);this.alphaInput=new Element("input",{"class":"jxAlphaInput",type:"text",maxLength:3,events:{keyup:this.alphaChanged.bind(this)}});H.adopt(this.alphaInput);this.domObj.adopt(H);Q=new Element("div",{"class":"jxClearer"});this.domObj.adopt(Q);var I=this.swatchClick.bindWithEvent(this);var G=this.swatchOver.bindWithEvent(this);var P=new Element("table",{"class":"jxColorGrid"});var A=new Element("tbody");P.adopt(A);for(var N=0;N<12;N++){var B=new Element("tr");for(var L=-3;L<18;L++){var F=false;var J,O,R;if(L<0){if(L==-3||L==-1){J=O=R=0;F=true}else{if(N<6){J=O=R=N}else{if(N==6){J=5;O=0;R=0}else{if(N==7){J=0;O=5;R=0}else{if(N==8){J=0;O=0;R=5}else{if(N==9){J=5;O=5;R=0}else{if(N==10){J=0;O=5;R=5}else{if(N==11){J=5;O=0;R=5}}}}}}}}}else{J=parseInt(N/6)*3+parseInt(L/6);O=L%6;R=N%6}var D="#"+this.hexColors[J]+this.hexColors[O]+this.hexColors[R];var E=new Element("td");if(!F){E.setStyle("backgroundColor",D);var S=new Element("a",{"class":"colorSwatch "+(((J>2&&O>2)||(J>2&&R>2)||(O>2&&R>2))?"borderBlack":"borderWhite"),href:"#",title:D,alt:D,events:{mouseover:G,click:I}});S.store("swatchColor",D);E.adopt(S)}else{var M=new Element("span",{"class":"emptyCell"});E.adopt(M)}B.adopt(E)}A.adopt(B)}this.domObj.adopt(P);this.updateSelected()},swatchOver:function(B){var A=B.target;this.previewSwatch.setStyle("backgroundColor",A.retrieve("swatchColor"))},swatchClick:function(B){var A=B.target;this.options.color=A.retrieve("swatchColor");this.updateSelected();this.fireEvent("click",this)},changed:function(){var A=this.colorInput.value;if(A.substring(0,1)=="#"){A=A.substring(1)}if(A.toLowerCase().match(/^[0-9a-f]{6}$/)){this.options.color="#"+A.toUpperCase();this.updateSelected()}},alphaChanged:function(){var A=this.alphaInput.value;if(A.match(/^[0-9]{1,3}$/)){this.options.alpha=parseFloat(A/100);this.updateSelected()}},setColor:function(A){this.colorInput.value=A;this.changed()},setAlpha:function(A){this.alphaInput.value=A;this.alphaChanged()},updateSelected:function(){var A={backgroundColor:this.options.color};this.colorInput.value=this.options.color.substring(1);this.alphaInput.value=parseInt(this.options.alpha*100);if(this.options.alpha<1){A.opacity=this.options.alpha;A.filter="Alpha(opacity="+(this.options.alpha*100)+")"}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A);this.previewSwatch.setStyles(A);this.fireEvent("change",this)}});Jx.Button.Color=new Class({Extends:Jx.Button.Flyout,swatch:null,options:{color:"#000000",alpha:100},initialize:function(A){if(!Jx.Button.Color.ColorPalette){Jx.Button.Color.ColorPalette=new Jx.ColorPalette(this.options)}var B=new Element("span",{"class":"jxButtonSwatch"});this.selectedSwatch=new Element("span");B.appendChild(this.selectedSwatch);this.colorChangeFn=this.changed.bind(this);this.hideFn=this.hide.bind(this);Jx.Button.Flyout.prototype.initialize.apply(this,[A]);$(this.domObj.firstChild).addClass("jxButtonColor");this.domObj.firstChild.firstChild.insertBefore(B,this.domObj.firstChild.firstChild.firstChild);this.updateSwatch()},clicked:function(){if(Jx.Button.Color.ColorPalette.currentButton){Jx.Button.Color.ColorPalette.currentButton.hide()}Jx.Button.Color.ColorPalette.currentButton=this;Jx.Button.Color.ColorPalette.addEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.addEvent("click",this.hideFn);this.content.appendChild(Jx.Button.Color.ColorPalette.domObj);Jx.Button.Color.ColorPalette.domObj.setStyle("display","block");Jx.Button.Flyout.prototype.clicked.apply(this,arguments);Jx.Button.Color.ColorPalette.options.color=this.options.color;Jx.Button.Color.ColorPalette.options.alpha=this.options.alpha/100;Jx.Button.Color.ColorPalette.updateSelected()},hide:function(){this.setActive(false);Jx.Button.Color.ColorPalette.removeEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.removeEvent("click",this.hideFn);Jx.Button.Flyout.prototype.hide.apply(this,arguments);Jx.Button.Color.ColorPalette.currentButton=null},setColor:function(A){this.options.color=A;this.updateSwatch()},setAlpha:function(A){this.options.alpha=A;this.updateSwatch()},changed:function(A){var B=false;if(this.options.color!=A.options.color){this.options.color=A.options.color;B=true}if(this.options.alpha!=A.options.alpha*100){this.options.alpha=A.options.alpha*100;B=true}if(B){this.updateSwatch();this.fireEvent("change",this)}},updateSwatch:function(){var A={backgroundColor:this.options.color};if(this.options.alpha<100){A.filter="Alpha(opacity="+(this.options.alpha)+")";A.opacity=this.options.alpha/100}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A)}});Jx.ButtonSet=new Class({Implements:[Options,Events],buttons:null,initialize:function(A){this.setOptions(A);this.buttons=[];this.buttonChangedHandler=this.buttonChanged.bind(this)},add:function(){$A(arguments).each(function(A){if(A.domObj.hasClass("jx"+A.options.type+"Toggle")){A.domObj.removeClass("jx"+A.options.type+"Toggle");A.domObj.addClass("jx"+A.options.type+"Set")}A.addEvent("down",this.buttonChangedHandler);var B=this;A.setActive=function(C){if(this.options.isActive&&B.activeButton==this){return }else{Jx.Button.prototype.setActive.apply(this,[C])}};if(!this.activeButton){A.setActive(true)}this.buttons.push(A)},this)},remove:function(A){this.buttons.erase(A);if(this.activeButton==A){if(this.buttons.length){this.buttons[0].setActive(true)}A.removeEvent("down",this.buttonChangedHandler);A.setActive=Jx.Button.prototype.setActive}},setActiveButton:function(B){var A=this.activeButton;this.activeButton=B;if(A&&A!=B){A.setActive(false)}},buttonChanged:function(A){this.setActiveButton(A);this.fireEvent("change",this)}});Jx.Grid=new Class({Implements:[Options],domObj:null,model:null,options:{alternateRowColors:false,rowHeaders:false,columnHeaders:false,rowSelection:false,columnSelection:false,cellPrelight:false,rowPrelight:false,columnPrelight:false,rowHeaderPrelight:false,columnHeaderPrelight:false,cellSelection:false},initialize:function(B,A){this.setOptions(A);this.domObj=$(B);var C=this.domObj.retrieve("jxLayout");if(C){C.addEvent("sizeChange",this.resize.bind(this))}this.rowColObj=new Element("div",{"class":"jxGridContainer"});this.colObj=new Element("div",{"class":"jxGridContainer"});this.colTable=new Element("table",{"class":"jxGridTable"});this.colTableHead=new Element("thead");this.colTable.appendChild(this.colTableHead);this.colTableBody=new Element("tbody");this.colTable.appendChild(this.colTableBody);this.colObj.appendChild(this.colTable);this.rowObj=new Element("div",{"class":"jxGridContainer"});this.rowTable=new Element("table",{"class":"jxGridTable"});this.rowTableHead=new Element("thead");this.rowTable.appendChild(this.rowTableHead);this.rowObj.appendChild(this.rowTable);this.gridObj=new Element("div",{"class":"jxGridContainer",styles:{overflow:"scroll"}});this.gridTable=new Element("table",{"class":"jxGridTable"});this.gridTableBody=new Element("tbody");this.gridTable.appendChild(this.gridTableBody);this.gridObj.appendChild(this.gridTable);this.domObj.appendChild(this.rowColObj);this.domObj.appendChild(this.rowObj);this.domObj.appendChild(this.colObj);this.domObj.appendChild(this.gridObj);this.gridObj.addEvent("scroll",this.onScroll.bind(this));this.gridObj.addEvent("click",this.onClickGrid.bindWithEvent(this));this.rowObj.addEvent("click",this.onClickRowHeader.bindWithEvent(this));this.colObj.addEvent("click",this.onClickColumnHeader.bindWithEvent(this));this.gridObj.addEvent("mousemove",this.onMouseMoveGrid.bindWithEvent(this));this.rowObj.addEvent("mousemove",this.onMouseMoveRowHeader.bindWithEvent(this));this.colObj.addEvent("mousemove",this.onMouseMoveColumnHeader.bindWithEvent(this))},onScroll:function(){this.colObj.scrollLeft=this.gridObj.scrollLeft;this.rowObj.scrollTop=this.gridObj.scrollTop},resize:function(){if(!this.model){return }var C=this.options.columnHeaders?this.model.getColumnHeaderHeight():1;var A=this.options.rowHeaders?this.model.getRowHeaderWidth():1;var B=Element.getContentBoxSize(this.domObj);this.rowColObj.setStyles({width:A-1,height:C-1});this.rowObj.setStyles({top:C,left:0,width:A-1,height:B.height-C-1});this.colObj.setStyles({top:0,left:A,width:B.width-A-1,height:C-1});this.gridObj.setStyles({top:C,left:A,width:B.width-A-1,height:B.height-C-1})},setModel:function(A){if(this.model){this.model.removeGridListener(this)}this.model=A;if(this.model){if(this.domObj.resize){this.domObj.resize()}this.model.addGridListener(this);this.createGrid();this.resize()}else{this.destroyGrid()}},destroyGrid:function(){var A=this.colTableHead.cloneNode(false);this.colTable.replaceChild(A,this.colTableHead);this.colTableHead=A;A=this.colTableBody.cloneNode(false);this.colTable.replaceChild(A,this.colTableBody);this.colTableBody=A;A=this.rowTableHead.cloneNode(false);this.rowTable.replaceChild(A,this.rowTableHead);this.rowTableHead=A;A=this.gridTableBody.cloneNode(false);this.gridTable.replaceChild(A,this.gridTableBody);this.gridTableBody=A},createGrid:function(){this.destroyGrid();if(this.model){var L=this.model;var E=L.getColumnCount();var Q=L.getRowCount();if(this.options.columnHeaders){var N=L.getColumnHeaderHeight();var P=new Element("tr");this.colTableHead.appendChild(P);var M=new Element("tr");this.colTableBody.appendChild(M);var C=new Element("th",{styles:{width:0,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N);M.appendChild(C);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);C=new Element("th",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{height:0,width:J}});C.appendChild(B);P.appendChild(C);C=new Element("th",{"class":"jxGridColHead",html:L.getColumnHeaderHTML(K)});M.appendChild(C)}var C=new Element("th",{styles:{width:1000,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N-1);C.className="jxGridColHead";M.appendChild(C)}if(this.options.rowHeaders){var H=L.getRowHeaderWidth();var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:0}});O.appendChild(G);var C=new Element("th",{styles:{width:H,height:0}});O.appendChild(C);this.rowTableHead.appendChild(O);for(var K=0;K<Q;K++){var A=L.getRowHeight(K);var O=new Element("tr");var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{width:0,height:A}});G.appendChild(B);O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",html:L.getRowHeaderHTML(K)});O.appendChild(C);this.rowTableHead.appendChild(O)}var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:1000}});O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",styles:{width:H,height:1000}});O.appendChild(C);this.rowTableHead.appendChild(O)}var N=L.getColumnHeaderHeight();var M=new Element("tr");this.gridTableBody.appendChild(M);var G=new Element("td",{styles:{width:0,height:0}});M.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{width:J,height:0}});G.appendChild(B);M.appendChild(G)}for(var I=0;I<Q;I++){var A=L.getRowHeight(I);var D=A;var O=new Element("tr");this.gridTableBody.appendChild(O);var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{height:A}});G.appendChild(B);O.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridCell"});G.innerHTML=L.getValueAt(I,K);O.appendChild(G);var F=G.getSize();if(F.height>D){D=F.height}}if(document.all){D-=1}if(this.options.rowHeaders){this.setRowHeaderHeight(I,D)}if(this.options.alternateRowColors){O.className=(I%2)?"jxGridRowOdd":"jxGridRowEven"}else{O.className="jxGridRowAll"}}}},setRowHeaderHeight:function(B,A){this.rowTableHead.childNodes[B+1].childNodes[0].childNodes[0].style.height=(A)+"px"},gridChanged:function(B,D,A,C){if(this.model==B){this.gridObj.childNodes[D].childNodes[A].innerHTML=C}},prelightRowHeader:function(B){var A=(B>=0&&B<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[B+1].cells[1]:null;if(this.prelitRowHeader!=A){if(this.prelitRowHeader){this.prelitRowHeader.removeClass("jxGridRowHeaderPrelight")}this.prelitRowHeader=A;if(this.prelitRowHeader){this.prelitRowHeader.addClass("jxGridRowHeaderPrelight")}}},prelightColumnHeader:function(B){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(this.prelitColumnHeader!=A){if(this.prelitColumnHeader){this.prelitColumnHeader.removeClass("jxGridColumnHeaderPrelight")}this.prelitColumnHeader=A;if(this.prelitColumnHeader){this.prelitColumnHeader.addClass("jxGridColumnHeaderPrelight")}}},prelightRow:function(B){var A=(B>=0&&B<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[B+1]:null;if(this.prelitRow!=B){if(this.prelitRow){this.prelitRow.removeClass("jxGridRowPrelight")}this.prelitRow=A;if(this.prelitRow){this.prelightRowHeader(B);this.prelitRow.addClass("jxGridRowPrelight")}}},prelightColumn:function(A){if(A>=0&&A<this.gridTable.rows[0].cells.length){if($chk(this.prelitColumn)){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[this.prelitColumn+1].removeClass("jxGridColumnPrelight")}}this.prelitColumn=A;for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnPrelight")}}this.prelightColumnHeader(A)},prelightCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(this.prelitCell!=C){if(this.prelitCell){this.prelitCell.removeClass("jxGridCellPrelight")}this.prelitCell=C;if(this.prelitCell){this.prelitCell.addClass("jxGridCellPrelight")}}},selectCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(!C){return }if(this.selectedCell){this.selectedCell.removeClass("jxGridCellSelected")}this.selectedCell=C;this.selectedCell.addClass("jxGridCellSelected")},selectRowHeader:function(C,B){var A=(C>=0&&C<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[C+1].cells[1]:null;if(!A){return }if(B){A.addClass("jxGridRowHeaderSelected")}else{A.removeClass("jxGridRowHeaderSelected")}},selectRow:function(C,A){var B=(C>=0&&C<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[C+1]:null;if(B){if(A){B.addClass("jxGridRowSelected")}else{B.removeClass("jxGridRowSelected")}this.selectRowHeader(C,A)}},selectColumnHeader:function(B,C){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(A==null){return }if(C){A.addClass("jxGridColumnHeaderSelected")}else{A.removeClass("jxGridColumnHeaderSelected")}},selectColumn:function(A,C){if(A>=0&&A<this.gridTable.rows[0].cells.length){if(C){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnSelected")}}else{for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].removeClass("jxGridColumnSelected")}}this.selectColumnHeader(A,C)}},onMouseMoveGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellPrelight){this.prelightCell(A.row,A.column)}if(this.options.rowPrelight){this.prelightRow(A.row)}if(this.options.rowHeaderPrelight){this.prelightRowHeader(A.row)}if(this.options.columnPrelight){this.prelightColumn(A.column)}if(this.options.columnHeaderPrelight){this.prelightColumnHeader(A.column)}},onMouseMoveRowHeader:function(B){if(this.options.rowPrelight){var A=this.getRowColumnFromEvent(B);this.prelightRow(A.row)}},onMouseMoveColumnHeader:function(B){if(this.options.columnPrelight){var A=this.getRowColumnFromEvent(B);this.prelightColumn(A.column)}},onClickGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellSelection&&this.model.cellSelected){this.model.cellSelected(this,A.row,A.column)}if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},onClickRowHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}},onClickColumnHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},getRowColumnFromEvent:function(D){var F=D.target;if(F.tagName!="TD"&&F.tagName!="TH"){return{row:-1,column:-1}}var C=F.parentNode;var A=F.cellIndex-1;var E=C.rowIndex-1;if(A==-1){for(var B=0;B<C.childNodes.length;B++){if(C.childNodes[B]==F){A=B-1;break}}}return{row:E,column:A}}});Jx.Layout=new Class({Implements:[Options,Events],options:{propagate:true,position:"absolute",left:0,right:0,top:0,bottom:0,width:null,height:null,minWidth:0,minHeight:0,maxWidth:-1,maxHeight:-1},initialize:function(B,A){this.setOptions(A);this.domObj=$(B);this.domObj.resize=this.resize.bind(this);this.domObj.setStyle("position",this.options.position);this.domObj.store("jxLayout",this);if(document.body==this.domObj.parentNode){window.addEvent("resize",this.windowResize.bindWithEvent(this));window.addEvent("load",this.resize.bind(this))}},windowResize:function(){if(this.resizeTimer){$clear(this.resizeTimer);this.resizeTimer=null}this.resizeTimer=this.resize.delay(100,this)},resize:function(K){this.resizeTimer=null;var B=false;if(K){for(var F in K){if(F=="forceResize"){continue}if(this.options[F]!=K[F]){B=true;this.options[F]=K[F]}}if(K.forceResize){B=true}}if(!$(this.domObj.parentNode)){return }var C;if(this.domObj.parentNode.tagName=="BODY"){C=Element.getPageDimensions()}else{C=$(this.domObj.parentNode).getContentBoxSize()}if(this.lastParentSize&&!B){B=(this.lastParentSize.width!=C.width||this.lastParentSize.height!=C.height)}else{B=true}this.lastParentSize=C;if(!B){return }var D,J,I,G;if(this.options.left!=null){D=this.options.left;if(this.options.right==null){if(this.options.width==null){I=C.width-D;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}else{if(this.options.width==null){I=C.width-D-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}}else{if(this.options.right==null){if(this.options.width==null){D=0;I=C.width;if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=D+parseInt(I-this.options.maxWidth)/2;I=this.options.maxWidth}}else{I=this.options.width;D=parseInt((C.width-I)/2);if(D<0){D=0}}}else{if(this.options.width!=null){I=this.options.width;D=C.width-I-this.options.right;if(D<0){D=0}}else{D=0;I=C.width-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=I-this.options.maxWidth-this.options.right;I=this.options.maxWidth}}}}if(this.options.top!=null){J=this.options.top;if(this.options.bottom==null){if(this.options.height==null){G=C.height-J;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height;if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=G-this.options.maxHeight;G=this.options.maxHeight}}}else{if(this.options.height==null){G=C.height-J-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height}}}else{if(this.options.bottom==null){if(this.options.height==null){J=0;G=C.height;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=parseInt((C.height-this.options.maxHeight)/2);G=this.options.maxHeight}}else{G=this.options.height;J=parseInt((C.height-G)/2);if(J<0){J=0}}}else{if(this.options.height!=null){G=this.options.height;J=C.height-G-this.options.bottom;if(J<0){J=0}}else{J=0;G=C.height-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=C.height-this.options.maxHeight-this.options.bottom;G=this.options.maxHeight}}}}var E={width:I};if(this.options.position=="absolute"){var H=$(this.domObj.parentNode).getPaddingSize();this.domObj.setStyles({position:this.options.position,left:D+H.left,top:J+H.top});E.height=G}else{if(this.options.height){E.height=this.options.height}}this.domObj.setBorderBoxSize(E);if(this.options.propagate){var A={forceResize:K?K.forceResize:false};$A(this.domObj.childNodes).each(function(L){if(L.resize&&L.getStyle("display")!="none"){L.resize(A)}})}this.fireEvent("sizeChange",this)}});Jx.Menu=new Class({Implements:[Jx.AutoPosition,Jx.Chrome],domObj:null,button:null,subDomObj:null,items:null,initialize:function(A){if(!Jx.Menu.Menus){Jx.Menu.Menus=[]}this.items=[];this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxMenu"});this.contentContainer.adopt(this.subDomObj);if(A){this.domObj=new Element("li",{id:A.id,events:{mouseover:this.onMouseOver.bindWithEvent(this)}});this.button=new Jx.Button($merge(A,{onClick:this.show.bind(this)}));this.button.domA.addClass("jxButtonMenu");this.domObj.adopt(this.button.domObj)}this.hideWatcher=this.hide.bindWithEvent(this);this.keypressWatcher=this.keypressHandler.bindWithEvent(this)},add:function(){$A(arguments).each(function(A){this.items.push(A);A.setOwner(this);this.subDomObj.adopt(A.domObj)},this)},deactivate:function(){this.hide()},actionPerformed:function(){this.hide()},onMouseOver:function(A){if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]!=this){this.show({event:A})}},eventInMenu:function(A){return A.target.descendantOf(this.domObj)||A.target.descendantOf(this.subDomObj)||this.items.some(function(B){return B instanceof Jx.Menu.SubMenu&&B.eventInMenu(A)})},hide:function(A){if(A){if(this.eventInMenu(A)){return }}if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]==this){Jx.Menu.Menus[0]=null}if(this.button&&this.button.domA){this.button.domA.removeClass("jx"+this.button.options.type+"Active")}this.contentContainer.dispose();this.items.each(function(B){B.hide(A)});document.removeEvent("mousedown",this.hideWatcher);document.removeEvent("keyup",this.keypressWatcher)},show:function(B){var A=B.event;if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]!=this){Jx.Menu.Menus[0].hide(A)}if(this.items.length==0){return }Jx.Menu.Menus[0]=this;this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.button.domObj,{horizontal:["left left"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");if(this.button&&this.button.domA){this.button.domA.addClass("jx"+this.button.options.type+"Active")}if(A){A.stop()}document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher)},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){this.hide()}}});Jx.Menu.Item=new Class({Implements:[Options,Events],Extends:Jx.Button,owner:null,options:{enabled:true,image:Jx.baseURL+"images/a_pixel.png",label:"&nbsp;",toggleClass:"Toggle"},initialize:function(A){this.parent($merge(A,{container:"li",type:"MenuItem",toggleClass:(A.image?null:this.options.toggleClass)}));this.domObj.addEvent("mouseover",this.onMouseOver.bindWithEvent(this));if(!this.options.enabled){this.domObj.addClass("jxMenuItemDisabled")}},setOwner:function(A){this.owner=A},hide:$empty,show:$empty,clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.isActive)}this.fireEvent("click",this);if(this.owner&&this.owner.deactivate){this.owner.deactivate(A.event)}}},propertyChanged:function(A){this.options.enabled=A.isEnabled();if(this.options.enabled){this.domObj.removeClass("jxMenuItemDisabled")}else{if(!this.domObj.hadClass("jxMenuItemDisabled")){this.domObj.addClass("jxMenuItemDisabled")}}},onMouseOver:function(A){if(this.owner&&this.owner.setVisibleItem){this.owner.setVisibleItem(this)}this.show(A)}});Jx.Menu.Separator=new Class({domObj:null,owner:null,initialize:function(){this.domObj=new Element("li",{"class":"jxMenuItem"});var A=new Element("span",{"class":"jxMenuSeparator",html:"&nbsp;"});this.domObj.appendChild(A)},setOwner:function(A){this.owner=A},hide:$empty,show:$empty});Jx.Menu.SubMenu=new Class({Extends:Jx.Menu.Item,Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome],subDomObj:null,owner:null,visibleItem:null,items:null,initialize:function(A){this.open=false;this.items=[];this.parent(A);this.domA.addClass("jxButtonSubMenu");this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxSubMenu"});this.contentContainer.adopt(this.subDomObj)},setOwner:function(A){this.owner=A},show:function(){if(this.open||this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["right left","left right"],vertical:["top top"],offsets:this.chromeOffsets});this.open=true;this.contentContainer.setStyle("visibility","");this.setActive(true)},eventInMenu:function(A){return A.target.descendantOf(this.domObj)||A.target.descendantOf(this.subDomObj)||this.items.some(function(B){return B instanceof Jx.Menu.SubMenu&&B.eventInMenu(A)})},hide:function(){if(!this.open){return }this.open=false;this.items.each(function(A){A.hide()});this.contentContainer.dispose();this.visibleItem=null},add:function(){var A=this;$A(arguments).each(function(B){A.items.push(B);B.setOwner(A);A.subDomObj.adopt(B.domObj)})},insertBefore:function(C,D){var B=false;for(var A=0;A<this.items.length;A++){if(this.items[A]==D){this.items.splice(A,0,C);this.subDomObj.insertBefore(C.domObj,D.domObj);B=true;break}}if(!B){this.add(C)}},remove:function(B){for(var A=0;A<this.items.length;A++){if(this.items[A]==B){this.items.splice(A,1);this.subDomObj.removeChild(B.domObj);break}}},processActionEvent:function(A){if(this.open){this.hide()}else{this.show()}if(A&&A.event){A.event.stop()}},deactivate:function(A){if(this.owner){this.owner.deactivate(A)}},isActive:function(){if(this.owner){return this.owner.isActive()}else{return false}},setActive:function(A){if(this.owner&&this.owner.setActive){this.owner.setActive(A)}},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}}});Jx.Menu.Context=new Class({Extends:Jx.Menu,initialize:function(A){this.parent();if($(A)){$(A).addEvent("contextmenu",this.show.bindWithEvent(this))}},show:function(A){if(this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.position(this.contentContainer,document.body,{horizontal:[A.page.x+" left"],vertical:[A.page.y+" top",A.page.y+" bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");this.showChrome(this.contentContainer);document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);A.stop()}});Jx.Panel=new Class({Implements:[Options,Events,Jx.UniqueId,Jx.ContentLoader],toolbarContainers:{top:null,right:null,bottom:null,left:null},options:{label:"&nbsp;",imageBaseUrl:Jx.baseURL+"images/",position:"absolute",height:null,collapse:true,detach:false,close:false,closed:false,hideTitle:false,type:"Panel"},initialize:function(N){this.toolbars=N.toolbars||[];this.setOptions(N);if($defined(this.options.height)&&!$defined(N.position)){this.options.position="relative"}this.initUniqueId();this.title=new Element("div",{"class":"jx"+this.options.type+"Title"});this.labelObj=new Element("span",{"class":"jx"+this.options.type+"Label",html:this.options.label});this.title.adopt(this.labelObj);var K=new Element("div",{"class":"jx"+this.options.type+"Controls"});var E=new Element("div");K.adopt(E);this.toolbar=new Jx.Toolbar({parent:E});this.title.adopt(K);var F=this;if(this.options.menu){this.menu=new Jx.Menu({image:Jx.baseURL+"images/panel_controls.png"});this.menu.domObj.addClass("jx"+this.options.type+"Menu");this.menu.domObj.addClass("jxButtonContentLeft");this.toolbar.add(this.menu)}if(this.options.collapse){var H=new Jx.Button({image:Jx.baseURL+"images/panel_controls.png",tooltip:"Collapse/Expand Panel",onClick:function(){F.toggleCollapse()}});H.domObj.addClass("jx"+this.options.type+"Collapse");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Collapse",onClick:function(){F.toggleCollapse()}});this.addEvent("collapse",function(){if(F.options.closed){L.setLabel("Expand")}else{L.setLabel("Collapse")}});this.menu.add(L)}}if(this.options.maximize){var H=new Jx.Button({image:Jx.baseURL+"images/panel_controls.png",tooltip:"Maximize Panel",onClick:function(){F.maximize()}});H.domObj.addClass("jx"+this.options.type+"Maximize");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Maximize",onClick:function(){F.maximize()}});this.menu.add(L)}}if(this.options.close){var H=new Jx.Button({image:Jx.baseURL+"images/panel_controls.png",tooltip:"Close Panel",onClick:function(){F.close()}});H.domObj.addClass("jx"+this.options.type+"Close");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Close",onClick:function(){F.close()}});this.menu.add(L)}}this.title.addEvent("dblclick",function(){F.toggleCollapse()});this.domObj=new Element("div",{"class":"jx"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}if($(this.options.parent)){$(this.options.parent).adopt(this.domObj)}var G=new Jx.Layout(this.domObj,$merge(this.options,{propagate:false}));var M=this.layoutContent.bind(this);G.addEvent("sizeChange",M);if(!this.options.hideTitle){this.domObj.adopt(this.title)}this.contentContainer=new Element("div",{"class":"jx"+this.options.type+"ContentContainer"});this.domObj.adopt(this.contentContainer);for(var B=0;B<this.toolbars.length;B++){var A=this.toolbars[B];A.addEvent("add",M);A.addEvent("remove",M);var D=A.options.position;var J=this.toolbarContainers[D];if(!J){var J=new Element("div",{"class":"jxToolbarContainer jxToolbar"+D.capitalize()});new Jx.Layout(J);var C=new Element("div",{"class":"jxClearer"});J.appendChild(C);this.contentContainer.adopt(J);this.toolbarContainers[D]=J}var I=A.domObj;J.insertBefore(I,J.lastChild)}this.content=new Element("div",{"class":"jx"+this.options.type+"Content"});new Jx.Layout(this.contentContainer);new Jx.Layout(this.content);this.contentContainer.adopt(this.content);this.loadContent(this.content,N);this.toggleCollapse(this.options.closed)},layoutContent:function(){var G=0;var H=0;var A=0;var C=0;var J=0;var I;var D;var F;if(!this.options.hideTitle&&this.title.parentNode==this.domObj){G=this.title.getMarginBoxSize().height}var B=this.domObj.getContentBoxSize();if(B.height>G){this.contentContainer.setStyle("display","block");this.options.closed=false;this.contentContainer.resize({top:G,height:null,bottom:0});["left","right"].each(function(L){if(this.toolbarContainers[L]){this.toolbarContainers[L].style.width=""}},this);["top","bottom"].each(function(L){if(this.toolbarContainers[L]){this.toolbarContainers[L].style.height=""}},this);for(var E=0;E<this.toolbars.length;E++){D=this.toolbars[E];F=D.options.position;I=this.toolbarContainers[F];var K=I.getBorderBoxSize();switch(F){case"top":H=K.height;break;case"bottom":A=K.height;break;case"left":C=K.width;break;case"right":J=K.width;break}}I=this.toolbarContainers.top;if(I){I.resize({top:0,left:C,right:J,bottom:null,height:H,width:null})}I=this.toolbarContainers.bottom;if(I){I.resize({top:null,left:C,right:J,bottom:0,height:A,width:null})}I=this.toolbarContainers.left;if(I){I.resize({top:H,left:0,right:null,bottom:A,height:null,width:C})}I=this.toolbarContainers.right;if(I){I.resize({top:H,left:null,right:0,bottom:A,height:null,width:J})}this.content.resize({top:H,bottom:A,left:C,right:J})}else{this.contentContainer.setStyle("display","none");this.options.closed=true}},setLabel:function(A){this.labelObj.innerHTML=A},getLabel:function(){return this.labelObj.innerHTML},finalize:function(){this.domObj=null;this.deregisterIds()},maximize:function(){if(this.manager){this.manager.maximizePanel(this)}},setContent:function(A){this.content.innerHTML=A;this.bContentReady=true},setContentURL:function(B){this.bContentReady=false;this.setBusy(true);if(arguments[1]){this.onContentReady=arguments[1]}if(B.indexOf("?")==-1){B=B+"?"}var C={method:"get",onComplete:this.panelContentLoaded.bind(this),requestHeaders:["If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"]};var A=new Request(B,C).send()},panelContentLoaded:function(A){this.content.innerHTML=A.responseText;this.bContentReady=true;this.setBusy(false);if(this.onContentReady){window.setTimeout(this.onContentReady.bind(this),1)}},setBusy:function(A){this.busyCount+=A?1:-1;this.loadingObj.img.style.visibility=(this.busyCount>0)?"visible":"hidden"},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.insertBefore(this.domObj,A)}else{B.appendChild(this.domObj)}this.domObj.resize()},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","none");var B=this.domObj.getMarginSize();var A=B.top+B.bottom;if(this.title.parentNode==this.domObj){A+=this.title.getMarginBoxSize().height}this.domObj.resize({height:A});this.fireEvent("collapse",this)}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","block");this.domObj.resize({height:this.options.height});this.fireEvent("expand",this)}}},close:function(){this.domObj.dispose();this.fireEvent("close",this)}});Jx.Dialog=new Class({Extends:Jx.Panel,Implements:[Jx.AutoPosition,Jx.Chrome],blanket:null,options:{modal:true,position:"absolute",width:250,height:250,left:0,top:0,bottom:null,right:null,label:"New Dialog",id:"",parent:null,resize:false,move:true,close:true,collapse:true},initialize:function(A){if(!Jx.Dialog.Stack){Jx.Dialog.Stack=[];Jx.Dialog.ZIndex=[100]}this.isOpening=false;this.parent($merge({parent:document.body},A,{type:"Dialog",position:"absolute"}));this.options.parent=$(this.options.parent);if(!window.opera&&this.options.modal){this.blanket=new Element("div",{"class":"jxDialogModal",styles:{display:"none",zIndex:-1}});this.options.parent.adopt(this.blanket);(new Jx.Layout(this.blanket)).resize()}this.domObj.setStyle("display","none");this.options.parent.adopt(this.domObj);if(this.options.move){this.title.addClass("jxDialogMoveable");new Drag(this.domObj,{handle:this.title,onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");this.contentContainer.setStyle("visibility","");this.position(this.domObj,this.options.parent,{horizontal:[parseInt(this.domObj.style.left)+" left"],vertical:[parseInt(this.domObj.style.top)+" top"]});this.options.left=parseInt(this.domObj.style.left);this.options.top=parseInt(this.domObj.style.top);if(!this.options.closed){this.domObj.resize(this.options)}}).bind(this)})}if(this.options.resize){this.resizeHandle=new Element("div",{"class":"jxDialogResize",styles:{display:this.options.closed?"none":"block"}});this.domObj.appendChild(this.resizeHandle);this.resizeHandleSize=this.resizeHandle.getSize();this.resizeHandle.setStyles({bottom:this.resizeHandleSize.height,right:this.resizeHandleSize.width});this.domObj.makeResizable({handle:this.resizeHandle,onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");var B=this.domObj.getMarginBoxSize();this.options.width=B.width;this.options.height=B.height;this.layoutContent();this.domObj.resize(this.options);this.contentContainer.setStyle("visibility","");this.fireEvent("resize")}).bind(this)})}this.domObj.addEvent("mousedown",(function(){Jx.Dialog.Stack.erase(this).push(this);Jx.Dialog.Stack.each(function(C,B){C.domObj.setStyle("zIndex",101+B)})}).bind(this))},sizeChanged:function(){if(!this.options.closed){this.layoutContent()}},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","none");if(this.resizeHandle){this.resizeHandle.setStyle("display","none")}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","block");if(this.resizeHandle){this.resizeHandle.setStyle("display","block")}}if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom});this.fireEvent("collapse")}else{this.domObj.resize(this.options);this.fireEvent("expand")}},setTitle:function(A){this.title.childNodes[0].innerHTML=A},show:function(){Jx.Dialog.Stack.push(this);if(this.options.modal){this.blanket.setStyles({zIndex:Jx.Dialog.ZIndex[0]++,visibility:"visible",display:"block"})}this.domObj.setStyles({zIndex:Jx.Dialog.ZIndex[0]++,display:"block"});if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom})}else{this.domObj.resize(this.options)}this.showChrome(this.domObj);this.position(this.domObj,this.options.parent,{horizontal:[this.options.left+" left"],vertical:[this.options.top+" top"]});this.options.left=parseInt(this.domObj.style.left);this.options.top=parseInt(this.domObj.style.top)},hide:function(){Jx.Dialog.Stack.erase(this);Jx.Dialog.ZIndex[0]--;this.domObj.setStyle("display","none");if(this.options.modal){this.blanket.setStyle("visibility","hidden");Jx.Dialog.ZIndex[0]--}},open:function(){if(!this.isOpening){this.isOpening=true}if(this.contentIsLoaded){this.show();this.fireEvent("open",this);this.isOpening=false}},close:function(){this.isOpening=false;this.hide();this.fireEvent("close")},onContentLoaded:function(){if(this.isOpening){this.open()}}});Jx.PanelSet=new Class({panels:null,height:null,firstLayout:true,initialize:function(C,B){this.domObj=$(C);this.panels=B;var H=new Element("div",{styles:{position:"absolute"}});new Jx.Layout(H,{minHeight:0,maxHeight:0,height:0});var G=[H];B.each(function(I){G.push(I.domObj);I.options.hideTitle=true;I.contentContainer.resize({top:0});I.addEvent("expand",this.maximizePanel.bind(this,I));I.domObj.store("Jx.Panel",I)},this);this.splitter=new Jx.Splitter(this.domObj,{splitInto:B.length+1,layout:"vertical",elements:G});this.splitter.sizeChanged=this.sizeChanged.bind(this);for(var E=0;E<this.panels.length;E++){var A=this.panels[E];var F=this.splitter.bars[E];A.title.setStyle("visibility","hidden");document.body.adopt(A.title);var D=A.title.getBorderBoxSize();F.adopt(A.title);A.title.setStyle("visibility","");F.setStyle("height",D.height);F.removeClass("jxSplitterBar");F.addClass("jxPanelBar");A.manager=this}},sizeChanged:function(){if(this.firstLayout){if(this.panels[0].title.getBorderBoxSize().height!=0){for(var B=0;B<this.splitter.bars.length;B++){var A=this.panels[B];this.splitter.bars[B].style.height=A.title.getBorderBoxSize().height+"px";this.splitter.bars[B].store("size",null)}this.firstLayout=false;Jx.Splitter.prototype.sizeChanged.apply(this.splitter,[])}}else{Jx.Splitter.prototype.sizeChanged.apply(this.splitter,[])}},maximizePanel:function(A){var E=this.domObj.getContentBoxSize().height;var D=0;for(var C=1;C<this.splitter.elements.length;C++){var F=this.splitter.elements[C];D+=F.retrieve("leftBar").getBorderBoxSize().height;if(F!==A.domObj){var B=F.retrieve("Jx.Panel");var G=F.retrieve("jxLayout").options;F.resize({top:D,height:G.minHeight,bottom:null});D+=G.minHeight;F.retrieve("rightBar").style.top=D+"px"}else{break}}b=E;for(var C=this.splitter.elements.length-1;C>0;C--){F=this.splitter.elements[C];if(F!==A.domObj){var G=F.retrieve("jxLayout").options;b-=G.minHeight;F.resize({top:b,height:G.minHeight,bottom:null});b-=F.retrieve("leftBar").getBorderBoxSize().height;F.retrieve("leftBar").style.top=b+"px"}else{break}}A.domObj.resize({top:D,height:b-D,bottom:null})}});Jx.Combo=new Class({Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome],domObj:null,ul:null,currentSelection:null,initialize:function(A){this.setOptions(A);this.domObj=new Element("div",{"class":"jxCombo"});if(this.options.id){this.domObj.id=this.options.id}if(this.options.editable){this.domInput=new Element("input",{"class":"jxComboInput",type:"text",events:{change:this.valueChanged.bindWithEvent(this),keydown:this.onKeyPress.bindWithEvent(this)}})}else{this.domInput=new Element("span",{"class":"jxComboInput"})}this.domObj.appendChild(this.domInput);this.domA=new Element("a",{"class":"jxComboDiscloser",href:"javascript:void(0)",events:{click:this.toggle.bind(this)}});this.domButton=new Element("img",{"class":"png24",src:Jx.baseURL+"images/disclose2.png"});this.domA.appendChild(this.domButton);this.domObj.appendChild(this.domA);if(!window.opera){this.domObj.appendChild(Jx.createIframeShim())}this.domListDiv=new Element("div",{"class":"jxComboOptions"});this.domList=new Element("ul");this.domListDiv.appendChild(this.domList);this.keypressHandler=this.keypress.bindWithEvent(this);this.clickHandler=this.click.bindWithEvent(this)},onKeyPress:function(A){if(A.key=="enter"){this.valueChanged()}},valueChanged:function(){this.fireEvent("changed",this)},add:function(D,B){var A=new Element("li");var C=new Element("a",{href:"javascript:void(0)",events:{click:this.pick.bindWithEvent(this)}});if($type(D)=="string"){C.innerHTML=D}else{C.appendChild(D)}A.appendChild(C);if(arguments.length>1&&this.domList.childNodes.length>B){this.domList.insertBefore(A,this.domList.childNodes[B])}else{this.domList.appendChild(A)}if(this.getValue()==""){this.setValue(C.childNodes[0])}},remove:function(A){if(A>0&&A<this.domList.childNodes.length){this.domList.removeChild(this.domList.childNodes[A])}},pick:function(B){var A=B.target;if(A.tagName=="A"){this.currentSelection=A;this.setValue(this.currentSelection.childNodes[0]);this.valueChanged()}this.close()},setValue:function(A){if(this.options.editable){if(typeof (A)=="string"){this.domInput.value=A}else{if(A.nodeType&&A.nodeType==3){this.domInput.value=A.nodeValue}else{this.domInput.value=A.innerHTML}}}else{if(typeof (A)=="string"){this.domInput.innerHTML=A}else{if(A.nodeType&&A.nodeType==3){this.domInput.innerHTML=A.nodeValue}else{this.domInput.appendChild(A)}}}},getValue:function(){value="";if(this.options.editable){value=this.domInput.value}else{if(this.domInput.childNodes.length>0){if(this.domInput.childNodes[0].nodeType==3){value=this.domInput.innerHTML}else{value=this.domInput.childNodes[0]}}}return value},toggle:function(){if(this.domListDiv.style.display=="block"){this.close()}else{this.open()}},open:function(){this.domListDiv.setStyle("visibility","hidden");document.body.adopt(this.domListDiv);this.domListDiv.width="";this.domListDiv.setContentBoxSize({width:Math.max(this.domListDiv.getSize().x,this.domObj.getSize().x)});this.showChrome(this.domListDiv);this.position(this.domListDiv,this.domObj,{horizontal:["left left","right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.domListDiv.setStyle("visibility","");document.addEvents({keydown:this.keypressHandler,click:this.clickHandler})},keypress:function(A){if(A.key=="esc"){this.close()}},click:function(A){if(!A.target.descendantOf(this.domListDiv)&&!A.target.descendantOf(this.domObj)){this.close()}},close:function(){this.domListDiv.dispose();document.removeEvents({keydown:this.keypressHandler,click:this.clickHandler})},getSelection:function(){return this.currentSelection?this.currentSelection.name:""}});Jx.Splitter=new Class({Implements:[Options],domObj:null,elements:null,bars:null,firstUpdate:true,options:{useChildren:false,splitInto:2,elements:null,containerOptions:[],barOptions:[],layout:"horizontal",snaps:[]},initialize:function(A,I){this.setOptions(I);this.domObj=$(A);this.domObj.addClass("jxSplitContainer");this.domObj.setStyle("overflow","hidden");var H=this.domObj.retrieve("jxLayout");if(H){H.addEvent("sizeChange",this.sizeChanged.bind(this))}this.elements=[];this.bars=[];var G=2;if(this.options.useChildren){this.elements=this.domObj.getChildren();G=this.elements.length}else{G=this.options.elements?this.options.elements.length:this.options.splitInto;for(var E=0;E<G;E++){var C;if(this.options.elements&&this.options.elements[E]){C=$(this.options.elements[E]);if(!C){C=this.prepareElement();C.id=this.options.elements[E]}}else{C=this.prepareElement()}this.elements[E]=C;this.domObj.adopt(this.elements[E])}}this.elements.each(function(J){J.addClass("jxSplitArea")});for(var E=0;E<G;E++){if(!this.elements[E].retrieve("jxLayout")){new Jx.Layout(this.elements[E],this.options.containerOptions[E])}}for(var E=1;E<G;E++){this.bars[E-1]=this.prepareBar();this.bars[E-1].store("leftSide",this.elements[E-1]);this.bars[E-1].store("rightSide",this.elements[E]);this.elements[E-1].store("rightBar",this.bars[E-1]);this.elements[E].store("leftBar",this.bars[E-1]);this.domObj.adopt(this.bars[E-1])}this.establishConstraints();for(var E=0;E<this.options.barOptions.length;E++){if(!this.bars[E]){continue}var B=this.options.barOptions[E];if(B&&B.snap&&(B.snap=="before"||B.snap=="after")){var F;if(B.snap=="before"){F=this.bars[E].retrieve("leftSide")}else{if(B.snap=="after"){F=this.bars[E].retrieve("rightSide")}}var D=new Element("a",{"class":"jxSnap"+this.options.layout.capitalize()+B.snap.capitalize(),href:"javascript:void(0)"});this.bars[E].adopt(D);new Jx.Splitter.Snap(D,F,this)}}for(var E=0;E<this.options.snaps.length;E++){if(this.options.snaps[E]){new Jx.Splitter.Snap(this.options.snaps[E],this.elements[E],this)}}},prepareElement:function(){var A=new Element("div",{styles:{position:"absolute"}});return A},prepareBar:function(){var A=new Element("div",{"class":"jxSplitBar"+this.options.layout.capitalize(),title:"drag this bar to resize"});A.store("splitterObj",this);return A},establishConstraints:function(){var A={};var B;if(this.options.layout=="horizontal"){A.y=[0,0];B=this.dragHorizontal}else{A.x=[0,0];B=this.dragVertical}this.bars.each(function(C){new Drag(C,{limit:A,onSnap:function(D){D.addClass("jxSplitBarDrag")},onComplete:(function(D){D.removeClass("jxSplitBarDrag");if(D.retrieve("splitterObj")!=this){return }B.apply(this,[D])}).bind(this)})},this)},dragHorizontal:function(F){var A=parseInt(F.style.left);var H=F.retrieve("leftSide");var C=F.retrieve("rightSide");var D=H.retrieve("jxLayout");var G=C.retrieve("jxLayout");var E=this.domObj.getPaddingSize().left;var I,O,K;var N=F.retrieve("size");if(!N){N=F.getBorderBoxSize();F.store("size",N)}I=A+N.width-E;var B=this.domObj.getContentBoxSize();if(G.options.width!=null){O=G.options.width+G.options.left-I;K=B.width-I-O}else{O=B.width-G.options.right-I;K=G.options.right}if(O<0){O=0}if(O<G.options.minWidth){O=G.options.minWidth}if(G.options.maxWidth>=0&&O>G.options.maxWidth){O=G.options.maxWidth}I=B.width-K-O;A=I-N.width;var J,M;J=D.options.left;M=A-J;if(M<0){M=0}if(M<D.options.minWidth){M=D.options.minWidth}if(D.options.maxWidth>=0&&M>D.options.maxWidth){M=D.options.maxWidth}if(J+M!=A){A=J+M;var L=A+N.width-I;I+=L;O-=L}F.style.left=E+A+"px";if(D.options.width==null){var B=this.domObj.getContentBoxSize();H.resize({right:B.width-J-M})}else{H.resize({width:M})}if(G.options.width==null){C.resize({left:I})}else{C.resize({left:I,width:O})}},dragVertical:function(F){var J=parseInt(F.style.top);var D=F.retrieve("leftSide");var A=F.retrieve("rightSide");var E=D.retrieve("jxLayout");var H=A.retrieve("jxLayout");var N=this.domObj.getPaddingSize().top;var O=F.retrieve("size");if(!O){O=F.getBorderBoxSize();F.store("size",O)}var B=this.domObj.getContentBoxSize();var C,M,K;C=J+O.height-N;if(H.options.height!=null){M=H.options.height+H.options.top-C;K=B.height-C-M}else{M=B.height-H.options.bottom-C;K=H.options.bottom}if(M<0){M=0}if(M<H.options.minHeight){M=H.options.minHeight}if(H.options.maxHeight>=0&&M>H.options.maxHeight){M=H.options.maxHeight}C=B.height-K-M;J=C-O.height;var I,G;I=E.options.top;G=J-I;if(G<0){G=0}if(G<E.options.minHeight){G=E.options.minHeight}if(E.options.maxHeight>=0&&G>E.options.maxHeight){G=E.options.maxHeight}if(I+G!=J){J=I+G;var L=J+O.height-C;C+=L;M-=L}F.style.top=N+J+"px";if(E.options.height==null){D.resize({bottom:B.height-I-G})}else{D.resize({height:G})}if(H.options.height==null){A.resize({top:C})}else{A.resize({top:C,height:M})}},sizeChanged:function(){if(this.options.layout=="horizontal"){this.horizontalResize()}else{this.verticalResize()}},horizontalResize:function(){var O=this.domObj.getContentBoxSize().width;var D=O;for(var E=0;E<this.bars.length;E++){var L=this.bars[E];var Q=L.retrieve("size");if(!Q||Q.width==0){Q=L.getBorderBoxSize();L.store("size",Q)}O-=Q.width}var I=0;var H;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];H=K.retrieve("jxLayout").options;if(H.width!=null){O-=parseInt(H.width)}else{var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width}O-=N;I++}}if(I==0){O+=H.width;H.width=null;I=1}var G=parseInt(O/I);var P=O%I;var B=this.domObj.getPaddingSize().left;var C=0;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];var J=K.retrieve("jxLayout");var H=J.options;if(H.width!=null){J.resize({left:C});C+=H.width}else{var M=G;if(I==1){M+=P}I--;var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width+M}else{N=M}if(N<0){if(I>0){G=G+N/I}N=0}if(N<H.minWidth){if(I>0){G=G+(N-H.minWidth)/I}N=H.minWidth}if(H.maxWidth>=0&&N>H.maxWidth){if(I>0){G=G+(N-H.maxWidth)/I}N=K.options.maxWidth}var A=D-C-N;J.resize({left:C,right:A});C+=N}var F=K.retrieve("rightBar");if(F){F.setStyle("left",B+C);C+=F.retrieve("size").width}}},verticalResize:function(){var N=this.domObj.getContentBoxSize().height;var B=N;for(var D=0;D<this.bars.length;D++){var L=this.bars[D];var Q=L.retrieve("size");if(!Q||Q.height==0){Q=L.getBorderBoxSize();L.store("size",Q)}N-=Q.height}var I=0;var H;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];H=K.retrieve("jxLayout").options;if(H.height!=null){N-=parseInt(H.height)}else{var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height}N-=G;I++}}if(I==0){N+=H.height;H.height=null;I=1}var F=parseInt(N/I);var O=N%I;var P=this.domObj.getPaddingSize().top;var C=0;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];var J=K.retrieve("jxLayout");var H=J.options;if(H.height!=null){J.resize({top:C});C+=H.height}else{var M=F;if(I==1){M+=O}I--;var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height+M}else{G=M}if(G<0){if(I>0){F=F+G/I}G=0}if(G<H.minHeight){if(I>0){F=F+(G-H.minHeight)/I}G=H.minHeight}if(H.maxHeight>=0&&G>H.maxHeight){if(I>0){F=F+(G-H.maxHeight)/I}G=H.maxHeight}var A=B-C-G;J.resize({top:C,bottom:A});C+=G}var E=K.retrieve("rightBar");if(E){E.style.top=P+C+"px";C+=E.retrieve("size").height}}}});Jx.Splitter.Snap=new Class({snap:null,element:null,splitter:null,layout:"vertical",initialize:function(A,E,F){this.snap=A;this.element=E;var D=E.retrieve("jxLayout");D.addEvent("sizeChange",this.sizeChange.bind(this));this.splitter=F;this.layout=F.options.layout;var B=D.options;var C=this.element.getContentBoxSize();if(this.layout=="vertical"){this.originalSize=C.height;this.minimumSize=B.minHeight?B.minHeight:0}else{this.originalSize=C.width;this.minimumSize=B.minWidth?B.minWidth:0}A.addEvent("click",this.toggleElement.bind(this))},toggleElement:function(){var B=this.element.getContentBoxSize();var A={};if(this.layout=="vertical"){if(B.height==this.minimumSize){A.height=this.originalSize}else{this.originalSize=B.height;A.height=this.minimumSize}}else{if(B.width==this.minimumSize){A.width=this.originalSize}else{this.originalSize=B.width;A.width=this.minimumSize}}this.element.resize(A);this.splitter.sizeChanged()},sizeChange:function(){var A=this.element.getBorderBoxSize();if(this.layout=="vertical"){if(A.height==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}else{if(A.width==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}}});Jx.TabSet=new Class({Implements:[Options,Events],tabs:null,domObj:null,initialize:function(B,A){this.setOptions(A);this.tabs=[];this.domObj=$(B);if(!this.domObj.hasClass("jxTabSetContainer")){this.domObj.addClass("jxTabSetContainer")}this.selectionChangedFn=this.selectionChanged.bind(this)},resizeTabBox:function(){var B=Element.getContentBoxSize(this.domObj.parentNode);Element.setBorderBoxSize(this.domObj,{width:B.width,height:B.height});for(var A=0;A<this.domObj.childNodes.length;A++){if(this.domObj.childNodes[A].nodeType==3){continue}Element.setBorderBoxSize(this.domObj.childNodes[A],{height:B.height});if(this.domObj.childNodes[A].resize){this.domObj.childNodes[A].resize()}}},add:function(){$A(arguments).each(function(A){if(A instanceof Jx.Button.Tab){A.addEvent("down",this.selectionChangedFn);this.domObj.appendChild(A.content);if(!this.activeTab){A.setActive(true)}this.tabs.push(A)}},this)},remove:function(A){if(A instanceof Jx.Button.Tab&&this.tabs.indexOf(A)!=-1){this.tabs.erase(A);if(this.activeTab==A){if(this.tabs.length){this.tabs[0].setActive(true)}}A.removeEvent("down",this.selectionChangedFn);A.content.dispose()}},setActiveTab:function(A){if(this.activeTab&&this.activeTab!=A){this.activeTab.setActive(false)}this.activeTab=A;if(this.activeTab.content.resize){this.activeTab.content.resize()}},selectionChanged:function(A){this.setActiveTab(A);this.fireEvent("tabChange",this,A)}});Jx.TabSet=new Class({Implements:[Options,Events],tabs:null,domObj:null,initialize:function(B,A){this.setOptions(A);this.tabs=[];this.domObj=$(B);if(!this.domObj.hasClass("jxTabSetContainer")){this.domObj.addClass("jxTabSetContainer")}this.selectionChangedFn=this.selectionChanged.bind(this)},resizeTabBox:function(){var B=Element.getContentBoxSize(this.domObj.parentNode);Element.setBorderBoxSize(this.domObj,{width:B.width,height:B.height});for(var A=0;A<this.domObj.childNodes.length;A++){if(this.domObj.childNodes[A].nodeType==3){continue}Element.setBorderBoxSize(this.domObj.childNodes[A],{height:B.height});if(this.domObj.childNodes[A].resize){this.domObj.childNodes[A].resize()}}},add:function(){$A(arguments).each(function(A){if(A instanceof Jx.Button.Tab){A.addEvent("down",this.selectionChangedFn);this.domObj.appendChild(A.content);if(!this.activeTab){A.setActive(true)}this.tabs.push(A)}},this)},remove:function(A){if(A instanceof Jx.Button.Tab&&this.tabs.indexOf(A)!=-1){this.tabs.erase(A);if(this.activeTab==A){if(this.tabs.length){this.tabs[0].setActive(true)}}A.removeEvent("down",this.selectionChangedFn);A.content.dispose()}},setActiveTab:function(A){if(this.activeTab&&this.activeTab!=A){this.activeTab.setActive(false)}this.activeTab=A;if(this.activeTab.content.resize){this.activeTab.content.resize()}},selectionChanged:function(A){this.setActiveTab(A);this.fireEvent("tabChange",this,A)}});Jx.Button.Tab=new Class({Extends:Jx.Button,Implements:[Options,Events,Jx.ContentLoader],content:null,initialize:function(A){A=$merge(A,{type:"Tab",toggle:true});this.parent(A);this.content=new Element("div",{"class":"tabContent"});this.loadContent(this.content);new Jx.Layout(this.content,A);var B=this;this.addEvent("down",function(){B.content.addClass("tabContentActive")});this.addEvent("up",function(){B.content.removeClass("tabContentActive")})},clicked:function(A){this.setActive(true)}});Jx.Toolbar=new Class({Implements:[Options,Events],items:null,domObj:null,isActive:false,options:{position:"top",parent:null},initialize:function(B){this.setOptions(B);this.domObj=new Element("ul",{id:this.options.id,"class":"jxToolbar"});if(this.options.parent){var A=$(this.options.parent);if(!A.hasClass("jxToolbarContainer")){A.addClass("jxToolbarContainer");A.appendChild(this.domObj);var C=new Element("div",{"class":"jxClearer"});A.appendChild(C)}else{A.insertBefore(this.domObj,A.lastChild)}if(["top","right","bottom","left"].contains(this.options.position)){A.addClass("jxToolbar"+this.options.position.capitalize())}else{A.addClass("jxToolbarTop")}}this.deactivateWatcher=this.deactivate.bindWithEvent(this)},add:function(){for(var B=0;B<arguments.length;B++){var A=arguments[B];A.toolbar=this;if(A.domObj){A=A.domObj}if(A.tagName=="LI"){if(!A.hasClass("jxToolItem")){A.addClass("jxToolItem")}this.domObj.appendChild(A)}else{var C=new Jx.Toolbar.Item(A);this.domObj.appendChild(C.domObj)}}if(arguments.length>0){this.fireEvent("add",this)}},remove:function(B){if(B.domObj){B=B.domObj}var A=B.findElement("LI");if(A&&A.parentNode==this.domObj){B.dispose();this.fireEvent("remove",this)}else{return null}},deactivate:function(){this.items.each(function(A){A.hide()});this.setActive(false)},isActive:function(){return this.isActive},setActive:function(A){this.isActive=A;if(this.isActive){document.addEvent("click",this.deactivateWatcher)}else{document.removeEvent("click",this.deactivateWatcher)}},setVisibleItem:function(A){if(this.visibleItem&&this.visibleItem.hide&&this.visibleItem!=A){this.visibleItem.hide()}this.visibleItem=A;if(this.isActive()){this.visibleItem.show()}}});Jx.Toolbar.Item=new Class({domObj:null,initialize:function(A){this.al=[];this.domObj=new Element("li",{"class":"jxToolItem"});if(A){if(A.domObj){this.domObj.appendChild(A.domObj);if(A instanceof Jx.Tab){this.domObj.addClass("jxTabItem")}}else{this.domObj.appendChild(A);if(A.hasClass("jxTab")){this.domObj.addClass("jxTabItem")}}}}});Jx.Toolbar.Separator=new Class({domObj:null,initialize:function(){this.domObj=new Element("li",{"class":"jxToolItem"});this.domSpan=new Element("span",{"class":"separator"});this.domObj.appendChild(this.domSpan)}});Jx.TreeItem=new Class({Implements:[Options,Events],domObj:null,owner:null,options:{label:"",data:null,contextMenu:null,image:null,enabled:true,type:"Item",imageClass:""},initialize:function(A){this.setOptions(A);this.domObj=new Element("li",{"class":"jxTree"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}this.domNode=new Element("img",{"class":"jxTreeImage",src:Jx.aPixel.src});this.domObj.appendChild(this.domNode);this.domLabel=(this.options.draw)?this.options.draw.apply(this):this.draw();this.domObj.appendChild(this.domLabel);this.domObj.store("jxTreeItem",this);if(!this.options.enabled){this.domObj.addClass("jxDisabled")}},draw:function(){var B=new Element("img",{"class":"jxTreeIcon",src:Jx.aPixel.src});if(this.options.image){B.setStyle("backgroundImage","url("+this.options.image+")")}if(this.options.imageClass){B.addClass(this.options.imageClass)}var A=new Element("a",{href:"javascript:void(0)",html:this.options.label,events:{click:this.selected.bindWithEvent(this),dblclick:this.selected.bindWithEvent(this),contextmenu:this.showMenu.bindWithEvent(this)}});A.appendChild(B);return A},finalize:function(){this.finalizeItem()},finalizeItem:function(){if(!this.domObj){return }this.options=null;this.domObj=null;this.owner=null},clone:function(){return new Jx.TreeItem(this.options)},update:function(B){var A=(arguments.length>1)?arguments[1]:(this.owner&&this.owner.isLastNode(this));if(A){this.domObj.removeClass("jxTree"+this.options.type);this.domObj.addClass("jxTree"+this.options.type+"Last")}else{this.domObj.removeClass("jxTree"+this.options.type+"Last");this.domObj.addClass("jxTree"+this.options.type)}},selected:function(A){this.lastEvent=A;this.fireEvent("click",this)},showMenu:function(A){this.lastEvent=A;this.fireEvent("click",this);if(this.contextMenu){this.contextMenu.show(this.lastEvent)}A.stop()},getName:function(){return this.options.label},propertyChanged:function(A){this.options.enabled=A.isEnabled();if(this.options.enabled){this.domObj.removeClass("jxDisabled")}else{this.domObj.addClass("jxDisabled")}}});Jx.TreeFolder=new Class({Extends:Jx.TreeItem,subDomObj:null,nodes:null,isOpen:false,options:{folderCloseImage:Jx.baseURL+"images/tree_folder.png",folderOpenImage:Jx.baseURL+"images/tree_folder_open.png"},initialize:function(A){this.parent($merge(A,{type:"Branch"}));this.domObj.childNodes[0].addEvent("click",this.clicked.bindWithEvent(this));this.nodes=[];this.subDomObj=new Element("ul",{"class":"jxTree"});this.domObj.appendChild(this.subDomObj);this.subDomObj.className="jxTree";if(this.options.isOpen){this.expand()}else{this.collapse()}},finalize:function(){this.finalizeFolder();this.finalizeItem();this.subDomObj=null},finalizeFolder:function(){this.domObj.childNodes[0].removeEvents();for(var A=this.nodes.length-1;A>=0;A--){this.nodes[A].finalize();if(this.nodes[A].domObj){this.subDomObj.removeChild(this.nodes[A].domObj)}this.nodes.pop()}},clone:function(){var A=new Jx.TreeFolder(this.options);this.nodes.each(function(B){A.append(B.clone())});return A},isLastNode:function(A){if(this.nodes.length==0){return false}else{return this.nodes[this.nodes.length-1]==A}},update:function(C){if(!this.parent){return }var B=false;if(arguments.length>1){B=arguments[1]}else{B=(this.owner&&this.owner.isLastNode(this))}var D="jxTree"+this.options.type;D+=B?"Last":"";D+=this.options.isOpen?"Open":"Closed";this.domObj.className=D;if(B){this.subDomObj.className="jxTree"}else{this.subDomObj.className="jxTree jxTreeNest"}if(this.nodes&&C){var A=this;this.nodes.each(function(F,E){F.update(false,E==A.nodes.length-1)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true)},insert:function(D,B){D.owner=this;if(!B){this.nodes.unshift(D);if(this.subDomObj.childNodes.length==0){this.subDomObj.appendChild(D.domObj)}else{this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[0])}}else{var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){C=C+1;if(C<this.nodes.length){this.nodes.splice(C,0,D);this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[C]);A=true;break}}}if(!A){this.nodes.push(D);this.subDomObj.appendChild(D.domObj)}}this.update(true)},remove:function(B){B.owner=null;for(var A=0;A<this.nodes.length;A++){if(this.nodes[A]==B){this.nodes.splice(A,1);this.subDomObj.removeChild(this.subDomObj.childNodes[A]);break}}this.update(true)},replace:function(D,B){var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){if(C<this.nodes.length){D.owner=this;this.nodes.splice(C,1,D);this.subDomObj.replaceChild(D.domObj,B.domObj);return true}}}return false},clicked:function(A){if(this.options.isOpen){this.collapse()}else{this.expand()}},expand:function(){this.options.isOpen=true;this.subDomObj.setStyle("display","block");this.update(true);this.fireEvent("disclosed",this)},collapse:function(){this.options.isOpen=false;this.subDomObj.setStyle("display","none");this.update(true);this.fireEvent("disclosed",this)},findChild:function(C){if(C.length==0){return this}if(C.length==1){for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==C[0]){return this.nodes[B]}}return null}var A=C.shift();for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==A&&this.nodes[B].findChild){return this.nodes[B].findChild(C)}}return null}});Jx.Tree=new Class({Extends:Jx.TreeFolder,initialize:function(B,A){this.parent(A);this.subDomObj=new Element("ul",{"class":"jxTreeRoot"});$(B).appendChild(this.subDomObj);this.nodes=[];this.isOpen=true},finalize:function(){this.clear();this.subDomObj.parentNode.removeChild(this.subDomObj)},clear:function(){for(var A=this.nodes.length-1;A>=0;A--){this.subDomObj.removeChild(this.nodes[A].domObj);this.nodes[A].finalize();this.nodes.pop()}},update:function(A){var B=true;if(this.subDomObj){if(B){this.subDomObj.removeClass("jxTreeNest")}else{this.subDomObj.addClass("jxTreeNest")}}if(this.nodes&&A){this.nodes.each(function(C){C.update(false)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true)}});
\ No newline at end of file
+var MooTools={version:"1.2dev",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype}C.prototype.constructor=C;if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D)}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N}if(G){Native.genericize(M,K,B)}F.call(M,K,N);return M};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N)}for(var M in L){I(this,M,L[M],K)}return this};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];if(M){I(this,K,M,N)}}else{for(var L in M){this.alias(L,M[L],K)}}return this};return C};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C)}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D)}}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B)}}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F)}};(function(B){for(var A in B){Native.typize(B[A],A)}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true})}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true)}return arguments.callee})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);function $chk(A){return !!(A||A===0)}function $clear(A){clearTimeout(A);clearInterval(A);return null}function $defined(A){return(A!=undefined)}function $empty(){}function $arguments(A){return function(){return arguments[A]}}function $lambda(A){return(typeof A=="function")?A:function(){return A}}function $extend(C,A){for(var B in (A||{})){C[B]=A[B]}return C}function $unlink(C){var B;switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E])}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;D<A;D++){B[D]=$unlink(C[D])}break;default:return C}return B}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G)}}return E}function $pick(){for(var B=0,A=arguments.length;B<A;B++){if(arguments[B]!=undefined){return arguments[B]}}return null}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B)}function $splat(B){var A=$type(B);return(A)?((A!="array"&&A!="arguments")?[B]:B):[]}var $time=Date.now||function(){return new Date().getTime()};function $try(){for(var B=0,A=arguments.length;B<A;B++){try{return arguments[B]()}catch(C){}}return null}function $type(A){if(A==undefined){return false}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace"}}else{if(typeof A.length=="number"){if(A.callee){return"arguments"}else{if(A.item){return"collection"}}}}return typeof A}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean())}for(var B in A){this[B]=A[B]}return this}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++}}return B},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this)}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A]}}return B}});Hash.alias("forEach","each");function $H(A){return new Hash(A)}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this)}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B]}return D}return Array.prototype.slice.call(C)}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D)}var Browser=new Hash({Engine:{name:"unknown",version:""},Platform:{name:(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime)},Plugins:{}});if(window.opera){Browser.Engine={name:"presto",version:(document.getElementsByClassName)?950:925}}else{if(window.ActiveXObject){Browser.Engine={name:"trident",version:(window.XMLHttpRequest)?5:4}}else{if(!navigator.taintEnabled){Browser.Engine={name:"webkit",version:(Browser.Features.xpath)?420:419}}else{if(document.getBoxObjectFor!=null){Browser.Engine={name:"gecko",version:(document.getElementsByClassName)?19:18}}}}}Browser.Engine[Browser.Engine.name]=Browser.Engine[Browser.Engine.name+Browser.Engine.version]=true;if(window.orientation!=undefined){Browser.Platform.name="ipod"}Browser.Platform[Browser.Platform.name]=true;Browser.Request=function(){return $try(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP")})};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var A=($try(function(){return navigator.plugins["Shockwave Flash"].description},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})||"0 r0").match(/\d+/g);return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)}})();function $exec(B){if(!B){return B}if(window.execScript){window.execScript(B)}else{var A=document.createElement("script");A.setAttribute("type","text/javascript");A.text=B;document.head.appendChild(A);document.head.removeChild(A)}return B}Native.UID=1;var $uid=(Browser.Engine.trident)?function(A){return(A.uid||(A.uid=[Native.UID++]))[0]}:function(A){return A.uid||(A.uid=Native.UID++)};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(A){$uid(A);if(!A.Element){A.Element=$empty;if(Browser.Engine.webkit){A.document.createElement("iframe")}A.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{}}return $extend(A,Window.Prototype)},afterImplement:function(B,A){window[B]=Window.Prototype[B]=A}});Window.Prototype={$family:{name:"window"}};new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(A){$uid(A);A.head=A.getElementsByTagName("head")[0];A.html=A.getElementsByTagName("html")[0];A.window=A.defaultView||A.parentWindow;if(Browser.Engine.trident4){$try(function(){A.execCommand("BackgroundImageCache",false,true)})}return $extend(A,Document.Prototype)},afterImplement:function(B,A){document[B]=Document.Prototype[B]=A}});Document.Prototype={$family:{name:"document"}};new Document(document);Array.implement({every:function(C,D){for(var B=0,A=this.length;B<A;B++){if(!C.call(D,this[B],B,this)){return false}}return true},filter:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){if(D.call(E,this[B],B,this)){C.push(this[B])}}return C},clean:function(){return this.filter($defined)},indexOf:function(C,D){var A=this.length;for(var B=(D<0)?Math.max(0,A+D):D||0;B<A;B++){if(this[B]===C){return B}}return -1},map:function(D,E){var C=[];for(var B=0,A=this.length;B<A;B++){C[B]=D.call(E,this[B],B,this)}return C},some:function(C,D){for(var B=0,A=this.length;B<A;B++){if(C.call(D,this[B],B,this)){return true}}return false},associate:function(C){var D={},B=Math.min(this.length,C.length);for(var A=0;A<B;A++){D[C[A]]=this[A]}return D},link:function(C){var A={};for(var E=0,B=this.length;E<B;E++){for(var D in C){if(C[D](this[E])){A[D]=this[E];delete C[D];break}}}return A},contains:function(A,B){return this.indexOf(A,B)!=-1},extend:function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B])}return this},getLast:function(){return(this.length)?this[this.length-1]:null},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null},include:function(A){if(!this.contains(A)){this.push(A)}return this},combine:function(C){for(var B=0,A=C.length;B<A;B++){this.include(C[B])}return this},erase:function(B){for(var A=this.length;A--;A){if(this[A]===B){this.splice(A,1)}}return this},empty:function(){this.length=0;return this},flatten:function(){var D=[];for(var B=0,A=this.length;B<A;B++){var C=$type(this[B]);if(!C){continue}D=D.concat((C=="array"||C=="collection"||C=="arguments")?Array.flatten(this[B]):this[B])}return D},hexToRgb:function(B){if(this.length!=3){return null}var A=this.map(function(C){if(C.length==1){C+=C}return C.toInt(16)});return(B)?A:"rgb("+A+")"},rgbToHex:function(D){if(this.length<3){return null}if(this.length==4&&this[3]==0&&!D){return"transparent"}var B=[];for(var A=0;A<3;A++){var C=(this[A]-0).toString(16);B.push((C.length==1)?"0"+C:C)}return(D)?B:"#"+B.join("")}});Function.implement({extend:function(A){for(var B in A){this[B]=A[B]}return this},create:function(B){var A=this;B=B||{};return function(D){var C=B.arguments;C=(C!=undefined)?$splat(C):Array.slice(arguments,(B.event)?1:0);if(B.event){C=[D||window.event].extend(C)}var E=function(){return A.apply(B.bind||null,C)};if(B.delay){return setTimeout(E,B.delay)}if(B.periodical){return setInterval(E,B.periodical)}if(B.attempt){return $try(E)}return E()}},pass:function(A,B){return this.create({arguments:A,bind:B})},attempt:function(A,B){return this.create({arguments:A,bind:B,attempt:true})()},bind:function(B,A){return this.create({bind:B,arguments:A})},bindWithEvent:function(B,A){return this.create({bind:B,event:true,arguments:A})},delay:function(B,C,A){return this.create({delay:B,bind:C,arguments:A})()},periodical:function(A,C,B){return this.create({periodical:A,bind:C,arguments:B})()},run:function(A,B){return this.apply(B,$splat(A))}});Number.implement({limit:function(B,A){return Math.min(A,Math.max(B,this))},round:function(A){A=Math.pow(10,A||0);return Math.round(this*A)/A},times:function(B,C){for(var A=0;A<this;A++){B.call(C,A,this)}},toFloat:function(){return parseFloat(this)},toInt:function(A){return parseInt(this,A||10)}});Number.alias("times","each");(function(B){var A={};B.each(function(C){if(!Number[C]){A[C]=function(){return Math[C].apply(null,[this].concat($A(arguments)))}}});Number.implement(A)})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(A,B){return((typeof A=="string")?new RegExp(A,B):A).test(this)},contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.indexOf(A)>-1},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s+/g," ").trim()},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(A){return parseInt(this,A||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(A)?A.slice(1).hexToRgb(B):null},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null},stripScripts:function(B){var A="";var C=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return""});if(B===true){$exec(A)}else{if($type(B)=="function"){B(A,C)}}return C},substitute:function(A,B){return this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1)}return(A[C]!=undefined)?A[C]:""})}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A}}return null},hasValue:function(A){return(Hash.keyOf(this,A)!==null)},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C)},this);return this},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C)},this);return this},erase:function(A){if(this.hasOwnProperty(A)){delete this[A]}return this},get:function(A){return(this.hasOwnProperty(A))?this[A]:null},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B}return this},empty:function(){Hash.each(this,function(B,A){delete this[A]},this);return this},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C}return this},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this))},this);return A},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E)}},this);return A},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false}}return true},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true}}return false},getKeys:function(){var A=[];Hash.each(this,function(C,B){A.push(B)});return A},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B)});return A},toQueryString:function(A){var B=[];Hash.each(this,function(F,E){if(A){E=A+"["+E+"]"}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F)}if(F!=undefined){B.push(D)}});return B.join("&")}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A}this.$extended=true;var J=A.type;var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111;if(D>0&&D<13){M="f"+D}}M=M||String.fromCharCode(B).toLowerCase()}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body;var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY};if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement;break;case"mouseout":L=A.relatedTarget||A.toElement}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode}return true}).create({attempt:Browser.Engine.gecko})()){L=false}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey})}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(E){for(var D in this){this[D]=$unlink(this[D])}for(var F in Class.Mutators){if(!this[F]){continue}Class.Mutators[F](this,this[F]);delete this[F]}this.constructor=A;if(E===$empty){return this}var C=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this)}return C};$extend(A,this);A.constructor=Class;A.prototype=B;return A}});Class.implement({implement:function(){Class.Mutators.Implements(this.prototype,Array.slice(arguments));return this}});Class.Mutators={Implements:function(A,B){$splat(B).each(function(C){$extend(A,($type(C)=="class")?new C($empty):C)})},Extends:function(self,klass){var instance=new klass($empty);delete instance.parent;delete instance.parentOf;for(var key in instance){var current=self[key],previous=instance[key];if(current==undefined){self[key]=previous;continue}var ctype=$type(current),ptype=$type(previous);if(ctype!=ptype){continue}switch(ctype){case"function":if(!arguments.callee.caller){self[key]=eval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,function(full,close){return"arguments.callee._parent_.call(this"+(close||", ")})+")")}self[key]._parent_=previous;break;case"object":self[key]=$merge(previous,current)}}self.parent=function(){return arguments.callee.caller._parent_.apply(this,arguments)};self.parentOf=function(descendant){return descendant._parent_.apply(this,Array.slice(arguments,1))}}};var Chain=new Class({chain:function(){this.$chain=(this.$chain||[]).extend(arguments);return this},callChain:function(){return(this.$chain&&this.$chain.length)?this.$chain.shift().apply(this,arguments):false},clearChain:function(){if(this.$chain){this.$chain.empty()}return this}});var Events=new Class({addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events=this.$events||{};this.$events[C]=this.$events[C]||[];this.$events[C].include(B);if(A){B.internal=true}}return this},addEvents:function(A){for(var B in A){this.addEvent(B,A[B])}return this},fireEvent:function(C,B,A){C=Events.removeOn(C);if(!this.$events||!this.$events[C]){return this}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})()},this);return this},removeEvent:function(B,A){B=Events.removeOn(B);if(!this.$events||!this.$events[B]){return this}if(!A.internal){this.$events[B].erase(A)}return this},removeEvents:function(C){for(var D in this.$events){if(C&&C!=D){continue}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A])}}return this}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase()})};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue}this.addEvent(A,this.options[A]);delete this.options[A]}return this}});Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return }A+=" "+C+'="'+B[C]+'"';if(C!="checked"){delete B[C]}});A="<"+A+">"}return $.element(this.createElement(A)).set(B)},newTextNode:function(A){return this.createTextNode(A)},getDocument:function(){return this},getWindow:function(){return this.defaultView||this.parentWindow},purge:function(){var C=this.getElementsByTagName("*");for(var B=0,A=C.length;B<A;B++){Browser.freeMem(C[B])}}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A);if(C){return C(B)}if(typeof A=="string"){return document.newElement(A,B)}return $(A).set(B)},afterImplement:function(A,B){if(!Array[A]){Elements.implement(A,Elements.multi(A))}Element.Prototype[A]=B}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var E=Array.link(arguments,{properties:Object.type,iframe:$defined});var C=E.properties||{};var B=$(E.iframe)||false;var D=C.onload||$empty;delete C.onload;C.id=C.name=$pick(C.id,C.name,B.id,B.name,"IFrame_"+$time());B=new Element(B||"iframe",C);var A=function(){var F=$try(function(){return B.contentWindow.location.host});if(F&&F==window.location.host){var H=new Window(B.contentWindow);var G=new Document(B.contentWindow.document);$extend(H.Element.prototype,Element.Prototype)}D.call(B.contentWindow,B.contentWindow.document)};(!window.frames[C.id])?B.addListener("load",A):A();return B}});var Elements=new Native({initialize:function(F,B){B=$extend({ddup:true,cash:true},B);F=F||[];if(B.ddup||B.cash){var G={},E=[];for(var C=0,A=F.length;C<A;C++){var D=$.element(F[C],!B.cash);if(B.ddup){if(G[D.uid]){continue}G[D.uid]=true}E.push(D)}F=E}return(B.cash)?$extend(F,this):F}});Elements.implement({filter:function(A,B){if(!A){return this}return new Elements(Array.filter(this,(typeof A=="string")?function(C){return C.match(A)}:A,B))}});Elements.multi=function(A){return function(){var B=[];var F=true;for(var D=0,C=this.length;D<C;D++){var E=this[D][A].apply(this[D],arguments);B.push(E);if(F){F=($type(E)=="element")}}return(F)?new Elements(B):B}};Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B}var A=$type(B);return($[A])?$[A](B,C,this.document):null},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A)}var F=[];var C=Array.flatten(arguments);for(var D=0,B=C.length;D<B;D++){var E=C[D];switch($type(E)){case"element":E=[E];break;case"string":E=this.document.getElements(E,true);break;default:E=false}if(E){F.extend(E)}}return new Elements(F)},getDocument:function(){return this.document},getWindow:function(){return this}});$.string=function(C,B,A){C=A.getElementById(C);return(C)?$.element(C,B):null};$.element=function(A,D){$uid(A);if(!D&&!A.$family&&!(/^object|embed$/i).test(A.tagName)){var B=Element.Prototype;for(var C in B){A[C]=B[C]}}return A};$.object=function(B,C,A){if(B.toElement){return $.element(B.toElement(A),C)}return null};$.textnode=$.whitespace=$.window=$.document=$arguments(0);Native.implement([Element,Document],{getElement:function(A,B){return $(this.getElements(A,true)[0]||null,B)},getElements:function(A,D){A=A.split(",");var C=[];var B=(A.length>1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F},this);return new Elements(C,{ddup:B,cash:!D})}});Element.Storage={get:function(A){return(this[A]||(this[A]={}))}};Element.Inserters=new Hash({before:function(B,A){if(A.parentNode){A.parentNode.insertBefore(B,A)}},after:function(B,A){if(!A.parentNode){return }var C=A.nextSibling;(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B)},bottom:function(B,A){A.appendChild(B)},top:function(B,A){var C=A.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B)}});Element.Inserters.inside=Element.Inserters.bottom;Element.Inserters.each(function(C,B){var A=B.capitalize();Element.implement("inject"+A,function(D){C(this,$(D,true));return this});Element.implement("grab"+A,function(D){C($(D,true),this);return this})});Element.implement({getDocument:function(){return this.ownerDocument},getWindow:function(){return this.ownerDocument.getWindow()},getElementById:function(D,C){var B=this.ownerDocument.getElementById(D);if(!B){return null}for(var A=B.parentNode;A!=this;A=A.parentNode){if(!A){return null}}return $.element(B,C)},set:function(D,B){switch($type(D)){case"object":for(var C in D){this.set(C,D[C])}break;case"string":var A=Element.Properties.get(D);(A&&A.set)?A.set.apply(this,Array.slice(arguments,1)):this.setProperty(D,B)}return this},get:function(B){var A=Element.Properties.get(B);return(A&&A.get)?A.get.apply(this,Array.slice(arguments,1)):this.getProperty(B)},erase:function(B){var A=Element.Properties.get(B);(A&&A.erase)?A.erase.apply(this,Array.slice(arguments,1)):this.removeProperty(B);return this},match:function(A){return(!A||Element.get(this,"tag")==A)},inject:function(B,A){Element.Inserters.get(A||"bottom")(this,$(B,true));return this},wraps:function(B,A){B=$(B,true);return this.replaces(B).grab(B,A)},grab:function(B,A){Element.Inserters.get(A||"bottom")($(B,true),this);return this},appendText:function(B,A){return this.grab(this.getDocument().newTextNode(B),A)},adopt:function(){Array.flatten(arguments).each(function(A){A=$(A,true);if(A){this.appendChild(A)}},this);return this},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this},clone:function(D,C){switch($type(this)){case"element":var H={};for(var G=0,E=this.attributes.length;G<E;G++){var B=this.attributes[G],L=B.nodeName.toLowerCase();if(Browser.Engine.trident&&(/input/i).test(this.tagName)&&(/width|height/).test(L)){continue}var K=(L=="style"&&this.style)?this.style.cssText:B.nodeValue;if(!$chk(K)||L=="uid"||(L=="id"&&!C)){continue}if(K!="inherit"&&["string","number"].contains($type(K))){H[L]=K}}var J=new Element(this.nodeName.toLowerCase(),H);if(D!==false){for(var I=0,F=this.childNodes.length;I<F;I++){var A=Element.clone(this.childNodes[I],true,C);if(A){J.grab(A)}}}return J;case"textnode":return document.newTextNode(this.nodeValue)}return null},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this,A);return this},hasClass:function(A){return this.className.contains(A," ")},addClass:function(A){if(!this.hasClass(A)){this.className=(this.className+" "+A).clean()}return this},removeClass:function(A){this.className=this.className.replace(new RegExp("(^|\\s)"+A+"(?:\\s|$)"),"$1").clean();return this},toggleClass:function(A){return this.hasClass(A)?this.removeClass(A):this.addClass(A)},getComputedStyle:function(B){if(this.currentStyle){return this.currentStyle[B.camelCase()]}var A=this.getWindow().getComputedStyle(this,null);return(A)?A.getPropertyValue([B.hyphenate()]):null},empty:function(){$A(this.childNodes).each(function(A){Browser.freeMem(A);Element.empty(A);Element.dispose(A)},this);return this},destroy:function(){Browser.freeMem(this.empty().dispose());return null},getSelected:function(){return new Elements($A(this.options).filter(function(A){return A.selected}))},toQueryString:function(){var A=[];this.getElements("input, select, textarea").each(function(B){if(!B.name||B.disabled){return }var C=(B.tagName.toLowerCase()=="select")?Element.getSelected(B).map(function(D){return D.value}):((B.type=="radio"||B.type=="checkbox")&&!B.checked)?null:B.value;$splat(C).each(function(D){if(D){A.push(B.name+"="+encodeURIComponent(D))}})});return A.join("&")},getProperty:function(C){var B=Element.Attributes,A=B.Props[C];var D=(A)?this[A]:this.getAttribute(C,2);return(B.Bools[C])?!!D:(A)?D:D||null},getProperties:function(){var A=$A(arguments);return A.map(function(B){return this.getProperty(B)},this).associate(A)},setProperty:function(D,E){var C=Element.Attributes,B=C.Props[D],A=$defined(E);if(B&&C.Bools[D]){E=(E||!A)?true:false}else{if(!A){return this.removeProperty(D)}}(B)?this[B]=E:this.setAttribute(D,E);return this},setProperties:function(A){for(var B in A){this.setProperty(B,A[B])}return this},removeProperty:function(D){var C=Element.Attributes,B=C.Props[D],A=(B&&C.Bools[D]);(B)?this[B]=(A)?false:"":this.removeAttribute(D);return this},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this}});(function(){var A=function(D,B,I,C,F,H){var E=D[I||B];var G=[];while(E){if(E.nodeType==1&&(!C||Element.match(E,C))){G.push(E);if(!F){break}}E=E[B]}return(F)?new Elements(G,{ddup:false,cash:!H}):$(G[0],H)};Element.implement({getPrevious:function(B,C){return A(this,"previousSibling",null,B,false,C)},getAllPrevious:function(B,C){return A(this,"previousSibling",null,B,true,C)},getNext:function(B,C){return A(this,"nextSibling",null,B,false,C)},getAllNext:function(B,C){return A(this,"nextSibling",null,B,true,C)},getFirst:function(B,C){return A(this,"nextSibling","firstChild",B,false,C)},getLast:function(B,C){return A(this,"previousSibling","lastChild",B,false,C)},getParent:function(B,C){return A(this,"parentNode",null,B,false,C)},getParents:function(B,C){return A(this,"parentNode",null,B,true,C)},getChildren:function(B,C){return A(this,"nextSibling","firstChild",B,true,C)},hasChild:function(B){B=$(B,true);return(!!B&&$A(this.getElementsByTagName(B.tagName)).contains(B))}})})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};Element.Properties.href={get:function(){return(!this.href)?null:this.href.replace(new RegExp("^"+document.location.protocol+"//"+document.location.host),"")}};Element.Properties.html={set:function(){return this.innerHTML=Array.flatten(arguments).join("")}};Native.implement([Element,Window,Document],{addListener:function(B,A){if(this.addEventListener){this.addEventListener(B,A,false)}else{this.attachEvent("on"+B,A)}return this},removeListener:function(B,A){if(this.removeEventListener){this.removeEventListener(B,A,false)}else{this.detachEvent("on"+B,A)}return this},retrieve:function(B,A){var D=Element.Storage.get(this.uid);var C=D[B];if($defined(A)&&!$defined(C)){C=D[B]=A}return $pick(C)},store:function(B,A){var C=Element.Storage.get(this.uid);C[B]=A;return this},eliminate:function(A){var B=Element.Storage.get(this.uid);delete B[A];return this}});Element.Attributes=new Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"],Camels:["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]});Browser.freeMem=function(A){if(!A){return }if(Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B in A){if(typeof A[B]=="function"){A[B]=$empty}}Element.dispose(A)}if(A.uid&&A.removeEvents){A.removeEvents()}};(function(B){var C=B.Bools,A=B.Camels;B.Bools=C=C.associate(C);Hash.extend(Hash.combine(B.Props,C),A.associate(A.map(function(D){return D.toLowerCase()})));B.erase("Camels")})(Element.Attributes);window.addListener("unload",function(){window.removeListener("unload",arguments.callee);document.purge();if(Browser.Engine.trident){CollectGarbage()}});Element.Properties.events={set:function(A){this.addEvents(A)}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G)}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J)}return false}}F=A.base||F}var D=function(){return G.call(I)};var B=Element.NativeEvents[F]||0;if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow());if(C.call(I,J)===false){J.stop()}}}this.addListener(F,D)}H[E].values.push(D);return this},removeEvent:function(D,C){var B=this.retrieve("events");if(!B||!B[D]){return this}var G=B[D].keys.indexOf(C);if(G==-1){return this}var A=B[D].keys.splice(G,1)[0];var F=B[D].values.splice(G,1)[0];var E=Element.Events.get(D);if(E){if(E.onRemove){E.onRemove.call(this,C)}D=E.base||D}return(Element.NativeEvents[D])?this.removeListener(D,F):this},addEvents:function(A){for(var B in A){this.addEvent(B,A[B])}return this},removeEvents:function(B){var A=this.retrieve("events");if(!A){return this}if(!B){for(var C in A){this.removeEvents(C)}A=null}else{if(A[B]){while(A[B].keys[0]){this.removeEvent(B,A[B].keys[0])}A[B]=null}}return this},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})()},this);return this},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this}if(!A){for(var B in C){this.cloneEvents(D,B)}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E)},this)}}return this}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true}if(C===false){return false}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C))};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}})})();Element.Properties.styles={set:function(A){this.setStyles(A)}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"}}else{if(this.style.visibility!="visible"){this.style.visibility="visible"}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")"}this.style.opacity=A;this.store("opacity",A)},get:function(){return this.retrieve("opacity",1)}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true)},getOpacity:function(){return this.get("opacity")},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat"}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return""}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E}).join(" ")}else{if(A==String(Number(A))){A=Math.round(A)}}this.style[B]=A;return this},getStyle:function(G){switch(G){case"opacity":return this.get("opacity");case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat"}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E))}return A.join(" ")}A=this.getComputedStyle(G)}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/);if(C){A=A.replace(C[0],C[0].rgbToHex())}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0;B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt()},this);return this["offset"+G.capitalize()]-D+"px"}if(Browser.Engine.presto&&String(A).test("px")){return A}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px"}}return A},setStyles:function(B){for(var A in B){this.setStyle(A,B[A])}return this},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B)},this);return A}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles;var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px"});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color";F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)"});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I)}else{this.scrollLeft=H;this.scrollTop=I}return this},getSize:function(){if(B(this)){return this.getWindow().getSize()}return{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize()}return{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){if(B(this)){return this.getWindow().getScroll()}return{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode}return H},getOffsetParent:function(){var H=this;if(B(H)){return null}if(!Browser.Engine.trident){return H.offsetParent}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H}}return null},getOffsets:function(){var I=this,H={x:0,y:0};if(B(this)){return H}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I)}var J=I.parentNode;if(J&&D(J,"overflow")!="visible"){H.x+=C(J);H.y+=G(J)}}else{if(I!=this&&(Browser.Engine.trident||Browser.Engine.webkit)){H.x+=C(I);H.y+=G(I)}}I=I.offsetParent;if(Browser.Engine.trident){while(I&&!I.currentStyle.hasLayout){I=I.offsetParent}}}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this)}return H},getPosition:function(K){if(B(this)){return{x:0,y:0}}var L=this.getOffsets(),I=this.getScrolls();var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y}},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates()}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")}},position:function(H){return this.setStyles(this.computePosition(H))}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow();if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight}}var H=A(this);return{x:H.clientWidth,y:H.clientHeight}},getScroll:function(){var I=this.getWindow();var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop}},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x}}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0}function F(H){return D(H,"-moz-box-sizing")=="border-box"}function G(H){return E(H,"border-top-width")}function C(H){return E(H,"border-left-width")}function B(H){return(/^(?:body|html)$/i).test(H.tagName)}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y},getWidth:function(){return this.getSize().x},getScrollTop:function(){return this.getScroll().y},getScrollLeft:function(){return this.getScroll().x},getScrollHeight:function(){return this.getScrollSize().y},getScrollWidth:function(){return this.getScrollSize().x},getTop:function(){return this.getPosition().y},getLeft:function(){return this.getPosition().x}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(",");var C,E={};for(var D=0,B=H.length;D<B;D++){var A=H[D],F=Selectors.Utils.search(this,A,E);if(D!=0&&F.item){F=$A(F)}C=(D==0)?F:(C.item)?$A(C).concat(F):C.concat(F)}return new Elements(C,{ddup:(H.length>1),cash:!G})}});Element.implement({match:function(B){if(!B){return true}var D=Selectors.Utils.parseTagAndID(B);var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(B,C){if(!C){return true}var A=$uid(B);if(!C[A]){return C[A]=true}return false},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F]}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0;if(B!=0){A--;while(A<1){A+=B}while(A>=B){A-=B}}else{B=A;D="index"}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"};break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"};break;default:C={a:(B-1),special:"index"}}return Selectors.Cache.nth[F]=C},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E]}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[4],C=D[5],J=D[6];if(I){H.classes.push(I)}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J})}else{H.attributes.push({name:C,operator:"=",value:J})}}else{if(G){H.attributes.push({name:G,operator:F,value:B})}}}}if(!H.classes.length){delete H.classes}if(!H.attributes.length){delete H.attributes}if(!H.pseudos.length){delete H.pseudos}if(!H.classes&&!H.attributes&&!H.pseudos){H=null}return Selectors.Cache.parsed[E]=H},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false]},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false}}}if(C.attributes){for(D=C.attributes.length;D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D];if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false}}}return true},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true);return(C&&Selectors.Filters.byTag(C,A))?[C]:[]}else{return B.getElementsByTagName(A)}},search:function(J,I,O){var B=[];var C=I.trim().replace(Selectors.RegExps.splitter,function(Z,Y,X){B.push(Y);return":)"+X}).split(":)");var K,F,E,V;for(var U=0,Q=C.length;U<Q;U++){var T=C[U];if(U==0&&Selectors.RegExps.quick.test(T)){K=J.getElementsByTagName(T);continue}var A=B[U-1];var L=Selectors.Utils.parseTagAndID(T);var W=L[0],M=L[1];if(U==0){K=Selectors.Utils.getByTagAndID(J,W,M)}else{var D={},H=[];for(var S=0,R=K.length;S<R;S++){H=Selectors.Getters[A](H,K[S],W,M,D)}K=H}var G=Selectors.Utils.parseSelector(T);if(G){E=[];for(var P=0,N=K.length;P<N;P++){V=K[P];if(Selectors.Utils.filter(V,G,O)){E.push(V)}}K=E}}return K}};Selectors.Getters={" ":function(H,G,I,A,E){var D=Selectors.Utils.getByTagAndID(G,I,A);for(var C=0,B=D.length;C<B;C++){var F=D[C];if(Selectors.Utils.chk(F,E)){H.push(F)}}return H},">":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;E<D;E++){var B=C[E];if(B.parentNode==G&&Selectors.Utils.chk(B,F)){H.push(B)}}return H},"+":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(Selectors.Utils.chk(B,D)&&Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B)}break}}return C},"~":function(C,B,A,E,D){while((B=B.nextSibling)){if(B.nodeType==1){if(!Selectors.Utils.chk(B,D)){break}if(Selectors.Filters.byTag(B,A)&&Selectors.Filters.byID(B,E)){C.push(B)}}}return C}};Selectors.Filters={byTag:function(B,A){return(A=="*"||(B.tagName&&B.tagName.toLowerCase()==A))},byID:function(A,B){return(!B||(A.id&&A.id==B))},byClass:function(B,A){return(B.className&&B.className.contains(A," "))},byPseudo:function(A,D,C,B){return D.call(A,C,B)},byAttribute:function(C,D,B,E){var A=Element.prototype.getProperty.call(C,D);if(!A){return false}if(!B||E==undefined){return true}switch(B){case"=":return(A==E);case"*=":return(A.contains(E));case"^=":return(A.substr(0,E.length)==E);case"$=":return(A.substr(A.length-E.length)==E);case"!=":return(A!=E);case"~=":return A.contains(E," ");case"|=":return A.contains(E,"-")}return false}};Selectors.Pseudo=new Hash({empty:function(){return !(this.innerText||this.textContent||"").length},not:function(A){return !Element.match(this,A)},contains:function(A){return(this.innerText||this.textContent||"").contains(A)},"first-child":function(){return Selectors.Pseudo.index.call(this,0)},"last-child":function(){var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false}}return true},"only-child":function(){var B=this;while((B=B.previousSibling)){if(B.nodeType==1){return false}}var A=this;while((A=A.nextSibling)){if(A.nodeType==1){return false}}return true},"nth-child":function(G,E){G=(G==undefined)?"n":G;var C=Selectors.Utils.parseNthArgument(G);if(C.special!="n"){return Selectors.Pseudo[C.special].call(this,C.a,E)}var F=0;E.positions=E.positions||{};var D=$uid(this);if(!E.positions[D]){var B=this;while((B=B.previousSibling)){if(B.nodeType!=1){continue}F++;var A=E.positions[$uid(B)];if(A!=undefined){F=A+F;break}}E.positions[D]=F}return(E.positions[D]%C.a==C.b)},index:function(A){var B=this,C=0;while((B=B.previousSibling)){if(B.nodeType==1&&++C>A){return false}}return(C==A)},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A)},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A)}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this)}}};(function(){var B=function(){if(Browser.loaded){return }Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready")};switch(Browser.Engine.name){case"webkit":(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50)})();break;case"trident":var A=document.createElement("div");(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose()}))?B():arguments.callee.delay(50)})();break;default:window.addEvent("load",B);document.addEvent("DOMContentLoaded",B)}})();var JSON=new Hash({encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C)}});return"{"+A+"}";case"number":case"boolean":return String(B);case false:return"null"}return null},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16)},decode:function(string,secure){if($type(string)!="string"||!string.length){return null}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+string+")")}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this)}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B;this.setOptions(A)},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain}if(this.options.path){B+="; path="+this.options.path}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString()}if(this.options.secure){B+="; secure"}this.options.document.cookie=this.key+"="+B;return this},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(A)?decodeURIComponent(A[1]):null},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C)};Cookie.read=function(A){return new Cookie(A).read()};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose()};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={};var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments)}})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";E.movie=L}else{H.type="application/x-shockwave-flash";H.data=L}var J='<object id="'+B+'"';for(var I in H){J+=" "+I+'="'+H[I]+'"'}J+=">";for(var C in E){if(E[C]){J+='<param name="'+C+'" value="'+E[C]+'" />'}}J+="</object>";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A);return this},inject:function(A){$(A,true).appendChild(this.toElement());return this},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments))}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");return eval(rs)};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore",transition:function(A){return -(Math.cos(Math.PI*A)-1)/2}},initialize:function(A){this.subject=this.subject||this;this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel"}},step:function(){var A=$time();if(A<this.time+this.options.duration){var B=this.options.transition((A-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,B))}else{this.set(this.compute(this.from,this.to,1));this.complete()}},set:function(A){return A},compute:function(C,B,A){return Fx.compute(C,B,A)},check:function(A){if(!this.timer){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false}return false},start:function(B,A){if(!this.check(arguments.callee,B,A)){return this}this.from=B;this.to=A;this.time=0;this.startTimer();this.onStart();return this},complete:function(){if(this.stopTimer()){this.onComplete()}return this},cancel:function(){if(this.stopTimer()){this.onCancel()}return this},onStart:function(){this.fireEvent("start",this.subject)},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject)}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain()},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer){return false}this.time=$time()-this.time;this.timer=$clear(this.timer);return true},startTimer:function(){if(this.timer){return false}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true}});Fx.compute=function(C,B,A){return(B-C)*A+C};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(D,E,B){B=$splat(B);var C=B[1];if(!$chk(C)){B[1]=B[0];B[0]=D.getStyle(E)}var A=B.map(this.parse);return{from:A[0],to:A[1]}},parse:function(A){A=$lambda(A)();A=(typeof A=="string")?A.split(" "):$splat(A);return A.map(function(C){C=String(C);var B=false;Fx.CSS.Parsers.each(function(F,E){if(B){return }var D=F.parse(C);if($chk(D)){B={value:D,parser:F}}});B=B||{value:C,parser:Fx.CSS.Parsers.String};return B})},compute:function(D,C,B){var A=[];(Math.min(D.length,C.length)).times(function(E){A.push({value:D[E].parser.compute(D[E].value,C[E].value,B),parser:D[E].parser})});A.$family={name:"fx:css:value"};return A},serve:function(C,B){if($type(C)!="fx:css:value"){C=this.parse(C)}var A=[];C.each(function(D){A=A.concat(D.parser.serve(D.value,B))});return A},render:function(A,D,C,B){A.setStyle(D,this.serve(C,B))},search:function(A){if(Fx.CSS.Cache[A]){return Fx.CSS.Cache[A]}var B={};Array.each(document.styleSheets,function(E,D){var C=E.href;if(C&&C.contains("://")&&!C.contains(document.domain)){return }var F=E.rules||E.cssRules;Array.each(F,function(I,G){if(!I.style){return }var H=(I.selectorText)?I.selectorText.replace(/^\w+/,function(J){return J.toLowerCase()}):null;if(!H||!H.test("^"+A+"$")){return }Element.Styles.each(function(K,J){if(!I.style[J]||Element.ShortStyles[J]){return }K=String(I.style[J]);B[J]=(K.test(/^rgb/))?K.rgbToHex():K})})});return Fx.CSS.Cache[A]=B}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(A){if(A.match(/^#[0-9a-f]{3,6}$/i)){return A.hexToRgb(true)}return((A=A.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[A[1],A[2],A[3]]:false},compute:function(C,B,A){return C.map(function(E,D){return Math.round(Fx.compute(C[D],B[D],A))})},serve:function(A){return A.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(B,A){return(A)?B+A:B}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A)},set:function(B,A){if(arguments.length==1){A=B;B=this.property||this.options.property}this.render(this.element,B,A,this.options.unit);return this},start:function(C,E,D){if(!this.check(arguments.callee,C,E,D)){return this}var B=Array.flatten(arguments);this.property=this.options.property||B.shift();var A=this.prepare(this.element,this.property,B);return this.parent(A.from,A.to)}});Element.Properties.tween={set:function(A){var B=this.retrieve("tween");if(B){B.cancel()}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},A))},get:function(A){if(A||!this.retrieve("tween")){if(A||!this.retrieve("tween:options")){this.set("tween",A)}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")))}return this.retrieve("tween")}};Element.implement({tween:function(A,C,B){this.get("tween").start(arguments);return this},fade:function(C){var E=this.get("tween"),D="opacity",A;C=$pick(C,"toggle");switch(C){case"in":E.start(D,1);break;case"out":E.start(D,0);break;case"show":E.set(D,1);break;case"hide":E.set(D,0);break;case"toggle":var B=this.retrieve("fade:flag",this.get("opacity")==1);E.start(D,(B)?0:1);this.store("fade:flag",!B);A=true;break;default:E.start(D,arguments)}if(!A){this.eliminate("fade:flag")}return this},highlight:function(C,A){if(!A){A=this.retrieve("highlight:original",this.getStyle("background-color"));A=(A=="transparent")?"#fff":A}var B=this.get("tween");B.start("background-color",C||"#ffff88",A).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));B.callChain()}.bind(this));return this}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(B,A){this.element=this.subject=$(B);this.parent(A)},set:function(A){if(typeof A=="string"){A=this.search(A)}for(var B in A){this.render(this.element,B,A[B],this.options.unit)}return this},compute:function(E,D,C){var A={};for(var B in E){A[B]=this.parent(E[B],D[B],C)}return A},start:function(B){if(!this.check(arguments.callee,B)){return this}if(typeof B=="string"){B=this.search(B)}var E={},D={};for(var C in B){var A=this.prepare(this.element,C,B[C]);E[C]=A.from;D[C]=A.to}return this.parent(E,D)}});Element.Properties.morph={set:function(A){var B=this.retrieve("morph");if(B){B.cancel()}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},A))},get:function(A){if(A||!this.retrieve("morph")){if(A||!this.retrieve("morph:options")){this.set("morph",A)}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")))}return this.retrieve("morph")}};Element.implement({morph:function(A){this.get("morph").start(A);return this}});(function(){var A=Fx.prototype.initialize;Fx.prototype.initialize=function(B){A.call(this,B);var C=this.options.transition;if(typeof C=="string"&&(C=C.split(":"))){var D=Fx.Transitions;D=D[C[0]]||D[C[0].capitalize()];if(C[1]){D=D["ease"+C[1].capitalize()+(C[2]?C[2].capitalize():"")]}this.options.transition=D}}})();Fx.Transition=function(B,A){A=$splat(A);return $extend(B,{easeIn:function(C){return B(C,A)},easeOut:function(C){return 1-B(1-C,A)},easeInOut:function(C){return(C<=0.5)?B(2*C,A)/2:(2-B(2*(1-C),A))/2}})};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(A){for(var B in A){Fx.Transitions[B]=new Fx.Transition(A[B])}};Fx.Transitions.extend({Pow:function(B,A){return Math.pow(B,A[0]||6)},Expo:function(A){return Math.pow(2,8*(A-1))},Circ:function(A){return 1-Math.sin(Math.acos(A))},Sine:function(A){return 1-Math.sin((1-A)*Math.PI/2)},Back:function(B,A){A=A[0]||1.618;return Math.pow(B,2)*((A+1)*B-A)},Bounce:function(D){var C;for(var B=0,A=1;1;B+=A,A/=2){if(D>=(7-4*B)/11){C=-Math.pow((11-6*B-11*D)/4,2)+A*A;break}}return C},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2])})});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request();this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers)},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return }this.running=false;this.status=0;$try(function(){this.status=this.xhr.status}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml)}else{this.response={text:null,xml:null};this.failure()}this.xhr.onreadystatechange=$empty},isSuccess:function(){return((this.status>=200)&&(this.status<300))},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A)}return A.stripScripts(this.options.evalScripts)},success:function(B,A){this.onSuccess(this.processScripts(B),A)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr)},setHeader:function(A,B){this.headers.set(A,B);return this},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A)}.bind(this))},check:function(A){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false}return false},send:function(I){if(!this.check(arguments.callee,I)){return this}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I}}var D=this.options;I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E)}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A;E=(E)?F+"&"+E:F;A="post"}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C)}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(K,J){if(!$try(function(){this.xhr.setRequestHeader(J,K);return true}.bind(this))){this.fireEvent("exception",[J,K])}},this);this.fireEvent("request");this.xhr.send(E);if(!this.options.async){this.onStateChange()}return this},cancel:function(){if(!this.running){return this}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});(function(){var A={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(C,{method:B.toLowerCase()}))}});Request.implement(A)})();Element.Properties.send={set:function(A){var B=this.retrieve("send");if(B){B.cancel()}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A))},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A)}this.store("send",new Request(this.retrieve("send:options")))}return this.retrieve("send")}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/<body[^>]*>([\s\S]*?)<\/body>/i);C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D="<root>"+C+"</root>",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM");G.async=false;G.loadXML(D)}else{G=new DOMParser().parseFromString(D,"text/xhtml")}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length;F<E;F++){var H=Element.clone(D.childNodes[F],true,true);if(H){A.grab(H)}}return A})||A.set("html",C)},success:function(D){var C=this.options,B=this.response;B.html=D.stripScripts(function(E){B.javascript=E});var A=this.processHTML(B.html);B.tree=A.childNodes;B.elements=A.getElements("*");if(C.filter){B.tree=B.elements.filter(C.filter)}if(C.update){$(C.update).empty().adopt(B.tree)}if(C.evalScripts){$exec(B.javascript)}this.onSuccess(B.tree,B.elements,B.html,B.javascript)}});Element.Properties.load={set:function(A){var B=this.retrieve("load");if(B){send.cancel()}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},A))},get:function(A){if(A||!this.retrieve("load")){if(A||!this.retrieve("load:options")){this.set("load",A)}this.store("load",new Request.HTML(this.retrieve("load:options")))}return this.retrieve("load")}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(A){this.parent(A);this.headers.extend({Accept:"application/json","X-Request":"JSON"})},success:function(A){this.response.json=JSON.decode(A,this.options.secure);this.onSuccess(this.response.json,A)}});Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(B,A){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper)}},true);this.element=this.subject=$(B);this.parent(A);var C=this.element.retrieve("wrapper");this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth},set:function(A){this.element.setStyle(this.margin,A[0]);this.wrapper.setStyle(this.layout,A[1]);return this},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B[F]=Fx.compute(E[F],D[F],C)});return B},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this}this[E||this.options.mode]();var D=this.element.getStyle(this.margin).toInt();var C=this.wrapper.getStyle(this.layout).toInt();var A=[[D,C],[0,this.offset]];var G=[[D,C],[-this.offset,0]];var F;switch(B){case"in":F=A;break;case"out":F=G;break;case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G}return this.parent(F[0],F[1])},slideIn:function(A){return this.start("in",A)},slideOut:function(A){return this.start("out",A)},hide:function(A){this[A||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(A){this[A||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(A){return this.start("toggle",A)}});Element.Properties.slide={set:function(B){var A=this.retrieve("slide");if(A){A.cancel()}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B))},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A)}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")))}return this.retrieve("slide")}};Element.implement({slide:function(D,E){D=D||"toggle";var B=this.get("slide"),A;switch(D){case"hide":B.hide(E);break;case"show":B.show(E);break;case"toggle":var C=this.retrieve("slide:flag",B.open);B[(C)?"slideOut":"slideIn"](E);this.store("slide:flag",!C);A=true;break;default:B.start(D,E)}if(!A){this.eliminate("slide:flag")}return this}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body)}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D)},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D)},true)}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1])},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C))});return B},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A}else{D[G]=B[G]}D[G]+=this.options.offset[G]}return this.parent([B.x,B.y],[D.x,D.y])},toTop:function(){return this.start(false,0)},toLeft:function(){return this.start(0,false)},toRight:function(){return this.start("right",false)},toBottom:function(){return this.start(false,"bottom")},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y)}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);this.parent(A)},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};for(var B in A){F[B]=this.parent(A[B],E[B],I)}}return C},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit)}}return this},start:function(C){if(!this.check(arguments.callee,C)){return this}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);A[B]=E.from;G[B]=E.to}}return this.parent(H,I)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(C){C.stop();if(this.options.preventDefault){C.preventDefault()}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt()}else{this.value.now[D]=this.element[this.options.modifiers[D]]}if(this.options.invert){this.value.now[D]*=-1}this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(A){if(this.options.preventDefault){A.preventDefault()}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element)}},drag:function(A){if(this.options.preventDefault){A.preventDefault()}this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1]}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0]}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B])}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit)}else{this.element[this.options.modifiers[B]]=this.value.now[B]}}this.fireEvent("drag",this.element)},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(A){this.fireEvent("complete",this.element)}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A))}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false},initialize:function(C,B){this.parent(C,B);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body)}C=this.element;var D=C.getStyle("position");var A=(D!="static")?D:"absolute";if(C.getStyle("left")=="auto"||C.getStyle("top")=="auto"){C.position(C.getPosition(C.offsetParent))}C.setStyle("position",A);this.addEvent("start",function(){this.checkDroppables()},true)},start:function(B){if(this.container){var D=this.element,J=this.container,E=J.getCoordinates(D.offsetParent),F={},A={};["top","right","bottom","left"].each(function(K){F[K]=J.getStyle("padding-"+K).toInt();A[K]=D.getStyle("margin-"+K).toInt()},this);var C=D.offsetWidth+A.left+A.right,I=D.offsetHeight+A.top+A.bottom;var H=[E.left+F.left,E.right-F.right-C];var G=[E.top+F.top,E.bottom-F.bottom-I];this.options.limit={x:H,y:G}}this.parent(B)},checkAgainst:function(B){B=B.getCoordinates();var A=this.mouse.now;return(A.x>B.left&&A.x<B.right&&A.y<B.bottom&&A.y>B.top)},checkDroppables:function(){var A=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=A){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(A){this.overed=A;this.fireEvent("enter",[this.element,A])}else{this.overed=null}}},drag:function(A){this.parent(A);if(this.droppables.length){this.checkDroppables()}},stop:function(A){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed]);this.overed=null;return this.parent(A)}});Element.implement({makeDraggable:function(A){return new Drag.Move(this,A)}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(B,A){this.parent(B,A);this.load()},save:function(){var A=JSON.encode(this.hash);if(!A||A.length>4096){return false}if(A=="{}"){this.dispose()}else{this.write(A)}return true},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this}});Hash.Cookie.implement((function(){var A={};Hash.each(Hash.prototype,function(C,B){A[B]=function(){var D=C.apply(this.hash,arguments);if(this.options.autoSave){this.save()}return D}});return A})());var Color=new Native({initialize:function(B,C){if(arguments.length>=3){C="rgb";B=Array.slice(arguments,0,3)}else{if(typeof B=="string"){if(B.match(/rgb/)){B=B.rgbToHex().hexToRgb(true)}else{if(B.match(/hsb/)){B=B.hsbToRgb()}else{B=B.hexToRgb(true)}}}}C=C||"rgb";switch(C){case"hsb":var A=B;B=B.hsbToRgb();B.hsb=A;break;case"hex":B=B.hexToRgb(true);break}B.rgb=B.slice(0,3);B.hsb=B.hsb||B.rgbToHsb();B.hex=B.rgbToHex();return $extend(B,this)}});Color.implement({mix:function(){var A=Array.slice(arguments);var C=($type(A.getLast())=="number")?A.pop():50;var B=this.slice();A.each(function(D){D=new Color(D);for(var E=0;E<3;E++){B[E]=Math.round((B[E]/100*(100-C))+(D[E]/100*C))}});return new Color(B,"rgb")},invert:function(){return new Color(this.map(function(A){return 255-A}))},setHue:function(A){return new Color([A,this.hsb[1],this.hsb[2]],"hsb")},setSaturation:function(A){return new Color([this.hsb[0],A,this.hsb[2]],"hsb")},setBrightness:function(A){return new Color([this.hsb[0],this.hsb[1],A],"hsb")}});function $RGB(C,B,A){return new Color([C,B,A],"rgb")}function $HSB(C,B,A){return new Color([C,B,A],"hsb")}function $HEX(A){return new Color(A,"hex")}Array.implement({rgbToHsb:function(){var B=this[0],C=this[1],J=this[2];var G,F,H;var I=Math.max(B,C,J),E=Math.min(B,C,J);var K=I-E;H=I/255;F=(I!=0)?K/I:0;if(F==0){G=0}else{var D=(I-B)/K;var A=(I-C)/K;var L=(I-J)/K;if(B==I){G=L-A}else{if(C==I){G=2+D-L}else{G=4+A-D}}G/=6;if(G<0){G++}}return[Math.round(G*360),Math.round(F*100),Math.round(H*100)]},hsbToRgb:function(){var C=Math.round(this[2]/100*255);if(this[1]==0){return[C,C,C]}else{var A=this[0]%360;var E=A%60;var F=Math.round((this[2]*(100-this[1]))/10000*255);var D=Math.round((this[2]*(6000-this[1]*E))/600000*255);var B=Math.round((this[2]*(6000-this[1]*(60-E)))/600000*255);switch(Math.floor(A/60)){case 0:return[C,B,F];case 1:return[D,C,F];case 2:return[F,C,B];case 3:return[F,D,C];case 4:return[B,F,C];case 5:return[C,F,D]}}return false}});String.implement({rgbToHsb:function(){var A=this.match(/\d{1,3}/g);return(A)?hsb.rgbToHsb():null},hsbToRgb:function(){var A=this.match(/\d{1,3}/g);return(A)?A.hsbToRgb():null}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={}},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};this.events[B]=this.events[B]||[];if(this.events[B].contains(A)){return false}else{this.events[B].push(A)}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]))},this);return this},check:function(C,A,B){this.checker[C][B]=true;var D=this.instances.every(function(F,E){return this.checker[C][E]||false},this);if(!D){return }this.checker[C]={};this.events[C].each(function(E){E.call(this,this.instances,A)},this)}});var Asset=new Hash({javascript:function(F,D){D=$extend({onload:$empty,document:document,check:$lambda(true)},D);var B=new Element("script",{src:F,type:"text/javascript"});var E=D.onload.bind(B),A=D.check,G=D.document;delete D.onload;delete D.check;delete D.document;B.addEvents({load:E,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){E()}}}).setProperties(D);if(Browser.Engine.webkit419){var C=(function(){if(!$try(A)){return }$clear(C);E()}).periodical(50)}return B.inject(G.head)},css:function(B,A){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:B},A)).inject(document.head)},image:function(C,B){B=$merge({onload:$empty,onabort:$empty,onerror:$empty},B);var D=new Image();var A=$(D)||new Element("img");["load","abort","error"].each(function(E){var F="on"+E;var G=B[F];delete B[F];D[F]=function(){if(!D){return }if(!A.parentNode){A.width=D.width;A.height=D.height}D=D.onload=D.onabort=D.onerror=null;G.delay(1,A,A);A.fireEvent(E,A,1)}});D.src=A.src=C;if(D&&D.complete){D.onload.delay(1)}return A.setProperties(B)},images:function(D,C){C=$merge({onComplete:$empty,onProgress:$empty},C);if(!D.push){D=[D]}var A=[];var B=0;D.each(function(F){var E=new Asset.image(F,{onload:function(){C.onProgress.call(this,B,D.indexOf(F));B++;if(B==D.length){C.onComplete()}}});A.push(E)});return new Elements(A)}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(A,B){this.setOptions(B);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(A)||A));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(A){this.elements.push(A);var B=A.retrieve("sortables:start",this.start.bindWithEvent(this,A));(this.options.handle?A.getElement(this.options.handle)||A:A).addEvent("mousedown",B)},this);return this},addLists:function(){Array.flatten(arguments).each(function(A){this.lists.push(A);this.addItems(A.getChildren())},this);return this},removeItems:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.elements.erase(B);var C=B.retrieve("sortables:start");(this.options.handle?B.getElement(this.options.handle)||B:B).removeEvent("mousedown",C)},this);return $$(A)},removeLists:function(){var A=[];Array.flatten(arguments).each(function(B){A.push(B);this.lists.erase(B);this.removeItems(B.getChildren())},this);return $$(A)},getClone:function(B,A){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,B,A,this.list)}return A.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:A.getStyle("width")}).inject(this.list).position(A.getPosition(A.getOffsetParent()))},getDroppables:function(){var A=this.list.getChildren();if(!this.options.constrain){A=this.lists.concat(A).erase(this.list)}return A.erase(this.clone).erase(this.element)},insert:function(C,B){var A="inside";if(this.lists.contains(B)){this.list=B;this.drag.droppables=this.getDroppables()}else{A=this.element.getAllPrevious().contains(B)?"before":"after"}this.element.inject(B,A);this.fireEvent("sort",[this.element,this.clone])},start:function(B,A){if(!this.idle){return }this.idle=false;this.element=A;this.opacity=A.get("opacity");this.list=A.getParent();this.clone=this.getClone(B,A);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){B.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(B)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var A=this.element.getStyles("width","height");var B=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:B.top,left:B.left,width:A.width,height:A.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var C=Array.link(arguments,{modifier:Function.type,index:$defined});var B=this.lists.map(function(D){return D.getChildren().map(C.modifier||function(E){return E.get("id")},this)},this);var A=C.index;if(this.lists.length==1){A=0}return $chk(A)&&A>=0&&A<this.lists.length?B[A]:B}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(A){A.setStyle("visibility","visible")},onHide:function(A){A.setStyle("visibility","hidden")},showDelay:100,hideDelay:100,className:null,offsets:{x:16,y:16},fixed:false},initialize:function(){var C=Array.link(arguments,{options:Object.type,elements:$defined});this.setOptions(C.options||null);this.tip=new Element("div").inject(document.body);if(this.options.className){this.tip.addClass(this.options.className)}var B=new Element("div",{"class":"tip-top"}).inject(this.tip);this.container=new Element("div",{"class":"tip"}).inject(this.tip);var A=new Element("div",{"class":"tip-bottom"}).inject(this.tip);this.tip.setStyles({position:"absolute",top:0,left:0,visibility:"hidden"});if(C.elements){this.attach(C.elements)}},attach:function(A){$$(A).each(function(D){var G=D.retrieve("tip:title",D.get("title"));var F=D.retrieve("tip:text",D.get("rel")||D.get("href"));var E=D.retrieve("tip:enter",this.elementEnter.bindWithEvent(this,D));var C=D.retrieve("tip:leave",this.elementLeave.bindWithEvent(this,D));D.addEvents({mouseenter:E,mouseleave:C});if(!this.options.fixed){var B=D.retrieve("tip:move",this.elementMove.bindWithEvent(this,D));D.addEvent("mousemove",B)}D.store("tip:native",D.get("title"));D.erase("title")},this);return this},detach:function(A){$$(A).each(function(C){C.removeEvent("mouseenter",C.retrieve("tip:enter")||$empty);C.removeEvent("mouseleave",C.retrieve("tip:leave")||$empty);C.removeEvent("mousemove",C.retrieve("tip:move")||$empty);C.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");var B=C.retrieve("tip:native");if(B){C.set("title",B)}});return this},elementEnter:function(B,A){$A(this.container.childNodes).each(Element.dispose);var D=A.retrieve("tip:title");if(D){this.titleElement=new Element("div",{"class":"tip-title"}).inject(this.container);this.fill(this.titleElement,D)}var C=A.retrieve("tip:text");if(C){this.textElement=new Element("div",{"class":"tip-text"}).inject(this.container);this.fill(this.textElement,C)}this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);this.position((!this.options.fixed)?B:{page:A.getPosition()})},elementLeave:function(A){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this)},elementMove:function(A){this.position(A)},position:function(D){var B=window.getSize(),A=window.getScroll();var E={x:this.tip.offsetWidth,y:this.tip.offsetHeight};var C={x:"left",y:"top"};for(var F in C){var G=D.page[F]+this.options.offsets[F];if((G+E[F]-A[F])>B[F]){G=D.page[F]-this.options.offsets[F]-E[F]}this.tip.setStyle(C[F],G)}},fill:function(A,B){(typeof B=="string")?A.set("html",B):A.adopt(B)},show:function(){this.fireEvent("show",this.tip)},hide:function(){this.fireEvent("hide",this.tip)}});var SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(B,C){C=C||document;var E=C.getDocument(),D=C.getWindow();this.parent(E,B);this.links=(this.options.links)?$$(this.options.links):$$(E.links);var A=D.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(G){if(G.href.indexOf(A)!=0){return }var F=G.href.substr(A.length);if(F&&$(F)){this.useLink(G,F)}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){D.location.hash=this.anchor},true)}},useLink:function(B,A){B.addEvent("click",function(C){this.anchor=A;this.toElement(A);C.stop()}.bind(this))}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step)}this.knob.setStyle(this.property,A)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this))}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";F="offsetWidth"}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min}if(!((this.range>0)^(A>this.max))){A=this.max}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this},clickedElement:function(C){C.stop();var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A)},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop()},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B)}},initialize:function(B,A){this.setOptions(A);this.element=$(B);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.coord=this.getCoords.bind(this)},start:function(){this.listener.addEvent("mousemove",this.coord)},stop:function(){this.listener.removeEvent("mousemove",this.coord);this.timer=$clear(this.timer)},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;if(!this.timer){this.timer=this.scroll.periodical(50,this)}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y])}}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B])}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E])}else{for(var F in this.effects){E.setStyle(F,0)}}},this);if($chk(this.options.display)){this.display(this.options.display)}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after")}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container)}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight}C.setStyle("overflow","hidden");if(!F){for(var D in this.effects){C.setStyle(D,0)}}return this},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]]}},this);return this.start(B)}});window.addEvent("load",function(){if(!("console" in window)||!("firebug" in window.console)){var B=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var A=0;A<B.length;++A){window.console[B[A]]=function(){}}}});(function(){var A=navigator.userAgent.toLowerCase();var B=A.indexOf("msie")>-1,D=A.indexOf("msie 7")>-1;if(B&&!D){try{document.execCommand("BackgroundImageCache",false,true)}catch(C){}}})();if(typeof Jx=="undefined"){var Jx={};(function(){var C=document.getElementsByTagName("SCRIPT");for(var A=0;A<C.length;A++){var B=C[A].src;var D=/(.*)(js|lib\/)jxlib(.*)/.exec(B);if(D&&D[0]){Jx.aPixel=document.createElement("img");Jx.aPixel.src=D[1]+"/images/a_pixel.png";Jx.baseURL=Jx.aPixel.src.substring(0,Jx.aPixel.src.indexOf("images/a_pixel.png"))}}})()}Jx.applyPNGFilter=function(C){var A=Jx.baseURL+"images/a_pixel.png";if(C.src!=A){var B=C.src;C.src=A;C.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+B+"',sizingMethod='scale')"}};Jx.imgQueue=[];Jx.imgLoaded={};Jx.imagesLoading=0;Jx.addToImgQueue=function(A){if(Jx.imgLoaded[A.src]){A.element.src=A.src}else{Jx.imgQueue.push(A);Jx.imgLoaded[A.src]=true}Jx.checkImgQueue()};Jx.checkImgQueue=function(){while(Jx.imagesLoading<2&&Jx.imgQueue.length>0){Jx.loadNextImg()}};Jx.loadNextImg=function(){var A=Jx.imgQueue.shift();if(A){++Jx.imagesLoading;A.element.onload=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.onerror=function(){--Jx.imagesLoading;Jx.checkImgQueue()};A.element.src=A.src}};Jx.createIframeShim=function(){return new Element("iframe",{"class":"jxIframeShim",scrolling:"no",frameborder:0})};Jx.UniqueId=new Class({uniqueIdRefs:null,initUniqueId:function(){this.uniqueIdRefs=[]},deregisterIds:function(){this.uniqueIdRefs=[]},registerIds:function(C,A){if(C.indexOf(A.id)!=-1){this.uniqueIdRefs[A.id]=A}for(var B=0;B<A.childNodes.length;B++){this.registerIds(C,A.childNodes[B])}},getObj:function(A){return this.uniqueIdRefs[A]||null}});Element.implement({getBoxSizing:function(){var B="content-box";if(Browser.Engine.trident||Browser.Engine.presto){var A=document.compatMode;if(A=="BackCompat"||A=="QuirksMode"){B="border-box"}else{B="content-box"}}else{if(arguments.length==0){node=document.documentElement}var C=this.getStyle("-moz-box-sizing");if(!C){C=this.getStyle("box-sizing")}B=(C?C:"content-box")}return B},getContentBoxSize:function(){var A=this.offsetWidth;var C=this.offsetHeight;var D=this.getPaddingSize();var B=this.getBorderSize();A=A-D.left-D.right-B.left-B.right;C=C-D.bottom-D.top-B.bottom-B.top;return{width:A,height:C}},getBorderBoxSize:function(){var A=this.offsetWidth;var B=this.offsetHeight;return{width:A,height:B}},getMarginBoxSize:function(){var C=this.getMarginSize();var A=this.offsetWidth+C.left+C.right;var B=this.offsetHeight+C.top+C.bottom;return{width:A,height:B}},setContentBoxSize:function(C){if(this.getBoxSizing()=="border-box"){var E=this.getPaddingSize();var B=this.getBorderSize();if(typeof C.width!="undefined"){var D=(C.width+E.left+E.right+B.left+B.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height+E.top+E.bottom+B.top+B.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"){this.style.width=C.width+"px"}if(typeof C.height!="undefined"){this.style.height=C.height+"px"}}},setBorderBoxSize:function(C){if(this.getBoxSizing()=="content-box"){var F=this.getPaddingSize();var B=this.getBorderSize();var E=this.getMarginSize();if(typeof C.width!="undefined"){var D=(C.width-F.left-F.right-B.left-B.right-E.left-E.right);if(D<0){D=0}this.style.width=D+"px"}if(typeof C.height!="undefined"){var A=(C.height-F.top-F.bottom-B.top-B.bottom-E.top-E.bottom);if(A<0){A=0}this.style.height=A+"px"}}else{if(typeof C.width!="undefined"&&C.width>=0){this.style.width=C.width+"px"}if(typeof C.height!="undefined"&&C.height>=0){this.style.height=C.height+"px"}}},getPaddingSize:function(){var B=this.getNumber(this.getStyle("padding-left"));var C=this.getNumber(this.getStyle("padding-top"));var D=this.getNumber(this.getStyle("padding-right"));var A=this.getNumber(this.getStyle("padding-bottom"));return{left:B,top:C,right:D,bottom:A}},getBorderSize:function(){var B=this.getNumber(this.getStyle("border-left-width"));var C=this.getNumber(this.getStyle("border-top-width"));var D=this.getNumber(this.getStyle("border-right-width"));var A=this.getNumber(this.getStyle("border-bottom-width"));return{left:B,top:C,right:D,bottom:A}},getMarginSize:function(){var B=this.getNumber(this.getStyle("margin-left"));var C=this.getNumber(this.getStyle("margin-top"));var D=this.getNumber(this.getStyle("margin-right"));var A=this.getNumber(this.getStyle("margin-bottom"));return{left:B,top:C,right:D,bottom:A}},getNumber:function(B){var A=B==null||isNaN(parseInt(B))?0:parseInt(B);return A},getPageDimensions:function(){return{width:window.getWidth(),height:window.getHeight()}},descendantOf:function(B){var A=$(this.parentNode);if(A==B){return true}else{if(!A||!A.parentNode){return null}else{if(A.parentNode===A){return null}else{return A.descendantOf(B)}}}},findElement:function(B){if(this.tagName==B){return this}var A=$(this.parentNode);if(A){if(A.tagName==B){return A}else{if(!A.parentNode||A.parentNode==A){return null}else{return A.findElement(B)}}}else{return null}}});Jx.ContentLoader=new Class({contentIsLoaded:false,loadContent:function(A){A=$(A);if(this.options.content){var B;if(this.options.content.domObj){B=$(this.options.content.domObj)}else{B=$(this.options.content)}if(B){A.appendChild(B);this.contentIsLoaded=true}else{A.innerHTML=this.options.content;this.contentIsLoaded=true}}else{if(this.options.contentURL){this.contentIsLoaded=false;new Request({url:this.options.contentURL,method:"get",update:A,onSuccess:(function(C){A.innerHTML=C;this.contentIsLoaded=true;this.fireEvent("contentLoaded",this)}).bind(this),onFailure:(function(){this.contentIsLoaded=true;this.fireEvent("contentLoadFailed",this)}).bind(this),headers:{"If-Modified-Since":"Sat, 1 Jan 2000 00:00:00 GMT"}}).send()}else{this.contentIsLoaded=true}}if(this.contentIsLoaded){this.fireEvent("contentLoaded",this)}},processContent:function(A){$A(A.childNodes).each(function(B){if(B.tagName=="INPUT"||B.tagName=="SELECT"||B.tagName=="TEXTAREA"){if(B.type=="button"){B.addEvent("click",function(){this.fireEvent("click",this,B)})}else{B.addEvent("change",function(){this.fireEvent("change",B)})}}else{if(B.childNodes){this.processContent(B)}}},this)}});Jx.AutoPosition=new Class({position:function(F,C,N){F=$(F);C=$(C);var B=$splat(N.horizontal||["center center"]);var G=$splat(N.vertical||["center center"]);var E=$merge({top:0,right:0,bottom:0,left:0},N.offsets||{});var I;if(!$(F.parentNode)||F.parentNode==document.body){I=Element.getPageDimensions()}else{I=$(F.parentNode).getContentBoxSize()}var K=C.getCoordinates();var M=F.getMarginBoxSize();var D;var L;var J;var A;if(!B.some(function(O){var P=O.split(" ");if(P.length!=2){return false}if(!isNaN(parseInt(P[0]))){D=parseInt(P[0])}else{switch(P[0]){case"right":D=K.left+K.width;break;case"center":D=K.left+Math.round(K.width/2);break;case"left":default:D=K.left}}switch(P[1]){case"left":D-=E.left;L=D+M.width;break;case"right":D+=E.right;L=D;D=D-M.width;break;case"center":default:D=D-Math.round(M.width/2);L=D+M.width}return(D>=0&&L<=I.width)})){if(L>I.width){D=I.width-M.width}if(D<0){D=0}}F.setStyle("left",D);if(!G.some(function(O){var P=O.split(" ");if(P.length!=2){return false}if(!isNaN(parseInt(P[0]))){J=parseInt(P[0])}else{switch(P[0]){case"bottom":J=K.top+K.height;break;case"center":J=K.top+Math.round(K.height/2);break;case"top":default:J=K.top}}switch(P[1]){case"top":J-=E.top;A=J+M.height;break;case"bottom":J+=E.bottom;A=J;J=J-M.height;break;case"center":default:J=J-Math.round(M.height/2);A=J+M.height}return(J>=0&&A<=I.height)})){if(A>I.height){J=I.height-M.height}if(J<0){J=0}}F.setStyle("top",J);var H=F.retrieve("jxLayout");if(H){H.options.left=D;H.options.top=J}}});Jx.Chrome=new Class({chrome:null,makeChrome:function(A){var C=new Element("div",{"class":"jxChrome"});A.adopt(C);this.chromeOffsets=C.getPaddingSize();C.setStyle("padding",0);var B=C.getStyle("backgroundImage");if(!B.contains("http://")){B=null}else{B=B.slice(4,-1);if(B.charAt(0)=='"'){B=B.slice(1,-1)}C.setStyle("backgroundImage","none");["TL","TR","BL","BR"].each(function(D){C.adopt(new Element("div",{"class":"jxChrome"+D}).adopt(new Element("img",{src:B})))},this)}if(!window.opera){C.adopt(Jx.createIframeShim())}C.dispose();this.chrome=C},showChrome:function(A){A=$(A);if(!this.chrome){this.makeChrome(A)}if(A&&this.chrome.parentNode!==A){A.adopt(this.chrome)}},hideChrome:function(){if(this.chrome){this.chrome.dispose()}}});Jx.Button=new Class({Implements:[Options,Events],domObj:null,options:{id:"",type:"Button",image:"",tooltip:"",label:"",enabled:true,toggle:false,toggleClass:"Toggle",halign:"center",valign:"middle",isActive:false,container:"div"},initialize:function(B){this.setOptions(B);var E=new Element(this.options.container,{"class":"jx"+this.options.type+"Container"});if(this.options.toggle&&this.options.toggleClass){E.addClass("jx"+this.options.type+this.options.toggleClass)}var A=new Element("a",{"class":"jx"+this.options.type,href:"javascript:void(0)",title:this.options.tooltip,alt:this.options.tooltip,events:{click:this.clicked.bindWithEvent(this)}});if(this.options.isActive){A.addClass("jx"+this.options.type+"Active")}E.appendChild(A);var D=new Element("span",{"class":"jx"+this.options.type+"Content"});A.appendChild(D);if(this.options.image||!this.options.label){var C=new Element("img",{"class":"jx"+this.options.type+"Icon",src:Jx.aPixel.src});if(this.options.image&&this.options.image.indexOf("a_pixel.png")==-1){C.setStyle("backgroundImage","url("+this.options.image+")")}D.appendChild(C);if(this.options.imageClass){C.addClass(this.options.imageClass)}}l=new Element("span",{html:this.options.label});if(this.options.label){l.addClass("jx"+this.options.type+"Label")}D.appendChild(l);if(this.options.id){E.id=this.options.id}if(this.options.halign=="left"){E.addClass("jx"+this.options.type+"ContentLeft")}if(this.options.valign=="top"){E.addClass("jx"+this.options.type+"ContentTop")}this.domA=A;this.domLabel=l;this.domObj=E;this.setEnabled(this.options.enabled)},clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.isActive)}else{this.fireEvent("click",{obj:this,event:A})}}},setEnabled:function(A){this.options.enabled=A;if(this.options.enabled){this.domObj.removeClass("jx"+this.options.type+"Disabled")}else{this.domObj.addClass("jx"+this.options.type+"Disabled")}},isActive:function(){return this.options.isActive},setActive:function(A){if(this.options.isActive==A){return }this.options.isActive=A;if(this.options.isActive){this.domA.addClass("jx"+this.options.type+"Active");this.fireEvent("down",this)}else{this.domA.removeClass("jx"+this.options.type+"Active");this.fireEvent("up",this)}},setImage:function(A){if(this.domImg){this.domImg.set("src",A)}},setLabel:function(A){if(this.domLabel){this.domLabel.set("html",A)}},setTooltip:function(A){if(this.domImg){this.domImg.set({title:A,alt:A})}},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.insertBefore(this.domObj,A)}else{B.appendChild(this.domObj)}}});Jx.Button.Flyout=new Class({Extends:Jx.Button,Implements:[Jx.ContentLoader,Jx.AutoPosition,Jx.Chrome],content:null,initialize:function(A){if(!Jx.Button.Flyout.Stack){Jx.Button.Flyout.Stack=[]}this.parent(A);this.domA.addClass("jx"+this.options.type+"Flyout");this.contentContainer=new Element("div",{"class":"jxFlyout"});this.content=new Element("div",{"class":"jxFlyoutContent"});this.contentContainer.adopt(this.content);this.content.store("jxFlyout",this);this.loadContent(this.content);this.keypressWatcher=this.keypressHandler.bindWithEvent(this);this.hideWatcher=this.clickHandler.bindWithEvent(this)},clicked:function(C){if(!this.owner){this.owner=document.body;var B=$(this.domObj.parentNode);while(B!=document.body&&this.owner==document.body){var A=B.retrieve("jxFlyout");if(A){this.owner=A;break}else{B=$(B.parentNode)}}}if(Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1]==this){this.hide();return }else{if(this.owner!=document.body){if(this.owner.currentFlyout==this){this.hide();return }else{if(this.owner.currentFlyout){this.owner.currentFlyout.hide()}}this.owner.currentFlyout=this}else{while(Jx.Button.Flyout.Stack.length){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}}Jx.Button.Flyout.Stack.push(this);this.options.isActive=true;this.domA.addClass("jx"+this.options.type+"Active");this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["left left","right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");window.addEvent("keypress",this.keypressWatcher);document.addEvent("click",this.hideWatcher);this.fireEvent("open",this)},hide:function(){if(this.owner!=document.body){this.owner.currentFlyout=null}Jx.Button.Flyout.Stack.pop();this.setActive(false);this.contentContainer.dispose();window.removeEvent("keypress",this.keypressWatcher);document.removeEvent("click",this.hideWatcher);this.fireEvent("close",this)},clickHandler:function(B){B=new Event(B);var C=$(B.target);var A=Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1];if(!C.descendantOf(A.content)&&!C.descendantOf(A.domObj)){A.hide()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length-1].hide()}}});Jx.Button.Multi=new Class({activeButton:null,buttons:null,initialize:function(){this.buttons=[];this.button=new Jx.Button();this.domObj=this.button.domObj;this.button.domA.addClass("jxButtonMulti");this.menu=new Jx.Menu();this.menu.button=this.button;this.buttonSet=new Jx.ButtonSet();var A=new Element("a",{"class":"jxButtonMultiDisclose",href:"javascript:void(0)"});A.addEvents({click:(function(B){if(this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.button.domObj,{horizontal:["right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);B.stop();this.fireEvent("show",this)}).bindWithEvent(this.menu),mouseenter:(function(){$(this.domObj.firstChild).addClass("jxButtonHover")}).bind(this),mouseleave:(function(){$(this.domObj.firstChild).removeClass("jxButtonHover")}).bind(this)});this.menu.addEvents({show:(function(){$(this.domObj.firstChild).addClass("jxButtonActive")}).bind(this),hide:(function(){$(this.domObj.firstChild).removeClass("jxButtonActive")}).bind(this)});A.adopt(new Element("img",{src:Jx.aPixel.src}));this.button.domObj.adopt(A)},add:function(){$A(arguments).each(function(B){if(!B instanceof Jx.Button){return }this.buttons.push(B);var C=$merge(B.options,{toggle:true,onClick:this.setButton.bind(this,B)});if(!C.image||C.image.indexOf("a_pixel")!=-1){delete C.image}var A=new Jx.Menu.Item(C);this.buttonSet.add(A);this.menu.add(A);B.multiButton=A;B.domA.addClass("jxButtonMulti");if(!this.activeButton){this.button.domA.dispose();this.domObj.grab(B.domA,"top");this.activeButton=B}},this)},remove:function(A){if(!A||!A.multiButton){return }if(this.menu.remove(A.multiButton)){A.multiButton=null;if(this.activeButton==A){if(!this.buttons.some(function(B){if(B!=A){this.setActiveButton(B);return true}else{return false}},this)){this.setActiveButton(null)}}this.buttons.erase(A)}},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.grab(this.domObj,"top")}else{B.adopt(this.domObj)}},setActiveButton:function(A){if(this.activeButton){this.activeButton.domA.dispose()}if(A&&A.domA){this.domObj.grab(A.domA,"top")}this.activeButton=A},setButton:function(A){this.setActiveButton(A);A.clicked()}});Jx.ColorPalette=new Class({Implements:[Options,Events],domObj:null,options:{color:"#000000",alpha:1},hexColors:["00","33","66","99","CC","FF"],initialize:function(C){this.setOptions(C);this.domObj=new Element("div",{id:this.options.id,"class":"jxColorPalette"});var H=new Element("div",{"class":"jxColorBar"});var Q=new Element("div",{"class":"jxColorPreview"});this.selectedSwatch=new Element("div",{"class":"jxColorSelected"});this.previewSwatch=new Element("div",{"class":"jxColorHover"});Q.adopt(this.selectedSwatch);Q.adopt(this.previewSwatch);H.adopt(Q);this.colorInputLabel=new Element("label",{"class":"jxColorLabel",html:"#"});H.adopt(this.colorInputLabel);var K=this.changed.bind(this);this.colorInput=new Element("input",{"class":"jxHexInput",type:"text",maxLength:6,events:{keyup:K,blur:K,change:K}});H.adopt(this.colorInput);this.alphaLabel=new Element("label",{"class":"jxAlphaLabel",html:"alpha (%)"});H.adopt(this.alphaLabel);this.alphaInput=new Element("input",{"class":"jxAlphaInput",type:"text",maxLength:3,events:{keyup:this.alphaChanged.bind(this)}});H.adopt(this.alphaInput);this.domObj.adopt(H);Q=new Element("div",{"class":"jxClearer"});this.domObj.adopt(Q);var I=this.swatchClick.bindWithEvent(this);var G=this.swatchOver.bindWithEvent(this);var P=new Element("table",{"class":"jxColorGrid"});var A=new Element("tbody");P.adopt(A);for(var N=0;N<12;N++){var B=new Element("tr");for(var L=-3;L<18;L++){var F=false;var J,O,R;if(L<0){if(L==-3||L==-1){J=O=R=0;F=true}else{if(N<6){J=O=R=N}else{if(N==6){J=5;O=0;R=0}else{if(N==7){J=0;O=5;R=0}else{if(N==8){J=0;O=0;R=5}else{if(N==9){J=5;O=5;R=0}else{if(N==10){J=0;O=5;R=5}else{if(N==11){J=5;O=0;R=5}}}}}}}}}else{J=parseInt(N/6)*3+parseInt(L/6);O=L%6;R=N%6}var D="#"+this.hexColors[J]+this.hexColors[O]+this.hexColors[R];var E=new Element("td");if(!F){E.setStyle("backgroundColor",D);var S=new Element("a",{"class":"colorSwatch "+(((J>2&&O>2)||(J>2&&R>2)||(O>2&&R>2))?"borderBlack":"borderWhite"),href:"#",title:D,alt:D,events:{mouseover:G,click:I}});S.store("swatchColor",D);E.adopt(S)}else{var M=new Element("span",{"class":"emptyCell"});E.adopt(M)}B.adopt(E)}A.adopt(B)}this.domObj.adopt(P);this.updateSelected()},swatchOver:function(B){var A=B.target;this.previewSwatch.setStyle("backgroundColor",A.retrieve("swatchColor"))},swatchClick:function(B){var A=B.target;this.options.color=A.retrieve("swatchColor");this.updateSelected();this.fireEvent("click",this)},changed:function(){var A=this.colorInput.value;if(A.substring(0,1)=="#"){A=A.substring(1)}if(A.toLowerCase().match(/^[0-9a-f]{6}$/)){this.options.color="#"+A.toUpperCase();this.updateSelected()}},alphaChanged:function(){var A=this.alphaInput.value;if(A.match(/^[0-9]{1,3}$/)){this.options.alpha=parseFloat(A/100);this.updateSelected()}},setColor:function(A){this.colorInput.value=A;this.changed()},setAlpha:function(A){this.alphaInput.value=A;this.alphaChanged()},updateSelected:function(){var A={backgroundColor:this.options.color};this.colorInput.value=this.options.color.substring(1);this.alphaInput.value=parseInt(this.options.alpha*100);if(this.options.alpha<1){A.opacity=this.options.alpha;A.filter="Alpha(opacity="+(this.options.alpha*100)+")"}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A);this.previewSwatch.setStyles(A);this.fireEvent("change",this)}});Jx.Button.Color=new Class({Extends:Jx.Button.Flyout,swatch:null,options:{color:"#000000",alpha:100},initialize:function(A){if(!Jx.Button.Color.ColorPalette){Jx.Button.Color.ColorPalette=new Jx.ColorPalette(this.options)}var B=new Element("span",{"class":"jxButtonSwatch"});this.selectedSwatch=new Element("span");B.appendChild(this.selectedSwatch);this.colorChangeFn=this.changed.bind(this);this.hideFn=this.hide.bind(this);Jx.Button.Flyout.prototype.initialize.apply(this,[A]);$(this.domObj.firstChild).addClass("jxButtonColor");this.domObj.firstChild.firstChild.insertBefore(B,this.domObj.firstChild.firstChild.firstChild);this.updateSwatch()},clicked:function(){if(Jx.Button.Color.ColorPalette.currentButton){Jx.Button.Color.ColorPalette.currentButton.hide()}Jx.Button.Color.ColorPalette.currentButton=this;Jx.Button.Color.ColorPalette.addEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.addEvent("click",this.hideFn);this.content.appendChild(Jx.Button.Color.ColorPalette.domObj);Jx.Button.Color.ColorPalette.domObj.setStyle("display","block");Jx.Button.Flyout.prototype.clicked.apply(this,arguments);Jx.Button.Color.ColorPalette.options.color=this.options.color;Jx.Button.Color.ColorPalette.options.alpha=this.options.alpha/100;Jx.Button.Color.ColorPalette.updateSelected()},hide:function(){this.setActive(false);Jx.Button.Color.ColorPalette.removeEvent("change",this.colorChangeFn);Jx.Button.Color.ColorPalette.removeEvent("click",this.hideFn);Jx.Button.Flyout.prototype.hide.apply(this,arguments);Jx.Button.Color.ColorPalette.currentButton=null},setColor:function(A){this.options.color=A;this.updateSwatch()},setAlpha:function(A){this.options.alpha=A;this.updateSwatch()},changed:function(A){var B=false;if(this.options.color!=A.options.color){this.options.color=A.options.color;B=true}if(this.options.alpha!=A.options.alpha*100){this.options.alpha=A.options.alpha*100;B=true}if(B){this.updateSwatch();this.fireEvent("change",this)}},updateSwatch:function(){var A={backgroundColor:this.options.color};if(this.options.alpha<100){A.filter="Alpha(opacity="+(this.options.alpha)+")";A.opacity=this.options.alpha/100}else{A.opacity="";A.filter=""}this.selectedSwatch.setStyles(A)}});Jx.ButtonSet=new Class({Implements:[Options,Events],buttons:null,initialize:function(A){this.setOptions(A);this.buttons=[];this.buttonChangedHandler=this.buttonChanged.bind(this)},add:function(){$A(arguments).each(function(A){if(A.domObj.hasClass("jx"+A.options.type+"Toggle")){A.domObj.removeClass("jx"+A.options.type+"Toggle");A.domObj.addClass("jx"+A.options.type+"Set")}A.addEvent("down",this.buttonChangedHandler);var B=this;A.setActive=function(C){if(this.options.isActive&&B.activeButton==this){return }else{Jx.Button.prototype.setActive.apply(this,[C])}};if(!this.activeButton){A.setActive(true)}this.buttons.push(A)},this)},remove:function(A){this.buttons.erase(A);if(this.activeButton==A){if(this.buttons.length){this.buttons[0].setActive(true)}A.removeEvent("down",this.buttonChangedHandler);A.setActive=Jx.Button.prototype.setActive}},setActiveButton:function(B){var A=this.activeButton;this.activeButton=B;if(A&&A!=B){A.setActive(false)}},buttonChanged:function(A){this.setActiveButton(A);this.fireEvent("change",this)}});Jx.Grid=new Class({Implements:[Options],domObj:null,model:null,options:{alternateRowColors:false,rowHeaders:false,columnHeaders:false,rowSelection:false,columnSelection:false,cellPrelight:false,rowPrelight:false,columnPrelight:false,rowHeaderPrelight:false,columnHeaderPrelight:false,cellSelection:false},initialize:function(B,A){this.setOptions(A);this.domObj=$(B);var C=this.domObj.retrieve("jxLayout");if(C){C.addEvent("sizeChange",this.resize.bind(this))}this.rowColObj=new Element("div",{"class":"jxGridContainer"});this.colObj=new Element("div",{"class":"jxGridContainer"});this.colTable=new Element("table",{"class":"jxGridTable"});this.colTableHead=new Element("thead");this.colTable.appendChild(this.colTableHead);this.colTableBody=new Element("tbody");this.colTable.appendChild(this.colTableBody);this.colObj.appendChild(this.colTable);this.rowObj=new Element("div",{"class":"jxGridContainer"});this.rowTable=new Element("table",{"class":"jxGridTable"});this.rowTableHead=new Element("thead");this.rowTable.appendChild(this.rowTableHead);this.rowObj.appendChild(this.rowTable);this.gridObj=new Element("div",{"class":"jxGridContainer",styles:{overflow:"scroll"}});this.gridTable=new Element("table",{"class":"jxGridTable"});this.gridTableBody=new Element("tbody");this.gridTable.appendChild(this.gridTableBody);this.gridObj.appendChild(this.gridTable);this.domObj.appendChild(this.rowColObj);this.domObj.appendChild(this.rowObj);this.domObj.appendChild(this.colObj);this.domObj.appendChild(this.gridObj);this.gridObj.addEvent("scroll",this.onScroll.bind(this));this.gridObj.addEvent("click",this.onClickGrid.bindWithEvent(this));this.rowObj.addEvent("click",this.onClickRowHeader.bindWithEvent(this));this.colObj.addEvent("click",this.onClickColumnHeader.bindWithEvent(this));this.gridObj.addEvent("mousemove",this.onMouseMoveGrid.bindWithEvent(this));this.rowObj.addEvent("mousemove",this.onMouseMoveRowHeader.bindWithEvent(this));this.colObj.addEvent("mousemove",this.onMouseMoveColumnHeader.bindWithEvent(this))},onScroll:function(){this.colObj.scrollLeft=this.gridObj.scrollLeft;this.rowObj.scrollTop=this.gridObj.scrollTop},resize:function(){if(!this.model){return }var C=this.options.columnHeaders?this.model.getColumnHeaderHeight():1;var A=this.options.rowHeaders?this.model.getRowHeaderWidth():1;var B=Element.getContentBoxSize(this.domObj);this.rowColObj.setStyles({width:A-1,height:C-1});this.rowObj.setStyles({top:C,left:0,width:A-1,height:B.height-C-1});this.colObj.setStyles({top:0,left:A,width:B.width-A-1,height:C-1});this.gridObj.setStyles({top:C,left:A,width:B.width-A-1,height:B.height-C-1})},setModel:function(A){if(this.model){this.model.removeGridListener(this)}this.model=A;if(this.model){if(this.domObj.resize){this.domObj.resize()}this.model.addGridListener(this);this.createGrid();this.resize()}else{this.destroyGrid()}},destroyGrid:function(){var A=this.colTableHead.cloneNode(false);this.colTable.replaceChild(A,this.colTableHead);this.colTableHead=A;A=this.colTableBody.cloneNode(false);this.colTable.replaceChild(A,this.colTableBody);this.colTableBody=A;A=this.rowTableHead.cloneNode(false);this.rowTable.replaceChild(A,this.rowTableHead);this.rowTableHead=A;A=this.gridTableBody.cloneNode(false);this.gridTable.replaceChild(A,this.gridTableBody);this.gridTableBody=A},createGrid:function(){this.destroyGrid();if(this.model){var L=this.model;var E=L.getColumnCount();var Q=L.getRowCount();if(this.options.columnHeaders){var N=L.getColumnHeaderHeight();var P=new Element("tr");this.colTableHead.appendChild(P);var M=new Element("tr");this.colTableBody.appendChild(M);var C=new Element("th",{styles:{width:0,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N);M.appendChild(C);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);C=new Element("th",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{height:0,width:J}});C.appendChild(B);P.appendChild(C);C=new Element("th",{"class":"jxGridColHead",html:L.getColumnHeaderHTML(K)});M.appendChild(C)}var C=new Element("th",{styles:{width:1000,height:0}});P.appendChild(C);C=C.cloneNode(true);C.setStyle("height",N-1);C.className="jxGridColHead";M.appendChild(C)}if(this.options.rowHeaders){var H=L.getRowHeaderWidth();var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:0}});O.appendChild(G);var C=new Element("th",{styles:{width:H,height:0}});O.appendChild(C);this.rowTableHead.appendChild(O);for(var K=0;K<Q;K++){var A=L.getRowHeight(K);var O=new Element("tr");var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{width:0,height:A}});G.appendChild(B);O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",html:L.getRowHeaderHTML(K)});O.appendChild(C);this.rowTableHead.appendChild(O)}var O=new Element("tr");var G=new Element("td",{styles:{width:0,height:1000}});O.appendChild(G);var C=new Element("th",{"class":"jxGridRowHead",styles:{width:H,height:1000}});O.appendChild(C);this.rowTableHead.appendChild(O)}var N=L.getColumnHeaderHeight();var M=new Element("tr");this.gridTableBody.appendChild(M);var G=new Element("td",{styles:{width:0,height:0}});M.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridColHeadHide",styles:{width:J}});var B=new Element("p",{styles:{width:J,height:0}});G.appendChild(B);M.appendChild(G)}for(var I=0;I<Q;I++){var A=L.getRowHeight(I);var D=A;var O=new Element("tr");this.gridTableBody.appendChild(O);var G=new Element("td",{"class":"jxGridRowHeadHide",styles:{width:0,height:A}});var B=new Element("p",{styles:{height:A}});G.appendChild(B);O.appendChild(G);for(var K=0;K<E;K++){var J=L.getColumnWidth(K);G=new Element("td",{"class":"jxGridCell"});G.innerHTML=L.getValueAt(I,K);O.appendChild(G);var F=G.getSize();if(F.height>D){D=F.height}}if(document.all){D-=1}if(this.options.rowHeaders){this.setRowHeaderHeight(I,D)}if(this.options.alternateRowColors){O.className=(I%2)?"jxGridRowOdd":"jxGridRowEven"}else{O.className="jxGridRowAll"}}}},setRowHeaderHeight:function(B,A){this.rowTableHead.childNodes[B+1].childNodes[0].childNodes[0].style.height=(A)+"px"},gridChanged:function(B,D,A,C){if(this.model==B){this.gridObj.childNodes[D].childNodes[A].innerHTML=C}},prelightRowHeader:function(B){var A=(B>=0&&B<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[B+1].cells[1]:null;if(this.prelitRowHeader!=A){if(this.prelitRowHeader){this.prelitRowHeader.removeClass("jxGridRowHeaderPrelight")}this.prelitRowHeader=A;if(this.prelitRowHeader){this.prelitRowHeader.addClass("jxGridRowHeaderPrelight")}}},prelightColumnHeader:function(B){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(this.prelitColumnHeader!=A){if(this.prelitColumnHeader){this.prelitColumnHeader.removeClass("jxGridColumnHeaderPrelight")}this.prelitColumnHeader=A;if(this.prelitColumnHeader){this.prelitColumnHeader.addClass("jxGridColumnHeaderPrelight")}}},prelightRow:function(B){var A=(B>=0&&B<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[B+1]:null;if(this.prelitRow!=B){if(this.prelitRow){this.prelitRow.removeClass("jxGridRowPrelight")}this.prelitRow=A;if(this.prelitRow){this.prelightRowHeader(B);this.prelitRow.addClass("jxGridRowPrelight")}}},prelightColumn:function(A){if(A>=0&&A<this.gridTable.rows[0].cells.length){if($chk(this.prelitColumn)){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[this.prelitColumn+1].removeClass("jxGridColumnPrelight")}}this.prelitColumn=A;for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnPrelight")}}this.prelightColumnHeader(A)},prelightCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(this.prelitCell!=C){if(this.prelitCell){this.prelitCell.removeClass("jxGridCellPrelight")}this.prelitCell=C;if(this.prelitCell){this.prelitCell.addClass("jxGridCellPrelight")}}},selectCell:function(B,A){var C=(B>=0&&A>=0&&B<this.gridTableBody.rows.length-1&&A<this.gridTableBody.rows[B+1].cells.length-1)?this.gridTableBody.rows[B+1].cells[A+1]:null;if(!C){return }if(this.selectedCell){this.selectedCell.removeClass("jxGridCellSelected")}this.selectedCell=C;this.selectedCell.addClass("jxGridCellSelected")},selectRowHeader:function(C,B){var A=(C>=0&&C<this.rowTableHead.rows.length-1)?this.rowTableHead.rows[C+1].cells[1]:null;if(!A){return }if(B){A.addClass("jxGridRowHeaderSelected")}else{A.removeClass("jxGridRowHeaderSelected")}},selectRow:function(C,A){var B=(C>=0&&C<this.gridTableBody.rows.length-1)?this.gridTableBody.rows[C+1]:null;if(B){if(A){B.addClass("jxGridRowSelected")}else{B.removeClass("jxGridRowSelected")}this.selectRowHeader(C,A)}},selectColumnHeader:function(B,C){if(this.colTableBody.rows.length==0){return }var A=(B>=0&&B<this.colTableBody.rows[0].cells.length-1)?this.colTableBody.rows[0].cells[B+1]:null;if(A==null){return }if(C){A.addClass("jxGridColumnHeaderSelected")}else{A.removeClass("jxGridColumnHeaderSelected")}},selectColumn:function(A,C){if(A>=0&&A<this.gridTable.rows[0].cells.length){if(C){for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].addClass("jxGridColumnSelected")}}else{for(var B=0;B<this.gridTable.rows.length;B++){this.gridTable.rows[B].cells[A+1].removeClass("jxGridColumnSelected")}}this.selectColumnHeader(A,C)}},onMouseMoveGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellPrelight){this.prelightCell(A.row,A.column)}if(this.options.rowPrelight){this.prelightRow(A.row)}if(this.options.rowHeaderPrelight){this.prelightRowHeader(A.row)}if(this.options.columnPrelight){this.prelightColumn(A.column)}if(this.options.columnHeaderPrelight){this.prelightColumnHeader(A.column)}},onMouseMoveRowHeader:function(B){if(this.options.rowPrelight){var A=this.getRowColumnFromEvent(B);this.prelightRow(A.row)}},onMouseMoveColumnHeader:function(B){if(this.options.columnPrelight){var A=this.getRowColumnFromEvent(B);this.prelightColumn(A.column)}},onClickGrid:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.cellSelection&&this.model.cellSelected){this.model.cellSelected(this,A.row,A.column)}if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},onClickRowHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.rowSelection&&this.model.rowSelected){this.model.rowSelected(this,A.row)}},onClickColumnHeader:function(B){var A=this.getRowColumnFromEvent(B);if(this.options.columnSelection&&this.model.columnSelected){this.model.columnSelected(this,A.column)}},getRowColumnFromEvent:function(D){var F=D.target;if(F.tagName!="TD"&&F.tagName!="TH"){return{row:-1,column:-1}}var C=F.parentNode;var A=F.cellIndex-1;var E=C.rowIndex-1;if(A==-1){for(var B=0;B<C.childNodes.length;B++){if(C.childNodes[B]==F){A=B-1;break}}}return{row:E,column:A}}});Jx.Layout=new Class({Implements:[Options,Events],options:{propagate:true,position:"absolute",left:0,right:0,top:0,bottom:0,width:null,height:null,minWidth:0,minHeight:0,maxWidth:-1,maxHeight:-1},initialize:function(B,A){this.setOptions(A);this.domObj=$(B);this.domObj.resize=this.resize.bind(this);this.domObj.setStyle("position",this.options.position);this.domObj.store("jxLayout",this);if(document.body==this.domObj.parentNode){window.addEvent("resize",this.windowResize.bindWithEvent(this));window.addEvent("load",this.resize.bind(this))}},windowResize:function(){if(this.resizeTimer){$clear(this.resizeTimer);this.resizeTimer=null}this.resizeTimer=this.resize.delay(100,this)},resize:function(K){this.resizeTimer=null;var B=false;if(K){for(var F in K){if(F=="forceResize"){continue}if(this.options[F]!=K[F]){B=true;this.options[F]=K[F]}}if(K.forceResize){B=true}}if(!$(this.domObj.parentNode)){return }var C;if(this.domObj.parentNode.tagName=="BODY"){C=Element.getPageDimensions()}else{C=$(this.domObj.parentNode).getContentBoxSize()}if(this.lastParentSize&&!B){B=(this.lastParentSize.width!=C.width||this.lastParentSize.height!=C.height)}else{B=true}this.lastParentSize=C;if(!B){return }var D,J,I,G;if(this.options.left!=null){D=this.options.left;if(this.options.right==null){if(this.options.width==null){I=C.width-D;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}else{if(this.options.width==null){I=C.width-D-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){I=this.options.maxWidth}}else{I=this.options.width}}}else{if(this.options.right==null){if(this.options.width==null){D=0;I=C.width;if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=D+parseInt(I-this.options.maxWidth)/2;I=this.options.maxWidth}}else{I=this.options.width;D=parseInt((C.width-I)/2);if(D<0){D=0}}}else{if(this.options.width!=null){I=this.options.width;D=C.width-I-this.options.right;if(D<0){D=0}}else{D=0;I=C.width-this.options.right;if(I<this.options.minWidth){I=this.options.minWidth}if(this.options.maxWidth>=0&&I>this.options.maxWidth){D=I-this.options.maxWidth-this.options.right;I=this.options.maxWidth}}}}if(this.options.top!=null){J=this.options.top;if(this.options.bottom==null){if(this.options.height==null){G=C.height-J;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height;if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=G-this.options.maxHeight;G=this.options.maxHeight}}}else{if(this.options.height==null){G=C.height-J-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){G=this.options.maxHeight}}else{G=this.options.height}}}else{if(this.options.bottom==null){if(this.options.height==null){J=0;G=C.height;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=parseInt((C.height-this.options.maxHeight)/2);G=this.options.maxHeight}}else{G=this.options.height;J=parseInt((C.height-G)/2);if(J<0){J=0}}}else{if(this.options.height!=null){G=this.options.height;J=C.height-G-this.options.bottom;if(J<0){J=0}}else{J=0;G=C.height-this.options.bottom;if(G<this.options.minHeight){G=this.options.minHeight}if(this.options.maxHeight>=0&&G>this.options.maxHeight){J=C.height-this.options.maxHeight-this.options.bottom;G=this.options.maxHeight}}}}var E={width:I};if(this.options.position=="absolute"){var H=$(this.domObj.parentNode).getPaddingSize();this.domObj.setStyles({position:this.options.position,left:D+H.left,top:J+H.top});E.height=G}else{if(this.options.height){E.height=this.options.height}}this.domObj.setBorderBoxSize(E);if(this.options.propagate){var A={forceResize:K?K.forceResize:false};$A(this.domObj.childNodes).each(function(L){if(L.resize&&L.getStyle("display")!="none"){L.resize(A)}})}this.fireEvent("sizeChange",this)}});Jx.Menu=new Class({Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome],domObj:null,button:null,subDomObj:null,items:null,initialize:function(A){this.setOptions(A);if(!Jx.Menu.Menus){Jx.Menu.Menus=[]}this.items=[];this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxMenu"});this.contentContainer.adopt(this.subDomObj);if(A){this.domObj=new Element("li",{id:A.id,events:{mouseover:this.onMouseOver.bindWithEvent(this)}});this.button=new Jx.Button($merge(A,{onClick:this.show.bind(this)}));this.button.domA.addClass("jxButtonMenu");this.domObj.adopt(this.button.domObj)}this.hideWatcher=this.hide.bindWithEvent(this);this.keypressWatcher=this.keypressHandler.bindWithEvent(this)},add:function(){$A(arguments).each(function(A){this.items.push(A);A.setOwner(this);this.subDomObj.adopt(A.domObj)},this)},deactivate:function(){this.hide()},actionPerformed:function(){this.hide()},onMouseOver:function(A){if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]!=this){this.show({event:A})}},eventInMenu:function(A){return A.target.descendantOf(this.domObj)||A.target.descendantOf(this.subDomObj)||this.items.some(function(B){return B instanceof Jx.Menu.SubMenu&&B.eventInMenu(A)})},hide:function(A){if(A){if(this.eventInMenu(A)){return }}if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]==this){Jx.Menu.Menus[0]=null}if(this.button&&this.button.domA){this.button.domA.removeClass("jx"+this.button.options.type+"Active")}this.contentContainer.dispose();this.items.each(function(B){B.hide(A)});document.removeEvent("mousedown",this.hideWatcher);document.removeEvent("keyup",this.keypressWatcher);this.fireEvent("hide",this)},show:function(B){var A=B.event;if(Jx.Menu.Menus[0]&&Jx.Menu.Menus[0]!=this){Jx.Menu.Menus[0].hide(A)}if(this.items.length==0){return }Jx.Menu.Menus[0]=this;this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.button.domObj,{horizontal:["left left"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");if(this.button&&this.button.domA){this.button.domA.addClass("jx"+this.button.options.type+"Active")}if(A){A.stop()}document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);this.fireEvent("show",this)},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}},keypressHandler:function(A){A=new Event(A);if(A.key=="esc"){this.hide()}}});Jx.Menu.Item=new Class({Implements:[Options,Events],Extends:Jx.Button,owner:null,options:{enabled:true,image:Jx.baseURL+"images/a_pixel.png",label:"&nbsp;",toggleClass:"Toggle"},initialize:function(A){this.parent($merge(A,{container:"li",type:"MenuItem",toggleClass:(A.image?null:this.options.toggleClass)}));this.domObj.addEvent("mouseover",this.onMouseOver.bindWithEvent(this));if(!this.options.enabled){this.domObj.addClass("jxMenuItemDisabled")}},setOwner:function(A){this.owner=A},hide:$empty,show:$empty,clicked:function(A){if(this.options.enabled){if(this.options.toggle){this.setActive(!this.options.isActive)}this.fireEvent("click",this);if(this.owner&&this.owner.deactivate){this.owner.deactivate(A.event)}}},propertyChanged:function(A){this.options.enabled=A.isEnabled();if(this.options.enabled){this.domObj.removeClass("jxMenuItemDisabled")}else{if(!this.domObj.hadClass("jxMenuItemDisabled")){this.domObj.addClass("jxMenuItemDisabled")}}},onMouseOver:function(A){if(this.owner&&this.owner.setVisibleItem){this.owner.setVisibleItem(this)}this.show(A)}});Jx.Menu.Separator=new Class({domObj:null,owner:null,initialize:function(){this.domObj=new Element("li",{"class":"jxMenuItem"});var A=new Element("span",{"class":"jxMenuSeparator",html:"&nbsp;"});this.domObj.appendChild(A)},setOwner:function(A){this.owner=A},hide:$empty,show:$empty});Jx.Menu.SubMenu=new Class({Extends:Jx.Menu.Item,Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome],subDomObj:null,owner:null,visibleItem:null,items:null,initialize:function(A){this.open=false;this.items=[];this.parent(A);this.domA.addClass("jxButtonSubMenu");this.contentContainer=new Element("div",{"class":"jxMenuContainer"});this.subDomObj=new Element("ul",{"class":"jxSubMenu"});this.contentContainer.adopt(this.subDomObj)},setOwner:function(A){this.owner=A},show:function(){if(this.open||this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.showChrome(this.contentContainer);this.position(this.contentContainer,this.domObj,{horizontal:["right left","left right"],vertical:["top top"],offsets:this.chromeOffsets});this.open=true;this.contentContainer.setStyle("visibility","");this.setActive(true)},eventInMenu:function(A){return A.target.descendantOf(this.domObj)||A.target.descendantOf(this.subDomObj)||this.items.some(function(B){return B instanceof Jx.Menu.SubMenu&&B.eventInMenu(A)})},hide:function(){if(!this.open){return }this.open=false;this.items.each(function(A){A.hide()});this.contentContainer.dispose();this.visibleItem=null},add:function(){var A=this;$A(arguments).each(function(B){A.items.push(B);B.setOwner(A);A.subDomObj.adopt(B.domObj)})},insertBefore:function(C,D){var B=false;for(var A=0;A<this.items.length;A++){if(this.items[A]==D){this.items.splice(A,0,C);this.subDomObj.insertBefore(C.domObj,D.domObj);B=true;break}}if(!B){this.add(C)}},remove:function(B){for(var A=0;A<this.items.length;A++){if(this.items[A]==B){this.items.splice(A,1);this.subDomObj.removeChild(B.domObj);break}}},processActionEvent:function(A){if(this.open){this.hide()}else{this.show()}if(A&&A.event){A.event.stop()}},deactivate:function(A){if(this.owner){this.owner.deactivate(A)}},isActive:function(){if(this.owner){return this.owner.isActive()}else{return false}},setActive:function(A){if(this.owner&&this.owner.setActive){this.owner.setActive(A)}},setVisibleItem:function(A){if(this.visibleItem!=A){if(this.visibleItem&&this.visibleItem.hide){this.visibleItem.hide()}this.visibleItem=A;this.visibleItem.show()}}});Jx.Menu.Context=new Class({Extends:Jx.Menu,initialize:function(A){this.parent();if($(A)){$(A).addEvent("contextmenu",this.show.bindWithEvent(this))}},show:function(A){if(this.items.length==0){return }this.contentContainer.setStyle("visibility","hidden");document.body.adopt(this.contentContainer);this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());this.position(this.contentContainer,document.body,{horizontal:[A.page.x+" left"],vertical:[A.page.y+" top",A.page.y+" bottom"],offsets:this.chromeOffsets});this.contentContainer.setStyle("visibility","");this.showChrome(this.contentContainer);document.addEvent("mousedown",this.hideWatcher);document.addEvent("keyup",this.keypressWatcher);A.stop()}});Jx.Panel=new Class({Implements:[Options,Events,Jx.UniqueId,Jx.ContentLoader],toolbarContainers:{top:null,right:null,bottom:null,left:null},options:{label:"&nbsp;",position:"absolute",height:null,collapse:true,detach:false,close:false,closed:false,hideTitle:false,type:"Panel"},initialize:function(N){this.toolbars=N.toolbars||[];this.setOptions(N);if($defined(this.options.height)&&!$defined(N.position)){this.options.position="relative"}this.initUniqueId();this.title=new Element("div",{"class":"jx"+this.options.type+"Title"});this.labelObj=new Element("span",{"class":"jx"+this.options.type+"Label",html:this.options.label});this.title.adopt(this.labelObj);var K=new Element("div",{"class":"jx"+this.options.type+"Controls"});var E=new Element("div");K.adopt(E);this.toolbar=new Jx.Toolbar({parent:E});this.title.adopt(K);var F=this;if(this.options.menu){this.menu=new Jx.Menu({image:Jx.aPixel.src});this.menu.domObj.addClass("jx"+this.options.type+"Menu");this.menu.domObj.addClass("jxButtonContentLeft");this.toolbar.add(this.menu)}if(this.options.collapse){var H=new Jx.Button({image:Jx.aPixel.src,tooltip:"Collapse/Expand Panel",onClick:function(){F.toggleCollapse()}});H.domObj.addClass("jx"+this.options.type+"Collapse");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Collapse",onClick:function(){F.toggleCollapse()}});this.addEvent("collapse",function(){if(F.options.closed){L.setLabel("Expand")}else{L.setLabel("Collapse")}});this.menu.add(L)}}if(this.options.maximize){var H=new Jx.Button({image:Jx.aPixel.src,tooltip:"Maximize Panel",onClick:function(){F.maximize()}});H.domObj.addClass("jx"+this.options.type+"Maximize");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Maximize",onClick:function(){F.maximize()}});this.menu.add(L)}}if(this.options.close){var H=new Jx.Button({image:Jx.aPixel.src,tooltip:"Close Panel",onClick:function(){F.close()}});H.domObj.addClass("jx"+this.options.type+"Close");this.toolbar.add(H);if(this.menu){var L=new Jx.Menu.Item({label:"Close",onClick:function(){F.close()}});this.menu.add(L)}}this.title.addEvent("dblclick",function(){F.toggleCollapse()});this.domObj=new Element("div",{"class":"jx"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}if($(this.options.parent)){$(this.options.parent).adopt(this.domObj)}var G=new Jx.Layout(this.domObj,$merge(this.options,{propagate:false}));var M=this.layoutContent.bind(this);G.addEvent("sizeChange",M);if(!this.options.hideTitle){this.domObj.adopt(this.title)}this.contentContainer=new Element("div",{"class":"jx"+this.options.type+"ContentContainer"});this.domObj.adopt(this.contentContainer);for(var B=0;B<this.toolbars.length;B++){var A=this.toolbars[B];A.addEvent("add",M);A.addEvent("remove",M);var D=A.options.position;var J=this.toolbarContainers[D];if(!J){var J=new Element("div",{"class":"jxBarContainer jxBar"+D.capitalize()});new Jx.Layout(J);var C=new Element("div",{"class":"jxClearer"});J.appendChild(C);this.contentContainer.adopt(J);this.toolbarContainers[D]=J}var I=A.domObj;J.insertBefore(I,J.lastChild)}this.content=new Element("div",{"class":"jx"+this.options.type+"Content"});new Jx.Layout(this.contentContainer);new Jx.Layout(this.content);this.contentContainer.adopt(this.content);this.loadContent(this.content,N);this.toggleCollapse(this.options.closed)},layoutContent:function(){var G=0;var H=0;var A=0;var C=0;var J=0;var I;var D;var F;if(!this.options.hideTitle&&this.title.parentNode==this.domObj){G=this.title.getMarginBoxSize().height}var B=this.domObj.getContentBoxSize();if(B.height>G){this.contentContainer.setStyle("display","block");this.options.closed=false;this.contentContainer.resize({top:G,height:null,bottom:0});["left","right"].each(function(L){if(this.toolbarContainers[L]){this.toolbarContainers[L].style.width=""}},this);["top","bottom"].each(function(L){if(this.toolbarContainers[L]){this.toolbarContainers[L].style.height=""}},this);for(var E=0;E<this.toolbars.length;E++){D=this.toolbars[E];F=D.options.position;I=this.toolbarContainers[F];var K=I.getBorderBoxSize();switch(F){case"top":H=K.height;break;case"bottom":A=K.height;break;case"left":C=K.width;break;case"right":J=K.width;break}}I=this.toolbarContainers.top;if(I){I.resize({top:0,left:C,right:J,bottom:null,height:H,width:null})}I=this.toolbarContainers.bottom;if(I){I.resize({top:null,left:C,right:J,bottom:0,height:A,width:null})}I=this.toolbarContainers.left;if(I){I.resize({top:H,left:0,right:null,bottom:A,height:null,width:C})}I=this.toolbarContainers.right;if(I){I.resize({top:H,left:null,right:0,bottom:A,height:null,width:J})}this.content.resize({top:H,bottom:A,left:C,right:J})}else{this.contentContainer.setStyle("display","none");this.options.closed=true}},setLabel:function(A){this.labelObj.innerHTML=A},getLabel:function(){return this.labelObj.innerHTML},finalize:function(){this.domObj=null;this.deregisterIds()},maximize:function(){if(this.manager){this.manager.maximizePanel(this)}},setContent:function(A){this.content.innerHTML=A;this.bContentReady=true},setContentURL:function(B){this.bContentReady=false;this.setBusy(true);if(arguments[1]){this.onContentReady=arguments[1]}if(B.indexOf("?")==-1){B=B+"?"}var C={method:"get",onComplete:this.panelContentLoaded.bind(this),requestHeaders:["If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"]};var A=new Request(B,C).send()},panelContentLoaded:function(A){this.content.innerHTML=A.responseText;this.bContentReady=true;this.setBusy(false);if(this.onContentReady){window.setTimeout(this.onContentReady.bind(this),1)}},setBusy:function(A){this.busyCount+=A?1:-1;this.loadingObj.img.style.visibility=(this.busyCount>0)?"visible":"hidden"},addTo:function(B,A){B=$(B);A=A?$(A):null;if(A&&A.parentNode==B){B.insertBefore(this.domObj,A)}else{B.appendChild(this.domObj)}this.domObj.resize()},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","none");var B=this.domObj.getMarginSize();var A=B.top+B.bottom;if(this.title.parentNode==this.domObj){A+=this.title.getMarginBoxSize().height}this.domObj.resize({height:A});this.fireEvent("collapse",this)}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min");this.contentContainer.setStyle("display","block");this.domObj.resize({height:this.options.height});this.fireEvent("expand",this)}}},close:function(){this.domObj.dispose();this.fireEvent("close",this)}});Jx.Dialog=new Class({Extends:Jx.Panel,Implements:[Jx.AutoPosition,Jx.Chrome],blanket:null,options:{modal:true,position:"absolute",width:250,height:250,left:0,top:0,bottom:null,right:null,label:"New Dialog",id:"",parent:null,resize:false,move:true,close:true,collapse:true},initialize:function(A){if(!Jx.Dialog.Stack){Jx.Dialog.Stack=[];Jx.Dialog.ZIndex=[100]}this.isOpening=false;this.parent($merge({parent:document.body},A,{type:"Dialog",position:"absolute"}));this.content.dispose();this.options.parent=$(this.options.parent);if(!window.opera&&this.options.modal){this.blanket=new Element("div",{"class":"jxDialogModal",styles:{display:"none",zIndex:-1}});this.options.parent.adopt(this.blanket);(new Jx.Layout(this.blanket)).resize()}this.domObj.setStyle("display","none");this.options.parent.adopt(this.domObj);if(this.options.move){this.title.addClass("jxDialogMoveable");new Drag(this.domObj,{handle:this.title,onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");this.contentContainer.setStyle("visibility","");this.position(this.domObj,this.options.parent,{horizontal:[parseInt(this.domObj.style.left)+" left"],vertical:[parseInt(this.domObj.style.top)+" top"]});this.options.left=parseInt(this.domObj.style.left);this.options.top=parseInt(this.domObj.style.top);if(!this.options.closed){this.domObj.resize(this.options)}}).bind(this)})}if(this.options.resize){this.resizeHandle=new Element("div",{"class":"jxDialogResize",styles:{display:this.options.closed?"none":"block"}});this.domObj.appendChild(this.resizeHandle);this.resizeHandleSize=this.resizeHandle.getSize();this.resizeHandle.setStyles({bottom:this.resizeHandleSize.height,right:this.resizeHandleSize.width});this.domObj.makeResizable({handle:this.resizeHandle,onStart:(function(){this.contentContainer.setStyle("visibility","hidden");this.chrome.addClass("jxChromeDrag")}).bind(this),onComplete:(function(){this.chrome.removeClass("jxChromeDrag");var B=this.domObj.getMarginBoxSize();this.options.width=B.width;this.options.height=B.height;this.layoutContent();this.domObj.resize(this.options);this.contentContainer.setStyle("visibility","");this.fireEvent("resize")}).bind(this)})}this.domObj.addEvent("mousedown",(function(){Jx.Dialog.Stack.erase(this).push(this);Jx.Dialog.Stack.each(function(C,B){C.domObj.setStyle("zIndex",101+B)})}).bind(this))},sizeChanged:function(){if(!this.options.closed){this.layoutContent()}},toggleCollapse:function(C){if($defined(C)){this.options.closed=C}else{this.options.closed=!this.options.closed}if(this.options.closed){if(!this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.addClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","none");if(this.resizeHandle){this.resizeHandle.setStyle("display","none")}}else{if(this.domObj.hasClass("jx"+this.options.type+"Min")){this.domObj.removeClass("jx"+this.options.type+"Min")}this.contentContainer.setStyle("display","block");if(this.resizeHandle){this.resizeHandle.setStyle("display","block")}}if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom});this.fireEvent("collapse")}else{this.domObj.resize(this.options);this.fireEvent("expand")}},setTitle:function(A){this.title.childNodes[0].innerHTML=A},show:function(){Jx.Dialog.Stack.push(this);if(this.options.modal){this.blanket.setStyles({zIndex:Jx.Dialog.ZIndex[0]++,visibility:"visible",display:"block"})}this.domObj.setStyles({zIndex:Jx.Dialog.ZIndex[0]++,display:"block"});if(this.options.closed){var B=this.domObj.getMarginSize();var A=this.title.getMarginBoxSize();this.domObj.resize({height:B.top+A.height+B.bottom})}else{this.domObj.resize(this.options)}if(!this.content.parentNode){this.contentContainer.adopt(this.content);this.contentContainer.resize({forceResize:true})}this.showChrome(this.domObj);this.position(this.domObj,this.options.parent,{horizontal:[this.options.left+" left"],vertical:[this.options.top+" top"]});this.options.left=parseInt(this.domObj.style.left);this.options.top=parseInt(this.domObj.style.top)},hide:function(){Jx.Dialog.Stack.erase(this);Jx.Dialog.ZIndex[0]--;this.domObj.setStyle("display","none");if(this.options.modal){this.blanket.setStyle("visibility","hidden");Jx.Dialog.ZIndex[0]--}},open:function(){if(!this.isOpening){this.isOpening=true}if(this.contentIsLoaded){this.show();this.fireEvent("open",this);this.isOpening=false}},close:function(){this.isOpening=false;this.hide();this.fireEvent("close")},onContentLoaded:function(){if(this.isOpening){this.open()}}});Jx.PanelSet=new Class({panels:null,height:null,firstLayout:true,initialize:function(C,B){this.domObj=$(C);this.panels=B;var H=new Element("div",{styles:{position:"absolute"}});new Jx.Layout(H,{minHeight:0,maxHeight:0,height:0});var G=[H];B.each(function(I){G.push(I.domObj);I.options.hideTitle=true;I.contentContainer.resize({top:0});I.addEvent("expand",this.maximizePanel.bind(this,I));I.domObj.store("Jx.Panel",I)},this);this.splitter=new Jx.Splitter(this.domObj,{splitInto:B.length+1,layout:"vertical",elements:G});this.splitter.sizeChanged=this.sizeChanged.bind(this);for(var E=0;E<this.panels.length;E++){var A=this.panels[E];var F=this.splitter.bars[E];A.title.setStyle("visibility","hidden");document.body.adopt(A.title);var D=A.title.getBorderBoxSize();F.adopt(A.title);A.title.setStyle("visibility","");F.setStyle("height",D.height);F.removeClass("jxSplitterBar");F.addClass("jxPanelBar");A.manager=this}},sizeChanged:function(){if(this.firstLayout){if(this.panels[0].title.getBorderBoxSize().height!=0){for(var B=0;B<this.splitter.bars.length;B++){var A=this.panels[B];this.splitter.bars[B].style.height=A.title.getBorderBoxSize().height+"px";this.splitter.bars[B].store("size",null)}this.firstLayout=false;Jx.Splitter.prototype.sizeChanged.apply(this.splitter,[])}}else{Jx.Splitter.prototype.sizeChanged.apply(this.splitter,[])}},maximizePanel:function(A){var E=this.domObj.getContentBoxSize().height;var D=0;for(var C=1;C<this.splitter.elements.length;C++){var F=this.splitter.elements[C];D+=F.retrieve("leftBar").getBorderBoxSize().height;if(F!==A.domObj){var B=F.retrieve("Jx.Panel");var G=F.retrieve("jxLayout").options;F.resize({top:D,height:G.minHeight,bottom:null});D+=G.minHeight;F.retrieve("rightBar").style.top=D+"px"}else{break}}b=E;for(var C=this.splitter.elements.length-1;C>0;C--){F=this.splitter.elements[C];if(F!==A.domObj){var G=F.retrieve("jxLayout").options;b-=G.minHeight;F.resize({top:b,height:G.minHeight,bottom:null});b-=F.retrieve("leftBar").getBorderBoxSize().height;F.retrieve("leftBar").style.top=b+"px"}else{break}}A.domObj.resize({top:D,height:b-D,bottom:null})}});Jx.Combo=new Class({Implements:[Options,Events,Jx.AutoPosition,Jx.Chrome],domObj:null,ul:null,currentSelection:null,initialize:function(A){this.setOptions(A);this.domObj=new Element("div",{"class":"jxCombo"});if(this.options.id){this.domObj.id=this.options.id}if(this.options.editable){this.domInput=new Element("input",{"class":"jxComboInput",type:"text",events:{change:this.valueChanged.bindWithEvent(this),keydown:this.onKeyPress.bindWithEvent(this)}})}else{this.domInput=new Element("span",{"class":"jxComboInput"})}this.domObj.appendChild(this.domInput);this.domA=new Element("a",{"class":"jxComboDiscloser",href:"javascript:void(0)",events:{click:this.toggle.bind(this)}});this.domButton=new Element("img",{src:Jx.aPixel.src});this.domA.appendChild(this.domButton);this.domObj.appendChild(this.domA);if(!window.opera){this.domObj.appendChild(Jx.createIframeShim())}this.domListDiv=new Element("div",{"class":"jxComboOptions"});this.domList=new Element("ul");this.domListDiv.appendChild(this.domList);this.keypressHandler=this.keypress.bindWithEvent(this);this.clickHandler=this.click.bindWithEvent(this)},onKeyPress:function(A){if(A.key=="enter"){this.valueChanged()}},valueChanged:function(){this.fireEvent("changed",this)},add:function(D,B){var A=new Element("li");var C=new Element("a",{href:"javascript:void(0)",events:{click:this.pick.bindWithEvent(this)}});if($type(D)=="string"){C.innerHTML=D}else{C.appendChild(D)}A.appendChild(C);if(arguments.length>1&&this.domList.childNodes.length>B){this.domList.insertBefore(A,this.domList.childNodes[B])}else{this.domList.appendChild(A)}if(this.getValue()==""){this.setValue(C.childNodes[0])}},remove:function(A){if(A>0&&A<this.domList.childNodes.length){this.domList.removeChild(this.domList.childNodes[A])}},pick:function(B){var A=B.target;if(A.tagName=="A"){this.currentSelection=A;this.setValue(this.currentSelection.childNodes[0]);this.valueChanged()}this.close()},setValue:function(A){if(this.options.editable){if(typeof (A)=="string"){this.domInput.value=A}else{if(A.nodeType&&A.nodeType==3){this.domInput.value=A.nodeValue}else{this.domInput.value=A.innerHTML}}}else{if(typeof (A)=="string"){this.domInput.innerHTML=A}else{if(A.nodeType&&A.nodeType==3){this.domInput.innerHTML=A.nodeValue}else{this.domInput.appendChild(A)}}}},getValue:function(){value="";if(this.options.editable){value=this.domInput.value}else{if(this.domInput.childNodes.length>0){if(this.domInput.childNodes[0].nodeType==3){value=this.domInput.innerHTML}else{value=this.domInput.childNodes[0]}}}return value},toggle:function(){if(this.domListDiv.style.display=="block"){this.close()}else{this.open()}},open:function(){this.domListDiv.setStyle("visibility","hidden");document.body.adopt(this.domListDiv);this.domListDiv.width="";this.domListDiv.setContentBoxSize({width:Math.max(this.domListDiv.getSize().x,this.domObj.getSize().x)});this.showChrome(this.domListDiv);this.position(this.domListDiv,this.domObj,{horizontal:["left left","right right"],vertical:["bottom top","top bottom"],offsets:this.chromeOffsets});this.domListDiv.setStyle("visibility","");document.addEvents({keydown:this.keypressHandler,click:this.clickHandler})},keypress:function(A){if(A.key=="esc"){this.close()}},click:function(A){if(!A.target.descendantOf(this.domListDiv)&&!A.target.descendantOf(this.domObj)){this.close()}},close:function(){this.domListDiv.dispose();document.removeEvents({keydown:this.keypressHandler,click:this.clickHandler})},getSelection:function(){return this.currentSelection?this.currentSelection.name:""}});Jx.Splitter=new Class({Implements:[Options],domObj:null,elements:null,bars:null,firstUpdate:true,options:{useChildren:false,splitInto:2,elements:null,containerOptions:[],barOptions:[],layout:"horizontal",snaps:[]},initialize:function(A,I){this.setOptions(I);this.domObj=$(A);this.domObj.addClass("jxSplitContainer");this.domObj.setStyle("overflow","hidden");var H=this.domObj.retrieve("jxLayout");if(H){H.addEvent("sizeChange",this.sizeChanged.bind(this))}this.elements=[];this.bars=[];var G=2;if(this.options.useChildren){this.elements=this.domObj.getChildren();G=this.elements.length}else{G=this.options.elements?this.options.elements.length:this.options.splitInto;for(var E=0;E<G;E++){var C;if(this.options.elements&&this.options.elements[E]){C=$(this.options.elements[E]);if(!C){C=this.prepareElement();C.id=this.options.elements[E]}}else{C=this.prepareElement()}this.elements[E]=C;this.domObj.adopt(this.elements[E])}}this.elements.each(function(J){J.addClass("jxSplitArea")});for(var E=0;E<G;E++){if(!this.elements[E].retrieve("jxLayout")){new Jx.Layout(this.elements[E],this.options.containerOptions[E])}}for(var E=1;E<G;E++){this.bars[E-1]=this.prepareBar();this.bars[E-1].store("leftSide",this.elements[E-1]);this.bars[E-1].store("rightSide",this.elements[E]);this.elements[E-1].store("rightBar",this.bars[E-1]);this.elements[E].store("leftBar",this.bars[E-1]);this.domObj.adopt(this.bars[E-1])}this.establishConstraints();for(var E=0;E<this.options.barOptions.length;E++){if(!this.bars[E]){continue}var B=this.options.barOptions[E];if(B&&B.snap&&(B.snap=="before"||B.snap=="after")){var F;if(B.snap=="before"){F=this.bars[E].retrieve("leftSide")}else{if(B.snap=="after"){F=this.bars[E].retrieve("rightSide")}}var D=new Element("a",{"class":"jxSnap"+this.options.layout.capitalize()+B.snap.capitalize(),href:"javascript:void(0)"});this.bars[E].adopt(D);new Jx.Splitter.Snap(D,F,this)}}for(var E=0;E<this.options.snaps.length;E++){if(this.options.snaps[E]){new Jx.Splitter.Snap(this.options.snaps[E],this.elements[E],this)}}},prepareElement:function(){var A=new Element("div",{styles:{position:"absolute"}});return A},prepareBar:function(){var A=new Element("div",{"class":"jxSplitBar"+this.options.layout.capitalize(),title:"drag this bar to resize"});A.store("splitterObj",this);return A},establishConstraints:function(){var A={};var B;if(this.options.layout=="horizontal"){A.y=[0,0];B=this.dragHorizontal}else{A.x=[0,0];B=this.dragVertical}this.bars.each(function(C){new Drag(C,{limit:A,onSnap:function(D){D.addClass("jxSplitBarDrag")},onComplete:(function(D){D.removeClass("jxSplitBarDrag");if(D.retrieve("splitterObj")!=this){return }B.apply(this,[D])}).bind(this)})},this)},dragHorizontal:function(F){var A=parseInt(F.style.left);var H=F.retrieve("leftSide");var C=F.retrieve("rightSide");var D=H.retrieve("jxLayout");var G=C.retrieve("jxLayout");var E=this.domObj.getPaddingSize().left;var I,O,K;var N=F.retrieve("size");if(!N){N=F.getBorderBoxSize();F.store("size",N)}I=A+N.width-E;var B=this.domObj.getContentBoxSize();if(G.options.width!=null){O=G.options.width+G.options.left-I;K=B.width-I-O}else{O=B.width-G.options.right-I;K=G.options.right}if(O<0){O=0}if(O<G.options.minWidth){O=G.options.minWidth}if(G.options.maxWidth>=0&&O>G.options.maxWidth){O=G.options.maxWidth}I=B.width-K-O;A=I-N.width;var J,M;J=D.options.left;M=A-J;if(M<0){M=0}if(M<D.options.minWidth){M=D.options.minWidth}if(D.options.maxWidth>=0&&M>D.options.maxWidth){M=D.options.maxWidth}if(J+M!=A){A=J+M;var L=A+N.width-I;I+=L;O-=L}F.style.left=E+A+"px";if(D.options.width==null){var B=this.domObj.getContentBoxSize();H.resize({right:B.width-J-M})}else{H.resize({width:M})}if(G.options.width==null){C.resize({left:I})}else{C.resize({left:I,width:O})}},dragVertical:function(F){var J=parseInt(F.style.top);var D=F.retrieve("leftSide");var A=F.retrieve("rightSide");var E=D.retrieve("jxLayout");var H=A.retrieve("jxLayout");var N=this.domObj.getPaddingSize().top;var O=F.retrieve("size");if(!O){O=F.getBorderBoxSize();F.store("size",O)}var B=this.domObj.getContentBoxSize();var C,M,K;C=J+O.height-N;if(H.options.height!=null){M=H.options.height+H.options.top-C;K=B.height-C-M}else{M=B.height-H.options.bottom-C;K=H.options.bottom}if(M<0){M=0}if(M<H.options.minHeight){M=H.options.minHeight}if(H.options.maxHeight>=0&&M>H.options.maxHeight){M=H.options.maxHeight}C=B.height-K-M;J=C-O.height;var I,G;I=E.options.top;G=J-I;if(G<0){G=0}if(G<E.options.minHeight){G=E.options.minHeight}if(E.options.maxHeight>=0&&G>E.options.maxHeight){G=E.options.maxHeight}if(I+G!=J){J=I+G;var L=J+O.height-C;C+=L;M-=L}F.style.top=N+J+"px";if(E.options.height==null){D.resize({bottom:B.height-I-G})}else{D.resize({height:G})}if(H.options.height==null){A.resize({top:C})}else{A.resize({top:C,height:M})}},sizeChanged:function(){if(this.options.layout=="horizontal"){this.horizontalResize()}else{this.verticalResize()}},horizontalResize:function(){var O=this.domObj.getContentBoxSize().width;var D=O;for(var E=0;E<this.bars.length;E++){var L=this.bars[E];var Q=L.retrieve("size");if(!Q||Q.width==0){Q=L.getBorderBoxSize();L.store("size",Q)}O-=Q.width}var I=0;var H;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];H=K.retrieve("jxLayout").options;if(H.width!=null){O-=parseInt(H.width)}else{var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width}O-=N;I++}}if(I==0){O+=H.width;H.width=null;I=1}var G=parseInt(O/I);var P=O%I;var B=this.domObj.getPaddingSize().left;var C=0;for(var E=0;E<this.elements.length;E++){var K=this.elements[E];var J=K.retrieve("jxLayout");var H=J.options;if(H.width!=null){J.resize({left:C});C+=H.width}else{var M=G;if(I==1){M+=P}I--;var N=0;if(H.right!=0||H.left!=0){N=K.getBorderBoxSize().width+M}else{N=M}if(N<0){if(I>0){G=G+N/I}N=0}if(N<H.minWidth){if(I>0){G=G+(N-H.minWidth)/I}N=H.minWidth}if(H.maxWidth>=0&&N>H.maxWidth){if(I>0){G=G+(N-H.maxWidth)/I}N=K.options.maxWidth}var A=D-C-N;J.resize({left:C,right:A});C+=N}var F=K.retrieve("rightBar");if(F){F.setStyle("left",B+C);C+=F.retrieve("size").width}}},verticalResize:function(){var N=this.domObj.getContentBoxSize().height;var B=N;for(var D=0;D<this.bars.length;D++){var L=this.bars[D];var Q=L.retrieve("size");if(!Q||Q.height==0){Q=L.getBorderBoxSize();L.store("size",Q)}N-=Q.height}var I=0;var H;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];H=K.retrieve("jxLayout").options;if(H.height!=null){N-=parseInt(H.height)}else{var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height}N-=G;I++}}if(I==0){N+=H.height;H.height=null;I=1}var F=parseInt(N/I);var O=N%I;var P=this.domObj.getPaddingSize().top;var C=0;for(var D=0;D<this.elements.length;D++){var K=this.elements[D];var J=K.retrieve("jxLayout");var H=J.options;if(H.height!=null){J.resize({top:C});C+=H.height}else{var M=F;if(I==1){M+=O}I--;var G=0;if(H.bottom!=0||H.top!=0){G=K.getBorderBoxSize().height+M}else{G=M}if(G<0){if(I>0){F=F+G/I}G=0}if(G<H.minHeight){if(I>0){F=F+(G-H.minHeight)/I}G=H.minHeight}if(H.maxHeight>=0&&G>H.maxHeight){if(I>0){F=F+(G-H.maxHeight)/I}G=H.maxHeight}var A=B-C-G;J.resize({top:C,bottom:A});C+=G}var E=K.retrieve("rightBar");if(E){E.style.top=P+C+"px";C+=E.retrieve("size").height}}}});Jx.Splitter.Snap=new Class({snap:null,element:null,splitter:null,layout:"vertical",initialize:function(A,E,F){this.snap=A;this.element=E;var D=E.retrieve("jxLayout");D.addEvent("sizeChange",this.sizeChange.bind(this));this.splitter=F;this.layout=F.options.layout;var B=D.options;var C=this.element.getContentBoxSize();if(this.layout=="vertical"){this.originalSize=C.height;this.minimumSize=B.minHeight?B.minHeight:0}else{this.originalSize=C.width;this.minimumSize=B.minWidth?B.minWidth:0}A.addEvent("click",this.toggleElement.bind(this))},toggleElement:function(){var B=this.element.getContentBoxSize();var A={};if(this.layout=="vertical"){if(B.height==this.minimumSize){A.height=this.originalSize}else{this.originalSize=B.height;A.height=this.minimumSize}}else{if(B.width==this.minimumSize){A.width=this.originalSize}else{this.originalSize=B.width;A.width=this.minimumSize}}this.element.resize(A);this.splitter.sizeChanged()},sizeChange:function(){var A=this.element.getBorderBoxSize();if(this.layout=="vertical"){if(A.height==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}else{if(A.width==this.minimumSize){this.snap.addClass("jxSnapClosed");this.snap.removeClass("jxSnapOpened")}else{this.snap.addClass("jxSnapOpened");this.snap.removeClass("jxSnapClosed")}}}});Jx.TabSet=new Class({Implements:[Options,Events],tabs:null,domObj:null,initialize:function(B,A){this.setOptions(A);this.tabs=[];this.domObj=$(B);if(!this.domObj.hasClass("jxTabSetContainer")){this.domObj.addClass("jxTabSetContainer")}this.selectionChangedFn=this.selectionChanged.bind(this)},resizeTabBox:function(){var B=Element.getContentBoxSize(this.domObj.parentNode);Element.setBorderBoxSize(this.domObj,{width:B.width,height:B.height});for(var A=0;A<this.domObj.childNodes.length;A++){if(this.domObj.childNodes[A].nodeType==3){continue}Element.setBorderBoxSize(this.domObj.childNodes[A],{height:B.height});if(this.domObj.childNodes[A].resize){this.domObj.childNodes[A].resize()}}},add:function(){$A(arguments).each(function(A){if(A instanceof Jx.Button.Tab){A.addEvent("down",this.selectionChangedFn);this.domObj.appendChild(A.content);if(!this.activeTab){A.setActive(true)}this.tabs.push(A)}},this)},remove:function(A){if(A instanceof Jx.Button.Tab&&this.tabs.indexOf(A)!=-1){this.tabs.erase(A);if(this.activeTab==A){if(this.tabs.length){this.tabs[0].setActive(true)}}A.removeEvent("down",this.selectionChangedFn);A.content.dispose()}},setActiveTab:function(A){if(this.activeTab&&this.activeTab!=A){this.activeTab.setActive(false)}this.activeTab=A;if(this.activeTab.content.resize){this.activeTab.content.resize()}},selectionChanged:function(A){this.setActiveTab(A);this.fireEvent("tabChange",this,A)}});Jx.TabBox=new Class({tabBar:null,tabSet:null,initialize:function(B,A){A=A||"top";this.tabBar=new Jx.Toolbar({type:"TabBar",position:A});this.panel=new Jx.Panel({toolbars:[this.tabBar],hideTitle:true,position:"absolute",height:null});this.panel.domObj.addClass("jxTabBox");this.panel.addTo(B);this.tabSet=new Jx.TabSet(this.panel.content);this.panel.addEvent("sizeChange",this.tabSet.resizeTabBox.bind(this.tabSet));this.domObj=this.panel.domObj},add:function(){this.tabBar.add.apply(this.tabBar,arguments);this.tabSet.add.apply(this.tabSet,arguments)},remove:function(A){this.tabBar.remove(A);this.tabSet.remove(A)}});Jx.Button.Tab=new Class({Extends:Jx.Button,Implements:[Options,Events,Jx.ContentLoader],content:null,initialize:function(A){A=$merge(A,{type:"Tab",toggle:true});this.parent(A);this.content=new Element("div",{"class":"tabContent"});this.loadContent(this.content);new Jx.Layout(this.content,A);var B=this;this.addEvent("down",function(){B.content.addClass("tabContentActive")});this.addEvent("up",function(){B.content.removeClass("tabContentActive")})},clicked:function(A){this.setActive(true)}});Jx.Toolbar=new Class({Implements:[Options,Events],items:null,domObj:null,isActive:false,options:{type:"Toolbar",position:"top",parent:null},initialize:function(B){this.setOptions(B);this.domObj=new Element("ul",{id:this.options.id,"class":"jx"+this.options.type});if(this.options.parent){var A=$(this.options.parent);if(!A.hasClass("jxBarContainer")){A.addClass("jxBarContainer")}if(A.lastChild&&A.lastChild.hasClass("jxClearer")){A.insertBefore(this.domObj,A.lastChild)}else{A.appendChild(this.domObj);var C=new Element("div",{"class":"jxClearer"});A.appendChild(C)}if(["top","right","bottom","left"].contains(this.options.position)){A.addClass("jxBar"+this.options.position.capitalize())}else{A.addClass("jxBarTop")}}this.deactivateWatcher=this.deactivate.bindWithEvent(this)},add:function(){for(var B=0;B<arguments.length;B++){var A=arguments[B];A.toolbar=this;if(A.domObj){A=A.domObj}if(A.tagName=="LI"){if(!A.hasClass("jxToolItem")){A.addClass("jxToolItem")}this.domObj.appendChild(A)}else{var C=new Jx.Toolbar.Item(A);this.domObj.appendChild(C.domObj)}}if(arguments.length>0){this.fireEvent("add",this)}},remove:function(B){if(B.domObj){B=B.domObj}var A=B.findElement("LI");if(A&&A.parentNode==this.domObj){B.dispose();this.fireEvent("remove",this)}else{return null}},deactivate:function(){this.items.each(function(A){A.hide()});this.setActive(false)},isActive:function(){return this.isActive},setActive:function(A){this.isActive=A;if(this.isActive){document.addEvent("click",this.deactivateWatcher)}else{document.removeEvent("click",this.deactivateWatcher)}},setVisibleItem:function(A){if(this.visibleItem&&this.visibleItem.hide&&this.visibleItem!=A){this.visibleItem.hide()}this.visibleItem=A;if(this.isActive()){this.visibleItem.show()}}});Jx.Toolbar.Item=new Class({domObj:null,initialize:function(A){this.al=[];this.domObj=new Element("li",{"class":"jxToolItem"});if(A){if(A.domObj){this.domObj.appendChild(A.domObj);if(A instanceof Jx.Tab){this.domObj.addClass("jxTabItem")}}else{this.domObj.appendChild(A);if(A.hasClass("jxTab")){this.domObj.addClass("jxTabItem")}}}}});Jx.Toolbar.Separator=new Class({domObj:null,initialize:function(){this.domObj=new Element("li",{"class":"jxToolItem"});this.domSpan=new Element("span",{"class":"separator"});this.domObj.appendChild(this.domSpan)}});Jx.TreeItem=new Class({Implements:[Options,Events],domObj:null,owner:null,options:{label:"",data:null,contextMenu:null,image:null,enabled:true,type:"Item",imageClass:""},initialize:function(A){this.setOptions(A);this.domObj=new Element("li",{"class":"jxTree"+this.options.type});if(this.options.id){this.domObj.id=this.options.id}this.domNode=new Element("img",{"class":"jxTreeImage",src:Jx.aPixel.src});this.domObj.appendChild(this.domNode);this.domLabel=(this.options.draw)?this.options.draw.apply(this):this.draw();this.domObj.appendChild(this.domLabel);this.domObj.store("jxTreeItem",this);if(!this.options.enabled){this.domObj.addClass("jxDisabled")}},draw:function(){var B=new Element("img",{"class":"jxTreeIcon",src:Jx.aPixel.src});if(this.options.image){B.setStyle("backgroundImage","url("+this.options.image+")")}if(this.options.imageClass){B.addClass(this.options.imageClass)}var A=new Element("a",{href:"javascript:void(0)",html:this.options.label,events:{click:this.selected.bindWithEvent(this),dblclick:this.selected.bindWithEvent(this),contextmenu:this.showMenu.bindWithEvent(this)}});A.appendChild(B);return A},finalize:function(){this.finalizeItem()},finalizeItem:function(){if(!this.domObj){return }this.options=null;this.domObj=null;this.owner=null},clone:function(){return new Jx.TreeItem(this.options)},update:function(B){var A=(arguments.length>1)?arguments[1]:(this.owner&&this.owner.isLastNode(this));if(A){this.domObj.removeClass("jxTree"+this.options.type);this.domObj.addClass("jxTree"+this.options.type+"Last")}else{this.domObj.removeClass("jxTree"+this.options.type+"Last");this.domObj.addClass("jxTree"+this.options.type)}},selected:function(A){this.lastEvent=A;this.fireEvent("click",this)},showMenu:function(A){this.lastEvent=A;this.fireEvent("click",this);if(this.contextMenu){this.contextMenu.show(this.lastEvent)}A.stop()},getName:function(){return this.options.label},propertyChanged:function(A){this.options.enabled=A.isEnabled();if(this.options.enabled){this.domObj.removeClass("jxDisabled")}else{this.domObj.addClass("jxDisabled")}}});Jx.TreeFolder=new Class({Extends:Jx.TreeItem,subDomObj:null,nodes:null,isOpen:false,options:{folderCloseImage:Jx.baseURL+"images/tree_folder.png",folderOpenImage:Jx.baseURL+"images/tree_folder_open.png"},initialize:function(A){this.parent($merge(A,{type:"Branch"}));this.domObj.childNodes[0].addEvent("click",this.clicked.bindWithEvent(this));this.nodes=[];this.subDomObj=new Element("ul",{"class":"jxTree"});this.domObj.appendChild(this.subDomObj);this.subDomObj.className="jxTree";if(this.options.isOpen){this.expand()}else{this.collapse()}},finalize:function(){this.finalizeFolder();this.finalizeItem();this.subDomObj=null},finalizeFolder:function(){this.domObj.childNodes[0].removeEvents();for(var A=this.nodes.length-1;A>=0;A--){this.nodes[A].finalize();if(this.nodes[A].domObj){this.subDomObj.removeChild(this.nodes[A].domObj)}this.nodes.pop()}},clone:function(){var A=new Jx.TreeFolder(this.options);this.nodes.each(function(B){A.append(B.clone())});return A},isLastNode:function(A){if(this.nodes.length==0){return false}else{return this.nodes[this.nodes.length-1]==A}},update:function(C){if(!this.parent){return }var B=false;if(arguments.length>1){B=arguments[1]}else{B=(this.owner&&this.owner.isLastNode(this))}var D="jxTree"+this.options.type;D+=B?"Last":"";D+=this.options.isOpen?"Open":"Closed";this.domObj.className=D;if(B){this.subDomObj.className="jxTree"}else{this.subDomObj.className="jxTree jxTreeNest"}if(this.nodes&&C){var A=this;this.nodes.each(function(F,E){F.update(false,E==A.nodes.length-1)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true)},insert:function(D,B){D.owner=this;if(!B){this.nodes.unshift(D);if(this.subDomObj.childNodes.length==0){this.subDomObj.appendChild(D.domObj)}else{this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[0])}}else{var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){C=C+1;if(C<this.nodes.length){this.nodes.splice(C,0,D);this.subDomObj.insertBefore(D.domObj,this.subDomObj.childNodes[C]);A=true;break}}}if(!A){this.nodes.push(D);this.subDomObj.appendChild(D.domObj)}}this.update(true)},remove:function(B){B.owner=null;for(var A=0;A<this.nodes.length;A++){if(this.nodes[A]==B){this.nodes.splice(A,1);this.subDomObj.removeChild(this.subDomObj.childNodes[A]);break}}this.update(true)},replace:function(D,B){var A=false;for(var C=0;C<this.nodes.length;C++){if(this.nodes[C]==B){if(C<this.nodes.length){D.owner=this;this.nodes.splice(C,1,D);this.subDomObj.replaceChild(D.domObj,B.domObj);return true}}}return false},clicked:function(A){if(this.options.isOpen){this.collapse()}else{this.expand()}},expand:function(){this.options.isOpen=true;this.subDomObj.setStyle("display","block");this.update(true);this.fireEvent("disclosed",this)},collapse:function(){this.options.isOpen=false;this.subDomObj.setStyle("display","none");this.update(true);this.fireEvent("disclosed",this)},findChild:function(C){if(C.length==0){return this}if(C.length==1){for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==C[0]){return this.nodes[B]}}return null}var A=C.shift();for(var B=0;B<this.nodes.length;B++){if(this.nodes[B].getName()==A&&this.nodes[B].findChild){return this.nodes[B].findChild(C)}}return null}});Jx.Tree=new Class({Extends:Jx.TreeFolder,initialize:function(B,A){this.parent(A);this.subDomObj=new Element("ul",{"class":"jxTreeRoot"});$(B).appendChild(this.subDomObj);this.nodes=[];this.isOpen=true},finalize:function(){this.clear();this.subDomObj.parentNode.removeChild(this.subDomObj)},clear:function(){for(var A=this.nodes.length-1;A>=0;A--){this.subDomObj.removeChild(this.nodes[A].domObj);this.nodes[A].finalize();this.nodes.pop()}},update:function(A){var B=true;if(this.subDomObj){if(B){this.subDomObj.removeClass("jxTreeNest")}else{this.subDomObj.addClass("jxTreeNest")}}if(this.nodes&&A){this.nodes.each(function(C){C.update(false)})}},append:function(A){A.owner=this;this.nodes.push(A);this.subDomObj.appendChild(A.domObj);this.update(true)}});
\ No newline at end of file

Modified: sandbox/jx2/jx/lib/jxlib.uncompressed.js
===================================================================
--- sandbox/jx2/jx/lib/jxlib.uncompressed.js	2008-09-09 20:52:42 UTC (rev 1508)
+++ sandbox/jx2/jx/lib/jxlib.uncompressed.js	2008-09-09 21:17:25 UTC (rev 1509)
@@ -3719,7 +3719,6 @@
 		text = (match) ? match[1] : text;
 		
 		var container = new Element('div');
-		
 		return $try(function(){
 			var root = '<root>' + text + '</root>', doc;
 			if (Browser.Engine.trident){
@@ -3727,7 +3726,7 @@
 				doc.async = false;
 				doc.loadXML(root);
 			} else {
-				doc = new DOMParser().parseFromString(root, 'text/xml');
+				doc = new DOMParser().parseFromString(root, 'text/xhtml');
 			}
 			root = doc.getElementsByTagName('root')[0];
 			for (var i = 0, k = root.childNodes.length; i < k; i++){
@@ -3815,148 +3814,148 @@
 
 });//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
 
-/*
-Script: Fx.Slide.js
-	Effect to slide an element in and out of view.
-
-License:
-	MIT-style license.
-*/
-
-Fx.Slide = new Class({
-
-	Extends: Fx,
-
-	options: {
-		mode: 'vertical'
-	},
-
-	initialize: function(element, options){
-		this.addEvent('complete', function(){
-			this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);
-			if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);
-		}, true);
-		this.element = this.subject = $(element);
-		this.parent(options);
-		var wrapper = this.element.retrieve('wrapper');
-		this.wrapper = wrapper || new Element('div', {
-			styles: $extend(this.element.getStyles('margin', 'position'), {'overflow': 'hidden'})
-		}).wraps(this.element);
-		this.element.store('wrapper', this.wrapper).setStyle('margin', 0);
-		this.now = [];
-		this.open = true;
-	},
-
-	vertical: function(){
-		this.margin = 'margin-top';
-		this.layout = 'height';
-		this.offset = this.element.offsetHeight;
-	},
-
-	horizontal: function(){
-		this.margin = 'margin-left';
-		this.layout = 'width';
-		this.offset = this.element.offsetWidth;
-	},
-
-	set: function(now){
-		this.element.setStyle(this.margin, now[0]);
-		this.wrapper.setStyle(this.layout, now[1]);
-		return this;
-	},
-
-	compute: function(from, to, delta){
-		var now = [];
-		var x = 2;
-		x.times(function(i){
-			now[i] = Fx.compute(from[i], to[i], delta);
-		});
-		return now;
-	},
-
-	start: function(how, mode){
-		if (!this.check(arguments.callee, how, mode)) return this;
-		this[mode || this.options.mode]();
-		var margin = this.element.getStyle(this.margin).toInt();
-		var layout = this.wrapper.getStyle(this.layout).toInt();
-		var caseIn = [[margin, layout], [0, this.offset]];
-		var caseOut = [[margin, layout], [-this.offset, 0]];
-		var start;
-		switch (how){
-			case 'in': start = caseIn; break;
-			case 'out': start = caseOut; break;
-			case 'toggle': start = (this.wrapper['offset' + this.layout.capitalize()] == 0) ? caseIn : caseOut;
-		}
-		return this.parent(start[0], start[1]);
-	},
-
-	slideIn: function(mode){
-		return this.start('in', mode);
-	},
-
-	slideOut: function(mode){
-		return this.start('out', mode);
-	},
-
-	hide: function(mode){
-		this[mode || this.options.mode]();
-		this.open = false;
-		return this.set([-this.offset, 0]);
-	},
-
-	show: function(mode){
-		this[mode || this.options.mode]();
-		this.open = true;
-		return this.set([0, this.offset]);
-	},
-
-	toggle: function(mode){
-		return this.start('toggle', mode);
-	}
-
-});
-
-Element.Properties.slide = {
-
-	set: function(options){
-		var slide = this.retrieve('slide');
-		if (slide) slide.cancel();
-		return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));
-	},
-	
-	get: function(options){
-		if (options || !this.retrieve('slide')){
-			if (options || !this.retrieve('slide:options')) this.set('slide', options);
-			this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));
-		}
-		return this.retrieve('slide');
-	}
-
-};
-
-Element.implement({
-
-	slide: function(how, mode){
-		how = how || 'toggle';
-		var slide = this.get('slide'), toggle;
-		switch (how){
-			case 'hide': slide.hide(mode); break;
-			case 'show': slide.show(mode); break;
-			case 'toggle':
-				var flag = this.retrieve('slide:flag', slide.open);
-				slide[(flag) ? 'slideOut' : 'slideIn'](mode);
-				this.store('slide:flag', !flag);
-				toggle = true;
-			break;
-			default: slide.start(how, mode);
-		}
-		if (!toggle) this.eliminate('slide:flag');
-		return this;
-	}
-
-});
+/*
+Script: Fx.Slide.js
+	Effect to slide an element in and out of view.
 
+License:
+	MIT-style license.
+*/
 
+Fx.Slide = new Class({
+
+	Extends: Fx,
+
+	options: {
+		mode: 'vertical'
+	},
+
+	initialize: function(element, options){
+		this.addEvent('complete', function(){
+			this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);
+			if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);
+		}, true);
+		this.element = this.subject = $(element);
+		this.parent(options);
+		var wrapper = this.element.retrieve('wrapper');
+		this.wrapper = wrapper || new Element('div', {
+			styles: $extend(this.element.getStyles('margin', 'position'), {'overflow': 'hidden'})
+		}).wraps(this.element);
+		this.element.store('wrapper', this.wrapper).setStyle('margin', 0);
+		this.now = [];
+		this.open = true;
+	},
+
+	vertical: function(){
+		this.margin = 'margin-top';
+		this.layout = 'height';
+		this.offset = this.element.offsetHeight;
+	},
+
+	horizontal: function(){
+		this.margin = 'margin-left';
+		this.layout = 'width';
+		this.offset = this.element.offsetWidth;
+	},
+
+	set: function(now){
+		this.element.setStyle(this.margin, now[0]);
+		this.wrapper.setStyle(this.layout, now[1]);
+		return this;
+	},
+
+	compute: function(from, to, delta){
+		var now = [];
+		var x = 2;
+		x.times(function(i){
+			now[i] = Fx.compute(from[i], to[i], delta);
+		});
+		return now;
+	},
+
+	start: function(how, mode){
+		if (!this.check(arguments.callee, how, mode)) return this;
+		this[mode || this.options.mode]();
+		var margin = this.element.getStyle(this.margin).toInt();
+		var layout = this.wrapper.getStyle(this.layout).toInt();
+		var caseIn = [[margin, layout], [0, this.offset]];
+		var caseOut = [[margin, layout], [-this.offset, 0]];
+		var start;
+		switch (how){
+			case 'in': start = caseIn; break;
+			case 'out': start = caseOut; break;
+			case 'toggle': start = (this.wrapper['offset' + this.layout.capitalize()] == 0) ? caseIn : caseOut;
+		}
+		return this.parent(start[0], start[1]);
+	},
+
+	slideIn: function(mode){
+		return this.start('in', mode);
+	},
+
+	slideOut: function(mode){
+		return this.start('out', mode);
+	},
+
+	hide: function(mode){
+		this[mode || this.options.mode]();
+		this.open = false;
+		return this.set([-this.offset, 0]);
+	},
+
+	show: function(mode){
+		this[mode || this.options.mode]();
+		this.open = true;
+		return this.set([0, this.offset]);
+	},
+
+	toggle: function(mode){
+		return this.start('toggle', mode);
+	}
+
+});
+
+Element.Properties.slide = {
+
+	set: function(options){
+		var slide = this.retrieve('slide');
+		if (slide) slide.cancel();
+		return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));
+	},
+	
+	get: function(options){
+		if (options || !this.retrieve('slide')){
+			if (options || !this.retrieve('slide:options')) this.set('slide', options);
+			this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));
+		}
+		return this.retrieve('slide');
+	}
+
+};
+
+Element.implement({
+
+	slide: function(how, mode){
+		how = how || 'toggle';
+		var slide = this.get('slide'), toggle;
+		switch (how){
+			case 'hide': slide.hide(mode); break;
+			case 'show': slide.show(mode); break;
+			case 'toggle':
+				var flag = this.retrieve('slide:flag', slide.open);
+				slide[(flag) ? 'slideOut' : 'slideIn'](mode);
+				this.store('slide:flag', !flag);
+				toggle = true;
+			break;
+			default: slide.start(how, mode);
+		}
+		if (!toggle) this.eliminate('slide:flag');
+		return this;
+	}
+
+});
+
+
 /*
 Script: Fx.Scroll.js
 	Effect to smoothly scroll any element, including the window.
@@ -4157,6 +4156,7 @@
 	},
 
 	start: function(event){
+	    event.stop();
 		if (this.options.preventDefault) event.preventDefault();
 		this.fireEvent('beforeStart', this.element);
 		this.mouse.start = event.page;
@@ -4334,56 +4334,56 @@
 });
 
 
-/*
-Script: Hash.Cookie.js
-	Class for creating, reading, and deleting Cookies in JSON format.
-
-License:
-	MIT-style license.
-*/
-
-Hash.Cookie = new Class({
-
-	Extends: Cookie,
-
-	options: {
-		autoSave: true
-	},
-
-	initialize: function(name, options){
-		this.parent(name, options);
-		this.load();
-	},
-
-	save: function(){
-		var value = JSON.encode(this.hash);
-		if (!value || value.length > 4096) return false; //cookie would be truncated!
-		if (value == '{}') this.dispose();
-		else this.write(value);
-		return true;
-	},
-
-	load: function(){
-		this.hash = new Hash(JSON.decode(this.read(), true));
-		return this;
-	}
-
-});
-
-Hash.Cookie.implement((function(){
-	
-	var methods = {};
-	
-	Hash.each(Hash.prototype, function(method, name){
-		methods[name] = function(){
-			var value = method.apply(this.hash, arguments);
-			if (this.options.autoSave) this.save();
-			return value;
-		};
-	});
-	
-	return methods;
-	
+/*
+Script: Hash.Cookie.js
+	Class for creating, reading, and deleting Cookies in JSON format.
+
+License:
+	MIT-style license.
+*/
+
+Hash.Cookie = new Class({
+
+	Extends: Cookie,
+
+	options: {
+		autoSave: true
+	},
+
+	initialize: function(name, options){
+		this.parent(name, options);
+		this.load();
+	},
+
+	save: function(){
+		var value = JSON.encode(this.hash);
+		if (!value || value.length > 4096) return false; //cookie would be truncated!
+		if (value == '{}') this.dispose();
+		else this.write(value);
+		return true;
+	},
+
+	load: function(){
+		this.hash = new Hash(JSON.decode(this.read(), true));
+		return this;
+	}
+
+});
+
+Hash.Cookie.implement((function(){
+	
+	var methods = {};
+	
+	Hash.each(Hash.prototype, function(method, name){
+		methods[name] = function(){
+			var value = method.apply(this.hash, arguments);
+			if (this.options.autoSave) this.save();
+			return value;
+		};
+	});
+	
+	return methods;
+	
 })());
 
 /*
@@ -4846,171 +4846,171 @@
 
 });
 
-/*
-Script: Tips.js
-	Class for creating nice tips that follow the mouse cursor when hovering an element.
-
-License:
-	MIT-style license.
-*/
-
-var Tips = new Class({
-
-	Implements: [Events, Options],
-
-	options: {
-		onShow: function(tip){
-			tip.setStyle('visibility', 'visible');
-		},
-		onHide: function(tip){
-			tip.setStyle('visibility', 'hidden');
-		},
-		showDelay: 100,
-		hideDelay: 100,
-		className: null,
-		offsets: {x: 16, y: 16},
-		fixed: false
-	},
-
-	initialize: function(){
-		var params = Array.link(arguments, {options: Object.type, elements: $defined});
-		this.setOptions(params.options || null);
-		
-		this.tip = new Element('div').inject(document.body);
-		
-		if (this.options.className) this.tip.addClass(this.options.className);
-		
-		var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);
-		this.container = new Element('div', {'class': 'tip'}).inject(this.tip);
-		var bottom = new Element('div', {'class': 'tip-bottom'}).inject(this.tip);
-
-		this.tip.setStyles({position: 'absolute', top: 0, left: 0, visibility: 'hidden'});
-		
-		if (params.elements) this.attach(params.elements);
-	},
-	
-	attach: function(elements){
-		$$(elements).each(function(element){
-			var title = element.retrieve('tip:title', element.get('title'));
-			var text = element.retrieve('tip:text', element.get('rel') || element.get('href'));
-			var enter = element.retrieve('tip:enter', this.elementEnter.bindWithEvent(this, element));
-			var leave = element.retrieve('tip:leave', this.elementLeave.bindWithEvent(this, element));
-			element.addEvents({mouseenter: enter, mouseleave: leave});
-			if (!this.options.fixed){
-				var move = element.retrieve('tip:move', this.elementMove.bindWithEvent(this, element));
-				element.addEvent('mousemove', move);
-			}
-			element.store('tip:native', element.get('title'));
-			element.erase('title');
-		}, this);
-		return this;
-	},
-	
-	detach: function(elements){
-		$$(elements).each(function(element){
-			element.removeEvent('mouseenter', element.retrieve('tip:enter') || $empty);
-			element.removeEvent('mouseleave', element.retrieve('tip:leave') || $empty);
-			element.removeEvent('mousemove', element.retrieve('tip:move') || $empty);
-			element.eliminate('tip:enter').eliminate('tip:leave').eliminate('tip:move');
-			var original = element.retrieve('tip:native');
-			if (original) element.set('title', original);
-		});
-		return this;
-	},
-	
-	elementEnter: function(event, element){
-		
-		$A(this.container.childNodes).each(Element.dispose);
-		
-		var title = element.retrieve('tip:title');
-		
-		if (title){
-			this.titleElement = new Element('div', {'class': 'tip-title'}).inject(this.container);
-			this.fill(this.titleElement, title);
-		}
-		
-		var text = element.retrieve('tip:text');
-		if (text){
-			this.textElement = new Element('div', {'class': 'tip-text'}).inject(this.container);
-			this.fill(this.textElement, text);
-		}
-		
-		this.timer = $clear(this.timer);
-		this.timer = this.show.delay(this.options.showDelay, this);
-
-		this.position((!this.options.fixed) ? event : {page: element.getPosition()});
-	},
-	
-	elementLeave: function(event){
-		$clear(this.timer);
-		this.timer = this.hide.delay(this.options.hideDelay, this);
-	},
-	
-	elementMove: function(event){
-		this.position(event);
-	},
-	
-	position: function(event){
-		var size = window.getSize(), scroll = window.getScroll();
-		var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};
-		var props = {x: 'left', y: 'top'};
-		for (var z in props){
-			var pos = event.page[z] + this.options.offsets[z];
-			if ((pos + tip[z] - scroll[z]) > size[z]) pos = event.page[z] - this.options.offsets[z] - tip[z];
-			this.tip.setStyle(props[z], pos);
-		}
-	},
-	
-	fill: function(element, contents){
-		(typeof contents == 'string') ? element.set('html', contents) : element.adopt(contents);
-	},
-
-	show: function(){
-		this.fireEvent('show', this.tip);
-	},
-
-	hide: function(){
-		this.fireEvent('hide', this.tip);
-	}
-
+/*
+Script: Tips.js
+	Class for creating nice tips that follow the mouse cursor when hovering an element.
+
+License:
+	MIT-style license.
+*/
+
+var Tips = new Class({
+
+	Implements: [Events, Options],
+
+	options: {
+		onShow: function(tip){
+			tip.setStyle('visibility', 'visible');
+		},
+		onHide: function(tip){
+			tip.setStyle('visibility', 'hidden');
+		},
+		showDelay: 100,
+		hideDelay: 100,
+		className: null,
+		offsets: {x: 16, y: 16},
+		fixed: false
+	},
+
+	initialize: function(){
+		var params = Array.link(arguments, {options: Object.type, elements: $defined});
+		this.setOptions(params.options || null);
+		
+		this.tip = new Element('div').inject(document.body);
+		
+		if (this.options.className) this.tip.addClass(this.options.className);
+		
+		var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);
+		this.container = new Element('div', {'class': 'tip'}).inject(this.tip);
+		var bottom = new Element('div', {'class': 'tip-bottom'}).inject(this.tip);
+
+		this.tip.setStyles({position: 'absolute', top: 0, left: 0, visibility: 'hidden'});
+		
+		if (params.elements) this.attach(params.elements);
+	},
+	
+	attach: function(elements){
+		$$(elements).each(function(element){
+			var title = element.retrieve('tip:title', element.get('title'));
+			var text = element.retrieve('tip:text', element.get('rel') || element.get('href'));
+			var enter = element.retrieve('tip:enter', this.elementEnter.bindWithEvent(this, element));
+			var leave = element.retrieve('tip:leave', this.elementLeave.bindWithEvent(this, element));
+			element.addEvents({mouseenter: enter, mouseleave: leave});
+			if (!this.options.fixed){
+				var move = element.retrieve('tip:move', this.elementMove.bindWithEvent(this, element));
+				element.addEvent('mousemove', move);
+			}
+			element.store('tip:native', element.get('title'));
+			element.erase('title');
+		}, this);
+		return this;
+	},
+	
+	detach: function(elements){
+		$$(elements).each(function(element){
+			element.removeEvent('mouseenter', element.retrieve('tip:enter') || $empty);
+			element.removeEvent('mouseleave', element.retrieve('tip:leave') || $empty);
+			element.removeEvent('mousemove', element.retrieve('tip:move') || $empty);
+			element.eliminate('tip:enter').eliminate('tip:leave').eliminate('tip:move');
+			var original = element.retrieve('tip:native');
+			if (original) element.set('title', original);
+		});
+		return this;
+	},
+	
+	elementEnter: function(event, element){
+		
+		$A(this.container.childNodes).each(Element.dispose);
+		
+		var title = element.retrieve('tip:title');
+		
+		if (title){
+			this.titleElement = new Element('div', {'class': 'tip-title'}).inject(this.container);
+			this.fill(this.titleElement, title);
+		}
+		
+		var text = element.retrieve('tip:text');
+		if (text){
+			this.textElement = new Element('div', {'class': 'tip-text'}).inject(this.container);
+			this.fill(this.textElement, text);
+		}
+		
+		this.timer = $clear(this.timer);
+		this.timer = this.show.delay(this.options.showDelay, this);
+
+		this.position((!this.options.fixed) ? event : {page: element.getPosition()});
+	},
+	
+	elementLeave: function(event){
+		$clear(this.timer);
+		this.timer = this.hide.delay(this.options.hideDelay, this);
+	},
+	
+	elementMove: function(event){
+		this.position(event);
+	},
+	
+	position: function(event){
+		var size = window.getSize(), scroll = window.getScroll();
+		var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};
+		var props = {x: 'left', y: 'top'};
+		for (var z in props){
+			var pos = event.page[z] + this.options.offsets[z];
+			if ((pos + tip[z] - scroll[z]) > size[z]) pos = event.page[z] - this.options.offsets[z] - tip[z];
+			this.tip.setStyle(props[z], pos);
+		}
+	},
+	
+	fill: function(element, contents){
+		(typeof contents == 'string') ? element.set('html', contents) : element.adopt(contents);
+	},
+
+	show: function(){
+		this.fireEvent('show', this.tip);
+	},
+
+	hide: function(){
+		this.fireEvent('hide', this.tip);
+	}
+
 });
 
-/*
-Script: SmoothScroll.js
-	Class for creating a smooth scrolling effect to all internal links on the page.
-
-License:
-	MIT-style license.
-*/
-
-var SmoothScroll = new Class({
-
-	Extends: Fx.Scroll,
-
-	initialize: function(options, context){
-		context = context || document;
-		var doc = context.getDocument(), win = context.getWindow();
-		this.parent(doc, options);
-		this.links = (this.options.links) ? $$(this.options.links) : $$(doc.links);
-		var location = win.location.href.match(/^[^#]*/)[0] + '#';
-		this.links.each(function(link){
-			if (link.href.indexOf(location) != 0) return;
-			var anchor = link.href.substr(location.length);
-			if (anchor && $(anchor)) this.useLink(link, anchor);
-		}, this);
-		if (!Browser.Engine.webkit419) this.addEvent('complete', function(){
-			win.location.hash = this.anchor;
-		}, true);
-	},
-
-	useLink: function(link, anchor){
-		link.addEvent('click', function(event){
-			this.anchor = anchor;
-			this.toElement(anchor);
-			event.stop();
-		}.bind(this));
-	}
-
+/*
+Script: SmoothScroll.js
+	Class for creating a smooth scrolling effect to all internal links on the page.
+
+License:
+	MIT-style license.
+*/
+
+var SmoothScroll = new Class({
+
+	Extends: Fx.Scroll,
+
+	initialize: function(options, context){
+		context = context || document;
+		var doc = context.getDocument(), win = context.getWindow();
+		this.parent(doc, options);
+		this.links = (this.options.links) ? $$(this.options.links) : $$(doc.links);
+		var location = win.location.href.match(/^[^#]*/)[0] + '#';
+		this.links.each(function(link){
+			if (link.href.indexOf(location) != 0) return;
+			var anchor = link.href.substr(location.length);
+			if (anchor && $(anchor)) this.useLink(link, anchor);
+		}, this);
+		if (!Browser.Engine.webkit419) this.addEvent('complete', function(){
+			win.location.hash = this.anchor;
+		}, true);
+	},
+
+	useLink: function(link, anchor){
+		link.addEvent('click', function(event){
+			this.anchor = anchor;
+			this.toElement(anchor);
+			event.stop();
+		}.bind(this));
+	}
+
 });
 
 /*
@@ -5100,6 +5100,7 @@
 	},
 
 	clickedElement: function(event){
+	    event.stop();
 		var dir = this.range < 0 ? -1 : 1;
 		var position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;
 		position = position.limit(-this.options.offset, this.full -this.options.offset);
@@ -5204,106 +5205,106 @@
 
 });
 
-/*
-Script: Accordion.js
-	An Fx.Elements extension which allows you to easily create accordion type controls.
-
-License:
-	MIT-style license.
-*/
-
-var Accordion = new Class({
-
-	Extends: Fx.Elements,
-
-	options: {/*
-		onActive: $empty,
-		onBackground: $empty,*/
-		display: 0,
-		show: false,
-		height: true,
-		width: false,
-		opacity: true,
-		fixedHeight: false,
-		fixedWidth: false,
-		wait: false,
-		alwaysHide: false
-	},
-
-	initialize: function(){
-		var params = Array.link(arguments, {'container': Element.type, 'options': Object.type, 'togglers': $defined, 'elements': $defined});
-		this.parent(params.elements, params.options);
-		this.togglers = $$(params.togglers);
-		this.container = $(params.container);
-		this.previous = -1;
-		if (this.options.alwaysHide) this.options.wait = true;
-		if ($chk(this.options.show)){
-			this.options.display = false;
-			this.previous = this.options.show;
-		}
-		if (this.options.start){
-			this.options.display = false;
-			this.options.show = false;
-		}
-		this.effects = {};
-		if (this.options.opacity) this.effects.opacity = 'fullOpacity';
-		if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';
-		if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';
-		for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);
-		this.elements.each(function(el, i){
-			if (this.options.show === i){
-				this.fireEvent('active', [this.togglers[i], el]);
-			} else {
-				for (var fx in this.effects) el.setStyle(fx, 0);
-			}
-		}, this);
-		if ($chk(this.options.display)) this.display(this.options.display);
-	},
-
-	addSection: function(toggler, element, pos){
-		toggler = $(toggler);
-		element = $(element);
-		var test = this.togglers.contains(toggler);
-		var len = this.togglers.length;
-		this.togglers.include(toggler);
-		this.elements.include(element);
-		if (len && (!test || pos)){
-			pos = $pick(pos, len - 1);
-			toggler.inject(this.togglers[pos], 'before');
-			element.inject(toggler, 'after');
-		} else if (this.container && !test){
-			toggler.inject(this.container);
-			element.inject(this.container);
-		}
-		var idx = this.togglers.indexOf(toggler);
-		toggler.addEvent('click', this.display.bind(this, idx));
-		if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
-		if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
-		element.fullOpacity = 1;
-		if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;
-		if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;
-		element.setStyle('overflow', 'hidden');
-		if (!test){
-			for (var fx in this.effects) element.setStyle(fx, 0);
-		}
-		return this;
-	},
-
-	display: function(index){
-		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
-		if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;
-		this.previous = index;
-		var obj = {};
-		this.elements.each(function(el, i){
-			obj[i] = {};
-			var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));
-			this.fireEvent(hide ? 'background' : 'active', [this.togglers[i], el]);
-			for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];
-		}, this);
-		return this.start(obj);
-	}
-
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+/*
+Script: Accordion.js
+	An Fx.Elements extension which allows you to easily create accordion type controls.
+
+License:
+	MIT-style license.
+*/
+
+var Accordion = new Class({
+
+	Extends: Fx.Elements,
+
+	options: {/*
+		onActive: $empty,
+		onBackground: $empty,*/
+		display: 0,
+		show: false,
+		height: true,
+		width: false,
+		opacity: true,
+		fixedHeight: false,
+		fixedWidth: false,
+		wait: false,
+		alwaysHide: false
+	},
+
+	initialize: function(){
+		var params = Array.link(arguments, {'container': Element.type, 'options': Object.type, 'togglers': $defined, 'elements': $defined});
+		this.parent(params.elements, params.options);
+		this.togglers = $$(params.togglers);
+		this.container = $(params.container);
+		this.previous = -1;
+		if (this.options.alwaysHide) this.options.wait = true;
+		if ($chk(this.options.show)){
+			this.options.display = false;
+			this.previous = this.options.show;
+		}
+		if (this.options.start){
+			this.options.display = false;
+			this.options.show = false;
+		}
+		this.effects = {};
+		if (this.options.opacity) this.effects.opacity = 'fullOpacity';
+		if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';
+		if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';
+		for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);
+		this.elements.each(function(el, i){
+			if (this.options.show === i){
+				this.fireEvent('active', [this.togglers[i], el]);
+			} else {
+				for (var fx in this.effects) el.setStyle(fx, 0);
+			}
+		}, this);
+		if ($chk(this.options.display)) this.display(this.options.display);
+	},
+
+	addSection: function(toggler, element, pos){
+		toggler = $(toggler);
+		element = $(element);
+		var test = this.togglers.contains(toggler);
+		var len = this.togglers.length;
+		this.togglers.include(toggler);
+		this.elements.include(element);
+		if (len && (!test || pos)){
+			pos = $pick(pos, len - 1);
+			toggler.inject(this.togglers[pos], 'before');
+			element.inject(toggler, 'after');
+		} else if (this.container && !test){
+			toggler.inject(this.container);
+			element.inject(this.container);
+		}
+		var idx = this.togglers.indexOf(toggler);
+		toggler.addEvent('click', this.display.bind(this, idx));
+		if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
+		if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
+		element.fullOpacity = 1;
+		if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;
+		if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;
+		element.setStyle('overflow', 'hidden');
+		if (!test){
+			for (var fx in this.effects) element.setStyle(fx, 0);
+		}
+		return this;
+	},
+
+	display: function(index){
+		index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
+		if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;
+		this.previous = index;
+		var obj = {};
+		this.elements.each(function(el, i){
+			obj[i] = {};
+			var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));
+			this.fireEvent(hide ? 'background' : 'active', [this.togglers[i], el]);
+			for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];
+		}, this);
+		return this.start(obj);
+	}
+
+});// $Id: common.js 803 2008-09-02 18:02:13Z pspencer $
 /**
  * Class: Jx
  * Jx is a global singleton object that contains the entire Jx library
@@ -6252,7 +6253,7 @@
             this.chrome.dispose();
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: button.js 861 2008-09-08 20:14:59Z pspencer $
 /**
  * Class: Jx.Button
  * Jx.Button creates a clickable element that can be added to a web page.
@@ -6451,7 +6452,7 @@
             });
             //if image is not a_pixel, set the background image of the image
             //otherwise let the default css take over.
-            if (this.options.image.indexOf('a_pixel.png') == -1) {
+            if (this.options.image && this.options.image.indexOf('a_pixel.png') == -1) {
                 i.setStyle('backgroundImage',"url("+this.options.image+")");
             }
             s.appendChild(i);
@@ -6611,7 +6612,7 @@
             parent.appendChild(this.domObj);            
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: button.flyout.js 782 2008-08-26 17:36:11Z pspencer $
 /**
  * Class: Jx.Button.Flyout
  * Flyout buttons expose a panel when the user clicks the button.  The
@@ -6821,7 +6822,7 @@
             Jx.Button.Flyout.Stack[Jx.Button.Flyout.Stack.length - 1].hide();
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: button.multi.js 879 2008-09-09 18:22:45Z pspencer $
 /**
  * Class: Jx.Button.Multi
  * Multi buttons are used to contain multiple buttons in a drop down list
@@ -6890,12 +6891,67 @@
      */
     initialize: function() {
         this.buttons = [];
-        var d = new Element('div');
-        this.tb = new Jx.Toolbar({parent: d, position:'right'});
-        this.flyout = new Jx.Button.Flyout({content: d});
-        this.flyout.domObj.firstChild.addClass('jxButtonMulti');
-        this.domObj = new Element('div', {'class': 'jxButtonMultiContainer'});
-        this.domObj.grab(this.flyout.domObj);
+
+        // we use a button and steal a reference to its domObj so
+        // we look like a button to the result of the world
+        this.button = new Jx.Button();
+        this.domObj = this.button.domObj;
+        this.button.domA.addClass('jxButtonMulti');
+        
+        this.menu = new Jx.Menu();
+        this.menu.button = this.button;
+        this.buttonSet = new Jx.ButtonSet();
+        
+        var a = new Element('a', {
+            'class': 'jxButtonMultiDisclose',
+            'href': 'javascript:void(0)'
+        });
+        a.addEvents({
+            'click': (function(e) {
+                if (this.items.length ==0) {
+                    return;
+                }
+                this.contentContainer.setStyle('visibility','hidden');
+                document.body.adopt(this.contentContainer);            
+                /* we have to size the container for IE to render the chrome correctly
+                 * but just in the menu/sub menu case - there is some horrible peekaboo
+                 * bug in IE related to ULs that we just couldn't figure out
+                 */
+                this.contentContainer.setContentBoxSize(this.subDomObj.getMarginBoxSize());
+
+                this.showChrome(this.contentContainer);
+
+                this.position(this.contentContainer, this.button.domObj, {
+                    horizontal: ['right right'],
+                    vertical: ['bottom top', 'top bottom'],
+                    offsets: this.chromeOffsets
+                });
+
+                this.contentContainer.setStyle('visibility','');
+
+                document.addEvent('mousedown', this.hideWatcher);
+                document.addEvent('keyup', this.keypressWatcher);
+
+                e.stop();
+                this.fireEvent('show', this);
+            }).bindWithEvent(this.menu),
+            'mouseenter':(function(){
+                $(this.domObj.firstChild).addClass('jxButtonHover');
+            }).bind(this),
+            'mouseleave':(function(){
+                $(this.domObj.firstChild).removeClass('jxButtonHover');
+            }).bind(this)
+        });
+        this.menu.addEvents({
+            'show': (function() {
+                $(this.domObj.firstChild).addClass('jxButtonActive');
+            }).bind(this),
+            'hide': (function() {
+                $(this.domObj.firstChild).removeClass('jxButtonActive');
+            }).bind(this)
+        });
+        a.adopt(new Element('img', {src: Jx.aPixel.src}));
+        this.button.domObj.adopt(a);
     },
     /**
      * Method: add
@@ -6913,14 +6969,27 @@
                 return;
             }
             this.buttons.push(theButton);
-            var button = new Jx.Button($merge(
-                theButton.options, 
-                {onClick: this.setButton.bind(this, theButton)}
-            ));
+            // var opts = {};
+            // $each(theButton.options, function(opt, index, object){
+            //     if (index != 'image' || (opt && opt.indexOf('a_pixel') == -1)) {
+            //         opts[index] = opt;
+            //     }
+            // });
+            var opts = $merge(theButton.options, {
+                toggle: true, 
+                onClick: this.setButton.bind(this, theButton)
+            });
+            if (!opts.image || opts.image.indexOf('a_pixel') != -1) {
+                delete opts.image;
+            }
+            var button = new Jx.Menu.Item(opts);
+            this.buttonSet.add(button);
+            this.menu.add(button);
             theButton.multiButton = button;
-            this.tb.add(button);
+            theButton.domA.addClass('jxButtonMulti');
             if (!this.activeButton) {
-                this.domObj.grab(theButton.domObj, 'top');
+                this.button.domA.dispose();
+                this.domObj.grab(theButton.domA, 'top');
                 this.activeButton = theButton;
             }
         }, this);
@@ -6938,7 +7007,7 @@
         }
         // the toolbar will only remove the li.toolItem, which is
         // the parent node of the multiButton's domObj.
-        if (this.tb.remove(button.multiButton)) {
+        if (this.menu.remove(button.multiButton)) {
             button.multiButton = null;
             if (this.activeButton == button) {
                 // if any buttons are left that are not this button
@@ -6955,9 +7024,6 @@
                     this.setActiveButton(null);
                 };
             }
-            /* force the flyout to recalculate its size */
-            this.flyout.content.style.height = '';
-            this.flyout.content.style.width = '';
             this.buttons.erase(button);
         }
     },
@@ -6992,10 +7058,10 @@
      */
     setActiveButton: function(button) {
         if (this.activeButton) {
-            this.activeButton.domObj.dispose();
+            this.activeButton.domA.dispose();
         }
-        if (button && button.domObj) {
-            this.domObj.grab(button.domObj, 'top');            
+        if (button && button.domA) {
+            this.domObj.grab(button.domA, 'top');            
         }
         this.activeButton = button;
     },
@@ -7010,9 +7076,8 @@
     setButton: function(button) {
         this.setActiveButton(button);
         button.clicked();
-        this.flyout.hide();
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: colorpalette.js 763 2008-08-21 13:18:11Z pspencer $
 /**
  * Class: Jx.ColorPalette
  * A Jx.ColorPalette presents a user interface for selecting colors.  Currently,
@@ -7312,7 +7377,7 @@
     }
 });
 
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $ 
+// $Id: button.color.js 763 2008-08-21 13:18:11Z pspencer $ 
 /**
  * Class: Jx.Button.Color
  * A <Jx.ColorPalette> wrapped up in a Jx.Button.  The button includes a
@@ -7488,7 +7553,7 @@
         this.selectedSwatch.setStyles(styles);
     }
 });
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: $
 /**
  * Class: Jx.ButtonSet
  * A ButtonSet manages a set of <Jx.Button> instances by ensuring that only one
@@ -7617,7 +7682,7 @@
 
 
 
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: grid.js 812 2008-09-03 18:59:52Z pspencer $
 /**
  * Class: Jx.Grid
  * A tabular control that has fixed scrolling headers on the rows and columns
@@ -8545,7 +8610,7 @@
         }
         return {row:row,column:col};
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: layout.js 746 2008-08-16 00:30:25Z pspencer $
 /**
  * Class: Jx.Layout
  * Jx.Layout is used to provide more flexible layout options for applications
@@ -8945,7 +9010,7 @@
 
         this.fireEvent('sizeChange',this);
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: menu.js 876 2008-09-09 17:30:05Z pspencer $
 /**
  * Class: Jx.Menu
  * A main menu as opposed to a sub menu that lives inside the menu.
@@ -8964,7 +9029,7 @@
  * This file is licensed under an MIT style license
  */
 Jx.Menu = new Class({
-    Implements: [Jx.AutoPosition, Jx.Chrome],
+    Implements: [Options, Events, Jx.AutoPosition, Jx.Chrome],
     /**
      * Property: domObj
      * {HTMLElement} The HTML element containing the menu.
@@ -8997,6 +9062,7 @@
      * If options is not passed, then no button is created.
      */
     initialize : function(options) {
+        this.setOptions(options);
         /* */
         if (!Jx.Menu.Menus) {
             Jx.Menu.Menus = [];
@@ -9111,7 +9177,8 @@
         this.contentContainer.dispose();
         this.items.each(function(item){item.hide(e);});
         document.removeEvent('mousedown', this.hideWatcher);
-        document.removeEvent('keyup', this.keypressWatcher);    
+        document.removeEvent('keyup', this.keypressWatcher);
+        this.fireEvent('hide', this); 
     },
     /**
      * Method: show
@@ -9156,7 +9223,7 @@
         /* fix bug in IE that closes the menu as it opens because of bubbling */
         document.addEvent('mousedown', this.hideWatcher);
         document.addEvent('keyup', this.keypressWatcher);
-        
+        this.fireEvent('show', this); 
     },
     /**
      * Method: setVisibleItem
@@ -9184,7 +9251,7 @@
     }
 });
 
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: menu.item.js 822 2008-09-04 16:37:53Z pspencer $
 /**
  * Class: Jx.Menu.Item
  * A menu item is a single entry in a menu.  It is typically composed of
@@ -9311,7 +9378,7 @@
     }
 });
 
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: menu.separator.js 711 2008-08-13 20:38:33Z pspencer $
 /**
  * Class: Jx.Menu.Separator
  * A convenience class to create a visual separator in a menu.
@@ -9366,7 +9433,7 @@
      * Show the menu item
      */
     show: $empty
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: menu.submenu.js 823 2008-09-04 17:15:02Z pspencer $
 /**
  * Class: Jx.Menu.SubMenu
  * A sub menu contains menu items within a main menu or another
@@ -9627,7 +9694,7 @@
             this.visibleItem.show();
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: menu.context.js 788 2008-08-27 15:07:01Z pspencer $
 /**
  * Class: Jx.Menu.Context
  * A <Jx.Menu> that has no button but can be opened at a specific 
@@ -9700,7 +9767,7 @@
 
         e.stop();
     }    
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: panel.js 862 2008-09-08 20:18:22Z pspencer $
 /**
  * Class: Jx.Panel
  * A panel is a fundamental container object that has a content
@@ -9741,7 +9808,6 @@
     
     options: {
         label: '&nbsp;',
-        imageBaseUrl: Jx.baseURL + 'images/',
         position: 'absolute',
         height: null,
         collapse: true,
@@ -9822,7 +9888,7 @@
         
         if (this.options.menu) {
             this.menu = new Jx.Menu({
-                image: Jx.baseURL + 'images/panel_controls.png'
+                image: Jx.aPixel.src
             });
             this.menu.domObj.addClass('jx'+this.options.type+'Menu');
             this.menu.domObj.addClass('jxButtonContentLeft');
@@ -9831,7 +9897,7 @@
         
         if (this.options.collapse) {
             var b = new Jx.Button({
-                image: Jx.baseURL + 'images/panel_controls.png',
+                image: Jx.aPixel.src,
                 tooltip: 'Collapse/Expand Panel',
                 onClick: function() {
                     that.toggleCollapse();
@@ -9857,7 +9923,7 @@
         
         if (this.options.maximize) {
             var b = new Jx.Button({
-                image: Jx.baseURL + 'images/panel_controls.png',
+                image: Jx.aPixel.src,
                 tooltip: 'Maximize Panel',
                 onClick: function() {
                     that.maximize();
@@ -9876,7 +9942,7 @@
         
         if (this.options.close) {
             var b = new Jx.Button({
-                image: Jx.baseURL + 'images/panel_controls.png',
+                image: Jx.aPixel.src,
                 tooltip: 'Close Panel',
                 onClick: function() {
                     that.close();
@@ -9930,7 +9996,7 @@
             var tbc = this.toolbarContainers[position];
             if (!tbc) {
                 var tbc = new Element('div', {
-                    'class':'jxToolbarContainer '+'jxToolbar'+position.capitalize()
+                    'class':'jxBarContainer '+'jxBar'+position.capitalize()
                 });
                 new Jx.Layout(tbc);
                 var clearer = new Element('div', {'class':'jxClearer'});
@@ -10070,7 +10136,6 @@
      * html - {String} the new HTML to go in the panel
      */
     setContent : function (html) {
-        //console.log('Jx.Panel::setContent()');
         this.content.innerHTML = html;
         this.bContentReady = true;
     },
@@ -10197,7 +10262,7 @@
         this.fireEvent('close', this);
     }
     
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: dialog.js 830 2008-09-05 02:36:33Z pspencer $
 /**
  * Class: Jx.Dialog
  * A Jx.Dialog implements a floating dialog.  Dialogs represent a useful way
@@ -10328,6 +10393,9 @@
             options,
             {type:'Dialog', position: 'absolute'} // these override anything passed to the options
         ));
+        //we'll keep the content out of the DOM until we actually show it
+        //so it sizes properly the first time.
+        this.content.dispose();
         this.options.parent = $(this.options.parent);
         
         if (!window.opera && this.options.modal) {
@@ -10484,7 +10552,6 @@
      * show the dialog
      */
     show : function( ) {
-        
         /* get the z-index right */
         Jx.Dialog.Stack.push(this);
         /* do the modal thing */
@@ -10507,6 +10574,10 @@
         } else {
             this.domObj.resize(this.options);            
         }
+        if (!this.content.parentNode) {
+            this.contentContainer.adopt(this.content);
+            this.contentContainer.resize({forceResize: true});
+        }
         /* update or create the chrome */
         this.showChrome(this.domObj);
         /* put it in the right place using auto-positioning */
@@ -10571,7 +10642,7 @@
         }
     }
 });
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: panelset.js 762 2008-08-20 20:59:40Z pspencer $
 /**
  * Class: Jx.PanelSet
  *
@@ -10726,7 +10797,7 @@
         }
         panel.domObj.resize({top: t, height:b - t, bottom: null});
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: combo.js 864 2008-09-08 20:20:24Z pspencer $
 /**
  * Class: Jx.Combo
  * A drop down list of selectable items that can be any HTML.
@@ -10811,8 +10882,7 @@
         });
         
         this.domButton = new Element('img', {
-            'class':'png24',
-            src: Jx.baseURL + 'images/disclose2.png'
+            src: Jx.aPixel.src
         });
         this.domA.appendChild(this.domButton);
         this.domObj.appendChild(this.domA);
@@ -11045,7 +11115,7 @@
     getSelection: function() {
         return this.currentSelection ? this.currentSelection.name : '';
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: splitter.js 775 2008-08-22 14:27:26Z pspencer $
 /**
  * Class: Jx.Splitter
  * a Jx.Splitter creates two or more containers within a parent container
@@ -11707,7 +11777,7 @@
              }
          }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: splitter.snap.js 711 2008-08-13 20:38:33Z pspencer $
 /**
  * Class: Jx.Splitter.Snap
  * A helper class to create an element that can snap a split panel open or
@@ -11825,7 +11895,7 @@
             }
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: tabset.js 758 2008-08-19 02:35:50Z pspencer $
 /**
  * Class: Jx.TabSet
  * A TabSet manages a set of <Jx.Button.Tab> content areas by ensuring that only one
@@ -11992,174 +12062,86 @@
 
 
 
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: tabbox.js 853 2008-09-08 17:59:52Z pspencer $
 /**
- * Class: Jx.TabSet
- * A TabSet manages a set of <Jx.Button.Tab> content areas by ensuring that only one
- * of the content areas is visible (i.e. the active tab).  TabSet does not
- * manage the actual tabs.  The instances of <Jx.Button.Tab> that are to be managed
- * as a set have to be added to both a TabSet and a <Jx.Toolbar>.  The content
- * areas of the <Jx.Button.Tab>s are sized to fit the content area that the TabSet
- * is managing.
+ * Class: Jx.TabBox
+ * A convenience class to handle the common case of a single toolbar
+ * directly attached to the content area of the tabs.  It manages both a
+ * <Jx.Toolbar> and a <Jx.TabSet> so that you don't have to.  If you are using
+ * a TabBox, then tabs only have to be added to the TabBox rather than to
+ * both a <Jx.TabSet> and a <Jx.Toolbar>.
  *
  * Example:
  * (code)
- * var tabBar = new Jx.Toolbar('tabBar');
- * var tabSet = new Jx.TabSet('tabArea');
+ * var tabBox = new Jx.TabBox('subTabArea', 'top');
  * 
- * var tab1 = new Jx.Button.Tab('tab 1', {contentID: 'content1'});
- * var tab2 = new Jx.Button.Tab('tab 2', {contentID: 'content2'});
- * var tab3 = new Jx.Button.Tab('tab 3', {contentID: 'content3'});
- * var tab4 = new Jx.Button.Tab('tab 4', {contentURL: 'test_content.html'});
+ * var tab1 = new Jx.Button.Tab('Tab 1', {contentID: 'content4'});
+ * var tab2 = new Jx.Button.Tab('Tab 2', {contentID: 'content5'});
  * 
- * tabSet.add(t1, t2, t3, t4);
- * tabBar.add(t1, t2, t3, t4);
+ * tabBox.add(tab1, tab2);
  * (end)
  *
- * Events:
- * tabChange - the current tab has changed
- *
- * Implements:
- * Events - MooTools Class.Extras
- * Options - MooTools Class.Extras
- *
  * License: 
  * Copyright (c) 2008, DM Solutions Group Inc.
  * 
  * This file is licensed under an MIT style license
  */
-Jx.TabSet = new Class({
-    Implements: [Options,Events],
+Jx.TabBox = new Class({
     /**
-     * Property: tabs
-     * {Array} array of tabs that are managed by this tab set
+     * Property: tabBar
+     * {<Jx.Toolbar>} the toolbar for this tab box.
      */
-    tabs: null,
+    tabBar: null,
     /**
-     * Property: domObj
-     * {HTMLElement} The HTML element that represents this tab set in the DOM.
-     * The content areas of each tab are sized to fill the domObj.
+     * Property: tabSet
+     * {<Jx.TabSet>} the tab set for this tab box.
      */
-    domObj : null,
+    tabSet: null,
     /**
-     * Constructor: Jx.TabSet
-     * Create a new instance of <Jx.TabSet> within a specific element of
-     * the DOM.
-     *
-     * Parameters:
-     * domObj - {HTMLElement} an element or id of an element to put the
-     * content of the tabs into.
-     * options - an options object, only event handlers are supported
-     * as options at this time.
+     * Constructor: Jx.TabBox
      */
-    initialize : function(domObj, options) {
-        this.setOptions(options);
-        this.tabs = [];
-        this.domObj = $(domObj);
-        if (!this.domObj.hasClass('jxTabSetContainer')) {
-            this.domObj.addClass('jxTabSetContainer');
-        }
-        this.selectionChangedFn = this.selectionChanged.bind(this);
+    initialize : function(domObj, position) {
+        position = position || 'top';
+        this.tabBar = new Jx.Toolbar({type: 'TabBar', position: position});
+        this.panel = new Jx.Panel({
+            toolbars: [this.tabBar],
+            hideTitle: true,
+            position: 'absolute',
+            height: null
+        });
+        this.panel.domObj.addClass('jxTabBox');
+        this.panel.addTo(domObj);
+        this.tabSet = new Jx.TabSet(this.panel.content);
+        this.panel.addEvent('sizeChange', this.tabSet.resizeTabBox.bind(this.tabSet));
+        this.domObj = this.panel.domObj;
     },
     /**
-     * Method: resizeTabBox
-     * Resize the tab set content area and propogate the changes to
-     * each of the tabs managed by the tab set.
-     */
-    resizeTabBox: function() {
-    
-        var parentSize = Element.getContentBoxSize(this.domObj.parentNode);
-        Element.setBorderBoxSize(this.domObj, {width: parentSize.width, height: parentSize.height});
-        // this is a bullshit hack for IE.  We need to set the tab content height
-        // for IE when the tabs are in a snap panel, otherwise the tab content
-        // doesn't collapse with the panel and no scrollbars appear.  This only
-        // affects the height.  In fact, setting the width breaks tab placement
-        
-        for (var i=0; i<this.domObj.childNodes.length; i++) {
-            // don't try to set the height on a text node 
-            if (this.domObj.childNodes[i].nodeType == 3) {
-                 continue;
-             }
-            Element.setBorderBoxSize(this.domObj.childNodes[i], {height: parentSize.height});
-            if (this.domObj.childNodes[i].resize) {
-                this.domObj.childNodes[i].resize();
-            }
-        }
-    },
-    
-    /**
      * Method: add
-     * Add one or more <Jx.Button.Tab>s to the TabSet.
+     * Add one or more <Jx.Tab>s to the TabBox.
      *
      * Parameters:
-     * tab - {<Jx.Tab>} an instance of <Jx.Tab> to add to the tab set.  More
+     * tab - {<Jx.Tab>} an instance of <Jx.Tab> to add to the tab box.  More
      * than one tab can be added by passing extra parameters to this method.
+     * Unlike <Jx.TabSet>, tabs do not have to be added to a separate 
+     * <Jx.Toolbar>.
      */
-    add : function() {
-        $A(arguments).each(function(tab) {
-            if (tab instanceof Jx.Button.Tab) {
-                tab.addEvent('down',this.selectionChangedFn);
-                this.domObj.appendChild(tab.content);
-                if (!this.activeTab) {
-                    tab.setActive(true);
-                }
-                this.tabs.push(tab);
-            }
-        }, this);
+    add : function() { 
+        this.tabBar.add.apply(this.tabBar, arguments); 
+        this.tabSet.add.apply(this.tabSet, arguments); 
     },
     /**
      * Method: remove
-     * Remove a tab from this TabSet.  Note that it is the caller's responsibility
-     * to remove the tab from the <Jx.Toolbar>.
+     * Remove a tab from the TabSet.
      *
      * Parameters:
      * tab - {<Jx.Tab>} the tab to remove.
      */
     remove : function(tab) {
-        if (tab instanceof Jx.Button.Tab && this.tabs.indexOf(tab) != -1) {
-            this.tabs.erase(tab);
-            if (this.activeTab == tab) {
-                if (this.tabs.length) {
-                    this.tabs[0].setActive(true);
-                }
-            }
-            tab.removeEvent('down',this.selectionChangedFn);
-            tab.content.dispose();
-        }
-    },
-    /**
-     * Method: setActiveTab
-     * Set the active tab to the one passed to this method
-     *
-     * Parameters:
-     * tab - {<Jx.Button.Tab>} the tab to make active.
-     */
-    setActiveTab: function(tab) {
-        if (this.activeTab && this.activeTab != tab) {
-            this.activeTab.setActive(false);
-        }
-        this.activeTab = tab;
-        if (this.activeTab.content.resize) {
-          this.activeTab.content.resize();
-        }
-    },
-    /**
-     * Method: selectionChanged
-     * Handle selection changing on the tabs themselves and activate the
-     * appropriate tab in response.
-     *
-     * Parameters:
-     * tab - {<Jx.Button.Tab>} the tab to make active.
-     */
-    selectionChanged: function(tab) {
-        this.setActiveTab(tab);
-        this.fireEvent('tabChange', this, tab);
+        this.tabBar.remove(tab);
+        this.tabSet.remove(tab);
     }
 });
-
-
-
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: button.tab.js 758 2008-08-19 02:35:50Z pspencer $
 /**
  * Class: Jx.Button.Tab
  * A single tab in a tab set.  A tab has a label (displayed in the tab) and a
@@ -12241,7 +12223,7 @@
     clicked : function(evt) {
         this.setActive(true);
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: toolbar.js 853 2008-09-08 17:59:52Z pspencer $
 /**
  * Class: Jx.Toolbar
  * A toolbar is a container object that contains other objects such as
@@ -12308,6 +12290,7 @@
      */
     isActive : false,
     options: {
+        type: 'Toolbar',
         position: 'top',
         parent: null
     },
@@ -12330,23 +12313,26 @@
         
         this.domObj = new Element('ul', {
             id: this.options.id,
-            'class':'jxToolbar'
+            'class':'jx'+this.options.type
         });
         
         if (this.options.parent) {
             var owner = $(this.options.parent);
-            if (!owner.hasClass('jxToolbarContainer')) {
-                owner.addClass('jxToolbarContainer');
+            if (!owner.hasClass('jxBarContainer')) {
+                owner.addClass('jxBarContainer');
+            }
+            if (owner.lastChild && owner.lastChild.hasClass('jxClearer')) {
+                owner.insertBefore(this.domObj, owner.lastChild);                    
+            } else {
                 owner.appendChild(this.domObj);
                 var clearer = new Element('div', {'class':'jxClearer'});
-                owner.appendChild(clearer);                    
-            } else {
-                owner.insertBefore(this.domObj, owner.lastChild);
+                owner.appendChild(clearer);                                        
             }
             if (['top','right','bottom','left'].contains(this.options.position)) {
-                owner.addClass('jxToolbar'+this.options.position.capitalize());            
+                owner.addClass('jxBar' +
+                               this.options.position.capitalize());            
             } else {
-                owner.addClass('jxToolbarTop');
+                owner.addClass('jxBarTop');
             }            
         }
         this.deactivateWatcher = this.deactivate.bindWithEvent(this);
@@ -12457,7 +12443,7 @@
         }
     }
 });
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: toolbar.item.js 711 2008-08-13 20:38:33Z pspencer $
 /**
  * Class: Jx.Toolbar.Item
  * A helper class to provide a container for something to go into 
@@ -12499,7 +12485,7 @@
             }
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: toolbar.separator.js 711 2008-08-13 20:38:33Z pspencer $
 /**
  * Class: Jx.Toolbar.Separator
  * A helper class that represents a visual separator in a <Jx.Toolbar>
@@ -12529,7 +12515,7 @@
         this.domObj.appendChild(this.domSpan);
     }
 });
-// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+// $Id: treeitem.js 803 2008-09-02 18:02:13Z pspencer $
 /**
  * Class: Jx.TreeItem 
  * An item in a tree.  An item is a leaf node that has no children.
@@ -12735,7 +12721,7 @@
             this.domObj.addClass('jxDisabled');
         }
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: treefolder.js 803 2008-09-02 18:02:13Z pspencer $
 /**
  * Class: Jx.TreeFolder
  * A Jx.TreeFolder is an item in a tree that can contain other items.  It is
@@ -13068,7 +13054,7 @@
         }
         return null;
     }
-});// $Id: jxlib.uncompressed.js 823 2008-09-04 17:15:02Z pspencer $
+});// $Id: tree.js 797 2008-08-29 19:44:34Z pspencer $
 /**
  * Class: Jx.Tree
  * Jx.Tree displays hierarchical data in a tree structure of folders and nodes.

Added: sandbox/jx2/jx/lib/jxskin_crispin.css
===================================================================
--- sandbox/jx2/jx/lib/jxskin_crispin.css	                        (rev 0)
+++ sandbox/jx2/jx/lib/jxskin_crispin.css	2008-09-09 21:17:25 UTC (rev 1509)
@@ -0,0 +1,24 @@
+/*
+ * reset.css - Copyright (c) 2006, Yahoo! Inc. All rights reserved.
+ * Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt
+ *
+ * Copyright (c) 2006-2008, DM Solutions Group Inc.  All rights reserved
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}a{outline:none;}.png24{filter:expression(Jx.applyPNGFilter(this));}.jxClearer{display:block;position:relative;float:none;clear:both;font-size:0;line-height:0;width:0;height:0;margin:0;padding:0;}.jxDisabled{opacity:.4;filter:Alpha(opacity=40);}iframe.jxIframeShim{position:absolute;top:0;left:0;width:100%;height:100%;filter:Alpha(opacity:0);opacity:0;z-index:-1;}div.jxButtonContainer{display:block;position:relative;float:left;margin:2px;padding:0;border:none;}a.jxButton{display:block;position:relative;float:left;margin:0;padding:0 0 0 4px;border:none;background-image:url(../images/crispin/button_bg.png);background-position:left -56px;background-repeat:no-repeat;text-decoration:none;}ul.jxToolbar a.jxButton{background-position:left top;}span.jxButtonContent{display:block;position:relative;float:left;font-size:0;line-height:0;margin:0;padding:4px 4px 4px 0;border:none;background-image:url(../images/crispin/button_bg.png);background-position:right -56px;background-repeat:no-repeat;}ul.jxToolbar span.jxButtonContent{background-position:right top;}ul.jxToolbar a.jxButton:hover,a.jxButton:hover{background-position:left -224px;}a.jxButton:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButtonActive,a.jxButtonActive{background-position:left -168px;}a.jxButtonActive span.jxButtonContent{background-position:right -168px;}ul.jxToolbar a.jxButton:hover,a.jxButtonActive:hover{background-position:left -224px;}a.jxButtonActive:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButton:active,ul.jxToolbar a.jxButtonActive:active,a.jxButton:active,a.jxButtonActive:active{background-position:left -112px;}a.jxButton:active span.jxButtonContent,a.jxButtonActive:active span.jxButtonContent{background-position:right -112px;}ul.jxToolbar .jxDisabled a.jxButton:hover,ul.jxToolbar .jxDisabled a.jxButton:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{background-position:left top;}.jxDisabled a.jxButton:hover span.jxButtonContent,.jxDisabled a.jxButton:active span.jxButtonContent{background-position:right top;}img.jxButtonIcon{position:relative;float:left;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxButtonContent span{font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:16px;}span.jxButtonContent span.jxButtonLabel{display:block;position:relative;float:left;cursor:pointer;margin:0;padding:0 4px 0 4px;color:#000;font-size:11px;}a.jxButtonMenu span.jxButtonContent span,a.jxButtonFlyout span.jxButtonContent span,a.jxButtonMulti span.jxButtonContent span{padding-right:16px;background-image:url(../images/crispin/emblems.png);background-position:right -16px;background-repeat:no-repeat;}a.jxButtonMulti{background-image:url(../images/crispin/button_multi_bg.png);}a.jxButtonMulti span.jxButtonContent{background-image:url(../images/crispin/button_multi_bg.png);}a.jxButtonMulti span.jxButtonContent span{padding-right:21px;}a.jxButtonMulti span.jxButtonContent,a.jxButtonFlyout span.jxButtonContent{padding-left:0;padding-right:0;}a.jxButtonMultiDisclose{position:absolute;display:block;padding:4px 0;font-size:0;line-height:0;right:0;background-image:url(../images/crispin/button_multi_disclose_bg.png);background-position:right 0;background-repeat:no-repeat;}a.jxButtonMultiDisclose img{width:16px;height:16px;margin:0;padding:0;border:0;background-image:url(../images/crispin/emblems.png);background-position:right -16px;background-repeat:no-repeat;}a.jxButtonMultiDisclose:hover{background-position:right -224px;}a.jxButtonMultiDisclose:active{background-position:right -112px;}ul.jxToolbar a.jxButtonHover{background-position:left -56px;}ul.jxToolbar a.jxButtonHover span.jxButtonContent{background-position:right -56px;}.jxFlyout .jxChrome{background-image:url(../images/crispin/flyout_chrome.png);padding:5px 5px 7px 6px;}.jxFlyout{position:absolute;display:block;clear:both;float:none;z-index:100;margin:0;padding:0;font-size:12px;line-height:14px;}.jxFlyoutContent{position:relative;display:block;overflow:auto;margin:6px 6px 8px 7px;}.jxFlyout .jxBarRight,.jxFlyout .jxBarLeft{float:left;height:auto;width:auto;}.jxChrome{position:absolute;display:block;font-size:0;line-height:0;z-index:-1;width:100%;height:100%;top:0;left:0;}.jxChromeDrag{opacity:.5;filter:Alpha(opacity=50);}.jxChromeTL{position:absolute;overflow:hidden;left:0;top:0;width:50%;height:50%;}.jxChromeTR{position:absolute;overflow:hidden;left:50%;top:0;width:50%;height:50%;}.jxChromeBL{position:absolute;overflow:hidden;left:0;top:50%;width:50%;height:50%;}.jxChromeBR{position:absolute;overflow:hidden;left:50%;top:50%;width:50%;height:50%;}.jxChromeTL img{position:absolute;top:0;left:0;}.jxChromeTR img{position:absolute;top:0;right:0;}.jxChromeBL img{position:absolute;bottom:0;left:0;}.jxChromeBR img{position:absolute;bottom:0;right:0;}.jxColorBar{position:relative;}table.jxColorGrid{position:relative;border-collapse:collapse;empty-cells:show;clear:both;}.jxColorGrid td{border:1px solid #000;}.jxColorGrid td.emptyCell{border:0 solid #000;}.jxColorGrid td.emptyCell span{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;padding:1px;margin:0;}.jxColorGrid a.colorSwatch{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;margin:0;padding:1px;}.jxColorGrid a.borderWhite:hover{border:1px solid #fff;padding:0;}.jxColorGrid a.borderBlack:hover{border:1px solid #000;padding:0;}input.jxHexInput{width:55px;vertical-align:middle;}input.jxAlphaInput{width:30px;vertical-align:middle;}div.jxColorPreview{float:left;position:relative;width:20px;height:20px;border:1px solid #000;margin:2px;vertical-align:middle;background-image:url('../images/crispin/grid.png');}a.jxButtonFlyout span.jxButtonContent span.jxButtonSwatch{display:block;float:left;width:14px;height:14px;border:1px solid #000;background-image:url('../images/crispin/grid.png');background-position:0 0;background-repeat:repeat;padding-right:0!important;}a.jxButtonFlyout span.jxButtonContent span.jxButtonSwatch span{display:block;width:14px;height:14px;position:absolute;padding-right:0;background:none;}div.jxColorPreview img{position:absolute;z-index:0;}div.jxColorPreview div.jxColorSelected{width:20px;height:10px;position:absolute;z-index:1;}div.jxColorPreview div.jxColorHover{width:20px;height:10px;position:absolute;bottom:0;z-index:1;}label.jxColorLabel,label.jxAlphaLabel{width:auto;font-family:Arial,sans-serif;font-size:12px;line-height:24px;padding:2px;vertical-align:middle;}a.jxColorClose{position:absolute;top:0;right:0;width:16px;height:16px;}a.jxColorClose img{width:16px;height:16px;}.jxComboOptions .jxChrome{background-image:url(../images/crispin/flyout_chrome.png);padding:5px 5px 7px 6px;}div.jxCombo{position:relative;display:block;padding:0;padding-right:22px;margin:0;border:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;z-index:1;line-height:24px;float:left;}.jxComboDiscloser{position:absolute;right:3px;top:3px;}.jxComboDiscloser img{width:16px;height:16px;border:0;background-image:url(../images/crispin/emblems.png);background-position:right -16px;background-repeat:no-repeat;}.jxComboInput{position:relative;display:block;float:left;line-height:14px;height:14px;padding:5px 10px;border:1px solid #f0f0f0;}div.jxComboOptions{position:absolute;height:auto;color:#000;z-index:1;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:24px;padding:6px 6px 8px 7px;}div.jxComboOptions ul{position:relative;display:block;margin:0;padding:0;border:none;list-style-type:none;}div.jxComboOptions li{position:relative;display:block;margin:0;padding:0;border:none;height:20px;}div.jxComboOptions a{position:relative;display:block;text-decoration:none;white-space:nowrap;line-height:20px;height:20px;color:#000;background-image:none;padding:0 4px;}div.jxComboOptions a:hover{background-image:url(../images/crispin/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}div.jxComboOptions a.selected{font-weight:bold;background-color:#ffffb3;}.jxDialog .jxChrome{background-image:url(../images/crispin/dialog_chrome.png);}.jxDialog{display:block;z-index:1;}.jxDialogContentContainer{z-index:1;margin:0 11px 13px 12px;border:1px solid #b7b7b7;background-color:#f0f0f0;}.jxDialogModal{position:absolute;display:block;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.2;filter:Alpha(opacity=20);}.jxDialogContent{display:block;position:relative;overflow:auto;padding:0;z-index:1;}.jxDialogTitle{display:block;position:relative;background-image:url(../images/a_pixel.png);text-align:center;height:24px;line-height:24px;z-index:1;margin:6px 6px 0 7px;}.jxDialogMin .jxDialogTitle{margin-bottom:8px;}.jxDialogMoveable{cursor:move;}.jxDialogLabel{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxDialogResize{position:absolute;bottom:7px;right:6px;width:16px;height:16px;z-index:2;border:0;cursor:se-resize;background-image:url(../images/crispin/dialog_resize.png);}.jxDialogControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxDialogControls img{background-image:url('../images/crispin/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxDialogClose img{background-position:0 -32px;}.jxDialogMenu img{background-position:0 -48px;}.jxDialogHelp img{background-position:0 -64px;}.jxDialogCollapse img{background-position:0 -16px;}.jxDialogMin .jxDialogCollapse img{background-position:0 0;}.jxDialogMax .jxDialogCollapse img{background-position:0 -16px;}.jxDialogLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxDialogControls .jxButtonContainer,.jxDialogControls span.jxButtonContent,.jxDialogControls a.jxButton:hover span.jxButtonContent,.jxDialogControls a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButtonActive span.jxButtonContent,.jxDialogControls a.jxButtonActive:hover span.jxButtonContent,.jxDialogControls a.jxButtonActive:active span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButton,.jxDialogControls a.jxButton:hover,.jxDialogControls a.jxButton:active,.jxDialogControls a.jxButtonActive,.jxDialogControls a.jxButtonActive:hover,.jxDialogControls a.jxButtonActive:active,.jxDialogControls .jxButtonDisabled a.jxButton,.jxDialogControls .jxButtonDisabled a.jxButton:hover,.jxDialogControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent,.jxDialogControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent span,.jxDialogControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxDialogControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls .jxBarTop,.jxDialogControls .jxBarBottom,.jxDialogControls .jxBarLeft,.jxDialogControls .jxBarRight{width:auto;height:auto;}.jxDialogControls .jxBarTop ul.jxToolbar,.jxDialogControls .jxBarBottom ul.jxToolbar,.jxDialogControls .jxBarLeft ul.jxToolbar,.jxDialogControls .jxBarRight ul.jxToolbar,.jxDialogControls .jxBarTop li.jxToolItem,.jxDialogControls .jxBarBottom li.jxToolItem,.jxDialogControls .jxBarLeft li.jxToolItem,.jxDialogControls .jxBarRight li.jxToolItem{background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxGridContainer{position:absolute;top:0;left:0;border-left:0 solid #d8d8d8;border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow:hidden;font-family:Arial,Verdana,sans-serif;font-size:12px;font-weight:normal;}.jxGridTable{position:relative;table-layout:fixed;border-collapse:collapse;border-style:none;width:0;}.jxGridColHeadHide{height:0;line-height:0;font-size:0;background-color:#fff;white-space:normal;}.jxGridColHeadHide p,.jxGridRowHeadHide p{font-size:0;line-height:0;height:0;margin:0;padding:0;}.jxGridRowHeadHide{width:0;white-space:normal;}.jxGridCell{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;overflow:hidden;padding-left:3px;padding-right:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.jxGridColHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/crispin/table_col_bg.png');background-position:0 0;background-repeat:repeat-x;text-align:center;font-weight:bold;color:#333;}.jxGridRowHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/crispin/table_row_bg.png');background-position:0 0;background-repeat:repeat-y;text-align:center;font-weight:bold;color:#333;}.jxGridRowAll{background-color:#fff;}.jxGridColumnHeaderSelected{background-color:#e1e1e1;background-position:0 -200px;}.jxGridRowHeaderSelected{background-color:#e1e1e1;background-position:-400px 0;}.jxGridColumnSelected{background-color:#f7f7f7;}.jxGridRowSelected td{background-color:#f7f7f7;}td.jxGridCellSelected{background-color:#ebebeb;}.jxGridColumnHeaderPrelight{background-color:#cee5ff;background-position:0 -300px;}.jxGridRowHeaderPrelight{background-color:#cee5ff;background-position:-600px 0;}.jxGridColumnPrelight{background-color:#e5f1ff;}.jxGridRowPrelight td{background-color:#e5f1ff;}td.jxGridCellPrelight{background-color:#cce3ff;}.jxMenuContainer .jxChrome{background-image:url(../images/crispin/flyout_chrome.png);padding:5px 5px 7px 6px;}a.jxButtonMenu span.jxMenuItemSpan{padding-right:16px;}.jxMenuContainer{position:absolute;display:block;z-index:200;padding:0;}ul.jxMenu,ul.jxSubMenu{display:block;position:relative;list-style-type:none;margin:0;padding:6px 6px 8px 7px;}li.jxMenuItemContainer{display:block;position:relative;margin:0;padding:0;}a.jxMenuItem{display:block;position:relative;text-decoration:none;border:1px solid #fff;font-family:Arial,Helvetica,sans-serif;font-size:11px;text-decoration:none;margin:2px 2px;padding:0;color:#000;}a.jxMenuItem:hover{border:1px solid #C5E0FF;background-image:url(../images/crispin/menu_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}a.jxMenuItem:hover span.jxMenuItemContent{border:1px solid #F4F9FF;border-bottom:1px solid #E4F0FF;}span.jxMenuItemContent{display:block;position:relative;font-family:Arial,Helvetica,sans-serif;font-size:0;line-height:0;white-space:nowrap;padding:0;margin:0;border:1px solid #fff;}a.jxButtonSubMenu span.jxMenuItemContent,a.jxButtonSubMenu:hover span.jxMenuItemContent{background-image:url(../images/crispin/emblems.png);background-position:right -32px;background-repeat:no-repeat;padding-right:20px;}img.jxMenuItemIcon{position:absolute;top:0;left:0;display:inline;width:16px;height:16px;background-position:left center;background-repeat:no-repeat;}span.jxMenuItemContent span{display:block;position:relative;cursor:pointer;margin:0;padding:0 0 0 20px;font-size:16px;line-height:16px;}span.jxMenuItemContent span.jxMenuItemLabel{color:#000;font-size:12px;}.jxMenuItemToggle img.jxMenuItemIcon,.jxMenuItemSet img.jxMenuItemIcon{background-image:url(../images/crispin/emblems.png);background-position:2px 0;background-repeat:no-repeat;}.jxMenuItemToggle a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -48px;}.jxMenuItemSet a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -64px;}a.jxMenuItemActive img.jxMenuItemIcon{top:-2px;left:-2px;padding:1px;border:1px solid #C5E0FF;}a.jxMenuItemActive span.jxMenuItemContent{background-image:url(../images/crispin/menu_icon_bg.png);background-position:0 0;background-repeat:no-repeat;}li.jxMenuItemDisabled span.jxMenuItemLabel{color:#ccc;}li.jxMenuItemDisabled a.jxMenuItem:hover{background-color:#fff;border:1px solid #fff;}ul.jxMenu span.jxMenuSeparator{display:block;font-size:10px;line-height:10px;background-image:url(../images/crispin/toolbar_separator_v.png);background-repeat:repeat-x;background-position:left center;}.jxPanel{display:block;position:relative;}.jxPanelContentContainer{overflow:hidden;background-color:#f0f0f0;}.jxPanelContent{position:relative;display:block;overflow:auto;background-color:#fff;margin:0;padding:0;}.jxPanelTitle{display:block;position:relative;background-image:url(../images/crispin/snap_bg.png);background-repeat:repeat-x;background-position:left top;height:22px;margin:0;padding:0;}.jxPanelLabel{padding-left:25px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxPanelControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxPanelControls img{background-image:url('../images/crispin/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxPanelClose img{background-position:0 -32px;}.jxPanelMenu img{background-position:0 -48px;}.jxPanelHelp img{background-position:0 -64px;}.jxPanelCollapse img{background-position:0 -16px;}.jxPanelMin .jxPanelCollapse img{background-position:0 0;}.jxPanelMax .jxPanelCollapse img{background-position:0 -16px;}.jxPanelMaximize img{background-position:0 0;}.jxPanelLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxPanelControls .jxButtonContainer,.jxPanelControls span.jxButtonContent,.jxPanelControls a.jxButton:hover span.jxButtonContent,.jxPanelControls a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButtonActive span.jxButtonContent,.jxPanelControls a.jxButtonActive:hover span.jxButtonContent,.jxPanelControls a.jxButtonActive:active span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButton,.jxPanelControls a.jxButton:hover,.jxPanelControls a.jxButton:active,.jxPanelControls a.jxButtonActive,.jxPanelControls a.jxButtonActive:hover,.jxPanelControls a.jxButtonActive:active,.jxPanelControls .jxButtonDisabled a.jxButton,.jxPanelControls .jxButtonDisabled a.jxButton:hover,.jxPanelControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent,.jxPanelControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent span,.jxPanelControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxPanelControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls .jxBarTop,.jxPanelControls .jxBarBottom,.jxPanelControls .jxBarLeft,.jxPanelControls .jxBarRight{width:auto;height:auto;}.jxPanelControls .jxBarTop ul.jxToolbar,.jxPanelControls .jxBarBottom ul.jxToolbar,.jxPanelControls .jxBarLeft ul.jxToolbar,.jxPanelControls .jxBarRight ul.jxToolbar,.jxPanelControls .jxBarTop li.jxToolItem,.jxPanelControls .jxBarBottom li.jxToolItem,.jxPanelControls .jxBarLeft li.jxToolItem,.jxPanelControls .jxBarRight li.jxToolItem{border:none;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxSplitBarHorizontal{position:absolute;line-height:1px;width:5px;height:100%;cursor:col-resize;background-color:#f0f0f0;z-index:1;}.jxSplitBarVertical{position:absolute;line-height:1px;width:100%;height:5px;cursor:row-resize;background-color:#f0f0f0;z-index:1;}.jxSplitContainer{margin:0;}.jxSplitArea{overflow:hidden;z-index:0;}.jxSplitBarDrag{background-color:#eee;}.jxTabSetContainer{position:relative;display:block;width:200px;height:200px;margin:0;padding:0;border:1px solid #d8d8d8;background-color:#fff;}.jxTabSetContainer .jxToolbarContainer{z-index:auto;}.tabContent{display:none;position:relative;width:100%;height:100%;overflow:auto;}.tabContentActive{display:block;}div.jxTabContainer{display:block;position:relative;margin:0;padding:0;border:none;}a.jxTab{display:block;position:relative;margin:0;padding:0;border:none;background-repeat:no-repeat;text-decoration:none;color:#000;}a.jxTab:hover,a.jxTab:active,a.jxTabActive,a.jxTabActive:hover,a.jxTabActive:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{border:none;}span.jxTabContent{display:block;font-size:0;line-height:0;margin:0;padding:0;background-repeat:no-repeat;}img.jxTabIcon{position:relative;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxTabLabel{display:block;position:relative;cursor:pointer;margin:0;padding:0;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:16px;}.jxBarTop div.jxTabContainer,.jxBarBottom div.jxTabContainer{float:left;margin:2px;}.jxBarTop a.jxTab,.jxBarBottom a.jxTab{float:left;padding-left:4px;background-position:left -56px;}.jxBarTop a.jxTab{background-image:url(../images/crispin/tab_top_bg.png);}.jxBarBottom a.jxTab{background-image:url(../images/crispin/tab_bottom_bg.png);}.jxBarTop span.jxTabContent,.jxBarBottom span.jxTabContent{float:left;padding:4px 4px 4px 0;background-position:right -56px;}.jxBarTop span.jxTabContent{background-image:url(../images/crispin/tab_top_bg.png);}.jxBarBottom span.jxTabContent{background-image:url(../images/crispin/tab_bottom_bg.png);}.jxBarTop img.jxTabIcon,.jxBarBottom img.jxTabIcon{float:left;}.jxBarTop span.jxTabLabel,.jxBarBottom span.jxTabLabel{float:left;padding:0 4px 0 4px;}.jxBarTop a.jxTab:hover,.jxBarBottom a.jxTab:hover{background-position:left -224px;}.jxBarTop a.jxTab:hover span.jxTabContent,.jxBarBottom a.jxTab:hover span.jxTabContent{background-position:right -224px;}.jxBarTop a.jxTab:active,.jxBarBottom a.jxTab:active{background-position:left -112px;}.jxBarTop a.jxTab:active span.jxTabContent,.jxBarBottom a.jxTab:active span.jxTabContent{background-position:right -112px;}.jxBarTop a.jxTabActive,.jxBarBottom a.jxTabActive{background-position:left -168px;}.jxBarTop a.jxTabActive span.jxTabContent,.jxBarBottom a.jxTabActive span.jxTabContent{background-position:right -168px;}.jxBarLeft div.jxTabContainer,.jxBarRight div.jxTabContainer{margin:2px;}.jxBarLeft a.jxTab,.jxBarRight a.jxTab{padding-top:4px;background-position:-56px top;}.jxBarLeft a.jxTab{background-image:url(../images/crispin/tab_left_bg.png);}.jxBarRight a.jxTab{background-image:url(../images/crispin/tab_right_bg.png);}.jxBarLeft span.jxTabContent,.jxBarRight span.jxTabContent{padding:0 4px 4px 4px;background-position:-56px bottom;}.jxBarLeft span.jxTabContent{background-image:url(../images/crispin/tab_left_bg.png);}.jxBarRight span.jxTabContent{background-image:url(../images/crispin/tab_right_bg.png);}.jxBarLeft span.jxTabLabel,.jxBarRight span.jxTabLabel{padding:4px 0 4px 0;}.jxBarLeft a.jxTab:hover,.jxBarRight a.jxTab:hover{background-position:-224px top;}.jxBarLeft a.jxTab:hover span.jxTabContent,.jxBarRight a.jxTab:hover span.jxTabContent{background-position:-224px bottom;}.jxBarLeft a.jxTab:active,.jxBarRight a.jxTab:active{background-position:-112px top;}.jxBarLeft a.jxTab:active span.jxTabContent,.jxBarRight a.jxTab:active span.jxTabContent{background-position:-112px bottom;}.jxBarLeft a.jxTabActive,.jxBarRight a.jxTabActive{background-position:-168px top;}.jxBarLeft a.jxTabActive span.jxTabContent,.jxBarRight a.jxTabActive span.jxTabContent{background-position:-168px bottom;}.jxBarContainer{display:block;position:relative;z-index:1;margin:0;padding:0;border:0;background-color:#f0f0f0;}.jxBarTop,.jxBarBottom{width:100%;height:auto;background-image:url(../images/crispin/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxTabBox .jxBarTop{background-image:url(../images/crispin/tabbar_bg.png);background-position:0 bottom;}.jxTabBox .jxBarBottom ul.jxTabBar{background-image:url(../images/crispin/tabbar_bottom_bg.png);background-position:0 top;}.jxBarLeft,.jxBarRight{width:auto;height:100%;background-image:url(../images/crispin/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxTabBox .jxBarLeft{background-image:url(../images/crispin/tabbar_left_bg.png);background-repeat:repeat-y;background-position:right 0;}.jxTabBox .jxBarRight{background-image:url(../images/crispin/tabbar_right_bg.png);background-repeat:repeat-y;background-position:left 0;}ul.jxToolbar,ul.jxTabBar{display:block;position:relative;float:left;list-style-type:none;margin:0;padding:0;border:none;}li.jxToolItem{display:block;position:relative;float:left;font-size:0;line-height:0;padding:0;margin:0;border:none;}li.jxToolItem .separator{display:block;position:relative;float:left;font-size:0;line-height:0;border:0;margin:0;padding:4px;background-repeat:no-repeat;background-position:center center;}.jxBarTop li.jxToolItem span.separator,.jxBarBottom li.jxToolItem span.separator{width:8px;height:20px;background-image:url(../images/crispin/toolbar_separator_h.png);}.jxBarLeft li.jxToolItem span.separator,.jxBarRight li.jxToolItem span.separator{width:20px;height:8px;background-image:url(../images/crispin/toolbar_separator_v.png);}.jxBarLeft ul.jxToolbar,.jxBarLeft ul.jxTabBar,.jxBarLeft li.jxToolItem,.jxBarRight ul.jxToolbar,.jxBarRight ul.jxTabBar,.jxBarRight li.jxToolItem{clear:both;}.jxTree,.jxTreeRoot{position:relative;display:block;list-style:none;margin:0;padding:0;}.jxTreeNest{list-style:none;margin:0;padding:0;background-repeat:repeat-y;background-position:left top;}.jxTree li,.jxTreeRoot li{position:relative;display:block;margin:0;padding:0;background-repeat:no-repeat;background-position:left top;white-space:nowrap;width:100%;font-size:0;line-height:0;}.jxTree li{margin-left:16px;}.jxTree li.jxDisabled,.jxTreeRoot li.jxDisabled{opacity:.4;-moz-opacity:.4;filter:Alpha(opacity=40);}.jxTree a,.jxTreeRoot a{position:relative;display:block;margin:0 0 0 14px;padding:0 0 0 20px;z-index:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;color:#000;text-decoration:none;line-height:20px;height:20px;}.jxTree a:hover,.jxTreeRoot a:hover{background-image:url(../images/crispin/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}.jxTreeNest{background-image:url(../images/crispin/tree_vert_line.png);}.jxTreeImage,.jxTreeIcon{position:absolute;display:inline;left:0;top:0;width:16px;height:20px;z-index:1;background-image:url(../images/crispin/tree.png);background-repeat:no-repeat;border:0;margin:0;}.jxTreeIcon{left:2px;}.jxTreeBranchOpen .jxTreeIcon,.jxTreeBranchLastOpen .jxTreeIcon{background-position:left -40px;}.jxTreeBranchOpen .jxTreeImage{background-position:left -100px;}.jxTreeBranchLastOpen .jxTreeImage{background-position:left -160px;}.jxTreeBranchClosed .jxTreeIcon,.jxTreeBranchLastClosed .jxTreeIcon{background-position:left -20px;}.jxTreeBranchClosed .jxTreeImage{background-position:left -80px;}.jxTreeBranchLastClosed .jxTreeImage{background-position:left -140px;}.jxTreeItem .jxTreeIcon,.jxTreeItemLast .jxTreeIcon{background-position:left 0;}.jxTreeItem .jxTreeImage{background-position:left -60px;}.jxTreeItemLast .jxTreeImage{background-position:left -120px;}.jxTreeItemSelected{background-color:#AFD4FA;font-weight:bold;}.jxTreeItem a,.jxTreeItem img,.jxTreeItem input,.jxTreeItemLast a,.jxTreeItemLast img,.jxTreeItemLast input,.jxTreeBranch a,.jxTreeBranch img,.jxTreeBranch input,.jxTreeBranchLast a,.jxTreeBranchLast img,.jxTreeBranchLast input{vertical-align:middle;}
\ No newline at end of file

Modified: sandbox/jx2/jx/lib/jxskin_delicious.css
===================================================================
--- sandbox/jx2/jx/lib/jxskin_delicious.css	2008-09-09 20:52:42 UTC (rev 1508)
+++ sandbox/jx2/jx/lib/jxskin_delicious.css	2008-09-09 21:17:25 UTC (rev 1509)
@@ -21,4 +21,4 @@
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
- */body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}a{outline:none;}.png24{filter:expression(Jx.applyPNGFilter(this));}.jxClearer{display:block;position:relative;float:none;clear:both;font-size:0;line-height:0;width:0;height:0;margin:0;padding:0;}.jxDisabled{opacity:.4;filter:Alpha(opacity=40);}iframe.jxIframeShim{position:absolute;top:0;left:0;width:100%;height:100%;filter:Alpha(opacity:0);opacity:0;z-index:-1;}div.jxButtonContainer{display:block;position:relative;float:left;margin:2px;padding:0;border:none;}a.jxButton{display:block;position:relative;float:left;margin:0;padding:0 0 0 4px;border:none;background-image:url(../images/delicious/button_bg.png);background-position:left -56px;background-repeat:no-repeat;text-decoration:none;}ul.jxToolbar a.jxButton{background-position:left top;}span.jxButtonContent{display:block;position:relative;float:left;font-size:0;line-height:0;margin:0;padding:4px 4px 4px 0;border:none;background-image:url(../images/delicious/button_bg.png);background-position:right -56px;background-repeat:no-repeat;}ul.jxToolbar span.jxButtonContent{background-position:right top;}a.jxButton:hover{background-position:left -224px;}ul.jxToolbar a.jxButton:hover{background-position:left -56px;}a.jxButton:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButton:hover span.jxButtonContent{background-position:right -56px;}ul.jxToolbar a.jxButtonActive,a.jxButtonActive{background-position:left -168px;}ul.jxToolbar a.jxButtonActive span.jxButtonContent,a.jxButtonActive span.jxButtonContent{background-position:right -168px;}ul.jxToolbar a.jxButtonActive:hover,a.jxButtonActive:hover{background-position:left -224px;}ul.jxToolbar a.jxButtonActive:hover span.jxButtonContent,a.jxButtonActive:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButton:active,a.jxButton:active,ul.jxToolbar a.jxButtonActive:active,a.jxButtonActive:active{background-position:left -112px;}ul.jxToolbar a.jxButton:active span.jxButtonContent,a.jxButton:active span.jxButtonContent,ul.jxToolbar a.jxButtonActive:active span.jxButtonContent,a.jxButtonActive:active span.jxButtonContent{background-position:right -112px;}ul.jxToolbar .jxDisabled a.jxButton:hover,ul.jxToolbar .jxDisabled a.jxButton:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{background-position:left top;}ul.jxToolbar .jxDisabled a.jxButton:hover span.jxButtonContent,ul.jxToolbar .jxDisabled a.jxButton:active span.jxButtonContent,.jxDisabled a.jxButton:hover span.jxButtonContent,.jxDisabled a.jxButton:active span.jxButtonContent{background-position:right top;}img.jxButtonIcon{position:relative;float:left;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxButtonContent span{font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:16px;}span.jxButtonContent span.jxButtonLabel{display:block;position:relative;float:left;cursor:pointer;margin:0;padding:0 4px 0 4px;color:#000;font-size:11px;}a.jxButtonMenu span.jxButtonContent span,a.jxButtonFlyout span.jxButtonContent span{padding-right:16px;background-image:url(../images/delicious/emblems.png);background-position:right -32px;background-repeat:no-repeat;}a.jxButtonMulti span.jxButtonContent,a.jxButtonFlyout span.jxButtonContent{padding-left:0;padding-right:0;}a.jxButtonMulti span.jxButtonLabel{padding-left:0;padding-right:0;}.jxFlyout .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}.jxFlyout{position:absolute;display:block;clear:both;float:none;z-index:100;margin:0;padding:0;font-size:12px;line-height:14px;}.jxFlyoutContent{position:relative;display:block;overflow:auto;margin:6px 6px 8px 7px;}.jxFlyout .jxBarRight,.jxFlyout .jxBarLeft{float:left;height:auto;width:auto;}.jxChrome{position:absolute;display:block;font-size:0;line-height:0;z-index:-1;width:100%;height:100%;top:0;left:0;}.jxChromeDrag{opacity:.5;filter:Alpha(opacity=50);}.jxChromeTL{position:absolute;overflow:hidden;left:0;top:0;width:50%;height:50%;}.jxChromeTR{position:absolute;overflow:hidden;left:50%;top:0;width:50%;height:50%;}.jxChromeBL{position:absolute;overflow:hidden;left:0;top:50%;width:50%;height:50%;}.jxChromeBR{position:absolute;overflow:hidden;left:50%;top:50%;width:50%;height:50%;}.jxChromeTL img{position:absolute;top:0;left:0;}.jxChromeTR img{position:absolute;top:0;right:0;}.jxChromeBL img{position:absolute;bottom:0;left:0;}.jxChromeBR img{position:absolute;bottom:0;right:0;}.jxColorBar{position:relative;}table.jxColorGrid{position:relative;border-collapse:collapse;empty-cells:show;clear:both;}.jxColorGrid td{border:1px solid #000;}.jxColorGrid td.emptyCell{border:0 solid #000;}.jxColorGrid td.emptyCell span{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;padding:1px;margin:0;}.jxColorGrid a.colorSwatch{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;margin:0;padding:1px;}.jxColorGrid a.borderWhite:hover{border:1px solid #fff;padding:0;}.jxColorGrid a.borderBlack:hover{border:1px solid #000;padding:0;}input.jxHexInput{width:55px;vertical-align:middle;}input.jxAlphaInput{width:30px;vertical-align:middle;}div.jxColorPreview{float:left;position:relative;width:20px;height:20px;border:1px solid #000;margin:2px;vertical-align:middle;background-image:url('../images/grid.png');}span.jxButtonContent span.jxButtonSwatch{display:block;float:left;width:14px;height:14px;border:1px solid #000;background-image:url('../images/grid.png');padding-right:0!important;}span.jxButtonContent span.jxButtonSwatch span{display:block;width:14px;height:14px;position:absolute;padding-right:0;}div.jxColorPreview img{position:absolute;z-index:0;}div.jxColorPreview div.jxColorSelected{width:20px;height:10px;position:absolute;z-index:1;}div.jxColorPreview div.jxColorHover{width:20px;height:10px;position:absolute;bottom:0;z-index:1;}label.jxColorLabel,label.jxAlphaLabel{width:auto;font-family:Arial,sans-serif;font-size:12px;line-height:24px;padding:2px;vertical-align:middle;}a.jxColorClose{position:absolute;top:0;right:0;width:16px;height:16px;}a.jxColorClose img{width:16px;height:16px;}.jxComboOptions .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}div.jxCombo{position:relative;display:block;padding:0;padding-right:22px;margin:0;border:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;z-index:1;line-height:24px;float:left;}.jxComboDiscloser{position:absolute;right:3px;top:3px;}.jxComboDiscloser img{width:16px;height:16px;border:0;}.jxComboInput{position:relative;display:block;float:left;line-height:14px;height:14px;padding:5px 10px;border:1px solid #f0f0f0;}div.jxComboOptions{position:absolute;height:auto;color:#000;z-index:1;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:24px;padding:6px 6px 8px 7px;}div.jxComboOptions ul{position:relative;display:block;margin:0;padding:0;border:none;list-style-type:none;}div.jxComboOptions li{position:relative;display:block;margin:0;padding:0;border:none;height:20px;}div.jxComboOptions a{position:relative;display:block;text-decoration:none;white-space:nowrap;line-height:20px;height:20px;color:#000;background-image:none;padding:0 4px;}div.jxComboOptions a:hover{background-image:url(../images/delicious/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}div.jxComboOptions a.selected{font-weight:bold;background-color:#ffffb3;}.jxDialog .jxChrome{background-image:url(../images/delicious/dialog_chrome.png);}.jxDialog{display:block;z-index:1;}.jxDialogContentContainer{z-index:1;margin:0 11px 13px 12px;border:1px solid #b7b7b7;background-color:#f0f0f0;}.jxDialogModal{position:absolute;display:block;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.2;filter:Alpha(opacity=20);}.jxDialogContent{display:block;position:relative;overflow:auto;padding:0;z-index:1;}.jxDialogTitle{display:block;position:relative;background-image:url(../images/a_pixel.png);text-align:center;height:24px;line-height:24px;z-index:1;margin:6px 6px 0 7px;}.jxDialogMin .jxDialogTitle{margin-bottom:8px;}.jxDialogMoveable{cursor:move;}.jxDialogLabel{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxDialogResize{position:absolute;bottom:7px;right:6px;width:16px;height:16px;z-index:2;border:0;cursor:se-resize;background-image:url(../images/delicious/dialog_resize.png);}.jxDialogControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxDialogControls img{background-image:url('../images/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxDialogClose img{background-position:0 -32px;}.jxDialogMenu img{background-position:0 -48px;}.jxDialogHelp img{background-position:0 -64px;}.jxDialogCollapse img{background-position:0 -16px;}.jxDialogMin .jxDialogCollapse img{background-position:0 0;}.jxDialogMax .jxDialogCollapse img{background-position:0 -16px;}.jxDialogLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxDialogControls .jxButtonContainer,.jxDialogControls span.jxButtonContent,.jxDialogControls a.jxButton:hover span.jxButtonContent,.jxDialogControls a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButtonActive span.jxButtonContent,.jxDialogControls a.jxButtonActive:hover span.jxButtonContent,.jxDialogControls a.jxButtonActive:active span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButton,.jxDialogControls a.jxButton:hover,.jxDialogControls a.jxButton:active,.jxDialogControls a.jxButtonActive,.jxDialogControls a.jxButtonActive:hover,.jxDialogControls a.jxButtonActive:active,.jxDialogControls .jxButtonDisabled a.jxButton,.jxDialogControls .jxButtonDisabled a.jxButton:hover,.jxDialogControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent,.jxDialogControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent span,.jxDialogControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxDialogControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls .jxBarTop,.jxDialogControls .jxBarBottom,.jxDialogControls .jxBarLeft,.jxDialogControls .jxBarRight{width:auto;height:auto;}.jxDialogControls .jxBarTop ul.jxToolbar,.jxDialogControls .jxBarBottom ul.jxToolbar,.jxDialogControls .jxBarLeft ul.jxToolbar,.jxDialogControls .jxBarRight ul.jxToolbar,.jxDialogControls .jxBarTop li.jxToolItem,.jxDialogControls .jxBarBottom li.jxToolItem,.jxDialogControls .jxBarLeft li.jxToolItem,.jxDialogControls .jxBarRight li.jxToolItem{background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxGridContainer{position:absolute;top:0;left:0;border-left:0 solid #d8d8d8;border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow:hidden;font-family:Arial,Verdana,sans-serif;font-size:12px;font-weight:normal;}.jxGridTable{position:relative;table-layout:fixed;border-collapse:collapse;border-style:none;width:0;}.jxGridColHeadHide{height:0;line-height:0;font-size:0;background-color:#fff;white-space:normal;}.jxGridColHeadHide p,.jxGridRowHeadHide p{font-size:0;line-height:0;height:0;margin:0;padding:0;}.jxGridRowHeadHide{width:0;white-space:normal;}.jxGridCell{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;overflow:hidden;padding-left:3px;padding-right:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.jxGridColHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/delicious/table_col_bg.png');background-position:0 0;background-repeat:repeat-x;text-align:center;font-weight:bold;color:#333;}.jxGridRowHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/delicious/table_row_bg.png');background-position:0 0;background-repeat:repeat-y;text-align:center;font-weight:bold;color:#333;}.jxGridRowAll{background-color:#fff;}.jxGridColumnHeaderSelected{background-color:#e1e1e1;background-position:0 -200px;}.jxGridRowHeaderSelected{background-color:#e1e1e1;background-position:-400px 0;}.jxGridColumnSelected{background-color:#f7f7f7;}.jxGridRowSelected td{background-color:#f7f7f7;}td.jxGridCellSelected{background-color:#ebebeb;}.jxGridColumnHeaderPrelight{background-color:#cee5ff;background-position:0 -300px;}.jxGridRowHeaderPrelight{background-color:#cee5ff;background-position:-600px 0;}.jxGridColumnPrelight{background-color:#e5f1ff;}.jxGridRowPrelight td{background-color:#e5f1ff;}td.jxGridCellPrelight{background-color:#cce3ff;}.jxMenuContainer .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}a.jxButtonMenu span.jxMenuItemSpan{padding-right:16px;}.jxMenuContainer{position:absolute;display:block;z-index:200;padding:0;}ul.jxMenu,ul.jxSubMenu{display:block;position:relative;list-style-type:none;margin:0;padding:6px 6px 8px 7px;}li.jxMenuItemContainer{display:block;position:relative;margin:0;padding:0;}a.jxMenuItem{display:block;position:relative;text-decoration:none;border:1px solid #fff;font-family:Arial,Helvetica,sans-serif;font-size:11px;text-decoration:none;margin:2px 2px;padding:0;color:#000;}a.jxMenuItem:hover{border:1px solid #C5E0FF;background-image:url(../images/delicious/menu_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}a.jxMenuItem:hover span.jxMenuItemContent{border:1px solid #F4F9FF;border-bottom:1px solid #E4F0FF;}span.jxMenuItemContent{display:block;position:relative;font-family:Arial,Helvetica,sans-serif;font-size:0;line-height:0;white-space:nowrap;padding:0;margin:0;border:1px solid #fff;}a.jxButtonSubMenu span.jxMenuItemContent,a.jxButtonSubMenu:hover span.jxMenuItemContent{background-image:url(../images/delicious/emblems.png);background-position:right -64px;background-repeat:no-repeat;padding-right:20px;}img.jxMenuItemIcon{position:absolute;top:0;left:0;display:inline;width:16px;height:16px;background-position:left center;background-repeat:no-repeat;}span.jxMenuItemContent span{display:block;position:relative;cursor:pointer;margin:0;padding:0 0 0 20px;font-size:16px;line-height:16px;}span.jxMenuItemContent span.jxMenuItemLabel{color:#000;font-size:12px;}.jxMenuItemToggle img.jxMenuItemIcon,.jxMenuItemSet img.jxMenuItemIcon{background-image:url(../images/delicious/emblems.png);background-position:2px 0;background-repeat:no-repeat;}.jxMenuItemToggle a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -80px;}.jxMenuItemSet a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -96px;}a.jxMenuItemActive img.jxMenuItemIcon{top:-2px;left:-2px;padding:1px;border:1px solid #C5E0FF;}a.jxMenuItemActive span.jxMenuItemContent{background-image:url(../images/delicious/menu_icon_bg.png);background-position:0 0;background-repeat:no-repeat;}li.jxMenuItemDisabled span.jxMenuItemLabel{color:#ccc;}li.jxMenuItemDisabled a.jxMenuItem:hover{background-color:#fff;border:1px solid #fff;}ul.jxMenu span.jxMenuSeparator{display:block;font-size:10px;line-height:10px;background-image:url(../images/toolbar_separator_v.png);background-repeat:repeat-x;background-position:left center;}.jxPanel{display:block;position:relative;}.jxPanelContentContainer{overflow:hidden;background-color:#f0f0f0;}.jxPanelContent{position:relative;display:block;overflow:auto;background-color:#fff;margin:0;padding:0;}.jxPanelTitle{display:block;position:relative;background-image:url(../images/delicious/snap_bg.png);background-repeat:repeat-x;background-position:left top;height:22px;margin:0;padding:0;}.jxPanelLabel{padding-left:25px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxPanelControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxPanelControls img{background-image:url('../images/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxPanelClose img{background-position:0 -32px;}.jxPanelMenu img{background-position:0 -48px;}.jxPanelHelp img{background-position:0 -64px;}.jxPanelCollapse img{background-position:0 -16px;}.jxPanelMin .jxPanelCollapse img{background-position:0 0;}.jxPanelMax .jxPanelCollapse img{background-position:0 -16px;}.jxPanelMaximize img{background-position:0 0;}.jxPanelLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxPanelControls .jxButtonContainer,.jxPanelControls span.jxButtonContent,.jxPanelControls a.jxButton:hover span.jxButtonContent,.jxPanelControls a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButtonActive span.jxButtonContent,.jxPanelControls a.jxButtonActive:hover span.jxButtonContent,.jxPanelControls a.jxButtonActive:active span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButton,.jxPanelControls a.jxButton:hover,.jxPanelControls a.jxButton:active,.jxPanelControls a.jxButtonActive,.jxPanelControls a.jxButtonActive:hover,.jxPanelControls a.jxButtonActive:active,.jxPanelControls .jxButtonDisabled a.jxButton,.jxPanelControls .jxButtonDisabled a.jxButton:hover,.jxPanelControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent,.jxPanelControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent span,.jxPanelControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxPanelControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls .jxBarTop,.jxPanelControls .jxBarBottom,.jxPanelControls .jxBarLeft,.jxPanelControls .jxBarRight{width:auto;height:auto;}.jxPanelControls .jxBarTop ul.jxToolbar,.jxPanelControls .jxBarBottom ul.jxToolbar,.jxPanelControls .jxBarLeft ul.jxToolbar,.jxPanelControls .jxBarRight ul.jxToolbar,.jxPanelControls .jxBarTop li.jxToolItem,.jxPanelControls .jxBarBottom li.jxToolItem,.jxPanelControls .jxBarLeft li.jxToolItem,.jxPanelControls .jxBarRight li.jxToolItem{border:none;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxSplitBarHorizontal{position:absolute;line-height:1px;width:5px;height:100%;cursor:col-resize;background-color:#f0f0f0;z-index:1;}.jxSplitBarVertical{position:absolute;line-height:1px;width:100%;height:5px;cursor:row-resize;background-color:#f0f0f0;z-index:1;}.jxSplitContainer{margin:0;}.jxSplitArea{overflow:hidden;z-index:0;}.jxSplitBarDrag{background-color:#eee;}.jxTabSetContainer{position:relative;display:block;width:200px;height:200px;margin:0;padding:0;border:1px solid #d8d8d8;background-color:#fff;}.jxTabSetContainer .jxToolbarContainer{z-index:auto;}.tabContent{display:none;position:relative;width:100%;height:100%;overflow:auto;}.tabContentActive{display:block;}.jxTabBoxTop,.jxTabBoxBottom,.jxTabBoxLeft,.jxTabBoxRight{overflow:visible;}.jxTabBoxTop .jxToolbarTop,.jxTabBoxBottom .jxToolbarBottom,.jxTabBoxLeft .jxToolbarLeft,.jxTabBoxRight .jxToolbarRight{position:absolute;}li.jxTabItem{margin:0;padding:0;}.jxToolbarTop li.jxTabItem,.jxToolbarBottom li.jxTabItem{border:none;}.jxToolbarLeft li.jxTabItem,.jxToolbarRight li.jxTabItem{border:none;}a.jxTab{display:block;position:relative;margin:0;padding:0;border:none;background-repeat:no-repeat;text-decoration:none;color:#000;}a.jxTab:hover,a.jxTab:active,a.jxTabActive,a.jxTabActive:hover,a.jxTabActive:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{border:none;}span.jxTabContent{display:block;font-size:0;line-height:0;margin:0;padding:0;background-repeat:no-repeat;}img.jxTabIcon{position:relative;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxTabLabel{display:block;position:relative;cursor:pointer;margin:0;padding:0;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:16px;}.jxToolbarTop a.jxTab,.jxTabBarTop a.jxTab{float:left;padding-left:6px;background-image:url(../images/delicious/tab_top_bg.png);background-position:left -56px;}.jxToolbarTop span.jxTabContent,.jxTabBarTop span.jxTabContent{float:left;padding:6px 6px 6px 0;background-image:url(../images/delicious/tab_top_bg.png);background-position:right -56px;}.jxToolbarTop img.jxTabIcon,.jxTabBarTop img.jxTabIcon{float:left;}.jxToolbarTop span.jxTabLabel,.jxTabBarTop span.jxTabLabel{float:left;padding:0 4px 0 4px;}.jxToolbarTop a.jxTab:hover,.jxTabBarTop a.jxTab:hover{background-position:left -224px;}.jxToolbarTop a.jxTab:hover span.jxTabContent,.jxTabBarTop a.jxTab:hover span.jxTabContent{background-position:right -224px;}.jxToolbarTop a.jxTab:active,.jxTabBarTop a.jxTab:active{background-position:left -112px;}.jxToolbarTop a.jxTab:active span.jxTabContent,.jxTabBarTop a.jxTab:active span.jxTabContent{background-position:right -112px;}.jxToolbarTop a.jxTabActive,.jxTabBarTop a.jxTabActive{background-position:left -168px;}.jxToolbarTop a.jxTabActive span.jxTabContent,.jxTabBarTop a.jxTabActive span.jxTabContent{background-position:right -168px;}.jxTabBoxBottom{margin-bottom:27px;}.jxTabBoxBottom .jxToolbarBottom{bottom:-27px;}.jxToolbarBottom li.jxTabItem{float:left;}.jxToolbarBottom a.jxTab{float:left;padding-left:6px;background-image:url(../images/graphic/tab_bottom_bg.png);background-position:left -2px;border-top:1px solid #999;}.jxToolbarBottom span.jxTabContent{float:left;padding:6px 6px 6px 0;background-image:url(../images/graphic/tab_bottom_bg.png);background-position:right -2px;}.jxToolbarBottom img.jxTabIcon{float:left;}.jxToolbarBottom span.jxTabLabel{float:left;padding:0 4px 0 4px;}.jxToolbarBottom a.jxTab:hover{background-position:left top;}.jxToolbarBottom a.jxTab:hover span.jxTabContent{background-position:right top;}.jxToolbarBottom a.jxTabActive{background-position:left -56px;border-top:1px solid #fff;}.jxToolbarBottom a.jxTabActive span.jxTabContent{background-position:right -56px;}.jxTabBoxLeft{margin-left:27px;}.jxTabBoxLeft .jxToolbarLeft{left:-27px;}.jxToolbarLeft a.jxTab{padding-top:6px;background-image:url(../images/graphic/tab_left_bg.png);background-position:2px top;border-right:1px solid #999;}.jxToolbarLeft span.jxTabContent{padding:0 6px 6px 6px;background-image:url(../images/graphic/tab_left_bg.png);background-position:2px bottom;}.jxToolbarLeft a.jxTab:hover{background-position:left top;}.jxToolbarLeft a.jxTab:hover span.jxTabContent{background-position:left bottom;}.jxToolbarLeft a.jxTabActive{background-position:-56px top;border-right:1px solid #fff;}.jxToolbarLeft a.jxTabActive span.jxTabContent{background-position:-56px bottom;}.jxTabBoxRight{margin-right:27px;}.jxTabBoxRight .jxToolbarRight{right:-27px;}.jxToolbarRight a.jxTab{padding-top:6px;background-image:url(../images/graphic/tab_right_bg.png);background-position:-2px top;border-left:1px solid #999;}.jxToolbarRight span.jxTabContent{padding:0 6px 6px 6px;background-image:url(../images/graphic/tab_right_bg.png);background-position:-2px bottom;}.jxToolbarRight a.jxTab:hover{background-position:left top;}.jxToolbarRight a.jxTab:hover span.jxTabContent{background-position:left bottom;}.jxToolbarRight a.jxTabActive{background-position:-56px top;border-left:1px solid #fff;}.jxToolbarRight a.jxTabActive span.jxTabContent{background-position:-56px bottom;}.jxToolbarContainer{display:block;position:relative;z-index:1;margin:0;padding:0;border:0;background-color:#f0f0f0;}.jxToolbarTop,.jxToolbarBottom{width:100%;height:auto;background-image:url(../images/delicious/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxTabBarTop,.jxTabBarBottom{background-image:url(../images/delicious/tabbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxToolbarLeft,.jxToolbarRight{width:auto;height:100%;background-image:url(../images/delicious/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.toolbarLabel{display:block;position:relative;float:left;margin:0;padding:0;font-family:Arial,Hevetica,sans-serif;font-size:11px;line-height:24px;color:#000;}ul.jxToolbar{display:block;position:relative;float:left;list-style-type:none;margin:0;padding:0;}.jxToolbarTop ul.jxToolbar,.jxToolbarBottom ul.jxToolbar,.jxToolbarLeft ul.jxToolbar,.jxToolbarRight ul.jxToolbar{border:none;}li.jxToolItem{display:block;position:relative;float:left;font-size:0;line-height:0;padding:0;margin:0;}.jxToolbarTop li.jxToolItem,.jxToolbarBottom li.jxToolItem,.jxToolbarLeft li.jxToolItem,.jxToolbarRight li.jxToolItem{border:none;}li.jxToolItem .separator{display:block;position:relative;float:left;font-size:0;line-height:0;width:8px;height:20px;border:0;margin:0;padding:4px;background-repeat:no-repeat;background-position:center center;}.jxToolbarTop li.jxToolItem span.separator,.jxToolbarBottom li.jxToolItem span.separator{background-image:url(../images/toolbar_separator_h.png);}.jxToolbarLeft li.jxToolItem span.separator,.jxToolbarRight li.jxToolItem span.separator{background-image:url(../images/toolbar_separator_v.png);}.jxToolbarLeft label.toolbarLabel,.jxToolbarLeft ul.jxToolbar,.jxToolbarLeft li.jxToolItem,.jxToolbarRight label.toolbarLabel,.jxToolbarRight ul.jxToolbar,.jxToolbarRight li.jxToolItem{clear:both;}.verticalToolbar{width:auto;}.verticalToolbar label.toolbarLabel,.verticalToolbar ul.jxToolbar,.verticalToolbar li.jxToolItem{clear:both;}.jxTree,.jxTreeRoot{position:relative;display:block;list-style:none;margin:0;padding:0;}.jxTreeNest{list-style:none;margin:0;padding:0;background-repeat:repeat-y;background-position:left top;}.jxTree li,.jxTreeRoot li{position:relative;display:block;margin:0;padding:0;background-repeat:no-repeat;background-position:left top;white-space:nowrap;width:100%;font-size:0;line-height:0;}.jxTree li{margin-left:16px;}.jxTree li.jxDisabled,.jxTreeRoot li.jxDisabled{opacity:.4;-moz-opacity:.4;filter:Alpha(opacity=40);}.jxTree a,.jxTreeRoot a{position:relative;display:block;margin:0 0 0 14px;padding:0 0 0 20px;z-index:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;color:#000;text-decoration:none;line-height:20px;height:20px;}.jxTree a:hover,.jxTreeRoot a:hover{background-image:url(../images/delicious/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}.jxTreeNest{background-image:url(../images/tree_vert_line.png);}.jxTreeImage,.jxTreeIcon{position:absolute;display:inline;left:0;top:0;width:16px;height:20px;z-index:1;background-image:url(../images/delicious/tree.png);background-repeat:no-repeat;border:0;margin:0;}.jxTreeIcon{left:2px;}.jxTreeBranchOpen .jxTreeIcon,.jxTreeBranchLastOpen .jxTreeIcon{background-position:left -40px;}.jxTreeBranchOpen .jxTreeImage{background-position:left -100px;}.jxTreeBranchLastOpen .jxTreeImage{background-position:left -160px;}.jxTreeBranchClosed .jxTreeIcon,.jxTreeBranchLastClosed .jxTreeIcon{background-position:left -20px;}.jxTreeBranchClosed .jxTreeImage{background-position:left -80px;}.jxTreeBranchLastClosed .jxTreeImage{background-position:left -140px;}.jxTreeItem .jxTreeIcon,.jxTreeItemLast .jxTreeIcon{background-position:left 0;}.jxTreeItem .jxTreeImage{background-position:left -60px;}.jxTreeItemLast .jxTreeImage{background-position:left -120px;}.jxTreeItemSelected{background-color:#AFD4FA;font-weight:bold;}.jxTreeItem a,.jxTreeItem img,.jxTreeItem input,.jxTreeItemLast a,.jxTreeItemLast img,.jxTreeItemLast input,.jxTreeBranch a,.jxTreeBranch img,.jxTreeBranch input,.jxTreeBranchLast a,.jxTreeBranchLast img,.jxTreeBranchLast input{vertical-align:middle;}
\ No newline at end of file
+ */body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}a{outline:none;}.png24{filter:expression(Jx.applyPNGFilter(this));}.jxClearer{display:block;position:relative;float:none;clear:both;font-size:0;line-height:0;width:0;height:0;margin:0;padding:0;}.jxDisabled{opacity:.4;filter:Alpha(opacity=40);}iframe.jxIframeShim{position:absolute;top:0;left:0;width:100%;height:100%;filter:Alpha(opacity:0);opacity:0;z-index:-1;}div.jxButtonContainer{display:block;position:relative;float:left;margin:2px;padding:0;border:none;}a.jxButton{display:block;position:relative;float:left;margin:0;padding:0 0 0 4px;border:none;background-image:url(../images/delicious/button_bg.png);background-position:left -56px;background-repeat:no-repeat;text-decoration:none;}ul.jxToolbar a.jxButton{background-position:left top;}span.jxButtonContent{display:block;position:relative;float:left;font-size:0;line-height:0;margin:0;padding:4px 4px 4px 0;border:none;background-image:url(../images/delicious/button_bg.png);background-position:right -56px;background-repeat:no-repeat;}ul.jxToolbar span.jxButtonContent{background-position:right top;}ul.jxToolbar a.jxButton:hover,a.jxButton:hover{background-position:left -224px;}a.jxButton:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButtonActive,a.jxButtonActive{background-position:left -168px;}a.jxButtonActive span.jxButtonContent{background-position:right -168px;}ul.jxToolbar a.jxButton:hover,a.jxButtonActive:hover{background-position:left -224px;}a.jxButtonActive:hover span.jxButtonContent{background-position:right -224px;}ul.jxToolbar a.jxButton:active,ul.jxToolbar a.jxButtonActive:active,a.jxButton:active,a.jxButtonActive:active{background-position:left -112px;}a.jxButton:active span.jxButtonContent,a.jxButtonActive:active span.jxButtonContent{background-position:right -112px;}ul.jxToolbar .jxDisabled a.jxButton:hover,ul.jxToolbar .jxDisabled a.jxButton:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{background-position:left top;}.jxDisabled a.jxButton:hover span.jxButtonContent,.jxDisabled a.jxButton:active span.jxButtonContent{background-position:right top;}img.jxButtonIcon{position:relative;float:left;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxButtonContent span{font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:16px;}span.jxButtonContent span.jxButtonLabel{display:block;position:relative;float:left;cursor:pointer;margin:0;padding:0 4px 0 4px;color:#000;font-size:11px;}a.jxButtonMenu span.jxButtonContent span,a.jxButtonFlyout span.jxButtonContent span,a.jxButtonMulti span.jxButtonContent span{padding-right:16px;background-image:url(../images/delicious/emblems.png);background-position:right -16px;background-repeat:no-repeat;}a.jxButtonMulti{background-image:url(../images/delicious/button_multi_bg.png);}a.jxButtonMulti span.jxButtonContent{background-image:url(../images/delicious/button_multi_bg.png);}a.jxButtonMulti span.jxButtonContent span{padding-right:21px;}a.jxButtonMulti span.jxButtonContent,a.jxButtonFlyout span.jxButtonContent{padding-left:0;padding-right:0;}a.jxButtonMultiDisclose{position:absolute;display:block;padding:4px 0;font-size:0;line-height:0;right:0;background-image:url(../images/delicious/button_multi_disclose_bg.png);background-position:right 0;background-repeat:no-repeat;}a.jxButtonMultiDisclose img{width:16px;height:16px;margin:0;padding:0;border:0;background-image:url(../images/delicious/emblems.png);background-position:right -16px;background-repeat:no-repeat;}a.jxButtonMultiDisclose:hover{background-position:right -224px;}a.jxButtonMultiDisclose:active{background-position:right -112px;}ul.jxToolbar a.jxButtonHover{background-position:left -56px;}ul.jxToolbar a.jxButtonHover span.jxButtonContent{background-position:right -56px;}.jxFlyout .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}.jxFlyout{position:absolute;display:block;clear:both;float:none;z-index:100;margin:0;padding:0;font-size:12px;line-height:14px;}.jxFlyoutContent{position:relative;display:block;overflow:auto;margin:6px 6px 8px 7px;}.jxFlyout .jxBarRight,.jxFlyout .jxBarLeft{float:left;height:auto;width:auto;}.jxChrome{position:absolute;display:block;font-size:0;line-height:0;z-index:-1;width:100%;height:100%;top:0;left:0;}.jxChromeDrag{opacity:.5;filter:Alpha(opacity=50);}.jxChromeTL{position:absolute;overflow:hidden;left:0;top:0;width:50%;height:50%;}.jxChromeTR{position:absolute;overflow:hidden;left:50%;top:0;width:50%;height:50%;}.jxChromeBL{position:absolute;overflow:hidden;left:0;top:50%;width:50%;height:50%;}.jxChromeBR{position:absolute;overflow:hidden;left:50%;top:50%;width:50%;height:50%;}.jxChromeTL img{position:absolute;top:0;left:0;}.jxChromeTR img{position:absolute;top:0;right:0;}.jxChromeBL img{position:absolute;bottom:0;left:0;}.jxChromeBR img{position:absolute;bottom:0;right:0;}.jxColorBar{position:relative;}table.jxColorGrid{position:relative;border-collapse:collapse;empty-cells:show;clear:both;}.jxColorGrid td{border:1px solid #000;}.jxColorGrid td.emptyCell{border:0 solid #000;}.jxColorGrid td.emptyCell span{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;padding:1px;margin:0;}.jxColorGrid a.colorSwatch{display:block;width:7px;height:7px;line-height:0;font-size:0;border:0 solid #000;margin:0;padding:1px;}.jxColorGrid a.borderWhite:hover{border:1px solid #fff;padding:0;}.jxColorGrid a.borderBlack:hover{border:1px solid #000;padding:0;}input.jxHexInput{width:55px;vertical-align:middle;}input.jxAlphaInput{width:30px;vertical-align:middle;}div.jxColorPreview{float:left;position:relative;width:20px;height:20px;border:1px solid #000;margin:2px;vertical-align:middle;background-image:url('../images/delicious/grid.png');}a.jxButtonFlyout span.jxButtonContent span.jxButtonSwatch{display:block;float:left;width:14px;height:14px;border:1px solid #000;background-image:url('../images/delicious/grid.png');background-position:0 0;background-repeat:repeat;padding-right:0!important;}a.jxButtonFlyout span.jxButtonContent span.jxButtonSwatch span{display:block;width:14px;height:14px;position:absolute;padding-right:0;background:none;}div.jxColorPreview img{position:absolute;z-index:0;}div.jxColorPreview div.jxColorSelected{width:20px;height:10px;position:absolute;z-index:1;}div.jxColorPreview div.jxColorHover{width:20px;height:10px;position:absolute;bottom:0;z-index:1;}label.jxColorLabel,label.jxAlphaLabel{width:auto;font-family:Arial,sans-serif;font-size:12px;line-height:24px;padding:2px;vertical-align:middle;}a.jxColorClose{position:absolute;top:0;right:0;width:16px;height:16px;}a.jxColorClose img{width:16px;height:16px;}.jxComboOptions .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}div.jxCombo{position:relative;display:block;padding:0;padding-right:22px;margin:0;border:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;z-index:1;line-height:24px;float:left;}.jxComboDiscloser{position:absolute;right:3px;top:3px;}.jxComboDiscloser img{width:16px;height:16px;border:0;background-image:url(../images/delicious/emblems.png);background-position:right -16px;background-repeat:no-repeat;}.jxComboInput{position:relative;display:block;float:left;line-height:14px;height:14px;padding:5px 10px;border:1px solid #f0f0f0;}div.jxComboOptions{position:absolute;height:auto;color:#000;z-index:1;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:24px;padding:6px 6px 8px 7px;}div.jxComboOptions ul{position:relative;display:block;margin:0;padding:0;border:none;list-style-type:none;}div.jxComboOptions li{position:relative;display:block;margin:0;padding:0;border:none;height:20px;}div.jxComboOptions a{position:relative;display:block;text-decoration:none;white-space:nowrap;line-height:20px;height:20px;color:#000;background-image:none;padding:0 4px;}div.jxComboOptions a:hover{background-image:url(../images/delicious/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}div.jxComboOptions a.selected{font-weight:bold;background-color:#ffffb3;}.jxDialog .jxChrome{background-image:url(../images/delicious/dialog_chrome.png);}.jxDialog{display:block;z-index:1;}.jxDialogContentContainer{z-index:1;margin:0 11px 13px 12px;border:1px solid #b7b7b7;background-color:#f0f0f0;}.jxDialogModal{position:absolute;display:block;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.2;filter:Alpha(opacity=20);}.jxDialogContent{display:block;position:relative;overflow:auto;padding:0;z-index:1;}.jxDialogTitle{display:block;position:relative;background-image:url(../images/a_pixel.png);text-align:center;height:24px;line-height:24px;z-index:1;margin:6px 6px 0 7px;}.jxDialogMin .jxDialogTitle{margin-bottom:8px;}.jxDialogMoveable{cursor:move;}.jxDialogLabel{font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxDialogResize{position:absolute;bottom:7px;right:6px;width:16px;height:16px;z-index:2;border:0;cursor:se-resize;background-image:url(../images/delicious/dialog_resize.png);}.jxDialogControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxDialogControls img{background-image:url('../images/delicious/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxDialogClose img{background-position:0 -32px;}.jxDialogMenu img{background-position:0 -48px;}.jxDialogHelp img{background-position:0 -64px;}.jxDialogCollapse img{background-position:0 -16px;}.jxDialogMin .jxDialogCollapse img{background-position:0 0;}.jxDialogMax .jxDialogCollapse img{background-position:0 -16px;}.jxDialogLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxDialogControls .jxButtonContainer,.jxDialogControls span.jxButtonContent,.jxDialogControls a.jxButton:hover span.jxButtonContent,.jxDialogControls a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButtonActive span.jxButtonContent,.jxDialogControls a.jxButtonActive:hover span.jxButtonContent,.jxDialogControls a.jxButtonActive:active span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxDialogControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxDialogControls a.jxButton,.jxDialogControls a.jxButton:hover,.jxDialogControls a.jxButton:active,.jxDialogControls a.jxButtonActive,.jxDialogControls a.jxButtonActive:hover,.jxDialogControls a.jxButtonActive:active,.jxDialogControls .jxButtonDisabled a.jxButton,.jxDialogControls .jxButtonDisabled a.jxButton:hover,.jxDialogControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent,.jxDialogControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxDialogControls a.jxButtonMenu span.jxButtonContent span,.jxDialogControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxDialogControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxDialogControls .jxBarTop,.jxDialogControls .jxBarBottom,.jxDialogControls .jxBarLeft,.jxDialogControls .jxBarRight{width:auto;height:auto;}.jxDialogControls .jxBarTop ul.jxToolbar,.jxDialogControls .jxBarBottom ul.jxToolbar,.jxDialogControls .jxBarLeft ul.jxToolbar,.jxDialogControls .jxBarRight ul.jxToolbar,.jxDialogControls .jxBarTop li.jxToolItem,.jxDialogControls .jxBarBottom li.jxToolItem,.jxDialogControls .jxBarLeft li.jxToolItem,.jxDialogControls .jxBarRight li.jxToolItem{background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxGridContainer{position:absolute;top:0;left:0;border-left:0 solid #d8d8d8;border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow:hidden;font-family:Arial,Verdana,sans-serif;font-size:12px;font-weight:normal;}.jxGridTable{position:relative;table-layout:fixed;border-collapse:collapse;border-style:none;width:0;}.jxGridColHeadHide{height:0;line-height:0;font-size:0;background-color:#fff;white-space:normal;}.jxGridColHeadHide p,.jxGridRowHeadHide p{font-size:0;line-height:0;height:0;margin:0;padding:0;}.jxGridRowHeadHide{width:0;white-space:normal;}.jxGridCell{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;overflow:hidden;padding-left:3px;padding-right:3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.jxGridColHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/delicious/table_col_bg.png');background-position:0 0;background-repeat:repeat-x;text-align:center;font-weight:bold;color:#333;}.jxGridRowHead{border-top:0 solid #d8d8d8;border-right:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;border-left:0 solid #d8d8d8;background-color:#f2f2f2;background-image:url('../images/delicious/table_row_bg.png');background-position:0 0;background-repeat:repeat-y;text-align:center;font-weight:bold;color:#333;}.jxGridRowAll{background-color:#fff;}.jxGridColumnHeaderSelected{background-color:#e1e1e1;background-position:0 -200px;}.jxGridRowHeaderSelected{background-color:#e1e1e1;background-position:-400px 0;}.jxGridColumnSelected{background-color:#f7f7f7;}.jxGridRowSelected td{background-color:#f7f7f7;}td.jxGridCellSelected{background-color:#ebebeb;}.jxGridColumnHeaderPrelight{background-color:#cee5ff;background-position:0 -300px;}.jxGridRowHeaderPrelight{background-color:#cee5ff;background-position:-600px 0;}.jxGridColumnPrelight{background-color:#e5f1ff;}.jxGridRowPrelight td{background-color:#e5f1ff;}td.jxGridCellPrelight{background-color:#cce3ff;}.jxMenuContainer .jxChrome{background-image:url(../images/delicious/flyout_chrome.png);padding:5px 5px 7px 6px;}a.jxButtonMenu span.jxMenuItemSpan{padding-right:16px;}.jxMenuContainer{position:absolute;display:block;z-index:200;padding:0;}ul.jxMenu,ul.jxSubMenu{display:block;position:relative;list-style-type:none;margin:0;padding:6px 6px 8px 7px;}li.jxMenuItemContainer{display:block;position:relative;margin:0;padding:0;}a.jxMenuItem{display:block;position:relative;text-decoration:none;border:1px solid #fff;font-family:Arial,Helvetica,sans-serif;font-size:11px;text-decoration:none;margin:2px 2px;padding:0;color:#000;}a.jxMenuItem:hover{border:1px solid #C5E0FF;background-image:url(../images/delicious/menu_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}a.jxMenuItem:hover span.jxMenuItemContent{border:1px solid #F4F9FF;border-bottom:1px solid #E4F0FF;}span.jxMenuItemContent{display:block;position:relative;font-family:Arial,Helvetica,sans-serif;font-size:0;line-height:0;white-space:nowrap;padding:0;margin:0;border:1px solid #fff;}a.jxButtonSubMenu span.jxMenuItemContent,a.jxButtonSubMenu:hover span.jxMenuItemContent{background-image:url(../images/delicious/emblems.png);background-position:right -32px;background-repeat:no-repeat;padding-right:20px;}img.jxMenuItemIcon{position:absolute;top:0;left:0;display:inline;width:16px;height:16px;background-position:left center;background-repeat:no-repeat;}span.jxMenuItemContent span{display:block;position:relative;cursor:pointer;margin:0;padding:0 0 0 20px;font-size:16px;line-height:16px;}span.jxMenuItemContent span.jxMenuItemLabel{color:#000;font-size:12px;}.jxMenuItemToggle img.jxMenuItemIcon,.jxMenuItemSet img.jxMenuItemIcon{background-image:url(../images/delicious/emblems.png);background-position:2px 0;background-repeat:no-repeat;}.jxMenuItemToggle a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -48px;}.jxMenuItemSet a.jxMenuItemActive img.jxMenuItemIcon{background-position:2px -64px;}a.jxMenuItemActive img.jxMenuItemIcon{top:-2px;left:-2px;padding:1px;border:1px solid #C5E0FF;}a.jxMenuItemActive span.jxMenuItemContent{background-image:url(../images/delicious/menu_icon_bg.png);background-position:0 0;background-repeat:no-repeat;}li.jxMenuItemDisabled span.jxMenuItemLabel{color:#ccc;}li.jxMenuItemDisabled a.jxMenuItem:hover{background-color:#fff;border:1px solid #fff;}ul.jxMenu span.jxMenuSeparator{display:block;font-size:10px;line-height:10px;background-image:url(../images/delicious/toolbar_separator_v.png);background-repeat:repeat-x;background-position:left center;}.jxPanel{display:block;position:relative;}.jxPanelContentContainer{overflow:hidden;background-color:#f0f0f0;}.jxPanelContent{position:relative;display:block;overflow:auto;background-color:#fff;margin:0;padding:0;}.jxPanelTitle{display:block;position:relative;background-image:url(../images/delicious/snap_bg.png);background-repeat:repeat-x;background-position:left top;height:22px;margin:0;padding:0;}.jxPanelLabel{padding-left:25px;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;line-height:21px;color:#000;white-space:nowrap;}.jxPanelControls{position:absolute;top:3px;right:2px;height:16px;width:80px;}.jxPanelControls img{background-image:url('../images/delicious/panel_controls.png');background-repeat:no-repeat;border:0;margin:0;width:16px;height:16px;}.jxPanelClose img{background-position:0 -32px;}.jxPanelMenu img{background-position:0 -48px;}.jxPanelHelp img{background-position:0 -64px;}.jxPanelCollapse img{background-position:0 -16px;}.jxPanelMin .jxPanelCollapse img{background-position:0 0;}.jxPanelMax .jxPanelCollapse img{background-position:0 -16px;}.jxPanelMaximize img{background-position:0 0;}.jxPanelLoading img{border:0;margin:0;width:16px;height:16px;visibility:hidden;position:absolute;top:1px;left:2px;}.jxPanelControls .jxButtonContainer,.jxPanelControls span.jxButtonContent,.jxPanelControls a.jxButton:hover span.jxButtonContent,.jxPanelControls a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButtonActive span.jxButtonContent,.jxPanelControls a.jxButtonActive:hover span.jxButtonContent,.jxPanelControls a.jxButtonActive:active span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:hover span.jxButtonContent,.jxPanelControls .jxButtonDisabled a.jxButton:active span.jxButtonContent,.jxPanelControls a.jxButton,.jxPanelControls a.jxButton:hover,.jxPanelControls a.jxButton:active,.jxPanelControls a.jxButtonActive,.jxPanelControls a.jxButtonActive:hover,.jxPanelControls a.jxButtonActive:active,.jxPanelControls .jxButtonDisabled a.jxButton,.jxPanelControls .jxButtonDisabled a.jxButton:hover,.jxPanelControls .jxButtonDisabled a.jxButton:active{padding:0;margin:0;border:none;background-color:transparent;background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent,.jxPanelControls a.jxButtonFlyout span.jxButtonContent{background-image:none;}.jxPanelControls a.jxButtonMenu span.jxButtonContent span,.jxPanelControls a.jxButtonFlyout span.jxButtonContent span{padding-right:0;}.jxPanelControls .jxToolbarContainer{position:absolute;right:0;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls ul.jxToolbar{float:right;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxPanelControls .jxBarTop,.jxPanelControls .jxBarBottom,.jxPanelControls .jxBarLeft,.jxPanelControls .jxBarRight{width:auto;height:auto;}.jxPanelControls .jxBarTop ul.jxToolbar,.jxPanelControls .jxBarBottom ul.jxToolbar,.jxPanelControls .jxBarLeft ul.jxToolbar,.jxPanelControls .jxBarRight ul.jxToolbar,.jxPanelControls .jxBarTop li.jxToolItem,.jxPanelControls .jxBarBottom li.jxToolItem,.jxPanelControls .jxBarLeft li.jxToolItem,.jxPanelControls .jxBarRight li.jxToolItem{border:none;background-image:none;background-color:transparent;margin:0;padding:0;border:none;}.jxSplitBarHorizontal{position:absolute;line-height:1px;width:5px;height:100%;cursor:col-resize;background-color:#f0f0f0;z-index:1;}.jxSplitBarVertical{position:absolute;line-height:1px;width:100%;height:5px;cursor:row-resize;background-color:#f0f0f0;z-index:1;}.jxSplitContainer{margin:0;}.jxSplitArea{overflow:hidden;z-index:0;}.jxSplitBarDrag{background-color:#eee;}.jxTabSetContainer{position:relative;display:block;width:200px;height:200px;margin:0;padding:0;border:1px solid #d8d8d8;background-color:#fff;}.jxTabSetContainer .jxToolbarContainer{z-index:auto;}.tabContent{display:none;position:relative;width:100%;height:100%;overflow:auto;}.tabContentActive{display:block;}div.jxTabContainer{display:block;position:relative;margin:0;padding:0;border:none;}a.jxTab{display:block;position:relative;margin:0;padding:0;border:none;background-repeat:no-repeat;text-decoration:none;color:#000;}a.jxTab:hover,a.jxTab:active,a.jxTabActive,a.jxTabActive:hover,a.jxTabActive:active,.jxDisabled a.jxButton:hover,.jxDisabled a.jxButton:active{border:none;}span.jxTabContent{display:block;font-size:0;line-height:0;margin:0;padding:0;background-repeat:no-repeat;}img.jxTabIcon{position:relative;width:16px;height:16px;background-position:center center;background-repeat:no-repeat;}span.jxTabLabel{display:block;position:relative;cursor:pointer;margin:0;padding:0;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:16px;}.jxBarTop div.jxTabContainer,.jxBarBottom div.jxTabContainer{float:left;margin:2px;}.jxBarTop a.jxTab,.jxBarBottom a.jxTab{float:left;padding-left:4px;background-position:left -56px;}.jxBarTop a.jxTab{background-image:url(../images/delicious/tab_top_bg.png);}.jxBarBottom a.jxTab{background-image:url(../images/delicious/tab_bottom_bg.png);}.jxBarTop span.jxTabContent,.jxBarBottom span.jxTabContent{float:left;padding:4px 4px 4px 0;background-position:right -56px;}.jxBarTop span.jxTabContent{background-image:url(../images/delicious/tab_top_bg.png);}.jxBarBottom span.jxTabContent{background-image:url(../images/delicious/tab_bottom_bg.png);}.jxBarTop img.jxTabIcon,.jxBarBottom img.jxTabIcon{float:left;}.jxBarTop span.jxTabLabel,.jxBarBottom span.jxTabLabel{float:left;padding:0 4px 0 4px;}.jxBarTop a.jxTab:hover,.jxBarBottom a.jxTab:hover{background-position:left -224px;}.jxBarTop a.jxTab:hover span.jxTabContent,.jxBarBottom a.jxTab:hover span.jxTabContent{background-position:right -224px;}.jxBarTop a.jxTab:active,.jxBarBottom a.jxTab:active{background-position:left -112px;}.jxBarTop a.jxTab:active span.jxTabContent,.jxBarBottom a.jxTab:active span.jxTabContent{background-position:right -112px;}.jxBarTop a.jxTabActive,.jxBarBottom a.jxTabActive{background-position:left -168px;}.jxBarTop a.jxTabActive span.jxTabContent,.jxBarBottom a.jxTabActive span.jxTabContent{background-position:right -168px;}.jxBarLeft div.jxTabContainer,.jxBarRight div.jxTabContainer{margin:2px;}.jxBarLeft a.jxTab,.jxBarRight a.jxTab{padding-top:4px;background-position:-56px top;}.jxBarLeft a.jxTab{background-image:url(../images/delicious/tab_left_bg.png);}.jxBarRight a.jxTab{background-image:url(../images/delicious/tab_right_bg.png);}.jxBarLeft span.jxTabContent,.jxBarRight span.jxTabContent{padding:0 4px 4px 4px;background-position:-56px bottom;}.jxBarLeft span.jxTabContent{background-image:url(../images/delicious/tab_left_bg.png);}.jxBarRight span.jxTabContent{background-image:url(../images/delicious/tab_right_bg.png);}.jxBarLeft span.jxTabLabel,.jxBarRight span.jxTabLabel{padding:4px 0 4px 0;}.jxBarLeft a.jxTab:hover,.jxBarRight a.jxTab:hover{background-position:-224px top;}.jxBarLeft a.jxTab:hover span.jxTabContent,.jxBarRight a.jxTab:hover span.jxTabContent{background-position:-224px bottom;}.jxBarLeft a.jxTab:active,.jxBarRight a.jxTab:active{background-position:-112px top;}.jxBarLeft a.jxTab:active span.jxTabContent,.jxBarRight a.jxTab:active span.jxTabContent{background-position:-112px bottom;}.jxBarLeft a.jxTabActive,.jxBarRight a.jxTabActive{background-position:-168px top;}.jxBarLeft a.jxTabActive span.jxTabContent,.jxBarRight a.jxTabActive span.jxTabContent{background-position:-168px bottom;}.jxBarContainer{display:block;position:relative;z-index:1;margin:0;padding:0;border:0;background-color:#f0f0f0;}.jxBarTop,.jxBarBottom{width:100%;height:auto;background-image:url(../images/delicious/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxTabBox .jxBarTop{background-image:url(../images/delicious/tabbar_bg.png);background-position:0 bottom;}.jxTabBox .jxBarBottom ul.jxTabBar{background-image:url(../images/delicious/tabbar_bottom_bg.png);background-position:0 top;}.jxBarLeft,.jxBarRight{width:auto;height:100%;background-image:url(../images/delicious/toolbar_bg.png);background-repeat:repeat-x;background-position:0 0;}.jxTabBox .jxBarLeft{background-image:url(../images/delicious/tabbar_left_bg.png);background-repeat:repeat-y;background-position:right 0;}.jxTabBox .jxBarRight{background-image:url(../images/delicious/tabbar_right_bg.png);background-repeat:repeat-y;background-position:left 0;}ul.jxToolbar,ul.jxTabBar{display:block;position:relative;float:left;list-style-type:none;margin:0;padding:0;border:none;}li.jxToolItem{display:block;position:relative;float:left;font-size:0;line-height:0;padding:0;margin:0;border:none;}li.jxToolItem .separator{display:block;position:relative;float:left;font-size:0;line-height:0;border:0;margin:0;padding:4px;background-repeat:no-repeat;background-position:center center;}.jxBarTop li.jxToolItem span.separator,.jxBarBottom li.jxToolItem span.separator{width:8px;height:20px;background-image:url(../images/delicious/toolbar_separator_h.png);}.jxBarLeft li.jxToolItem span.separator,.jxBarRight li.jxToolItem span.separator{width:20px;height:8px;background-image:url(../images/delicious/toolbar_separator_v.png);}.jxBarLeft ul.jxToolbar,.jxBarLeft ul.jxTabBar,.jxBarLeft li.jxToolItem,.jxBarRight ul.jxToolbar,.jxBarRight ul.jxTabBar,.jxBarRight li.jxToolItem{clear:both;}.jxTree,.jxTreeRoot{position:relative;display:block;list-style:none;margin:0;padding:0;}.jxTreeNest{list-style:none;margin:0;padding:0;background-repeat:repeat-y;background-position:left top;}.jxTree li,.jxTreeRoot li{position:relative;display:block;margin:0;padding:0;background-repeat:no-repeat;background-position:left top;white-space:nowrap;width:100%;font-size:0;line-height:0;}.jxTree li{margin-left:16px;}.jxTree li.jxDisabled,.jxTreeRoot li.jxDisabled{opacity:.4;-moz-opacity:.4;filter:Alpha(opacity=40);}.jxTree a,.jxTreeRoot a{position:relative;display:block;margin:0 0 0 14px;padding:0 0 0 20px;z-index:0;font-family:Arial,Helvetica,sans-serif;font-size:11px;color:#000;text-decoration:none;line-height:20px;height:20px;}.jxTree a:hover,.jxTreeRoot a:hover{background-image:url(../images/delicious/tree_bg.png);background-color:#CDE5FF;background-repeat:repeat-x;background-position:0 0;}.jxTreeNest{background-image:url(../images/delicious/tree_vert_line.png);}.jxTreeImage,.jxTreeIcon{position:absolute;display:inline;left:0;top:0;width:16px;height:20px;z-index:1;background-image:url(../images/delicious/tree.png);background-repeat:no-repeat;border:0;margin:0;}.jxTreeIcon{left:2px;}.jxTreeBranchOpen .jxTreeIcon,.jxTreeBranchLastOpen .jxTreeIcon{background-position:left -40px;}.jxTreeBranchOpen .jxTreeImage{background-position:left -100px;}.jxTreeBranchLastOpen .jxTreeImage{background-position:left -160px;}.jxTreeBranchClosed .jxTreeIcon,.jxTreeBranchLastClosed .jxTreeIcon{background-position:left -20px;}.jxTreeBranchClosed .jxTreeImage{background-position:left -80px;}.jxTreeBranchLastClosed .jxTreeImage{background-position:left -140px;}.jxTreeItem .jxTreeIcon,.jxTreeItemLast .jxTreeIcon{background-position:left 0;}.jxTreeItem .jxTreeImage{background-position:left -60px;}.jxTreeItemLast .jxTreeImage{background-position:left -120px;}.jxTreeItemSelected{background-color:#AFD4FA;font-weight:bold;}.jxTreeItem a,.jxTreeItem img,.jxTreeItem input,.jxTreeItemLast a,.jxTreeItemLast img,.jxTreeItemLast input,.jxTreeBranch a,.jxTreeBranch img,.jxTreeBranch input,.jxTreeBranchLast a,.jxTreeBranchLast img,.jxTreeBranchLast input{vertical-align:middle;}
\ No newline at end of file

Modified: sandbox/jx2/widgets/Navigator.js
===================================================================
--- sandbox/jx2/widgets/Navigator.js	2008-09-09 20:52:42 UTC (rev 1508)
+++ sandbox/jx2/widgets/Navigator.js	2008-09-09 21:17:25 UTC (rev 1509)
@@ -119,7 +119,7 @@
         sliderDiv.style.top = '44px';
         sliderDiv.style.left = '0px';
         sliderDiv.style.width = '51px';
-        sliderDiv.style.height = '88px';
+        sliderDiv.style.height = '85px';
         this.domObj.appendChild(sliderDiv);
 
         var sliderHandle = document.createElement('img');
@@ -150,27 +150,20 @@
         var checkPosition = OpenLayers.Function.bind(this.checkPosition, this);
 
         //set up the navigator as draggable
-        //new Draggable(this.domObj, {handle: handleDiv, starteffect: false, endeffect: false});
-        //this observer pins the navigator to the top right after a drag so
-        //that it moves if the window is resized
-        var observer = {
-            element: this.domObj,
-            onStart: function() { },
-            onEnd: checkPosition
-        };
-        //this should position the nav tool by the right rather than the left,
-        //but it is broken in IE
-        //Draggables.addObserver(observer);
+        new Drag(this.domObj, {
+            handle: handleDiv,
+            onComplete: checkPosition,
+            preventDefault: true
+        });
 
-        var options = {};
-        options.axis = 'vertical';
-        options.range = {}; //$R(1, 91);
-        options.sliderValue = 91;
-        options.onChange = OpenLayers.Function.bind(this.scaleChanged, this);
-        //this.slider = new Control.Slider(sliderHandle,sliderDiv, options);
-        //this.slider.setDisabled();
+        this.slider = new Slider(sliderDiv, sliderHandle, {
+            mode: 'vertical',
+            steps: 85,
+            onComplete: OpenLayers.Function.bind(this.scaleChanged, this)
+        });
+
         this.getMap().registerForEvent(Fusion.Event.MAP_LOADED, OpenLayers.Function.bind(this.updateSlider, this));
-        this.getMap().registerForEvent(Fusion.Event.MAP_RESIZED, OpenLayers.Function.bind(this.checkPosition, this));
+        this.getMap().registerForEvent(Fusion.Event.MAP_RESIZED, checkPosition);
         this.getMap().registerForEvent(Fusion.Event.MAP_EXTENTS_CHANGED, OpenLayers.Function.bind(this.updateValue, this));
         this.getMap().registerForEvent(Fusion.Event.MAP_BUSY_CHANGED, OpenLayers.Function.bind(this.busyChanged, this));
     },



More information about the fusion-commits mailing list