﻿/**
	* @author E.T.Webb
	* @version 0.1
	* @usage autohides/show elements via height and overflow.

**/

/*

var showHider = new Class({
	
	Implements: Options,
	
	options: {
		link: undefined,
		target:undefined,
		target_height:undefined,
		effect:undefined,
		show: false
	},
	initialize: function(options) {
		
		
		this.setOptions(options);
		if(this.options.link == undefined || this.options.target == undefined) { return false }
		if(this.options.target_height == undefined) {
			this.options.target_height = this.options.target.getSize().y;
		}
		this.options.link.removeProperty("href");
		if(!this.options.show) {
			this.options.target.setStyle("display","none");
			this.options.target.setStyle("height",0);
		}
		//this.options.effect = new Fx.Tween(this.options.target, "height");
		this.options.target.set("tween",{duration: 'short'});
		this.options.link.addEvent("click",this.linkClick.bind(this));
	}
	
	
	,
	linkClick: function() {
		if(this.options.target.getStyle("display") == "block") {
			//this.options.effect.cancel();
			this.options.link.removeClass("active");
			if(this.options.link.hasChild("em")) {this.options.link.getElement("em").set("text"," ▼")}
			this.options.target.tween('height', 0);
			this.options.target.get("tween").chain(function(){this.element.setStyle("display","none")});
		} else {
			this.options.target.setStyle("display","block");			
			this.options.link.addClass("active");
			if(this.options.link.hasChild("em")) {this.options.link.getElement("em").set("text"," ▲")}
			this.options.target.tween('height', this.options.target_height);
		}
	}
	
});

*/

