var accordion = function()
{
	var linksL = yd.Dom.getElementsByClassName('find-left');
	var linksR = yd.Dom.getElementsByClassName('find-right');
	
	var ulL = yd.Dom.getElementsByClassName('swap-left');
	var ulR = yd.Dom.getElementsByClassName('swap-right');
		
	var isShowLeft = false;
	var showLeft = undefined;

	var isShowRight = false;
	var showRight = undefined;

	var IE = !!(window.attachEvent && !window.opera);

	accordion.init = function()
	{
		yd.Event.addListener(linksL, 'click', accordion.inLeft);
		yd.Event.addListener(linksR, 'click', accordion.inRight);
	}	
	
	accordion.inLeft = function(e)
	{
		var el = yd.Event.getTarget(e);
		if(isShowLeft && yd.Dom.hasClass(el, 'nivel1'))
		{
				var to_height = (showLeft.offsetHeight == 0) ? showLeft.scrollHeight : 0;
				var from_height = (showLeft.offsetHeight == 0) ? 0 : showLeft.scrollHeight;
				var ease_type = (from_height == 0) ? yd.Easing.easeOut : yd.Easing.easeIn;
				var anim = new yd.Anim(showLeft, { height: {to: to_height, from: from_height} }, 0.5, ease_type);
				anim.onStart.subscribe(function(){ isShowLeft = false; }); 
				anim.animate();
		}

		for (var i=0; i < linksL.length; i++) 
		{
			if(el==linksL[i])
			{
				var left = ulL[i];
				if(!yd.Dom.hasClass(left, 'nivel2'))
					showLeft = left;
				break;
			}
		}

		if(yd.Dom.hasClass(el, 'nivel2'))
		{
			var cont = yd.Dom.getElementsByClassName('content-left');			
			var lis = left.getElementsByTagName('li');
			var dx = 0;
			for (var j=0; j < lis.length; j++) {
				dx += lis[j].offsetHeight;					
			}
			
			if(left.offsetHeight==0)
				var anim = new yd.Anim(cont[0], { height: {to: (dx)+cont[0].scrollHeight, from: cont[0].scrollHeight} }, 0.5, yd.Easing.easeIn);					
			else
				var anim = new yd.Anim(cont[0], { height: {to: cont[0].scrollHeight-(dx), from: cont[0].scrollHeight} }, 0.5, yd.Easing.easeOut);				
				showContentLeft = false;
				
			anim.animate();				
		}
		
						
		var to_height = (left.offsetHeight == 0) ? left.scrollHeight : 0;
		var from_height = (left.offsetHeight == 0) ? 0 : left.scrollHeight;
		var ease_type = (from_height == 0) ? yd.Easing.easeOut : yd.Easing.easeIn;
		isShowLeft	= (from_height == 0) ? true : false;
		var anim = new yd.Anim(left, { height: {to: to_height, from: from_height} }, 0.5, ease_type);
		if(IE)
		{
			anim.onStart.subscribe(function()
			{
				var lis = left.getElementsByTagName('li');
				yd.Dom.addClass(lis, 'none-image');
			}); 
		}
			
		anim.animate();
		
		if(IE)
		{
			anim.onComplete.subscribe(function()
			{
				var lis = left.getElementsByTagName('li');
				yd.Dom.removeClass(lis, 'none-image');
			}); 
		}
		
		
	}
	
	accordion.inRight = function(e)
	{
		var el = yd.Event.getTarget(e);
		if(isShowRight && yd.Dom.hasClass(el, 'nivel1'))
		{
				var to_height = (showRight.offsetHeight == 0) ? showRight.scrollHeight : 0;
				var from_height = (showRight.offsetHeight == 0) ? 0 : showRight.scrollHeight;
				var ease_type = (from_height == 0) ? yd.Easing.easeOut : yd.Easing.easeIn;
				var anim = new yd.Anim(showRight, { height: {to: to_height, from: from_height} }, 0.5, ease_type);
				anim.onStart.subscribe(function(){ isShowRight = false; showRight = undefined;}); 
				anim.animate();
		}

		for (var i=0; i < linksR.length; i++) 
		{
			if(el==linksR[i])
			{
				var right = ulR[i];
				showRight = right;
				break;
			}
		}				
				
		var to_height = (right.offsetHeight == 0) ? right.scrollHeight : 0;
		var from_height = (right.offsetHeight == 0) ? 0 : right.scrollHeight;
		var ease_type = (from_height == 0) ? yd.Easing.easeOut : yd.Easing.easeIn;
		isShowRight	= (from_height == 0) ? true : false;
		var anim = new yd.Anim(right, { height: {to: to_height, from: from_height} }, 0.5, ease_type);
		anim.animate();
		
	}
	
}

new accordion;
yd.Event.addListener(window, 'load' , accordion.init());