//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

Fx.Slide=new Class({
				   Extends:Fx,
				   options:{mode:"vertical"},
				   initialize:function(B,A){
					   this.addEvent("complete",function(){
														 this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);

if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper);
}},true);
this.element=this.subject=$(B);
;
this.parent(A);
var C=this.element.retrieve("wrapper");
this.wrapper=C||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);
this.element.store("wrapper",this.wrapper).setStyle("margin",0);
this.now=[];
this.open=true;
},vertical:function(){this.margin="margin-top";
this.layout="height";
var test =  this.element.hasClass('menumain-sublevel-2');
var test1 =  this.element.hasClass('menumain-sublevel-1');
if(test) this.offset=this.element.offsetHeight;
},horizontal:function(){this.margin="margin-left";

this.layout="width";
this.offset=this.element.offsetWidth;
},set:function(A){this.element.setStyle(this.margin,A[0]);
this.wrapper.setStyle(this.layout,A[1]);

return this;
},compute:function(E,D,C){var B=[];
var A=2;
A.times(function(F){B[F]=Fx.compute(E[F],D[F],C);
});
return B;
},start:function(B,E){if(!this.check(arguments.callee,B,E)){return this;

}this[E||this.options.mode]();
var D=this.element.getStyle(this.margin).toInt();
var C=this.wrapper.getStyle(this.layout).toInt();
var A=[[D,C],[0,this.offset]];

var G=[[D,C],[-this.offset,0]];
var F;
switch(B){case"in":F=A;
break;
case"out":F=G;
break;
case"toggle":F=(this.wrapper["offset"+this.layout.capitalize()]==0)?A:G;

}return this.parent(F[0],F[1]);
},slideIn:function(A){return this.start("in",A);
},slideOut:function(A){return this.start("out",A);
},hide:function(A){this[A||this.options.mode]();

this.open=false;
return this.set([-this.offset,0]);
},show:function(A){this[A||this.options.mode]();
this.open=true;
return this.set([0,this.offset]);
},toggle:function(A){return this.start("toggle",A);

}});
Element.Properties.slide={set:function(B){var A=this.retrieve("slide");
if(A){A.cancel();
}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},B));

},get:function(A){if(A||!this.retrieve("slide")){if(A||!this.retrieve("slide:options")){this.set("slide",A);
}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")));

}return this.retrieve("slide");
}};
Element.implement({slide:function(D,E){D=D||"toggle";
var B=this.get("slide"),A;
switch(D){case"hide":B.hide(E);
break;
case"show":B.show(E);

break;
case"toggle":var C=this.retrieve("slide:flag",B.open);
B[(C)?"slideOut":"slideIn"](E);
this.store("slide:flag",!C);
A=true;
break;
default:B.start(D,E);

}if(!A){this.eliminate("slide:flag");
}return this;
}});
Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);

this.parent(A);
var D=this.cancel.bind(this,false);
if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);
}var C=this.element;

if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D);
},true);
this.addEvent("complete",function(){C.removeEvent("mousewheel",D);

},true);
}},set:function(){var A=Array.flatten(arguments);
this.element.scrollTo(A[0],A[1]);
},compute:function(E,D,C){var B=[];
var A=2;
A.times(function(F){B.push(Fx.compute(E[F],D[F],C));

});
return B;
},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this;
}var E=this.element.getSize(),F=this.element.getScrollSize();
var B=this.element.getScroll(),D={x:C,y:H};

for(var G in D){var A=F[G]-E[G];
if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A;
}else{D[G]=B[G];
}D[G]+=this.options.offset[G];
}return this.parent([B.x,B.y],[D.x,D.y]);

},toTop:function(){return this.start(false,0);
},toLeft:function(){return this.start(0,false);
},toRight:function(){return this.start("right",false);
},toBottom:function(){return this.start(false,"bottom");

},toElement:function(B){var A=$(B).getPosition(this.element);
return this.start(A.x,A.y);
}});
Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);

this.parent(A);
},compute:function(G,H,I){var C={};
for(var D in G){var A=G[D],E=H[D],F=C[D]={};
for(var B in A){F[B]=this.parent(A[B],E[B],I);
}}return C;

},set:function(B){for(var C in B){var A=B[C];
for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);
}}return this;
},start:function(C){if(!this.check(arguments.callee,C)){return this;

}var H={},I={};
for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};
for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);
A[B]=E.from;
G[B]=E.to;
}}return this.parent(H,I);

}});
var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);
this.events={};
this.checker={};
},addEvent:function(B,A){this.checker[B]=this.checker[B]||{};

this.events[B]=this.events[B]||[];
if(this.events[B].contains(A)){return false;
}else{this.events[B].push(A);
}this.instances.each(function(C,D){C.addEvent(B,this.check.bind(this,[B,C,D]));

},this);
return this;
},check:function(C,A,B){this.checker[C][B]=true;
var D=this.instances.every(function(F,E){return this.checker[C][E]||false;
},this);
if(!D){return ;

}this.checker[C]={};
this.events[C].each(function(E){E.call(this,this.instances,A);
},this);
}});
var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(A,B){this.element.scrollTo(A,B);

}},initialize:function(B,A){this.setOptions(A);
this.element=$(B);
this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;

this.timer=null;
this.coord=this.getCoords.bind(this);
},start:function(){this.listener.addEvent("mousemove",this.coord);
},stop:function(){this.listener.removeEvent("mousemove",this.coord);

this.timer=$clear(this.timer);
},getCoords:function(A){this.page=(this.listener.get("tag")=="body")?A.client:A.page;
if(!this.timer){this.timer=this.scroll.periodical(50,this);

}},scroll:function(){var B=this.element.getSize(),A=this.element.getScroll(),E=this.element.getPosition(),D={x:0,y:0};
for(var C in this.page){if(this.page[C]<(this.options.area+E[C])&&A[C]!=0){D[C]=(this.page[C]-this.options.area-E[C])*this.options.velocity;

}else{if(this.page[C]+this.options.area>(B[C]+E[C])&&B[C]+B[C]!=A[C]){D[C]=(this.page[C]-B[C]+this.options.area-E[C])*this.options.velocity;
}}}if(D.y||D.x){this.fireEvent("change",[A.x+D.x,A.y+D.y]);

}}});
var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});

this.parent(C.elements,C.options);
this.togglers=$$(C.togglers);
this.container=$(C.container);
this.previous=-1;
if(this.options.alwaysHide){this.options.wait=true;

}if($chk(this.options.show)){this.options.display=false;
this.previous=this.options.show;
}if(this.options.start){this.options.display=false;
this.options.show=false;

}this.effects={};
if(this.options.opacity){this.effects.opacity="fullOpacity";
}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";

}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";
}for(var B=0,A=this.togglers.length;
B<A;
B++){this.addSection(this.togglers[B],this.elements[B]);

}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);
}else{for(var F in this.effects){E.setStyle(F,0);

}}},this);
if($chk(this.options.display)){this.display(this.options.display);
}},addSection:function(E,C,G){E=$(E);
C=$(C);
var F=this.togglers.contains(E);

var B=this.togglers.length;
alert(B);
this.togglers.include(E);
this.elements.include(C);
if(B&&(!F||G)){G=$pick(G,B-1);
E.inject(this.togglers[G],"before");
C.inject(E,"after");

}else{if(this.container&&!F){E.inject(this.container);
C.inject(this.container);
}}var A=this.togglers.indexOf(E);
E.addEvent("click",this.display.bind(this,A));

if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});
}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});

}C.fullOpacity=1;
if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;
}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;
}C.setStyle("overflow","hidden");

if(!F){for(var D in this.effects){C.setStyle(D,0);
}}return this;
},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;
if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;

}this.previous=A;
var B={};
this.elements.each(function(E,D){B[D]={};
var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));
this.fireEvent(C?"background":"active",[this.togglers[D],E]);

for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];
}},this);
return this.start(B);
}});

