/*the base image directory location*/
var base = "/images/";

/*********
pop up a new window
*********/
function openWindow(url,x,y,toolbar,scrollbars,resizable)
{
	if(x == 0)
	{
		x = 720;
	}

	if(y == 0)
	{
		y = 520;
	}

	new_x=x+20;
	new_y=y+20;
	var options = "toolbar=" + toolbar + ",scrollbars=" + scrollbars + ",resizable=" + resizable + ",width=" + new_x + ",height=" + new_y;
	newWindow=window.open(url,"WinOpen",options);
}

/*********
switch an image by changing the src name from 'off' to 'on' and vice versa
*********/
function toggleImage(obj)
{
	// The image is currently in the OFF state
	if (obj.src.indexOf('_off.') < 0)
	{
		obj.src = obj.src.replace('_on', '_off');
	}
	// The image is currently in the ON state
	else
	{
		obj.src = obj.src.replace('_off', '_on');
	}
}

/*********
switch an image with an ID
*********/
function switchImage(thisId,thisImageSlice)
{
	//is the text "_off" inside this btn?
	if (document.getElementById(thisId).src.indexOf('_off.') < 0)
	{
		thisImg=base+thisImageSlice+thisId+'_off.gif';
	}
	else
	{
		thisImg=base+thisImageSlice+thisId+'_on.gif';
	}
	//set the image
	document.getElementById(thisId).src=thisImg;
}

/*********
expand code for both browsers
*********/
function expandIt(whichEl){
	var browser=navigator.userAgent.toLowerCase();
	var pos=browser.indexOf("gecko");
	var myElement = document.getElementById(whichEl);
	//do for Gecko Browsers
	if (pos>=0) {
		if (myElement.style.visibility == 'visible') {
			myElement.style.visibility = 'hidden';
			myElement.style.position = 'absolute';
			}
		else {
			myElement.style.position = 'relative';
			myElement.style.visibility = 'visible';
			}
	//do for IE
	} else {
		myElement.style.display = (myElement.style.display == "none" ) ? "" : "none";
	}
}

/*********
toggle the text inside a form on/off
*********/
function toggleFormText(thisId, thisText)
{
	//alert(document.getElementById(thisId).value + ',' + thisText);
	if (document.getElementById(thisId).value == thisText)
	{
		document.getElementById(thisId).value='';
	}
	else if (document.getElementById(thisId).value == '')
	{
		document.getElementById(thisId).value=thisText;
	}
}

/************
toggleSelectMenus - This function hides all select menus on an html page. In IE the select box is always on top so this function counters that bug by
			   hiding the select boxes so drop down menus aren't trumped. Toggle needs to be either: 'hidden' or 'visible'.
************/
function toggleSelectMenus(toggle) {

	// Loop through all the forms on the page
	for (i=0; i < document.forms.length; i++) {

		// Loop through the form's fields
		for (j=0; j < document.forms[i].length; j++) {

			// Test whether form object is a drop down menu
			if (getFormType(document.forms[i].elements[j]) == 'select') {

				document.forms[i].elements[j].style.visibility = toggle;
			}
		}

	}
}

/************
getFormType - Returns a string name of the type of form object. The types are: select, radio, button, submit, hidden, textarea, text
************/
function getFormType(formObject)
{
	type = formObject.type;

	// Make the select type simpler, we don't care which kind of select as long as it's a select
	if ((formObject.type == 'select-one') || (formObject.type == 'select-multiple'))
		type = 'select';

	return type;
}

/*********
validates an email address
*********/
function validateEmail(thisEmail)
{
	//initiate returnMessage variable
	var returnMessage="";

	if(thisEmail == '')
	{
		// alert the user
		returnMessage = "Please type in a valid email address.";
	}
	else
	{
		// function to check email address vilidity
		function emailCheck(emailStr)
		{
			/* The following pattern is used to check if the entered e-mail address
			   fits the user@domain format.  It also is used to separate the username
			   from the domain. */
			var emailPat=/^(.+)@(.+)$/
			/* The following string represents the pattern for matching all special
			   characters.  We don't want to allow special characters in the address.
			   These characters include ( ) < > @ , ; : \ " . [ ]    */
			var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
			/* The following string represents the range of characters allowed in a
			   username or domainname.  It really states which chars aren't allowed. */
			var validChars="\[^\\s" + specialChars + "\]"
			/* The following pattern applies if the "user" is a quoted string (in
			   which case, there are no rules about which characters are allowed
			   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
			   is a legal e-mail address. */
			var quotedUser="(\"[^\"]*\")"
			/* The following pattern applies for domains that are IP addresses,
			   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
			   e-mail address. NOTE: The square brackets are required. */
			var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
			/* The following string represents an atom (basically a series of
			   non-special characters.) */
			var atom=validChars + '+'
			/* The following string represents one word in the typical username.
			   For example, in john.doe@somewhere.com, john and doe are words.
			   Basically, a word is either an atom or quoted string. */
			var word="(" + atom + "|" + quotedUser + ")"
			// The following pattern describes the structure of the user
			var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
			/* The following pattern describes the structure of a normal symbolic
			   domain, as opposed to ipDomainPat, shown above. */
			var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


			/* Finally, let's start trying to figure out if the supplied address is
			   valid. */

			/* Begin with the coarse pattern to simply break up user@domain into
			   different pieces that are easy to analyze. */
			var matchArray=emailStr.match(emailPat);
			//alert(emailStr);
			var checkMatch='-' + matchArray + '-';
			if (checkMatch == "-null-")
			{
			  /* Too many/few @'s or something; basically, this address doesn't
				 even fit the general mould of a valid e-mail address. */
				returnMessage = "The email address seems incorrect (check @ and .'s).";
			}
			else
			{
				var user=matchArray[1];
				var domain=matchArray[2];

				// See if "user" is valid
				if (user.match(userPat)==null)
				{
					// user is not valid
					returnMessage = "The email's username doesn't seem to be valid (before the @).";
				}

				/* if the e-mail address is at an IP address (as opposed to a symbolic
				   host name) make sure the IP address is valid. */
				var IPArray=domain.match(ipDomainPat)
				if (IPArray!=null) {
					// this is an IP address
					  for (var i=1;i<=4;i++) {
						if (IPArray[i]>255) {
							returnMessage = "The email's destination IP address is invalid.";
						}
					}
				}

				// Domain is symbolic name
				var domainArray=domain.match(domainPat)
				if (domainArray==null) {
					returnMessage = "The email's domain name doesn't seem to be valid (after the @).";
				}

				/* domain name seems valid, but now make sure that it ends in a
				   three-letter word (like com, edu, gov) or a two-letter word,
				   representing country (uk, nl), and that there's a hostname preceding
				   the domain or country. */

				/* Now we need to break up the domain to get a count of how many atoms
				   it consists of. */
				var atomPat=new RegExp(atom,"g")
				var domArr=domain.match(atomPat)
				var len=domArr.length
				if (domArr[domArr.length-1].length<2 ||
					domArr[domArr.length-1].length>4) {
				   // the address must end in a two letter or three letter word.
				   returnMessage = "The email must end in a four-letter domain, three-letter domain, or two letter country.";
				}

				// Make sure there's a host name preceding the domain.
				if (len < 2) {
				   returnMessage="This email is missing a hostname!";
				}
			}
		}
		// call the validation function and return its result
		val=emailCheck(thisEmail);
		// if it returns val=no_submit, stop form
	}
	return returnMessage;
}

/************
verify Contact Form
************/
function verifyContactForm()
{
	//form variables
	submitBtnMessage='Saving... Please Wait';
	formName='formContact';

	//initialize submitForm value
	submitForm=true;
	warningMessage="";
	formFocus="";

	//check name
	if (submitForm)
	{
		formElement="name";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check the email
	if (submitForm)
	{
		formElement="email_address";
		thisDOM=eval('document.' + formName + '.' + formElement);
		//check the email address
		thisMessage=validateEmail(thisDOM.value);
		//if there is no message sent back, set the alert.
		if (thisMessage.length != 0)
		{
			warningMessage=thisMessage;
			formFocus=formElement;
			submitForm=false;
		}
	}
	//check comment
	if (submitForm)
	{
		formElement="comments";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in a comment.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//disable the form if the form checks out
	if (!submitForm)
	{
		alert(warningMessage);
	}

	//focus the form if necessary
	if (formFocus.length > 0)
	{
		thisDOM=eval('document.' + formName + '.' + formFocus);
		thisDOM.focus();
	}

	//return the boolean value whether or not we should submit this form
	return submitForm;
}

/************
verify EMMA Newsletter
************/

function verifyEmmaSubscribe()
{
	//form variables
	submitBtnMessage='Saving... Please Wait';
	formName='formEmmaSubscribe';

	//initialize submitForm value
	submitForm=true;
	warningMessage="";
	formFocus="";

	//check name_first
	if (submitForm)
	{
		formElement="name_first";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your first name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check name_last
	if (submitForm)
	{
		formElement="name_last";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your last name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check the email
	if (submitForm)
	{
		formElement="email_address";
		thisDOM=eval('document.' + formName + '.' + formElement);
		//check the email address
		thisMessage=validateEmail(thisDOM.value);
		//if there is no message sent back, set the alert.
		if (thisMessage.length != 0)
		{
			warningMessage=thisMessage;
			formFocus=formElement;
			submitForm=false;
		}
	}

	//disable the form if the form checks out
	if (!submitForm)
	{
		alert(warningMessage);
	}

	//focus the form if necessary
	if (formFocus.length > 0)
	{
		thisDOM=eval('document.' + formName + '.' + formFocus);
		thisDOM.focus();
	}

	//return the boolean value whether or not we should submit this form
	return submitForm;
}

/************
verify Send to a Friend
************/
function verifySendToAFriend()
{
	//form variables
	submitBtnMessage='Sending... Please Wait';
	formName='formSendToAFriend';

	//initialize submitForm value
	submitForm=true;
	warningMessage="";
	formFocus="";
	toEmailFound=false;

	//check friends_emails
	if (submitForm)
	{
		formElement="to_email_1";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus=formElement;
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			// set variable so next function knows a to_email has been found
			toEmailFound=true;
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
				toEmailFound=true;
			}
		}
	}

	//check the second email
	if (!toEmailFound)
	{
		formElement="to_email_2";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			// set variable so next function knows a to_email has been found
			toEmailFound=true;
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the third email
	if (!toEmailFound)
	{
		formElement="to_email_3";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 4 email
	if (!toEmailFound)
	{
		formElement="to_email_4";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 5 email
	if (!toEmailFound)
	{
		formElement="to_email_5";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 6 email
	if (!toEmailFound)
	{
		formElement="to_email_6";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 7 email
	if (!toEmailFound)
	{
		formElement="to_email_7";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 8 email
	if (!toEmailFound)
	{
		formElement="to_email_8";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 9 email
	if (!toEmailFound)
	{
		formElement="to_email_9";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check the 10 email
	if (!toEmailFound)
	{
		formElement="to_email_10";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in an email address.';
			formFocus="to_email_1";
			submitForm=false;
		}
		// verify correctly formed email
		else
		{
			//check the email address
			thisMessage=validateEmail(thisDOM.value);
			//if there is no message sent back, set the alert.
			if (thisMessage.length != 0)
			{
				warningMessage=thisMessage;
				formFocus=formElement;
				submitForm=false;
			}
		}
	}

	//check from name
	if (submitForm)
	{
		formElement="from_name";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check the email
	if (submitForm)
	{
		formElement="from_email";
		thisDOM=eval('document.' + formName + '.' + formElement);
		//check the email address
		thisMessage=validateEmail(thisDOM.value);
		//if there is no message sent back, set the alert.
		if (thisMessage.length != 0)
		{
			warningMessage=thisMessage;
			formFocus=formElement;
			submitForm=false;
		}
	}

	//disable the form if the form checks out
	if (!submitForm)
	{
		alert(warningMessage);
	}

	//focus the form if necessary
	if (formFocus.length > 0)
	{
		thisDOM=eval('document.' + formName + '.' + formFocus);
		thisDOM.focus();
	}

	//return the boolean value whether or not we should submit this form
	return submitForm;
}

// loop thru all links in the page, and disable them only if not media library
function disableAllLinks ()
{
	for (var i=0; i < document.links.length; i++)
	{
		document.links[i].onclick=function () { return false; };
		document.links[i].title="All links are disabled while previewing a document.";
	}
	return true;
}
// loop thru all forms in the page, and disable them
function disableAllFormElements ()
{
	for (var i=0; i < document.forms.length; i++)
	{
		for (var j=0; j < document.forms[i].length; j++)
		{
			document.forms[i].elements[j].disabled = true;
		}
		document.forms[i].onfocus = function () {return false; };
		document.forms[i].onclick = function () { return false; };
		document.forms[i].title="All forms are disabled while previewing a document.";
	}
	return true;
}

/*********
Creates the verification code for a form
	DIRECTIONS:
	1. Add "return createFormVerification('FormName')" to the form's onSubmit. -- Where 'FormName' is the form's name.
	 OR
	1. Add this bit of HTML code somewhere on your form page, and click the link:
		<a href="javascript:createFormVerification('FormName')">Generate Form Verification</a>
	2. Make sure the form's action is disabled or the form is prevented from sending
	3. Submit the form
	4. Every field in the form will popup a message asking whether that field is required. Click 'yes' if it is required, 'no' if it is not required
	5. A new window or tab will be opened in the browser with the code for the form's javascript verification function. Copy and paste that code into the site's js_site.js
	6. Replace the form's onSubmit function call from the createFormVerification to the newly generated function's name

	NOTES:
	* This function only creates Enthusiast's default javascript verification for form fields. If additional verification is required, add the verification to the generated function. Also the warning messages for a required form element use the form element's name in the message. If this is not desired, it needs to be manually changed
	* The "getFormType" function (near the top of this file) is required for this function to work.

	LIMITS:
	This function DOES NOT do the following things:
	1. It does not check associated form elements. Example: Would not check a form field only if a certain checkbox is checked.
	2. It does not do "special" checking of form fields. Example: Would not verify that a form field only has numbers rather than text
*********/
function createFormVerification(form)
{
	// variables
	formDOM = eval('document.' + form);	// form object reference
	tab = '&nbsp;&nbsp;&nbsp;'
	checkboxesDone = '';	// list of checkboxes that have been processed
	radioButtonsDone = '';	// list of radio buttons that have been processed

	// create a new window for writing the verification code
	newWindow = window.open('', 'newWin')

	newWindow.document.write("function verify" + form.charAt(0).toUpperCase( ) + form.substr(1) + "()<BR>");
	newWindow.document.write("{<BR>");
	newWindow.document.write(tab + "// form variables<BR>");
	newWindow.document.write(tab + "submitBtnMessage = 'Saving... Please Wait';<BR>");
	newWindow.document.write(tab + "formName = '" + form + "';<BR><BR>");
	newWindow.document.write(tab + "submitForm = true;<BR><BR>");
	newWindow.document.write(tab + "// initialize submitForm value<BR>");
	newWindow.document.write(tab + "warningMessage = '';<BR>");
	newWindow.document.write(tab + "formFocus = '';<BR><BR>");

	// loop through all form elements
	for (i = 0; i < formDOM.length; i++)
	{
		formObj = formDOM[i]; // get form object reference
		elementType = getFormType(formObj); // get the type of form element (e.g. text, textarea, select, radio, checkbox, button, submit, hidden)

		// Don't do anything with hidden, submit, or button form types
		if(elementType != 'hidden' && elementType != 'submit' && elementType != 'button')
		{
			// CHECKBOXES
			if(elementType == 'checkbox')
			{
				// if we haven't added verification for this checkbox group, process it (otherwise it will do this for each checkbox)
				if(checkboxesDone.indexOf(formObj.name + ',') == -1)
				{
					// Is this checkbox group required?
					if(confirm("Is the form element, " + formObj.name + ", of type: '" + elementType + "' required?"))
					{
						newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
						newWindow.document.write(tab + "if (submitForm)<BR>");
						newWindow.document.write(tab + "{<BR>");
						newWindow.document.write(tab + tab + "elementChecked = false;<BR>");
						newWindow.document.write(tab + tab + "i = 0;<BR>");
						newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
						newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
						newWindow.document.write(tab + tab + "// if there is only a single checkbox with this name<BR>");
						newWindow.document.write(tab + tab + "if(thisDOM.length == undefined)<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "// if no element was checked, set message<BR>");
						newWindow.document.write(tab + tab + tab + "if (!thisDOM.checked)<BR>");
						newWindow.document.write(tab + tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + tab + "warningMessage = 'Please select a " + formObj.name.replace("_"," ") + ".';<BR>");
						newWindow.document.write(tab + tab + tab + tab +  "formFocus = formElement;<BR>");
						newWindow.document.write(tab + tab + tab + tab +  "submitForm = false;<BR>");
						newWindow.document.write(tab + tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + "// else there are multiple checkboxes with this name<BR>");
						newWindow.document.write(tab + tab + "else<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "// loop through each checkbox in the group and see if any of them are checked<BR>");
						newWindow.document.write(tab + tab + tab + "while (!elementChecked && (i < thisDOM.length))<BR>");
						newWindow.document.write(tab + tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + tab + "if (thisDOM[i].checked)<BR>");
						newWindow.document.write(tab + tab + tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + tab + tab + "elementChecked = true;<BR>");
						newWindow.document.write(tab + tab + tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + tab + tab + "i++;<BR>");
						newWindow.document.write(tab + tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + tab + "// if no element was checked, set message<BR>");
						newWindow.document.write(tab + tab + tab + "if (!elementChecked)<BR>");
						newWindow.document.write(tab + tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + tab + "warningMessage = 'Please select a " + formObj.name.replace("_"," ") + ".';<BR>");
						newWindow.document.write(tab + tab + tab + tab + "formFocus = formElement + '[0]';<BR>");
						newWindow.document.write(tab + tab + tab + tab + "submitForm = false;<BR>");
						newWindow.document.write(tab + tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + "}<BR><BR>");
					}
				}

				// Add checkbox object name to the checkboxsDone list
				checkboxesDone = checkboxesDone.concat(formObj.name + ',');
			}
			// RADIO BUTTONS
			else if(elementType == 'radio')
			{
				// if we haven't added verification for this checkbox group, process it (otherwise it will do this for each checkbox)
				if(radioButtonsDone.indexOf(formObj.name + ',') == -1)
				{
					// Is this checkbox group required?
					if(confirm("Is the form element, " + formObj.name + ", of type: '" + elementType + "' required?"))
					{
						newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
						newWindow.document.write(tab + "if (submitForm)<BR>");
						newWindow.document.write(tab + "{<BR>");
						newWindow.document.write(tab + tab + "selected = false;<BR>");
						newWindow.document.write(tab + tab + "i = 0;<BR>");
						newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
						newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
						newWindow.document.write(tab + tab + "// loop through all radio buttons, if any button is selected, set the 'selected' variable to true<BR>");
						newWindow.document.write(tab + tab + "for(i = 0; i < thisDOM.length; i++)<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "if (thisDOM[i].checked)<BR>");
						newWindow.document.write(tab + tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + tab + "selected = true;<BR>");
						newWindow.document.write(tab + tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + tab + "// If no radio button is selected<BR>");
						newWindow.document.write(tab + tab + "if (selected == false)<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "warningMessage = 'Please select a " + formObj.name.replace("_"," ") + ".';<BR>");
						newWindow.document.write(tab + tab + tab + "formFocus = formElement + '[0]';<BR>");
						newWindow.document.write(tab + tab + tab + "submitForm = false;<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + "}<BR><BR>");
					}
				}

				// Add radio object name to the radioButtonsDone list
				radioButtonsDone = radioButtonsDone.concat(formObj.name + ',');
			}
			// ask user whether form element should be verified
			else if (confirm("Is the form element, " + formObj.name + ", of type: '" + elementType + "' required?"))
			{
				// TEXT
				if(elementType == 'text')
				{
					// Email Address Field
					// search for the word 'email' in the form object's name (Ignore case) and then ask the user if email verfication should be done to it
					if((formObj.name.search(/email/i) != -1) && (confirm("Should email verification be done to the '" + formObj.name + "' field?")))
					{
						newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
						newWindow.document.write(tab + "if (submitForm)<BR>");
						newWindow.document.write(tab + "{<BR>");
						newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
						newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
						newWindow.document.write(tab + tab + "thisMessage = validateEmail(thisDOM.value);<BR>");
						newWindow.document.write(tab + tab + "if (thisMessage.length != 0)<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "warningMessage = thisMessage;<BR>");
						newWindow.document.write(tab + tab + tab + "formFocus = formElement;<BR>");
						newWindow.document.write(tab + tab + tab + "submitForm = false;<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + "}<BR><BR>");
					}
					// Not an Email Address Field
					else
					{
						newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
						newWindow.document.write(tab + "if (submitForm)<BR>");
						newWindow.document.write(tab + "{<BR>");
						newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
						newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
						newWindow.document.write(tab + tab + "if (thisDOM.value.search(/\\S/) == -1) // Check for at least one non-space character<BR>");
						newWindow.document.write(tab + tab + "{<BR>");
						newWindow.document.write(tab + tab + tab + "warningMessage = 'Please enter in your " + formObj.name.replace("_"," ") + ".';<BR>");
						newWindow.document.write(tab + tab + tab + "formFocus = formElement;<BR>");
						newWindow.document.write(tab + tab + tab + "submitForm = false;<BR>");
						newWindow.document.write(tab + tab + "}<BR>");
						newWindow.document.write(tab + "}<BR><BR>");
					}
				}
				// TEXTAREA
				else if(elementType == 'textarea')
				{
					newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
					newWindow.document.write(tab + "if (submitForm)<BR>");
					newWindow.document.write(tab + "{<BR>");
					newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
					newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
					newWindow.document.write(tab + tab + "if (thisDOM.value.search(/\\S/) == -1) // Check for at least one non-space character<BR>");
					newWindow.document.write(tab + tab + "{<BR>");
					newWindow.document.write(tab + tab + tab + "warningMessage = 'Please enter in your " + formObj.name.replace("_"," ") + ".';<BR>");
					newWindow.document.write(tab + tab + tab + "formFocus = formElement;<BR>");
					newWindow.document.write(tab + tab + tab + "submitForm = false;<BR>");
					newWindow.document.write(tab + tab + "}<BR>");
					newWindow.document.write(tab + "}<BR><BR>");
				}
				// SELECT
				// Preconditions: This assumes that the default (non-selected) value is an empty string
				else if(elementType == 'select')
				{
					newWindow.document.write(tab + "// check " + formObj.name + "<BR>");
					newWindow.document.write(tab + "if (submitForm)<BR>");
					newWindow.document.write(tab + "{<BR>");
					newWindow.document.write(tab + tab + "formElement = '" + formObj.name + "';<BR>");
					newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formElement);<BR><BR>");
					newWindow.document.write(tab + tab + "if (thisDOM.value.search(/\\S/) == -1) // Check for at least one non-space character<BR>");
					newWindow.document.write(tab + tab + "{<BR>");
					newWindow.document.write(tab + tab + tab + "warningMessage = 'Please select a " + formObj.name.replace("_"," ") + ".';<BR>");
					newWindow.document.write(tab + tab + tab + "formFocus = formElement;<BR>");
					newWindow.document.write(tab + tab + tab + "submitForm = false;<BR>");
					newWindow.document.write(tab + tab + "}<BR>");
					newWindow.document.write(tab + "}<BR><BR>");
				}
			}
		}
	}

	newWindow.document.write(tab + "// disable the form if the form checks out<BR>");
	newWindow.document.write(tab + "if (!submitForm)<BR>");
	newWindow.document.write(tab + "{<BR>");
	newWindow.document.write(tab + tab + "alert(warningMessage);<BR>");
	newWindow.document.write(tab + "}<BR><BR>");
	newWindow.document.write(tab + "// focus the form if necessary<BR>");
	newWindow.document.write(tab + "if (formFocus.length > 0)<BR>");
	newWindow.document.write(tab + "{<BR>");
	newWindow.document.write(tab + tab + "thisDOM = eval('document.' + formName + '.' + formFocus);<BR>");
	newWindow.document.write(tab + tab + "thisDOM.focus();<BR>");
	newWindow.document.write(tab + "}<BR><BR>");
	newWindow.document.write(tab + "// return the boolean value whether or not we should submit this form<BR>");
	newWindow.document.write(tab + "return submitForm;<BR>");

	newWindow.document.write("}");

	// Close the document so everything will be written to window
	newWindow.document.close()
}

/*********
returns true if the phone number is valid, false otherwise
Valid:
(343) 234-3432
2342342342
234-242-2342
*********/
function isPhoneValid(phone_number)
{
	valid = true;

	if (thisDOM.value.search(/^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/) == -1)
	{
		valid = false;
	}

	return valid;
}

/************
verify Comment Form
************/
function verifyCommentForm()
{
	//form variables
	submitBtnMessage='Saving... Please Wait';
	formName='formComment';

	//initialize submitForm value
	submitForm=true;
	warningMessage="";
	formFocus="";

	//check name
	if (submitForm)
	{
		formElement="name";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check the email
	if (submitForm)
	{
		formElement="email";
		thisDOM=eval('document.' + formName + '.' + formElement);
		//check the email address
		thisMessage=validateEmail(thisDOM.value);
		//if there is no message sent back, set the alert.
		if (thisMessage.length != 0)
		{
			warningMessage=thisMessage;
			formFocus=formElement;
			submitForm=false;
		}
	}
	//check comment
	if (submitForm)
	{
		formElement="comments";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in a comment.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check security code
	if (submitForm)
	{
		formElement="securitycode";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in the security code numbers.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//disable the form if the form checks out
	if (!submitForm)
	{
		alert(warningMessage);
	}

	//focus the form if necessary
	if (formFocus.length > 0)
	{
		thisDOM=eval('document.' + formName + '.' + formFocus);
		thisDOM.focus();
	}

	//return the boolean value whether or not we should submit this form
	return submitForm;
}


/************
showVotingDisplay - changes the stars to orange as someone mouseovers them
************/
function showVotingDisplay(imageCount,iid,makeChanges)
{
	// loop through all the previous images for this display and change them
	if (makeChanges == 1)
	{
		for (i=1; i <= imageCount; i++)
		{
			thisDOM = eval('document.getElementById("voter' + i + '_' + iid + '")');
			thisDOM.src = "/images/star_orange.jpg";
		}
	}
}

function resetVotingDisplay(thisRating,iid)
{
	for (i=1; i <= 5; i++)
	{
		thisDOM = eval('document.getElementById("voter' + i + '_' + iid + '")');
		if (i <= thisRating)
		{
			thisDOM.src = "/images/star_red.jpg";
		}
		else
		{
			thisDOM.src = "/images/star_white.jpg";
		}
	}
}

function showVotingDisplayDetail(imageCount,iid,makeChanges)
{
	// loop through all the previous images for this display and change them
	if (makeChanges == 1)
	{
		for (i=1; i <= imageCount; i++)
		{
			thisDOM = eval('document.getElementById("voter' + i + '_' + iid + '")');
			thisDOM.src = "/images/star_detail_grey.gif";
		}
	}
}

function resetVotingDisplayDetail(thisRating,iid)
{
	for (i=1; i <= 5; i++)
	{
		thisDOM = eval('document.getElementById("voter' + i + '_' + iid + '")');
		if (i <= thisRating)
		{
			thisDOM.src = "/images/star_detail_orange.gif";
		}
		else
		{
			thisDOM.src = "/images/star_detail_white.gif";
		}
	}
}

/************
Gallery Upload Form Confirmation
************/
function confirmUploadForm(checkboxCount)
{
	//form variables
	submitBtnMessage='Saving... Please Wait';
	formName='formUpload';

	//initialize submitForm value
	submitForm=true;
	warningMessage="";
	formFocus="";

	// check image
	if (submitForm)
	{
		formElement = "uploadedFile";
		thisDOM = eval('document.' +formName + '.' + formElement);

		if (thisDOM.value != "")
		{
			thisValue = thisDOM.value.toLowerCase();
			// check for the extensions
			if ((thisValue.indexOf('.gif') > 0) || (thisValue.indexOf('.jpg') > 0) || (thisValue.indexOf('.jpeg') > 0) || (thisValue.indexOf('.png') > 0))
			{
				submitForm = true;
			}
			// no proper extension found
			else
			{
				warningMessage = "Please upload either a .gif, .jpg, or .png image.";
				formFocus = formElement;
				submitForm = false;
			}
		}
		// no file uploaded
		else
		{
			warningMessage = "Please click the \"Browse\" button to select a .gif, .jpg, or .png image to upload.";
			formFocus = formElement;
			submitForm = false;
		}
	}

	//check title
	if (submitForm)
	{
		formElement="title";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your image\'s title.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	// make sure 1 checkbox is selected
	/*if (submitForm)
	{
		referrerChecked = false;
		formElement = "catid";
		thisDOM = eval('document.' + formName + '.' + formElement);

		// are any of the checkboxes checked
		for (i = 0; i < checkboxCount; i++)
		{
			if(thisDOM[i].checked == true)
			{
				referrerChecked = true;
			}
		}
		if (!referrerChecked)
		{
			warningMessage = "Please select the kind of image you're uploading.";
			submitForm = false;
		}
		else
		{
			submitForm = true;
		}
	}*/

	//check for consent checked
	if (submitForm)
	{
		consentChecked = false;
		formElement="consent_approval";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (document.getElementById('consent_checkbox').checked)
		{
			consentChecked=true;
		}
		// no consent checked, don't submit the form
		if (!consentChecked)
		{
			warningMessage="Please read the Consent Information, and click the box next to \"I Consent\".";
			submitForm=false;
		}
	}

	//check name
	if (submitForm)
	{
		formElement="name";
		thisDOM=eval('document.' + formName + '.' + formElement);
		if (thisDOM.value == "")
		{
			warningMessage='Please type in your name.';
			formFocus=formElement;
			submitForm=false;
		}
	}

	//check the email
	if (submitForm)
	{
		formElement="email";
		thisDOM=eval('document.' + formName + '.' + formElement);
		//check the email address
		thisMessage=validateEmail(thisDOM.value);
		//if there is no message sent back, set the alert.
		if (thisMessage.length != 0)
		{
			warningMessage=thisMessage;
			formFocus=formElement;
			submitForm=false;
		}
	}

	//disable the form if the form checks out
	if (!submitForm)
	{
		alert(warningMessage);
	}

	//focus the form if necessary
	if (formFocus.length > 0)
	{
		thisDOM=eval('document.' + formName + '.' + formFocus);
		thisDOM.focus();
	}

	//return the boolean value whether or not we should submit this form
	return submitForm;
}
