﻿var chosen = "";
function blank(){
	for(i = 0; i < 50000; i++){}
}
function hideit(){
	var a = document.getElementById('catalog');
	var b = document.getElementById('catalog_label');
	len = document.signup.member_type.length;
	for (i = 0; i <len; i++) {
		if (document.signup.member_type[i].checked){
			chosen = document.signup.member_type[i].value;
		}
	}
	if(chosen == "5"){
		a.style.visibility = 'visible';
		b.style.visibility= 'visible';
	}else{
		a.style.visibility = 'hidden';
		b.style.visibility = 'hidden';				
	}
}
function ccmask(){
	var cc = document.getElementById('cc');
	if(cc.value == "American Express"){
   	$("#cc_number").mask("9999 999999 99999");
	}else{
		$("#cc_number").mask("9999 9999 9999 9999");
	}
}
$(document).ready(function(){
	$("a#inline").fancybox({'hideOnContentClick': true,'autoDimensions': true});
	$("#phone").mask("(999) 999-9999");
	$("#zip").mask("99999");
	pic1 = new Image(16, 16);
	pic1.src="../images/loader.gif";
	$("#username").change(function() { 
		var usr = $("#username").val();
		if(usr.length >= 4){
			$("#status").html('<img src="../images/loader.gif" align="absmiddle">&nbsp;<font size="2">Checking availability...</font>');
			$.ajax({
				type: "POST",
				url: "../username_check.php",
				data: "username="+ usr,
				success: function(msg){ 
					$("#status").ajaxComplete(function(event, request, settings){
						if(msg == 'OK'){
							$("#username").removeClass('object_error'); // if necessary
							$("#username").addClass("object_ok");
							$(this).html('&nbsp;<img src="../images/tick.gif" align="absmiddle">&nbsp;<font size="2">Username is available.</font>');
						}else{
							$("#username").removeClass('object_ok'); // if necessary
							$("#username").addClass("object_error");
							$(this).html(msg);
						}  
					});
				} 
			}); 
		}else{
			$("#status").html('<font color="red" size="2">' + 'Username should have <strong>4</strong> or more characters.</font>');
			$("#username").removeClass('object_ok'); // if necessary
			$("#username").addClass("object_error");
		}
	});
	
	// Validation
	if(chosen == "5" || chosen == ""){
		var validator = $("#signup").validate({
			rules: {
				first_name: {
					required: true,
					minlength: 2
				},
				last_name: {
					required: true,
					minlength: 2
				},
				address1: {
					required: true,
					minlength: 5
				},
				city: {
					required: true,
					minlength: 3
				},
				state: {
					required: true,
					state_selected: true
				},
				zip: {
					required: true,
					minlength: 5
				},
				phone: {
					required:true,
					phoneUS: true
				},
				email: {
					required: true,
					email: true
				},
				username: {
					required:true,
					minlength: 5
				},
				password: {
					required: true,
					minlength: 8,
					pwcheck: true
				},
				confirmPassword: {
					required: true,
					equalTo: "#password"
				},
				catalog: {
					required: true,
					catalog_selected: true
				},
				cc: {
					required: true,
					cc_selected: true
				},
				cc_number: {
					required: true
					/*creditcard: true*/
				},
				security_code: {
					required: true,
					digits: true	
				},
				terms: "required"
			},
			errorElement: "div",
			errorPlacement: function(error, element){
		    error.appendTo(element.parent("td").next("td"));
	
	   	},
			messages: {
				first_name: {
					required: "Please enter your first name.",
					minlength: "You must enter 2 or more letters."
				},
				last_name: {
					required: "Please enter your last name.",
					minlength: "You must enter 2 or more letters."
				},
				address1: {
					required: "Please enter your address.",
					minlength: "You must enter 5 or more letters."
				},
				city: {
					required: "Please enter your city.",
					minlength: "You must enter 3 or more letters."
				},
				state: {
					required: "Please select your state.",				
					state_selected: "Please select your state."
				},
				zip: {
					required: "Please enter your zip.",
					minlength: "You must enter 5 or more letters."
				},
				email: {
					required: "Please enter your email address.",
					email: "Please enter a valid email addresse."
				},
				phone: {
					required: "Please enter your phone number.",
					minlength: "You must enter 5 or more letters."
				},
				username: {
					required:"Please enter your desired username.",
					minlength:  "You must enter 5 or more letters."
				},
				catalog: {
					required:  "You must select a catalog.",
					catalog_selected: "You must select a catalog."
				},
				password: {
					required: "Please enter a password.",
					minlength: "You must enter 8 or more letters.",
					pwcheck: 'Please enter a password with 8-15 characters, with at least one letter and one number.'
					//pwcheck: "Please enter password that has at least 8 characters, <br />at least one one lower case letter, one upper case letter, one digit, <br />and one special character. Valid special characters are: @ # $ % ^ & + ="
				},
				confirmPassword: {
					required: "Please enter the same password you entered before.",
					equalTo: "Please enter the same password you entered before."
				},
				cc: {
					required: "Please select a credit card.",
					cc_selected: "Please select a credit card."
				},
				cc_number: {
					required: "Please enter your credit card number."
					/*creditcard: "Please enter a valid credit card number."*/
				},
				security_code: {
					required: "Please enter the security code of your credit card.",
					digits: "Please use only numbers."
				},
				terms: {
					required: "You must accept the terms and conditions to continue."
				}
			}
		});
	}else{
		var validator = $("#signup").validate({
			rules: {
				first_name: {
					required: true,
					minlength: 2
				},
				last_name: {
					required: true,
					minlength: 2
				},
				address1: {
					required: true,
					minlength: 5
				},
				city: {
					required: true,
					minlength: 3
				},
				state: {
					required: true,
					state_selected: true
				},
				zip: {
					required: true,
					minlength: 5
				},
				phone: {
					required:true,
					phoneUS: true
				},
				email: {
					required: true,
					email: true
				},
				username: {
					required:true,
					minlength: 5
				},
				password: {
					required: true,
					minlength: 8,
					pwcheck: true
				},
				confirmPassword: {
					required: true,
					equalTo: "#password"
				},
				cc: {
					required: true,
					cc_selected: true
				},
				cc_number: {
					required: true,
					creditcard: true
				},
				security_code: {
					required: true,
					digits: true	
				},
				terms: "required"
			},
			errorElement: "div",
			errorPlacement: function(error, element){
		    error.appendTo(element.parent("td").next("td"));
	
	   	},
			messages: {
				first_name: {
					required: "Please enter your first name.",
					minlength: "You must enter 2 or more letters."
				},
				last_name: {
					required: "Please enter your last name.",
					minlength: "You must enter 2 or more letters."
				},
				address1: {
					required: "Please enter your address.",
					minlength: "You must enter 5 or more letters."
				},
				city: {
					required: "Please enter your city.",
					minlength: "You must enter 3 or more letters."
				},
				state: {
					required: "Please select your state.",
					state_selected: "Please select your state."
				},
				zip: {
					required: "Please enter your zip.",
					minlength: "You must enter 5 or more letters."
				},
				email: {
					required: "Please enter your email address.",
					email: "Please enter a valid email addresse."
				},
				phone: {
					required: "Please enter your phone number.",
					minlength: "You must enter 5 or more letters."
				},
				username: {
					required:"Please enter your desired username.",
					minlength:  "You must enter 5 or more letters."
				},
				password: {
					required: "Please enter a password.",
					minlength: "You must enter 8 or more letters.",
					pwcheck: 'Please enter a password that has 8-15 characters, with at least one letter and one number'
					//pwcheck: "Please enter password that has at least 8 characters, <br />at least one one lower case letter, one upper case letter, one digit, <br />and one special character. Valid special characters are: @ # $ % ^ & + ="
				},
				confirmPassword: {
					required: "Please enter the same password you entered before.",
					equalTo: "Please enter the same password you entered before."
				},
				cc: {
					required: "Please select a credit card.",
					cc_selected: "Please select a credit card."
				},
				cc_number: {
					required: "Please enter your credit card number.",
					creditcard: "Please enter a valid credit card number."
				},
				security_code: {
					required: "Please enter the security code of your credit card.",
					digits: "Please use only numbers."
				},
				terms: {
					required: "You must accept the terms and conditions to continue."
				}
			}
		});
	}
	jQuery.validator.addMethod("state_selected", function(value, element) {
    return this.optional(element) || (parseFloat(value) != "Select State...");
	}, "Please select a state.");
	
	jQuery.validator.addMethod("catalog_selected", function(value, element) {
    return this.optional(element) || (parseFloat(value) != "Select One...");
	}, "Please select a catalog.");
	
	jQuery.validator.addMethod("cc_selected", function(value, element) {
    return this.optional(element) || (parseFloat(value) != "Credit Card:");
	}, "Please select a credit card.");	

	$.validator.addMethod('pwcheck', function (value) { 
	return /^.*(?=.{8,})(?=.*\d)(?=.*[a-zA-Z]).*$/.test(value); 
	}, 'Please enter password that has 8 to 15 characters, with at least one letter and one number');
	
	
});
	
//old:
//return /^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$/.test(value);
//'Please enter password that has at least 8 characters, at least one one lower case letter, one upper case letter, one digit and one special character. Valid special characters are: @ # $ % ^ & + =');




