
// Panasonic Form Validator v.1.2
// Last modified on 05/08/2003
// By: renegade5@renegademarketing.com

function doValidate() {
	var result;
	var oForm;

//	alert(document.forms[0].name);
//	alert(document.forms[1].name);


if (document.forms[0].name == "clubcontainer") {
	oForm = document.forms[1]
} else {
	oForm = document.forms[0]
}
	result = validateForm(oForm);


	if (result) {
	
//	the following code will output all form name/value pairs as submitted:
//
//	nFormFieldsTotal = oForm.elements.length;
//	var sAlert = "";
//	for (var i = 0; i < nFormFieldsTotal; i++) {
//		var sFieldType = oForm.elements[i].type;
//		var sFieldName = oForm.elements[i].name;
//		var sFieldValue = oForm.elements[i].value;
//		var oElement = oForm.elements[i];
//		var sElementStatus;
//		if (oElement.type == "checkbox") {
//			sElementStatus = ":  " + oElement.checked;
//		} else {
//			sElementStatus = "";
//		}
//		sAlert = sAlert + sFieldType + ": " + sFieldName + ": " + sFieldValue + sElementStatus + "\n"
//	}
//	alert(sAlert);

	oForm.submit();




	}

}




function validateForm(oForm) {
	var msg = "";
	var strError, nMonth, nDay, nYear, sAgeCutoff, nMonthCutoff, nDayCutoff, nYearCutoff, nZip, zip_begins_0, bCutOffExists, bUseCutOff, nFormFieldsTotal, sRequired, sFieldName, sFieldValue, bTooYoung, bCheckBoxesExist, bHiddenCheckBoxesExist, bCheckBoxesChecked;
	bCheckBoxesExist = false;
	bHiddenCheckBoxesExist = false;
	bCutOffExists = false;
	bUseCutOff = false;
	bTooYoung = false;
	bCheckBoxesChecked = false;
	nFormFieldsTotal = oForm.elements.length;
	sRequired = oForm.required.value;

	if (sRequired.indexOf("agecutoff") != -1) {
		bUseCutOff = true;
	}

	for (var i = 0; i < nFormFieldsTotal; i++) {
		sFieldName = oForm.elements[i].name;
		sFieldValue = oForm.elements[i].value;
		oElement = oForm.elements[i];
		switch (sFieldName) {

			case ("agecutoff") :
				if (sRequired.indexOf(sFieldName) != -1) {
					bCutOffExists = true;
					break;
				} else {
				}
			break;

			case ("firstname") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " First Name,";
					break;
				}
			break;

			case ("lastname") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Last Name,";
					break;
				}
			break;

			case ("address") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Address,";
					break;
				}
			break;

			case ("city") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " City,";
					break;
				}
			break;

			case ("state") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "--") msg += " State,";
					break;
				}
			break;

			case ("month") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "00") {
						msg += " Month,";
						break;
					} else if (sFieldValue.indexOf("0") == 0) {
						sMonthValue = sFieldValue.slice(1);
					} else {
						sMonthValue = sFieldValue;
					}
					if (!parseInt(sMonthValue)) msg += " Month,";
					if (parseInt(sMonthValue) > 12) msg += " Month,";
					if (parseInt(sMonthValue) < 1) msg += " Month,";
					break;
				}
			break;

			case ("day") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "00") {
						msg += " Day,";
						break;
					} else if (sFieldValue.indexOf("0") == 0) {
						sDayValue = sFieldValue.slice(1);
					} else {
						sDayValue = sFieldValue;
					}
					if (!parseInt(sDayValue)) msg += " Day,";
					if (parseInt(sDayValue) > 31) msg += " Day,";
					if (parseInt(sDayValue) < 1) msg += " Day,";
					break;
				}
			break;

			case ("year") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (bUseCutOff) {
						if (!doCheckYear(bCutOffExists,oForm)) {
							msg += " Year,";
							bTooYoung = true;
						}
						break;
					} else {
						if (sFieldValue == "") msg += " Year,";
						break;
					}
				}
			break;

			case ("zip") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue.substr(0,1) == "0") zip_begins_0 = true;
					nZip = "" + parseInt(sFieldValue);
					if (zip_begins_0) {
						nZip = "" + parseInt(sFieldValue.substr(1));
						nZip = "0" + nZip
					}
					if (nZip.length < 5) {
						msg += " Zip,";
					} else if (nZip != sFieldValue) {
						msg += " Zip,";
					}
				}
			break;

			case ("email") :
				if (sRequired.indexOf(sFieldName) != -1) {
					sEmail = sFieldValue;
					nEmailDot = (sEmail.length - sEmail.lastIndexOf("."));
					if (sFieldValue == "" || sFieldValue.indexOf("@") == -1) {
						msg += " Email Address,";
					} else {
						if (nEmailDot > 2 && nEmailDot < 5)  {
						} else {
							msg += " Email Address,";
						}
					}
					if(oForm.email.value != oForm.email_confirm.value) {
						alert('The email addresses you entered do not match.');
						return false;
					}
					break;
				}
			break;



			case ("password") :
				if (sRequired.indexOf(sFieldName) != -1) {
					sPassword = sFieldValue;
					re = /^[a-zA-Z0-9]/;
					if (re.test(sFieldValue) == false) {
						msg += " Password,";
					} else {
						if (sPassword.length < 6)  {
							msg += " Password,";
						} else {
						}
					}
					if(oForm.password.value != oForm.password_confirm.value) {
						alert('The passwords you entered do not match.');
						return false;
					}
					break;
				}
			break;


			case ("modeltype") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Model Type,";
					break;
				}
			break;

			case ("modelnumber") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Model Number,";
					break;
				}
			break;

			case ("dealership") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Name of Dealership,";
					break;
				}
			break;

			case ("phonenumber1" || "phonenumber2" || "phonenumber3") :
				if (sRequired.indexOf("phone") != -1) {
					if (oForm.phonenumber1.value == "" ||oForm.phonenumber2.value == "" ||oForm.phonenumber3.value == "") {
						msg += " Phone Number,";
						break;
					} else {
						var nPhone = parseFloat(oForm.phonenumber1.value + oForm.phonenumber2.value + oForm.phonenumber3.value);
						nPhone = String(nPhone);
						if (nPhone.length < 10) {
							msg += " Phone Number,";
							break;
						}
					}
				}
			break;

			case ("title") :
			//Title
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Title,";
					break;
				}
			break;

			case ("telephone") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Telephone,";
					break;
				}
			break;

			case ("PrdFamily") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Product Family,";
					break;
				}
			break;

			case ("PrdGroup") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Product Group,";
					break;
				}
			break;

			case ("inquirytype") :
				if (sRequired.indexOf(sFieldName) != -1) {
					if (sFieldValue == "") msg += " Type of Inquiry,";
					break;
				}
			break;


			case ("optin") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("all") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("audio") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("homeapp") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("office") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("comprod") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("musical") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("phone") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("digicams") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("personalhealth") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("tv") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("dvd") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("sd") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("video") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			case ("club") :
				doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm);
			break;

			default :
//				default case - TBD
		}

	}

	if (msg != "") 	{
		if (bTooYoung == false) {
			alert ("Please correct the following fields: " + msg.substring(0, msg.length-1));
		} else {
		}
		return false;
	}



	if (bCheckBoxesExist) {
		if (oForm.optin.checked == true && bCheckBoxesChecked == false) {
			alert('You have selected to recieve additional information. Please select at least one category.');
			return false;
		} else {
		}
	}

	return true;

	function doCheckCheckboxes(oElement,bHiddenCheckBoxesExist,oForm) {
		if (oElement.type == "checkbox") {
			bCheckBoxesExist = true;			
		} else if (oElement.type == "hidden") {
			bHiddenCheckBoxesExist = true;			
		}

		if (oForm.optin.checked == true) {
			if (oElement.type == "checkbox") {
				if (oElement.checked == true) {
					bCheckBoxesChecked = true;
				}
			} else if (oElement.type == "hidden") {
				oElement.value = 1;
				bCheckBoxesChecked = true;
			}
		} else {
			if (bHiddenCheckBoxesExist) {
//				oElement.value = "";
			}
		}
	}
	
}	

function doCheckYear(bCutOffExists,oForm) {

	if (bCutOffExists) {
		sAgeCutoff = oForm.agecutoff.value;
		var aAgeCutoff = sAgeCutoff.split("/")   ;
		nMonthCutoff = parseInt(aAgeCutoff[0]);
		nDayCutoff = parseInt(aAgeCutoff[1]);
		nYearCutoff = parseInt(aAgeCutoff[2]);
	} else {
		nMonthCutoff = 10;
		nDayCutoff = 03;
		nYearCutoff = 1989;
	}

	nYear = parseInt(oForm.year.value);
	nMonth = parseInt(oForm.month.value);	
	nDay = parseInt(oForm.day.value);	

	if(isNaN(nYear) || isNaN(nMonth) ||isNaN(nDay)) {
		alert('Please enter Date of Birth to check sweepstakes eligibility.');
		return false;
	} else if (2002 - nYear > 99) {
		alert("how old are you?");
		return false;	
	} else if(nYear > nYearCutoff) 	{
		alert("Sorry, you are not old enough to enter the sweepstakes. Your birth date must be prior to "+nMonthCutoff+"/"+nDayCutoff+"/"+nYearCutoff+".");
		return false;
	} else if(nYear == nYearCutoff && nMonth > nMonthCutoff) {
		alert("Sorry, you are not old enough to enter the sweepstakes. Your birth date must be prior to "+nMonthCutoff+"/"+nDayCutoff+"/"+nYearCutoff+".");
		return false;
	} else if(nYear == nYearCutoff && nMonth == nMonthCutoff && nDay >= nDayCutoff)	{
		alert("Sorry, you are not old enough to enter the sweepstakes. Your birth date must be prior to "+nMonthCutoff+"/"+nDayCutoff+"/"+nYearCutoff+".");
		return false;
	} else {
		return true;
	}

}

function openEmailSample() {
        if(top.browser=="explorer")
        {
        top.NaviWin=window.open("../club/clubnewsletter.asp",'popup','toolbar=yes,location=yes,scrollbars=yes,resizable=yes,copyhistory=no,width=760,height=450');
        }
        else
        {
        top.NaviWin=window.open("../club/clubnewsletter.asp",'popup','toolbar=yes,location=yes,scrollbars=yes,resizable=yes,copyhistory=no,width=770,height=450');top.NaviWin.focus();
        }
}

function doCheckBoxes(nLvl, sAll) {

	if (!sAll) {
		sAll = "";
	}

	var oForm;

if (document.forms[0].name == "clubcontainer") {
	oForm = document.forms[1]
} else {
	oForm = document.forms[0]
}


	var aCheckBoxes = new Array("audio","homeapp","office","comprod","musical","phone","digicams","personalhealth","tv","dvd","sd","video","club");
		nFormFieldsTotal = oForm.elements.length;
		var bOptOn = false;
		for (var i = 0; i < nFormFieldsTotal; i++) {
			sFieldName = oForm.elements[i].name;
				for (var j = 0; j < aCheckBoxes.length; j++) {
					if (sAll == "all") {
						bOptOn = true;
						if (oForm.elements[i].name == aCheckBoxes[j]) {
							if (oForm.elements[i].checked && oForm.elements[i].name != "all") {
								oForm.elements[i].checked = false;
							} else {
							}
						}
					} else {
						oForm.all.checked = false;
						if (oForm.elements[i].name == aCheckBoxes[j]) {
							if (oForm.elements[i].checked) {
								bOptOn = true;
							} else {
							}
						}
					}
				}
		}
		if (bOptOn) {
			oForm.optin.value = 1;
		} else {
			oForm.optin.value = "";
		}


}

function doCheckBoxes2(nLvl) {

	var aCheckBoxes2 = new Array("all","business","industrial");
		nFormFieldsTotal2 = oForm.elements.length;
		var bOptOn = false;
		for (var i = 0; i < nFormFieldsTotal2; i++) {
			if (oForm.elements[i].checked) {
				bOptOn = true;
			} else {
			}
		}
		if (bOptOn) {
			oForm.optin.value = 1;
		} else {
			oForm.optin.value = "";
		}

}

function add1900(sYear) {
	nYear = parseInt(sYear);

	var oForm;

	if (document.forms[0].name == "clubcontainer") {
		oForm = document.forms[1]
	} else {
		oForm = document.forms[0]
	}


	if (nYear == "0" || nYear == "00") {
		document.forms[0].year.value = "1900";
	} else if (nYear < 100) {
		oForm.year.value = "19"+nYear;
	} else if (nYear > 1900) {
		oForm.year.value = sYear;
	} else {
		oForm.year.value = "";
	}

}
