/*Kodlama:Ahmet AKÇAY*/

var globalSlideObj;
function slideAnimation(){
	this.slideType= "toggle"; // accordion
	this.signatureClass= "slideAnima";
	this.timer= 20;
	this.myinterval= null;
	this.myName= "";
	this.objectListener = new Array();
	this.exElement = null;
	this.exHandleObj = null;
	this.getOffset = 0;
}
slideAnimation.prototype = {
	getElmById: function(_id){
		return document.getElementById(_id);
	},
	// dustin diaz script
	getElementsByClassName : function(searchClass,node,tag){
		var classElements = new Array();
		if ( node == null )
			node = document;
		if ( tag == null )
			tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
		for (i = 0, j = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {	classElements[j] = els[i];j++;}
		}
		return classElements;
	},
	
	init : function(objName){
		this.objectListener = new Array();
		this.myName = objName;
		var myHandlerObject = [];
		myHandlerObject = this.getElementsByClassName(this.signatureClass);
		for(var i=0;i<myHandlerObject.length;i++){
			myHandlerObject[i].setAttribute("__MyObj",this.myName);
			myHandlerObject[i].onclick = function(){
				//alert(this.getAttribute("__MyObj").myName)
				mySlideObject = eval(this.getAttribute("__MyObj"))
				myhref = this.href;
				myObjName = myhref.substring(myhref.lastIndexOf("/")+1, myhref.length)
				mySlideObject.handler(this,mySlideObject.getElmById(myObjName))
				return false;
			}
		}
	},	
	handler: function(_handleObj,_myObj){
		if(this.exHandleObj!=null) this.exHandleObj.className = this.signatureClass;
		_handleObj.className = (_handleObj.className=="slideSelected")? this.signatureClass : "slideSelected";	
		if(typeof(_myObj.statu) == "undefined")  _myObj.statu ="+";	
		if(_myObj.statu == "+"){	
			_myObj.style.display="";			
			//_myObj.openHeight = _myObj.offsetHeight
			if(typeof(_myObj.openHeight)=="undefined") _myObj.openHeight = _myObj.offsetHeight;
			_myObj.style.display="none";
			_myObj.style.height="0px";
			_myObj.style.overflow="hidden";		
		}
		else{
			_statu = "-"
		}
		if(this.slideType == "toggle"){			
			var dummyObj  = [];
			dummyObj[0] = _myObj;
			dummyObj[1] = _handleObj;
			this.objectListener.push(dummyObj)
			if(this.myinterval == null)	this.myinterval = setInterval(this.myName + ".slideMe()",this.timer)
		}
		else{
			if(this.exElement != null) {
				if(this.exHandleObj != _handleObj){
					this.exElement.statu = "-";
					var dummyObj  = [];
					dummyObj[0] = this.exElement;
					dummyObj[1] = (this.exHandleObj!=null)? this.exHandleObj : _handleObj;					
					this.objectListener.push(dummyObj)		
				}
			}
			this.exHandleObj = _handleObj
			var dummyObj  = [];
			dummyObj[0] = _myObj;
			dummyObj[1] = _handleObj;
			this.objectListener.push(dummyObj)
			
			if(this.myinterval == null)	this.myinterval = setInterval(this.myName + ".slideMe()",this.timer)
		}
	},	
	slideMe: function(){	
		if(this.objectListener.length>0){
			myObj = this.objectListener[0][0];
			//slidedown
			if(myObj.statu=="+"){
				myObj.style.display="";
				diff = (myObj.openHeight - myObj.offsetHeight)
				myObj.style.height = myObj.offsetHeight  + (diff/3) + "px" ;
				if(diff<3){	
					//myObj.style.height = myObj.openHeight + "px";
					myObj.style.height = "auto";	
					this.getOffset=0
					if(this.slideType == "accordion") this.exElement = myObj;
					this.objectListener[0][1].className = "slideSelected";
					this.objectListener.shift();
					myObj.statu="-";
					//alert("bitti")
				}
			}
			//slideup
			else{
				if(this.getOffset==0) myObj.openHeight = myObj.offsetHeight
				this.getOffset=1
				diff = (0 - myObj.offsetHeight)
				myObj.style.height = myObj.offsetHeight  + (diff/3) + "px" ;
				if(myObj.offsetHeight <=3){
					if(this.slideType == "accordion") this.exElement = myObj
					this.objectListener[0][1].className = this.signatureClass;
					myObj.style.height="0px";
					myObj.style.display="none";
					this.objectListener.shift();					
					myObj.statu="+"
					//alert("bu da bitti")
				}
			}
		}
		else{
			clearInterval(this.myinterval);
			this.myinterval = null;
		}
	}	
}

