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') || YUD.hasClass(dEl,'a-m-t-n')){ 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');
	
		for(var i=0;i<aOtherDD.length;i++)

		{

			var otherDD = aOtherDD[i] ;
			
			if( otherDD != dd )

			{		

				collapse(otherDD.parentNode,null,otherDD);
				
			};				

		};
		
		var aOtherDT = YUD.getElementsByClassName('a-m-t-expand','dt');
		
		for(var i=0;i<aOtherDT.length;i++)

		{

			var otherDT = aOtherDT[i] ;

			if( otherDT != dt )

			{		

				YUD.removeClass(otherDT,'a-m-t-expand');

			};				

		};

	}

	
	function activateDDById(dl,subdd)

	{

		var aOtherDD = YUD.getElementsByClassName('a-m-d','dd');
		var aOtherDD2 = YUD.getElementsByClassName('a-m-d-expand','dd');
		
		aOtherDD = aOtherDD.concat(aOtherDD2);
			
		for(var i=0;i<aOtherDD.length;i++)
		
		{
			
			var otherDD = aOtherDD[i];
			
			var otherDT = otherDD.previousSibling;
			
			while(otherDT)

			{	

				if(otherDT.tagName && otherDT.tagName.toUpperCase() == 'DT'){break;};
	
				otherDT = otherDT.previousSibling;

			};
			
			var aOtherSubDD = otherDD.getElementsByTagName('dd');
				
			for(var ii=0;ii<aOtherSubDD.length;ii++)

			{
				
				var otherSubDD = aOtherSubDD[ii] ;
				
				YUD.removeClass(otherSubDD,'activemenu');
				
				var aLinkNodes = otherSubDD.getElementsByTagName('a');
				
				for(var iii=0;iii<aLinkNodes.length;iii++)

				{
					
					if(aLinkNodes[iii].id == 'active_roll_menu') {
						aLinkNodes[iii].id = '';
					}
					
				}
				
				if( otherSubDD == subdd )
	
				{		
	
					var dt = otherDT;
					var dd = otherDD;
					
				} 

			};
		
		};

		if(subdd) {
			
			YUD.addClass(subdd,'activemenu');
		
			if(!YUD.hasClass(dt,'a-m-t-expand')) {
				collapseAll(dl,dt,dd);
				expand(dl,dt,dd);
			}
			
		}

	}
	

	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 onclick = String(dt.onclick);

		if(onclick.indexOf('window.open') == -1) {
		
			var dd = getDD(dt);
			
			if(!dd){
				
				collapseAll(null,dt,null);
				YUD.addClass(dt,'a-m-t-expand');
					
				return;
			};
			
			var dl = dt.parentNode;
			
			var url = onclick.substring(onclick.indexOf('http://'),onclick.indexOf('.html')+5);
			
			var aSubDD = dd.getElementsByTagName('DD');
			var firstDD = aSubDD[0];
			var firstDD_Atag = firstDD.getElementsByTagName('A');
			var hrefFirstDD = String(firstDD_Atag[0].href);
			var urlFirstDD = hrefFirstDD.substring(hrefFirstDD.indexOf('http://'),hrefFirstDD.indexOf('.html')+5)
			
			if(url == urlFirstDD) {
				
				activateDDById(firstDD.parentNode,firstDD);
				
			} else {
				
				activateDDById(null,null)
				collapseAll(dl,dt,dd);
				expand(dl,dt,dd);
				
			}
			
			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;};
		
		var onclick = String(dt.onclick);
		var url = onclick.substring(onclick.indexOf('http://'),onclick.indexOf('.html')+5);
		
		var dl = dt.parentNode;
		
		if(!YUD.hasClass(dt,'a-m-t')){ collapseAll(dl,dt,dd); YUD.addClass(dt,'a-m-t-expand'); return;}

		var dd = getDD(dt);
		
		var aSubDD = dd.getElementsByTagName('DD');
			
		var firstDD = aSubDD[0];
		var firstDD_Atag = firstDD.getElementsByTagName('A');
		var hrefFirstDD = String(firstDD_Atag[0].href);
		var urlFirstDD = hrefFirstDD.substring(hrefFirstDD.indexOf('http://'),hrefFirstDD.indexOf('.html')+5)
			
		if(url == urlFirstDD) {
			
			activateDDById(firstDD.parentNode,firstDD);
			
		} else {
			
			activateDDById(null,null);
			collapseAll(dl,dt,dd);
			expand(dl,dt,dd);
		
		}
			
		
		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);

	},

	
	activateById : function(sId) 
	
	{

		var node = document.getElementById(sId);

		if(!node){return;};
		
		if(node.tagName.toUpperCase() == 'DD') {
			
			var dd = node;
			var dl = dd.parentNode;
			
			activateDDById(dl,dd)
				
		} else if(node.tagName.toUpperCase() == 'DT') {
		
			this.openDtById(sId); 
			
		}
		
	},
	

	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;

 

})();





var runOk = 1;



function switchRun(){

  runOk = 1;

}