if (getURLParam('duplicate') == '')
	document.getElementById(formId).onsubmit = function(e) { return verifyform(e); }
else {
	alert('Limit one entry per person.');
	theForm = document.getElementById(formId);
	for (i = 0; i < theForm.elements.length; i++)
	{
		if (theForm.elements[i].type == "submit")
			theForm.elements[i].disabled = true;
	}
	document.getElementById(formId).onsubmit = function() { alert('Limit one entry per person.'); return false; }
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}

function checkEmail(form, field) {
	Email = field.value;

	if ((Email.indexOf(".") == -1) || (Email.indexOf("@") == -1)) {
		field.value = "";
	}
}


function checkInt(form, field) {
	Num = "" + eval("document." + form + "." + field + ".value");
	tempInt1 = Num * 1;
	tempInt2 = parseInt(Num);

	if (isNaN(tempInt1) || isNaN(tempInt2) || (Num.indexOf(".") != -1)) {
		eval("document." + form + "." + field + ".value = '';");
	}
	else {
		eval("document." + form + "." + field + ".value = \"" + tempInt1 + "\";");
	}
}

function verifyform(e) {
	if (!e) var e = window.event;
	
	if (e.target) sender = e.target;
	else if (e.srcElement) sender = e.srcElement;
	if (sender.nodeType == 3) //for Safari bug
	sender = sender.parentNode;
	toggleSubmit(sender, false);
	
	updateBirthDate();
	updatePhone();
	
	isValid = true;
	errMsg = "";
	checkedEmail = false;
	labelFields = document.getElementsByTagName('label');
	
	if (typeof(requiredFields) != "undefined") {
		var reqFieldNames = requiredFields.split(',');
		for (i = 0; i < reqFieldNames.length; i++) {
			if (reqFieldNames[i] == 'email') checkedEmail = true;
			
			fieldObj = document.getElementById(reqFieldNames[i]);
			fieldValue = "";
			switch (fieldObj.type) {
				case "text":
				case "hidden":
					fieldValue = fieldObj.value;
					break;
				case "select-one":
				case "select-multiple":
					fieldValue = fieldObj.options[fieldObj.selectedIndex].value;
					break;
			}
			
			if (fieldValue == "") {
				isValid = false;
				fieldName = reqFieldNames[i];
				for (k = 0; k < labelFields.length; k++) {
					if (labelFields[k].htmlFor == fieldName) {
						fieldName = labelFields[k].firstChild.nodeValue;
						if (fieldName.charAt(fieldName.length - 1) == ':') fieldName = fieldName.substring(0, fieldName.length - 1);
						break;
					}
				}
				errMsg += "\t" + fieldName + "\n";
				if (typeof(errCssClass) != "undefined")
					fieldObj.className = errCssClass;
			}
		}
	}
	
	if (checkedEmail == false) {
		if (document.getElementById('email').value == "") {
			isValid = false;
			errMsg += "\temail\n";
			if (typeof(errCssClass) != "undefined")
				document.getElementById('email').className = errCssClass;
		}
	}
	
	if (errMsg.length > 0)
		alert("Please complete the following fields:\n" + errMsg);
	else {
		//Validate age
		year = document.getElementById('year').value;
		phone = document.getElementById('phone').value;
		regExYear = /^\d{4}$/;
		regExPhone = /^\(\d{3}\) \d{3} - \d{4}$/;
		if (!regExYear.exec(year)) { 
			alert("Invalid year"); 
			isValid = false;
		}
		else if (!regExPhone.exec(phone)) {
			alert("Invalid phone");
			isValid = false;
		}
		else if (document.getElementById('dateofbirth'))
		{
			dateofbirth = document.getElementById('dateofbirth').value.split('-');
			
			birthDate = new Date();
			birthDate.setFullYear(dateofbirth[0]);
			birthDate.setMonth(dateofbirth[1] - 1);
			birthDate.setDate(dateofbirth[2]);
			cutoffDate = new Date();
			cutoffDate.setFullYear(new Date().getFullYear() - minimumAge);
			if (birthDate > cutoffDate) {
				alert('Sorry, you do not meet the minimum age requirement for this contest.  Must be ' + minimumAge + ' or older to enter!!');
				isValid = false;
			}
			else if (document.getElementById('zip')) {
				regEx = /^\d{5}(-\d{4})?$/;
				if (!regEx.exec(document.getElementById('zip').value)) {
					alert('Invalid zip code.');
					isValid = false;
				}
			}
		}
	}
		
	if (!isValid) { toggleSubmit(sender, true); }
	else {
		fieldsElement = document.createElement("input");
		fieldsElement.type = "hidden";
		fieldsElement.name = "requiredFields";
		fieldsElement.id = "requiredFields";
		fieldsElement.value = requiredFields;
		sender.appendChild(fieldsElement);
	}
	return isValid;
}

function toggleSubmit(form, enabled)
{
	for (i = 0; i < form.elements.length; i++)
	{
		if (form.elements[i].type == "submit") { form.elements[i].disabled = enabled ? "" : "disabled"; }
	}
}