// =================================================
// = Functionality for the Explore Speedo red menu =
// =================================================


var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

var jsLoaded = false;

// open hidden layer

var nowOpen;

var rightSide = document.createElement('span');
rightSide.className = "rightSide";

function mopen(id, currentElement)
{
	if (nowOpen) mclose(nowOpen);

	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.display = 'none';
	// if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.display = 'block';
	ddmenuitem.style.width = document.getElementById('nav').offsetWidth - currentElement.parentNode.offsetLeft - 10 + "px";
	setMenuWidth(ddmenuitem, currentElement);

	currentElement.className = "topItem menuOpened";
	nowOpen = currentElement;

	ddmenuitem.appendChild(rightSide);
	rightSide.style.height = ddmenuitem.getElementsByTagName('ul')[0].offsetHeight + "px";

	// alert(ddmenuitem.getElementsByTagName('ul')[dd=menuitem.getElementsByTagName('ul').length-1].className);


	document.getElementById("topShadow").style.left =  currentElement.parentNode.offsetLeft + currentElement.parentNode.offsetWidth + "px";
	var menuWidth = 0;
	for (var i = 0; ddmenuitem.getElementsByTagName('ul')[i]; i++) {
		menuWidth += ddmenuitem.getElementsByTagName('ul')[i].offsetWidth;
		if (ddmenuitem == document.getElementById('m1')) {
			menuWidth += 4;
		}
	}
	if (menuWidth > currentElement.parentNode.offsetWidth) {
		document.getElementById("topShadow").className = "showTopShadow";
	};
	if(!/msie|MSIE 6/.test(navigator.userAgent)) {
		// following line produces error in ie6, hence the check
		document.getElementById("topShadow").style.width = menuWidth - currentElement.parentNode.offsetWidth + 7 + "px";
	}
}
// close showed layer
function mclose(currentElement)
{
	if(ddmenuitem) ddmenuitem.style.display = 'none';
	if(nowOpen) nowOpen.className = "topItem";
	document.getElementById('topShadow').className = "";
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}
document.onclick = mclose;

function setMenuWidth(elem, title) {
	var columnsQty = 0;
	while (elem.getElementsByTagName('ul')[columnsQty]) {
		currentList = elem.getElementsByTagName('ul')[columnsQty];
		var listItems = 0;
		var maxWidth = 0;
		while (currentList.getElementsByTagName('li')[listItems]) {
			if(maxWidth <= currentList.getElementsByTagName('li')[listItems].getElementsByTagName('a')[0].offsetWidth) {
				maxWidth = currentList.getElementsByTagName('li')[listItems].getElementsByTagName('a')[0].offsetWidth;
			}
			listItems++;
		}
		listItems = 0;
		while (currentList.getElementsByTagName('li')[listItems]) {
			currentList.getElementsByTagName('li')[listItems].getElementsByTagName('a')[0].style.width = maxWidth + 'px';
			currentList.getElementsByTagName('li')[listItems].style.width = maxWidth + 'px';
			listItems++;
		}
		columnsQty++;
	}
	// following sets minimum drop-down menu width to match the menu item width
	var firstUL = elem.getElementsByTagName('ul')[0];
	var firstAnchor = elem.getElementsByTagName('ul')[0].getElementsByTagName('li')[0].getElementsByTagName('a')[0];
	if (columnsQty == 1 && firstUL.offsetWidth < (title.offsetWidth + 3)) { // need to double check the exact comparasion
		firstUL.style.width = title.offsetWidth - 15 + "px";
	}
}


// =====================================
// = Function for switching small tabs =
// =====================================

function switchToTab(currentElement) {
	if (currentElement.className != 'active') {
		var container = currentElement.parentNode.parentNode;
		var i = 0;

		while (container.getElementsByTagName('div')[i]) {
			if (container.getElementsByTagName('div')[i].className == 'tabPage') {
				container.getElementsByTagName('div')[i].style.display = "none";
			}
			i++;
		}

		container = currentElement.parentNode;
		i = 0;

		while (container.getElementsByTagName('li')[i]) {
			container.getElementsByTagName('li')[i].className = '';
			i++;
		}

		currentElement.className = "active";
		document.getElementById(currentElement.id + 'Page').style.display = "block";
	}
}

// =========================================
// = Toggling the value-label in the input =
// =========================================

function toggleLabel(currentElement, defaultValue, check) {
	if (check) {
		if (currentElement.value == defaultValue) {
			currentElement.value = '';
			currentElement.className = '';
		}
	} else {
		if (currentElement.value == '') {
			currentElement.value = defaultValue;
			currentElement.className = 'greyLabel';
		}
	}
}


jsLoaded = true;




// =================
// = position tabs =
// =================
var currentH1;

function positionTabs(id) {
	if (document.getElementById(id)) {
		var currentDiv = document.getElementById('sectionDetails');
		var currentUl = currentDiv.getElementsByTagName('ul')[0];
		currentH1 = currentDiv.getElementsByTagName('h1')[0];
		currentUl.style.top = currentDiv.getElementsByTagName('h1')[0].offsetHeight - currentUl.offsetHeight + 2 + 'px';
	}
}
function ie6PositionPatch(id) {
	var iepatch = document.getElementById('ie6tabPatch');
	iepatch.style.left = currentH1.offsetWidth + 2 +'px';
	iepatch.style.width = document.getElementById(id).offsetWidth - 4 + 'px';
}



// ===================================
// = Country Selector Label Switcher =
// ===================================

function countrySelectorLabel(state) {
	document.getElementById('countrySelector').getElementsByTagName('span')[0].style.display = state;
}









