/*

/global/menu.js
===================================
Window_load
Menu_load
Window_resize
Button_mouseover
Menu_position
Menu_mouseover
Menu_mouseout
Menu_on
Menu_off
Menu_close
Menu_open
GetChildren
Signup_config
Field_focus
Field_blur
Field_keydown
TabControl
Form_position
Form_submit
Form_close
	
*/

var TAB_OPEN = 8;
var TAB_SPEED = 10;
var TAB_WIDTH = 29;
var TAB_DELAY = 300;
var RESTORE_DELAY = 500;
var SECTION_WIDTH = 195;
var m_activeTab;
var m_newTab;
var m_pageTab;
var m_tempTab;
var m_intTabOpen;
var m_intTabDelay;
var m_intTabRestore;
var m_blnSignupActive = false;
var FORM_TIMEOUT = 750;
var m_divSignup;
var m_intFormCloseId;
var keyTab = 9;
var keyEnter = 13;
var _astrQuery;

//var m_activeButton;


window.onload = Window_load;
window.onresize = Window_resize;

function Window_load() {
	Signup_confirm();
	Tab_config();
	Signup_config();
	UrlVariables();
}


function Window_resize() {
	document.getElementById("txtRemoveFocus").focus();
	Form_close();
}


function Signup_confirm() {
	var objSignup = document.getElementById("SignupConfirmation");
	if (objSignup) {
		var divTopNav = document.getElementById("TopButtons");
		var divNewsletter = document.getElementById("Newsletter");

		var intTop = divTopNav.offsetHeight + divTopNav.offsetTop;
		var intLeft = divTopNav.offsetLeft;
		// fixes rendering glitch in IE8
		var intLeftOffset = 0;  //(document.all) ? Math.floor((document.getElementById("Layout").offsetWidth - divTopNav.offsetWidth) / 2) : 0;

		objSignup.style.top = intTop + "px";
		objSignup.style.left = (intLeft + intLeftOffset) + "px";
		objSignup.style.display = "block";
	}
}

/* Tabs */

function Tab_config() {
	var colTabs = GetChildren(document.getElementById("NavigationTabs"), "TD");
	var i;
	var objTab;

	document.getElementById("Body").onmouseover = Tabs_mouseout;
	document.getElementById("Sections").onmouseover = Tabs_null;
	
	for (i = 0; i < colTabs.length; i++) {
		objTab = colTabs[i].getElementsByTagName("A")[0];
		objTab.childNodes[0].onmouseover = Tab_mouseover_delay;

		if (colTabs[i].childNodes[0].className == "tmpSection") {
			m_pageTab = colTabs[i].childNodes[0];
			m_activeTab = m_pageTab;
		}
	}
}


function Tabs_mouseout() {
	var blnFastClose = false;
	if (m_intTabDelay) {
		window.clearTimeout(m_intTabDelay);
		m_intTabDelay = null;
	}
	if (m_pageTab != m_activeTab && !m_intTabRestore) {
		m_tempTab = m_pageTab;
		if (blnFastClose) {
			m_intTabRestore = window.setTimeout("Tab_mouseover()", 0);
		} else {
			m_intTabRestore = window.setTimeout("Tab_mouseover()", RESTORE_DELAY);
		}
	}
}


function Tabs_null(e) {
	if (m_intTabRestore) {
		window.clearTimeout(m_intTabRestore);
		m_intTabRestore = null;
	}
	if (window.event) {
		window.event.cancelBubble = true;
	} else {
		e.stopPropagation();
	}
}


function Tab_mouseover_delay() {
	if (m_intTabDelay) {
		window.clearTimeout(m_intTabDelay);
		m_intTabDelay = null;
	}
	m_tempTab = this.parentNode.parentNode.parentNode.parentNode.parentNode;
	m_intTabDelay = window.setTimeout("Tab_mouseover()", TAB_DELAY);
}


function Tab_mouseover() {
	m_intTabDelay = null;
	var obj = m_tempTab;
	if (!m_activeTab) return false;
	if (m_activeTab == obj && !m_intTabOpen) return false;
	if (m_newTab != null) {
		// tab in process of opening
		m_activeTab.style.width = TAB_WIDTH + "px";
		m_newTab.style.width = SECTION_WIDTH + "px";
		m_newTab.parentNode.style.width = "";
		m_activeTab = m_newTab;
		m_newTab = null;
		window.clearTimeout(m_intTabOpen);
		m_intTabOpen = null;
	}
	m_newTab = obj;

	if (m_activeTab != m_newTab) {
		m_activeTab.parentNode.style.width = "";
		//m_activeTab.tab.style.backgroundImage = "url(/global/images/tabs/" + m_activeTab.tab.getAttribute("img") + ".gif)";

		m_newTab.parentNode.style.width = "100%";
		//m_newTab.tab = m_newTab.getElementsByTagName("A")[0];
		//m_newTab.tab.style.backgroundImage = "url(/global/images/tabs/" + m_newTab.tab.getAttribute("img") + "_on.gif)";

		Tab_open();
	}
}


function Tab_open() {
	var j;
	if (m_activeTab.offsetWidth > TAB_WIDTH + (TAB_OPEN * 5)) {
		j = TAB_OPEN * 2;
	} else if (m_activeTab.offsetWidth > TAB_WIDTH + TAB_OPEN) {
		j = TAB_OPEN;
	} else {
		m_activeTab.style.width = TAB_WIDTH + "px";
		m_newTab.style.width = SECTION_WIDTH + "px";
		m_activeTab = m_newTab;
		m_newTab = null;
		window.clearTimeout(m_intTabOpen);
		m_intTabOpen = null;
		return true;
	}
	m_activeTab.style.width = (m_activeTab.offsetWidth - j) + "px";
	m_newTab.style.width = (m_newTab.offsetWidth + j) + "px";
	m_intTabOpen = window.setTimeout("Tab_open()", TAB_SPEED);
}



function GetChildren(objParent, strTag) {
	// for Firefox, Safari compatibility
	var colNodes = objParent.childNodes;
	var colChildren = new Array();
	var i;
	var j = 0;
	for (i = 0; i < colNodes.length; i++) {
		if (colNodes[i].tagName == strTag) {
			colChildren[j++] = colNodes[i];
		}
	}
	return colChildren;
}


function TabControl(strElem, blnShiftKey, strFirst, strJoin, strLast) {
	switch (strElem) {
		case strFirst:
			if (blnShiftKey) {
				document.getElementById(strLast).focus();
				return false;
			} else {
				document.getElementById(strJoin).focus();
				return false;
			}
			break;
		case strJoin:
			if (blnShiftKey) {
				document.getElementById(strFirst).focus();
				return false;
			}
			break;
		case strLast:
			if (!blnShiftKey) {
				document.getElementById(strFirst).focus();
				return false;
			}
			break;
		default:
	}
	return true;
}

/* Sign-up Form */

function Signup_config() {
	var arrForm = new Array("txtEmail", "txtName", "txtPhone", "txtCompany", "txtTitle");
	var i;
	for (i = 0; i < arrForm.length; i++) {
		document.getElementById(arrForm[i]).onfocus = Signup_click;
		document.getElementById(arrForm[i]).onblur = Field_blur;
		document.getElementById(arrForm[i]).onkeydown = Field_keydown;
	}
	document.getElementById("txtRemoveFocus").onblur = Field_blur;
	
	document.getElementById("Newsletter").onclick = Signup_click;

	m_divSignup = document.getElementById("Signup");
	m_divSignup.onclick = Signup_click;
}


function Signup_click() {
	if (m_intFormCloseId) {
		window.clearTimeout(m_intFormCloseId);
		m_intFormCloseId = null;
	}
	if (this.value == this.title) {
		this.value = "";
		this.style.color = "black";
	}
	Form_position();
}


function Field_blur() {
	if (this.value == "") {
		this.value = this.title;
		this.style.color = "silver";
	}
	m_intFormCloseId = window.setTimeout("Form_close()", FORM_TIMEOUT);
}


function Field_keydown(e) {
	var strKeyCode = (window.event) ? window.event.keyCode : e.which;
	var blnShiftKey = (window.event) ? window.event.shiftKey : e.shiftKey;
	switch (strKeyCode) {
		case keyTab:
			return TabControl(this.id, blnShiftKey, "txtEmail", "txtName", "txtCompany");
			break;
		case keyEnter:
			if (this.tagName == "INPUT") {
				if (Form_submit()) document.getElementById("frmSignup").submit();
			}
			break;
		default:
	}
	return true;
}


function Form_position() {
	if (m_divSignup.style.display != "block") {
		document.getElementById("txtRemoveFocus").focus();
		var divTopNav = document.getElementById("TopButtons");
		var divNewsletter = document.getElementById("Newsletter");

		divNewsletter.style.backgroundImage = "url(/global/images/tabs/newsletter_on.gif)";

		var intTop = divTopNav.offsetHeight + divTopNav.offsetTop;
		var intLeft = divNewsletter.offsetLeft;
		// fixes rendering glitch in IE8
		var intLeftOffset = (document.all) ? Math.floor((document.getElementById("Layout").offsetWidth - divTopNav.offsetWidth) / 2) : 0;

		var objSignup = document.getElementById("SignupConfirmation");
		if (objSignup) objSignup.style.display = "none";
		
		m_divSignup.style.top = intTop + "px";
		m_divSignup.style.left = (intLeft + intLeftOffset) + "px";
		m_divSignup.style.display = "block";
	}
}


function Form_submit() {
	// Validate form
	Form_close();
	var txtEmail = document.getElementById("txtEmail");

	if (txtEmail.value.length == 0 || txtEmail.value.indexOf("@") < 0 || txtEmail.value.indexOf(".") < 0) {
		alert("Invalid email address.");
		//return void;
	} else {
		document.frmSignup.submit();
	}
}


function Form_close() {
	document.getElementById("Newsletter").style.backgroundImage = "";
	m_divSignup.style.display = "none";
}


function SwitchImage(strFilename, strPageId) {
	document.getElementById("LargeImage").style.backgroundImage = "url(/res/gallery/" + strPageId + "/lg/" + escape(strFilename) + ")";
}


function Search() {
	var lstServices = document.getElementById("lstServices");
	var lstIndustries = document.getElementById("lstIndustries");
	var strService = (lstServices) ? "&service=" + lstServices.value : "";
	var strIndustry = (lstIndustries) ? "&industry=" + lstIndustries.value : "";
	location.href = "?id=" + GetQueryVar("id") + strIndustry + "&cat=" + GetQueryVar("cat") + "&subcat=" + GetQueryVar("subcat") + strService + "&search=1";
}


function UrlVariables() {
	// var astrUrl = location.href.split("?")[0].split("/");
	//_strPage = astrUrl.slice(-1)[0];
	//_strFolder = astrUrl.slice(-2)[0];
	//if (_strPage.length == 0) _strPage = "default.asp";
	if (document.location.search.length > 0) {
		_astrQuery = document.location.search.substr(1).split("&");
		for (i = 0; i < _astrQuery.length; i++) {
			_astrQuery[i] = _astrQuery[i].split("=");
		}
	}
}


function GetQueryVar(strVariable) {
	if (_astrQuery) {
		for (i = 0; i < _astrQuery.length; i++) {
			if (_astrQuery[i][0] == strVariable) {
				return _astrQuery[i][1];
			}
		}
	}
	return "";
}
