<!--//
/*
Script:		registration.js
Client:		StarKist
Project:	StarKist Contact Us Form
Company:	circle.com - http://www.circle.com
Author:		Rob Gainer - rob.gainer@circle.com
Created:	6/14/2001
Updated:	1/21/2003
*/

//Validate form fields
function validate(theForm){
	var formElement;
	var selectedOne;
	var errorArray=new Array();
	var j=0;
	var errors = false;
	var errorMessage = '';

	for (i=0; i < varArray.length; i++){
		if (theForm.elements[varArray[i]]){
			formElement=theForm.elements[varArray[i]];
			if ((formElement.type=='text')||(formElement.type=='textarea')||(formElement.type=='password')||(formElement.type=='file')){
				if (formElement.value==''){
					errors=true;
					errorArray[j]=displayArray[i];
					j++;
				}
   			}
			else if ((formElement.type=='select-one')||(formElement.type=='select-multiple')){
            	if (formElement.selectedIndex <= 0){
            		errors=true;
            		errorArray[j]=displayArray[i];
            		j++;
            	}
            }
            else if (!formElement.type){
            	if ((formElement.length) && (formElement[0].type=='radio')){
            		selectedOne=false;
            		for (k=0; k < formElement.length; k++){
            			if (formElement[k].checked){
            				selectedOne=true;
            			}
            		}
            		if (!selectedOne){
            			errors=true;
            			errorArray[j]=displayArray[i];
            			j++;
            		}
            	}
            	else if ((formElement.length) && (formElement[0].type=='checkbox')){
            		selectedOne=false;
            		for (k=0; k < formElement.length; k++){
            			if (formElement[k].checked){
            				selectedOne=true;
            			}
            		}
            		if (!selectedOne){
            			errors=true;
            			errorArray[j]=displayArray[i];
            			j++;
            		}
            	}
            }
        }
    }
	if (theForm.elements[emailField]){
        if (theForm.elements[emailField].value != ''){
    		if (!validEmail(theForm.elements[emailField].value)){
    			errors=true;
    			errorArray[j]=emailError;
    			j++;
    		}
        }
	}
	if (errors){
		for (i=0; i < errorArray.length; i++){
			errorMessage += '- ' + errorArray[i] + '\n';
		}
		alert(requiredError + errorMessage);
		return false;
	}
	else {
		return true;
	}
}

//Determine if fieldName is in theArray
function isInArray (fieldName, theArray){
	for (var i=0; i < theArray.length; i++){
		if (fieldName == theArray[i]){
			return true;
		}
	}
	return false;
}

function getArrayIndex (match, theArray){
	for (var i=0; i < theArray.length; i++){
		if (match == theArray[i]){
			return i;
		}
	}
	return -1;
}

//Determine if e-mail address is in a valid e-mail format
function validEmail(email){
	var invalidChars = " /:,;";
	
	if (email == null || email == ""){	    
	   return false;
	}
	for (j=0; j<invalidChars.length; j++){
		badChar = invalidChars.charAt(j);
		if (email.indexOf(badChar,0) > -1){
			return false;
		}
	}
	var atPos = email.indexOf("@",1);
	if (atPos == -1){
		return false;
	}
	if (email.indexOf("@",atPos+1) > -1){
		return false;
	}
	var periodPos = email.indexOf(".",atPos);
	if (periodPos == -1){
		return false;
	}
	if (periodPos+3 > email.length) {
		return false;
	}
	return true;
}	   

//Strips non-numeric characters from theValue
function stripNonNumeric (theValue){
	var tempValue = '';
	for (var i = 0; i < theValue.length; i++){
		if ((theValue.charCodeAt(i) >= 48) && (theValue.charCodeAt(i) <= 57)){
			tempValue += theValue.charAt(i);
		}
	}
	return tempValue;
}

//Determines if theValue is a valid number
function validNumeric (theValue){
	if (theValue.charCodeAt(0) == '0'){
		return false;
	}
	for (var i = 0; i < theValue.length; i++){
		if (!((theValue.charCodeAt(i) >= 48) && (theValue.charCodeAt(i) <= 57))){
			return false;
		}
	}
	return true;
}

//Determines if theValue is an alphabetical string only
function validAlpha (theValue){
	for (var i = 0; i < theValue.length; i++){
		if (!(((theValue.charCodeAt(i) >= 65) && (theValue.charCodeAt(i) <= 90)) ||
		((theValue.charCodeAt(i) >= 97) && (theValue.charCodeAt(i) <= 122)))){
			return false;
		}
	}
	return true;
}

//Determines if theValue is an alphabetical and numeric string only
function validAlphanumeric (theValue){
	for (var i = 0; i < theValue.length; i++){
		if (!((((theValue.charCodeAt(i) >= 65) && (theValue.charCodeAt(i) <= 90)) ||
		((theValue.charCodeAt(i) >= 97) && (theValue.charCodeAt(i) <= 122))) ||
		((theValue.charCodeAt(i) >= 48) && (theValue.charCodeAt(i) <= 57)))){
			return false;
		}
	}
	return true;
}

//Determines if theValue is a valid Date MM/DD/YYYY
function validDateMDY (theValue){
	var dividers = ['/','.','-'];
	var month;
	var day;
	var year;
	var pos;
	if (theValue.length != 10){
		return false;
	}
	
	var validDividers = false;
	var dividerProblem;
	for (var d = 0; d < dividers.length; d++){
		dividerProblem = false;
		pos = theValue.indexOf(dividers[d]);
		if (pos != 2){
			dividerProblem = true;
		}
		if (validNumeric(theValue.substring(0,2))){
			month = parseInt(parseFloat(theValue.substring(0,2)));
		} else return false;
		pos = theValue.indexOf(dividers[d],3);
		if (pos != 5){
			dividerProblem = true;
		}
		if (!dividerProblem){
			validDividers = true;
		}
	}
	if (!validDividers){
		return false;
	}

	if (validNumeric(theValue.substring(3,5))){
		day = parseInt(parseFloat(theValue.substring(3,5)));
	} else return false;
	if ((theValue.charAt(6) != '0') && validNumeric(theValue.substring(6))){
		year = parseInt(theValue.substring(6));
	} else return false;
	var theDate = new Date(month + '/' + day + '/' + year);
	if ((theDate.getMonth() + 1) != month){
		return false;
	}
	return true;
}

//Determines if theValue is a valid Date DD/MM/YYYY
function validDateDMY (theValue){
	var dividers = ['/','.','-'];
	var month;
	var day;
	var year;
	var pos;
	if (theValue.length != 10){
		return false;
	}
	
	var validDividers = false;
	var dividerProblem;
	for (var d = 0; d < dividers.length; d++){
		dividerProblem = false;
		pos = theValue.indexOf(dividers[d]);
		if (pos != 2){
			dividerProblem = true;
		}
		if (validNumeric(theValue.substring(0,2))){
			day = parseInt(parseFloat(theValue.substring(0,2)));
		} else return false;
		pos = theValue.indexOf(dividers[d],3);
		if (pos != 5){
			dividerProblem = true;
		}
		if (!dividerProblem){
			validDividers = true;
		}
	}
	if (!validDividers){
		return false;
	}
	
	if (validNumeric(theValue.substring(3,5))){
		month = parseInt(parseFloat(theValue.substring(3,5)));
	} else return false;
	if ((theValue.charAt(6) != '0') && validNumeric(theValue.substring(6))){
		year = parseInt(theValue.substring(6));
	} else return false;
	var theDate = new Date(month + '/' + day + '/' + year);
	if ((theDate.getMonth() + 1) != month){
		return false;
	}
	return true;
}
//-->
