// Reference javascript.crockford.com/remedial.html String.prototype.trim = function () { return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1"); } // Reference http://www.felgall.com/jstip47.htm function cardval(s) { // remove non-numerics var v = "0123456789"; var w = ""; for (i=0; i < s.length; i++) { x = s.charAt(i); if (v.indexOf(x,0) != -1) w += x; } // validate number j = w.length / 2; if (j < 6.5 || j > 8 || j == 7) return false; k = Math.floor(j); m = Math.ceil(j) - k; c = 0; for (i=0; i 9 ? Math.floor(a/10 + a%10) : a; } for (i=0; i< s.length; i++) { x = s.charAt(i); if (v.indexOf(x,0) != -1) w += x; } return w; } function validateSignupForm() { var msg = new Array(); var i = 0; var msgText = ""; var genderSelected = false; var today = new Date(); var currMonth = today.getMonth() + 1; var currYear = today.getFullYear(); var ccExpiryMonth = document.epcSignup.cc_expiry_month.value; var ccExpiryYear = document.epcSignup.cc_expiry_year.value; if (document.epcSignup.first_name.value.trim() == "") { msg[i++] = "Please enter your first name."; } if (document.epcSignup.last_name.value.trim() == "") { msg[i++] = "Please enter your last name."; } if (document.epcSignup.email.value.trim() == "") { msg[i++] = "Please enter an email address."; } if (document.epcSignup.telephone.value.trim() == "") { msg[i++] = "Please enter a telephone number."; } if (document.epcSignup.address.value.trim() == "") { msg[i++] = "Please enter an address."; } if (document.epcSignup.province.value.trim() == "") { msg[i++] = "Please enter a city, state, or province."; } if (document.epcSignup.postcode.value.trim() == "") { msg[i++] = "Please enter a post code."; } if (document.epcSignup.country.value.trim() == "") { msg[i++] = "Please enter a country."; } for (var j = 0; j < document.epcSignup.gender.length; j++) { if (document.epcSignup.gender[j].checked) genderSelected = true; } if (!genderSelected) { msg[i++] = "Please enter your gender."; } if (document.epcSignup.nationality.value.trim() == "") { msg[i++] = "Please enter your nationality."; } if (isNaN(document.epcSignup.dob_day.value) || isNaN(document.epcSignup.dob_year.value)) { msg[i++] = "Please enter a valid birth date."; } if (!document.epcSignup.is_transfer.checked) { if (document.epcSignup.cc_type.selectedIndex == 0) { msg[i++] = "Please indicate the type of credit card."; } if (!cardval(document.epcSignup.cc_number.value)) { msg[i++] = "Your credit card number appears invalid. Please verify the number and the type of card."; } if ( !isNaN(ccExpiryYear) ) { if (ccExpiryYear < 100) { ccExpiryYear = (+ccExpiryYear) + 2000; } } if ( isNaN(ccExpiryMonth) || isNaN(ccExpiryYear) || ccExpiryYear < currYear || (ccExpiryMonth < currMonth && ccExpiryYear <= currYear) ) { msg[i++] = "Your credit card expiration date is invalid."; } if (document.epcSignup.cc_name.value.trim() == "") { msg[i++] = "Please enter the name on the credit card."; } if (isNaN(document.epcSignup.cc_charge.value.replace(/,/g,"")) || document.epcSignup.cc_charge.value.replace(/,/g,"") <= 0) { msg[i++] = "Please enter the amount to charge on the credit card." + document.epcSignup.cc_charge.value.replace(/,/g,""); } else if ((+getMoneyNumber(document.epcSignup.cc_charge.value)) < (+getMoneyNumber(document.getElementById("minDeposit").innerHTML))) { msg[i++] = "You must charge the minimum amount to the credit card. "; } } if (!document.epcSignup.tnc.checked) { msg[i++] = "You must accept the terms and conditions."; } if (msg.length > 0) { msgText = "Your form could not be processed for the following reasons\n"; for (var j in msg) { msgText += "\n- " + msg[j]; } alert(msgText); return false; } else { document.epcSignup.submit(); return true; } }