function validateForm() {
	var msg = "";
	
	// Check the terms and conditions checkbox
	var terms = document.getElementById("bAgree");
	if (!terms.checked) {
		msg += _TermsAndConditionsValidationText;
	} else {
			
		// Validate the firstName
		var firstName = document.getElementById("bAdr1");
		if (firstName.value == "" || firstName.value == firstName.defaultValue ) {
			msg += _FirstNameValidationText + "<br>\n";
		}
		
		// Validate the lastName
		var lastName = document.getElementById("bAdr3");
		if (lastName.value == "" || lastName.value == lastName.defaultValue ) {
			msg += _LastNameValidationText + "<br>\n";
		}
		
		// Validate the streetAddress
		var streetAddress = document.getElementById("bAdr5");
		if (streetAddress.value == "" || streetAddress.value == streetAddress.defaultValue ) {
			msg += _StreetAddressValidationText + "<br>\n";
		}
			
		// Validate the suburb
		var suburb = document.getElementById("bAdr6");
		if (suburb.value == "" || suburb.value == suburb.defaultValue ) {
			msg += _SuburbValidationText + "<br>\n";
		}
	
		// Validate the email
		var email = document.getElementById("bEmail");
		if (email.value != "" && email.value != email.defaultValue ) {
			var emailTester  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if ( !emailTester.test( email.value ) ) {
				 msg += _EmailValidationText + "<br>\n";
			}
		}

		// Validate the telephone
		var telObj = document.getElementById("bTelephone");
		telObj.value = removeNonNumericCharacters(telObj.value);
		if (telObj.value != "" && telObj.value != telObj.defaultValue ) {
			var phoneNumberTester = /(^1300\d{6}$)|(^1800|1900|1902\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\d{4}$)|(^04\d{2,3}\d{6}$)/;
			if ( !phoneNumberTester.test( telObj.value ) ){
				 msg += _TelephoneValidationText + "<br>\n";
			}
		}
		
		// Validate the zip code
		var zipObj = document.getElementById("bZip");
		zipObj.value = removeNonNumericCharacters(zipObj.value);
		if (zipObj.value != "" && zipObj.value != zipObj.defaultValue) {
		var zipTester = /^(((2|8|9)\d{2})|((02|08|09)\d{2})|([1-9]\d{3}))$/;
			if ( !zipTester.test( zipObj.value ) ){
				msg += _ZipCodeValidationText + "<br>\n";
			}
		}
	} 

	if (msg != "") {
		document.getElementById("errorMessageText").innerHTML = "<b>" + _ErrorMessageText + "</b><br><br>" + msg;
		document.getElementById("errorMessage").style.visibility = "visible";
		return false;
	}

	return true;
}

function validateStep2() {
	var msg = "";
	
	var cc_hn = document.getElementById("cc_holder_name");
	var cc_no = document.getElementById("cc_no");
	
	if (cc_hn.value == "" || cc_hn.value == cc_hn.defaultValue)
		msg += _CreditCardHolderNameValidationText + "<br>\n";

	if (cc_no.value.length != 16 || !validModule10(cc_no.value))
		msg += _CreditCardNumberValidationText + "<br>\n";

	var monthform = document.getElementsByName("cc_expire_month").value;
	var yearform = document.getElementsByName("cc_expire_year").value;
	if (!validateDate(monthform, yearform))
		msg += _ExpirationDateValidationText + "<br>\n";
       
	if (msg != "") {
		document.getElementById("errorMessageText").innerHTML = "<b>" + _ErrorMessageText + "</b><br><br>" + msg;
		document.getElementById("errorMessage").style.visibility = "visible";
		return false;
	}

	return true;
}

function validateDate(objMonth, objYear) {
	var todayDate = new Date();
	var year = todayDate.getFullYear();
	var month = todayDate.getMonth() + 1;
	
	var strSelectedDate = objYear + objMonth;
	var strTodayDate = year + (month < 10 ? "0" + month : month);
	
	if (parseInt(strSelectedDate, 10) < parseInt(strTodayDate, 10))
		return false;

	return true;
}

function removeNonNumericCharacters(inputText) {
	var tempText = "";
	for (i = 0; i <= inputText.length; i++) {
		var tempCharacter = inputText.charAt(i);
		if ((!isNaN(tempCharacter)) && (tempCharacter != " ")) {
			tempText += tempCharacter;
		}
	}
	return tempText;
}

function validModule10(ccNumber) {
	ccNumber = ccNumber + "";
	sum = 0;
	var paren = 0;
	try {
		for (i = ccNumber.length; i > 0; i--) {
			broj = parseInt(ccNumber.charAt(i - 1), 10);
			if (paren) {
				broj = broj * 2;
				sum += parseInt(broj / 10);
				sum += broj % 10;
			} else {
				sum += broj;
			}
			paren = paren ^ 1;
		}
		if ((sum % 10) == 0) {
			return true;
		} else {
			return false;
		}
	}
	catch (e) {
		return false;
	}
}
