//==================================================================
//	Create Element / DOM Object
//==================================================================
//------------------------------------------------------------------
//	class
//------------------------------------------------------------------
function myLayers(){
	//--------------------------------------------------------------
	// variables
	//--------------------------------------------------------------
		
		var isIE			= false;
		var	delay			= 1000;
		var	maxSteps		= delay/100;
		var	curStep			= 0;
		var oName			= ""
		this.toggle			= "";
		var origHeight		= 0;
		var callback	= false;		
	//--------------------------------------------------------------
	// arrays
	//--------------------------------------------------------------
	
		this.aItems			= Array();		
		
	//--------------------------------------------------------------
	// constructor
	//--------------------------------------------------------------
	
		if(window.ActiveXObject){isIE = true;}
		
	//--------------------------------------------------------------
	// methods
	//--------------------------------------------------------------
	
	this.showHideLayer = function(id){
		this.id	= id;       
		delete OBJ;
		OBJ	= myDom.getObject(this.id);
		//	check state and reset
		//------------------------------
		this.dir	= OBJ.style.display == "none" ? 1 : 0;

		if(this.dir == 1){
			OBJ.style.visibility	= "visible";
			OBJ.style.display		= "block";
			OBJ.style.zIndex		= "999";
		}
		//	get properties & set default
		//------------------------------
		objWidth	= this.findWidth(OBJ);
		objHeight	= this.findHeight(OBJ);		
		if(origHeight == 0){origHeight	= objHeight;}
		OBJ.style.height	= this.dir == 1 ? "1px" : objHeight;
		//	start event
		//------------------------------
		this.timedEvent();
	}
	
	this.adjustLayer = function(){
		OBJ	= myDom.getObject(this.id);
		curHeight = objHeight;      		
		if(curStep < maxSteps){
			curStep++;
			delta	= parseInt(this.easeOutQUAD(curStep, (origHeight - curHeight), curHeight, maxSteps));
			delta	= this.dir == 1 ? delta : (origHeight - delta);
			OBJ.style.height	= delta + "px";
		}
		else{
			clearInterval(myInterval);
			if(this.dir == 0){
				OBJ.style.height		= objHeight + "px";
				OBJ.style.visibility	= "hidden";
				OBJ.style.display		= "none";
			}
		}
	}

	this.timedEvent	= function(objHeight, maxHeight){
		curStep	= 0;
		this.adjustLayer()
		myInterval	= window.setInterval("myLayers.adjustLayer()" , 10);
	}

	this.easeOutQUAD = function(t, b, c, d) {
			return -c*t*t/(d*d) + 2*c*t/d + b;
	}

	this.getDimensions = function(OBJ){
		objWidth	= this.findWidth(OBJ);
		objHeight	= this.findHeight(OBJ);
		return objWidth, objHeight;
	}

	this.findWidth = function(OBJ){
		var objWidth = 0;
		if (OBJ.offsetParent){
			while (OBJ.offsetParent){
				objWidth += OBJ.offsetWidth;
				OBJ = OBJ.offsetWidth;
			}
		}
		else if (OBJ.x){objWidth += OBJ.x;}
		return objWidth;
	}

	this.findHeight = function(OBJ){
		var objHeight = 0;
		if (OBJ.offsetParent){
			while (OBJ.offsetParent){
				objHeight += OBJ.offsetHeight;
				OBJ = OBJ.offsetHeight;
			}
		}
		else if (OBJ.y){objHeight += OBJ.y;}
		return objHeight;
	}
}
