var ff_navigatingMenu = false;
var ff_adminMenuStore = null;
var ff_menuHideCaller = 0;
var ff_savingMenu = false;

function setMainProductImageSource(src, width, height){
	var img = document.getElementById('main_product_image');
	img.style.display = 'none';
	img.src = src;
	img.width = width;
	img.height = height;
	img.style.display='';
	return true;
}

function showHide(elem){
	if(elem.nextSibling.nextSibling && elem.nextSibling.nextSibling.nextSibling.nodeName=='UL'){
		elem.nextSibling.nextSibling.nextSibling.style.display=(elem.nextSibling.nextSibling.nextSibling.style.display==''? 'none' : '');
	}
	
	return true;
}

function cascadeCheckboxSelection(checkbox){
	var nestedCheckboxes = checkbox.parentNode.getElementsByTagName('INPUT');
	
	for(var i=0; i<nestedCheckboxes.length; i++){
		if(nestedCheckboxes[i].type == 'checkbox' && nestedCheckboxes[i].checked != checkbox.checked){
			nestedCheckboxes[i].checked = checkbox.checked;
		}
	}
}

function ff_hoverAdminMenu(anchor){
	if(!ff_savingMenu){
		ff_navigatingMenu = true;
		
		if(ff_adminMenuStore == null){
			ff_savingMenu = true;
			ff_adminMenuStore = new Array();		
			ff_addMenuToStore(document.getElementById('nav'));
			ff_savingMenu = false;
		}
		
		if(anchor.className != 'selected'){
			var liRoot = anchor.parentNode;
			
			/* Recursively hide Menu items */	
			ff_hideAndDeselectAllMenuElements(liRoot.parentNode);
			
			/* Now show our tree */
			ff_showAndSelectMenu(liRoot, anchor);
		}
	}
}

function ff_addMenuToStore(root){
	for(var i=0; i<root.childNodes.length; i++){
		switch(root.childNodes[i].nodeName){
			case 'UL':
				if(root.childNodes[i].className !== 'hidden'){
					ff_adminMenuStore[ff_adminMenuStore.length] = root.childNodes[i];
				}
				break;
			case 'A':
				if(root.childNodes[i].className === 'selected'){
					ff_adminMenuStore[ff_adminMenuStore.length] = root.childNodes[i];
				}
				break;
		}
		
		ff_addMenuToStore(root.childNodes[i]);
	}
}


function ff_doneNavigatingMenu(){
	if(!ff_savingMenu && ff_adminMenuStore != null){
		ff_navigatingMenu = false;
		var timeInMillis = ff_getTimeInMillis();
		setTimeout('ff_resetAdminMenu(' + timeInMillis + ')', 1000);
		ff_menuHideCaller = timeInMillis;
	}
}

function ff_hideAndDeselectAllMenuElements(parent){
	for(var i=0; i<parent.childNodes.length; i++){
		switch(parent.childNodes[i].nodeName){
			case 'UL':
				if(parent.childNodes[i].className != 'hidden'){
					parent.childNodes[i].className = 'hidden';
				}
				break;
			case 'A':
				if(parent.childNodes[i].className == 'selected'){
					parent.childNodes[i].className = '';
				}
				break;
		}
		
		ff_hideAndDeselectAllMenuElements(parent.childNodes[i]);
	}
}

function ff_showAndSelectMenu(liRoot, anchor){
	anchor.className = 'selected';
	
	/* Now show the first of everything under liRoot */
	
	for(var i=0; i<liRoot.childNodes.length; i++){
		if(liRoot.childNodes[i].nodeName === 'UL'){
			liRoot.childNodes[i].className = '';
			ff_hoverAdminMenu(ff_getFirstChildByTagName(ff_getFirstChildByTagName(liRoot.childNodes[i], 'LI'), 'A'));
			break;
		}
	}
}

function ff_getFirstChildByTagName(element, tagName){
	if(element != null){
		for(var i=0; i<element.childNodes.length; i++){
			if(element.childNodes[i].nodeName === tagName){
				return element.childNodes[i];
			}	
		}
	}
	return null;
}

function ff_resetAdminMenu(iCallerId){	
	if(!ff_navigatingMenu && ff_menuHideCaller === iCallerId){
		ff_hideAndDeselectAllMenuElements(document.getElementById('nav'));
		
		for(var i=0; i<ff_adminMenuStore.length; i++){
			switch(ff_adminMenuStore[i].nodeName){
				case 'UL':
					ff_adminMenuStore[i].className = '';
					break;
				case 'A':
					ff_adminMenuStore[i].className = 'selected';
					break;
			}
		}
	}
}

function ff_getTimeInMillis(){
	var date = new Date();
	return date.getTime();
}

function expandMenu(listName) {	var control=document.getElementById(listName);	var listElements=control.getElementsByTagName("li");		for(var i=0; i<listElements.length; i++) {		//EXPAND MENU		listElements[i].onmouseover=function() {				var uls=this.getElementsByTagName("ul");				for(var n=0; n<uls.length; n++) {					if(n==0) {						uls[n].style.display="block";					}									}			}		//CLOSE MENU			listElements[i].onmouseout=function() {			var uls=this.getElementsByTagName("ul");				for(var n=0; n<uls.length; n++) {					if(n==0) {						uls[n].style.display="none";					}									}		}	}}
