/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/
(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,E,D){if(this.patterns.noNegatives.test(C)){E=(E>0)?E:0;}B.Dom.setStyle(this.getEl(),C,E+D);},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=0;}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F==-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]==H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.exec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];}return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var H=YAHOO.util.Dom.getStyle(G,E);
if(this.patterns.transparent.test(H)){var F=G.parentNode;H=C.Dom.getStyle(F,E);while(F&&this.patterns.transparent.test(H)){F=F.parentNode;H=C.Dom.getStyle(F,E);if(F.tagName.toUpperCase()=="HTML"){H="#fff";}}}}else{H=D.getAttribute.call(this,E);}return H;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;++I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
/*
TERMS OF USE - EASING EQUATIONS
Open source under the BSD License.
Copyright 2001 Robert Penner All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
 * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.call(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);
var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.5.1",build:"984"});
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/
if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue;}F[D].apply(F,C);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(B){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(C,B){if(!this.initialized){this.init();}if(!this.ids[B]){this.ids[B]={};}this.ids[B][C.id]=C;},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={};}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id];}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id];}}delete this.handleIds[C.id];},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={};}this.handleIds[C][B]=B;},isDragDrop:function(B){return(this.getDDById(B))?true:false;},getRelated:function(G,C){var F=[];for(var E in G.groups){for(var D in this.ids[E]){var B=this.ids[E][D];if(!this.isTypeOfDD(B)){continue;}if(!C||B.isTarget){F[F.length]=B;}}}return F;},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;D<B;++D){if(C[D].id==E.id){return true;}}return false;},isTypeOfDD:function(B){return(B&&B.__ygDragDrop);},isHandle:function(C,B){return(this.handleIds[C]&&this.handleIds[C][B]);},getDDById:function(C){for(var B in this.ids){if(this.ids[B][C]){return this.ids[B][C];}}return null;},handleMouseDown:function(D,C){this.currentTarget=YAHOO.util.Event.getTarget(D);this.dragCurrent=C;var B=C.getEl();this.startX=YAHOO.util.Event.getPageX(D);this.startY=YAHOO.util.Event.getPageY(D);this.deltaX=this.startX-B.offsetLeft;this.deltaY=this.startY-B.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var E=YAHOO.util.DDM;E.startDrag(E.startX,E.startY);E.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(B,D){clearTimeout(this.clickTimeout);var C=this.dragCurrent;if(C&&C.events.b4StartDrag){C.b4StartDrag(B,D);C.fireEvent("b4StartDragEvent",{x:B,y:D});}if(C&&C.events.startDrag){C.startDrag(B,D);C.fireEvent("startDragEvent",{x:B,y:D});}this.dragThreshMet=true;},handleMouseUp:function(B){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.handleMouseMove(B);}this.fromTimeout=false;this.fireEvents(B,true);}else{}this.stopDrag(B);this.stopEvent(B);}},stopEvent:function(B){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(B);}if(this.preventDefault){YAHOO.util.Event.preventDefault(B);}},stopDrag:function(D,C){var B=this.dragCurrent;if(B&&!C){if(this.dragThreshMet){if(B.events.b4EndDrag){B.b4EndDrag(D);B.fireEvent("b4EndDragEvent",{e:D});}if(B.events.endDrag){B.endDrag(D);B.fireEvent("endDragEvent",{e:D});}}if(B.events.mouseUp){B.onMouseUp(D);B.fireEvent("mouseUpEvent",{e:D});}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(E){var B=this.dragCurrent;if(B){if(YAHOO.util.Event.isIE&&!E.button){this.stopEvent(E);return this.handleMouseUp(E);}else{if(E.clientX<0||E.clientY<0){}}if(!this.dragThreshMet){var D=Math.abs(this.startX-YAHOO.util.Event.getPageX(E));var C=Math.abs(this.startY-YAHOO.util.Event.getPageY(E));if(D>this.clickPixelThresh||C>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(B&&B.events.b4Drag){B.b4Drag(E);B.fireEvent("b4DragEvent",{e:E});}if(B&&B.events.drag){B.onDrag(E);B.fireEvent("dragEvent",{e:E});}if(B){this.fireEvents(E,false);}}this.stopEvent(E);}},fireEvents:function(U,K){var Z=this.dragCurrent;if(!Z||Z.isLocked()||Z.dragOnly){return ;}var M=YAHOO.util.Event.getPageX(U),L=YAHOO.util.Event.getPageY(U),O=new YAHOO.util.Point(M,L),J=Z.getTargetCoord(O.x,O.y),E=Z.getDragEl(),D=["out","over","drop","enter"],T=new YAHOO.util.Region(J.y,J.x+E.offsetWidth,J.y+E.offsetHeight,J.x),H=[],C={},P=[],a={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var R in this.dragOvers){var c=this.dragOvers[R];if(!this.isTypeOfDD(c)){continue;}if(!this.isOverTarget(O,c,this.mode,T)){a.outEvts.push(c);}H[R]=true;delete this.dragOvers[R];}for(var Q in Z.groups){if("string"!=typeof Q){continue;}for(R in this.ids[Q]){var F=this.ids[Q][R];if(!this.isTypeOfDD(F)){continue;}if(F.isTarget&&!F.isLocked()&&F!=Z){if(this.isOverTarget(O,F,this.mode,T)){C[Q]=true;if(K){a.dropEvts.push(F);}else{if(!H[F.id]){a.enterEvts.push(F);}else{a.overEvts.push(F);}this.dragOvers[F.id]=F;}}}}}this.interactionInfo={out:a.outEvts,enter:a.enterEvts,over:a.overEvts,drop:a.dropEvts,point:O,draggedRegion:T,sourceRegion:this.locationCache[Z.id],validDrop:K};for(var B in C){P.push(B);}if(K&&!a.dropEvts.length){this.interactionInfo.validDrop=false;if(Z.events.invalidDrop){Z.onInvalidDrop(U);Z.fireEvent("invalidDropEvent",{e:U});}}for(R=0;R<D.length;R++){var X=null;if(a[D[R]+"Evts"]){X=a[D[R]+"Evts"];}if(X&&X.length){var G=D[R].charAt(0).toUpperCase()+D[R].substr(1),W="onDrag"+G,I="b4Drag"+G,N="drag"+G+"Event",V="drag"+G;if(this.mode){if(Z.events[I]){Z[I](U,X,P);Z.fireEvent(I+"Event",{event:U,info:X,group:P});}if(Z.events[V]){Z[W](U,X,P);Z.fireEvent(N,{event:U,info:X,group:P});}}else{for(var Y=0,S=X.length;Y<S;++Y){if(Z.events[I]){Z[I](U,X[Y].id,P[0]);Z.fireEvent(I+"Event",{event:U,info:X[Y].id,group:P[0]});}if(Z.events[V]){Z[W](U,X[Y].id,P[0]);Z.fireEvent(N,{event:U,info:X[Y].id,group:P[0]});}}}}}},getBestMatch:function(D){var F=null;
var C=D.length;if(C==1){F=D[0];}else{for(var E=0;E<C;++E){var B=D[E];if(this.mode==this.INTERSECT&&B.cursorIsOver){F=B;break;}else{if(!F||!F.overlap||(B.overlap&&F.overlap.getArea()<B.overlap.getArea())){F=B;}}}}return F;},refreshCache:function(C){var E=C||this.ids;for(var B in E){if("string"!=typeof B){continue;}for(var D in this.ids[B]){var F=this.ids[B][D];if(this.isTypeOfDD(F)){var G=this.getLocation(F);if(G){this.locationCache[F.id]=G;}else{delete this.locationCache[F.id];}}}}},verifyEl:function(C){try{if(C){var B=C.offsetParent;if(B){return true;}}}catch(D){}return false;},getLocation:function(G){if(!this.isTypeOfDD(G)){return null;}var E=G.getEl(),J,D,C,L,K,M,B,I,F;try{J=YAHOO.util.Dom.getXY(E);}catch(H){}if(!J){return null;}D=J[0];C=D+E.offsetWidth;L=J[1];K=L+E.offsetHeight;M=L-G.padding[0];B=C+G.padding[1];I=K+G.padding[2];F=D-G.padding[3];return new YAHOO.util.Region(M,B,I,F);},isOverTarget:function(J,B,D,E){var F=this.locationCache[B.id];if(!F||!this.useCache){F=this.getLocation(B);this.locationCache[B.id]=F;}if(!F){return false;}B.cursorIsOver=F.contains(J);var I=this.dragCurrent;if(!I||(!D&&!I.constrainX&&!I.constrainY)){return B.cursorIsOver;}B.overlap=null;if(!E){var G=I.getTargetCoord(J.x,J.y);var C=I.getDragEl();E=new YAHOO.util.Region(G.y,G.x+C.offsetWidth,G.y+C.offsetHeight,G.x);}var H=E.intersect(F);if(H){B.overlap=H;return(D)?true:B.cursorIsOver;}else{return false;}},_onUnload:function(C,B){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(C){var B=this.elementCache[C];if(!B||!B.el){B=this.elementCache[C]=new this.ElementWrapper(YAHOO.util.Dom.get(C));}return B;},getElement:function(B){return YAHOO.util.Dom.get(B);},getCss:function(C){var B=YAHOO.util.Dom.get(C);return(B)?B.style:null;},ElementWrapper:function(B){this.el=B||null;this.id=this.el&&B.id;this.css=this.el&&B.style;},getPosX:function(B){return YAHOO.util.Dom.getX(B);},getPosY:function(B){return YAHOO.util.Dom.getY(B);},swapNode:function(D,B){if(D.swapNode){D.swapNode(B);}else{var E=B.parentNode;var C=B.nextSibling;if(C==D){E.insertBefore(D,B);}else{if(B==D.nextSibling){E.insertBefore(B,D);}else{D.parentNode.replaceChild(B,D);E.insertBefore(D,C);}}}},getScroll:function(){var D,B,E=document.documentElement,C=document.body;if(E&&(E.scrollTop||E.scrollLeft)){D=E.scrollTop;B=E.scrollLeft;}else{if(C){D=C.scrollTop;B=C.scrollLeft;}else{}}return{top:D,left:B};},getStyle:function(C,B){return YAHOO.util.Dom.getStyle(C,B);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(B,D){var C=YAHOO.util.Dom.getXY(D);YAHOO.util.Dom.setXY(B,C);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(C,B){return(C-B);},_timeoutCount:0,_addListeners:function(){var B=YAHOO.util.DDM;if(YAHOO.util.Event&&document){B._onLoad();}else{if(B._timeoutCount>2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1;}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true;}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true;}else{C=C.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);},handleOnAvailable:function(){this.available=true;
this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return ;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(H,G){var D=H.which||H.button;if(this.primaryButtonOnly&&D>1){return ;}if(this.isLocked()){return ;}var C=this.b4MouseDown(H);if(this.events.b4MouseDown){C=this.fireEvent("b4MouseDownEvent",H);}var E=this.onMouseDown(H);if(this.events.mouseDown){E=this.fireEvent("mouseDownEvent",H);}if((C===false)||(E===false)){return ;}this.DDM.refreshCache(this.groups);var F=new YAHOO.util.Point(A.getPageX(H),A.getPageY(H));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(F,this)){}else{if(this.clickValidator(H)){this.setStartPosition();this.DDM.handleMouseDown(H,this);this.DDM.stopEvent(H);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");
YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return ;}var G=this.getDragEl(),E=YAHOO.util.Dom;if(!G){G=document.createElement("div");G.id=this.dragElId;var D=G.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");G.appendChild(C);if(YAHOO.env.ua.ie){var F=document.createElement("iframe");F.setAttribute("src","about:blank");F.setAttribute("scrolling","no");F.setAttribute("frameborder","0");G.insertBefore(F,G.firstChild);E.setStyle(F,"height","100%");E.setStyle(F,"width","100%");E.setStyle(F,"position","absolute");E.setStyle(F,"top","0");E.setStyle(F,"left","0");E.setStyle(F,"opacity","0");E.setStyle(F,"zIndex","-1");E.setStyle(F.nextSibling,"zIndex","2");}A.insertBefore(G,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.5.1",build:"984"});
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var $ = function(id) {
      return document.getElementById(id);
} 

//++++++++++++++++++++++++++++++++++++
// YUI ACCORDION
// 1/22/2008 - Edwart Visser
//
// accordion
//
// REQUIRES: yahoo-dom-event.js, animation-min.js
//
// TODO: build hover script for highlighting header in IE
// TODO: attach behaviour based on rel attribute
//++++++++++++++++++++++++++++++++++++

YAHOO.namespace("lutsr");

YAHOO.lutsr.accordion = {
	properties : {
		animation : true,
		animationDuration : 10,
		multipleOpen : false
	},

	init : function(animation,animationDuration,multipleOpen) {
		if(animation) {
			this.animation = animation;
		}
		if(animationDuration) {
			this.animationDuration = animationDuration;
		}
		if(multipleOpen) {
			this.multipleOpen = multipleOpen;
		}

		var accordionObjects = Dom.getElementsByClassName("accordionsss");

		if(accordionObjects.length > 0) {

			for(var i=0; i<accordionObjects.length; i++) {
				if(accordionObjects[i].nodeName == "DL") {
					var headers = accordionObjects[i].getElementsByTagName("dt");
					var bodies = headers[i].parentNode.getElementsByTagName("dd");
				}
				this.attachEvents(headers,i);
			}
		}
	},

	attachEvents : function(headers,nr) {
		for(var i=0; i<headers.length; i++) {
			var headerProperties = {
				objRef : headers[i],
				nr : i,
				jsObj : this
			}

			Event.addListener(headers[i],"click",this.clickHeader,headerProperties);
		}
	},

	clickHeader : function(e,headerProperties) {
		var parentObj = headerProperties.objRef.parentNode;
		var headers = parentObj.getElementsByTagName("dd"); 
		var header = headers[headerProperties.nr];

		if(Dom.hasClass(header,"open")) {
			headerProperties.jsObj.collapse(header);
		} else {
			if(headerProperties.jsObj.properties.multipleOpen) {
				headerProperties.jsObj.expand(header);
			} else {
				for(var i=0; i<headers.length; i++) {
					if(Dom.hasClass(headers[i],"open")) {
						headerProperties.jsObj.collapse(headers[i]);
					}
				}
				headerProperties.jsObj.expand(header);
			}
		}
	},
	
	collapse : function(header) {
		Dom.removeClass(Dom.getPreviousSibling(header),"selected");
		if(!this.properties.animation) {
			Dom.removeClass(header,"open");
		} else {
			this.initAnimation(header,"close");
		}
	},
	expand : function(header) {
		Dom.addClass(Dom.getPreviousSibling(header),"selected");
		if(!this.properties.animation) {
			Dom.addClass(header,"open");
		} else {
			this.initAnimation(header,"open");
		}
	},
	
	initAnimation : function(header,dir) {
		if(dir == "open") {
			Dom.setStyle(header,"visibility","hidden");
			Dom.setStyle(header,"height","auto");
			Dom.addClass(header,"open");
			var attributes = {
				height : {
					from : 0,
					to : header.offsetHeight
				}
			}
			Dom.setStyle(header,"height",0);
			Dom.setStyle(header,"visibility","visible");
			
			var animation = new YAHOO.util.Anim(header,attributes,0.2,YAHOO.util.Easing.easeOut);
			animationEnd = function() {
				// leave it here
			}
			animation.duration = this.properties.animationDuration;
			animation.useSeconds = false;
			animation.onComplete.subscribe(animationEnd);
			animation.animate();
		} else if ("close") {
			var attributes = {
				height : {
					to : 0
				}
			}			
			animationEnd = function() {
				Dom.removeClass(header,"open");
			}
			var animation = new YAHOO.util.Anim(header,attributes,0.2,YAHOO.util.Easing.easeIn);
			animation.duration = this.properties.animationDuration;
			animation.useSeconds = false;
			animation.onComplete.subscribe(animationEnd);
			animation.animate();
		}
	}
}

initPage = function() {
	YAHOO.lutsr.accordion.init();
}

Event.on(window,"load",initPage);

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/
(function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F,E;for(F in this.config){E=this.config[F];if(E&&E.event){D[F]=E.value;}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){this.refireEvent(D);}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(E,F,H,D){var G=this.config[E.toLowerCase()];if(G&&G.event){if(!A.alreadySubscribed(G.event,F,H)){G.event.subscribe(F,H,D);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(Q,P){if(Q){this.init(Q,P);}else{}};var F=YAHOO.util.Dom,D=YAHOO.util.Config,M=YAHOO.util.Event,L=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,H,O,N,E,A={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTORY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},I={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};G.IMG_ROOT=null;G.IMG_ROOT_SSL=null;G.CSS_MODULE="yui-module";G.CSS_HEADER="hd";G.CSS_BODY="bd";G.CSS_FOOTER="ft";G.RESIZE_MONITOR_SECURE_URL="javascript:false;";G.textResizeEvent=new L("textResize");function K(){if(!H){H=document.createElement("div");H.innerHTML=('<div class="'+G.CSS_HEADER+'"></div>'+'<div class="'+G.CSS_BODY+'"></div><div class="'+G.CSS_FOOTER+'"></div>');O=H.firstChild;N=O.nextSibling;E=N.nextSibling;}return H;}function J(){if(!O){K();}return(O.cloneNode(false));}function B(){if(!N){K();}return(N.cloneNode(false));}function C(){if(!E){K();}return(E.cloneNode(false));}G.prototype={constructor:G,element:null,header:null,body:null,footer:null,id:null,imageRoot:G.IMG_ROOT,initEvents:function(){var P=L.LIST;this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);this.beforeInitEvent.signature=P;this.initEvent=this.createEvent(A.INIT);this.initEvent.signature=P;this.appendEvent=this.createEvent(A.APPEND);
this.appendEvent.signature=P;this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);this.beforeRenderEvent.signature=P;this.renderEvent=this.createEvent(A.RENDER);this.renderEvent.signature=P;this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);this.changeHeaderEvent.signature=P;this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);this.changeBodyEvent.signature=P;this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);this.changeFooterEvent.signature=P;this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);this.changeContentEvent.signature=P;this.destroyEvent=this.createEvent(A.DESTORY);this.destroyEvent.signature=P;this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);this.beforeShowEvent.signature=P;this.showEvent=this.createEvent(A.SHOW);this.showEvent.signature=P;this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);this.beforeHideEvent.signature=P;this.hideEvent=this.createEvent(A.HIDE);this.hideEvent.signature=P;},platform:function(){var P=navigator.userAgent.toLowerCase();if(P.indexOf("windows")!=-1||P.indexOf("win32")!=-1){return"windows";}else{if(P.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var P=navigator.userAgent.toLowerCase();if(P.indexOf("opera")!=-1){return"opera";}else{if(P.indexOf("msie 7")!=-1){return"ie7";}else{if(P.indexOf("msie")!=-1){return"ie";}else{if(P.indexOf("safari")!=-1){return"safari";}else{if(P.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(I.VISIBLE.key,{handler:this.configVisible,value:I.VISIBLE.value,validator:I.VISIBLE.validator});this.cfg.addProperty(I.EFFECT.key,{suppressEvent:I.EFFECT.suppressEvent,supercedes:I.EFFECT.supercedes});this.cfg.addProperty(I.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:I.MONITOR_RESIZE.value});this.cfg.addProperty(I.APPEND_TO_DOCUMENT_BODY.key,{value:I.APPEND_TO_DOCUMENT_BODY.value});},init:function(U,T){var R,V;this.initEvents();this.beforeInitEvent.fire(G);this.cfg=new D(this);if(this.isSecure){this.imageRoot=G.IMG_ROOT_SSL;}if(typeof U=="string"){R=U;U=document.getElementById(U);if(!U){U=(K()).cloneNode(false);U.id=R;}}this.element=U;if(U.id){this.id=U.id;}V=this.element.firstChild;if(V){var Q=false,P=false,S=false;do{if(1==V.nodeType){if(!Q&&F.hasClass(V,G.CSS_HEADER)){this.header=V;Q=true;}else{if(!P&&F.hasClass(V,G.CSS_BODY)){this.body=V;P=true;}else{if(!S&&F.hasClass(V,G.CSS_FOOTER)){this.footer=V;S=true;}}}}}while((V=V.nextSibling));}this.initDefaultConfig();F.addClass(this.element,G.CSS_MODULE);if(T){this.cfg.applyConfig(T,true);}if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(G);},initResizeMonitor:function(){var Q=(YAHOO.env.ua.gecko&&this.platform=="windows");if(Q){var P=this;setTimeout(function(){P._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var P,R,T;function V(){G.textResizeEvent.fire();}if(!YAHOO.env.ua.opera){R=F.get("_yuiResizeMonitor");var U=this._supportsCWResize();if(!R){R=document.createElement("iframe");if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&YAHOO.env.ua.ie){R.src=G.RESIZE_MONITOR_SECURE_URL;}if(!U){T=["<html><head><script ",'type="text/javascript">',"window.onresize=function(){window.parent.","YAHOO.widget.Module.textResizeEvent.","fire();};<","/script></head>","<body></body></html>"].join("");R.src="data:text/html;charset=utf-8,"+encodeURIComponent(T);}R.id="_yuiResizeMonitor";R.style.position="absolute";R.style.visibility="hidden";var Q=document.body,S=Q.firstChild;if(S){Q.insertBefore(R,S);}else{Q.appendChild(R);}R.style.width="10em";R.style.height="10em";R.style.top=(-1*R.offsetHeight)+"px";R.style.left=(-1*R.offsetWidth)+"px";R.style.borderWidth="0";R.style.visibility="visible";if(YAHOO.env.ua.webkit){P=R.contentWindow.document;P.open();P.close();}}if(R&&R.contentWindow){G.textResizeEvent.subscribe(this.onDomResize,this,true);if(!G.textResizeInitialized){if(U){if(!M.on(R.contentWindow,"resize",V)){M.on(R,"resize",V);}}G.textResizeInitialized=true;}this.resizeMonitor=R;}}},_supportsCWResize:function(){var P=true;if(YAHOO.env.ua.gecko&&YAHOO.env.ua.gecko<=1.8){P=false;}return P;},onDomResize:function(S,R){var Q=-1*this.resizeMonitor.offsetWidth,P=-1*this.resizeMonitor.offsetHeight;this.resizeMonitor.style.top=P+"px";this.resizeMonitor.style.left=Q+"px";},setHeader:function(Q){var P=this.header||(this.header=J());if(Q.nodeName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeHeaderEvent.fire(Q);this.changeContentEvent.fire();},appendToHeader:function(Q){var P=this.header||(this.header=J());P.appendChild(Q);this.changeHeaderEvent.fire(Q);this.changeContentEvent.fire();},setBody:function(Q){var P=this.body||(this.body=B());if(Q.nodeName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeBodyEvent.fire(Q);this.changeContentEvent.fire();},appendToBody:function(Q){var P=this.body||(this.body=B());P.appendChild(Q);this.changeBodyEvent.fire(Q);this.changeContentEvent.fire();},setFooter:function(Q){var P=this.footer||(this.footer=C());if(Q.nodeName){P.innerHTML="";P.appendChild(Q);}else{P.innerHTML=Q;}this.changeFooterEvent.fire(Q);this.changeContentEvent.fire();},appendToFooter:function(Q){var P=this.footer||(this.footer=C());P.appendChild(Q);this.changeFooterEvent.fire(Q);this.changeContentEvent.fire();},render:function(R,P){var S=this,T;function Q(U){if(typeof U=="string"){U=document.getElementById(U);}if(U){S._addToParent(U,S.element);S.appendEvent.fire();}}this.beforeRenderEvent.fire();if(!P){P=this.element;}if(R){Q(R);}else{if(!F.inDocument(this.element)){return false;}}if(this.header&&!F.inDocument(this.header)){T=P.firstChild;if(T){P.insertBefore(this.header,T);}else{P.appendChild(this.header);}}if(this.body&&!F.inDocument(this.body)){if(this.footer&&F.isAncestor(this.moduleElement,this.footer)){P.insertBefore(this.body,this.footer);
}else{P.appendChild(this.body);}}if(this.footer&&!F.inDocument(this.footer)){P.appendChild(this.footer);}this.renderEvent.fire();return true;},destroy:function(){var P,Q;if(this.element){M.purgeElement(this.element,true);P=this.element.parentNode;}if(P){P.removeChild(this.element);}this.element=null;this.header=null;this.body=null;this.footer=null;G.textResizeEvent.unsubscribe(this.onDomResize,this);this.cfg.destroy();this.cfg=null;this.destroyEvent.fire();for(Q in this){if(Q instanceof L){Q.unsubscribeAll();}}},show:function(){this.cfg.setProperty("visible",true);},hide:function(){this.cfg.setProperty("visible",false);},configVisible:function(Q,P,R){var S=P[0];if(S){this.beforeShowEvent.fire();F.setStyle(this.element,"display","block");this.showEvent.fire();}else{this.beforeHideEvent.fire();F.setStyle(this.element,"display","none");this.hideEvent.fire();}},configMonitorResize:function(R,Q,S){var P=Q[0];if(P){this.initResizeMonitor();}else{G.textResizeEvent.unsubscribe(this.onDomResize,this,true);this.resizeMonitor=null;}},_addToParent:function(P,Q){if(!this.cfg.getProperty("appendtodocumentbody")&&P===document.body&&P.firstChild){P.insertBefore(Q,P.firstChild);}else{P.appendChild(Q);}},toString:function(){return"Module "+this.id;}};YAHOO.lang.augmentProto(G,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Overlay=function(L,K){YAHOO.widget.Overlay.superclass.constructor.call(this,L,K);};var F=YAHOO.lang,I=YAHOO.util.CustomEvent,E=YAHOO.widget.Module,J=YAHOO.util.Event,D=YAHOO.util.Dom,C=YAHOO.util.Config,B=YAHOO.widget.Overlay,G,A={"BEFORE_MOVE":"beforeMove","MOVE":"move"},H={"X":{key:"x",validator:F.isNumber,suppressEvent:true,supercedes:["iframe"]},"Y":{key:"y",validator:F.isNumber,suppressEvent:true,supercedes:["iframe"]},"XY":{key:"xy",suppressEvent:true,supercedes:["iframe"]},"CONTEXT":{key:"context",suppressEvent:true,supercedes:["iframe"]},"FIXED_CENTER":{key:"fixedcenter",value:false,validator:F.isBoolean,supercedes:["iframe","visible"]},"WIDTH":{key:"width",suppressEvent:true,supercedes:["context","fixedcenter","iframe"]},"HEIGHT":{key:"height",suppressEvent:true,supercedes:["context","fixedcenter","iframe"]},"ZINDEX":{key:"zindex",value:null},"CONSTRAIN_TO_VIEWPORT":{key:"constraintoviewport",value:false,validator:F.isBoolean,supercedes:["iframe","x","y","xy"]},"IFRAME":{key:"iframe",value:(YAHOO.env.ua.ie==6?true:false),validator:F.isBoolean,supercedes:["zindex"]}};B.IFRAME_SRC="javascript:false;";B.IFRAME_OFFSET=3;B.VIEWPORT_OFFSET=10;B.TOP_LEFT="tl";B.TOP_RIGHT="tr";B.BOTTOM_LEFT="bl";B.BOTTOM_RIGHT="br";B.CSS_OVERLAY="yui-overlay";B.windowScrollEvent=new I("windowScroll");B.windowResizeEvent=new I("windowResize");B.windowScrollHandler=function(K){if(YAHOO.env.ua.ie){if(!window.scrollEnd){window.scrollEnd=-1;}clearTimeout(window.scrollEnd);window.scrollEnd=setTimeout(function(){B.windowScrollEvent.fire();},1);}else{B.windowScrollEvent.fire();}};B.windowResizeHandler=function(K){if(YAHOO.env.ua.ie){if(!window.resizeEnd){window.resizeEnd=-1;}clearTimeout(window.resizeEnd);window.resizeEnd=setTimeout(function(){B.windowResizeEvent.fire();},100);}else{B.windowResizeEvent.fire();}};B._initialized=null;if(B._initialized===null){J.on(window,"scroll",B.windowScrollHandler);J.on(window,"resize",B.windowResizeHandler);B._initialized=true;}YAHOO.extend(B,E,{init:function(L,K){B.superclass.init.call(this,L);this.beforeInitEvent.fire(B);D.addClass(this.element,B.CSS_OVERLAY);if(K){this.cfg.applyConfig(K,true);}if(this.platform=="mac"&&YAHOO.env.ua.gecko){if(!C.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)){this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);}if(!C.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)){this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);}}this.initEvent.fire(B);},initEvents:function(){B.superclass.initEvents.call(this);var K=I.LIST;this.beforeMoveEvent=this.createEvent(A.BEFORE_MOVE);this.beforeMoveEvent.signature=K;this.moveEvent=this.createEvent(A.MOVE);this.moveEvent.signature=K;},initDefaultConfig:function(){B.superclass.initDefaultConfig.call(this);this.cfg.addProperty(H.X.key,{handler:this.configX,validator:H.X.validator,suppressEvent:H.X.suppressEvent,supercedes:H.X.supercedes});this.cfg.addProperty(H.Y.key,{handler:this.configY,validator:H.Y.validator,suppressEvent:H.Y.suppressEvent,supercedes:H.Y.supercedes});this.cfg.addProperty(H.XY.key,{handler:this.configXY,suppressEvent:H.XY.suppressEvent,supercedes:H.XY.supercedes});this.cfg.addProperty(H.CONTEXT.key,{handler:this.configContext,suppressEvent:H.CONTEXT.suppressEvent,supercedes:H.CONTEXT.supercedes});this.cfg.addProperty(H.FIXED_CENTER.key,{handler:this.configFixedCenter,value:H.FIXED_CENTER.value,validator:H.FIXED_CENTER.validator,supercedes:H.FIXED_CENTER.supercedes});this.cfg.addProperty(H.WIDTH.key,{handler:this.configWidth,suppressEvent:H.WIDTH.suppressEvent,supercedes:H.WIDTH.supercedes});this.cfg.addProperty(H.HEIGHT.key,{handler:this.configHeight,suppressEvent:H.HEIGHT.suppressEvent,supercedes:H.HEIGHT.supercedes});this.cfg.addProperty(H.ZINDEX.key,{handler:this.configzIndex,value:H.ZINDEX.value});this.cfg.addProperty(H.CONSTRAIN_TO_VIEWPORT.key,{handler:this.configConstrainToViewport,value:H.CONSTRAIN_TO_VIEWPORT.value,validator:H.CONSTRAIN_TO_VIEWPORT.validator,supercedes:H.CONSTRAIN_TO_VIEWPORT.supercedes});this.cfg.addProperty(H.IFRAME.key,{handler:this.configIframe,value:H.IFRAME.value,validator:H.IFRAME.validator,supercedes:H.IFRAME.supercedes});},moveTo:function(K,L){this.cfg.setProperty("xy",[K,L]);},hideMacGeckoScrollbars:function(){D.removeClass(this.element,"show-scrollbars");D.addClass(this.element,"hide-scrollbars");},showMacGeckoScrollbars:function(){D.removeClass(this.element,"hide-scrollbars");D.addClass(this.element,"show-scrollbars");},configVisible:function(N,K,T){var M=K[0],O=D.getStyle(this.element,"visibility"),U=this.cfg.getProperty("effect"),R=[],Q=(this.platform=="mac"&&YAHOO.env.ua.gecko),b=C.alreadySubscribed,S,L,a,Y,X,W,Z,V,P;
if(O=="inherit"){a=this.element.parentNode;while(a.nodeType!=9&&a.nodeType!=11){O=D.getStyle(a,"visibility");if(O!="inherit"){break;}a=a.parentNode;}if(O=="inherit"){O="visible";}}if(U){if(U instanceof Array){V=U.length;for(Y=0;Y<V;Y++){S=U[Y];R[R.length]=S.effect(this,S.duration);}}else{R[R.length]=U.effect(this,U.duration);}}if(M){if(Q){this.showMacGeckoScrollbars();}if(U){if(M){if(O!="visible"||O===""){this.beforeShowEvent.fire();P=R.length;for(X=0;X<P;X++){L=R[X];if(X===0&&!b(L.animateInCompleteEvent,this.showEvent.fire,this.showEvent)){L.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true);}L.animateIn();}}}}else{if(O!="visible"||O===""){this.beforeShowEvent.fire();D.setStyle(this.element,"visibility","visible");this.cfg.refireEvent("iframe");this.showEvent.fire();}}}else{if(Q){this.hideMacGeckoScrollbars();}if(U){if(O=="visible"){this.beforeHideEvent.fire();P=R.length;for(W=0;W<P;W++){Z=R[W];if(W===0&&!b(Z.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)){Z.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true);}Z.animateOut();}}else{if(O===""){D.setStyle(this.element,"visibility","hidden");}}}else{if(O=="visible"||O===""){this.beforeHideEvent.fire();D.setStyle(this.element,"visibility","hidden");this.hideEvent.fire();}}}},doCenterOnDOMEvent:function(){if(this.cfg.getProperty("visible")){this.center();}},configFixedCenter:function(O,M,P){var Q=M[0],L=C.alreadySubscribed,N=B.windowResizeEvent,K=B.windowScrollEvent;if(Q){this.center();if(!L(this.beforeShowEvent,this.center,this)){this.beforeShowEvent.subscribe(this.center);}if(!L(N,this.doCenterOnDOMEvent,this)){N.subscribe(this.doCenterOnDOMEvent,this,true);}if(!L(K,this.doCenterOnDOMEvent,this)){K.subscribe(this.doCenterOnDOMEvent,this,true);}}else{this.beforeShowEvent.unsubscribe(this.center);N.unsubscribe(this.doCenterOnDOMEvent,this);K.unsubscribe(this.doCenterOnDOMEvent,this);}},configHeight:function(N,L,O){var K=L[0],M=this.element;D.setStyle(M,"height",K);this.cfg.refireEvent("iframe");},configWidth:function(N,K,O){var M=K[0],L=this.element;D.setStyle(L,"width",M);this.cfg.refireEvent("iframe");},configzIndex:function(M,K,N){var O=K[0],L=this.element;if(!O){O=D.getStyle(L,"zIndex");if(!O||isNaN(O)){O=0;}}if(this.iframe||this.cfg.getProperty("iframe")===true){if(O<=0){O=1;}}D.setStyle(L,"zIndex",O);this.cfg.setProperty("zIndex",O,true);if(this.iframe){this.stackIframe();}},configXY:function(M,L,N){var P=L[0],K=P[0],O=P[1];this.cfg.setProperty("x",K);this.cfg.setProperty("y",O);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},configX:function(M,L,N){var K=L[0],O=this.cfg.getProperty("y");this.cfg.setProperty("x",K,true);this.cfg.setProperty("y",O,true);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");D.setX(this.element,K,true);this.cfg.setProperty("xy",[K,O],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},configY:function(M,L,N){var K=this.cfg.getProperty("x"),O=L[0];this.cfg.setProperty("x",K,true);this.cfg.setProperty("y",O,true);this.beforeMoveEvent.fire([K,O]);K=this.cfg.getProperty("x");O=this.cfg.getProperty("y");D.setY(this.element,O,true);this.cfg.setProperty("xy",[K,O],true);this.cfg.refireEvent("iframe");this.moveEvent.fire([K,O]);},showIframe:function(){var L=this.iframe,K;if(L){K=this.element.parentNode;if(K!=L.parentNode){this._addToParent(K,L);}L.style.display="block";}},hideIframe:function(){if(this.iframe){this.iframe.style.display="none";}},syncIframe:function(){var K=this.iframe,M=this.element,O=B.IFRAME_OFFSET,L=(O*2),N;if(K){K.style.width=(M.offsetWidth+L+"px");K.style.height=(M.offsetHeight+L+"px");N=this.cfg.getProperty("xy");if(!F.isArray(N)||(isNaN(N[0])||isNaN(N[1]))){this.syncPosition();N=this.cfg.getProperty("xy");}D.setXY(K,[(N[0]-O),(N[1]-O)]);}},stackIframe:function(){if(this.iframe){var K=D.getStyle(this.element,"zIndex");if(!YAHOO.lang.isUndefined(K)&&!isNaN(K)){D.setStyle(this.iframe,"zIndex",(K-1));}}},configIframe:function(N,M,O){var K=M[0];function P(){var R=this.iframe,S=this.element,T;if(!R){if(!G){G=document.createElement("iframe");if(this.isSecure){G.src=B.IFRAME_SRC;}if(YAHOO.env.ua.ie){G.style.filter="alpha(opacity=0)";G.frameBorder=0;}else{G.style.opacity="0";}G.style.position="absolute";G.style.border="none";G.style.margin="0";G.style.padding="0";G.style.display="none";}R=G.cloneNode(false);T=S.parentNode;var Q=T||document.body;this._addToParent(Q,R);this.iframe=R;}this.showIframe();this.syncIframe();this.stackIframe();if(!this._hasIframeEventListeners){this.showEvent.subscribe(this.showIframe);this.hideEvent.subscribe(this.hideIframe);this.changeContentEvent.subscribe(this.syncIframe);this._hasIframeEventListeners=true;}}function L(){P.call(this);this.beforeShowEvent.unsubscribe(L);this._iframeDeferred=false;}if(K){if(this.cfg.getProperty("visible")){P.call(this);}else{if(!this._iframeDeferred){this.beforeShowEvent.subscribe(L);this._iframeDeferred=true;}}}else{this.hideIframe();if(this._hasIframeEventListeners){this.showEvent.unsubscribe(this.showIframe);this.hideEvent.unsubscribe(this.hideIframe);this.changeContentEvent.unsubscribe(this.syncIframe);this._hasIframeEventListeners=false;}}},_primeXYFromDOM:function(){if(YAHOO.lang.isUndefined(this.cfg.getProperty("xy"))){this.syncPosition();this.cfg.refireEvent("xy");this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);}},configConstrainToViewport:function(L,K,M){var N=K[0];if(N){if(!C.alreadySubscribed(this.beforeMoveEvent,this.enforceConstraints,this)){this.beforeMoveEvent.subscribe(this.enforceConstraints,this,true);}if(!C.alreadySubscribed(this.beforeShowEvent,this._primeXYFromDOM)){this.beforeShowEvent.subscribe(this._primeXYFromDOM);}}else{this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);this.beforeMoveEvent.unsubscribe(this.enforceConstraints,this);}},configContext:function(M,L,O){var Q=L[0],N,P,K;if(Q){N=Q[0];P=Q[1];
K=Q[2];if(N){if(typeof N=="string"){this.cfg.setProperty("context",[document.getElementById(N),P,K],true);}if(P&&K){this.align(P,K);}}}},align:function(L,K){var Q=this.cfg.getProperty("context"),P=this,O,N,R;function M(S,T){switch(L){case B.TOP_LEFT:P.moveTo(T,S);break;case B.TOP_RIGHT:P.moveTo((T-N.offsetWidth),S);break;case B.BOTTOM_LEFT:P.moveTo(T,(S-N.offsetHeight));break;case B.BOTTOM_RIGHT:P.moveTo((T-N.offsetWidth),(S-N.offsetHeight));break;}}if(Q){O=Q[0];N=this.element;P=this;if(!L){L=Q[1];}if(!K){K=Q[2];}if(N&&O){R=D.getRegion(O);switch(K){case B.TOP_LEFT:M(R.top,R.left);break;case B.TOP_RIGHT:M(R.top,R.right);break;case B.BOTTOM_LEFT:M(R.bottom,R.left);break;case B.BOTTOM_RIGHT:M(R.bottom,R.right);break;}}}},enforceConstraints:function(L,K,M){var O=K[0];var N=this.getConstrainedXY(O[0],O[1]);this.cfg.setProperty("x",N[0],true);this.cfg.setProperty("y",N[1],true);this.cfg.setProperty("xy",N,true);},getConstrainedXY:function(V,T){var N=B.VIEWPORT_OFFSET,U=D.getViewportWidth(),Q=D.getViewportHeight(),M=this.element.offsetHeight,S=this.element.offsetWidth,Y=D.getDocumentScrollLeft(),W=D.getDocumentScrollTop();var P=V;var L=T;if(S+N<U){var R=Y+N;var X=Y+U-S-N;if(V<R){P=R;}else{if(V>X){P=X;}}}else{P=N+Y;}if(M+N<Q){var O=W+N;var K=W+Q-M-N;if(T<O){L=O;}else{if(T>K){L=K;}}}else{L=N+W;}return[P,L];},center:function(){var N=B.VIEWPORT_OFFSET,O=this.element.offsetWidth,M=this.element.offsetHeight,L=D.getViewportWidth(),P=D.getViewportHeight(),K,Q;if(O<L){K=(L/2)-(O/2)+D.getDocumentScrollLeft();}else{K=N+D.getDocumentScrollLeft();}if(M<P){Q=(P/2)-(M/2)+D.getDocumentScrollTop();}else{Q=N+D.getDocumentScrollTop();}this.cfg.setProperty("xy",[parseInt(K,10),parseInt(Q,10)]);this.cfg.refireEvent("iframe");},syncPosition:function(){var K=D.getXY(this.element);this.cfg.setProperty("x",K[0],true);this.cfg.setProperty("y",K[1],true);this.cfg.setProperty("xy",K,true);},onDomResize:function(M,L){var K=this;B.superclass.onDomResize.call(this,M,L);setTimeout(function(){K.syncPosition();K.cfg.refireEvent("iframe");K.cfg.refireEvent("context");},0);},bringToTop:function(){var O=[],N=this.element;function R(V,U){var X=D.getStyle(V,"zIndex"),W=D.getStyle(U,"zIndex"),T=(!X||isNaN(X))?0:parseInt(X,10),S=(!W||isNaN(W))?0:parseInt(W,10);if(T>S){return -1;}else{if(T<S){return 1;}else{return 0;}}}function M(U){var S=D.hasClass(U,B.CSS_OVERLAY),T=YAHOO.widget.Panel;if(S&&!D.isAncestor(N,S)){if(T&&D.hasClass(U,T.CSS_PANEL)){O[O.length]=U.parentNode;}else{O[O.length]=U;}}}D.getElementsBy(M,"DIV",document.body);O.sort(R);var K=O[0],Q;if(K){Q=D.getStyle(K,"zIndex");if(!isNaN(Q)){var P=false;if(K!=N){P=true;}else{if(O.length>1){var L=D.getStyle(O[1],"zIndex");if(!isNaN(L)&&(Q==L)){P=true;}}}if(P){this.cfg.setProperty("zindex",(parseInt(Q,10)+2));}}}},destroy:function(){if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);}this.iframe=null;B.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent,this);B.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent,this);B.superclass.destroy.call(this);},toString:function(){return"Overlay "+this.id;}});}());(function(){YAHOO.widget.OverlayManager=function(G){this.init(G);};var D=YAHOO.widget.Overlay,C=YAHOO.util.Event,E=YAHOO.util.Dom,B=YAHOO.util.Config,F=YAHOO.util.CustomEvent,A=YAHOO.widget.OverlayManager;A.CSS_FOCUSED="focused";A.prototype={constructor:A,overlays:null,initDefaultConfig:function(){this.cfg.addProperty("overlays",{suppressEvent:true});this.cfg.addProperty("focusevent",{value:"mousedown"});},init:function(I){this.cfg=new B(this);this.initDefaultConfig();if(I){this.cfg.applyConfig(I,true);}this.cfg.fireQueue();var H=null;this.getActive=function(){return H;};this.focus=function(J){var K=this.find(J);if(K){if(H!=K){if(H){H.blur();}this.bringToTop(K);H=K;E.addClass(H.element,A.CSS_FOCUSED);K.focusEvent.fire();}}};this.remove=function(K){var M=this.find(K),J;if(M){if(H==M){H=null;}var L=(M.element===null&&M.cfg===null)?true:false;if(!L){J=E.getStyle(M.element,"zIndex");M.cfg.setProperty("zIndex",-1000,true);}this.overlays.sort(this.compareZIndexDesc);this.overlays=this.overlays.slice(0,(this.overlays.length-1));M.hideEvent.unsubscribe(M.blur);M.destroyEvent.unsubscribe(this._onOverlayDestroy,M);if(!L){C.removeListener(M.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus);M.cfg.setProperty("zIndex",J,true);M.cfg.setProperty("manager",null);}M.focusEvent.unsubscribeAll();M.blurEvent.unsubscribeAll();M.focusEvent=null;M.blurEvent=null;M.focus=null;M.blur=null;}};this.blurAll=function(){var K=this.overlays.length,J;if(K>0){J=K-1;do{this.overlays[J].blur();}while(J--);}};this._onOverlayBlur=function(K,J){H=null;};var G=this.cfg.getProperty("overlays");if(!this.overlays){this.overlays=[];}if(G){this.register(G);this.overlays.sort(this.compareZIndexDesc);}},_onOverlayElementFocus:function(I){var G=C.getTarget(I),H=this.close;if(H&&(G==H||E.isAncestor(H,G))){this.blur();}else{this.focus();}},_onOverlayDestroy:function(H,G,I){this.remove(I);},register:function(G){var K=this,L,I,H,J;if(G instanceof D){G.cfg.addProperty("manager",{value:this});G.focusEvent=G.createEvent("focus");G.focusEvent.signature=F.LIST;G.blurEvent=G.createEvent("blur");G.blurEvent.signature=F.LIST;G.focus=function(){K.focus(this);};G.blur=function(){if(K.getActive()==this){E.removeClass(this.element,A.CSS_FOCUSED);this.blurEvent.fire();}};G.blurEvent.subscribe(K._onOverlayBlur);G.hideEvent.subscribe(G.blur);G.destroyEvent.subscribe(this._onOverlayDestroy,G,this);C.on(G.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus,null,G);L=E.getStyle(G.element,"zIndex");if(!isNaN(L)){G.cfg.setProperty("zIndex",parseInt(L,10));}else{G.cfg.setProperty("zIndex",0);}this.overlays.push(G);this.bringToTop(G);return true;}else{if(G instanceof Array){I=0;J=G.length;for(H=0;H<J;H++){if(this.register(G[H])){I++;}}if(I>0){return true;}}else{return false;}}},bringToTop:function(M){var I=this.find(M),L,G,J;if(I){J=this.overlays;J.sort(this.compareZIndexDesc);G=J[0];if(G){L=E.getStyle(G.element,"zIndex");
if(!isNaN(L)){var K=false;if(G!==I){K=true;}else{if(J.length>1){var H=E.getStyle(J[1].element,"zIndex");if(!isNaN(H)&&(L==H)){K=true;}}}if(K){I.cfg.setProperty("zindex",(parseInt(L,10)+2));}}J.sort(this.compareZIndexDesc);}}},find:function(G){var I=this.overlays,J=I.length,H;if(J>0){H=J-1;if(G instanceof D){do{if(I[H]==G){return I[H];}}while(H--);}else{if(typeof G=="string"){do{if(I[H].id==G){return I[H];}}while(H--);}}return null;}},compareZIndexDesc:function(J,I){var H=(J.cfg)?J.cfg.getProperty("zIndex"):null,G=(I.cfg)?I.cfg.getProperty("zIndex"):null;if(H===null&&G===null){return 0;}else{if(H===null){return 1;}else{if(G===null){return -1;}else{if(H>G){return -1;}else{if(H<G){return 1;}else{return 0;}}}}}},showAll:function(){var H=this.overlays,I=H.length,G;if(I>0){G=I-1;do{H[G].show();}while(G--);}},hideAll:function(){var H=this.overlays,I=H.length,G;if(I>0){G=I-1;do{H[G].hide();}while(G--);}},toString:function(){return"OverlayManager";}};}());(function(){YAHOO.widget.Tooltip=function(N,M){YAHOO.widget.Tooltip.superclass.constructor.call(this,N,M);};var E=YAHOO.lang,L=YAHOO.util.Event,K=YAHOO.util.CustomEvent,C=YAHOO.util.Dom,G=YAHOO.widget.Tooltip,F,H={"PREVENT_OVERLAP":{key:"preventoverlap",value:true,validator:E.isBoolean,supercedes:["x","y","xy"]},"SHOW_DELAY":{key:"showdelay",value:200,validator:E.isNumber},"AUTO_DISMISS_DELAY":{key:"autodismissdelay",value:5000,validator:E.isNumber},"HIDE_DELAY":{key:"hidedelay",value:250,validator:E.isNumber},"TEXT":{key:"text",suppressEvent:true},"CONTAINER":{key:"container"},"DISABLED":{key:"disabled",value:false,suppressEvent:true}},A={"CONTEXT_MOUSE_OVER":"contextMouseOver","CONTEXT_MOUSE_OUT":"contextMouseOut","CONTEXT_TRIGGER":"contextTrigger"};G.CSS_TOOLTIP="yui-tt";function I(N,M,O){var R=O[0],P=O[1],Q=this.cfg,S=Q.getProperty("width");if(S==P){Q.setProperty("width",R);}this.unsubscribe("hide",this._onHide,O);}function D(N,M){var O=document.body,S=this.cfg,R=S.getProperty("width"),P,Q;if((!R||R=="auto")&&(S.getProperty("container")!=O||S.getProperty("x")>=C.getViewportWidth()||S.getProperty("y")>=C.getViewportHeight())){Q=this.element.cloneNode(true);Q.style.visibility="hidden";Q.style.top="0px";Q.style.left="0px";O.appendChild(Q);P=(Q.offsetWidth+"px");O.removeChild(Q);Q=null;S.setProperty("width",P);S.refireEvent("xy");this.subscribe("hide",I,[(R||""),P]);}}function B(N,M,O){this.render(O);}function J(){L.onDOMReady(B,this.cfg.getProperty("container"),this);}YAHOO.extend(G,YAHOO.widget.Overlay,{init:function(N,M){G.superclass.init.call(this,N);this.beforeInitEvent.fire(G);C.addClass(this.element,G.CSS_TOOLTIP);if(M){this.cfg.applyConfig(M,true);}this.cfg.queueProperty("visible",false);this.cfg.queueProperty("constraintoviewport",true);this.setBody("");this.subscribe("beforeShow",D);this.subscribe("init",J);this.subscribe("render",this.onRender);this.initEvent.fire(G);},initEvents:function(){G.superclass.initEvents.call(this);var M=K.LIST;this.contextMouseOverEvent=this.createEvent(A.CONTEXT_MOUSE_OVER);this.contextMouseOverEvent.signature=M;this.contextMouseOutEvent=this.createEvent(A.CONTEXT_MOUSE_OUT);this.contextMouseOutEvent.signature=M;this.contextTriggerEvent=this.createEvent(A.CONTEXT_TRIGGER);this.contextTriggerEvent.signature=M;},initDefaultConfig:function(){G.superclass.initDefaultConfig.call(this);this.cfg.addProperty(H.PREVENT_OVERLAP.key,{value:H.PREVENT_OVERLAP.value,validator:H.PREVENT_OVERLAP.validator,supercedes:H.PREVENT_OVERLAP.supercedes});this.cfg.addProperty(H.SHOW_DELAY.key,{handler:this.configShowDelay,value:200,validator:H.SHOW_DELAY.validator});this.cfg.addProperty(H.AUTO_DISMISS_DELAY.key,{handler:this.configAutoDismissDelay,value:H.AUTO_DISMISS_DELAY.value,validator:H.AUTO_DISMISS_DELAY.validator});this.cfg.addProperty(H.HIDE_DELAY.key,{handler:this.configHideDelay,value:H.HIDE_DELAY.value,validator:H.HIDE_DELAY.validator});this.cfg.addProperty(H.TEXT.key,{handler:this.configText,suppressEvent:H.TEXT.suppressEvent});this.cfg.addProperty(H.CONTAINER.key,{handler:this.configContainer,value:document.body});this.cfg.addProperty(H.DISABLED.key,{handler:this.configContainer,value:H.DISABLED.value,supressEvent:H.DISABLED.suppressEvent});},configText:function(N,M,O){var P=M[0];if(P){this.setBody(P);}},configContainer:function(O,N,P){var M=N[0];if(typeof M=="string"){this.cfg.setProperty("container",document.getElementById(M),true);}},_removeEventListeners:function(){var P=this._context,M,O,N;if(P){M=P.length;if(M>0){N=M-1;do{O=P[N];L.removeListener(O,"mouseover",this.onContextMouseOver);L.removeListener(O,"mousemove",this.onContextMouseMove);L.removeListener(O,"mouseout",this.onContextMouseOut);}while(N--);}}},configContext:function(R,N,S){var Q=N[0],T,M,P,O;if(Q){if(!(Q instanceof Array)){if(typeof Q=="string"){this.cfg.setProperty("context",[document.getElementById(Q)],true);}else{this.cfg.setProperty("context",[Q],true);}Q=this.cfg.getProperty("context");}this._removeEventListeners();this._context=Q;T=this._context;if(T){M=T.length;if(M>0){O=M-1;do{P=T[O];L.on(P,"mouseover",this.onContextMouseOver,this);L.on(P,"mousemove",this.onContextMouseMove,this);L.on(P,"mouseout",this.onContextMouseOut,this);}while(O--);}}}},onContextMouseMove:function(N,M){M.pageX=L.getPageX(N);M.pageY=L.getPageY(N);},onContextMouseOver:function(O,N){var M=this;if(M.title){N._tempTitle=M.title;M.title="";}if(N.fireEvent("contextMouseOver",M,O)!==false&&!N.cfg.getProperty("disabled")){if(N.hideProcId){clearTimeout(N.hideProcId);N.hideProcId=null;}L.on(M,"mousemove",N.onContextMouseMove,N);N.showProcId=N.doShow(O,M);}},onContextMouseOut:function(O,N){var M=this;if(N._tempTitle){M.title=N._tempTitle;N._tempTitle=null;}if(N.showProcId){clearTimeout(N.showProcId);N.showProcId=null;}if(N.hideProcId){clearTimeout(N.hideProcId);N.hideProcId=null;}N.fireEvent("contextMouseOut",M,O);N.hideProcId=setTimeout(function(){N.hide();},N.cfg.getProperty("hidedelay"));},doShow:function(O,M){var P=25,N=this;if(YAHOO.env.ua.opera&&M.tagName&&M.tagName.toUpperCase()=="A"){P+=12;
}return setTimeout(function(){var Q=N.cfg.getProperty("text");if(N._tempTitle&&(Q===""||YAHOO.lang.isUndefined(Q)||YAHOO.lang.isNull(Q))){N.setBody(N._tempTitle);}else{N.cfg.refireEvent("text");}N.moveTo(N.pageX,N.pageY+P);if(N.cfg.getProperty("preventoverlap")){N.preventOverlap(N.pageX,N.pageY);}L.removeListener(M,"mousemove",N.onContextMouseMove);N.contextTriggerEvent.fire(M);N.show();N.hideProcId=N.doHide();},this.cfg.getProperty("showdelay"));},doHide:function(){var M=this;return setTimeout(function(){M.hide();},this.cfg.getProperty("autodismissdelay"));},preventOverlap:function(Q,P){var M=this.element.offsetHeight,O=new YAHOO.util.Point(Q,P),N=C.getRegion(this.element);N.top-=5;N.left-=5;N.right+=5;N.bottom+=5;if(N.contains(O)){this.cfg.setProperty("y",(P-M-5));}},onRender:function(Q,P){function R(){var U=this.element,T=this._shadow;if(T){T.style.width=(U.offsetWidth+6)+"px";T.style.height=(U.offsetHeight+1)+"px";}}function N(){C.addClass(this._shadow,"yui-tt-shadow-visible");}function M(){C.removeClass(this._shadow,"yui-tt-shadow-visible");}function S(){var V=this._shadow,U,T,X,W;if(!V){U=this.element;T=YAHOO.widget.Module;X=YAHOO.env.ua.ie;W=this;if(!F){F=document.createElement("div");F.className="yui-tt-shadow";}V=F.cloneNode(false);U.appendChild(V);this._shadow=V;N.call(this);this.subscribe("beforeShow",N);this.subscribe("beforeHide",M);if(X==6||(X==7&&document.compatMode=="BackCompat")){window.setTimeout(function(){R.call(W);},0);this.cfg.subscribeToConfigEvent("width",R);this.cfg.subscribeToConfigEvent("height",R);this.subscribe("changeContent",R);T.textResizeEvent.subscribe(R,this,true);this.subscribe("destroy",function(){T.textResizeEvent.unsubscribe(R,this);});}}}function O(){S.call(this);this.unsubscribe("beforeShow",O);}if(this.cfg.getProperty("visible")){S.call(this);}else{this.subscribe("beforeShow",O);}},destroy:function(){this._removeEventListeners();G.superclass.destroy.call(this);},toString:function(){return"Tooltip "+this.id;}});}());(function(){YAHOO.widget.Panel=function(R,Q){YAHOO.widget.Panel.superclass.constructor.call(this,R,Q);};var I=YAHOO.lang,E=YAHOO.util.DD,F=YAHOO.util.Dom,P=YAHOO.util.Event,B=YAHOO.widget.Overlay,O=YAHOO.util.CustomEvent,C=YAHOO.util.Config,N=YAHOO.widget.Panel,H,L,D,A={"SHOW_MASK":"showMask","HIDE_MASK":"hideMask","DRAG":"drag"},J={"CLOSE":{key:"close",value:true,validator:I.isBoolean,supercedes:["visible"]},"DRAGGABLE":{key:"draggable",value:(E?true:false),validator:I.isBoolean,supercedes:["visible"]},"DRAG_ONLY":{key:"dragonly",value:false,validator:I.isBoolean,supercedes:["draggable"]},"UNDERLAY":{key:"underlay",value:"shadow",supercedes:["visible"]},"MODAL":{key:"modal",value:false,validator:I.isBoolean,supercedes:["visible","zindex"]},"KEY_LISTENERS":{key:"keylisteners",suppressEvent:true,supercedes:["visible"]}};N.CSS_PANEL="yui-panel";N.CSS_PANEL_CONTAINER="yui-panel-container";N.FOCUSABLE=["a","button","select","textarea","input"];function M(R,Q){if(!this.header&&this.cfg.getProperty("draggable")){this.setHeader("&#160;");}}function K(R,Q,S){var V=S[0],T=S[1],U=this.cfg,W=U.getProperty("width");if(W==T){U.setProperty("width",V);}this.unsubscribe("hide",K,S);}function G(R,Q){var V=YAHOO.env.ua.ie,U,T,S;if(V==6||(V==7&&document.compatMode=="BackCompat")){U=this.cfg;T=U.getProperty("width");if(!T||T=="auto"){S=(this.element.offsetWidth+"px");U.setProperty("width",S);this.subscribe("hide",K,[(T||""),S]);}}}YAHOO.extend(N,B,{init:function(R,Q){N.superclass.init.call(this,R);this.beforeInitEvent.fire(N);F.addClass(this.element,N.CSS_PANEL);this.buildWrapper();if(Q){this.cfg.applyConfig(Q,true);}this.subscribe("showMask",this._addFocusHandlers);this.subscribe("hideMask",this._removeFocusHandlers);this.subscribe("beforeRender",M);this.initEvent.fire(N);},_onElementFocus:function(Q){this.blur();},_addFocusHandlers:function(Y,S){var V=this,Z="focus",U="hidden";function X(a){if(a.type!==U&&!F.isAncestor(V.element,a)){P.on(a,Z,V._onElementFocus);return true;}return false;}var W=N.FOCUSABLE,Q=W.length,T=[];for(var R=0;R<Q;R++){T=T.concat(F.getElementsBy(X,W[R]));}this.focusableElements=T;},_removeFocusHandlers:function(T,S){var V=this.focusableElements,Q=V.length,R="focus";if(V){for(var U=0;U<Q;U++){P.removeListener(V[U],R,this._onElementFocus);}}},initEvents:function(){N.superclass.initEvents.call(this);var Q=O.LIST;this.showMaskEvent=this.createEvent(A.SHOW_MASK);this.showMaskEvent.signature=Q;this.hideMaskEvent=this.createEvent(A.HIDE_MASK);this.hideMaskEvent.signature=Q;this.dragEvent=this.createEvent(A.DRAG);this.dragEvent.signature=Q;},initDefaultConfig:function(){N.superclass.initDefaultConfig.call(this);this.cfg.addProperty(J.CLOSE.key,{handler:this.configClose,value:J.CLOSE.value,validator:J.CLOSE.validator,supercedes:J.CLOSE.supercedes});this.cfg.addProperty(J.DRAGGABLE.key,{handler:this.configDraggable,value:J.DRAGGABLE.value,validator:J.DRAGGABLE.validator,supercedes:J.DRAGGABLE.supercedes});this.cfg.addProperty(J.DRAG_ONLY.key,{value:J.DRAG_ONLY.value,validator:J.DRAG_ONLY.validator,supercedes:J.DRAG_ONLY.supercedes});this.cfg.addProperty(J.UNDERLAY.key,{handler:this.configUnderlay,value:J.UNDERLAY.value,supercedes:J.UNDERLAY.supercedes});this.cfg.addProperty(J.MODAL.key,{handler:this.configModal,value:J.MODAL.value,validator:J.MODAL.validator,supercedes:J.MODAL.supercedes});this.cfg.addProperty(J.KEY_LISTENERS.key,{handler:this.configKeyListeners,suppressEvent:J.KEY_LISTENERS.suppressEvent,supercedes:J.KEY_LISTENERS.supercedes});},configClose:function(S,Q,U){var V=Q[0],R=this.close;function T(X,W){W.hide();}if(V){if(!R){if(!D){D=document.createElement("span");D.innerHTML="&#160;";D.className="container-close";}R=D.cloneNode(true);this.innerElement.appendChild(R);P.on(R,"click",T,this);this.close=R;}else{R.style.display="block";}}else{if(R){R.style.display="none";}}},configDraggable:function(R,Q,S){var T=Q[0];if(T){if(!E){this.cfg.setProperty("draggable",false);return ;}if(this.header){F.setStyle(this.header,"cursor","move");this.registerDragDrop();
}this.subscribe("beforeShow",G);}else{if(this.dd){this.dd.unreg();}if(this.header){F.setStyle(this.header,"cursor","auto");}this.unsubscribe("beforeShow",G);}},configUnderlay:function(b,a,V){var Z=YAHOO.env.ua,X=(this.platform=="mac"&&Z.gecko),Y=(Z.ie==6||(Z.ie==7&&document.compatMode=="BackCompat")),c=a[0].toLowerCase(),R=this.underlay,S=this.element;function d(){var e=this.underlay;F.addClass(e,"yui-force-redraw");window.setTimeout(function(){F.removeClass(e,"yui-force-redraw");},0);}function T(){var e=false;if(!R){if(!L){L=document.createElement("div");L.className="underlay";}R=L.cloneNode(false);this.element.appendChild(R);this.underlay=R;if(Y){this.sizeUnderlay();this.cfg.subscribeToConfigEvent("width",this.sizeUnderlay);this.cfg.subscribeToConfigEvent("height",this.sizeUnderlay);this.changeContentEvent.subscribe(this.sizeUnderlay);YAHOO.widget.Module.textResizeEvent.subscribe(this.sizeUnderlay,this,true);}if(Z.webkit&&Z.webkit<420){this.changeContentEvent.subscribe(d);}e=true;}}function W(){var e=T.call(this);if(!e&&Y){this.sizeUnderlay();}this._underlayDeferred=false;this.beforeShowEvent.unsubscribe(W);}function U(){if(this._underlayDeferred){this.beforeShowEvent.unsubscribe(W);this._underlayDeferred=false;}if(R){this.cfg.unsubscribeFromConfigEvent("width",this.sizeUnderlay);this.cfg.unsubscribeFromConfigEvent("height",this.sizeUnderlay);this.changeContentEvent.unsubscribe(this.sizeUnderlay);this.changeContentEvent.unsubscribe(d);YAHOO.widget.Module.textResizeEvent.unsubscribe(this.sizeUnderlay,this,true);this.element.removeChild(R);this.underlay=null;}}switch(c){case"shadow":F.removeClass(S,"matte");F.addClass(S,"shadow");break;case"matte":if(!X){U.call(this);}F.removeClass(S,"shadow");F.addClass(S,"matte");break;default:if(!X){U.call(this);}F.removeClass(S,"shadow");F.removeClass(S,"matte");break;}if((c=="shadow")||(X&&!R)){if(this.cfg.getProperty("visible")){var Q=T.call(this);if(!Q&&Y){this.sizeUnderlay();}}else{if(!this._underlayDeferred){this.beforeShowEvent.subscribe(W);this._underlayDeferred=true;}}}},configModal:function(R,Q,T){var S=Q[0];if(S){if(!this._hasModalityEventListeners){this.subscribe("beforeShow",this.buildMask);this.subscribe("beforeShow",this.bringToTop);this.subscribe("beforeShow",this.showMask);this.subscribe("hide",this.hideMask);B.windowResizeEvent.subscribe(this.sizeMask,this,true);this._hasModalityEventListeners=true;}}else{if(this._hasModalityEventListeners){if(this.cfg.getProperty("visible")){this.hideMask();this.removeMask();}this.unsubscribe("beforeShow",this.buildMask);this.unsubscribe("beforeShow",this.bringToTop);this.unsubscribe("beforeShow",this.showMask);this.unsubscribe("hide",this.hideMask);B.windowResizeEvent.unsubscribe(this.sizeMask,this);this._hasModalityEventListeners=false;}}},removeMask:function(){var R=this.mask,Q;if(R){this.hideMask();Q=R.parentNode;if(Q){Q.removeChild(R);}this.mask=null;}},configKeyListeners:function(T,Q,W){var S=Q[0],V,U,R;if(S){if(S instanceof Array){U=S.length;for(R=0;R<U;R++){V=S[R];if(!C.alreadySubscribed(this.showEvent,V.enable,V)){this.showEvent.subscribe(V.enable,V,true);}if(!C.alreadySubscribed(this.hideEvent,V.disable,V)){this.hideEvent.subscribe(V.disable,V,true);this.destroyEvent.subscribe(V.disable,V,true);}}}else{if(!C.alreadySubscribed(this.showEvent,S.enable,S)){this.showEvent.subscribe(S.enable,S,true);}if(!C.alreadySubscribed(this.hideEvent,S.disable,S)){this.hideEvent.subscribe(S.disable,S,true);this.destroyEvent.subscribe(S.disable,S,true);}}}},configHeight:function(T,R,U){var Q=R[0],S=this.innerElement;F.setStyle(S,"height",Q);this.cfg.refireEvent("iframe");},configWidth:function(T,Q,U){var S=Q[0],R=this.innerElement;F.setStyle(R,"width",S);this.cfg.refireEvent("iframe");},configzIndex:function(R,Q,T){N.superclass.configzIndex.call(this,R,Q,T);if(this.mask||this.cfg.getProperty("modal")===true){var S=F.getStyle(this.element,"zIndex");if(!S||isNaN(S)){S=0;}if(S===0){this.cfg.setProperty("zIndex",1);}else{this.stackMask();}}},buildWrapper:function(){var S=this.element.parentNode,Q=this.element,R=document.createElement("div");R.className=N.CSS_PANEL_CONTAINER;R.id=Q.id+"_c";if(S){S.insertBefore(R,Q);}R.appendChild(Q);this.element=R;this.innerElement=Q;F.setStyle(this.innerElement,"visibility","inherit");},sizeUnderlay:function(){var R=this.underlay,Q;if(R){Q=this.element;R.style.width=Q.offsetWidth+"px";R.style.height=Q.offsetHeight+"px";}},registerDragDrop:function(){var R=this;if(this.header){if(!E){return ;}var Q=(this.cfg.getProperty("dragonly")===true);this.dd=new E(this.element.id,this.id,{dragOnly:Q});if(!this.header.id){this.header.id=this.id+"_h";}this.dd.startDrag=function(){var T,V,S,Y,X,W;if(YAHOO.env.ua.ie==6){F.addClass(R.element,"drag");}if(R.cfg.getProperty("constraintoviewport")){var U=B.VIEWPORT_OFFSET;T=R.element.offsetHeight;V=R.element.offsetWidth;S=F.getViewportWidth();Y=F.getViewportHeight();X=F.getDocumentScrollLeft();W=F.getDocumentScrollTop();if(T+U<Y){this.minY=W+U;this.maxY=W+Y-T-U;}else{this.minY=W+U;this.maxY=W+U;}if(V+U<S){this.minX=X+U;this.maxX=X+S-V-U;}else{this.minX=X+U;this.maxX=X+U;}this.constrainX=true;this.constrainY=true;}else{this.constrainX=false;this.constrainY=false;}R.dragEvent.fire("startDrag",arguments);};this.dd.onDrag=function(){R.syncPosition();R.cfg.refireEvent("iframe");if(this.platform=="mac"&&YAHOO.env.ua.gecko){this.showMacGeckoScrollbars();}R.dragEvent.fire("onDrag",arguments);};this.dd.endDrag=function(){if(YAHOO.env.ua.ie==6){F.removeClass(R.element,"drag");}R.dragEvent.fire("endDrag",arguments);R.moveEvent.fire(R.cfg.getProperty("xy"));};this.dd.setHandleElId(this.header.id);this.dd.addInvalidHandleType("INPUT");this.dd.addInvalidHandleType("SELECT");this.dd.addInvalidHandleType("TEXTAREA");}},buildMask:function(){var Q=this.mask;if(!Q){if(!H){H=document.createElement("div");H.className="mask";H.innerHTML="&#160;";}Q=H.cloneNode(true);Q.id=this.id+"_mask";document.body.insertBefore(Q,document.body.firstChild);this.mask=Q;if(YAHOO.env.ua.gecko&&this.platform=="mac"){F.addClass(this.mask,"block-scrollbars");
}this.stackMask();}},hideMask:function(){if(this.cfg.getProperty("modal")&&this.mask){this.mask.style.display="none";this.hideMaskEvent.fire();F.removeClass(document.body,"masked");}},showMask:function(){if(this.cfg.getProperty("modal")&&this.mask){F.addClass(document.body,"masked");this.sizeMask();this.mask.style.display="block";this.showMaskEvent.fire();}},sizeMask:function(){if(this.mask){this.mask.style.height=F.getDocumentHeight()+"px";this.mask.style.width=F.getDocumentWidth()+"px";}},stackMask:function(){if(this.mask){var Q=F.getStyle(this.element,"zIndex");if(!YAHOO.lang.isUndefined(Q)&&!isNaN(Q)){F.setStyle(this.mask,"zIndex",Q-1);}}},render:function(Q){return N.superclass.render.call(this,Q,this.innerElement);},destroy:function(){B.windowResizeEvent.unsubscribe(this.sizeMask,this);this.removeMask();if(this.close){P.purgeElement(this.close);}N.superclass.destroy.call(this);},toString:function(){return"Panel "+this.id;}});}());(function(){YAHOO.widget.Dialog=function(L,K){YAHOO.widget.Dialog.superclass.constructor.call(this,L,K);};var J=YAHOO.util.Event,I=YAHOO.util.CustomEvent,D=YAHOO.util.Dom,B=YAHOO.util.KeyListener,H=YAHOO.util.Connect,F=YAHOO.widget.Dialog,E=YAHOO.lang,A={"BEFORE_SUBMIT":"beforeSubmit","SUBMIT":"submit","MANUAL_SUBMIT":"manualSubmit","ASYNC_SUBMIT":"asyncSubmit","FORM_SUBMIT":"formSubmit","CANCEL":"cancel"},G={"POST_METHOD":{key:"postmethod",value:"async"},"BUTTONS":{key:"buttons",value:"none"},"HIDEAFTERSUBMIT":{key:"hideaftersubmit",value:true}};F.CSS_DIALOG="yui-dialog";function C(){var N=this._aButtons,L,M,K;if(E.isArray(N)){L=N.length;if(L>0){K=L-1;do{M=N[K];if(YAHOO.widget.Button&&M instanceof YAHOO.widget.Button){M.destroy();}else{if(M.tagName.toUpperCase()=="BUTTON"){J.purgeElement(M);J.purgeElement(M,false);}}}while(K--);}}}YAHOO.extend(F,YAHOO.widget.Panel,{form:null,initDefaultConfig:function(){F.superclass.initDefaultConfig.call(this);this.callback={success:null,failure:null,argument:null};this.cfg.addProperty(G.POST_METHOD.key,{handler:this.configPostMethod,value:G.POST_METHOD.value,validator:function(K){if(K!="form"&&K!="async"&&K!="none"&&K!="manual"){return false;}else{return true;}}});this.cfg.addProperty(G.HIDEAFTERSUBMIT.key,{value:G.HIDEAFTERSUBMIT.value});this.cfg.addProperty(G.BUTTONS.key,{handler:this.configButtons,value:G.BUTTONS.value});},initEvents:function(){F.superclass.initEvents.call(this);var K=I.LIST;this.beforeSubmitEvent=this.createEvent(A.BEFORE_SUBMIT);this.beforeSubmitEvent.signature=K;this.submitEvent=this.createEvent(A.SUBMIT);this.submitEvent.signature=K;this.manualSubmitEvent=this.createEvent(A.MANUAL_SUBMIT);this.manualSubmitEvent.signature=K;this.asyncSubmitEvent=this.createEvent(A.ASYNC_SUBMIT);this.asyncSubmitEvent.signature=K;this.formSubmitEvent=this.createEvent(A.FORM_SUBMIT);this.formSubmitEvent.signature=K;this.cancelEvent=this.createEvent(A.CANCEL);this.cancelEvent.signature=K;},init:function(L,K){F.superclass.init.call(this,L);this.beforeInitEvent.fire(F);D.addClass(this.element,F.CSS_DIALOG);this.cfg.setProperty("visible",false);if(K){this.cfg.applyConfig(K,true);}this.showEvent.subscribe(this.focusFirst,this,true);this.beforeHideEvent.subscribe(this.blurButtons,this,true);this.subscribe("changeBody",this.registerForm);this.initEvent.fire(F);},doSubmit:function(){var Q=this.form,O=false,N=false,P,K,M,L;switch(this.cfg.getProperty("postmethod")){case"async":P=Q.elements;K=P.length;if(K>0){M=K-1;do{if(P[M].type=="file"){O=true;break;}}while(M--);}if(O&&YAHOO.env.ua.ie&&this.isSecure){N=true;}L=(Q.getAttribute("method")||"POST").toUpperCase();H.setForm(Q,O,N);H.asyncRequest(L,Q.getAttribute("action"),this.callback);this.asyncSubmitEvent.fire();break;case"form":Q.submit();this.formSubmitEvent.fire();break;case"none":case"manual":this.manualSubmitEvent.fire();break;}},registerForm:function(){var M=this.element.getElementsByTagName("form")[0],L=this,K,N;if(this.form){if(this.form==M&&D.isAncestor(this.element,this.form)){return ;}else{J.purgeElement(this.form);this.form=null;}}if(!M){M=document.createElement("form");M.name="frm_"+this.id;this.body.appendChild(M);}if(M){this.form=M;J.on(M,"submit",function(O){J.stopEvent(O);this.submit();this.form.blur();},this,true);this.firstFormElement=function(){var Q,P,O=M.elements.length;for(Q=0;Q<O;Q++){P=M.elements[Q];if(P.focus&&!P.disabled&&P.type!="hidden"){return P;}}return null;}();this.lastFormElement=function(){var Q,P,O=M.elements.length;for(Q=O-1;Q>=0;Q--){P=M.elements[Q];if(P.focus&&!P.disabled&&P.type!="hidden"){return P;}}return null;}();if(this.cfg.getProperty("modal")){K=this.firstFormElement||this.firstButton;if(K){this.preventBackTab=new B(K,{shift:true,keys:9},{fn:L.focusLast,scope:L,correctScope:true});this.showEvent.subscribe(this.preventBackTab.enable,this.preventBackTab,true);this.hideEvent.subscribe(this.preventBackTab.disable,this.preventBackTab,true);}N=this.lastButton||this.lastFormElement;if(N){this.preventTabOut=new B(N,{shift:false,keys:9},{fn:L.focusFirst,scope:L,correctScope:true});this.showEvent.subscribe(this.preventTabOut.enable,this.preventTabOut,true);this.hideEvent.subscribe(this.preventTabOut.disable,this.preventTabOut,true);}}}},configClose:function(M,K,N){var O=K[0];function L(Q,P){P.cancel();}if(O){if(!this.close){this.close=document.createElement("div");D.addClass(this.close,"container-close");this.close.innerHTML="&#160;";this.innerElement.appendChild(this.close);J.on(this.close,"click",L,this);}else{this.close.style.display="block";}}else{if(this.close){this.close.style.display="none";}}},configButtons:function(U,T,O){var P=YAHOO.widget.Button,W=T[0],M=this.innerElement,V,R,L,S,Q,K,N;C.call(this);this._aButtons=null;if(E.isArray(W)){Q=document.createElement("span");Q.className="button-group";S=W.length;this._aButtons=[];for(N=0;N<S;N++){V=W[N];if(P){L=new P({label:V.text,container:Q});R=L.get("element");if(V.isDefault){L.addClass("default");this.defaultHtmlButton=R;}if(E.isFunction(V.handler)){L.set("onclick",{fn:V.handler,obj:this,scope:this});
}else{if(E.isObject(V.handler)&&E.isFunction(V.handler.fn)){L.set("onclick",{fn:V.handler.fn,obj:((!E.isUndefined(V.handler.obj))?V.handler.obj:this),scope:(V.handler.scope||this)});}}this._aButtons[this._aButtons.length]=L;}else{R=document.createElement("button");R.setAttribute("type","button");if(V.isDefault){R.className="default";this.defaultHtmlButton=R;}R.innerHTML=V.text;if(E.isFunction(V.handler)){J.on(R,"click",V.handler,this,true);}else{if(E.isObject(V.handler)&&E.isFunction(V.handler.fn)){J.on(R,"click",V.handler.fn,((!E.isUndefined(V.handler.obj))?V.handler.obj:this),(V.handler.scope||this));}}Q.appendChild(R);this._aButtons[this._aButtons.length]=R;}V.htmlButton=R;if(N===0){this.firstButton=R;}if(N==(S-1)){this.lastButton=R;}}this.setFooter(Q);K=this.footer;if(D.inDocument(this.element)&&!D.isAncestor(M,K)){M.appendChild(K);}this.buttonSpan=Q;}else{Q=this.buttonSpan;K=this.footer;if(Q&&K){K.removeChild(Q);this.buttonSpan=null;this.firstButton=null;this.lastButton=null;this.defaultHtmlButton=null;}}this.cfg.refireEvent("iframe");this.cfg.refireEvent("underlay");},getButtons:function(){var K=this._aButtons;if(K){return K;}},focusFirst:function(N,L,P){var M=this.firstFormElement,K;if(L){K=L[1];if(K){J.stopEvent(K);}}if(M){try{M.focus();}catch(O){}}else{this.focusDefaultButton();}},focusLast:function(N,L,P){var Q=this.cfg.getProperty("buttons"),M=this.lastFormElement,K;if(L){K=L[1];if(K){J.stopEvent(K);}}if(Q&&E.isArray(Q)){this.focusLastButton();}else{if(M){try{M.focus();}catch(O){}}}},focusDefaultButton:function(){var K=this.defaultHtmlButton;if(K){try{K.focus();}catch(L){}}},blurButtons:function(){var P=this.cfg.getProperty("buttons"),M,O,L,K;if(P&&E.isArray(P)){M=P.length;if(M>0){K=(M-1);do{O=P[K];if(O){L=O.htmlButton;if(L){try{L.blur();}catch(N){}}}}while(K--);}}},focusFirstButton:function(){var N=this.cfg.getProperty("buttons"),M,K;if(N&&E.isArray(N)){M=N[0];if(M){K=M.htmlButton;if(K){try{K.focus();}catch(L){}}}}},focusLastButton:function(){var O=this.cfg.getProperty("buttons"),L,N,K;if(O&&E.isArray(O)){L=O.length;if(L>0){N=O[(L-1)];if(N){K=N.htmlButton;if(K){try{K.focus();}catch(M){}}}}}},configPostMethod:function(L,K,M){this.registerForm();},validate:function(){return true;},submit:function(){if(this.validate()){this.beforeSubmitEvent.fire();this.doSubmit();this.submitEvent.fire();if(this.cfg.getProperty("hideaftersubmit")){this.hide();}return true;}else{return false;}},cancel:function(){this.cancelEvent.fire();this.hide();},getData:function(){var a=this.form,M,T,W,O,U,R,Q,L,X,N,Y,b,K,P,c,Z,V;function S(e){var d=e.tagName.toUpperCase();return((d=="INPUT"||d=="TEXTAREA"||d=="SELECT")&&e.name==O);}if(a){M=a.elements;T=M.length;W={};for(Z=0;Z<T;Z++){O=M[Z].name;U=D.getElementsBy(S,"*",a);R=U.length;if(R>0){if(R==1){U=U[0];Q=U.type;L=U.tagName.toUpperCase();switch(L){case"INPUT":if(Q=="checkbox"){W[O]=U.checked;}else{if(Q!="radio"){W[O]=U.value;}}break;case"TEXTAREA":W[O]=U.value;break;case"SELECT":X=U.options;N=X.length;Y=[];for(V=0;V<N;V++){b=X[V];if(b.selected){K=b.value;if(!K||K===""){K=b.text;}Y[Y.length]=K;}}W[O]=Y;break;}}else{Q=U[0].type;switch(Q){case"radio":for(V=0;V<R;V++){P=U[V];if(P.checked){W[O]=P.value;break;}}break;case"checkbox":Y=[];for(V=0;V<R;V++){c=U[V];if(c.checked){Y[Y.length]=c.value;}}W[O]=Y;break;}}}}}return W;},destroy:function(){C.call(this);this._aButtons=null;var K=this.element.getElementsByTagName("form"),L;if(K.length>0){L=K[0];if(L){J.purgeElement(L);if(L.parentNode){L.parentNode.removeChild(L);}this.form=null;}}F.superclass.destroy.call(this);},toString:function(){return"Dialog "+this.id;}});}());(function(){YAHOO.widget.SimpleDialog=function(E,D){YAHOO.widget.SimpleDialog.superclass.constructor.call(this,E,D);};var C=YAHOO.util.Dom,B=YAHOO.widget.SimpleDialog,A={"ICON":{key:"icon",value:"none",suppressEvent:true},"TEXT":{key:"text",value:"",suppressEvent:true,supercedes:["icon"]}};B.ICON_BLOCK="blckicon";B.ICON_ALARM="alrticon";B.ICON_HELP="hlpicon";B.ICON_INFO="infoicon";B.ICON_WARN="warnicon";B.ICON_TIP="tipicon";B.ICON_CSS_CLASSNAME="yui-icon";B.CSS_SIMPLEDIALOG="yui-simple-dialog";YAHOO.extend(B,YAHOO.widget.Dialog,{initDefaultConfig:function(){B.superclass.initDefaultConfig.call(this);this.cfg.addProperty(A.ICON.key,{handler:this.configIcon,value:A.ICON.value,suppressEvent:A.ICON.suppressEvent});this.cfg.addProperty(A.TEXT.key,{handler:this.configText,value:A.TEXT.value,suppressEvent:A.TEXT.suppressEvent,supercedes:A.TEXT.supercedes});},init:function(E,D){B.superclass.init.call(this,E);this.beforeInitEvent.fire(B);C.addClass(this.element,B.CSS_SIMPLEDIALOG);this.cfg.queueProperty("postmethod","manual");if(D){this.cfg.applyConfig(D,true);}this.beforeRenderEvent.subscribe(function(){if(!this.body){this.setBody("");}},this,true);this.initEvent.fire(B);},registerForm:function(){B.superclass.registerForm.call(this);this.form.innerHTML+='<input type="hidden" name="'+this.id+'" value=""/>';},configIcon:function(F,E,J){var K=E[0],D=this.body,I=B.ICON_CSS_CLASSNAME,H,G;if(K&&K!="none"){H=C.getElementsByClassName(I,"*",D);if(H){G=H.parentNode;if(G){G.removeChild(H);H=null;}}if(K.indexOf(".")==-1){H=document.createElement("span");H.className=(I+" "+K);H.innerHTML="&#160;";}else{H=document.createElement("img");H.src=(this.imageRoot+K);H.className=I;}if(H){D.insertBefore(H,D.firstChild);}}},configText:function(E,D,F){var G=D[0];if(G){this.setBody(G);this.cfg.refireEvent("icon");}},toString:function(){return"SimpleDialog "+this.id;}});}());(function(){YAHOO.widget.ContainerEffect=function(F,I,H,E,G){if(!G){G=YAHOO.util.Anim;}this.overlay=F;this.attrIn=I;this.attrOut=H;this.targetElement=E||F.element;this.animClass=G;};var B=YAHOO.util.Dom,D=YAHOO.util.CustomEvent,C=YAHOO.util.Easing,A=YAHOO.widget.ContainerEffect;A.FADE=function(E,G){var I={attributes:{opacity:{from:0,to:1}},duration:G,method:C.easeIn};var F={attributes:{opacity:{to:0}},duration:G,method:C.easeOut};var H=new A(E,I,F,E.element);H.handleUnderlayStart=function(){var K=this.overlay.underlay;
if(K&&YAHOO.env.ua.ie){var J=(K.filters&&K.filters.length>0);if(J){B.addClass(E.element,"yui-effect-fade");}}};H.handleUnderlayComplete=function(){var J=this.overlay.underlay;if(J&&YAHOO.env.ua.ie){B.removeClass(E.element,"yui-effect-fade");}};H.handleStartAnimateIn=function(K,J,L){B.addClass(L.overlay.element,"hide-select");if(!L.overlay.underlay){L.overlay.cfg.refireEvent("underlay");}L.handleUnderlayStart();B.setStyle(L.overlay.element,"visibility","visible");B.setStyle(L.overlay.element,"opacity",0);};H.handleCompleteAnimateIn=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateInCompleteEvent.fire();};H.handleStartAnimateOut=function(K,J,L){B.addClass(L.overlay.element,"hide-select");L.handleUnderlayStart();};H.handleCompleteAnimateOut=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}B.setStyle(L.overlay.element,"visibility","hidden");B.setStyle(L.overlay.element,"opacity",1);L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateOutCompleteEvent.fire();};H.init();return H;};A.SLIDE=function(G,I){var F=G.cfg.getProperty("x")||B.getX(G.element),K=G.cfg.getProperty("y")||B.getY(G.element),J=B.getClientWidth(),H=G.element.offsetWidth,E=new A(G,{attributes:{points:{to:[F,K]}},duration:I,method:C.easeIn},{attributes:{points:{to:[(J+25),K]}},duration:I,method:C.easeOut},G.element,YAHOO.util.Motion);E.handleStartAnimateIn=function(M,L,N){N.overlay.element.style.left=((-25)-H)+"px";N.overlay.element.style.top=K+"px";};E.handleTweenAnimateIn=function(O,N,P){var Q=B.getXY(P.overlay.element),M=Q[0],L=Q[1];if(B.getStyle(P.overlay.element,"visibility")=="hidden"&&M<F){B.setStyle(P.overlay.element,"visibility","visible");}P.overlay.cfg.setProperty("xy",[M,L],true);P.overlay.cfg.refireEvent("iframe");};E.handleCompleteAnimateIn=function(M,L,N){N.overlay.cfg.setProperty("xy",[F,K],true);N.startX=F;N.startY=K;N.overlay.cfg.refireEvent("iframe");N.animateInCompleteEvent.fire();};E.handleStartAnimateOut=function(M,L,P){var N=B.getViewportWidth(),Q=B.getXY(P.overlay.element),O=Q[1];P.animOut.attributes.points.to=[(N+25),O];};E.handleTweenAnimateOut=function(N,M,O){var Q=B.getXY(O.overlay.element),L=Q[0],P=Q[1];O.overlay.cfg.setProperty("xy",[L,P],true);O.overlay.cfg.refireEvent("iframe");};E.handleCompleteAnimateOut=function(M,L,N){B.setStyle(N.overlay.element,"visibility","hidden");N.overlay.cfg.setProperty("xy",[F,K]);N.animateOutCompleteEvent.fire();};E.init();return E;};A.prototype={init:function(){this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");this.beforeAnimateInEvent.signature=D.LIST;this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");this.beforeAnimateOutEvent.signature=D.LIST;this.animateInCompleteEvent=this.createEvent("animateInComplete");this.animateInCompleteEvent.signature=D.LIST;this.animateOutCompleteEvent=this.createEvent("animateOutComplete");this.animateOutCompleteEvent.signature=D.LIST;this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);},animateIn:function(){this.beforeAnimateInEvent.fire();this.animIn.animate();},animateOut:function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();},handleStartAnimateIn:function(F,E,G){},handleTweenAnimateIn:function(F,E,G){},handleCompleteAnimateIn:function(F,E,G){},handleStartAnimateOut:function(F,E,G){},handleTweenAnimateOut:function(F,E,G){},handleCompleteAnimateOut:function(F,E,G){},toString:function(){var E="ContainerEffect";if(this.overlay){E+=" ["+this.overlay.toString()+"]";}return E;}};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);})();YAHOO.register("container",YAHOO.widget.Module,{version:"2.5.1",build:"984"});
/*
    json2.js
    2007-11-06

    Public Domain

    No warranty expressed or implied. Use at your own risk.

    See http://www.JSON.org/js.html

    This file creates a global JSON object containing two methods:

        JSON.stringify(value, whitelist)
            value       any JavaScript value, usually an object or array.

            whitelist   an optional that determines how object values are
                        stringified.

            This method produces a JSON text from a JavaScript value.
            There are three possible ways to stringify an object, depending
            on the optional whitelist parameter.

            If an object has a toJSON method, then the toJSON() method will be
            called. The value returned from the toJSON method will be
            stringified.

            Otherwise, if the optional whitelist parameter is an array, then
            the elements of the array will be used to select members of the
            object for stringification.

            Otherwise, if there is no whitelist parameter, then all of the
            members of the object will be stringified.

            Values that do not have JSON representaions, such as undefined or
            functions, will not be serialized. Such values in objects will be
            dropped, in arrays will be replaced with null. JSON.stringify()
            returns undefined. Dates will be stringified as quoted ISO dates.

            Example:

            var text = JSON.stringify(['e', {pluribus: 'unum'}]);
            // text is '["e",{"pluribus":"unum"}]'

        JSON.parse(text, filter)
            This method parses a JSON text to produce an object or
            array. It can throw a SyntaxError exception.

            The optional filter parameter is a function that can filter and
            transform the results. It receives each of the keys and values, and
            its return value is used instead of the original value. If it
            returns what it received, then structure is not modified. If it
            returns undefined then the member is deleted.

            Example:

            // Parse the text. If a key contains the string 'date' then
            // convert the value to a date.

            myData = JSON.parse(text, function (key, value) {
                return key.indexOf('date') >= 0 ? new Date(value) : value;
            });

    This is a reference implementation. You are free to copy, modify, or
    redistribute.

    Use your own copy. It is extremely unwise to load third party
    code into your pages.
*/

/*jslint evil: true */
/*extern JSON */

if (!this.JSON) {

    JSON = function () {

        function f(n) {    // Format integers to have at least two digits.
            return n < 10 ? '0' + n : n;
        }

        Date.prototype.toJSON = function () {

// Eventually, this method will be based on the date.toISOString method.

            return this.getUTCFullYear()   + '-' +
                 f(this.getUTCMonth() + 1) + '-' +
                 f(this.getUTCDate())      + 'T' +
                 f(this.getUTCHours())     + ':' +
                 f(this.getUTCMinutes())   + ':' +
                 f(this.getUTCSeconds())   + 'Z';
        };


        var m = {    // table of character substitutions
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        };

        function stringify(value, whitelist) {
            var a,          // The array holding the partial texts.
                i,          // The loop counter.
                k,          // The member key.
                l,          // Length.
                r = /["\\\x00-\x1f\x7f-\x9f]/g,
                v;          // The member value.

            switch (typeof value) {
            case 'string':

// If the string contains no control characters, no quote characters, and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe sequences.

                return r.test(value) ?
                    '"' + value.replace(r, function (a) {
                        var c = m[a];
                        if (c) {
                            return c;
                        }
                        c = a.charCodeAt();
                        return '\\u00' + Math.floor(c / 16).toString(16) +
                                                   (c % 16).toString(16);
                    }) + '"' :
                    '"' + value + '"';

            case 'number':

// JSON numbers must be finite. Encode non-finite numbers as null.

                return isFinite(value) ? String(value) : 'null';

            case 'boolean':
            case 'null':
                return String(value);

            case 'object':

// Due to a specification blunder in ECMAScript,
// typeof null is 'object', so watch out for that case.

                if (!value) {
                    return 'null';
                }

// If the object has a toJSON method, call it, and stringify the result.

                if (typeof value.toJSON === 'function') {
                    return stringify(value.toJSON());
                }
                a = [];
                if (typeof value.length === 'number' &&
                        !(value.propertyIsEnumerable('length'))) {

// The object is an array. Stringify every element. Use null as a placeholder
// for non-JSON values.

                    l = value.length;
                    for (i = 0; i < l; i += 1) {
                        a.push(stringify(value[i], whitelist) || 'null');
                    }

// Join all of the elements together and wrap them in brackets.

                    return '[' + a.join(',') + ']';
                }
                if (whitelist) {

// If a whitelist (array of keys) is provided, use it to select the components
// of the object.

                    l = whitelist.length;
                    for (i = 0; i < l; i += 1) {
                        k = whitelist[i];
                        if (typeof k === 'string') {
                            v = stringify(value[k], whitelist);
                            if (v) {
                                a.push(stringify(k) + ':' + v);
                            }
                        }
                    }
                } else {

// Otherwise, iterate through all of the keys in the object.

                    for (k in value) {
                        if (typeof k === 'string') {
                            v = stringify(value[k], whitelist);
                            if (v) {
                                a.push(stringify(k) + ':' + v);
                            }
                        }
                    }
                }

// Join all of the member texts together and wrap them in braces.

                return '{' + a.join(',') + '}';
            }
        }

        return {
            stringify: stringify,
            parse: function (text, filter) {
                var j;

                function walk(k, v) {
                    var i, n;
                    if (v && typeof v === 'object') {
                        for (i in v) {
                            if (Object.prototype.hasOwnProperty.apply(v, [i])) {
                                n = walk(i, v[i]);
                                if (n !== undefined) {
                                    v[i] = n;
                                }
                            }
                        }
                    }
                    return filter(k, v);
                }


// Parsing happens in three stages. In the first stage, we run the text against
// regular expressions that look for non-JSON patterns. We are especially
// concerned with '()' and 'new' because they can cause invocation, and '='
// because it can cause mutation. But just to be safe, we want to reject all
// unexpected forms.

// We split the first stage into 4 regexp operations in order to work around
// crippling inefficiencies in IE's and Safari's regexp engines. First we
// replace all backslash pairs with '@' (a non-JSON character). Second, we
// replace all simple value tokens with ']' characters. Third, we delete all
// open brackets that follow a colon or comma or that begin the text. Finally,
// we look to see that the remaining characters are only whitespace or ']' or
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.

                if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {

// In the second stage we use the eval function to compile the text into a
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We wrap the text
// in parens to eliminate the ambiguity.

                    j = eval('(' + text + ')');

// In the optional third stage, we recursively walk the new structure, passing
// each name/value pair to a filter function for possible transformation.

                    return typeof filter === 'function' ? walk('', j) : j;
                }

// If the text is not JSON parseable, then a SyntaxError is thrown.

                throw new SyntaxError('parseJSON');
            }
        };
    }();
}

/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/

var Base64 = {

    // private property
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    // public method for encoding
    encode : function (input) {
    	input = escape(input);
	     var output = '';
	     var chr1, chr2, chr3 = '';
	     var enc1, enc2, enc3, enc4 = '';
	     var i = 0;
	     do {
	        chr1 = input.charCodeAt(i++);
	        chr2 = input.charCodeAt(i++);
	        chr3 = input.charCodeAt(i++);
	
	        enc1 = chr1 >> 2;
	        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
	        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
	        enc4 = chr3 & 63;
	
	        if (isNaN(chr2)) {
	           enc3 = enc4 = 64;
	        } else if (isNaN(chr3)) {
	           enc4 = 64;
	        }
	
	        output = output +
	           this._keyStr.charAt(enc1) +
	           this._keyStr.charAt(enc2) +
	           this._keyStr.charAt(enc3) +
	           this._keyStr.charAt(enc4);
	        chr1 = chr2 = chr3 = '';
	        enc1 = enc2 = enc3 = enc4 = '';
	       
	     } while (i < input.length);

        return output;
    },

    // public method for decoding
    decode : function (input) {
        var output = "";
	     var chr1, chr2, chr3 = "";
	     var enc1, enc2, enc3, enc4 = "";
	     var i = 0;
	     
	     input = Base64._utf8_encode(input);
	
	     // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
	     var base64test = /[^A-Za-z0-9\+\/\=]/g;
	     if (base64test.exec(input)) {
	        alert("There were invalid base64 characters in the input text.\n" +
	              "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
	              "Expect errors in decoding.");
	     }
	     input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
	
	     do {
	        enc1 = this._keyStr.indexOf(input.charAt(i++));
	        enc2 = this._keyStr.indexOf(input.charAt(i++));
	        enc3 = this._keyStr.indexOf(input.charAt(i++));
	        enc4 = this._keyStr.indexOf(input.charAt(i++));
	
	        chr1 = (enc1 << 2) | (enc2 >> 4);
	        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
	        chr3 = ((enc3 & 3) << 6) | enc4;
	
	        output = output + String.fromCharCode(chr1);
	
	        if (enc3 != 64) {
	           output = output + String.fromCharCode(chr2);
	        }
	        if (enc4 != 64) {
	           output = output + String.fromCharCode(chr3);
	        }
	
	        chr1 = chr2 = chr3 = "";
	        enc1 = enc2 = enc3 = enc4 = "";
	
	     } while (i < input.length);
	
	     output = Base64._utf8_decode(output);
	     
	     return unescape(output);


    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}


//(function() {

var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;

//////////////////////////////////////////////////////////////////////////////
// example app
//////////////////////////////////////////////////////////////////////////////
	YAHOO.example.DDApp = {
	    init: function() {
try {
	    	var draglistsArray = Dom.getElementsByClassName('draglist');
			if (draglistsArray.length>0) {
		        for (var i=0;i < draglistsArray.length;i=i+1) {
		            new YAHOO.util.DDTarget(draglistsArray[i],'groupWidgets');
		        }
			}

			// inicializace drag&drop funkcnosti nad widgety na strance
			var widgetboxesArray = Dom.getElementsByClassName(SiteOneWidgets.widgetClassName);
			if (widgetboxesArray.length>0) {
		        for (var i=0;i < widgetboxesArray.length;i=i+1) {
	                a = new YAHOO.example.DDList(widgetboxesArray[i],'groupWidgets',{resizeFrame: false});
	                if (SiteOneWidgets.arrOWidgets[widgetboxesArray[i].id]) {
	                	SiteOneWidgets.arrOWidgets[widgetboxesArray[i].id].oDD = a;
	                	a.setHandleElId(SiteOneWidgets.arrOWidgets[widgetboxesArray[i].id].header.id);
	                }
	            }
	        }
	        
			// inicializace drag&drop funkcnosti nad typy widgetu v nabidce
			var widgetTypesArray = Dom.getElementsByClassName(SiteOneWidgets.widgetTypeClassName);
			var arrHeaders = null;
			if (widgetTypesArray.length>0) {
				var elHlavicka = null;
		        for (var i=0;i < widgetTypesArray.length;i=i+1) {
	                a = new YAHOO.example.DDList(widgetTypesArray[i],'groupWidgets',{resizeFrame: false});
	                //SiteOneWidgets.arrOWidgets[widgetboxesArray[i].id].oDD = a;
					arrHeaders = Dom.getElementsByClassName('widgetHeader','div',widgetTypesArray[i]);
					if (arrHeaders.length) {
		                elHlavicka = Dom.getFirstChild(arrHeaders[0]);
		                Dom.generateId(arrHeaders[0]);
		                a.setHandleElId(arrHeaders[0].id);
					}
	            }
	        }
} catch (e) {
	//alert(YAHOO.lang.dump(e));
}
	    }
	};

//////////////////////////////////////////////////////////////////////////////
// custom drag and drop implementation
//////////////////////////////////////////////////////////////////////////////

YAHOO.example.DDList = function(id, sGroup, config) {

    YAHOO.example.DDList.superclass.constructor.call(this, id, sGroup, config);

    var el = this.getDragEl();
    //Dom.setStyle(el, "opacity", 0.67); // The proxy is slightly transparent

    this.goingUp = false;
    this.lastY = 0;
};

YAHOO.extend(YAHOO.example.DDList, YAHOO.util.DDProxy, {

    startDrag: function(x, y) {

        // make the proxy look like the source element
        var dragEl = this.getDragEl();
        var clickEl = this.getEl();

        // pri zacatku tazeni elementu widget minimalizujeme, lze pak snadneji hybat s vesimi widgety
        if (SiteOneWidgets.arrOWidgets[clickEl.id] && SiteOneWidgets.arrOWidgets[clickEl.id].minimize) {
			SiteOneWidgets.arrOWidgets[clickEl.id].minimize();
			if (SiteOneWidgets.arrOWidgets[clickEl.id].header) {
				Dom.setStyle(SiteOneWidgets.arrOWidgets[clickEl.id].header, "visibility", "hidden");
			}
			if (SiteOneWidgets.arrOWidgets[clickEl.id].body) {
				Dom.setStyle(SiteOneWidgets.arrOWidgets[clickEl.id].body, "visibility", "hidden");
			}
			if (SiteOneWidgets.arrOWidgets[clickEl.id].footer) {
				Dom.setStyle(SiteOneWidgets.arrOWidgets[clickEl.id].footer, "visibility", "hidden");
			}
        }
		Dom.setStyle(dragEl,'width',Dom.getStyle(clickEl,'width'));
		Dom.setStyle(dragEl,'height',Dom.getStyle(clickEl,'height'));
		
		/* u widgetu se puvodnimu elementu nastavi visibility hidden (pak se misto nej zobrazuje prazdne misto) u typu widgetu musi
			zustat puvodni element viditelny
		*/
		if (!Dom.hasClass(clickEl, SiteOneWidgets.widgetTypeClassName)) {
//			Dom.setStyle(clickEl, "visibility", "hidden");
	        Dom.setStyle(clickEl, "backgroundColor", "silver");
		}

        //dragEl.innerHTML = clickEl.innerHTML;

        Dom.setStyle(dragEl, "color", Dom.getStyle(clickEl, "color"));
        Dom.setStyle(dragEl, "backgroundColor", Dom.getStyle(clickEl, "backgroundColor"));
        //Dom.setStyle(dragEl, "backgroundColor", "2px solid gray");
        Dom.setStyle(dragEl, "zIndex", "999");
    },

    endDrag: function(e) {

        var srcEl = this.getEl();
        var proxy = this.getDragEl();

        // Show the proxy element and animate it to the src element's location
        Dom.setStyle(proxy, "visibility", "");
        var a = new YAHOO.util.Motion( 
            proxy, { 
                points: { 
                    to: Dom.getXY(srcEl)
                }
            }, 
            0.3, 
            YAHOO.util.Easing.easeOut
        )
        var proxyid = proxy.id;
        var thisid = srcEl.id;

        // Hide the proxy and show the source element when finished with the animation
        a.onComplete.subscribe(function() {
                Dom.setStyle(proxyid, "visibility", "hidden");
//                Dom.setStyle(thisid, "visibility", "");
				if (!Dom.hasClass(thisid, SiteOneWidgets.widgetTypeClassName)) {
			        Dom.setStyle(thisid, "backgroundColor", "transparent");
				}
                
                if (SiteOneWidgets.arrOWidgets[thisid]) {
                	// po dokonceni tazeni a dokonceni animace maximalizujeme widget
			        if (SiteOneWidgets.arrOWidgets[thisid].maximize) {
						SiteOneWidgets.arrOWidgets[thisid].maximize();
						if (SiteOneWidgets.arrOWidgets[srcEl.id].header) {
							Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].header, "visibility", "");
						}
						if (SiteOneWidgets.arrOWidgets[srcEl.id].body) {
							Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].body, "visibility", "");
						}
						if (SiteOneWidgets.arrOWidgets[srcEl.id].footer) {
							Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].footer, "visibility", "");
						}
			        }
			        // pokud je jiz nastaven uzivatel, ulozime dany widget, jinak ulozime vsechny
					if (!SiteOneWidgets.getUser()) {
						SiteOneWidgets.saveAllWidgets();
					} else if (SiteOneWidgets.arrOWidgets[thisid].saveWidget) {
		       				SiteOneWidgets.arrOWidgets[thisid].saveWidget(false, true);
					}
                }
            });
        a.animate();
    },
    
	// zde se resi, pokud se tazeny element pusti nad prazdnym draglistem, nebo na spodni casti neprazdneho draglistu
    onDragDrop: function(e, id) {

        // If there is one drop interaction, the li was dropped either on the list,
        // or it was dropped on the current location of the source element.
        if (DDM.interactionInfo.drop.length === 1) {

            // The position of the cursor at the time of the drop (YAHOO.util.Point)
            var pt = DDM.interactionInfo.point; 

            // The region occupied by the source element at the time of the drop
            var region = DDM.interactionInfo.sourceRegion; 

			var destEl = Dom.get(id);
            // Check to see if we are over the source element's location.  We will
            // append to the bottom of the list once we are sure it was a drop in
            // the negative space (the area of the list without any list items)
            if (!region.intersect(pt) && Dom.hasClass(destEl, 'draglist')) {
		        var srcEl = this.getEl();
            	var destDD = DDM.getDDById(destEl.id);
	            // jestlize tazeny element je typ widgetu (tj. tazeny z accordionu) vytvorime z nej normalni widget
	            if (Dom.hasClass(srcEl, SiteOneWidgets.widgetTypeClassName)) {
		            var orig_p = srcEl.parentNode;
		            
		            // naklonuji tazeny element typ widgetu (resp. element, ktery je zastupovan proxy) 
		            var newElWidgetType = srcEl.cloneNode(true);
		            newElWidgetType.id = Dom.generateId();
		            
		            // nad novym typem widgetu inicializuji funkcnost drag&drop
	                a = new YAHOO.example.DDList(newElWidgetType,'groupWidgets',{resizeFrame: false});
	                
	                // vlozim novy typ widgetu misto puvodniho
		            orig_p.insertBefore(newElWidgetType,srcEl);
		            
		            // z puvodniho tazeneho typu widgetu udelam normalni widget
		            Dom.replaceClass(srcEl,SiteOneWidgets.widgetTypeClassName,SiteOneWidgets.widgetClassName);
					
		            // a inicializuji jiz normalni widget
					SiteOneWidgets.initWidgetObjectFromElement(srcEl);
					SiteOneWidgets.arrOWidgets[srcEl.id].oDD = this;
					
					
					Dom.setStyle(srcEl, "visibility", "hidden");
	            }
            	destEl.appendChild(srcEl);
            	destDD.isEmpty = false;
            	DDM.refreshCache();
            }

        }

    },

    onDrag: function(e) {

        // Keep track of the direction of the drag for use during onDragOver
        var y = Event.getPageY(e);

        if (y < this.lastY) {
            this.goingUp = true;
        } else if (y > this.lastY) {
            this.goingUp = false;
        }

        this.lastY = y;
    },

	// zde se resi, pokud se tazenym elementem prejizdi pres existujici elementy s drag&drop funkcnosti, tady dochazi k vlastnimu preskupovani
    onDragOver: function(e, id) {
        var destEl = Dom.get(id);
        var srcEl = this.getEl();
		var dragEl = this.getDragEl();
		
		// preskupovani se provadi pouze s normalnimi widgety (ne s draglisty ani s typy widgetu)
		if (destEl && destEl.nodeName.toLowerCase() == "div" && Dom.hasClass(destEl, SiteOneWidgets.widgetClassName)) {
            var orig_p = srcEl.parentNode;
            var p = destEl.parentNode;
            
            // jestlize tazeny element je typ widgetu (tj. tazeny z accordionu) vytvorime z nej normalni widget
            if (Dom.hasClass(srcEl, SiteOneWidgets.widgetTypeClassName)) {

            	// naklonuji tazeny element (resp element, ktery je zastupovan proxy)
	            var newElWidgetType = srcEl.cloneNode(true);
	            newElWidgetType.id = Dom.generateId();
	            
	            // nad novym typem widgetu inicializuji funkcnost drag&drop
                a = new YAHOO.example.DDList(newElWidgetType,'groupWidgets',{resizeFrame: false});
                
                // vlozim novy typ widgetu misto puvodniho
	            Dom.insertBefore(newElWidgetType,srcEl);
				
				// z puvodniho tazeneho typu widgetu udelam normalni widget
	            Dom.replaceClass(srcEl,SiteOneWidgets.widgetTypeClassName,SiteOneWidgets.widgetClassName);
	            
				SiteOneWidgets.initWidgetObjectFromElement(srcEl);
				SiteOneWidgets.arrOWidgets[srcEl.id].oDD = this;
				
				// nove vytvoreny widget jeste minimalizujeme, stejne jako kdyz zaciname tahat normalni widget
				SiteOneWidgets.arrOWidgets[srcEl.id].minimize();
				if (SiteOneWidgets.arrOWidgets[srcEl.id].header) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].header, "visibility", "hidden");
				}
				if (SiteOneWidgets.arrOWidgets[srcEl.id].body) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].body, "visibility", "hidden");
				}
				if (SiteOneWidgets.arrOWidgets[srcEl.id].footer) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].footer, "visibility", "hidden");
				}
		        Dom.setStyle(srcEl, "backgroundColor", "silver");
//				Dom.setStyle(srcEl, "visibility", "hidden");
            }

            if (this.goingUp) {
                p.insertBefore(srcEl, destEl); // insert above
            } else {
                p.insertBefore(srcEl, destEl.nextSibling); // insert below
            }

            DDM.refreshCache();
		// pokud se jedna o draglist a tazeny element zatim v tomto draglistu neni, priradim ho jako child element
        } else if (destEl && destEl.nodeName.toLowerCase() == "div" && Dom.hasClass(destEl, 'draglist') && srcEl.parentNode!=destEl) {
            var orig_p = srcEl.parentNode;
            var p = destEl;
            // jestlize tazeny element je typ widgetu (tj. tazeny z accordionu) vytvorime z nej normalni widget
            if (Dom.hasClass(srcEl, SiteOneWidgets.widgetTypeClassName)) {

            	// naklonuji tazeny element (resp element, ktery je zastupovan proxy)
	            var newElWidgetType = srcEl.cloneNode(true);
	            newElWidgetType.id = Dom.generateId();
	            
	            // nad novym typem widgetu inicializuji funkcnost drag&drop
                a = new YAHOO.example.DDList(newElWidgetType,'groupWidgets',{resizeFrame: false});
                
                // vlozim novy typ widgetu misto puvodniho
	            Dom.insertBefore(newElWidgetType,srcEl);
				
				// z puvodniho tazeneho typu widgetu udelam normalni widget
	            Dom.replaceClass(srcEl,SiteOneWidgets.widgetTypeClassName,SiteOneWidgets.widgetClassName);
	            
				SiteOneWidgets.initWidgetObjectFromElement(srcEl);
				SiteOneWidgets.arrOWidgets[srcEl.id].oDD = this;
				
				// nove vytvoreny widget jeste minimalizujeme, stejne jako kdyz zaciname tahat normalni widget
				SiteOneWidgets.arrOWidgets[srcEl.id].minimize();
				if (SiteOneWidgets.arrOWidgets[srcEl.id].header) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].header, "visibility", "hidden");
				}
				if (SiteOneWidgets.arrOWidgets[srcEl.id].body) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].body, "visibility", "hidden");
				}
				if (SiteOneWidgets.arrOWidgets[srcEl.id].footer) {
					Dom.setStyle(SiteOneWidgets.arrOWidgets[srcEl.id].footer, "visibility", "hidden");
				}
		        Dom.setStyle(srcEl, "backgroundColor", "silver");
//				Dom.setStyle(srcEl, "visibility", "hidden");
            }

            p.appendChild(srcEl);
        }
    }
});

//Event.onDOMReady(YAHOO.example.DDApp.init, YAHOO.example.DDApp, true);

//})();

	

	function getSelectedCheckbox(buttonGroup) {
	   // Go through all the check boxes. return an array of all the ones
	   // that are selected (their position numbers). if no boxes were checked,
	   // returned array will be empty (length will be zero)
	   var retArr = new Array();
	   var lastElement = 0;
	   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
	      for (var i=0; i<buttonGroup.length; i++) {
	         if (buttonGroup[i].checked) {
	            retArr.length = lastElement;
	            retArr[lastElement] = i;
	            lastElement++;
	         }
	      }
	   } else { // There is only one check box (it's not an array)
	      if (buttonGroup.checked) { // if the one check box is checked
	         retArr.length = lastElement;
	         retArr[lastElement] = 0; // return zero as the only array value
	      }
	   }
	   return retArr;
	} // Ends the "getSelectedCheckbox" function
	
	function getSelectedCheckboxValue(buttonGroup) {
	   // return an array of values selected in the check box group. if no boxes
	   // were checked, returned array will be empty (length will be zero)
	   var retArr = new Array(); // set up empty array for the return values
	   var selectedItems = getSelectedCheckbox(buttonGroup);
	   if (selectedItems.length != 0) { // if there was something selected
	      retArr.length = selectedItems.length;
	      for (var i=0; i<selectedItems.length; i++) {
	         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
	            retArr[i] = buttonGroup[selectedItems[i]].value;
	         } else { // It's not an array (there's just one check box and it's selected)
	            retArr[i] = buttonGroup.value;// return that value
	         }
	      }
	   }
	   return retArr;
	} // Ends the "getSelectedCheckBoxValue" function


	var SiteOneWidgetsSetupInit = function() {
			SiteOneWidgetsSetup.init();
	}
	
	var SiteOneWidgetsSetup = {
		/**
		 * Objekt reprezentujici modalni dialogove okno s nastavenim
		 * @var YAHOO.widget.Panel
		 */
		oDialog: null,
		
		/**
		 * Element, do ktereho se nacte formular ze serveru
		 * @var HTMLElement
		 */
		elFormContainer: null,
		
		/**
		 * Widget, pro ktery je prave otevreno dialogove okno
		 * @var Object (SiteOneWidget, SiteOneWidgetGraf, SiteOneWidgetRSS,...)
		 */
		oWidget: null,
		
		init: function () {
			// jestli jiz byl dialog inicializovan, neinicializuji znovu (jr-2008-09-02)
			if (this.oDialog != null) {
				return;
			}
			this.elFormContainer = document.getElementById('ajaxContainer');
			this.oDialog = new YAHOO.widget.Panel("formNastaveni",
				{ width : "400px",
				  //x: 305,
				  //y: 260,
				  visible : false,
				  dragable: true,
				  modal: true
				}
			);
			this.oDialog.render(document.body);
		},
		
		/**
		 * Metoda nacte formular na upravu nastaveni widgetu ze serveru a zobrazi jej v dialogovem okne
		 * 
		 * @param Event e
		 * @param Object (SiteOneWidget, SiteOneWidgetGraf, SiteOneWidgetRSS,...) oWidget
		 */
		showSetupDialog: function (e, oWidget) {
			try {
				this.init();	// inicializace okna s dialogem (jr-2008-09-02)
				this.oWidget = oWidget;
				var handleSuccess = function(oResponse) {
					// jestlize smazani probehlo v poradku, odstranime HTML element a objekt ze seznamu widgetu
					if (oResponse.responseText != '') {
						
						var oCustomResponse = new SiteOneWidgetsResponse('getSettingsHTML',oResponse.responseText);
						if (oCustomResponse && oCustomResponse.oData && oCustomResponse.oData.sObsah!='') {
							Dom.removeClass('formNastaveni', 'closed');
							
							this.processContent(oCustomResponse.oData.sObsah);
							
							if (this.oDialog) {
								this.oDialog.center();
								this.oDialog.sizeUnderlay();
								this.oDialog.show();
							}
						} else {
							/*alert('Chyba pri ziskavani formulare pro nastaveni widgetu (server)');*/
							return false;
						}
					} else {
						/*alert('Chyba pri ziskavani formulare pro nastaveni widgetu - prazdna odpoved(server)');*/
						return false;
					}
				};
				var handleFailure = function(oResponse) {
					/*alert('Chyba pri ziskavani formulare pro nastaveni widgetu (timeout)');*/
				};
				var callback =
				{
					success: handleSuccess,
					failure: handleFailure,
					scope: this,
					timeout: 10000
				};
				var userId = SiteOneWidgets.getUser();
//				var url = '/_system/ajaxWidgetServer.php';
				var oRequest = new SiteOneWidgetRequestGetSettingsHTML({
					idUzivatel:			userId,
					idWidget:			oWidget.widgetDbId,
					widgetConfig:		oWidget.widgetConfig,
					widgetType:			oWidget.widgetType
				});
//				var postData = 'actName=getSettingsHTML&Data='+JSON.stringify(oRequest);
//				var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
				SiteOneWidgetsRequest.sendRequest('getSettingsHTML',oRequest,callback);
			} catch (e) {
				
			}
		},
		
		/**
		 * Metoda zpracuje prijaty formular prida tlacitko na ulozeni a navesi na nej handler
		 * 
		 * @param string sContent
		 */
		processContent: function (sContent) {
			try {
				this.elFormContainer.innerHTML = sContent;
				this.elFormContainer.innerHTML += '<br /><div class="spacer j"></div>';
				var elBtnSave = document.createElement('input');
				elBtnSave.setAttribute('type','button');
				elBtnSave.setAttribute('value','');
				elBtnSave.setAttribute('id','frmSetupSave');
				this.elFormContainer.appendChild(elBtnSave);
	       		Event.addListener(elBtnSave, 'click', this.saveConfig, this, true);
				var elCleaner = document.createElement('div');
				elCleaner.className='cleaner';
				this.elFormContainer.appendChild(elCleaner);
			} catch (e) {
				
			}
		},
		
		/**
		 * Metoda ulozi formularove hodnoty do konfigurace widgetu a ten nasledne ulozi
		 * 
		 * @param Event e
		 * @param this obj
		 */
		saveConfig: function (e, obj) {
			var oConfig = this.getConfigFromForm();

			this.oWidget.setConfig(oConfig);
			if (!SiteOneWidgets.getUser()) {
				SiteOneWidgets.saveAllWidgets();
			} else if (this.oWidget.saveWidget) {
       			this.oWidget.saveWidget(true,false);
			}
			
			this.oDialog.hide();
		},
		
		/**
		 * Metoda projede vsechny formularove elementy s hodnotami a vrati objekt s konfiguraci
		 * 
		 * @return Object
		 */
		getConfigFromForm: function () {
			var arrElInput = this.elFormContainer.getElementsByTagName('input');
			var arrElSelect = this.elFormContainer.getElementsByTagName('select');
			var arrElTextarea = this.elFormContainer.getElementsByTagName('textarea');
			var oConfig = {};
			var i=0;
			// projdeme INPUT elementy
			if (arrElInput && arrElInput.length) {
				for (i=0; i<arrElInput.length; i++) {
					if (arrElInput[i].type &&
								arrElInput[i].type!='button' &&
								arrElInput[i].type!='submit' &&
								arrElInput[i].type!='image' &&
								arrElInput[i].type!='file' &&
								!oConfig[arrElInput[i]]
								) {
									if (arrElInput[i].type=='checkbox') {
										// menyIdsGroup, getSelectedCheckboxValue
										oConfig[arrElInput[i].name] = getSelectedCheckboxValue(document.getElementsByName(arrElInput[i].name));
									} else if (arrElInput[i].type=='radio') {
										if (arrElInput[i].checked) {
											oConfig[arrElInput[i].name] = arrElInput[i].value;
										}
									} else {
										oConfig[arrElInput[i].name] = arrElInput[i].value;
									}
					}
				}
			}
			// projdeme SELECT elementy
			if (arrElSelect && arrElSelect.length) {
				for (i=0; i<arrElSelect.length; i++) {
					if (!oConfig[arrElSelect[i].name]) {
						// oConfig[arrElSelect[i].name] = arrElSelect[i].value;
						oConfig[arrElSelect[i].name] = arrElSelect[i].options[arrElSelect[i].selectedIndex].value;
					}
				}
			}
			// projdeme TEXTAREA elementy
			if (arrElTextarea && arrElTextarea.length) {
				for (i=0; i<arrElTextarea.length; i++) {
					if (!oConfig[arrElTextarea[i].name]) {
						oConfig[arrElTextarea[i].name] = arrElTextarea[i].value;
					}
				}
			}
			return oConfig;
		}
	}

if (HomepageJSCheck.JSSupported) {
	Event.onDOMReady(SiteOneWidgetsSetupInit);
}
/**
 *	Hlavni trida pro spravu jednoho standardniho widgetu, tato trida vetsinou slouzi jako vychozi pro extend jednotlivymi typy widgetu
 */
	var SiteOneWidget = function (widgetId)  {
			if ( !widgetId ) {
				return false;
			}
			this.widgetId = widgetId;
			this.init();
	}
	
	SiteOneWidget.prototype = {
		
		/**
		 * Typ widgetu (graf, taubulka kurzu,...) urcuje, o jaky widget jde...widgety stejneho typu maji stejnou konfiguraci a funkcnost
		 * @var string
		 */
		widgetType: null,
		
		/**
		 * Objekt s konfiguraci specifickou pro dany typ widgetu
		 *  - NELZE DEFINOVAT PRIMO jako prazdny objekt, jinak by tato vlastnost byla globalnim objektem spolecnym pro vsechny widgety,
		 *    jako prazdny objekt se definuje az v metode init()
		 * @var Object
		 */
		widgetConfig: null,
		
		/**
		 * ID HTML elementu widgetu
		 * @var string
		 */
		widgetId: null,
		
		/**
		 * ID widgetu v DB
		 * @var string
		 */
		widgetDbId: null,
		
		/**
		 * Element widgetu
		 * @var HTMLElement
		 */
		widgetEl: null,
		
		/**
		 * Hlavicka widgetu
		 * @var HTMLElement
		 */
		header: null,
		
		/**
		 * Tlacitko na minimalizaci/maximalizaci widgetu
		 * @var HTMLElement
		 */
		headerMinMaxEl: null,
		
		/**
		 * Telo widgetu
		 * @var HTMLElement
		 */
		body:	null,
		
		/**
		 * Paticka widgetu
		 * @var HTMLElement
		 */
		footer:	null,
		
		/**
		 * Drag&Drop objekt
		 * @var YAHOO.example.DDList
		 */
		oDD:	null,
		
		/**
		 * Interval v ms, ktery uplyne pred automatickym znovunactenim widgetu (pokud se dany widget automaticky znovunacita)
		 *  pri inicializaci se k nemu pricte nahodna hodnota iReloadRandomInterval, aby nedochazelo najednou k hromade pozadavku na server
		 * @var YAHOO.example.DDList
		 */
		iReloadInterval:	120000,
		iReloadRandomInterval:	10000,
		
		/**
		 * Metoda inicializuje jeden widget
		 * 
		 */
		init: function () {
			try {
				/* zde se definuje objekt s konfiguraci...kdyz se definuje vlastnost jako objekt az zde a pres "this" bude objekt
					v dane vlastnosti lokalni
				*/
				this.widgetConfig = {};
				this.widgetEl = Dom.get(this.widgetId);
				this.iReloadInterval = this.iReloadInterval + Math.floor(Math.random()*this.iReloadRandomInterval+1);
				
				// zjistime si jednotlive casti (hlavicka, telo, paticka) elementu widgetu
				var childs = Dom.getChildren(this.widgetId);
				if ( childs=='' ) {
					return;
				}
				var reRemoveComment = new RegExp('^<\!-- *(.*) *-->$','i');
				
				for (var i=0;i<childs.length;i=i+1) {	
	               	if (Dom.hasClass(childs[i], 'widgetHeader')) {
	               		this._initHeader(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetBody')) {
	               		this._initBody(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetFooter')) {
	               		this._initFooter(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetConf')) {
	               		if (childs[i].innerHTML!='') {
							this.setConfig(JSON.parse(childs[i].innerHTML.replace(reRemoveComment,'$1')));
	               		}
	               	}
            	}
				
				/* pokud je nastaveno ID pri generovani stranky a odpovida danemu regexpu, jde o jiz ulozeny widget
					a nastavime tedy DB ID
				*/
				var reExistingWidgetId = new RegExp("^widget([0-9]+)$");
				var result = this.widgetId.match(reExistingWidgetId);
				if (result) {
					this.widgetDbId = result[1];
				}
				
				// z tridy objektu zjistime jeho typ
				var widgetType = this.widgetEl.className.replace(SiteOneWidgets.widgetClassName+' ','');
				// MS: Docasna berlicka... :)
				widgetType = widgetType.replace('red ','');
				widgetType = widgetType.replace('green ','');
				widgetType = widgetType.replace('blue ','');
				widgetType = widgetType.replace('yellow ','');
				this.widgetType = widgetType;
			} catch (e) {
				/*alert('Chyba pri inicializaci widgetu (klient)\n');*/
				return false;
			}
		},
		
		/**
		 * Metoda inicializuje hlavicku widgetu
		 * 
		 * @param HTMLElement header
		 */
		_initHeader: function(header) {
			// vygenerujeme ID pro hlavicku, pres toto ID se navaze Drag&Drop tak, aby se widgety daly tahat pouze za hlavicku
			var hId = Dom.generateId(header);
			// pokud je jiz nainicializovan Drag&Drop objekt, je nutno propojit hlavicku s DD objektem
			if (this.oDD) {
				this.oDD.setHandleElId(hId);
				
			}
			// zjistime si elementy uvnitr hlavicky
			try {
				var childsHeader = Dom.getChildren(header);
			} catch (e) {
				/*alert('Chyba pri inicializaci hlavicky widgetu (klient)');*/
				return false;
			}
			if ( childsHeader=='' ) {
				return;
			}
			
			// pro tlacitka v hlavicce nastavime event handlery
			for (var i=0;i<childsHeader.length;i=i+1) {
               	if (Dom.hasClass(childsHeader[i], 'close')) {
              		Event.addListener(childsHeader[i], 'click', SiteOneWidgets.closeWidget, this, SiteOneWidgets);
               	}

               	if (Dom.hasClass(childsHeader[i], 'min')) {
               		this.headerMinMaxEl = childsHeader[i];
               		Event.addListener(childsHeader[i], 'click', this.switchMinMax, childsHeader[i], this);
               		this.widgetConfig.minimized = false;
               	}
               	
               	if (Dom.hasClass(childsHeader[i], 'max')) {
               		this.headerMinMaxEl = childsHeader[i];
               		Event.addListener(childsHeader[i], 'click', this.switchMinMax, childsHeader[i], this);
               		this.widgetConfig.minimized = true;
               	}
/*
             	if (Dom.hasClass(childsHeader[i], 'min')) {
               		Event.addListener(childsHeader[i], 'click', this.minimize, this, true);
               	}
             	if (Dom.hasClass(childsHeader[i], 'max')) {
               		Event.addListener(childsHeader[i], 'click', this.maximize, this, true);
               	}
*/
               	if (Dom.hasClass(childsHeader[i], 'setup')) {
               		Event.addListener(childsHeader[i], 'click', SiteOneWidgetsSetup.showSetupDialog, this, SiteOneWidgetsSetup);
               	}
            }
            this.header = header; 
            
		},
		
		/**
		 * Metoda inicializuje telo widgetu
		 * 
		 * @param HTMLElement body
		 */
		_initBody: function(body) {
			this.body = body;
		},
		
		/**
		 * Metoda inicializuje paticku widgetu
		 * 
		 * @param HTMLElement footer
		 */
		_initFooter: function(footer) {
			this.footer = footer;
		},
		
		/**
		 * Metoda pro minimalizaci widgetu
		 * 
		 * @param Event e
		 * @param this obj
		 */
		minimize: function () {
			Dom.replaceClass(this.headerMinMaxEl, 'min', 'max');
			this.widgetConfig.minimized = true;
			Dom.replaceClass(this.body, 'opened', 'closed');
		},
			
		/**
		 * Metoda pro maximalizaci (obnoveni) widgetu
		 * 
		 * @param Event e
		 * @param this obj
		 */
		maximize: function () {
			Dom.replaceClass(this.headerMinMaxEl, 'max', 'min');
			this.widgetConfig.minimized = false;
			Dom.replaceClass(this.body, 'closed', 'opened');
		},
		
		/**
		 * Metoda pro prepinani minimalizace a maximalizace widgetu, zastupuje puvodni min() a max()
		 * 
		 * @param Event e
		 * @param HTMLElement obj
		 */
		switchMinMax: function (e, obj) {
			if (Dom.hasClass(obj, 'min')) {
				this.minimize();
			} else if (Dom.hasClass(obj, 'max')) {
				this.maximize();
			}
	        // pokud je jiz nastaven uzivatel, ulozime dany widget, jinak ulozime vsechny
			if (!SiteOneWidgets.getUser()) {
				SiteOneWidgets.saveAllWidgets();
			} else {
   				this.saveWidget(false, false);
			}
		},
		setConfig: function (oConfig) {
			if (oConfig) {
				try {
					for (var name in oConfig) {
						this.widgetConfig[name] = oConfig[name];
					}
				} catch (e) {
					
				}
			}
		},
		/**
		 * Metoda pro ulozeni widgetu
		 * 
		 * @param bool returnWidgetContent, pokud je true, ze serveru prijde novy obsah elementu widgetu, pro false prijde novy obsah, pouze pokud nebyl widget ulozen
		 * @param bool saveOtherWidgetsPostions, pokud je true, pro ostatni widgety ve sloupci se zjisti pozice a posle se spolecne s pozadavkem na ulozeni daneho widgetu
		 */
		saveWidget: function (returnWidgetContent, saveOtherWidgetsPostions) {
			// zjisteni pozice pro dany widget
			try {
				var elSloupec = Dom.getAncestorByClassName(this.widgetEl,'workarea');
				var arrWidgetsEl = Dom.getChildren(this.widgetEl.parentNode);
				for (var i=0; i<arrWidgetsEl.length; i++) {
					if (arrWidgetsEl[i]===this.widgetEl) {
						break;
					}
				}
				++i;
			} catch (e) {
				/*alert('Chyba pri zjistovani pozice pro ukladani widgetu (klient)');*/
			}
			var callback =
			{
				success: this.handleSuccessSave,
				failure: this.handleFailureSave,
				scope: this,
				timeout: 10000
			};
			var userId = SiteOneWidgets.getUser();
			if (userId) {
				var userIdParam = '&uzivatelId='+userId;
				
				// pokud se maji vypoctat pozice pro ostatni widgety ve sloupci
				var widgetsInClmn = (saveOtherWidgetsPostions)?SiteOneWidgets.getWidgetsPositionsInColumn(this.widgetEl.parentNode):null;
	
//				var url = '/_system/ajaxWidgetServer.php';
				var oRequest = new SiteOneWidgetRequestSaveWidget({
					idUzivatel:			userId,
					widgetType:			this.widgetType,
					idWidget:			this.widgetDbId,
					widgetConfig:		this.widgetConfig,
					sloupec:			elSloupec.id,
					pozice:				i,
					affectedWidgets:	widgetsInClmn,
					returnWidgetContent: returnWidgetContent
				});
//				var postData = 'actName=saveWidget&Data='+JSON.stringify(oRequest);
//				var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
				
				SiteOneWidgetsRequest.sendRequest('saveWidget',oRequest,callback);
			} else {
				/*alert('Nepodarilo se ziskat ID uzivatele, nastaveni widgetu nelze ulozit.');*/
			}
		},
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri ulozeni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessSave: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('saveWidget',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.widgetConfig.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
					// doslo ke zmene id widgetu z duvodu ulozeni...zmenime tedy DB ID widgetu
					if (oCustomResponse.oData.idWidget && oCustomResponse.oData.idWidget!=this.widgetDbId) {
						this.widgetDbId = oCustomResponse.oData.idWidget;
					}
					// jestlize prijde zmenena konfigurace, nastavime
					if (oCustomResponse.oData.oWidgetConfig) {
						this.setConfig(oCustomResponse.oData.oWidgetConfig);
					}
				} else {
					/*alert('Chyba pri ukladani widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri ukladani widgetu - prazdna odpoved (server)');*/
			}
		},
		/**
		 * Metoda slouzi jako handler neuspesneho pozadavku na server pri ulozeni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleFailureSave: function(oResponse) {
			/*alert('Chyba pri ukladani widgetu (timeout)');*/
		},
		
		/**
		 * Metoda pro znovunacteni obsahu widgetu
		 * 
		 */
		reloadWidget: function() {
			if (!Dom.hasClass(this.body,'closed')) {
				var callback =
				{
					success: this.handleSuccessReload,
					failure: this.handleFailureReload,
					scope: this,
					timeout: 5000
				};
				var userId = SiteOneWidgets.getUser();
				if (userId) {
					var oRequest = new SiteOneWidgetRequestGetContentHTML({
						widgetType:			null,
						idWidget:			this.widgetDbId,
						widgetConfig:		null
					});
					SiteOneWidgetsRequest.sendRequest('getContentHTML',oRequest,callback);
				}
			}
		},
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri znovunacteni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessReload: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('getContentHTML',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.widgetConfig.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
				} else {
					/*alert('Chyba pri znovunacteni widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri znovunacteni widgetu - prazdna odpoved (server)');*/
			}
		},
		/**
		 * Metoda slouzi jako handler neuspesneho pozadavku na server pri znovunacteni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleFailureReload: function(oResponse) {
			/*alert('Chyba pri znovunacteni widgetu (timeout)');*/
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			
		}
	}

/**
 *	Hlavni trida pro spravu jednoho statickeho widgetu
 */
	var SiteOneWidgetStatic = function (widgetId)  {
			if ( !widgetId ) {
				return false;
			}
			this.widgetId = widgetId;
			this.init();
	}
	
	SiteOneWidgetStatic.prototype = {
		
		/**
		 * Typ widgetu (graf, taubulka kurzu,...) urcuje, o jaky widget jde...widgety stejneho typu maji stejnou konfiguraci a funkcnost
		 * @var string
		 */
		widgetType: null,
		
		/**
		 * ID HTML elementu widgetu
		 * @var string
		 */
		widgetId: null,
		
		/**
		 * Element widgetu
		 * @var HTMLElement
		 */
		widgetEl: null,
		
		/**
		 * Hlavicka widgetu
		 * @var HTMLElement
		 */
		header: null,
		
		/**
		 * Tlacitko na minimalizaci/maximalizaci widgetu
		 * @var HTMLElement
		 */
		headerMinMaxEl: null,
		
		/**
		 * Telo widgetu
		 * @var HTMLElement
		 */
		body:	null,
		
		/**
		 * Paticka widgetu
		 * @var HTMLElement
		 */
		footer:	null,
		
		/**
		 * Interval v ms, ktery uplyne pred automatickym znovunactenim widgetu (pokud se dany widget automaticky znovunacita)
		 *  pri inicializaci se k nemu pricte nahodna hodnota iReloadRandomInterval, aby nedochazelo najednou k hromade pozadavku na server
		 * @var YAHOO.example.DDList
		 */
		iReloadInterval:	120000,
		iReloadRandomInterval:	10000,
		
		/**
		 * Metoda inicializuje jeden widget
		 * 
		 */
		init: function () {
			try {
				/* zde se definuje objekt s konfiguraci...kdyz se definuje vlastnost jako objekt az zde a pres "this" bude objekt
					v dane vlastnosti lokalni
				*/
				this.widgetConfig = {};
				this.widgetEl = Dom.get(this.widgetId);
				this.iReloadInterval = this.iReloadInterval + Math.floor(Math.random()*this.iReloadRandomInterval+1);
				
				// z tridy objektu zjistime jeho typ
				var widgetType = this.widgetEl.className.replace(SiteOneWidgets.widgetStaticClassName+' ','');
				// MS: Docasna berlicka... :)
				widgetType = widgetType.replace('red ','');
				widgetType = widgetType.replace('green ','');
				widgetType = widgetType.replace('blue ','');
				widgetType = widgetType.replace('yellow ','');
				this.widgetType = widgetType;
				
				// zjistime si jednotlive casti (hlavicka, telo, paticka) elementu widgetu
				var childs = Dom.getChildren(this.widgetId);
				if ( childs=='' ) {
					return;
				}
				var reRemoveComment = new RegExp('^<\!-- *(.*) *-->$','i');
				
				for (var i=0;i<childs.length;i=i+1) {	
	               	if (Dom.hasClass(childs[i], 'widgetHeader')) {
	               		this._initHeader(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetBody')) {
	               		this._initBody(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetFooter')) {
	               		this._initFooter(childs[i]);
	               	}
	               	if (Dom.hasClass(childs[i], 'widgetConf')) {
	               		if (childs[i].innerHTML!='') {
							this.setConfig(JSON.parse(childs[i].innerHTML.replace(reRemoveComment,'$1')));
	               		}
	               	}
            	}
			} catch (e) {
				/*alert('Chyba pri inicializaci widgetu (klient)\n');*/
				return false;
			}
		},
		
		/**
		 * Metoda inicializuje hlavicku widgetu
		 * 
		 * @param HTMLElement header
		 */
		_initHeader: function(header) {
			// zjistime si elementy uvnitr hlavicky
			try {
				var childsHeader = Dom.getChildren(header);
			} catch (e) {
				/*alert('Chyba pri inicializaci hlavicky widgetu (klient)');*/
				return false;
			}
			if ( childsHeader=='' ) {
				return;
			}
			
			// pro tlacitka v hlavicce nastavime event handlery
			for (var i=0;i<childsHeader.length;i=i+1) {
               	if (Dom.hasClass(childsHeader[i], 'min')) {
               		this.headerMinMaxEl = childsHeader[i];
               		Event.addListener(childsHeader[i], 'click', this.switchMinMax, childsHeader[i], this);
               		this.widgetConfig.minimized = false;
               	}
               	
               	if (Dom.hasClass(childsHeader[i], 'max')) {
               		this.headerMinMaxEl = childsHeader[i];
               		Event.addListener(childsHeader[i], 'click', this.switchMinMax, childsHeader[i], this);
               		this.widgetConfig.minimized = true;
               	}
            }
            this.header = header; 
            
		},
		
		/**
		 * Metoda inicializuje telo widgetu
		 * 
		 * @param HTMLElement body
		 */
		_initBody: function(body) {
			this.body = body;
		},
		
		/**
		 * Metoda inicializuje paticku widgetu
		 * 
		 * @param HTMLElement footer
		 */
		_initFooter: function(footer) {
			this.footer = footer;
		},
		
		/**
		 * Metoda pro minimalizaci widgetu
		 * 
		 * @param Event e
		 * @param this obj
		 */
		minimize: function () {
			Dom.replaceClass(this.headerMinMaxEl, 'min', 'max');
			Dom.replaceClass(this.body, 'opened', 'closed');
		},
			
		/**
		 * Metoda pro maximalizaci (obnoveni) widgetu
		 * 
		 * @param Event e
		 * @param this obj
		 */
		maximize: function () {
			Dom.replaceClass(this.headerMinMaxEl, 'max', 'min');
			Dom.replaceClass(this.body, 'closed', 'opened');
		},
		
		/**
		 * Metoda pro prepinani minimalizace a maximalizace widgetu, zastupuje puvodni min() a max()
		 * 
		 * @param Event e
		 * @param HTMLElement obj
		 */
		switchMinMax: function (e, obj) {
			if (Dom.hasClass(obj, 'min')) {
				this.minimize();
			} else if (Dom.hasClass(obj, 'max')) {
				this.maximize();
			}
		},
		setConfig: function (oConfig) {
			if (oConfig) {
				try {
					for (var name in oConfig) {
						this.widgetConfig[name] = oConfig[name];
					}
				} catch (e) {
					
				}
			}
		},
		
		/**
		 * Metoda pro znovunacteni obsahu widgetu
		 * 
		 */
		reloadWidget: function() {
			if (!Dom.hasClass(this.body,'closed')) {
				var callback =
				{
					success: this.handleSuccessReload,
					failure: this.handleFailureReload,
					scope: this,
					timeout: 5000
				};
				var oRequest = new SiteOneWidgetRequestGetContentHTML({
					widgetType:			this.widgetType,
					idWidget:			null,
					widgetConfig:		this.widgetConfig
				});
				SiteOneWidgetsRequest.sendRequest('getContentHTML',oRequest,callback);
			}
		},
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri znovunacteni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessReload: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('getContentHTML',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.widgetConfig.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
				} else {
					/*alert('Chyba pri znovunacteni widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri znovunacteni widgetu - prazdna odpoved (server)');*/
			}
		},
		/**
		 * Metoda slouzi jako handler neuspesneho pozadavku na server pri znovunacteni widgetu
		 * 
		 * @param Object oResponse
		 */
		handleFailureReload: function(oResponse) {
			/*alert('Chyba pri znovunacteni widgetu (timeout)');*/
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			
		}
		
	}

/**
 *	Trida pro spravu jednoho widgetu typu graf, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetGrafVyvojeKurzuInstrumentu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetGrafVyvojeKurzuInstrumentu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetGrafVyvojeKurzuInstrumentu, SiteOneWidget, {
		
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri ulozeni widgetu, obsahuje navic inicializaci Flash obsahu
		 * pri zmene obsahu widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessSave: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('saveWidget',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
					// doslo ke zmene id widgetu z duvodu ulozeni...zmenime tedy DB ID widgetu
					if (oCustomResponse.oData.idWidget && oCustomResponse.oData.idWidget!=this.widgetDbId) {
						this.widgetDbId = oCustomResponse.oData.idWidget;
					}
					// jestlize prijde obsah widgetu a mame z prijate konfigare k dispozici titul, inicializujeme Flash
					if (oCustomResponse.oData.oWidgetConfig) {
						this.setConfig(oCustomResponse.oData.oWidgetConfig);
					}
					if (oCustomResponse.oData.oWidgetConfig && oCustomResponse.oData.oWidgetConfig.titul && oCustomResponse.oData.sObsah && YAHOO.lang.isValue(oCustomResponse.oData.sObsah) && !this.minimized) {
						// tento element je soucasti tela widgetu a obaluje Flash obsah
						var aGraphEl = Dom.getElementsByClassName('graf','div',this.body)
						if (aGraphEl && aGraphEl.length) {
	
							/*var flashvars = {
								configRoot: "/_widgets/graf-vyvoje-kurzu-instrumentu/",
								cp: oCustomResponse.oData.oWidgetConfig.titul,
								titulUrl: oCustomResponse.oData.oWidgetConfig.titulUrl,
								perioda: oCustomResponse.oData.oWidgetConfig.perioda,
								xType: "datetime",
								yType: "linear",
								defaultType: oCustomResponse.oData.oWidgetConfig.typSerie,
								refreshTime: oCustomResponse.oData.oWidgetConfig.refreshTime,
								dateTimeLabelUnits: "days"
							};
							var params = { menu: "false", wmode: "transparent" };
							var attributes = { id: 'so'+Math.floor(Math.random()*1001), name: 'so'+Math.floor(Math.random()*1001) };
							swfobject.embedSWF("/_widgets/graf-vyvoje-kurzu-instrumentu/index.swf", aGraphEl[0].id, "223", "220", "9.0.0", "/_widgets/expressInstall.swf", flashvars, params, attributes);*/
							
							var hostRE = new RegExp('^(https?:\\/\\/[_a-zA-Z0-9\\.\\-]+\\.[a-zA-Z]{2,})\\/{1}[\\-+#_~&=%\\?\\.a-z0-9\\/]*$','i');
							var documentHost = document.URL.replace(hostRE,'$1');
							
							var flashvars = {
								cp: oCustomResponse.oData.oWidgetConfig.titul,
								titulUrl: oCustomResponse.oData.oWidgetConfig.titulUrl,
								perioda: oCustomResponse.oData.oWidgetConfig.perioda,
								refreshTime: oCustomResponse.oData.oWidgetConfig.refreshTime,
								endpointUri : documentHost+"/graf-xml-dataprovider.php"
							};
							var params = { menu: "false", wmode: "transparent" };
							var attributes = { id: 'wgflash'+Math.floor(Math.random()*1001), name: 'wgflash'+Math.floor(Math.random()*1001) };
							swfobject.embedSWF("/_widgets/graf-vyvoje-kurzu-instrumentu/light/WidgetGraphLightFlashWrapper.swf", aGraphEl[0].id, "220", "223", "9.0.0", "", flashvars, params, attributes);
							
						}
					}
				} else {
					/*alert('Chyba pri ukladani widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri ukladani widgetu - prazdna odpoved (server)');*/
			}
		}

	});
	
	var SiteOneWidgetStaticGrafVyvojeKurzuInstrumentu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticGrafVyvojeKurzuInstrumentu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticGrafVyvojeKurzuInstrumentu, SiteOneWidgetStatic, {
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu graf vyvoje kurzu fondu, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetGrafVyvojeKurzuFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetGrafVyvojeKurzuFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetGrafVyvojeKurzuFondu, SiteOneWidget, {
		
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri ulozeni widgetu, obsahuje navic inicializaci Flash obsahu
		 * pri zmene obsahu widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessSave: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('saveWidget',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
					// doslo ke zmene id widgetu z duvodu ulozeni...zmenime tedy DB ID widgetu
					if (oCustomResponse.oData.idWidget && oCustomResponse.oData.idWidget!=this.widgetDbId) {
						this.widgetDbId = oCustomResponse.oData.idWidget;
					}
					// jestlize prijde obsah widgetu a mame z prijate konfigare k dispozici idFond, inicializujeme Flash
					if (oCustomResponse.oData.oWidgetConfig) {
						this.setConfig(oCustomResponse.oData.oWidgetConfig);
					}
					if (oCustomResponse.oData.oWidgetConfig && oCustomResponse.oData.oWidgetConfig.idFond && oCustomResponse.oData.sObsah && YAHOO.lang.isValue(oCustomResponse.oData.sObsah) && !this.minimized) {
						// tento element je soucasti tela widgetu a obaluje Flash obsah
						var aGraphEl = Dom.getElementsByClassName('graf','div',this.body)
						if (aGraphEl && aGraphEl.length) {
							
							var flashvars = {
								configRoot: "/_widgets/graf-vyvoje-kurzu-fondu/",
								idFond: oCustomResponse.oData.oWidgetConfig.idFond,
								fondUrl: oCustomResponse.oData.oWidgetConfig.fondUrl,
								perioda: oCustomResponse.oData.oWidgetConfig.perioda,
								xType: "datetime",
								yType: "linear",
								defaultType: oCustomResponse.oData.oWidgetConfig.typSerie,
								refreshTime: oCustomResponse.oData.oWidgetConfig.refreshTime,
								dateTimeLabelUnits: "days"
							};
							var params = { menu: "false", wmode: "transparent" };
							var attributes = { id: 'so'+Math.floor(Math.random()*1001), name: 'so'+Math.floor(Math.random()*1001) };
							swfobject.embedSWF("/_widgets/graf-vyvoje-kurzu-fondu/index.swf", aGraphEl[0].id, "223", "220", "9.0.0", "/_widgets/expressInstall.swf", flashvars, params, attributes);
										
						}
					}
				} else {
					/*alert('Chyba pri ukladani widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri ukladani widgetu - prazdna odpoved (server)');*/
			}
		}

	});
	
	var SiteOneWidgetStaticGrafVyvojeKurzuFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticGrafVyvojeKurzuFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticGrafVyvojeKurzuFondu, SiteOneWidgetStatic, {
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu graf struktury fondu, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetGrafStrukturyFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetGrafStrukturyFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetGrafStrukturyFondu, SiteOneWidget, {
		
		/**
		 * Metoda slouzi jako handler uspesneho pozadavku na server pri ulozeni widgetu, obsahuje navic inicializaci Flash obsahu
		 * pri zmene obsahu widgetu
		 * 
		 * @param Object oResponse
		 */
		handleSuccessSave: function(oResponse) {
			if(oResponse.responseText != '') {
				var oCustomResponse = new SiteOneWidgetsResponse('saveWidget',oResponse.responseText);
				if (oCustomResponse && oCustomResponse.oData) {
					// jestlize prijde obsah widgetu, nahradime jim puvodni a znovu inicializujeme tento widget
					if (oCustomResponse.oData.sObsah && oCustomResponse.oData.sObsah!='' && !this.minimized) {
						this.widgetEl.innerHTML = oCustomResponse.oData.sObsah;
						this.init();
					}
					// doslo ke zmene id widgetu z duvodu ulozeni...zmenime tedy DB ID widgetu
					if (oCustomResponse.oData.idWidget && oCustomResponse.oData.idWidget!=this.widgetDbId) {
						this.widgetDbId = oCustomResponse.oData.idWidget;
					}
					// jestlize prijde obsah widgetu a mame z prijate konfigare k dispozici idFond, inicializujeme Flash
					if (oCustomResponse.oData.oWidgetConfig) {
						this.setConfig(oCustomResponse.oData.oWidgetConfig);
					}
					if (oCustomResponse.oData.oWidgetConfig && oCustomResponse.oData.oWidgetConfig.idFond && oCustomResponse.oData.sObsah && YAHOO.lang.isValue(oCustomResponse.oData.sObsah) && !this.minimized) {
						// tento element je soucasti tela widgetu a obaluje Flash obsah
						var aGraphEl = Dom.getElementsByClassName('graf','div',this.body)
						if (aGraphEl && aGraphEl.length) {
							
							var flashvars = {
								configRoot: "/_widgets/graf-struktury-fondu/",
								fondId: oCustomResponse.oData.oWidgetConfig.idFond,
								aplKodJazykoveMutace: "cz"
							};
							var params = { menu: "false", wmode: "transparent" };
							var attributes = { id: 'so'+Math.floor(Math.random()*1001), name: 'so'+Math.floor(Math.random()*1001) };
							swfobject.embedSWF("/_widgets/graf-struktury-fondu/index.swf", aGraphEl[0].id, "223", "220", "9.0.0", "/_widgets/expressInstall.swf", flashvars, params, attributes);
						
						}
					}
				} else {
					/*alert('Chyba pri ukladani widgetu - neplatna odpoved (server)');*/
				}
			} else {
				/*alert('Chyba pri ukladani widgetu - prazdna odpoved (server)');*/
			}
		}

	});
	
	var SiteOneWidgetStaticGrafStrukturyFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticGrafStrukturyFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticGrafStrukturyFondu, SiteOneWidgetStatic, {

	});

/**
 *	Trida pro spravu jednoho widgetu typu StatickaStranka, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetStatickaStranka = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticStatickaStranka.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStatickaStranka, SiteOneWidget, {
		
		// specificke ukoly widgetu

	});
	
	var SiteOneWidgetStaticStatickaStranka = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticStatickaStranka.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticStatickaStranka, SiteOneWidgetStatic, {
		
		// specificke ukoly widgetu

	});

/**
 *	Trida pro spravu jednoho widgetu typu KurzyMen, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKurzyMen = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKurzyMen.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKurzyMen, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetKurzyMen.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticKurzyMen = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKurzyMen.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKurzyMen, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticKurzyMen.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu KurzyMenIntraday, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKurzyMenIntraday = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKurzyMenIntraday.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKurzyMenIntraday, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetKurzyMenIntraday.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticKurzyMenIntraday = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKurzyMenIntraday.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKurzyMenIntraday, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticKurzyMenIntraday.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu RSS, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetRSS = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetRSS.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetRSS, SiteOneWidget, {
		
		/**
		 * Metoda inicializuje paticku widgetu, obsahuje navic inicializi pro vyber titulu ze selectboxu a nastaveni konfigurace
		 * 
		 * @param HTMLElement footer
		 */
		_initFooter: function(footer) {
			this.footer = footer;
			// najdeme submit inputbox
			var arrSubmits = Dom.getElementsByClassName('wRSSSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wRSSNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wRSSUrl','input',this.footer);
				var arrPZZ = Dom.getElementsByClassName('wRSSPZZ','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.url = arrUrl[0].value;
				this.widgetConfig.pzz = arrPZZ[0].value;
           		Event.addListener(arrSubmits[0], 'click', this.saveRSSConfig, this, this);
			}
		},
		/**
		 * Metoda ulozi widget po kliknuti na submit tlacitko
		 * 
		 * @param Event e
		 * @param HTMLElement elWidget
		 */
		saveRSSConfig: function(e, elWidget) {
			var arrSubmits = Dom.getElementsByClassName('wRSSSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wRSSNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wRSSUrl','input',this.footer);
				var arrPZZ = Dom.getElementsByClassName('wRSSPZZ','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.url = arrUrl[0].value;
				this.widgetConfig.pzz = arrPZZ[0].value;
			}
	        // pokud je jiz nastaven uzivatel, ulozime dany widget, jinak ulozime vsechny
			if (!SiteOneWidgets.getUser()) {
				SiteOneWidgets.saveAllWidgets();
			} else {
				// protoze se zmeni obsah nechame si jej vratit, pozice se ovsem nezmeni takze neni treba prepocitavat pozici pro ostatni widgety
				this.saveWidget(true, false);
			}
		}
	});
	
	var SiteOneWidgetStaticRSS = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticRSS.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticRSS, SiteOneWidgetStatic, {

	});

/**
 *	Trida pro spravu jednoho widgetu typu Tydenik, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetTydenik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetTydenik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetTydenik, SiteOneWidget, {
		
		/**
		 * Metoda inicializuje paticku widgetu, obsahuje navic inicializi pro vyber titulu ze selectboxu a nastaveni konfigurace
		 * 
		 * @param HTMLElement footer
		 */
		_initFooter: function(footer) {
			this.footer = footer;
			// najdeme submit inputbox
			var arrSubmits = Dom.getElementsByClassName('wTydenikSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wTydenikNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wTydenikUrl','input',this.footer);
				var arrPZS = Dom.getElementsByClassName('wTydenikPZS','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.pocetZobrazenychSouboru = arrPZS[0].value;
           		Event.addListener(arrSubmits[0], 'click', this.saveTydenikConfig, this, this);
			}
		},
		/**
		 * Metoda ulozi widget po kliknuti na submit tlacitko
		 * 
		 * @param Event e
		 * @param HTMLElement elWidget
		 */
		saveTydenikConfig: function(e, elWidget) {
			var arrSubmits = Dom.getElementsByClassName('wTydenikSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wTydenikNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wTydenikUrl','input',this.footer);
				var arrZP = Dom.getElementsByClassName('wTydenikZobrazitPaticku','input',this.footer);
				var arrPZS = Dom.getElementsByClassName('wTydenikPZS','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.pocetZobrazenychSouboru = arrPZS[0].value;
				this.widgetConfig.zobrazitPaticku = arrZP.checked;
           		Event.addListener(arrSubmits[0], 'click', this.saveTydenikConfig, this, this);
			}
	        // pokud je jiz nastaven uzivatel, ulozime dany widget, jinak ulozime vsechny
			if (!SiteOneWidgets.getUser()) {
				SiteOneWidgets.saveAllWidgets();
			} else {
				// protoze se zmeni obsah nechame si jej vratit, pozice se ovsem nezmeni takze neni treba prepocitavat pozici pro ostatni widgety
				this.saveWidget(true, false);
			}
		}
	});
	
	var SiteOneWidgetStaticTydenik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticTydenik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticTydenik, SiteOneWidgetStatic, {
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu Mesicnik, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetMesicnik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetMesicnik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetMesicnik, SiteOneWidget, {
		
		/**
		 * Metoda inicializuje paticku widgetu, obsahuje navic inicializi pro vyber titulu ze selectboxu a nastaveni konfigurace
		 * 
		 * @param HTMLElement footer
		 */
		_initFooter: function(footer) {
			this.footer = footer;
			// najdeme submit inputbox
			var arrSubmits = Dom.getElementsByClassName('wMesicnikSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wMesicnikNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wMesicnikUrl','input',this.footer);
				var arrPZS = Dom.getElementsByClassName('wMesicnikPZS','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.pocetZobrazenychSouboru = arrPZS[0].value;
           		Event.addListener(arrSubmits[0], 'click', this.saveMesicnikConfig, this, this);
			}
		},
		/**
		 * Metoda ulozi widget po kliknuti na submit tlacitko
		 * 
		 * @param Event e
		 * @param HTMLElement elWidget
		 */
		saveMesicnikConfig: function(e, elWidget) {
			var arrSubmits = Dom.getElementsByClassName('wMesicnikSubmit','input',this.footer);
			if (arrSubmits.length && arrSubmits.length>0 && arrSubmits[0].value) {
				var arrNazev = Dom.getElementsByClassName('wMesicnikNazev','input',this.footer);
				var arrUrl = Dom.getElementsByClassName('wMesicnikUrl','input',this.footer);
				var arrZP = Dom.getElementsByClassName('wMesicnikZobrazitPaticku','input',this.footer);
				var arrPZS = Dom.getElementsByClassName('wMesicnikPZS','select',this.footer);
				this.widgetConfig.nazev = arrNazev[0].value;
				this.widgetConfig.pocetZobrazenychSouboru = arrPZS[0].value;
				this.widgetConfig.zobrazitPaticku = arrZP.checked;
           		Event.addListener(arrSubmits[0], 'click', this.saveMesicnikConfig, this, this);
			}
	        // pokud je jiz nastaven uzivatel, ulozime dany widget, jinak ulozime vsechny
			if (!SiteOneWidgets.getUser()) {
				SiteOneWidgets.saveAllWidgets();
			} else {
				// protoze se zmeni obsah nechame si jej vratit, pozice se ovsem nezmeni takze neni treba prepocitavat pozici pro ostatni widgety
				this.saveWidget(true, false);
			}
		}
	});
	
	var SiteOneWidgetStaticMesicnik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticMesicnik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticMesicnik, SiteOneWidgetStatic, {
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu Zpravodajstvi, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetZpravodajstvi = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetZpravodajstvi.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetZpravodajstvi, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetZpravodajstvi.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}

	});
	
	var SiteOneWidgetStaticZpravodajstvi = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticZpravodajstvi.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticZpravodajstvi, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticZpravodajstvi.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}

	});

/**
 *	Trida pro spravu jednoho widgetu typu KomoditniZpravodajstvi, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKomoditniZpravodajstvi = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKomoditniZpravodajstvi.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKomoditniZpravodajstvi, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetKomoditniZpravodajstvi.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticKomoditniZpravodajstvi = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKomoditniZpravodajstvi.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKomoditniZpravodajstvi, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticKomoditniZpravodajstvi.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu KomodityADerivaty, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKomodityADerivaty = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKomodityADerivaty.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKomodityADerivaty, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetKomodityADerivaty.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticKomodityADerivaty = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKomodityADerivaty.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKomodityADerivaty, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticKomodityADerivaty.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu PrehledAkciovychTrhu, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetPrehledAkciovychTrhu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetPrehledAkciovychTrhu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetPrehledAkciovychTrhu, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetPrehledAkciovychTrhu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticPrehledAkciovychTrhu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticPrehledAkciovychTrhu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticPrehledAkciovychTrhu, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticPrehledAkciovychTrhu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu PrehledIndexu, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetPrehledIndexu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetPrehledIndexu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetPrehledIndexu, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetPrehledIndexu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticPrehledIndexu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticPrehledIndexu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticPrehledIndexu, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticPrehledIndexu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu KomodityTydenik, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKomodityTydenik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKomodityTydenik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKomodityTydenik, SiteOneWidget, {
		
	});
	
	var SiteOneWidgetStaticKomodityTydenik = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKomodityTydenik.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKomodityTydenik, SiteOneWidgetStatic, {
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu KurzyFondu, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetKurzyFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetKurzyFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetKurzyFondu, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetKurzyFondu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});
	
	var SiteOneWidgetStaticKurzyFondu = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticKurzyFondu.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticKurzyFondu, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticKurzyFondu.superclass.init.call(this);
			if (!this.oTimerReload) {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			this.oTimerReload.cancel();
		}
		
	});

/**
 *	Trida pro spravu jednoho widgetu typu StatickaStranka, vychazi z tridy SiteOneWidget
 */
	var SiteOneWidgetJednoduchyWidget = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetJednoduchyWidget.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetJednoduchyWidget, SiteOneWidget, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetJednoduchyWidget.superclass.init.call(this);
			if (!this.oTimerReload && this.widgetConfig.aplKod=='novinky-z-atlantiku') {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			if (this.oTimerReload) {
				this.oTimerReload.cancel();
			}
		}
		
	});
	
	var SiteOneWidgetStaticJednoduchyWidget = function (widgetId)  {
		// zavolani konstruktoru nadrazene tridy
	    SiteOneWidgetStaticJednoduchyWidget.superclass.constructor.call(this, widgetId);
	}

	// zde se urcuje, z ktere tridy nova vychazi a definuji nove nebo prepsane metody a vlastnosti
	YAHOO.extend(SiteOneWidgetStaticJednoduchyWidget, SiteOneWidgetStatic, {
		
		/**
		 * Objekt typu Timer, obsahuje odkaz na objekt, ktery zajistuje pravidelne volani funkce na reload
		 */
		oTimerReload: null,
		
		/**
		 * Metoda inicializuje widget + zaridi automaticke nacitani
		 * 
		 * @param HTMLElement footer
		 */
		init: function() {
			SiteOneWidgetStaticJednoduchyWidget.superclass.init.call(this);
			if (!this.oTimerReload && this.widgetConfig.aplKod=='novinky-z-atlantiku') {
				this.oTimerReload = YAHOO.lang.later(this.iReloadInterval,this,'reloadWidget',null,true);
			}
		},
		/**
		 * Metoda pro cleanup objektu pred jeho zrusenim
		 * 
		 * @param Object oResponse
		 */
		destruct: function() {
			if (this.oTimerReload) {
				this.oTimerReload.cancel();
			}
		}
		
	});

	var SiteOneWidgetsRequest = {
		/**
		 * URL skriptu, kam se posilaji requesty
		 * @var string
		 */
		sRequestURL: '/_system/ajaxWidgetServer.php',
		
		/**
		 * metoda zasilani udaju na server
		 * @var string
		 */
		sRequestMethod: 'POST',
		
		/**
		 * Widget, pro ktery je prave otevreno dialogove okno
		 * @var Object (SiteOneWidget, SiteOneWidgetGraf, SiteOneWidgetRSS,...)
		 */
		oWidget: null,
		
		
		/**
		 * Metoda nacte formular na upravu nastaveni widgetu ze serveru a zobrazi jej v dialogovem okne
		 * 
		 * @param strong sActName, aplilkacni kod pozadovane sluzby
		 * @param Object oRequestData (SiteOneWidgetRequestSaveWidget,...), objekt s daty pro sluzbu
		 * @param Object oCallBack, callback s handlery vysledku dotazu
		 */
		sendRequest: function (sActName, oRequestData, oCallback) {
			var postData = 'actName='+sActName+'&Data='+Base64.encode(JSON.stringify(oRequestData));
			var request = YAHOO.util.Connect.asyncRequest(this.sRequestMethod, this.sRequestURL, oCallback, postData);
		}
	}

/**
 *	Trida, ktera sjednocuje parametry pro odeslani pozadavku na smazani widgetu na widget server
 */
	var SiteOneWidgetRequestDeleteWidget = function (oData)  {
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idUzivatel && oData.idUzivatel>0) {
				this.idUzivatel = oData.idUzivatel;
			}
			if (oData.idWidget && oData.idWidget>0) {
				this.idWidget = oData.idWidget;
			}
			if (YAHOO.lang.isObject(oData.affectedWidgets)) {
				this.affectedWidgets = oData.affectedWidgets;
			}
		}
	}
	
	SiteOneWidgetRequestDeleteWidget.prototype = {
		/**
		 * ID uzivatele
		 * @var int
		 */
		idUzivatel: null,

		/**
		 * ID widgetu na serveru
		 * @var int
		 */
		idWidget: null,

		/**
		 * Prepocitane pozice ostatnich widgetu ve sloupci
		 * @var Object
		 */
		affectedWidgets: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro odeslani pozadavku na ziskani noveho ID uzivatele na widget server
 */
	var SiteOneWidgetRequestGetNewUserID = function (oData)  {
	}
	
	SiteOneWidgetRequestGetNewUserID.prototype = {
	}
/**
 *	Trida, ktera sjednocuje parametry pro odeslani pozadavku na zaslani formulare pro editaci nastaveni daneho widgetu na widget server
 */
	var SiteOneWidgetRequestGetSettingsHTML = function (oData)  {
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idUzivatel && oData.idUzivatel>0) {
				this.idUzivatel = oData.idUzivatel;
			}
			if (YAHOO.lang.isString(oData.widgetType) && oData.widgetType!='') {
				this.widgetType = oData.widgetType;
			}
			if (oData.idWidget && oData.idWidget>0) {
				this.idWidget = oData.idWidget;
			} else if (YAHOO.lang.isObject(oData.widgetConfig)) {
				this.widgetConfig = oData.widgetConfig;
			}
		}
	}
	
	SiteOneWidgetRequestGetSettingsHTML.prototype = {
		/**
		 * ID uzivatele
		 * @var int
		 */
		idUzivatel: null,

		/**
		 * Typ widgetu
		 * @var string
		 */
		widgetType: null,

		/**
		 * ID widgetu na serveru
		 * @var int
		 */
		idWidget: null,
		
		/**
		 * Konfigurace widgetu, posila se v pripade ze dany widget nema zatim sve ID
		 * @var int
		 */
		widgetConfig: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro odeslani pozadavku na ulozeni widgetu na widget server
 */
	var SiteOneWidgetRequestSaveWidget = function (oData)  {
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idUzivatel && oData.idUzivatel>0) {
				this.idUzivatel = oData.idUzivatel;
			}
			if (YAHOO.lang.isString(oData.widgetType) && oData.widgetType!='') {
				this.widgetType = oData.widgetType;
			}
			if (oData.idWidget && oData.idWidget>0) {
				this.idWidget = oData.idWidget;
			}
			if (YAHOO.lang.isObject(oData.widgetConfig)) {
				this.widgetConfig = oData.widgetConfig;
			}
			if (YAHOO.lang.isString(oData.sloupec) && oData.sloupec!='') {
				this.sloupec = oData.sloupec;
			}
			if (oData.pozice && oData.pozice>0) {
				this.pozice = oData.pozice;
			}
			if (YAHOO.lang.isObject(oData.affectedWidgets)) {
				this.affectedWidgets = oData.affectedWidgets;
			}
			if (YAHOO.lang.isBoolean(oData.returnWidgetContent)) {
				this.returnWidgetContent = oData.returnWidgetContent;
			}
		}
	}
	
	SiteOneWidgetRequestSaveWidget.prototype = {
		/**
		 * ID uzivatele
		 * @var int
		 */
		idUzivatel: null,

		/**
		 * Typ widgetu
		 * @var string
		 */
		widgetType: null,

		/**
		 * ID widgetu na serveru
		 * @var int
		 */
		idWidget: null,

		/**
		 * Konfigurace widgetu
		 * @var Object
		 */
		widgetConfig: null,

		/**
		 * Identifikator sloupce, ve kterem se nachazi ukladany widget
		 * @var string
		 */
		sloupec: null,

		/**
		 * Ciselna pozice ve sloupci
		 * @var int
		 */
		pozice: null,

		/**
		 * Prepocitane pozice ostatnich widgetu ve sloupci
		 * @var Object
		 */
		affectedWidgets: null,

		/**
		 * Zda ma server s odpovedi vratit take HTML obsah widgetu
		 * @var bool
		 */
		returnWidgetContent: null
		
	}
/**
 *	Trida, ktera sjednocuje parametry pro odeslani pozadavku na zaslani obsahu daneho widgetu na widget server
 */
	var SiteOneWidgetRequestGetContentHTML = function (oData)  {
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idWidget && oData.idWidget>0) {
				this.idWidget = oData.idWidget;
			} else {
				if (YAHOO.lang.isObject(oData.widgetConfig)) {
					this.widgetConfig = oData.widgetConfig;
				}
				if (YAHOO.lang.isString(oData.widgetType) && oData.widgetType!='') {
					this.widgetType = oData.widgetType;
				}
			}
		}
	}
	
	SiteOneWidgetRequestGetContentHTML.prototype = {
		/**
		 * Typ widgetu
		 * @var string
		 */
		widgetType: null,

		/**
		 * ID widgetu na serveru
		 * @var int
		 */
		idWidget: null,
		
		/**
		 * Konfigurace widgetu, posila se v pripade ze dany widget nema zatim sve ID
		 * @var int
		 */
		widgetConfig: null
	}
	var SiteOneWidgetsResponse = function (sActName, oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		try {
			if (YAHOO.lang.isString(oData) && oData!='') {
				oData = JSON.parse(oData);
			}
			if (YAHOO.lang.isObject(oData)) {
				if (YAHOO.lang.isObject(oData.Data)) {
					switch(sActName) {
						case 'deleteWidget':
							this.oData = new SiteOneWidgetResponseDeleteWidget(oData.Data);
							break;
						case 'getNewUserID':
							this.oData = new SiteOneWidgetResponseGetNewUserID(oData.Data);
							break;
						case 'saveWidget':
							this.oData = new SiteOneWidgetResponseSaveWidget(oData.Data);
							break;
						case 'getSettingsHTML':
							this.oData = new SiteOneWidgetResponseGetSettingsHTML(oData.Data);
							break;
						case 'getContentHTML':
							this.oData = new SiteOneWidgetResponseGetContentHTML(oData.Data);
							break;
					}
				}
				if (YAHOO.lang.isObject(oData.Exception)) {
					this.oException = oData.Exception;
				}
			}
		} catch (e) {
			this.oData = null;
		}
	}
	SiteOneWidgetsResponse.prototype = {
		/**
		 * Objekt s prijatymi daty
		 * @var Object
		 */
		oData: null,
		
		/**
		 * Objekt s pripadnou vyjimkou
		 * @var Object
		 */
		oException: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro prijem odpovedi na pozadavek na smazani widgetu z widget serveru
 */
	var SiteOneWidgetResponseDeleteWidget = function (oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		if (YAHOO.lang.isString(oData) && oData!='') {
			oData = JSON.parse(oData);
		}
		if (YAHOO.lang.isObject(oData)) {
			if (YAHOO.lang.isBoolean(oData.deleted)) {
				this.deleted = oData.deleted;
			}
		}
	}
	
	SiteOneWidgetResponseDeleteWidget.prototype = {
		/**
		 * Vysledek operace mazani widgetu
		 * @var boolean
		 */
		deleted: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro prijem odpovedi na pozadavek na ziskani noveho ID uzivatele z widget serveru
 */
	var SiteOneWidgetResponseGetNewUserID = function (oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		if (YAHOO.lang.isString(oData) && oData!='') {
			oData = JSON.parse(oData);
		}
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idUzivatel && oData.idUzivatel>0) {
				this.idUzivatel = oData.idUzivatel;
			}
		}
	}
	
	SiteOneWidgetResponseGetNewUserID.prototype = {
		/**
		 * ID nove zalozeneho uzivatele
		 * @var integer
		 */
		idUzivatel: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro prijem odpovedi na pozadavek na zaslani obsahu widgetu z widget serveru
 */
	var SiteOneWidgetResponseGetSettingsHTML = function (oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		if (YAHOO.lang.isString(oData) && oData!='') {
			oData = JSON.parse(oData);
		}
		if (YAHOO.lang.isObject(oData)) {
			if (YAHOO.lang.isString(oData.html) && oData.html!='') {
				this.sObsah = oData.html;
			}
		}
	}
	
	SiteOneWidgetResponseGetSettingsHTML.prototype = {
		/**
		 * HTML obsah formulare nastaveni
		 * @var string
		 */
		sObsah: null
	}
/**
 *	Trida, ktera sjednocuje parametry pro prijem odpovedi na pozadavek na ulozeni widgetu z widget serveru
 */
	var SiteOneWidgetResponseSaveWidget = function (oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		if (YAHOO.lang.isString(oData) && oData!='') {
			oData = JSON.parse(oData);
		}
		if (YAHOO.lang.isObject(oData)) {
			if (oData.idWidget && oData.idWidget>0) {
				this.idWidget = oData.idWidget;
			}
			if (YAHOO.lang.isString(oData.obsah) && oData.obsah!='') {
				this.sObsah = oData.obsah;
			}
			if (YAHOO.lang.isObject(oData.konfigurace)) {
				this.oWidgetConfig = oData.konfigurace;
			}
		}
	}
	
	SiteOneWidgetResponseSaveWidget.prototype = {
		/**
		 * ID widgetu na serveru
		 * @var int
		 */
		idWidget: null,

		/**
		 * Konfigurace widgetu
		 * @var Object
		 */
		oWidgetConfig: null,

		/**
		 * HTML Obsah widgetu
		 * @var string
		 */
		sObsah: null
		
	}
/**
 *	Trida, ktera sjednocuje parametry pro prijem odpovedi na pozadavek na zaslani obsahu widgetu z widget serveru
 */
	var SiteOneWidgetResponseGetContentHTML = function (oData)  {
		// jestlize JSON nejdrive zkusime rozparsovat
		if (YAHOO.lang.isString(oData) && oData!='') {
			oData = JSON.parse(oData);
		}
		if (YAHOO.lang.isObject(oData)) {
			if (YAHOO.lang.isString(oData.html) && oData.html!='') {
				this.sObsah = oData.html;
			}
		}
	}
	
	SiteOneWidgetResponseGetContentHTML.prototype = {
		/**
		 * HTML obsah widgetu
		 * @var string
		 */
		sObsah: null
	}
/**
 *	Hlavni trida pro spravu widgetu vseobecne
 */
	var SiteOneWidgetsInit = function() {
			SiteOneWidgets.init();
	}
		
	var SiteOneWidgets = {
		
		/**
		 * Nazev tridy elementu, ktery prestavuje widget na strance
		 * @var string
		 */
		widgetClassName : 'widgetBox',
		
		/**
		 * Nazev tridy elementu, ktery prestavuje staticky widget na strance
		 * @var string
		 */
		widgetStaticClassName : 'widgetBoxStatic',

		/**
		 * Nazev tridy elementu, ktery predstavuje typ widgetu z nabidky
		 * @var string
		 */
		widgetTypeClassName : 'widgetType',

		/**
		 * Asociativni pole (objekt) obsahujici vsechny widgety na strance
		 * @var Object
		 */
		arrOWidgets: new Object(),
		
		/**
		 * Metoda inicializuje vsechny widgety na strance
		 * 
		 */
		init: function() {
			// projdeme si vsechny elementy, ktere maji css tridy widgetu
			var widgetsArray = Dom.getElementsByClassName(this.widgetClassName);
			// pokud jsme neco nasli
			if ( widgetsArray.length>0 ) {
				// projdeme widgety
				for(var i=0; i<widgetsArray.length; i++) {
					// koukneme se jestli ma id
					var elId = widgetsArray[i].getAttribute('id');
					if ( elId=='' || elId=='undefined' || elId==null ) {
					// jestli ne, tak ho vygenerujeme
						elId = Dom.generateId(widgetsArray[i]);
					}
					// vlastni inicializace daneho widgetu
					try {
						this.initWidgetObjectFromElement(widgetsArray[i]);
					} catch (e) {
						/*alert('Chyba pri inicializaci seznamu widgetu (klient)');*/
						return false;
					}
				}
			}
			// kdyz uz mame vsechny widgety inicializujeme Drag&Drop logiku
			YAHOO.example.DDApp.init();
			
			// projdeme si vsechny elementy, ktere maji css tridy sttickych widgetu
			var widgetsArray = Dom.getElementsByClassName(this.widgetStaticClassName);
			// pokud jsme neco nasli
			if ( widgetsArray.length>0 ) {
				// projdeme widgety
				for(var i=0; i<widgetsArray.length; i++) {
					// koukneme se jestli ma id
					var elId = widgetsArray[i].getAttribute('id');
					if ( elId=='' || elId=='undefined' || elId==null ) {
					// jestli ne, tak ho vygenerujeme
						elId = Dom.generateId(widgetsArray[i]);
					}
					// vlastni inicializace daneho widgetu
					try {
//						this.arrOWidgets[elId] = new SiteOneWidgetStatic(elId);
						this.initWidgetStaticObjectFromElement(widgetsArray[i]);
					} catch (e) {
						/*alert('Chyba pri inicializaci seznamu widgetu (klient)');*/
						return false;
					}
				}
			}
		},
		
		/**
		 * Metoda ze zadaneho HTML elementu zjisti jeho typ a pokud jiz neni objekt vytvoren, vytvori instanci objektu pro dany widget
		 * 
		 * @param HTMLElement widgetEl
		 * @return Object (SiteOneWidget, SiteOneWidgetGraf, SiteOneWidgetRSS,...)
		 */
		initWidgetObjectFromElement: function(widgetEl) {
			// zjistime si typ widgetu a podle nej vytvorime instanci spravne tridy widgetu
			var widgetType = widgetEl.className.replace(this.widgetClassName+' ','');
			// MS: Docasna berlicka... :)
			widgetType = widgetType.replace('red ','');
			widgetType = widgetType.replace('green ','');
			widgetType = widgetType.replace('blue ','');
			widgetType = widgetType.replace('yellow ','');
			
			if (!this.arrOWidgets[widgetEl.id]) {
				switch (widgetType) {
					case 'wTypGrafVyvojKurzuInstrumentu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetGrafVyvojeKurzuInstrumentu(widgetEl.id);
						break;
					case 'wTypGrafVyvojKurzuFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetGrafVyvojeKurzuFondu(widgetEl.id);
						break;
					case 'wTypGrafStrukturyFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetGrafStrukturyFondu(widgetEl.id);
						break;
					case 'wTypRSS':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetRSS(widgetEl.id);
						break;
					case 'wTypZpravodajstvi':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetZpravodajstvi(widgetEl.id);
						break;
					case 'wTypStatickaStranka':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStatickaStranka(widgetEl.id);
						break;
					case 'wTypKurzyMen':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKurzyMen(widgetEl.id);
						break;
					case 'wTypKurzyMenIntraday':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKurzyMenIntraday(widgetEl.id);
						break;
					case 'wTypTydenik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetTydenik(widgetEl.id);
						break;
					case 'wTypMesicnik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetMesicnik(widgetEl.id);
						break;
					case 'wTypKomoditniZpravodajstvi':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKomoditniZpravodajstvi(widgetEl.id);
						break;
					case 'wTypPrehledAkciovychTrhu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetPrehledAkciovychTrhu(widgetEl.id);
						break;
					case 'wTypKomodityADerivaty':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKomodityADerivaty(widgetEl.id);
						break;
					case 'wTypPrehledIndexu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetPrehledIndexu(widgetEl.id);
						break;
					case 'wTypKomodityTydenik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKomodityTydenik(widgetEl.id);
						break;
					case 'wTypKurzyFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetKurzyFondu(widgetEl.id);
						break;
					case 'wTypJednoduchyWidget':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetJednoduchyWidget(widgetEl.id);
						break;
					default:
						/*alert('Neznamy typ widgetu "'+widgetType+'"');*/
						this.arrOWidgets[widgetEl.id] = new SiteOneWidget(widgetEl.id);
						break;
				}
			}
			return this.arrOWidgets[widgetEl.id];
		},
		
		/**
		 * Metoda ze zadaneho HTML elementu zjisti jeho typ a pokud jiz neni objekt vytvoren, vytvori instanci objektu STATIC pro dany widget
		 * 
		 * @param HTMLElement widgetEl
		 * @return Object (SiteOneWidgetStatic, SiteOneWidgetStaticGraf, SiteOneWidgetStaticRSS,...)
		 */
		initWidgetStaticObjectFromElement: function(widgetEl) {
			// zjistime si typ widgetu a podle nej vytvorime instanci spravne tridy widgetu
			var widgetType = widgetEl.className.replace(this.widgetStaticClassName+' ','');
			// MS: Docasna berlicka... :)
			widgetType = widgetType.replace('red ','');
			widgetType = widgetType.replace('green ','');
			widgetType = widgetType.replace('blue ','');
			widgetType = widgetType.replace('yellow ','');
			
			if (!this.arrOWidgets[widgetEl.id]) {
				switch (widgetType) {
					case 'wTypGrafVyvojKurzuInstrumentu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticGrafVyvojeKurzuInstrumentu(widgetEl.id);
						break;
					case 'wTypGrafVyvojKurzuFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticGrafVyvojeKurzuFondu(widgetEl.id);
						break;
					case 'wTypGrafStrukturyFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticGrafStrukturyFondu(widgetEl.id);
						break;
					case 'wTypRSS':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticRSS(widgetEl.id);
						break;
					case 'wTypZpravodajstvi':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticZpravodajstvi(widgetEl.id);
						break;
					case 'wTypStatickaStranka':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticStatickaStranka(widgetEl.id);
						break;
					case 'wTypKurzyMen':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKurzyMen(widgetEl.id);
						break;
					case 'wTypKurzyMenIntraday':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKurzyMenIntraday(widgetEl.id);
						break;
					case 'wTypTydenik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticTydenik(widgetEl.id);
						break;
					case 'wTypMesicnik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticMesicnik(widgetEl.id);
						break;
					case 'wTypKomoditniZpravodajstvi':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKomoditniZpravodajstvi(widgetEl.id);
						break;
					case 'wTypPrehledAkciovychTrhu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticPrehledAkciovychTrhu(widgetEl.id);
						break;
					case 'wTypKomodityADerivaty':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKomodityADerivaty(widgetEl.id);
						break;
					case 'wTypPrehledIndexu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticPrehledIndexu(widgetEl.id);
						break;
					case 'wTypKomodityTydenik':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKomodityTydenik(widgetEl.id);
						break;
					case 'wTypKurzyFondu':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticKurzyFondu(widgetEl.id);
						break;
					case 'wTypJednoduchyWidget':
							this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStaticJednoduchyWidget(widgetEl.id);
						break;
					default:
						/*alert('Neznamy typ widgetu "'+widgetType+'"');*/
						this.arrOWidgets[widgetEl.id] = new SiteOneWidgetStatic(widgetEl.id);
						break;
				}
			}
			return this.arrOWidgets[widgetEl.id];
		},
		
		/**
		 * Metoda zavre widget, provede se odstraneni HTML elementu, odstraneni objektu z pole vsech widgetu a ulozeni nastaveni
		 * 
		 * @param Event e
		 * @param HTMLElement obj
		 */
		closeWidget: function (e, obj) {
			var userId = this.getUser();
			var widgetEl = obj.widgetEl;
			// jestlize neni uzivatel urcen, pouze odstranime element a ulozime vsechny ostatni elementy
			if (!userId) {
				try {
					widgetEl.parentNode.removeChild(widgetEl);
					this.arrOWidgets[obj.widgetId].destruct();
					delete this.arrOWidgets[obj.widgetId];
				} catch (e) {
					/*alert('Chyba pri odstranovani widgetu (klient)');*/
				}
				this.saveAllWidgets();
			// pokud je uzivatel, je potreba navic prepocitat pozici pro ostatni widgety ve sloupci
			} else {
				var handleSuccess = function(oResponse) {
					// jestlize smazani probehlo v poradku, odstranime HTML element a objekt ze seznamu widgetu
					if (oResponse.responseText != '') {
						try {
							var oCustomResponse = new SiteOneWidgetsResponse('deleteWidget',oResponse.responseText);
							if (oCustomResponse && oCustomResponse.oData) {
								if (oCustomResponse.oData.deleted) {
									var widgetEl = obj.widgetEl;
									widgetEl.parentNode.removeChild(widgetEl);
									this.arrOWidgets[obj.widgetId].destruct();
									delete this.arrOWidgets[obj.widgetId];
								} else {
									/*alert('Nelze odstranit widget (server)');*/
								}
							} else {
									/*alert('Chyba pri odstranovani widgetu - neplatna opdoved (server)');*/
							}
						} catch (e) {
							/*alert('Chyba pri odstranovani widgetu (klient)');*/
						}
					} else {
						/*alert('Chyba pri odstranovani widgetu - prazdna odpoved (server)');*/
					}
				};
				var handleFailure = function(oResponse) {
					/*alert('Chyba pri odstranovani widgetu (timeout)');*/
				};
				var callback =
				{
					success: handleSuccess,
					failure: handleFailure,
					scope: this,
					timeout: 10000
				};
				// zjistime si pozici ostatnich widgetu ve sloupci, druhy parametr je dany element, ktery se ma pri zjistovani pozice preskocit
				var widgetsInClmn = this.getWidgetsPositionsInColumn(widgetEl.parentNode, widgetEl);
	
//				var url = '/_system/ajaxWidgetServer.php';
				var oRequest = new SiteOneWidgetRequestDeleteWidget({
					idUzivatel:			userId,
					idWidget:			obj.widgetDbId,
					affectedWidgets:	widgetsInClmn
				});
//				var postData = 'actName=deleteWidget&Data='+JSON.stringify(oRequest);
//				var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
				SiteOneWidgetsRequest.sendRequest('deleteWidget',oRequest,callback);

			}
		},
		
		/**
		 * Metoda pro zjisteni pozic widgetu v sloupci elColumn, pokud druhy parametr je HTML element ktery se nachazi v danem sloupci
		 *  preskoci se pocitani pozice pro tento sloupec (protoze ten bude vymazan)
		 * 
		 * @param HTMLElement elColumn
		 * @param HTMLElement deletedWidgetEl
		 * @return Object
		 */
		getWidgetsPositionsInColumn: function (elColumn, deletedWidgetEl) {
			//zjistime DB ID a aktualni pozici pro nasledujici widgety ve sloupci
			var widgetsInClmn = {};
			try {
				var arrWidgetsEl = Dom.getChildren(elColumn);
				var pozice = 1;
				for (var i=0; i<arrWidgetsEl.length; i++) {
					if (arrWidgetsEl[i]!=deletedWidgetEl) {
						/* ulozime pozici pro widget jako polozku asociativniho pole nasledovne:
							DBID widgetu => pozice
						*/
						widgetsInClmn[this.arrOWidgets[arrWidgetsEl[i].id].widgetDbId] = pozice;
						++pozice;
					}
				}
				return widgetsInClmn;
			} catch (e) {
				/*alert('Chyba pri zjistovani pozice pro ostatni widgety ve sloupci (klient)');*/
				return false;
			}
		},
		
		/**
		 * Metoda pro ulozeni vsech widgetu, vola se pri zmene rozlozeni widgetu z defaultniho na uzivatelsky definovane
		 */
		saveAllWidgets: function () {
			if (!this.getUser()) {
				var handleSuccess = function(oResponse) {
					if(oResponse.responseText != '') {
						var oCustomResponse = new SiteOneWidgetsResponse('getNewUserID',oResponse.responseText);
						if (oCustomResponse && oCustomResponse.oData && oCustomResponse.oData.idUzivatel) {
							SiteOneWidgets.setUser(oCustomResponse.oData.idUzivatel);
							for (var widgetId in this.arrOWidgets) {
								if (this.arrOWidgets[widgetId].saveWidget) {
									this.arrOWidgets[widgetId].saveWidget(false, false);
								}
							}
						} else {
							/*alert('Chyba pri ziskavani ID uzivatele (server)');*/
						}
					}
					else {
						/*alert('Chyba pri ziskavani ID uzivatele - prazdna odpoved (server)');*/
					}
				};
				var handleFailure = function(oResponse) {
					/*alert('Chyba pri ziskavani ID uzivatele (timeout)');*/
				};
				var callback =
				{
					success: handleSuccess,
					failure: handleFailure,
					scope: this,
					timeout: 10000
				};
//				var url = '/_system/ajaxWidgetServer.php';
				var oRequest = new SiteOneWidgetRequestGetNewUserID({
				});
//				var postData = 'actName=getNewUserID&Data='+JSON.stringify(oRequest);
//				var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
				SiteOneWidgetsRequest.sendRequest('getNewUserID',oRequest,callback);
			}
		},
		
		/**
		 * Metoda ulozi ID uzivatele do cookie, pokud jiz nebylo ulozeno pretim
		 * 
		 * @param int userId
		 */
		setUser: function (userId) {
			if (!this.getUser()) {
				YAHOO.util.Cookie.set('userId',userId,{ expires: new Date(new Date().setDate(new Date().getDate()+365)) });
			}
		},
		
		/**
		 * Metoda nacte ID uzivatele z cookie
		 * 
		 * @return int
		 */
		getUser: function () {
			return YAHOO.util.Cookie.get('userId');
		},
		
		/**
		 * Metoda ziska nove ID uzivatele ze serveru
		 * 
		 * @return int
		 */
		getNewUserFormServer: function () {
		}
	}
	
if (HomepageJSCheck.JSSupported && HomepageJSCheck.CookieSupported) {
	Event.onDOMReady(SiteOneWidgetsInit);
}
	//new YAHOO.widget.LogReader(); 
	
var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;

	var SiteOneHomepageSetupInit = function() {
			SiteOneHomepageSetup.init();
	}
	
	var SiteOneHomepageSetup = {
		/**
		 * ID elementu ktery obsahuje jak nastaveni HP tak listu s tlacitky
		 * @var string
		 */
		sHPSetupElementId: 'homepageConfig',
		
		/**
		 * ID elementu pro otevreni nabidky sablon
		 * @var string
		 */
		sSetupOpenElId: 'manageHPVyber',
		
		/**
		 * ID elementu pro resetovani nastaveni HP
		 * @var string
		 */
		sSetupResetElId: 'manageHPReset',
		
		/**
		 * ID nadrazeneho elementu, ktery obsahuje veskere nastaveni pro HP
		 * @var string
		 */
		sSetupContainerElParentId: 'nastaveniHP',
		
		/**
		 * Nazev tridy elementu obsahujicim zaskrtavaci elementy
		 * @var string
		 */
		sSetupContainerElClassName: 'nastaveni',
		
		/**
		 * Nazev tridy elementu pro ulozeni nastaveni
		 * @var string
		 */
		sSetupCancelElClassName: 'zavrit',
		
		/**
		 * ID elementu typu input=hidden, ktery urcuje ruzne akce nastaveni HP
		 * @var string
		 */
		sSetupActionElId: 'akceSetupHP',
		
		/**
		 * Nazev html tagu zaskrtavacich elementu
		 * @var string
		 */
		sCheckboxTagName: 'a',
		
		/**
		 * Element nadrazeneho elementu, ktery obsahuje veskere nastaveni pro HP
		 * @var HTMLElement
		 */
		elParentSetup: null,
		
		/**
		 * Element nadrazeneho elementu, ktery obsahuje veskere nastaveni pro HP
		 * @var HTMLElement
		 */
		elSetupAction: null,
		
		/**
		 * Asociativni pole (objekt) spojujici nazvy trid zaskrtavacich elementu a apl. kod sablony
		 * @var Object
		 */
		//oClassNameRelation: {'mojeHP':'','news':'zpravodajstvi','obchodnik':'aktivne-obchodujici-klient','standard':'standardni-novy-klient','pp':'majitel-penzijniho-pripojisteni','fondy':'fondovy-investor'},
		oClassNameRelation: {'mojeHP':'','news':'5','obchodnik':'2','standard':'1','pp':'4','fondy':'3','akcie':'7'},
		
		/**
		 * Vyjadruje, zda se prave zavira nastaveni HP
		 * @var boolean
		 */
		bClosingSetup: false,
		bOpeningSetup: false,
		
		elOverlay: null,
		elPreviewImg: null,
		sPreviewImgPath: '/images/content/homepage/',
		//oClassNamePreview: {'mojeHP':'moje-homepage.jpg','news':'zpravodajstvi-z-trhu.jpg','obchodnik':'obchoduji-na-burze.jpg','standard':'jsem-zde-poprve.jpg','fondy':'investuji-do-fondu.jpg'},
		oClassNamePreview: {'mojeHP':'moje-homepage.gif','news':'zpravodajstvi-z-trhu.gif','obchodnik':'obchoduji-na-burze.gif','standard':'jsem-zde-poprve.gif','fondy':'investuji-do-fondu.gif','akcie':'sleduji-akcie.gif'},
		
		
		init: function () {
			this.elParentSetup = Dom.get(this.sSetupContainerElParentId);
			if (this.elParentSetup) {
           		Event.addListener(this.elParentSetup, 'mouseover', this.showOverlay, this.elParentSetup, this);
           		Event.addListener(this.elParentSetup, 'mouseout', this.hideOverlay, this.elParentSetup, this);
			}
			this.elSetupAction = Dom.get(this.sSetupActionElId);
			var aNastaveniEl = Dom.getElementsByClassName(this.sSetupContainerElClassName,'div',this.elParentSetup);
			if (aNastaveniEl && aNastaveniEl.length) {
				var aCheckboxes = aNastaveniEl[0].getElementsByTagName(this.sCheckboxTagName);
				if (aCheckboxes && aCheckboxes.length) {
					var aSpans = null;
					for (var i=0; i<aCheckboxes.length; i++) {
	               		Event.addListener(aCheckboxes[i], 'click', this.saveHomepageSetup, aCheckboxes[i], this);
		           		Event.addListener(aCheckboxes[i], 'mouseover', this.showPreview, aCheckboxes[i], this);
		           		Event.addListener(aCheckboxes[i], 'mouseout', this.hidePreview, aCheckboxes[i], this);
					}
					var aCancelEl = Dom.getElementsByClassName(this.sSetupCancelElClassName,'a',this.elParentSetup);
					if (aCancelEl && aCancelEl.length) {
	               		Event.addListener(aCancelEl[0], 'click', this.cancelHomepageSetup, aCancelEl[0], this);
					}
				}
			}
			
			var elOpenSetup = Dom.get(this.sSetupOpenElId);
			if (elOpenSetup) {
           		Event.addListener(elOpenSetup, 'mouseover', this.openingHomepageSetup, elOpenSetup, this);
           		var arrSpans = YAHOO.util.Dom.getChildren(elOpenSetup);
           		if (arrSpans && arrSpans.length) {
           			for (var i=0; i<arrSpans.length; i++) {
		           		Event.addListener(arrSpans[i], 'mouseover', this.openingHomepageSetup, elOpenSetup, this);
           			}
           		}
           		
           		Event.addListener(elOpenSetup, 'mouseout', this.stopOpeningHomepageSetup, elOpenSetup, this);
           		Event.addListener(elOpenSetup, 'click', function(e, elSetup) { this.bOpeningSetup=true; this.openHomepageSetup(); YAHOO.util.Event.stopEvent(e); }, elOpenSetup, this);
			}
			var elSetupContainer = Dom.get(this.sHPSetupElementId);
			if (elSetupContainer) {
           		Event.addListener(elSetupContainer, 'mouseout', this.closingHomepageSetup, elSetupContainer, this);
           		Event.addListener(elSetupContainer, 'mouseover', this.stopClosingHomepageSetup, elSetupContainer, this);
			}
			var elResetSetup = Dom.get(this.sSetupResetElId);
			if (elResetSetup) {
           		Event.addListener(elResetSetup, 'click', this.resetHomepageSetup, elResetSetup, this);
			}
			
			
			var elMain = YAHOO.util.Dom.get('main');
			if (elMain) {
				this.elOverlay = document.createElement('div');
				YAHOO.util.Dom.addClass(this.elOverlay,'overlayTemplatePreview');
				YAHOO.util.Dom.setStyle(this.elOverlay,'opacity','0.0');
				this.elOverlay.relatedElement = elMain;
				this.elPreviewImg = document.createElement('img');
				var oPreloadImg = new Image();
				for (var sClassName in this.oClassNamePreview) {
					oPreloadImg.src = this.sPreviewImgPath+this.oClassNamePreview[sClassName];
				}
			}
			
			
		},
		
		/**
		 * Metoda zobrazi overlay pro preview sablony
		 * 
		 * @param Event e
		 * @param HTMLElement elSetup
		 */
		showOverlay: function (e, elSetup) {
			if (!this.elOverlay.parentNode || this.elOverlay.parentNode!=this.elOverlay.relatedElement) {
				var oRegion = YAHOO.util.Dom.getRegion(this.elOverlay.relatedElement);
				YAHOO.util.Dom.setStyle(this.elOverlay,'width',(oRegion.right-oRegion.left)+'px');
				YAHOO.util.Dom.setStyle(this.elOverlay,'height',(oRegion.bottom-oRegion.top-20)+'px');
				this.elOverlay.relatedElement.appendChild(this.elOverlay);
			    var a = new YAHOO.util.Anim( 
					this.elOverlay, { 
						opacity: { to:1.0 }
			        }, 
			        0.2
			    )
				a. animate();
			}
		},
		
		/**
		 * Metoda schova overlay pro preview sablony
		 * 
		 * @param Event e
		 * @param HTMLElement elSetup
		 */
		hideOverlay: function (e, elSetup) {
			var elRelTarget = YAHOO.util.Event.getRelatedTarget(e);
			if (!YAHOO.util.Dom.isAncestor(elSetup,elRelTarget) && elRelTarget!=elSetup) {
			    var a = new YAHOO.util.Anim( 
					this.elOverlay, { 
						opacity: { to:0.0 }
			        }, 
			        0.2
			    )
				a. animate();
				a.onComplete.subscribe(function() {
					SiteOneHomepageSetup.elOverlay.relatedElement.removeChild(SiteOneHomepageSetup.elOverlay);
				});
			}
		},
		
		/**
		 * Metoda zobrazi preview sablony
		 * 
		 * @param Event e
		 * @param HTMLElement elCheck
		 */
		showPreview: function (e, elCheck) {
			if (this.elOverlay.parentNode && this.elOverlay.parentNode==this.elOverlay.relatedElement) {
				this.elPreviewImg.src = this.sPreviewImgPath+this.oClassNamePreview[elCheck.className];
				if (!this.elPreviewImg.parentNode || this.elPreviewImg.parentNode!=this.elOverlay) {
					this.elOverlay.appendChild(this.elPreviewImg);
				}
			}
		},
		
		/**
		 * Metoda schova overlay pro preview sablony
		 * 
		 * @param Event e
		 * @param HTMLElement elCheck
		 */
		hidePreview: function (e, elCheck) {
			if (this.elPreviewImg.parentNode && this.elPreviewImg.parentNode==this.elOverlay) {
				var elRelTarget = YAHOO.util.Event.getRelatedTarget(e);
				if (!YAHOO.util.Dom.isAncestor(elCheck,elRelTarget) && elRelTarget!=elCheck) {
					this.elOverlay.removeChild(this.elPreviewImg);
				}
			}
		},
		
		/**
		 * Metoda po pro ulozeni nastaveni HP
		 * 
		 * @param Event e
		 * @param HTMLElement elCheck
		 */
		saveHomepageSetup: function (e, elCheck) {
			var elHidden = Dom.get('templateId');
			var elForm = Dom.get('widgetTemplate');
			if (elHidden && elForm) {
				elHidden.value = this.oClassNameRelation[elCheck.className];
				this.elSetupAction.value = 'set_template';
				//this.openCloseHomepageSetup(e,elCheck);
				elForm.submit();
			}
			Event.stopEvent(e);
		},
		
		/**
		 * Metoda po pro zruseni nastaveni HP
		 * 
		 * @param Event e
		 * @param HTMLElement elCancel
		 */
		cancelHomepageSetup: function (e, elCancel) {
			Dom.setStyle(this.elParentSetup,'display','none');
			Event.stopEvent(e);
		},
		
		stopOpeningHomepageSetup: function (e, elOpen) {
			this.bOpeningSetup = false;
		},
		
		openingHomepageSetup: function (e, elOpen) {
			if (Dom.getStyle(this.elParentSetup,'display')!='block' && !this.bOpeningSetup) {
				var elRelTarget = YAHOO.util.Event.getRelatedTarget(e);
				//if (!YAHOO.util.Dom.isAncestor(this.sSetupOpenElId,elRelTarget)) {
					this.bOpeningSetup = true;
					Event.stopEvent(e);
					YAHOO.lang.later(750,this,this.openHomepageSetup);
				//}
			}
		},
		
		/**
		 * Metoda pro otevreni nabidky sablon
		 * 
		 * @param Event e
		 * @param HTMLElement elOpen
		 */
		openHomepageSetup: function (e, elOpen) {
			if (this.bOpeningSetup==true) {
				Dom.setStyle(this.elParentSetup,'display','block');
			}
		},
		
		/**
		 * Metoda pro otevreni nabidky sablon
		 * 
		 * @param Event e
		 * @param HTMLElement elOpen
		 */
		stopClosingHomepageSetup: function (e, elOpen) {
			this.bClosingSetup = false;
		},
		
		/**
		 * Metoda pro zavirani nabidky sablon, zavira HP az po uplynuti urceneho casu
		 * 
		 * @param Event e
		 * @param HTMLElement elClose
		 */
		closingHomepageSetup: function (e, elClose) {
			if (Dom.getStyle(this.elParentSetup,'display')=='block') {
				var elRelTarget = YAHOO.util.Event.getRelatedTarget(e);
				if (!YAHOO.util.Dom.isAncestor(this.sHPSetupElementId,elRelTarget)) {
					this.bClosingSetup = true;
					Event.stopEvent(e);
					YAHOO.lang.later(750,this,this.closeHomepageSetup);
				}
			}
		},
		
		closeHomepageSetup: function () {
			if (this.bClosingSetup==true) {
				Dom.setStyle(this.elParentSetup,'display','none');
			}
		},
		
		/**
		 * Metoda po reset nastaveni HP
		 * 
		 * @param Event e
		 * @param HTMLElement elReset
		 */
		resetHomepageSetup: function (e, elReset) {
			this.elSetupAction.value = 'reset_hp';
			var elForm = Dom.get('widgetTemplate');
			if (elForm) {
				elForm.submit();
			}
			Event.stopEvent(e);
		}
	}

if (HomepageJSCheck.JSSupported) {
	Event.onDOMReady(SiteOneHomepageSetupInit);
}
	var VideopruvodceInit = function() {
		Videopruvodce.init();
	}
	
	var Videopruvodce = {
		elOverlay: null,
		elZaviraciOdkaz: null,
		init: function () {
			var elMain = YAHOO.util.Dom.get('main');
			this.elOverlay = document.createElement('div');
			this.elOverlay.title = 'Klikněte pro zavření';
			YAHOO.util.Dom.setStyle(this.elOverlay,'cursor','pointer');
			YAHOO.util.Dom.generateId(this.elOverlay);
			YAHOO.util.Dom.addClass(this.elOverlay,'mstOverlay');
			YAHOO.util.Dom.setStyle(this.elOverlay,'opacity','0.75');
			var oRegion = YAHOO.util.Dom.getRegion(elMain);
			YAHOO.util.Dom.setStyle(this.elOverlay,'height',(oRegion.bottom-oRegion.top-20)+'px');
			this.elOverlay.relatedElement = elMain;
			
			this.elZaviraciOdkaz = document.createElement('a');
			this.elZaviraciOdkaz.title = 'Klikněte pro zavření';
			YAHOO.util.Dom.generateId(this.elZaviraciOdkaz);
			YAHOO.util.Dom.addClass(this.elZaviraciOdkaz,'mstOverlayClose');
			YAHOO.util.Dom.setStyle(this.elZaviraciOdkaz,'display','none');
			this.elOverlay.relatedElement.appendChild(this.elZaviraciOdkaz);
			
			YAHOO.util.Event.addListener(this.elZaviraciOdkaz, 'click', this.closeVideo, this, true);
			YAHOO.util.Event.addListener(this.elOverlay, 'click', this.closeVideo, this, true);
			
			YAHOO.util.Event.addListener('manageHPPrehrat', 'click', this.openVideo, this, true);
			YAHOO.util.Event.addListener('jakNastavitHP', 'click', this.openVideo, this, true);
		},
		
		openVideo: function(e) {
			YAHOO.util.Event.stopEvent(e);
			if (!this.elOverlay.parentNode || this.elOverlay.parentNode!=this.elOverlay.relatedElement) {
				var elVideo = document.createElement('div');
				YAHOO.util.Dom.addClass(elVideo,'mstFlash');
				this.elOverlay.appendChild(elVideo);
				var videoElInner = document.createElement('div');
				var videoElInnerId = YAHOO.util.Dom.generateId(videoElInner);
				elVideo.appendChild(videoElInner);
				FlashVars = {
							'movie': 		'/images/videos/wizard.flv',
							'bgcolor':		'0x007baa',
							'fgcolor':		'0x007baa',
							'autoplay':		'on',
							'volume':		'100',
							'autoload':		'on',
							'autorewind':	'on',
							'loop':			'on',
							'clickurl':		'',
							'clicktarget':	''
				};
				this.elOverlay.relatedElement.appendChild(this.elOverlay);
				swfobject.embedSWF("/images/flash/player-10_sec_buffer.swf", videoElInnerId, "640", "400", "9.0.0", "/_widgets/expressInstall.swf",FlashVars,{wmode:''});
				YAHOO.util.Dom.setStyle(this.elZaviraciOdkaz,'display','block');
			}
		},
		
		closeVideo: function(e) {
			YAHOO.util.Event.stopEvent(e);
			YAHOO.util.Dom.setStyle(this.elZaviraciOdkaz,'display','none');
			this.elOverlay.parentNode.removeChild(this.elOverlay);
			this.elOverlay.innerHTML = '';
		}
	}
	
if (HomepageJSCheck.JSSupported) {
	Event.onDOMReady(VideopruvodceInit);
}
/*
var initMstOverlay = function(e) {
	YAHOO.util.Event.stopEvent(e);
	var elMain = YAHOO.util.Dom.get('main');
	var mstOverlay = document.createElement('div');
	var mstOverlayId = YAHOO.util.Dom.generateId(mstOverlay);
	YAHOO.util.Dom.addClass(mstOverlay,'mstOverlay');
	YAHOO.util.Dom.setStyle(mstOverlay,'opacity','0.75');
	var oRegion = YAHOO.util.Dom.getRegion(elMain);
	YAHOO.util.Dom.setStyle(mstOverlay,'height',(oRegion.bottom-oRegion.top-20)+'px');
	mstOverlay.relatedElement = elMain;
	mstOverlay.relatedElement.appendChild(mstOverlay);
	
	var videoEl = document.createElement('div');
	YAHOO.util.Dom.addClass(videoEl,'mstFlash');
	mstOverlay.appendChild(videoEl);
	var videoElInner = document.createElement('div');
	var videoElInnerId = YAHOO.util.Dom.generateId(videoElInner);
	videoEl.appendChild(videoElInner);
	FlashVars = {
				'movie': 		'/images/videos/wizard.flv',
				'bgcolor':		'0x007baa',
				'fgcolor':		'0x007baa',
				'autoplay':		'on',
				'volume':		'100',
				'autoload':		'on',
				'autorewind':	'on',
				'loop':			'on',
				'clickurl':		'',
				'clicktarget':	''
	};
	swfobject.embedSWF("/images/flash/player-10_sec_buffer.swf", videoElInnerId, "640", "400", "9.0.0", "/_widgets/expressInstall.swf",FlashVars,{wmode:''});
	var zaviraciOdkaz = document.createElement('a');
	var zaviraciOdkazId = YAHOO.util.Dom.generateId(zaviraciOdkaz);
	YAHOO.util.Dom.addClass(zaviraciOdkaz,'mstOverlayClose');
	elMain.appendChild(zaviraciOdkaz);
	Attrs = {
			'overlayId':			mstOverlayId,
			'zaviraciOdkazId':		zaviraciOdkazId
	};
	YAHOO.util.Event.addListener(zaviraciOdkazId, 'click', closeMstOverlay, Attrs);
	return false;
}

var closeMstOverlay = function( e, obj ) {
	YAHOO.util.Dom.setStyle(obj.zaviraciOdkazId,'display','none');
	YAHOO.util.Dom.setStyle(obj.overlayId,'display','none');
}

//YAHOO.util.Event.onDOMReady(initMstOverlay);
YAHOO.util.Event.addListener('manageHPPrehrat', 'click', initMstOverlay);
YAHOO.util.Event.addListener('jakNastavitHP', 'click', initMstOverlay);
*/
