// The OverFX mootools plugin is a creation of Christophe PERSOZ!
// This isn't free software, so don't forget to give me a gift of some sort!
// some idea's include poetry, drawings, songs, doodads, whosits, fuzzy things,
// software licenses, and general free stuff. Contact me at http://www.ogoon.fr/
// and let me know where you're using OverFX!
// version: 1.0 - Works with mootool v1.2.1 core

var inOutFX=new Class({current:null,buttons:true,layers:null,initialLayer:null,initialize:function(a,c,b){if(a){this.buttons=$$(a)}this.navContainer=c;this.buttonContainer=$$("."+c);this.layerName=b;this.layers=$$("."+b);if(this.buttons){this.buttons.each(function(d){d.addEvent("mouseover",this.buttonInHandler.bindWithEvent(this,d));d.addEvent("mouseleave",this.buttonOutHandler.bindWithEvent(this,d))}.bind(this))}},buttonInHandler:function(b,a){this.current=this.buttons.indexOf($(a));if(b.target==this.buttons[this.current]){return}this.storeActiveLayer(this.layers[this.buttons.indexOf($(a))]);this.changeTo(this.layers[this.buttons.indexOf($(a))])},buttonOutHandler:function(b,a){this.changeTo(this.layers[this.buttons.indexOf($(a))],true)},storeActiveLayer:function(b){var a=b.getParent().getChildren("div");a.each(function(c){if(c.get("class")!=this.navContainer&&c.get("class")!=this.layerName){if(c.getStyle("display")=="block"||c.getStyle("display")==""){this.initialLayer=c.get("class")}}}.bind(this))},changeTo:function(c,b){var a=c.getParent().getChildren("div");if(b){a.each(function(d){if(d.get("class")!=this.navContainer){this.fx=new Fx.Tween(d,{property:"opacity",duration:200,link:"chain"}).start(0).chain(function(){d.setStyle("display","none");if(d.get("class")==this.initialLayer){d.setStyle("display","block");d.fade(1)}}.bind(this))}}.bind(this))}else{if(c.getStyle("opacity")!=1){a.each(function(d){if(d.get("class")!=this.navContainer){this.fx=new Fx.Tween(d,{property:"opacity",duration:100,link:"chain"}).start(0).chain(function(){d.setStyle("display","none");if(d.get("class")==this.layerName){d.setStyle("display","block");d.fade(1)}}.bind(this))}}.bind(this))}}}});inOutFX.implement(new Events);