//====================================================================================//
// Validate form
//====================================================================================//
var alreadySubmited = 0;
var leaving=1;
var errormessage;
function GeneralFormValWithParma(fieldName){	
	numbers = new RegExp ("[^0-9 ]","i");
	var typeOfField;
	var doCharacterValidation = 0;
	
	if(fieldName == "firstname" || fieldName == "lastname" ){
		typeOfField = "characters";
		doCharacterValidation = 1;
	}else if(fieldName == "firstname" || fieldName == "zip" || fieldName == "phone1" || fieldName == "phone2" || fieldName == "phone3" || fieldName == "cphone1" || fieldName == "cphone2" || fieldName == "cphone3" || fieldName == "conf_phone1" || fieldName == "conf_phone2" || fieldName == "conf_phone3" || fieldName == "CVV2" || fieldName == "cardnumber"  || fieldName == "ssn"){
		typeOfField = "numbers";
		doCharacterValidation = 1;
	}else{
		doCharacterValidation = 0;
	}
	
	if((doCharacterValidation == 1 && checkfieldParam(fieldName,'field',typeOfField)=="") || doCharacterValidation == 0 ){
		
		if (alreadySubmited == 1){
			return false;
		}else{	
			alreadySubmited = 1;		
			errormessage = ""
	
	
			// ************************************* EMAIL VALIDATION ***************************************
			if (fieldName == "emailaddress" && document.myform.emailaddress.type != 'hidden')
			{
				if (document.myform.emailaddress.value == ""){
					errormessage = errormessage + "\n Please input your email address.";
				}else{
					var emailPat=/^(.+)@(.+)$/;
					var specialChars="\\(\\)<>@,;:{}`~'?!##$/|%^&*=+\\\\\\\"\\.\\[\\]";
					var validChars="\[^\\s" + specialChars + "\]";
					var firstChars=validChars;
					var quotedUser="(\"[^\"]*\")";
					var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
					var atom="(" + firstChars + validChars + "*" + ")";
					var word="(" + atom + "|" + quotedUser + ")";
					var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
					var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
					var emailadd=new String(document.myform.emailaddress.value);
					var matchArray=emailadd.match(emailPat);
					
					if (matchArray == null) {
						errormessage = errormessage + "\n Email address seems incorrect (check @ and .'s)";
					}else{
						var user=matchArray[1];
						var domain=matchArray[2];
						if (user.match(userPat)==null || domain == null) {
							errormessage = errormessage + "\n The email entered doesn't seem to be valid, please enter your correct email address.";
						}else{
							var IPArray=domain.match(ipDomainPat);
							if (IPArray!=null) {
								for (var i=1;i<=4;i++) {
								    if (IPArray[i]>255) {
										errormessage = errormessage + "\n Destination IP address is invalid!";
							    	}
						    	}
						    	return true;
							}else{
								var domainArray=domain.match(domainPat);
								if (domainArray==null) {
									errormessage = errormessage + "\n The email entered doesn't seem to be valid, please enter your correct email address.";
								}else{
									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>3) {
										errormessage = errormessage + "\n The address must end in a three-letter domain, or two letter country.";
									}else{
										if (domArr[domArr.length-1].length==3 && len<2) {
											errormessage = errormessage + "\n This address is missing a hostname!";
										}
									}
								}
							}	
						}
					}
				}
			}
			
			if (fieldName =="gender" && document.getElementById('gender').type == 'radio' && document.myform.gender.type != 'hidden') {
				for (var i=0; i < document.myform.gender.length; i++) {
					if (document.myform.gender[i].checked) {
						var rad_val = document.myform.gender[i].value;
					}
				}
				if (rad_val != 'M' && rad_val != 'F') {
					errormessage += "\n Please select your title.";
				}
			}
			else if (fieldName=="gender" && document.myform.gender.type != 'hidden')
			{
				if (document.myform.gender.options[document.myform.gender.selectedIndex].value == "0" || document.myform.gender.options[document.myform.gender.selectedIndex].value == ""){
					errormessage += "\n Please select your title.";
				}
			}
			if (fieldName=="firstname" && document.myform.firstname.type != 'hidden')
			{
				if (document.myform.firstname.value.length < 2){
					errormessage = errormessage + "\n Please enter your complete first name.";
				}
			}
			if (fieldName=="cc_name" && document.myform.cc_name.type != 'hidden')
			{
				if (document.myform.cc_name.value.length < 2){
					errormessage = errormessage + "\n Please enter the name on the credit card.";
				}
			}
			if (fieldName=="lastname" && document.myform.lastname.type != 'hidden')
			{
				if (document.myform.lastname.value.length < 2){
					errormessage = errormessage + "\n Please enter your complete last name.";	
				}	
			}
			if (fieldName=="address1" && document.myform.address1.type != 'hidden')
			{
				if (document.myform.address1.value == ""){
					errormessage = errormessage + "\n Please input your mailing address.";
				}
			}
			if (fieldName=="address2" && document.myform.address1.type != 'hidden')
			{
				if (document.myform.address2.value == ""){
					errormessage = errormessage + "\n Please input your mailing address.";
				}
			}			
			if (fieldName=="zip" && document.myform.zip.type != 'hidden')
			{
				if (document.myform.zip.value == ""){
					errormessage = errormessage + "\n Please input your zip code.";
				}else{
					if (document.myform.zip.value.length != 5 || isNaN(document.myform.zip.value)){
						errormessage = errormessage + "\n Zip Code must be 5 characters.";
					}
				}
			}
			
			if (fieldName=="ssn" && document.myform.ssn.type != 'hidden')
			{
				if (document.myform.zip.value == ""){
					errormessage = errormessage + "\n Please input your zip code.";
				}else{
					if (document.myform.zip.value.length != 4 || isNaN(document.myform.zip.value)){
						errormessage = errormessage + "\n Zip Code must be 5 characters.";
					}
				}
			}
	
			if ((fieldName=="bday" && document.myform.bday.type != 'hidden') || (fieldName=="bmonth" && document.myform.bmonth.type != 'hidden') || (fieldName=="byear" && document.myform.byear.type != 'hidden'))
			{
				if ( document.myform.bmonth.options[document.myform.bmonth.selectedIndex].value == "" ||  document.myform.bday.options[document.myform.bday.selectedIndex].value == "" || document.myform.byear.options[document.myform.byear.selectedIndex].value == ""){
					errormessage = errormessage + "\n Please select your birthday.";
				}
			}
			if (fieldName=="city" && document.myform.city.type != 'hidden')
			{
				if (document.myform.city.value.length < 2){
					errormessage = errormessage + "\n Please enter your complete last name.";	
				}	
			}
	
			var homeiscell = 0;
			if (fieldName=="homeiscell" && document.myform.homeiscell.type != 'hidden')
			{
				if (document.myform.homeiscell.checked == true)
				{
					homeiscell = 1;
				}
			}
	
			var numList = '222,333,444,555,666,777,888,999';
			if ((fieldName=="phone1" && document.myform.phone1.type != 'hidden') || (fieldName=="phone2" && document.myform.phone2.type != 'hidden') || (fieldName=="phone3" && document.myform.phone3.type != 'hidden'))
			{
				if (document.myform.phone1.value != "" || document.myform.phone2.value != "" || document.myform.phone3.value != "" || homeiscell == 0){
	
					if (document.myform.phone1.value == "" || document.myform.phone2.value == "" || document.myform.phone3.value == ""){
						errormessage = errormessage + "\n Please input your phone number.";
					}
					else if (document.myform.phone1.value.length < 3 || document.myform.phone2.value.length < 3 || document.myform.phone3.value.length < 4){
						errormessage = errormessage + "\n Please input your complete phone number.";
					}		
					else if (document.myform.phone1.value.search(numbers) != -1 || document.myform.phone2.value.search(numbers) != -1 || document.myform.phone3.value.search(numbers) != -1){							
						errormessage = errormessage + "\n Your phone number can only contain numbers.";
					}
					else if (document.myform.phone1.value.substring(0,1) == "1" || document.myform.phone1.value.substring(0,1) == "0"){
						errormessage = errormessage + "\n Please input a valid phone number.";
					}
					else
					{
						var numToCheck = numList.split(',');
						var indexCount;
						for (indexCount = numToCheck.length - 1; indexCount >= 0; indexCount --)
						{
							if (document.myform.phone1.value == numToCheck[indexCount])
							{
								errormessage = errormessage + "\n Please input a valid phone number.";
								break;
							}
						}
					}
				}
			}
				if ((fieldName=="cphone1" && document.myform.cphone1.type != 'hidden') || (fieldName=="cphone2" && document.myform.cphone2.type != 'hidden') || (fieldName=="cphone3" && document.myform.cphone3.type != 'hidden'))
			{
					if (document.myform.cphone1.value != "" || document.myform.cphone2.value != "" || document.myform.cphone3.value != "" || homeiscell == 0){
	
					if (document.myform.cphone1.value == "" || document.myform.cphone2.value == "" || document.myform.cphone3.value == ""){
						errormessage = errormessage + "\n Please input your Cell phone number.";
					}
					else if (document.myform.cphone1.value.length < 3 || document.myform.cphone2.value.length < 3 || document.myform.cphone3.value.length < 4){
						errormessage = errormessage + "\n Please input your complete Cell phone number.";
					}		
					else if (document.myform.cphone1.value.search(numbers) != -1 || document.myform.cphone2.value.search(numbers) != -1 || document.myform.cphone3.value.search(numbers) != -1){							
						errormessage = errormessage + "\n Your Cell phone number can only contain numbers.";
					}
					else if (document.myform.cphone1.value.substring(0,1) == "1" || document.myform.cphone1.value.substring(0,1) == "0"){
						errormessage = errormessage + "\n Please input a valid Cell phone number.";
					}
					else
					{
						var numToCheck = numList.split(',');
						var indexCount;
						for (indexCount = numToCheck.length - 1; indexCount >= 0; indexCount --)
						{
							if (document.myform.cphone1.value == numToCheck[indexCount])
							{
								errormessage = errormessage + "\n Please input a valid Cell phone number.";
								break;
							}
						}
					}
				}
			}
			if ((fieldName=="password" && document.myform.password.type != 'hidden') || (fieldName=="password2" && document.myform.password2.type != 'hidden'))
			{
				if (document.myform.password.value == "")
				{
					errormessage = errormessage + "\n Please enter a password.";
				}
				else
				{
					if (fieldName=="password2" && document.myform.password2.type != 'hidden')
					{
						if (document.myform.password.value != document.myform.password2.value)
						{
							errormessage = errormessage + "\n Password fields do not match.";
						}
					}
				}
			}
			if (fieldName=="terms" && document.myform.terms.type != 'hidden')
			{
				if(document.myform.terms.checked == false){
					errormessage = errormessage + "\n You must agree to the terms.";
				}
			}	
			if (fieldName=="maiden" && document.myform.maiden.type != 'hidden')
			{
				if(document.myform.maiden.value == ""){
					errormessage = errormessage + "\n Please input your mother's maiden name.";
				}
			}	
			if (fieldName=="state" && document.myform.state.type != 'hidden')
			{
				if (document.myform.state.options[document.myform.state.selectedIndex].value == "state") {
					errormessage = errormessage + "\n Please input your state.";
				}
			}	
			if (fieldName=="password" && document.myform.password.type != 'hidden')
			{
				if (document.myform.password.value == "") {
					errormessage = errormessage + "\n Please input a password.";
				}
			}	
	
			//**********************************************************************				
			if (errormessage != ""){
				errormessage = "I am sorry, the following error(s) have occured. \n _________________________________________________\n" + errormessage;
				errormessage = errormessage + "\n\n Thank You.";
				
				alreadySubmited = 0;
				return false;
			}else{			
				leaving=0;
				return true;	
				
			}
	
		}
	}else{
		alreadySubmited = 0;
		return false;
	}
}

function BuildFieldString(NewString)
{
	var returnString = '';
	for (i=0; i < document.myform.elements.length; i++)
	{
		var elem = document.myform.elements[i];
		if (elem.type == 'text' || elem.type == 'textarea' || elem.type == 'select-one' || elem.type == 'select-one' || elem.type == 'hidden')
		{
			returnString = returnString + '&' + document.myform.elements[i].name + '=' + escape(document.myform.elements[i].value);
   		}
		else if ((elem.type == 'radio' || elem.type == 'checkbox') && elem.checked == true)
		{
			returnString = returnString + '&' + document.myform.elements[i].name + '=' + escape(document.myform.elements[i].value);
		}
	}
	return returnString;
}
function Redirect()
{
	leaving=0;
	var newwin = null;
	newwin = window.open("./playpage/playpage.cfm","newwin","width=800,height=600,top=1,left=1");
	if (newwin != null)
	{
		newwin.blur();
	}
	self.focus();
	document.myform.DataToCollectNum.value = '';
	document.myform.submit();
}


function checkfieldParam(fieldname,fieldlabel,acceptonly,checkCoreg,bizID){		
	
	var s= new String( );
	characters = new RegExp ("[^A-Za-z .'-]","ig");
	numbers = new RegExp ("[^0-9]","ig");
	numchar = new RegExp ("[^0-9-^A-Za-z .'-]","ig");
	numchar2 = new RegExp ("[^0-9-^A-Za-z.'-]","ig");
	s = document.myform[fieldname].value;
	result = s.search(eval(acceptonly));

	if ( result != -1 ){
		if ((acceptonly == "numchar") || (acceptonly == "numchar2")){
				msg = fieldlabel + " can only contain numbers and characters.";
		}else if( acceptonly == "numbers" ){
			msg = fieldlabel + " can only contain numbers.";
		}else{
			msg = fieldlabel + " can only contain characters.";
		}
	
		document.myform[fieldname].value = s.replace(eval(acceptonly), "");
		
		return false;
	} 
	else
	{	
		if ((document.myform.B4PQuestion) || (document.myform.ARNQuestion) || (document.myform.GatorQuestion))
		{
			var x1 = document.myform.cphone1.value;
			var x2 = document.myform.cphone2.value;
			var x3 = document.myform.cphone3.value;
	
			if (x1.length == 3 && x2.length == 3 && x3.length == 4)
			{	
				if(document.getElementById('Bling')){
					document.getElementById('Bling').style.display="block";
				}
				if(document.getElementById('Bling2')){
					document.getElementById('Bling2').style.display="block";
				}
				if ((document.myform.B4PQuestion) && (document.getElementById('B4PDisc'))){
					document.getElementById('B4PDisc').style.display="block";
				}
				if ((document.myform.ARNQuestion) && (document.getElementById('ARNDisc'))){
					document.getElementById('ARNDisc').style.display="block";
				}
				if(document.getElementById('GatorDisc')){
					document.getElementById('GatorDisc').style.display="block";
				}
				
				return false;
			}
			else
			{
				if(document.getElementById('Bling')){
					document.getElementById('Bling').style.display="none";
				}
				if(document.getElementById('Bling2')){
					document.getElementById('Bling2').style.display="none";
				}
				if ((document.myform.B4PQuestion) && (document.getElementById('B4PDisc'))){
					document.getElementById('B4PDisc').style.display="none";
				}
				if ((document.myform.ARNQuestion) && (document.getElementById('ARNDisc'))){
					document.getElementById('ARNDisc').style.display="none";
				}
				if(document.getElementById('GatorDisc')){
					document.getElementById('GatorDisc').style.display="none";
				}
				return false;
			}
		}	
		
		if ((typeof checkCoreg != 'undefined') && (checkCoreg == 'yes')) {
			var x1 = document.myform.cphone1.value;
			var x2 = document.myform.cphone2.value;
			var x3 = document.myform.cphone3.value;
	
			if ((typeof bizID != 'undefined') && ((bizID == '937') || bizID == '531')) {
				if (x1.length == 3){
					coregFunction('show');
					return false;
				}
			}else {
				if (x1.length == 3 && x2.length == 3 && x3.length == 4){
					coregFunction('show');
					return false;
				}else{
					coregFunction('hide');
					return false;
				}
			}
		}
		return false;		
	}	
	return false;	
}	