// JavaScript Document

function getBrowser() {
	var browserName = navigator.appName;
	if (browserName.indexOf("Netscape")!=-1) {
		return 'Mozilla';
	}
	if (browserName.indexOf("Microsoft")!=-1) {
		return 'Explorer';
	}
}

function cancelBubble(event) {
	if(getBrowser() == 'Mozilla') {
		event.stopPropagation();
	}
	if(getBrowser() == 'Explorer') {
		window.event.cancelBubble = true;
	}
}

function getDivsByClass( className, tagName) {
	if(!tagName) tagName = 'DIV';
	var divs = document.getElementsByTagName(tagName);
	var elements = new Array();
	var attribute_class = (getBrowser() == 'Mozilla') ? 'class' : 'className';
	for(x = 0; x < divs.length; x++){
		var current = divs[x];
		if( current.getAttribute(attribute_class) == className) {
			elements.push(current);
			
		}
	}
	return elements;
}

function getSrcClass(event) {
	if(getBrowser() == 'Mozilla') {
	return event.target.getAttribute('class');
	}
	if(getBrowser() == 'Explorer') {
	return window.event.srcElement.getAttribute('className');
	}
}

function getSrcElement(event) {
	if(getBrowser() == 'Mozilla') {
	return event.target;
	}
	if(getBrowser() == 'Explorer') {
	return window.event.srcElement;
	}
}

function getEventType(event) {
	if(getBrowser() == 'Mozilla') {
	return event.type;
	}
	if(getBrowser() == 'Explorer') {
	return window.event.type;
	}
}

function getEventId(event) {
	if(getBrowser() == 'Mozilla') {
	return event.target.id;
	}
	if(getBrowser() == 'Explorer') {
	return window.event.srcElement.id;
	}
}

function resetMenus(event) {
	menuOpen = false;
	
	var dropdowns = getDivsByClass('menu_dropdown');
	for(x = 0; x < dropdowns.length; x++) {
		var current = dropdowns[x];
		current.style.display = 'none';
	}
}

function swapStyles(event) {
	var srcElement = getSrcElement(event);
	if(getEventType(event) == 'mouseover') {
		srcElement.style.backgroundColor = '#B2B4BF';
		srcElement.style.cursor = 'default';
		srcElement.style.color = '#000000';
	}
	
	if(getEventType(event) == 'mouseout') {
		srcElement.style.backgroundColor = 'transparent';
		srcElement.style.color = '#CECECE';
	}
}

function doMenu(event) {
	// Cancelling the bubbling up of our event(mouseover, mouseout and clicks)
	cancelBubble(event);
	// If the originating object was a menu item, we highlight it
	if(getSrcClass(event) == 'dropdown_item'){
		swapStyles(event);
		return;
	}
	// If anything else is clicked that is lower in the hierarchy than category item, it's ignored.
	if(getSrcClass(event) != 'category_item'){
	return;
	}
	// When clicking on a menu category this is where the processing starts. Above statements are skipped.
	swapStyles(event);
	// Retrieve the dropdown panel that has to be shown
	var menu = document.getElementById('dropdown_' + getEventId(event));
	if((getEventType(event) == 'mouseover' && menuOpen == true) || getEventType(event) == 'click') {
		resetMenus(event);
		menu.style.display = 'block';
		menuOpen = true;
	}
}