/*********************************************************
slidingMenuControl.js

(c) Copyright 2002 to KanyonProductions.com
All rights reserved

Version 1.0
Last Modified: July 17, 2002

designteam@kanyonproductions.com

*********************************************************/

/*********************************************************
NOTE THE FOLLOWING ASSUMPTIONS:
----------------------------------------
1) All items that belong with a particular button bears
	the same name as the parent layer, plus suffix "Menu".
2) All of the parent items and menu items are laid out
	beforehand, e.g. - all items have the same width
3) Requires "layerControl.js"
*********************************************************/

var g_slidingMenuSets=new Array();
var g_slidingMenuData=new Array();
var g_slidingMenuVariables=new Object();

var smc_slideRate=10;
var smc_wait=10;

function animateSlidingMenu(){
	if(g_slidingMenuVariables.close!=""){
		var smc_tmb=false;
		var smc_lyrActive=new layerControl(g_slidingMenuVariables.close + "Menu");
		var smc_adj=0;
		if(smc_lyrActive.getHeight()>1){
			if(smc_lyrActive.getHeight() - smc_slideRate < 1)
				smc_adj=smc_lyrActive.getHeight() - 1;
			else
				smc_adj=smc_slideRate;
		}
		smc_adj*=-1;
		for(var smc_i=0; smc_i<g_slidingMenuVariables.array.length; smc_i++){
			var smc_lyrActive=new layerControl(g_slidingMenuVariables.array[smc_i]);
			if(g_slidingMenuVariables.array[smc_i]==g_slidingMenuVariables.close){
				smc_tmb=true;
				var smc_lyrMenu=new layerControl(g_slidingMenuVariables.array[smc_i] + "Menu");
				smc_lyrMenu.resizeBy(0, smc_adj);
			}else if(smc_tmb){
				smc_lyrActive.moveBy(0, smc_adj);
			}			
		}
		
		var smc_lyrActive=new layerControl(g_slidingMenuVariables.close + "Menu");
		clearTimeout(g_slidingMenuVariables.sto);
		g_slidingMenuVariables.sto=null;
		if(smc_lyrActive.getHeight()!=1){
			g_slidingMenuVariables.sto=setTimeout(animateSlidingMenu, smc_wait);
		}else{
			var smc_lyrMenu=new layerControl(g_slidingMenuVariables.close + "Menu");
			smc_lyrMenu.visibility("hidden");
			g_slidingMenuVariables.close="";
			if(g_slidingMenuVariables.open!="") g_slidingMenuVariables.sto=setTimeout(animateSlidingMenu, smc_wait);
		}
	}else if(g_slidingMenuVariables.open!=""){
		var smc_tmb=false;
		var smc_lyrActive=new layerControl(g_slidingMenuVariables.open + "Menu");
		var smc_adj=0;
		if(smc_lyrActive.getHeight()<g_slidingMenuData[g_slidingMenuVariables.open].height){
			if(smc_lyrActive.getHeight() + smc_slideRate > g_slidingMenuData[g_slidingMenuVariables.open].height)
				smc_adj=g_slidingMenuData[g_slidingMenuVariables.open].height - smc_lyrActive.getHeight();
			else
				smc_adj=smc_slideRate;			
		}
		for(var smc_i=0; smc_i<g_slidingMenuVariables.array.length; smc_i++){
			var smc_lyrActive=new layerControl(g_slidingMenuVariables.array[smc_i]);
			if(g_slidingMenuVariables.array[smc_i]==g_slidingMenuVariables.open){
				smc_tmb=true;
				var smc_lyrMenu=new layerControl(g_slidingMenuVariables.array[smc_i] + "Menu");
				smc_lyrMenu.resizeBy(0, smc_adj);
			}else if(smc_tmb){
				smc_lyrActive.moveBy(0, smc_adj);
			}			
		}
		
		var smc_lyrActive=new layerControl(g_slidingMenuVariables.open + "Menu");
		clearTimeout(g_slidingMenuVariables.sto);
		g_slidingMenuVariables.sto=null;
		if(smc_lyrActive.getHeight()!=g_slidingMenuData[g_slidingMenuVariables.open].height){
			g_slidingMenuVariables.sto=setTimeout(animateSlidingMenu, smc_wait);
		}
	}
}
function clickSlidingMenu(smc_menuItem){
	for(var smc_i=0; smc_i<g_slidingMenuSets.length; smc_i++){
		for(var smc_j=0; smc_j<g_slidingMenuSets[smc_i].length; smc_j++){
			if(smc_menuItem==g_slidingMenuSets[smc_i][smc_j])
				g_slidingMenuVariables.array=g_slidingMenuSets[smc_i];
		}
	}

	if(g_slidingMenuVariables.open!=smc_menuItem){
		var smc_lyrMenu=new layerControl(smc_menuItem + "Menu");
		var smc_lyrParent=new layerControl(smc_menuItem);
		var smc_data=g_slidingMenuData[smc_menuItem];
		smc_lyrMenu.move(smc_lyrParent.getLeft(), smc_data.top);
		smc_lyrMenu.resize(smc_lyrMenu.getWidth(), 1);
		smc_lyrMenu.visibility("visible");
		if(navigator.appName=="Microsoft Internet Explorer"){
			smc_lyrMenu.style.overflowY="hidden";
		}else if(navigator.appVersion.charAt(0)>4){
			smc_lyrMenu.style.overflow="hidden";
		}
	}

	if(smc_menuItem==g_slidingMenuVariables.open) smc_menuItem="";

	if(g_slidingMenuVariables.close=="" && g_slidingMenuVariables.open!=""){
		g_slidingMenuVariables.close=g_slidingMenuVariables.open;
		g_slidingMenuVariables.open=smc_menuItem;
	}else{
		g_slidingMenuVariables.open=smc_menuItem;
	}
	
	animateSlidingMenu();
}
function initSlidingMenuControl(){
	g_slidingMenuSets[g_slidingMenuSets.length]=arguments;
	
	for(var smc_i=0; smc_i<arguments.length; smc_i++){
		var smc_tms=arguments[smc_i];
		var smc_lyrMenu=new layerControl(smc_tms + "Menu");
		smc_lyrMenu.visibility("hidden");
		var smc_lyrParent=new layerControl(smc_tms);
		g_slidingMenuData[smc_tms]=new Object();
		g_slidingMenuData[smc_tms].top=smc_lyrParent.getBottom();
		g_slidingMenuData[smc_tms].height=smc_lyrMenu.getHeight();
		g_slidingMenuData[smc_tms].bottom=smc_lyrParent.getBottom() + smc_lyrMenu.getHeight();
	}
	
	g_slidingMenuVariables.open="";
	g_slidingMenuVariables.close="";
	g_slidingMenuVariables.array=new Array();
	g_slidingMenuVariables.sto=null;
}