var AccordionMenu =(function(){	var YUD = YAHOO.util.Dom;	var YUE = YAHOO.util.Event;	var oMenuSetting = {};	var oMenuCache = {};	var dLastHoverTitle ;	YUD.addClass(document.documentElement,'accordion-menu-js');		function getDT(e)	{		var dEl = YUE.getTarget(e);					if(	(e.tagName + '').toUpperCase()=='DD' )		{				var dt = e.previousSibling ;			while(dt)			{				if(dt.tagName &&  dt.tagName.toUpperCase() == 'DT'){break;};				dt = dt.previousSibling			};						if(!dt || dt.tagName.toUpperCase() != 'DT'){return;}			else{return (dt.tagName==='DT')?dt:null};		}		else if(e.clientX)		{			var found = false;			while( dEl.parentNode)			{				if(YUD.hasClass(dEl,'a-m-t')){ found  = true ; break;};				dEl = dEl.parentNode;			};			if(!found){return null}			else{return (dEl.tagName==='DT')?dEl:null };			};			};				function getDD(dt)	{		if(!dt){return null;};		var dd = dt.nextSibling ;			while(dd)		{				if(dd.tagName && dd.tagName.toUpperCase() == 'DD'){break;};			dd = dd.nextSibling;					};		if(!dd || dd.tagName.toUpperCase() != 'DD'){return;}		else{return dd};	};		function expand(dl,dt,dd)	{		dl.hasAnimation +=1;		YUD.addClass(dd,'a-m-d-before-expand');				var oAttr = {height:{from:0,to:dd.offsetHeight }};				YUD.removeClass(dd,'a-m-d-before-expand');				var onComplete = function()		{				oAnim.onComplete.unsubscribe(onComplete);			oAnim.stop();			YUD.removeClass(dd,'a-m-d-anim');			YUD.addClass(dd,'a-m-d-expand');			onComplete = null;				dl.hasAnimation -=1;			var dt = getDT(dd);				YUD.addClass(dt,'a-m-t-expand');			if( oMenuCache[ dl.id ] &&  oMenuCache[ dl.id ].onOpen && dd.style.height!='' )			{					oMenuCache[ dl.id ].onOpen(	 {dl:dl,dt:dt,dd:dd} );											};				dd.style.height = '';				};				var onTween = function()		{			if(dd.style.height)			{					YUD.addClass(dd,'a-m-d-anim');								oAnim.onTween.unsubscribe(onTween);				onTween = null;				dd.oAnim = null;			};					};				if(dd.oAnim)		{			dd.oAnim.stop();			dd.oAnim = null;			dl.hasAnimation -=1;			};		var oEaseType = YAHOO.util.Easing.easeOut;		var seconds = 0.5;		if(oMenuCache[ dl.id ] )		{			oEaseType = oMenuCache[ dl.id ]['easeOut']?oEaseType:YAHOO.util.Easing.easeIn;			seconds =  oMenuCache[ dl.id ]['seconds'];						if( !oMenuCache[ dl.id ]['animation'] )			{				var oAnim = {onComplete:{unsubscribe:function(){}},stop:function(){}};				onComplete();				return;			};		};						var oAnim = new YAHOO.util.Anim(dd,oAttr,seconds ,oEaseType);		oAnim.onComplete.subscribe(onComplete);			oAnim.onTween.subscribe(onTween);		oAnim.animate();		dd.oAnim = oAnim ;		};		function collapse(dl,dt,dd)	{		dl.hasAnimation +=1;		YUD.addClass(dd,'a-m-d-anim');		var oAttr = {height:{from:dd.offsetHeight,to:0}};						var onComplete = function()		{			oAnim.onComplete.unsubscribe(onComplete);			YUD.removeClass(dd,'a-m-d-anim');			YUD.removeClass(dd,'a-m-d-expand');			dd.style.height = '';			dd.oAnim = null;			onComplete = null;				dl.hasAnimation -=1;				var dt = getDT(dd);				YUD.removeClass(dt,'a-m-t-expand');				if( oMenuCache[ dl.id ] &&  oMenuCache[ dl.id ].onOpen )			{								oMenuCache[ dl.id ].onClose(	 {dl:dl,dt:dt,dd:dd} );			};								};				if(dd.oAnim)		{			dd.oAnim.stop();			dd.oAnim = null;			dl.hasAnimation -=1;			};				var oEaseType = YAHOO.util.Easing.easeOut;		var seconds = 0.5;		if(oMenuCache[ dl.id ] )		{			oEaseType = oMenuCache[ dl.id ]['easeOut']?oEaseType:YAHOO.util.Easing.easeIn;			seconds =  oMenuCache[ dl.id ]['seconds'];			if( !oMenuCache[ dl.id ]['animation'] )			{				var oAnim = {onComplete:{unsubscribe:function(){}},stop:function(){}};				onComplete();				return;			};			};				var oAnim = new YAHOO.util.Anim(dd,oAttr,seconds ,oEaseType);			oAnim.onComplete.subscribe(onComplete);			oAnim.animate();		dd.oAnim = oAnim ;	};		function collapseAll(dl,dt,dd)	{		var aOtherDD = YUD.getElementsByClassName('a-m-d-expand','dd',dl);		for(var i=0;i<aOtherDD.length;i++)		{			var otherDD = aOtherDD[i] ;			if( otherDD !=dd )			{				collapse(dl,null,otherDD);			};						};	}			var onMenuMouseover = function(e)	{		var dMenuTitle = getDT(e);		if(!dMenuTitle){return;};		if(dLastHoverTitle)		{			YUD.removeClass(dLastHoverTitle,'a-m-t-hover');		};				YUD.addClass(dMenuTitle,'a-m-t-hover');		dLastHoverTitle = dMenuTitle ;		YUE.preventDefault(e);		return false;			};		var onMenuMouseout = function(e)	{		var dMenuTitle = getDT(e);		if(!dMenuTitle){return;};		if(dLastHoverTitle && dLastHoverTitle!=dMenuTitle)		{			YUD.removeClass(dLastHoverTitle,'a-m-t-hover');			YUD.removeClass(dLastHoverTitle,'a-m-t-down');		};			YUD.removeClass(dMenuTitle,'a-m-t-down');			YUD.removeClass(dMenuTitle,'a-m-t-hover');		dLastHoverTitle = null ;		YUE.preventDefault(e);		return false;			};		var onMenuMousedown = function(e)	{		var dMenuTitle = getDT(e);		if(!dMenuTitle){return;};			YUD.addClass(dMenuTitle,'a-m-t-down');		YUE.preventDefault(e);		return false;		};		var onMenuClick = function(e)	{		var dt = getDT(e);		if(!dt){return;};		var dd = getDD(dt);							if(!dd){return;};		var dl = dt.parentNode;				if(dl.hasAnimation==null)		{			dl.hasAnimation = 0;		}			if(dl.hasAnimation > 0 ){return;};		YUD.removeClass(dt,'a-m-t-down');				if(YUD.hasClass(dd,'a-m-d-expand'))		{				collapse(dl,dt,dd);		}		else		{						if( oMenuCache[ dl.id ] &&  oMenuCache[ dl.id ].dependent == false ){}			else{collapseAll(dl,dt,dd);}			expand(dl,dt,dd);		};				YUE.preventDefault(e);		return false;	};			YUE.on( document,'mouseover',onMenuMouseover);	YUE.on( document,'mouseout',onMenuMouseout);	YUE.on( document,'mousedown',onMenuMousedown);	YUE.on( document,'click',onMenuClick);	  var oApi = {  	openDtById : function(sId)	{		var dt = document.getElementById(sId);		if(!dt){return;};		if(!YUD.hasClass(dt,'a-m-t')){return;};		var dl = dt.parentNode;		var dd = getDD(dt);		if(dl.hasAnimation==null){dl.hasAnimation = 0;};				if(dl.hasAnimation > 0 ){return;};		if(YUD.hasClass(dd,'a-m-d-expand')){return;};		if( oMenuCache[ dl.id ] &&  oMenuCache[ dl.id ].dependent == false ){}		else{collapseAll(dl,dt,dd);}		expand(dl,dt,dd);	},		closeDtById : function(sId)	{		var dt = document.getElementById(sId);		if(!dt){return;};		if(!YUD.hasClass(dt,'a-m-t')){return;};		var dl = dt.parentNode;		var dd = getDD(dt);		if(dl.hasAnimation==null){dl.hasAnimation = 0;};		if(dl.hasAnimation > 0 ){return;};		if(!YUD.hasClass(dd,'a-m-d-expand')){return;};		collapse(dl,dt,dd);	},			setting : function(id,oOptions)	{			if( !oOptions ){return;};			if( typeof(id)!='string' ){return;};			var setMunu = function(dl)		{				dl = dl || this;			dl.hasAnimation = 0;			oMenuCache[ dl.id ] = 			{				element:dl,				dependent:true,				onOpen:function(){},				onClose:function(){},				seconds:0.5,				easeOut:true,				openedIds:[],				animation:true			};			oMenu =  oMenuCache[ dl.id ] ;						if(typeof(oOptions['animation'])=='boolean')			{				oMenu['animation'] = !!oOptions['animation']; 							};									if(typeof(oOptions['dependent'])=='boolean')			{				oMenu['dependent'] = !!oOptions['dependent']; 			};						if(typeof(oOptions['easeOut'])=='boolean')			{				oMenu['easeOut'] = !!oOptions['easeOut']; 			};						if(typeof(oOptions['seconds'])=='number')			{				oMenu['seconds'] = Math.max(0 , oOptions['seconds'] ); 			};						if(typeof(oOptions['onOpen'])=='function')			{				oMenu['onOpen'] = oOptions['onOpen'];			};						if(typeof(oOptions['onClose'])=='function')			{				oMenu['onClose'] = oOptions['onClose'];			};					if(oOptions['openedIds'].shift)			{				oMenu['openedIds'] = oOptions['openedIds'];			};									for(var i=0;i<oMenu['openedIds'].length;i++)			{				var sId = oMenu['openedIds'][i];				var dt = document.getElementById( sId  );								if(dt && dt.tagName.toUpperCase() == 'DT')				{					var dl = dt.parentNode;					var dd = getDD(dt);					expand(dl,dt,dd);				}				else if(!dt)				{					function onDtAvailable()					{						var dt = this;						if(dt.tagName.toUpperCase() == 'DT')						{							var dl = dt.parentNode;							var dd = getDD(dt);							expand(dl,dt,dd);						};						};										YUE.onAvailable(sId,onDtAvailable);				}						};								};				if(document.getElementById(id))		{			setMunu(document.getElementById(id))		}		else		{				YUE.onAvailable(id,setMunu);			};		} };//endof api  return oApi; })();