// constants to define the title of the alert and button text.
var ALERT_TITLE = "Oops!";
var ALERT_BUTTON_TEXT = "Ok";

function validate_contact_form(thisform)
{
with (thisform)
  {
  if (validate_required(userName,"Name cannot be left blank!")==false)
  {userName.focus();return false;}  
  else if (validate_required(email,"Email cannot be left blank!")==false)
  {email.focus();return false;}
  else if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false;}
  else if (validate_required(message,"Message cannot be left blank!")==false)
  {message.focus();return false;}
  else if (validate_required(securityquestion,"Please answer the security question.")==false)
  {securityquestion.focus();return false;}
  else if (validate_security_question(securityquestion,"You did not answer the security question correctly. Hint: The answer is a 4 letter word that starts with the letter 'b'")==false)
  {securityquestion.focus();return false;}
  }
}

function validate_game_form(thisform)
{
with (thisform)
  {
  if (validate_required(answer,"Answer cannot be left blank!")==false)
  {answer.focus();return false;} 
  else if (validate_required(userName,"Name cannot be left blank!")==false)
  {userName.focus();return false;}  
  else if (validate_required(email,"Email cannot be left blank!")==false)
  {email.focus();return false;}
  else if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false;}
  else if (validate_required(securityquestion,"Please answer the security question.")==false)
  {securityquestion.focus();return false;}
  else if (validate_security_question(securityquestion,"You did not answer the security question correctly. Hint: The answer is a 4 letter word that starts with the letter 'b'")==false)
  {securityquestion.focus();return false;}
  }
}
function validate_newsletter_form(thisform)
{
with (thisform)
  {
  if (validate_required(email,"Email cannot be left blank!")==false)
  {email.focus();return false;}
  else if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false;}  
  }
}
function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==null||value=="")
    {createCustomAlert(alerttxt);return false;}
  else {return true;}
  }
}
function validate_security_question(field,alerttxt)
{
with (field)
  {
  if (value.toLowerCase()!="blue")
    {createCustomAlert(alerttxt);return false;}
  else {return true;}
  }
}
// custom alert
function validate_email(field,alerttxt)
{
with (field)
  {
  apos=value.indexOf("@");
  dotpos=value.lastIndexOf(".");
  if (apos<1||dotpos-apos<2)
    {createCustomAlert(alerttxt);return false;}
  else {return true;}
  }
}

function createCustomAlert(alerttxt) {
	// shortcut reference to the document object
	d = document;

	// if the modalContainer object already exists in the DOM, bail out.
	if(d.getElementById("modalContainer")) return;

	// create the modalContainer div as a child of the BODY element
	mObj = d.getElementsByTagName("body")[0].appendChild(d.createElement("div"));
	mObj.id = "modalContainer";
	 // make sure its as tall as it needs to be to overlay all the content on the page
	mObj.style.height = document.documentElement.scrollHeight + "px";

	// create the DIV that will be the alert 
	alertObj = mObj.appendChild(d.createElement("div"));
	alertObj.id = "alertBox";
	// MSIE doesnt treat position:fixed correctly, so this compensates for positioning the alert
	if(d.all && !window.opera) alertObj.style.top = document.documentElement.scrollTop + "px";
	// center the alert box
	alertObj.style.left = (d.documentElement.scrollWidth - alertObj.offsetWidth)/2 + "px";

	// create an H1 element as the title bar
	h1 = alertObj.appendChild(d.createElement("h1"));
	h1.appendChild(d.createTextNode(ALERT_TITLE));

	// create a paragraph element to contain the txt argument
	msg = alertObj.appendChild(d.createElement("p"));
	msg.innerHTML = alerttxt;
	
	// create an anchor element to use as the confirmation button.
	btn = alertObj.appendChild(d.createElement("a"));
	btn.id = "closeBtn";
	btn.appendChild(d.createTextNode(ALERT_BUTTON_TEXT));
	btn.href = "#";
	// set up the onclick event to remove the alert when the anchor is clicked
	btn.onclick = function() { removeCustomAlert();return false; }

	
}

// removes the custom alert from the DOM
function removeCustomAlert() {
	document.getElementsByTagName("body")[0].removeChild(document.getElementById("modalContainer"));
}
