Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var reg = {
- //The Fields that we need to validate
- fields: {
- "First Name": { name: "s_firstname", minChar: "3", regEx: /^.{3,}$/ },
- "Last Name": { name: "s_lastname", minChar: "3", regEx: /^.{3,}$/ },
- "Username": { name: "s_username", minChar: "3", maxChar: "20", regEx: /^[A-Za-z0-9_-]{3,20}$/ },
- "Password": { name: "s_password", minChar: "6", maxChar: "16", regEx: /^.{6,16}$/ },
- "Email": { name: "s_email", regEx: /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i },
- "Birthday Month": { name: "bmonth" },
- "Birthday Day": { name: "bday" },
- "Birthday Year": { name: "byear" }
- },
- // "Username": {name: "s_username", minChar: "3", maxChar: "20", regEx: /^[A-Za-z0-9_-]{3,20}$/ },
- // "Password": { name: "s_password", minChar: "6", maxChar: "16", regEx: /^.{6,16}$/ },
- //Populate reg.fields[""].ele
- populate: function() {
- for(key in reg.fields) {
- reg.fields[key].ele = $("*[name=" + reg.fields[key].name + "]");
- }
- },
- //To loop through all the fields and make sure it is not empty
- validate: function()
- {
- $("#errorTxt").html("");
- $("#error_message").hide(0);
- for(key in reg.fields) {
- //Get current field object from loop
- var fieldObj = reg.fields[key];
- //Get the current field from the loop
- var field = fieldObj.ele;
- //Set the trimmed value
- var fieldValue = jQuery.trim(field.attr("value"));
- //It's a text field
- if(field.attr("type") == "text" || field.attr("type") == "password") {
- //Check if empty value
- if(fieldValue == "")
- {
- //It's empty, let's show a error to the user
- reg.error(key + " is empty. Please fill it in.", field);
- //Break out of loop and return false
- return false;
- } else if (!fieldObj.regEx.test(fieldValue)) { //Check against regExp
- //Check to see if there is a min or max char specified
- if(fieldObj.minChar || fieldObj.maxChar)
- {
- //Build char limit str
- var charStr = (fieldObj.minChar) ? " must be " + fieldObj.minChar + " chars" : "";
- charStr += (charStr == "" && fieldObj.maxChar) ? " must be " + fieldObj.maxChar + " chars" : (fieldObj.maxChar) ? " to " + fieldObj.maxChar + " characters" : "";
- //Show char error
- reg.error(key + charStr + ".", field);
- //Break out of loop and return false
- return false;
- }
- else { //Assume the problem is not a size issue but a validation issue
- reg.error(key + " is not valid.", field);
- //Break out of loop and return false
- return false;
- }
- }
- } else { //It's not a text field. We'll assume it's a select box
- if(fieldValue == "-1") {
- reg.error("Please select your " + key + ".", field);
- //Break out of loop and return false
- return false;
- }
- }
- }
- //Most of the checks are now passed, let's do one of the final steps; determine how old the user is
- //The current date obj
- var currentDate = new Date();
- //Birthday month
- var bDayMonth = reg.fields["Birthday Month"].ele.attr("value");
- //Birthdate
- var bDate = reg.fields["Birthday Day"].ele.attr("value");
- //Birthday Year
- var bDayYear = reg.fields["Birthday Year"].ele.attr("value");
- //Birthday date object
- var bDayObj = new Date(bDayMonth + ", " + bDate + ", " + bDayYear);
- //Let's minus the bDay date obj from the current date obj, and divide it down to years
- var userYearAge = (currentDate - bDayObj)/1000/60/60/24/365;
- //Check if the user is over 13
- if (userYearAge < 14) {
- reg.error("Sorry, you are not eligible to register on -.", reg.fields["Birthday Month"].ele);
- //Break out of loop and return false
- return false;
- } else { //All checks have passed except the "In Use" username/email check, which is the final check
- reg.checkUse();
- }
- return true;
- },
- //Check if email or username is in use
- checkUse: function()
- {
- var usernameValue = reg.fields["Username"].ele.attr("value");
- var emailValue = reg.fields["Email"].ele.attr("value");
- var firstnameValue = reg.fields["First Name"].ele.attr("value");
- var lastnameValue = reg.fields["Last Name"].ele.attr("value");
- var passwordValue = reg.fields["Password"].ele.attr("value");
- var bDayMonth = reg.fields["Birthday Month"].ele.attr("value");
- var bDayDay = reg.fields["Birthday Day"].ele.attr("value");
- var bDayYear = reg.fields["Birthday Year"].ele.attr("value");
- $.ajax({
- type: "POST",
- url: "/home/ax",
- dataType: "text",
- data: "action=registeruser&username=" + usernameValue + "&email=" + emailValue + "&firstname=" +
- firstnameValue + "&lastname=" + lastnameValue + "&password=" + passwordValue +
- "&bmonth=" + bDayMonth + "&bday=" + bDayDay + "&byear=" + bDayYear,
- success: function (inUse) {
- var usernameEle = reg.fields["Username"].ele;
- var emailEle = reg.fields["Email"].ele;
- switch(inUse)
- {
- case "sweet":
- reg.register();
- break;
- case "username":
- reg.error("The username you picked is already in use.", usernameEle);
- break;
- case "email":
- reg.error("The email you used is already registered.", emailEle);
- break;
- case "both":
- reg.error("The username AND email you used is already registered.", usernameEle);
- break;
- case "validate":
- reg.error("Unable to validate. Please check your information.", usernameEle);
- break;
- }
- }
- });
- },
- register: function()
- {
- location.href = '/filldetails';
- },
- //To show the error to the user
- error: function(str, field)
- {
- $("#errorTxt").html(str);
- $("#error_message").show(400);
- field.focus();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement