// preload navigation images

/*
title				page
-------------------------------------
New thinking		overview.php
Who we are			about.php
The companies		companies.php
Our products		products.php
Our services		services.php
Contact us			contact.php
*/


// setup rollover images
var navPrimaryImgs = [];
var navSecondaryImgs = [];
for (var i=0; i<=6; i++) {
	navPrimaryImgs[i] = [];
	for (var j=0; j<2; j++) {
		navPrimaryImgs[i][j] = new Image();
		navPrimaryImgs[i][j].src = "img/nav_primary_" + i + "_" + j + ".gif";
	}
}

// function to be called on page load
function initNavPrimary (exceptId) {
	// set exceptId is not sent
	if (exceptId == undefined) exceptId = 0;
	for (var i=1; i<=6; i++) {
		// determine if image should be skipped
		if (i == exceptId) continue;
		// get reference to image
		var img = document.getElementById("nav_" + i);
		// add mouse event callbacks
		img.onmouseover = function () { mouseNavPrimary(this, 1); }
		img.onmouseout = function () { mouseNavPrimary(this, 0); }
	}
}

// function to be called on page load
function initNavSecondary (page, count) {
	navSecondaryImgs[page] = [];
	for (var i=1; i<=count; i++) {
		navSecondaryImgs[page][i] = [];
		for (var j=0; j<2; j++) {
			navSecondaryImgs[page][i][j] = new Image();
			navSecondaryImgs[page][i][j].src = "img/nav_secondary_" + page + "_" + i + "_" + j + ".gif";
		}
	}
}

function mouseNavPrimary (element, state) {
	var imgId = Number(element.id.substr(4));
	element.src = navPrimaryImgs[imgId][state].src;
}

function mouseNavSecondary (element, state) {
	var pageId = Number(element.id.substr(4, 1));
	var imgId = Number(element.id.substr(6, 1));
	element.src = navSecondaryImgs[pageId][imgId][state].src;
}

function onContactFormSubmit () {
	var f = document.forms[0];
	var e = f.elements;
	var errors = [];
	// check the subject dropdown
	if (e["subject"].value == "0") {
		errors.push("- you must select a message subject");
	}
	// check the email address field
	if (!e["email"].value.length ||
		e["email"].value == "Please enter your return e-mail address here.") {		
		errors.push("- enter a return email address");
	} else if (!validateEmail(e["email"].value)) {
		errors.push("- enter a valid return email address");
	}
	// check the message field
	if (!e["message"].value.length ||
		e["message"].value == "Please enter your message here.") {		
		errors.push("- enter a message");
	}
	// alert any errors, if applicable
	if (errors.length) {
		var errorMsg = "Please fix the following errors before submitting the form:\n\n";
		errorMsg += errors.join("\n");
		alert(errorMsg);
		return false;
	} else {
		return true;
	}
}

function onContactFormFocus (element) {
	switch (element.name) {
		case "email":
			if (element.value == "Please enter your return e-mail address here.") {
				element.value = "";
			}
			break;
		case "message":
			if (element.value == "Please enter your message here.") {
				element.value = "";
			}
			break;
	}
}

function onContactFormBlur (element) {
	switch (element.name) {
		case "email":
			if (!element.value.length) {
				element.value = "Please enter your return e-mail address here.";
			}
			break;
		case "message":
			if (!element.value.length) {
				element.value = "Please enter your message here.";
			}
			break;
	}
}

function validateEmail (e) {
	var ePatt = /^[\w-\.]+@([\w-\.]+\.)+[a-z]{2,3}$/i
	return ePatt.test(e);
}

/*
hack for safari:
http://blog.deconcept.com/2005/03/25/safari-and-links-to-elements-in-overflow-auto-content
*/
function scrollDivToAnchorOnLoad () {
	var isSafari = navigator.userAgent.indexOf("Safari") != -1;
	if (!isSafari) return; 
	if (document.getElementById) {
		var atags = document.getElementsByTagName("a");
		for (var i=0; i<atags.length; i++) {
			var ca = atags[i];
			if (ca.href.indexOf("#") > -1) {
				ca.onclick = function() {
					scrollDivToAnchor(this.href.split("#")[1], "scroll");
				}
			}
		}
	}
}
function scrollDivToAnchor (a, box) {
	var isSafari = navigator.userAgent.indexOf("Safari") != -1;
	if (!isSafari) return true;
	a = document.getElementById(a);
	var b = document.getElementById(box);
	var scrollTop = a.offsetTop - b.offsetTop;
	b.scrollTop = scrollTop;
	return false;
}