
function fillOptions(selectId, selectText, firstNum, lastNum) {
		//Get the maximum number of characters for lastNum
		var lastNumStr = lastNum + '';
		var numChars = lastNumStr.length;
		var optionsHtml = "<option value=''>"+selectText+"</option>";
		for(var i = firstNum; i <= lastNum; i++) {
			var readyNum = "";
			var iStr = i+'';
			for(var j = iStr.length; j < numChars; j++) {
				readyNum += "0";
			}
			readyNum += i;
			optionsHtml += "<option value='"+readyNum+"'>"+i+"</option>";
		}
		$("#"+selectId).html(optionsHtml);
}

function setGender(title) {
		var values = {
			"mr" : "m",
			"mrs" : "f",
			"ms" : "f",
			"miss" : "f"
		};
		
		for(var name in values) {
			if(title == name) {
				document.getElementById("gender").value = values[name];
				break;
			}
		}
}

function updateDob() {
		$("#dob").val($("#dobDay").val() + "/" + $("#dobMonth").val() + "/" + $("#dobYear").val());
}

function alreadyRegistered() {
		if(typeof(signedUp) == "undefined") {
			return false;
		}
		
		for(var id in signedUp) {
			var signedUpEmail = signedUp[id];
			if(signedUpEmail == $("#email").val()) {
				return true;
			}
		}
		return false;
}

function emailExists() {
		if($("#email").val() == '') {
			return false;
		}
		$("#emailExistsError").hide();
		$("#loading_row").show();
		var result = $.ajax({url: "/membersajax/membersajax.html?action=emailexists", data: {"email":$("#email").val()}, async: false, dataType: "json"}).responseText;
		$("#loading_row").hide();
		var returnthis = (result == "true" ? true : false);
		if(returnthis) {
			$("#emailExistsError").fadeIn();
		}
		return returnthis;
}

$(document).ready(function() {
	
    	function removeNonDigits(string) {
    		return string.replace(/[^0-9]/g,'');
    	}

		$('#dobMonth, #dobDay, #dobYear').change(function(){
			updateDob();
		});
		
		$('#s1Next').click(function(){
        var sA = $('#showAddress');
        var pullAddress = true;
        if(sA.size() > 0){
            if(!sA.attr('checked')){
                pullAddress = false;
            }
        }
			if($('#emailExistsError').length > 0){
            ((alreadyRegistered() || !emailExists()) && pullAddress) ? pullAddressesForDivSelect(true) : null;
			}else{
            if(pullAddress){
				pullAddressesForDivSelect(true);
            }else{
                $('#landingForm').submit();
			}
        }
		});
		fillOptions("dobDay", "DD", 1, 31);
		//fillOptions("dobYear", "YY", 1920, 1992);

    	$('#phone').change(function() {
    		$('#phone').val(removeNonDigits($('#phone').val()));
    	});

    	$('#zip').change(function() {
        	$('#zip').val($.trim($('#zip').val()));
    	});

		$.validator.addClassRules({
        	fieldsDOB: {required:true, validateBirth: true}
        });
		
		$("#landingForm").validate({
			errorPlacement: function(error, element) {	
				if($(element).attr("id") == "terms_box"){
					error[0].style.fontSize = "13px";
				}
				else {
					error[0].style.fontSize = "10px";
				}
				if($(element).attr("type") == "radio")
            {
					error[0].style.color = "red";
					error[0].style.fontFamily = "Verdana";
					error[0].style.fontSize = "9px";
					error[0].style.fontWeight = "bold";
				}
				else
				{
					error[0].style.color = "red";
				}
				if($(element).attr("id") == "dobDay" || $(element).attr("id") == "dobMonth" || $(element).attr("id") == "dobYear")
				{
					$("#dobDay").before(error);
					$("#dobDay").before("<BR />");
				}
				else
				{
					$(element).before(error);
					$(element).before("<BR />");
				}
			},
			groups: {
            lidateBirth: "dobDay dobMonth dobYear"
			},
			rules: {
				title: "required",
				firstName: "required",
				lastName: "required",
				zip: {
					required: true,
					zip:true
				},
				terms: "required",
				email: {
					required: true,
					email: true
				},
				phone: "required"
			},
			messages: {
				title: "Please enter your title",
				firstName: "Please enter your first name",
				lastName: "Please enter your last name",
				address1: "Please enter your address",
				city: "Please enter your town",
				zip: {
					required: "Please enter your post code"
				},
				dobDay: {
					required: "Please select your date of birth"
				},
				dobMonth: {
					required: "Please select your date of birth"
				},
				dobYear: {
					required: "Please select your date of birth"
				},
				terms: "You must agree to the terms and conditions",
				email: "Please enter a valid email",
				phone: "Please enter a telephone number"
			}
		});
});

