/* See <http://mochikit.com/> for documentation, downloads, license, etc.
(c) 2005 Bob Ippolito.  All rights Reserved. */
if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Color");dojo.require("MochiKit.Base");dojo.require("MochiKit.DOM");dojo.require("MochiKit.Style")}if(typeof (JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.DOM",[]);JSAN.use("MochiKit.Style",[])}try{if(typeof (MochiKit.Base)=="undefined"){throw""}}catch(e){throw"MochiKit.Color depends on MochiKit.Base"}try{if(typeof (MochiKit.DOM)=="undefined"){throw""}}catch(e){throw"MochiKit.Color depends on MochiKit.DOM"}try{if(typeof (MochiKit.Style)=="undefined"){throw""}}catch(e){throw"MochiKit.Color depends on MochiKit.Style"}if(typeof (MochiKit.Color)=="undefined"){MochiKit.Color={}}MochiKit.Color.NAME="MochiKit.Color";MochiKit.Color.VERSION="1.4";MochiKit.Color.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Color.toString=function(){return this.__repr__()};MochiKit.Color.Color=function(D,B,A,C){if(typeof (C)=="undefined"||C===null){C=1}this.rgb={r:D,g:B,b:A,a:C}};MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(C){var B=this.rgb;var A=MochiKit.Color;return A.Color.fromRGB(B.r,B.g,B.b,C)},colorWithHue:function(C){var B=this.asHSL();B.h=C;var A=MochiKit.Color;return A.Color.fromHSL(B)},colorWithSaturation:function(C){var B=this.asHSL();B.s=C;var A=MochiKit.Color;return A.Color.fromHSL(B)},colorWithLightness:function(C){var B=this.asHSL();B.l=C;var A=MochiKit.Color;return A.Color.fromHSL(B)},darkerColorWithLevel:function(C){var B=this.asHSL();B.l=Math.max(B.l-C,0);var A=MochiKit.Color;return A.Color.fromHSL(B)},lighterColorWithLevel:function(C){var B=this.asHSL();B.l=Math.min(B.l+C,1);var A=MochiKit.Color;return A.Color.fromHSL(B)},blendedColor:function(A,C){if(typeof (C)=="undefined"||C===null){C=0.5}var D=1-C;var B=this.rgb;var F=A.rgb;var E=C;return MochiKit.Color.Color.fromRGB((B.r*D)+(F.r*E),(B.g*D)+(F.g*E),(B.b*D)+(F.b*E),(B.a*D)+(F.a*E))},compareRGB:function(B){var C=this.asRGB();var A=B.asRGB();return MochiKit.Base.compare([C.r,C.g,C.b,C.a],[A.r,A.g,A.b,A.a])},isLight:function(){return this.asHSL().b>0.5},isDark:function(){return(!this.isLight())},toHSLString:function(){var E=this.asHSL();var D=MochiKit.Color.clampColorComponent;var C=this._hslString;if(!C){var B=(D(E.h,360).toFixed(0)+","+D(E.s,100).toPrecision(4)+"%,"+D(E.l,100).toPrecision(4)+"%");var A=E.a;if(A>=1){A=1;C="hsl("+B+")"}else{if(A<=0){A=0}C="hsla("+B+","+A+")"}this._hslString=C}return C},toRGBString:function(){var D=this.rgb;var C=MochiKit.Color.clampColorComponent;var B=this._rgbString;if(!B){var A=(C(D.r,255).toFixed(0)+","+C(D.g,255).toFixed(0)+","+C(D.b,255).toFixed(0));if(D.a!=1){B="rgba("+A+","+D.a+")"}else{B="rgb("+A+")"}this._rgbString=B}return B},asRGB:function(){return MochiKit.Base.clone(this.rgb)},toHexString:function(){var A=MochiKit.Color;var D=this.rgb;var C=MochiKit.Color.clampColorComponent;var B=this._hexString;if(!B){B=("#"+A.toColorPart(C(D.r,255))+A.toColorPart(C(D.g,255))+A.toColorPart(C(D.b,255)));this._hexString=B}return B},asHSV:function(){var A=this.hsv;var B=this.rgb;if(typeof (A)=="undefined"||A===null){A=MochiKit.Color.rgbToHSV(this.rgb);this.hsv=A}return MochiKit.Base.clone(A)},asHSL:function(){var A=this.hsl;var B=this.rgb;if(typeof (A)=="undefined"||A===null){A=MochiKit.Color.rgbToHSL(this.rgb);this.hsl=A}return MochiKit.Base.clone(A)},toString:function(){return this.toRGBString()},repr:function(){var B=this.rgb;var A=[B.r,B.g,B.b,B.a];return this.__class__.NAME+"("+A.join(", ")+")"}};MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(F,C,A,E){var D=MochiKit.Color.Color;if(arguments.length==1){var B=F;F=B.r;C=B.g;A=B.b;if(typeof (B.a)=="undefined"){E=undefined}else{E=B.a}}return new D(F,C,A,E)},fromHSL:function(B,C,E,D){var A=MochiKit.Color;return A.Color.fromRGB(A.hslToRGB.apply(A,arguments))},fromHSV:function(B,C,D,E){var A=MochiKit.Color;return A.Color.fromRGB(A.hsvToRGB.apply(A,arguments))},fromName:function(A){var C=MochiKit.Color.Color;if(A.charAt(0)=='"'){A=A.substr(1,A.length-2)}var B=C._namedColors[A.toLowerCase()];if(typeof (B)=="string"){return C.fromHexString(B)}else{if(A=="transparent"){return C.transparentColor()}}return null},fromString:function(A){var B=MochiKit.Color.Color;var C=A.substr(0,3);if(C=="rgb"){return B.fromRGBString(A)}else{if(C=="hsl"){return B.fromHSLString(A)}else{if(A.charAt(0)=="#"){return B.fromHexString(A)}}}return B.fromName(A)},fromHexString:function(B){if(B.charAt(0)=="#"){B=B.substring(1)}var D=[];var A,C;if(B.length==3){for(A=0;A<3;A++){C=B.substr(A,1);D.push(parseInt(C+C,16)/255)}}else{for(A=0;A<6;A+=2){C=B.substr(A,2);D.push(parseInt(C,16)/255)}}var E=MochiKit.Color.Color;return E.fromRGB.apply(E,D)},_fromColorString:function(F,B,I,J){if(J.indexOf(F)===0){J=J.substring(J.indexOf("(",3)+1,J.length-1)}var C=J.split(/\s*,\s*/);var E=[];for(var G=0;G<C.length;G++){var H=C[G];var D;var A=H.substring(H.length-3);if(H.charAt(H.length-1)=="%"){D=0.01*parseFloat(H.substring(0,H.length-1))}else{if(A=="deg"){D=parseFloat(H)/360}else{if(A=="rad"){D=parseFloat(H)/(Math.PI*2)}else{D=I[G]*parseFloat(H)}}}E.push(D)}return this[B].apply(this,E)},fromComputedStyle:function(E,D){var F=MochiKit.DOM;var A=MochiKit.Color.Color;for(E=F.getElement(E);E;E=E.parentNode){var C=MochiKit.Style.getStyle.apply(F,arguments);if(!C){continue}var B=A.fromString(C);if(!B){break}if(B.asRGB().a>0){return B}}return null},fromBackground:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"backgroundColor","background-color")||A.whiteColor()},fromText:function(B){var A=MochiKit.Color.Color;return A.fromComputedStyle(B,"color","color")||A.blackColor()},namedColors:function(){return MochiKit.Base.clone(MochiKit.Color.Color._namedColors)}});MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(A,B){A*=B;if(A<0){return 0}else{if(A>B){return B}else{return A}}},_hslValue:function(C,B,A){if(A>6){A-=6}else{if(A<0){A+=6}}var D;if(A<1){D=C+(B-C)*A}else{if(A<3){D=B}else{if(A<4){D=C+(B-C)*(4-A)}else{D=C}}}return D},hsvToRGB:function(I,G,K,D){if(arguments.length==1){var H=I;I=H.h;G=H.s;K=H.v;D=H.a}var C;var E;var L;if(G===0){C=K;E=K;L=K}else{var F=Math.floor(I*6);var J=(I*6)-F;var B=K*(1-G);var A=K*(1-(G*J));var M=K*(1-(G*(1-J)));switch(F){case 1:C=A;E=K;L=B;break;case 2:C=B;E=K;L=M;break;case 3:C=B;E=A;L=K;break;case 4:C=M;E=B;L=K;break;case 5:C=K;E=B;L=A;break;case 6:case 0:C=K;E=M;L=B;break}}return{r:C,g:E,b:L,a:D}},hslToRGB:function(F,E,I,B){if(arguments.length==1){var K=F;F=K.h;E=K.s;I=K.l;B=K.a}var A;var C;var H;if(E===0){A=I;C=I;H=I}else{var J;if(I<=0.5){J=I*(1+E)}else{J=I+E-(I*E)}var L=(2*I)-J;var G=MochiKit.Color._hslValue;var D=F*6;A=G(L,J,D+2);C=G(L,J,D);H=G(L,J,D-2)}return{r:A,g:C,b:H,a:B}},rgbToHSV:function(A,C,J,B){if(arguments.length==1){var G=A;A=G.r;C=G.g;J=G.b;B=G.a}var H=Math.max(Math.max(A,C),J);var D=Math.min(Math.min(A,C),J);var F;var E;var I=H;if(D==H){F=0;E=0}else{var K=(H-D);E=K/H;if(A==H){F=(C-J)/K}else{if(C==H){F=2+((J-A)/K)}else{F=4+((A-C)/K)}}F/=6;if(F<0){F+=1}if(F>1){F-=1}}return{h:F,s:E,v:I,a:B}},rgbToHSL:function(A,C,I,B){if(arguments.length==1){var G=A;A=G.r;C=G.g;I=G.b;B=G.a}var H=Math.max(A,Math.max(C,I));var D=Math.min(A,Math.min(C,I));var F;var E;var K=(H+D)/2;var J=H-D;if(J===0){F=0;E=0}else{if(K<=0.5){E=J/(H+D)}else{E=J/(2-H-D)}if(A==H){F=(C-I)/J}else{if(C==H){F=2+((I-A)/J)}else{F=4+((A-C)/J)}}F/=6;if(F<0){F+=1}if(F>1){F-=1}}return{h:F,s:E,l:K,a:B}},toColorPart:function(A){A=Math.round(A);var B=A.toString(16);if(A<16){return"0"+B}return B},__new__:function(){var D=MochiKit.Base;this.Color.fromRGBString=D.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);this.Color.fromHSLString=D.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,0.01,0.01,1]);var H=1/3;var A={black:[0,0,0],blue:[0,0,1],brown:[0.6,0.4,0.2],cyan:[0,1,1],darkGray:[H,H,H],gray:[0.5,0.5,0.5],green:[0,1,0],lightGray:[2*H,2*H,2*H],magenta:[1,0,1],orange:[1,0.5,0],purple:[0.5,0,0.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]};var I=function(L,N,M,J,K){var O=this.fromRGB(N,M,J,K);this[L]=function(){return O};return O};for(var E in A){var B=E+"Color";var F=D.concat([I,this.Color,B],A[E]);this.Color[B]=D.bind.apply(null,F)}var C=function(){for(var J=0;J<arguments.length;J++){if(!(arguments[J] instanceof Color)){return false}}return true};var G=function(K,J){return K.compareRGB(J)};D.nameFunctions(this);D.registerComparator(this.Color.NAME,C,G);this.EXPORT_TAGS={":common":this.EXPORT,":all":D.concat(this.EXPORT,this.EXPORT_OK)}}});MochiKit.Color.EXPORT=["Color"];MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];MochiKit.Color.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Color);MochiKit.Color.Color._namedColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};if(typeof (dojo)!="undefined"){dojo.provide("MochiKit.Visual");dojo.require("MochiKit.Base");dojo.require("MochiKit.DOM");dojo.require("MochiKit.Style");dojo.require("MochiKit.Color");dojo.require("MochiKit.Position")}if(typeof (JSAN)!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.DOM",[]);JSAN.use("MochiKit.Style",[]);JSAN.use("MochiKit.Color",[]);JSAN.use("MochiKit.Position",[])}try{if(typeof (MochiKit.Base)==="undefined"||typeof (MochiKit.DOM)==="undefined"||typeof (MochiKit.Style)==="undefined"||typeof (MochiKit.Position)==="undefined"||typeof (MochiKit.Color)==="undefined"){throw""}}catch(e){throw"MochiKit.Visual depends on MochiKit.Base, MochiKit.DOM, MochiKit.Style, MochiKit.Position and MochiKit.Color!"}if(typeof (MochiKit.Visual)=="undefined"){MochiKit.Visual={}}MochiKit.Visual.NAME="MochiKit.Visual";MochiKit.Visual.VERSION="1.4";MochiKit.Visual.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Visual.toString=function(){return this.__repr__()};MochiKit.Visual._RoundCorners=function(E,B){E=MochiKit.DOM.getElement(E);this._setOptions(B);if(this.options.__unstable__wrapElement){E=this._doWrap(E)}var A=this.options.color;var F=MochiKit.Color.Color;if(this.options.color==="fromElement"){A=F.fromBackground(E)}else{if(!(A instanceof F)){A=F.fromString(A)}}this.isTransparent=(A.asRGB().a<=0);var D=this.options.bgColor;if(this.options.bgColor==="fromParent"){D=F.fromBackground(E.offsetParent)}else{if(!(D instanceof F)){D=F.fromString(D)}}this._roundCornersImpl(E,A,D)};MochiKit.Visual._RoundCorners.prototype={_doWrap:function(D){var B=D.parentNode;var C=MochiKit.DOM.currentDocument();if(typeof (C.defaultView)==="undefined"||C.defaultView===null){return D}var A=C.defaultView.getComputedStyle(D,null);if(typeof (A)==="undefined"||A===null){return D}var E=MochiKit.DOM.DIV({style:{display:"block",marginTop:A.getPropertyValue("padding-top"),marginRight:A.getPropertyValue("padding-right"),marginBottom:A.getPropertyValue("padding-bottom"),marginLeft:A.getPropertyValue("padding-left"),padding:"0px"}});E.innerHTML=D.innerHTML;D.innerHTML="";D.appendChild(E);return D},_roundCornersImpl:function(C,A,B){if(this.options.border){this._renderBorder(C,B)}if(this._isTopRounded()){this._roundTopCorners(C,A,B)}if(this._isBottomRounded()){this._roundBottomCorners(C,A,B)}},_renderBorder:function(D,E){var B="1px solid "+this._borderColor(E);var A="border-left: "+B;var F="border-right: "+B;var C="style='"+A+";"+F+"'";D.innerHTML="<div "+C+">"+D.innerHTML+"</div>"},_roundTopCorners:function(C,A,E){var D=this._createCorner(E);for(var B=0;B<this.options.numSlices;B++){D.appendChild(this._createCornerSlice(A,E,B,"top"))}C.style.paddingTop=0;C.insertBefore(D,C.firstChild)},_roundBottomCorners:function(C,A,E){var D=this._createCorner(E);for(var B=(this.options.numSlices-1);B>=0;B--){D.appendChild(this._createCornerSlice(A,E,B,"bottom"))}C.style.paddingBottom=0;C.appendChild(D)},_createCorner:function(A){var B=MochiKit.DOM;return B.DIV({style:{backgroundColor:A.toString()}})},_createCornerSlice:function(C,D,G,A){var E=MochiKit.DOM.SPAN();var B=E.style;B.backgroundColor=C.toString();B.display="block";B.height="1px";B.overflow="hidden";B.fontSize="1px";var F=this._borderColor(C,D);if(this.options.border&&G===0){B.borderTopStyle="solid";B.borderTopWidth="1px";B.borderLeftWidth="0px";B.borderRightWidth="0px";B.borderBottomWidth="0px";B.height="0px";B.borderColor=F.toString()}else{if(F){B.borderColor=F.toString();B.borderStyle="solid";B.borderWidth="0px 1px"}}if(!this.options.compact&&(G==(this.options.numSlices-1))){B.height="2px"}this._setMargin(E,G,A);this._setBorder(E,G,A);return E},_setOptions:function(A){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false,__unstable__wrapElement:false};MochiKit.Base.update(this.options,A);this.options.numSlices=(this.options.compact?2:4)},_whichSideTop:function(){var A=this.options.corners;if(this._hasString(A,"all","top")){return""}var C=(A.indexOf("tl")!=-1);var B=(A.indexOf("tr")!=-1);if(C&&B){return""}if(C){return"left"}if(B){return"right"}return""},_whichSideBottom:function(){var B=this.options.corners;if(this._hasString(B,"all","bottom")){return""}var C=(B.indexOf("bl")!=-1);var A=(B.indexOf("br")!=-1);if(C&&A){return""}if(C){return"left"}if(A){return"right"}return""},_borderColor:function(A,B){if(A=="transparent"){return B}else{if(this.options.border){return this.options.border}else{if(this.options.blend){return B.blendedColor(A)}}}return""},_setMargin:function(E,F,B){var C=this._marginSize(F)+"px";var A=(B=="top"?this._whichSideTop():this._whichSideBottom());var D=E.style;if(A=="left"){D.marginLeft=C;D.marginRight="0px"}else{if(A=="right"){D.marginRight=C;D.marginLeft="0px"}else{D.marginLeft=C;D.marginRight=C}}},_setBorder:function(E,F,B){var C=this._borderSize(F)+"px";var A=(B=="top"?this._whichSideTop():this._whichSideBottom());var D=E.style;if(A=="left"){D.borderLeftWidth=C;D.borderRightWidth="0px"}else{if(A=="right"){D.borderRightWidth=C;D.borderLeftWidth="0px"}else{D.borderLeftWidth=C;D.borderRightWidth=C}}},_marginSize:function(F){if(this.isTransparent){return 0}var E=this.options;if(E.compact&&E.blend){var B=[1,0];return B[F]}else{if(E.compact){var D=[2,1];return D[F]}else{if(E.blend){var A=[3,2,1,0];return A[F]}else{var C=[5,3,2,1];return C[F]}}}},_borderSize:function(C){var B=this.options;var A;if(B.compact&&(B.blend||this.isTransparent)){return 1}else{if(B.compact){A=[1,0]}else{if(B.blend){A=[2,1,1,1]}else{if(B.border){A=[0,2,0,0]}else{if(this.isTransparent){A=[5,3,2,1]}else{return 0}}}}}return A[C]},_hasString:function(B){for(var A=1;A<arguments.length;A++){if(B.indexOf(arguments[A])!=-1){return true}}return false},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr")},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br")},_hasSingleTextChild:function(A){return(A.childNodes.length==1&&A.childNodes[0].nodeType==3)}};MochiKit.Visual.roundElement=function(B,A){new MochiKit.Visual._RoundCorners(B,A)};MochiKit.Visual.roundClass=function(C,D,A){var E=MochiKit.DOM.getElementsByTagAndClassName(C,D);for(var B=0;B<E.length;B++){MochiKit.Visual.roundElement(E[B],A)}};MochiKit.Visual.tagifyText=function(A,B){B=B||"position:relative";if(/MSIE/.test(navigator.userAgent)){B+=";zoom:1"}A=MochiKit.DOM.getElement(A);var C=MochiKit.Base.map;C(function(D){if(D.nodeType==3){C(function(E){A.insertBefore(MochiKit.DOM.SPAN({style:B},E==" "?String.fromCharCode(160):E),D)},D.nodeValue.split(""));MochiKit.DOM.removeElement(D)}},A.childNodes)};MochiKit.Visual.forceRerendering=function(A){try{A=MochiKit.DOM.getElement(A);var C=document.createTextNode(" ");A.appendChild(C);A.removeChild(C)}catch(B){}};MochiKit.Visual.multiple=function(E,C,B){B=MochiKit.Base.update({speed:0.1,delay:0},B);var D=B.delay;var A=0;MochiKit.Base.map(function(F){B.delay=A*B.speed+D;new C(F,B);A+=1},E)};MochiKit.Visual.PAIRS={slide:["slideDown","slideUp"],blind:["blindDown","blindUp"],appear:["appear","fade"],size:["grow","shrink"]};MochiKit.Visual.toggle=function(C,D,B){C=MochiKit.DOM.getElement(C);D=(D||"appear").toLowerCase();B=MochiKit.Base.update({queue:{position:"end",scope:(C.id||"global"),limit:1}},B);var A=MochiKit.Visual;A[MochiKit.Style.getStyle(C,"display")!="none"?A.PAIRS[D][1]:A.PAIRS[D][0]](C,B)};MochiKit.Visual.Transitions={};MochiKit.Visual.Transitions.linear=function(A){return A};MochiKit.Visual.Transitions.sinoidal=function(A){return(-Math.cos(A*Math.PI)/2)+0.5};MochiKit.Visual.Transitions.reverse=function(A){return 1-A};MochiKit.Visual.Transitions.flicker=function(A){return((-Math.cos(A*Math.PI)/4)+0.75)+Math.random()/4};MochiKit.Visual.Transitions.wobble=function(A){return(-Math.cos(A*Math.PI*(9*A))/2)+0.5};MochiKit.Visual.Transitions.pulse=function(B,A){if(!A){return(Math.floor(B*10)%2===0?(B*10-Math.floor(B*10)):1-(B*10-Math.floor(B*10)))}return(Math.round((B%(1/A))*A)==0?((B*A*2)-Math.floor(B*A*2)):1-((B*A*2)-Math.floor(B*A*2)))};MochiKit.Visual.Transitions.none=function(A){return 0};MochiKit.Visual.Transitions.full=function(A){return 1};MochiKit.Visual.ScopedQueue=function(){var A=arguments.callee;if(!(this instanceof A)){return new A()}this.__init__()};MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype,{__init__:function(){this.effects=[];this.interval=null},add:function(C){var D=new Date().getTime();var A=(typeof (C.options.queue)=="string")?C.options.queue:C.options.queue.position;var E=MochiKit.Base.map;switch(A){case"front":E(function(F){if(F.state=="idle"){F.startOn+=C.finishOn;F.finishOn+=C.finishOn}},this.effects);break;case"end":var B;E(function(G){var F=G.finishOn;if(F>=(B||F)){B=F}},this.effects);D=B||D;break;case"break":E(function(F){F.finalize()},this.effects);break}C.startOn+=D;C.finishOn+=D;if(!C.options.queue.limit||this.effects.length<C.options.queue.limit){this.effects.push(C)}if(!this.interval){this.interval=this.startLoop(MochiKit.Base.bind(this.loop,this),40)}},startLoop:function(B,A){return setInterval(B,A)},remove:function(A){this.effects=MochiKit.Base.filter(function(B){return B!=A},this.effects);if(!this.effects.length){this.stopLoop(this.interval);this.interval=null}},stopLoop:function(A){clearInterval(A)},loop:function(){var A=new Date().getTime();MochiKit.Base.map(function(B){B.loop(A)},this.effects)}});MochiKit.Visual.Queues={instances:{},get:function(A){if(typeof (A)!="string"){return A}if(!this.instances[A]){this.instances[A]=new MochiKit.Visual.ScopedQueue()}return this.instances[A]}};MochiKit.Visual.Queue=MochiKit.Visual.Queues.get("global");MochiKit.Visual.DefaultOptions={transition:MochiKit.Visual.Transitions.sinoidal,duration:1,fps:25,sync:false,from:0,to:1,delay:0,queue:"parallel"};MochiKit.Visual.Base=function(){};MochiKit.Visual.Base.prototype={__class__:MochiKit.Visual.Base,start:function(B){var A=MochiKit.Visual;this.options=MochiKit.Base.setdefault(B,A.DefaultOptions);this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.event("beforeStart");if(!this.options.sync){A.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).add(this)}},loop:function(C){if(C>=this.startOn){if(C>=this.finishOn){return this.finalize()}var B=(C-this.startOn)/(this.finishOn-this.startOn);var A=Math.round(B*this.options.fps*this.options.duration);if(A>this.currentFrame){this.render(B);this.currentFrame=A}}},render:function(A){if(this.state=="idle"){this.state="running";this.event("beforeSetup");this.setup();this.event("afterSetup")}if(this.state=="running"){if(this.options.transition){A=this.options.transition(A)}A*=(this.options.to-this.options.from);A+=this.options.from;this.event("beforeUpdate");this.update(A);this.event("afterUpdate")}},cancel:function(){if(!this.options.sync){MochiKit.Visual.Queues.get(typeof (this.options.queue)=="string"?"global":this.options.queue.scope).remove(this)}this.state="finished"},finalize:function(){this.render(1);this.cancel();this.event("beforeFinish");this.finish();this.event("afterFinish")},setup:function(){},finish:function(){},update:function(A){},event:function(A){if(this.options[A+"Internal"]){this.options[A+"Internal"](this)}if(this.options[A]){this.options[A](this)}},repr:function(){return"["+this.__class__.NAME+", options:"+MochiKit.Base.repr(this.options)+"]"}};MochiKit.Visual.Parallel=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Parallel.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Parallel.prototype,{__class__:MochiKit.Visual.Parallel,__init__:function(B,A){this.effects=B||[];this.start(A)},update:function(A){MochiKit.Base.map(function(B){B.render(A)},this.effects)},finish:function(){MochiKit.Base.map(function(A){A.finalize()},this.effects)}});MochiKit.Visual.Opacity=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Opacity.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Opacity.prototype,{__class__:MochiKit.Visual.Opacity,__init__:function(C,B){var A=MochiKit.Base;var D=MochiKit.Style;this.element=MochiKit.DOM.getElement(C);if(this.element.currentStyle&&(!this.element.currentStyle.hasLayout)){D.setStyle(this.element,{zoom:1})}B=A.update({from:D.getStyle(this.element,"opacity")||0,to:1},B);this.start(B)},update:function(A){MochiKit.Style.setStyle(this.element,{opacity:A})}});MochiKit.Visual.Move=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Move.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Move.prototype,{__class__:MochiKit.Visual.Move,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({x:0,y:0,mode:"relative"},A);this.start(A)},setup:function(){MochiKit.DOM.makePositioned(this.element);var B=this.element.style;var C=B.visibility;var A=B.display;if(A=="none"){B.visibility="hidden";B.display=""}this.originalLeft=parseFloat(MochiKit.Style.getStyle(this.element,"left")||"0");this.originalTop=parseFloat(MochiKit.Style.getStyle(this.element,"top")||"0");if(this.options.mode=="absolute"){this.options.x-=this.originalLeft;this.options.y-=this.originalTop}if(A=="none"){B.visibility=C;B.display=A}},update:function(A){MochiKit.Style.setStyle(this.element,{left:Math.round(this.options.x*A+this.originalLeft)+"px",top:Math.round(this.options.y*A+this.originalTop)+"px"})}});MochiKit.Visual.Scale=function(C,D,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,D,B)}this.__init__(C,D,B)};MochiKit.Visual.Scale.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Scale.prototype,{__class__:MochiKit.Visual.Scale,__init__:function(B,C,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:C},A);this.start(A)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=MochiKit.Style.getStyle(this.element,"position");var C=MochiKit.Base.map;var A=MochiKit.Base.bind;this.originalStyle={};C(A(function(D){this.originalStyle[D]=this.element.style[D]},this),["top","left","width","height","fontSize"]);this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var B=MochiKit.Style.getStyle(this.element,"font-size")||"100%";C(A(function(D){if(B.indexOf(D)>0){this.fontSize=parseFloat(B);this.fontSizeType=D}},this),["em","px","%"]);this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]}else{if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]}else{this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]}}},update:function(A){var B=(this.options.scaleFrom/100)+(this.factor*A);if(this.options.scaleContent&&this.fontSize){MochiKit.Style.setStyle(this.element,{fontSize:this.fontSize*B+this.fontSizeType})}this.setDimensions(this.dims[0]*B,this.dims[1]*B)},finish:function(){if(this.restoreAfterFinish){MochiKit.Style.setStyle(this.element,this.originalStyle)}},setDimensions:function(A,D){var F={};var E=Math.round;if(/MSIE/.test(navigator.userAgent)){E=Math.ceil}if(this.options.scaleX){F.width=E(D)+"px"}if(this.options.scaleY){F.height=E(A)+"px"}if(this.options.scaleFromCenter){var C=(A-this.dims[0])/2;var B=(D-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){F.top=this.originalTop-C+"px"}if(this.options.scaleX){F.left=this.originalLeft-B+"px"}}else{if(this.options.scaleY){F.top=-C+"px"}if(this.options.scaleX){F.left=-B+"px"}}}MochiKit.Style.setStyle(this.element,F)}});MochiKit.Visual.Highlight=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Highlight.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Highlight.prototype,{__class__:MochiKit.Visual.Highlight,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);A=MochiKit.Base.update({startcolor:"#ffff99"},A);this.start(A)},setup:function(){var A=MochiKit.Base;var B=MochiKit.Style;if(B.getStyle(this.element,"display")=="none"){this.cancel();return }this.oldStyle={backgroundImage:B.getStyle(this.element,"background-image")};B.setStyle(this.element,{backgroundImage:"none"});if(!this.options.endcolor){this.options.endcolor=MochiKit.Color.Color.fromBackground(this.element).toHexString()}if(A.isUndefinedOrNull(this.options.restorecolor)){this.options.restorecolor=B.getStyle(this.element,"background-color")}this._base=A.map(A.bind(function(C){return parseInt(this.options.startcolor.slice(C*2+1,C*2+3),16)},this),[0,1,2]);this._delta=A.map(A.bind(function(C){return parseInt(this.options.endcolor.slice(C*2+1,C*2+3),16)-this._base[C]},this),[0,1,2])},update:function(B){var A="#";MochiKit.Base.map(MochiKit.Base.bind(function(C){A+=MochiKit.Color.toColorPart(Math.round(this._base[C]+this._delta[C]*B))},this),[0,1,2]);MochiKit.Style.setStyle(this.element,{backgroundColor:A})},finish:function(){MochiKit.Style.setStyle(this.element,MochiKit.Base.update(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});MochiKit.Visual.ScrollTo=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.ScrollTo.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.ScrollTo.prototype,{__class__:MochiKit.Visual.ScrollTo,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);this.start(A)},setup:function(){var C=MochiKit.Position;C.prepare();var B=C.cumulativeOffset(this.element);if(this.options.offset){B.y+=this.options.offset}var A;if(window.innerHeight){A=window.innerHeight-window.height}else{if(document.documentElement&&document.documentElement.clientHeight){A=document.documentElement.clientHeight-document.body.scrollHeight}else{if(document.body){A=document.body.clientHeight-document.body.scrollHeight}}}this.scrollStart=C.windowOffset.y;this.delta=(B.y>A?A:B.y)-this.scrollStart},update:function(A){var B=MochiKit.Position;B.prepare();window.scrollTo(B.windowOffset.x,this.scrollStart+(A*this.delta))}});MochiKit.Visual.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;MochiKit.Visual.Morph=function(C,B){var A=arguments.callee;if(!(this instanceof A)){return new A(C,B)}this.__init__(C,B)};MochiKit.Visual.Morph.prototype=new MochiKit.Visual.Base();MochiKit.Base.update(MochiKit.Visual.Morph.prototype,{__class__:MochiKit.Visual.Morph,__init__:function(B,A){this.element=MochiKit.DOM.getElement(B);this.start(A)},setup:function(){var A=MochiKit.Base;var C=this.options.style;this.styleStart={};this.styleEnd={};this.units={};var F,E;for(var B in C){F=C[B];B=A.camelize(B);if(MochiKit.Visual.CSS_LENGTH.test(F)){var D=F.match(/^([\+\-]?[0-9\.]+)(.*)$/);F=parseFloat(D[1]);E=(D.length==3)?D[2]:null;this.styleEnd[B]=F;this.units[B]=E;F=MochiKit.Style.getStyle(this.element,B);D=F.match(/^([\+\-]?[0-9\.]+)(.*)$/);F=parseFloat(D[1]);this.styleStart[B]=F}else{var G=MochiKit.Color.Color;F=G.fromString(F);if(F){this.units[B]="color";this.styleEnd[B]=F.toHexString();F=MochiKit.Style.getStyle(this.element,B);this.styleStart[B]=G.fromString(F).toHexString();this.styleStart[B]=A.map(A.bind(function(H){return parseInt(this.styleStart[B].slice(H*2+1,H*2+3),16)},this),[0,1,2]);this.styleEnd[B]=A.map(A.bind(function(H){return parseInt(this.styleEnd[B].slice(H*2+1,H*2+3),16)},this),[0,1,2])}}}},update:function(B){var E;for(var D in this.styleStart){if(this.units[D]=="color"){var A="#";var F=this.styleStart[D];var C=this.styleEnd[D];MochiKit.Base.map(MochiKit.Base.bind(function(G){A+=MochiKit.Color.toColorPart(Math.round(F[G]+(C[G]-F[G])*B))},this),[0,1,2]);this.element.style[D]=A}else{E=this.styleStart[D]+Math.round((this.styleEnd[D]-this.styleStart[D])*B*1000)/1000+this.units[D];this.element.style[D]=E}}}});MochiKit.Visual.fade=function(C,B){var D=MochiKit.Style;var A=D.getStyle(C,"opacity");B=MochiKit.Base.update({from:D.getStyle(C,"opacity")||1,to:0,afterFinishInternal:function(E){if(E.options.to!==0){return }D.hideElement(E.element);D.setStyle(E.element,{opacity:A})}},B);return new MochiKit.Visual.Opacity(C,B)};MochiKit.Visual.appear=function(C,B){var D=MochiKit.Style;var A=MochiKit.Visual;B=MochiKit.Base.update({from:(D.getStyle(C,"display")=="none"?0:D.getStyle(C,"opacity")||0),to:1,afterFinishInternal:function(E){A.forceRerendering(E.element)},beforeSetupInternal:function(E){D.setStyle(E.element,{opacity:E.options.from});D.showElement(E.element)}},B);return new A.Opacity(C,B)};MochiKit.Visual.puff=function(D,C){var E=MochiKit.Style;var B=MochiKit.Visual;D=MochiKit.DOM.getElement(D);var A={position:E.getStyle(D,"position"),top:D.style.top,left:D.style.left,width:D.style.width,height:D.style.height,opacity:E.getStyle(D,"opacity")};C=MochiKit.Base.update({beforeSetupInternal:function(F){MochiKit.Position.absolutize(F.effects[0].element)},afterFinishInternal:function(F){E.hideElement(F.effects[0].element);E.setStyle(F.effects[0].element,A)},scaleContent:true,scaleFromCenter:true},C);return new B.Parallel([new B.Scale(D,200,{sync:true,scaleFromCenter:C.scaleFromCenter,scaleContent:C.scaleContent,restoreAfterFinish:true}),new B.Opacity(D,{sync:true,to:0})],C)};MochiKit.Visual.blindUp=function(B,A){var C=MochiKit.DOM;B=C.getElement(B);var D=C.makeClipping(B);A=MochiKit.Base.update({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(E){MochiKit.Style.hideElement(E.element);C.undoClipping(E.element,D)}},A);return new MochiKit.Visual.Scale(B,0,A)};MochiKit.Visual.blindDown=function(C,B){var E=MochiKit.DOM;var D=MochiKit.Style;C=E.getElement(C);var A=D.getElementDimensions(C);var F;B=MochiKit.Base.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:A.h,originalWidth:A.w},restoreAfterFinish:true,afterSetupInternal:function(G){F=E.makeClipping(G.element);D.setStyle(G.element,{height:"0px"});D.showElement(G.element)},afterFinishInternal:function(G){E.undoClipping(G.element,F)}},B);return new MochiKit.Visual.Scale(C,100,B)};MochiKit.Visual.switchOff=function(D,C){var E=MochiKit.DOM;D=E.getElement(D);var B=MochiKit.Style.getStyle(D,"opacity");var F;C=MochiKit.Base.update({duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetupInternal:function(G){E.makePositioned(G.element);F=E.makeClipping(G.element)},afterFinishInternal:function(G){MochiKit.Style.hideElement(G.element);E.undoClipping(G.element,F);E.undoPositioned(G.element);MochiKit.Style.setStyle(G.element,{opacity:B})}},C);var A=MochiKit.Visual;return new A.appear(D,{duration:0.4,from:0,transition:A.Transitions.flicker,afterFinishInternal:function(G){new A.Scale(G.element,1,C)}})};MochiKit.Visual.dropOut=function(D,C){var F=MochiKit.DOM;var E=MochiKit.Style;D=F.getElement(D);var A={top:E.getStyle(D,"top"),left:E.getStyle(D,"left"),opacity:E.getStyle(D,"opacity")};C=MochiKit.Base.update({duration:0.5,distance:100,beforeSetupInternal:function(G){F.makePositioned(G.effects[0].element)},afterFinishInternal:function(G){E.hideElement(G.effects[0].element);F.undoPositioned(G.effects[0].element);E.setStyle(G.effects[0].element,A)}},C);var B=MochiKit.Visual;return new B.Parallel([new B.Move(D,{x:0,y:C.distance,sync:true}),new B.Opacity(D,{sync:true,to:0})],C)};MochiKit.Visual.shake=function(D,C){var F=MochiKit.DOM;var B=MochiKit.Visual;var E=MochiKit.Style;D=F.getElement(D);C=MochiKit.Base.update({x:-20,y:0,duration:0.05,afterFinishInternal:function(G){F.undoPositioned(G.element);E.setStyle(G.element,A)}},C);var A={top:E.getStyle(D,"top"),left:E.getStyle(D,"left")};return new B.Move(D,{x:20,y:0,duration:0.05,afterFinishInternal:function(G){new B.Move(G.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(H){new B.Move(H.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(I){new B.Move(I.element,{x:-40,y:0,duration:0.1,afterFinishInternal:function(J){new B.Move(J.element,{x:40,y:0,duration:0.1,afterFinishInternal:function(K){new B.Move(K.element,C)}})}})}})}})}})};MochiKit.Visual.slideDown=function(E,D){var G=MochiKit.DOM;var B=MochiKit.Base;var F=MochiKit.Style;E=G.getElement(E);if(!E.firstChild){throw"MochiKit.Visual.slideDown must be used on a element with a child"}G.removeEmptyTextNodes(E);var A=F.getStyle(E.firstChild,"bottom")||0;var C=F.getElementDimensions(E);var H;D=B.update({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:C.h,originalWidth:C.w},restoreAfterFinish:true,afterSetupInternal:function(I){G.makePositioned(I.element);G.makePositioned(I.element.firstChild);if(/Opera/.test(navigator.userAgent)){F.setStyle(I.element,{top:""})}H=G.makeClipping(I.element);F.setStyle(I.element,{height:"0px"});F.showElement(I.element)},afterUpdateInternal:function(I){F.setStyle(I.element.firstChild,{bottom:(I.dims[0]-I.element.clientHeight)+"px"})},afterFinishInternal:function(I){G.undoClipping(I.element,H);if(/MSIE/.test(navigator.userAgent)){G.undoPositioned(I.element);G.undoPositioned(I.element.firstChild)}else{G.undoPositioned(I.element.firstChild);G.undoPositioned(I.element)}F.setStyle(I.element.firstChild,{bottom:A})}},D);return new MochiKit.Visual.Scale(E,100,D)};MochiKit.Visual.slideUp=function(D,C){var F=MochiKit.DOM;var B=MochiKit.Base;var E=MochiKit.Style;D=F.getElement(D);if(!D.firstChild){throw"MochiKit.Visual.slideUp must be used on a element with a child"}F.removeEmptyTextNodes(D);var A=E.getStyle(D.firstChild,"bottom");var G;C=B.update({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(H){F.makePositioned(H.element);F.makePositioned(H.element.firstChild);if(/Opera/.test(navigator.userAgent)){E.setStyle(H.element,{top:""})}G=F.makeClipping(H.element);E.showElement(H.element)},afterUpdateInternal:function(H){E.setStyle(H.element.firstChild,{bottom:(H.dims[0]-H.element.clientHeight)+"px"})},afterFinishInternal:function(H){E.hideElement(H.element);F.undoClipping(H.element,G);F.undoPositioned(H.element.firstChild);F.undoPositioned(H.element);E.setStyle(H.element.firstChild,{bottom:A})}},C);return new MochiKit.Visual.Scale(D,0,C)};MochiKit.Visual.squish=function(C,B){var D=MochiKit.DOM;var A=MochiKit.Base;var E;B=A.update({restoreAfterFinish:true,beforeSetupInternal:function(F){E=D.makeClipping(F.element)},afterFinishInternal:function(F){MochiKit.Style.hideElement(F.element);D.undoClipping(F.element,E)}},B);return new MochiKit.Visual.Scale(C,/Opera/.test(navigator.userAgent)?1:0,B)};MochiKit.Visual.grow=function(F,L){var G=MochiKit.DOM;var J=MochiKit.Visual;var K=MochiKit.Style;F=G.getElement(F);L=MochiKit.Base.update({direction:"center",moveTransition:J.Transitions.sinoidal,scaleTransition:J.Transitions.sinoidal,opacityTransition:J.Transitions.full,scaleContent:true,scaleFromCenter:false},L);var D={top:F.style.top,left:F.style.left,height:F.style.height,width:F.style.width,opacity:K.getStyle(F,"opacity")};var I=K.getElementDimensions(F);var E,C;var B,A;switch(L.direction){case"top-left":E=C=B=A=0;break;case"top-right":E=I.w;C=A=0;B=-I.w;break;case"bottom-left":E=B=0;C=I.h;A=-I.h;break;case"bottom-right":E=I.w;C=I.h;B=-I.w;A=-I.h;break;case"center":E=I.w/2;C=I.h/2;B=-I.w/2;A=-I.h/2;break}var H=MochiKit.Base.update({beforeSetupInternal:function(M){K.setStyle(M.effects[0].element,{height:"0px"});K.showElement(M.effects[0].element)},afterFinishInternal:function(M){G.undoClipping(M.effects[0].element);G.undoPositioned(M.effects[0].element);K.setStyle(M.effects[0].element,D)}},L);return new J.Move(F,{x:E,y:C,duration:0.01,beforeSetupInternal:function(M){K.hideElement(M.element);G.makeClipping(M.element);G.makePositioned(M.element)},afterFinishInternal:function(M){new J.Parallel([new J.Opacity(M.element,{sync:true,to:1,from:0,transition:L.opacityTransition}),new J.Move(M.element,{x:B,y:A,sync:true,transition:L.moveTransition}),new J.Scale(M.element,100,{scaleMode:{originalHeight:I.h,originalWidth:I.w},sync:true,scaleFrom:/Opera/.test(navigator.userAgent)?1:0,transition:L.scaleTransition,scaleContent:L.scaleContent,scaleFromCenter:L.scaleFromCenter,restoreAfterFinish:true})],H)}})};MochiKit.Visual.shrink=function(E,K){var F=MochiKit.DOM;var I=MochiKit.Visual;var J=MochiKit.Style;E=F.getElement(E);K=MochiKit.Base.update({direction:"center",moveTransition:I.Transitions.sinoidal,scaleTransition:I.Transitions.sinoidal,opacityTransition:I.Transitions.none,scaleContent:true,scaleFromCenter:false},K);var C={top:E.style.top,left:E.style.left,height:E.style.height,width:E.style.width,opacity:J.getStyle(E,"opacity")};var H=J.getElementDimensions(E);var B,A;switch(K.direction){case"top-left":B=A=0;break;case"top-right":B=H.w;A=0;break;case"bottom-left":B=0;A=H.h;break;case"bottom-right":B=H.w;A=H.h;break;case"center":B=H.w/2;A=H.h/2;break}var D;var G=MochiKit.Base.update({beforeStartInternal:function(L){D=F.makePositioned(L.effects[0].element);F.makeClipping(L.effects[0].element)},afterFinishInternal:function(L){J.hideElement(L.effects[0].element);F.undoClipping(L.effects[0].element,D);F.undoPositioned(L.effects[0].element);J.setStyle(L.effects[0].element,C)}},K);return new I.Parallel([new I.Opacity(E,{sync:true,to:0,from:1,transition:K.opacityTransition}),new I.Scale(E,/Opera/.test(navigator.userAgent)?1:0,{sync:true,transition:K.scaleTransition,scaleContent:K.scaleContent,scaleFromCenter:K.scaleFromCenter,restoreAfterFinish:true}),new I.Move(E,{x:B,y:A,sync:true,transition:K.moveTransition})],G)};MochiKit.Visual.pulsate=function(E,D){var H=MochiKit.DOM;var C=MochiKit.Visual;var A=MochiKit.Base;var B=MochiKit.Style.getStyle(E,"opacity");D=A.update({duration:3,from:0,afterFinishInternal:function(I){MochiKit.Style.setStyle(I.element,{opacity:B})}},D);var G=D.transition||C.Transitions.sinoidal;var F=A.bind(function(I){return G(1-C.Transitions.pulse(I,D.pulses))},G);A.bind(F,G);return new C.Opacity(E,A.update({transition:F},D))};MochiKit.Visual.fold=function(D,C){var F=MochiKit.DOM;var B=MochiKit.Visual;var E=MochiKit.Style;D=F.getElement(D);var A={top:D.style.top,left:D.style.left,width:D.style.width,height:D.style.height};var G=F.makeClipping(D);C=MochiKit.Base.update({scaleContent:false,scaleX:false,afterFinishInternal:function(H){new B.Scale(D,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(I){E.hideElement(I.element);F.undoClipping(I.element,G);E.setStyle(I.element,A)}})}},C);return new B.Scale(D,5,C)};MochiKit.Visual.Color=MochiKit.Color.Color;MochiKit.Visual.getElementsComputedStyle=MochiKit.DOM.computedStyle;MochiKit.Visual.__new__=function(){var A=MochiKit.Base;A.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":A.concat(this.EXPORT,this.EXPORT_OK)}};MochiKit.Visual.EXPORT=["roundElement","roundClass","tagifyText","multiple","toggle","Parallel","Opacity","Move","Scale","Highlight","ScrollTo","Morph","fade","appear","puff","blindUp","blindDown","switchOff","dropOut","shake","slideDown","slideUp","squish","grow","shrink","pulsate","fold"];MochiKit.Visual.EXPORT_OK=["Base","PAIRS"];MochiKit.Visual.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Visual);