/* * Christian Bryan * christianbryan@gmail.com * March 19, 2007 * */ // This function toggles the display of element named 'cc_area' in the calling document. // Takes 'on' and 'off' as input. The function is case sensitive. function display_cc_area(toggle) { var cc_area = document.getElementById("cc_area"); var pp_area = document.getElementById("pp_area"); if(toggle == "on") { cc_area.style.display = "block"; pp_area.style.display = "none"; } else if(toggle == "off") { cc_area.style.display = "none"; pp_area.style.display = "block"; } else { alert("'display_cc_area()' was passed an unknown value. 'on' and 'off' are the only valid values."); } } // Function submits a form named 'daisy_chain_form' in the calling document. function start_daisy_chain() { document.daisy_chain_form.submit(); } function validate_form() { // Reset any errors that were displayed. clear_errors(); // General use variables. var fields_missing = 0; var fields_malformed = 0; var num_alerts = fields_missing + fields_malformed; // Grab all of the fields we want to validate. var first_name = document.getElementById("first_name"); var last_name = document.getElementById("last_name"); var email = document.getElementById("email"); var shirt = document.getElementById("shirt_size"); var street = document.getElementById("dataStreet"); var city = document.getElementById("dataCity"); var region = document.getElementById("dataState"); var zip = document.getElementById("dataZip"); var country = document.getElementById("dataCountry"); // Remember to make sure that a credit card type is entered. // var cc_number = document.getElementById("cc_number"); // var cc_exp_month = document.getElementById("ccExpMonth"); // var cc_exp_year = document.getElementById("ccExpYear"); // Get the error fields we want to show/hide. var first_name_err = document.getElementById("first_name_miss"); var last_name_err = document.getElementById("last_name_miss"); var email_err = document.getElementById("email_err"); var email_miss = document.getElementById("email_miss"); var shirt_size_miss = document.getElementById("shirt_size_miss"); var no_pay_meth = document.getElementById("no_pay_meth"); // Check the first few fields. if(first_name.value == "") { first_name_err.style.display = "block"; fields_missing++; } if(last_name.value == "") { last_name_err.style.display = "block"; fields_missing++; } if(email.value == "") { email_miss.style.display = "block"; fields_missing++; } else if(is_valid_email(email.value) == false) { email_err.style.display = "block"; fields_malformed++; } if(shirt.value == "none") { shirt_size_miss.style.display = "block"; fields_missing++; } if(!document.pcf_form.payment_type[0].checked && !document.pcf_form.payment_type[1].checked) { fields_missing++; } if(document.pcf_form.payment_type[1].checked) { // if(street.value = "") // { // fields_missing++; // } // if(city.value = "") // { // fields_missing++; // } // if(region.value = "") // { // fields.missing++; // } // if(zip.value = "") // { // fields.missing++; // } // else if(zip.value.length > 5) // { // fields_malformed++; // } // if(country.value = "") // { // fields.missing++; // } } // alert(fields_missing); // alert(fields_malformed); // Exit strategy. if((fields_missing + fields_malformed) > 0) { document.getElementById("error_box").style.display = "block"; if(fields_missing > 0) { document.getElementById("missing_miss").style.display = "block"; } if(fields_malformed > 0) { document.getElementById("error_err").style.display = "block"; } return false; } else { return true; } } function is_valid_email(str) { return (str.indexOf(".") > 2) && (str.indexOf("@") > 0); } function check_cc_num(cc_num) { var CardNumber = argc > 0 ? argv[0] : this.cardnumber; var no_digit = CardNumber.length; var oddoeven = no_digit & 1; var sum = 0; for(var count = 0; count < no_digit; count++) { var digit = parseInt(CardNumber.charAt(count)); if (!((count & 1) ^ oddoeven)) { digit *= 2; if (digit > 9) digit -= 9; } sum += digit; } if(sum % 10 == 0) { return true; } else { return false; } } function clear_errors() { // Hide the containers document.getElementById("error_box").style.display = "none"; document.getElementById("missing_miss").style.display = "none"; document.getElementById("error_err").style.display = "none"; // Hide the missing element errors. document.getElementById("first_name_miss").style.display = "none"; document.getElementById("last_name_miss").style.display = "none"; document.getElementById("shirt_size_miss").style.display = "none"; document.getElementById("email_miss").style.display = "none"; document.getElementById("dataStreet_miss").style.display = "none"; document.getElementById("dataCity_miss").style.display = "none"; document.getElementById("dataState_miss").style.display = "none"; document.getElementById("dataCountry_miss").style.display = "none"; document.getElementById("ccExpYear_miss").style.display = "none"; document.getElementById("ccExpMonth_miss").style.display = "none"; document.getElementById("cc_miss").style.display = "none"; // Hide the malformed field errors. document.getElementById("email_err").style.display = "none"; document.getElementById("cc_err").style.display = "none"; document.getElementById("dataZip_err").style.display = "none"; }