

// -------------------------------------------------------------------------------------------------------------------
// Preloads and manages rollovers for submit button

function preloadSubscribeImage() {
	if (document.images) {
			if (typeof(document.subscribeImages) == 'undefined'){
      document.subscribeImages = new Object();
    	}
    	document.subscribeImages.loadedImages = new Array();
    		document.subscribeImages.loadedImages[0] = new Image();
    		document.subscribeImages.loadedImages[0].src = '/images/home/btn_subscribe_on.gif';
	}	
}



// This function swaps menu images when user rolls over them
function swapSubmitBtn ( ) {
	var submitBtn_img = '/images/subscribe/btn_subscribe_on.gif'
	document.getElementById('submitButton').src = submitBtn_img;	
 }
 
 
// This function swaps menu images back when user rolls back out
function swapSubmitBtn_back ( ) {
	var submitBtn_img = '/images/subscribe/btn_subscribe_off.gif'
	document.getElementById('submitButton').src = submitBtn_img;	
 }




// ------------------------------------------------------------------------------------------------ 
// These functions handle the form labels
// ------------------------------------------------------------------------------------------------ 

function initOverLabels () {
  if (!document.getElementById) return;  	

  var labels, id, field;

  // Set focus and blur handlers to hide and show 
  // LABELs with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
	
    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      }

      // Change the applied class to hover the label 
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') {
        hideLabel(field.getAttribute('id'), true);
      }

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to LABEL elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
};

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
      return true;
    }
  }
}

window.onload = function () {
  setTimeout(initOverLabels, 50);
};




// ------------------------------------------------------------------------------------------------ 
// These functions validate the form after submit and while the user is filling elements out
// ------------------------------------------------------------------------------------------------ 


/*var errors = false;*/
var errorMsg = " ";

function validateFullName() {
	//alert('validating firstName');
	var strValue = document.subscribe.fullName.value;
	//alert ("First Name: " + strValue);
	if ((strValue == '') || (strValue == 'Name')) {
		/*var errors = true;*/
		errorMsg += "Name is a required field. ";
		/*document.getElementById('firstNameWarning').innerHTML="Required field";
		document.getElementById('firstNameWarning').style.visibility="visible";*/
		return false;
	}
	else {
		return true;
	}
}


function validateEmail() {
	//alert('validating email');
	var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	var strValue = document.subscribe.email.value;
	//alert ("Email: " + strValue);
	if ((strValue == '') || (strValue == 'E-Mail')) {
		/*var errors = true;*/
		errorMsg += "Email is a required field. ";
		/*document.getElementById('emailWarning').innerHTML="Required field";
		document.getElementById('emailWarning').style.visibility="visible";*/
		return false;
	}
	else if (!(objRegExp.test(strValue))) {
		/*var errors = true;*/
		errorMsg += "Please check e-mail address for errors. ";
		/*document.getElementById('emailWarning').innerHTML="Please check e-mail address for errors";
		document.getElementById('emailWarning').style.visibility="visible";*/
		return false;
	}
	else if (objRegExp.test(strValue)){
		/*document.getElementById('emailWarning').innerHTML=" ";*/
		return true;
	}	
}


function validateForm() {
	//alert('validating form');
	// Reset the error message
	errorMsg = "ERROR: ";
	document.getElementById('errorMessage').innerHTML = "";
	document.getElementById('errorMessage').style.display = "none";
	
	// Set variable up here. If one or more of the form elements isn't set correctly, 'passValidation' will be set to 'false'
	var passValidation = true;
	
	if (!(validateFullName()))		{passValidation = false;}
	if (!(validateEmail()))		{passValidation = false;}
	
	/*alert(passValidation);
	alert(!(passValidation));*/
	
	// If one or more of the form elements isn't set correctly, 'passValidation' will be set to 'false', alert the user
	if (!(passValidation)) {
		//alert("Please go back and check your information");
		alert (errorMsg);
		//document.getElementById('errorMessage').innerHTML = errorMsg;
		//document.getElementById('errorMessage').style.display = "block";
	}	

	// If 'passValidation' is 'true' go ahead and submit the form...
	return passValidation;

}
