// JavaScript Document

function togLogoUpload(showOrHide){
	if(showOrHide == 'show'){
		document.getElementById('logoUpload').style.display = 'inline';
	} else if(showOrHide == 'hide') {
		document.getElementById('logoUpload').style.display = 'none';
	} else {
		alert('Problem Toggling the logo upload area');
	}
return false;
}//end togUploadLogo()

function chkEmail(obj){
	var x = obj.value;var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) {
		return 1;
	} else {
	return 0;
	}
}

function isValidCreditCardNumber(cardNumber, cardType){
	var isValid = false;
	var ccCheckRegExp = /[^\d ]/;
	isValid = !ccCheckRegExp.test(cardNumber);
	if (isValid){
		  var cardNumbersOnly = cardNumber.replace(/ /g,"");
		  var cardNumberLength = cardNumbersOnly.length;
		  var lengthIsValid = false;
		  var prefixIsValid = false;
		  var prefixRegExp; 
		  switch(cardType){
			case "MasterCard":
			  lengthIsValid = (cardNumberLength == 16);
			  break;
			case "Visa":
			  lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
			  break;
			case "Amex":
			  lengthIsValid = (cardNumberLength == 15);
			  break;
			default:
			  alert("Card type not found");
		  }
		isValid = lengthIsValid;
	}
	if (isValid){
	  	var numberProduct;
	  	var numberProductDigitIndex;
	  	var checkSumTotal = 0;
		for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--){
			checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
			digitCounter--;
			numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
				for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++){
				  checkSumTotal += 
				parseInt(numberProduct.charAt(productDigitCounter));
				}
		}
	isValid = (checkSumTotal % 10 == 0);
	}
	return isValid;
} // end isValidCreditCardNumber()

function checkAndSubmit(formID){
	if(checkData(formID)){
		document.getElementById(formID).submit();
	}
}

function checkData(formID){
	var pZip = /^\d{5}$/;
	if (document.getElementById(formID).title.value.length ==0) {
		document.getElementById(formID).title.focus();
		alert("Please enter the name of your site or your company name.");
		return false;
	}
	/*if (document.getElementById(formID).website.value.length ==0){
		document.getElementById(formID).website.focus();
		alert("Please enter a URL (web address) for your site.\ne.g. www.hamptons.com");
		return false;
	}*/
	if (document.getElementById(formID).description.value.length ==0){
		document.getElementById(formID).description.focus();
		alert("Please enter a short (30 words or less) description for your site.");
		return false;
	}
	if (document.getElementById(formID).address.value.length ==0){
		document.getElementById(formID).address.focus();
		alert("Please enter a contact address.");
		return false;
	}
	if (document.getElementById(formID).city.value.length ==0){
		document.getElementById(formID).city.focus();
		alert("Please enter a contact city.");
		return false;
	}
	if (document.getElementById(formID).state.value.length ==0){
		document.getElementById(formID).state.focus();
		alert("Please enter a contact state.");
		return false;
	}
	if (pZip.test(document.getElementById(formID).zip.value)==0){
		document.getElementById(formID).zip.focus()
		alert("The zip code you entered is invalid.\nIt should contain exactly 5 digits.");
		return false;
	}

	/*if (document.getElementById(formID).phonePart1.value.length ==0){
		document.getElementById(formID).phonePart1.focus();
		alert("Phone part 1 is problematic.");
		return false;
	}
	if (document.getElementById(formID).phonePart2.value.length ==0){
		document.getElementById(formID).phonePart2.focus();
		alert("Phone part 2 is problematic.");
		return false;
	}
	if (document.getElementById(formID).phonePart3.value.length ==0){
		document.getElementById(formID).phonePart3.focus();
		alert("Phone part 3 is problematic.");
		return false;
	}*/
	if(document.getElementById(formID).email.value != '' && chkEmail(document.getElementById(formID).email) == 0){
		alert("Please enter a valid email address.");
		return false;
	}

	if (document.getElementById(formID).subCategory.value == 0){
		document.getElementById(formID).subCategory.focus();
		alert("Please choose the category that best fits your site.");
		return false;
	}
	if (document.getElementById(formID).town.value ==0){
		document.getElementById(formID).town.focus();
		alert("Please choose the town that best fits your site.");
		return false;
	}
	/*if((document.getElementById(formID).duration[0].checked==false)&&
		(document.getElementById(formID).duration[1].checked==false)){
		document.getElementById(formID).duration[0].focus();
		alert("Please enter a duration for your site to be listed with us.");
		return false;
	}*/
	if (document.getElementById(formID).Card_Name.value.length ==0){
		document.getElementById(formID).Card_Name.focus();
		alert("Please enter the cardholder's name (exactly as it appears on card).");
		return false;
	}
	if (document.getElementById(formID).Card_Type.value.length ==0){
		document.getElementById(formID).Card_Type.focus();
		alert("Please enter the credit card type.");
		return false;
	}
	if (document.getElementById(formID).Card_Number.value.length ==0){
		document.getElementById(formID).Card_Number.focus();
		alert("Please enter your credit card number.");
		return false;
	} else {
		goodcard=isValidCreditCardNumber(document.getElementById(formID).Card_Number.value,document.getElementById(formID).Card_Type.value);
		if (goodcard==0){
		  document.getElementById(formID).Card_Number.focus();
		  alert("Please Enter a valid Credit Card Number");
		  return false;
		}
	}
	if (document.getElementById(formID).Exp_Month.value == 0){
		document.getElementById(formID).Exp_Month.focus();
		alert("Please enter the month your credit card expires.");
		return false;
	}
	if (document.getElementById(formID).Exp_Year.value == 0){
		document.getElementById(formID).Exp_Year.focus();
		alert("Please enter the year your credit card expires.");
		return false;
	}

	if (document.getElementById(formID).Contact_Address.value.length ==0){
		document.getElementById(formID).Contact_Address.focus();
		alert("Please enter Billing Address.");
		return false;
	}

	if (document.getElementById(formID).Contact_City.value.length ==0){
		document.getElementById(formID).Contact_City.focus();
		alert("Please enter Billing City.");
		return false;
	}

	if (document.getElementById(formID).Contact_State.value.length ==0){
		document.getElementById(formID).Contact_State.focus();
		alert("Please enter Billing State.");
		return false;
	}

	if (document.getElementById(formID).Contact_Zip.value.length ==0){
		document.getElementById(formID).Contact_Zip.focus();
		alert("Please enter Billing Zip.");
		return false;
	}

return true;
	
}