function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(setNavState);
addLoadEvent(setSubNavState);

var sectionName;
var subSectionName;

function setNavState() {
	if(sectionName) {
		document.getElementById('nav'+sectionName).className = "selected";
	}
	else {
		return false;
	}
}

function setSubNavState() {
	if(subSectionName) {
		document.getElementById('subNav'+subSectionName).className = "selected";
	}
	else {
		return false;
	}
}

function launchTour() {
	var width  = 651;
	var height = 490;
	var left   = (screen.width  - width)/2;
	var top    = (screen.height - height)/2;
	var params = 'width='+width+', height='+height;
	params += ', top='+top+', left='+left;
	params += ', directories=no';
	params += ', location=no';
	params += ', menubar=no';
	params += ', resizable=no';
	params += ', scrollbars=no';
	params += ', status=no';
	params += ', toolbar=no';
	newwin=window.open('swf/tour.html','tour', params);
	if (window.focus) {newwin.focus()}
	return false;
}

function launchGallery() {
	var width  = 700;
	var height = 559;
	var left   = (screen.width  - width)/2;
	var top    = (screen.height - height)/2;
	var params = 'width='+width+', height='+height;
	params += ', top='+top+', left='+left;
	params += ', directories=no';
	params += ', location=no';
	params += ', menubar=no';
	params += ', resizable=no';
	params += ', scrollbars=no';
	params += ', status=no';
	params += ', toolbar=no';
	newwin=window.open('fabrication_pictures.html','fabrication_pictures', params);
	if (window.focus) {newwin.focus()}
	return false;
}

function showNav(section) {
	document.getElementById('navDrop'+section).className = "dropdown show";
	document.getElementById('nav'+section).className = "selected";
}
function hideNav(section) {
	document.getElementById('navDrop'+section).className = "dropdown hide";
	
	if(sectionName == "Industries") {
		document.getElementById('nav'+section).className = "";
		document.getElementById('navIndustries').className = "selected";
	}
	else if(sectionName == "Contact") {
		document.getElementById('nav'+section).className = "";
		document.getElementById('navContact').className = "selected";
	}
	else {
		document.getElementById('nav'+section).className = "";
	}
}

//Email Validation

function validateFormOnSubmit(theForm) {
var reason = "";

  reason += validateUsername(theForm.UserName);
  reason += validateCompanyName(theForm.CompanyName);
  reason += validateEmail(theForm.UserEmail);
  reason += validatePhone(theForm.UserPhone);
  reason += validateEmpty(theForm.UserMessage);
      
  if (reason != "") {
    document.getElementById('formErrors').innerHTML = "Please correct the following errors:<br />" + reason;
    return false;
  }

  return true;
}
function validateQuoteFormOnSubmit(theForm) {
window.location.hash = "#top";
var reason = "";

  reason += validateUsername(theForm.UserName);
  reason += validateCompanyName(theForm.CompanyName);
  reason += validateEmail(theForm.UserEmail);
  reason += validatePhone(theForm.UserPhone);
      
  if (reason != "") {
    document.getElementById('formErrors').innerHTML = "Please correct the following errors:<br />" + reason;
    return false;
  }

  return true;
}
function validateCompanyName(fld) {
    var error = "";
 
    if (fld.value.length == 0) {
        document.getElementById('labelCompanyName').style.color = '#cc0000'; 
        error = "- Please enter your company name.<br />"
    }
	else {
		document.getElementById('labelCompanyName').style.color = '#666666'; 
	}
    return error;  
}
function validateEmpty(fld) {
    var error = "";
 
    if (fld.value.length == 0) {
        document.getElementById('labelMessage').style.color = '#cc0000'; 
        error = "- Please enter a message.<br />"
    }
	else {
		document.getElementById('labelMessage').style.color = '#666666'; 
	}
    return error;  
}
function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        document.getElementById('labelName').style.color = '#cc0000';  
        error = "- Please enter your name.<br />";
    }
	else {
		document.getElementById('labelName').style.color = '#666666'; 
	}
    return error;
}
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}
function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        document.getElementById('labelEmail').style.color = '#cc0000'; 
        error = "- Please enter an email address.<br />";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        document.getElementById('labelEmail').style.color = '#cc0000'; 
        error = "- Please enter a valid email address.<br />";
    } else if (fld.value.match(illegalChars)) {
        document.getElementById('labelEmail').style.color = '#cc0000'; 
        error = "- The email address contains illegal characters.<br />";
    }
	else {
		document.getElementById('labelEmail').style.color = '#666666'; 
	}
    return error;
}
function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") {
        error = "- Please enter a phone number.<br />";
        document.getElementById('labelPhone').style.color = '#cc0000'; 
    } else if (isNaN(parseInt(stripped))) {
        error = "- The phone number contains illegal characters.<br />";
        document.getElementById('labelPhone').style.color = '#cc0000'; 
    } else if (!(stripped.length == 10)) {
        error = "- The phone number is the wrong length. Make sure you included an area code.<br />";
        document.getElementById('labelPhone').style.color = '#cc0000'; 
    }
	else {
		document.getElementById('labelPhone').style.color = '#666666'; 
	}
    return error;
}

