var COOKIE_NAME = 'program';
var COptions = { path: '/', expires: 0 };
var pike = "|";
var amp = "&";
var testMode = false;
var tempMessage = "2011 Online CEUs will be posted shortly."

$.validator.setDefaults({
	submitHandler: function() { 
		var inputArr = [];
		var program = null;
		var form = $("#signupForm");
		$(form).find("input[name='program']:checked").each(function(){
			inputArr.push($(this).attr("name")+pike+$(this).val());
			program = $(this).val();
		});
		$(form).find("input:text").each(function(){
				inputArr.push($(this).attr("id")+pike+$(this).val());
		});
		$(form).find("select").each(function(){
			inputArr.push($(this).attr("id")+pike+$(this).val());
		});
		$(form).find("input[name='currMember']:checked").each(function(){
			inputArr.push($(this).attr("name")+pike+$(this).val());
			program = $(this).val();
		});
		inputArr.push("start"+pike+(new Date()));
		//console.debug("inputArr", inputArr);
		$.cookie(COOKIE_NAME, inputArr.join(amp), COptions);
		// change url here
		url = "ceu/program.htm?name="+program;
		url += (jQuery.url.param("test") == 1) ? "&test=1" : "" ;
		//console.debug("new url %s", "program.html?name="+program);
		location.href = url;
	}
});
jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/g, ""); 
	return this.optional(element) || phone_number.length > 9 &&
		phone_number.match(/^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$/);
}, "Please specify a valid phone number");

jQuery.validator.addMethod("ziprange", function(value, element) {
	return this.optional(element) || /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value);
}, "Your ZIP-code does not match the proper format");

jQuery.validator.addMethod(
	"dateITA",
	function(value, element) {
		var check = false;
		var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
		if( re.test(value)){
			var adata = value.split('/');
			var gg = parseInt(adata[1],10);
			var mm = parseInt(adata[0],10);
			var aaaa = parseInt(adata[2],10);
			var xdata = new Date(aaaa,mm-1,gg);
			if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) && aaaa > 1901 )
				check = true;
			else
				check = false;
		} else
			check = false;
		return this.optional(element) || check;
	}, 
	"Please enter a correct date"
);


$(document).ready(function() {
	
	testMode = (jQuery.url.param("test") == 1 || !testMode) ? false : true ;
	
	
	if(!testMode) {
		$("#loadingContent").slideUp(1200, function() {
			$("#mainContent").slideDown(1200);
		});
		
		
		
		// validate signup form on keyup and submit
		$("#signupForm").validate({
			rules: {
				program: {
					required: true	
				},
				fname: {
					required: true,
					minlength: 3
				},
				lname: {
					required: true,
					minlength: 3
				},
				email: {
					required: true,
					email: true
				},
				address: {
					required: true
				},
				phone: {
					required: true,
					phoneUS: true
				},
				cellPhone: {
					required: true,
					phoneUS: true
				},
				state: "required",
				zip: {
					required: true,
					ziprange: true
				},
				certNum: "required",
				currMember: "required",
				lastSocial: {
					required: true,
					digits: true,
					rangelength: [4, 4]
				},
				birthDate: {
					required: true,
					dateITA:true
				}
			},
			messages: {
				program: "Please select a program for testing",
				fname: "Please enter your firstname",
				lname: "Please enter your lastname",
				email: "Please enter a valid email address",
				address: "Please enter a valid address",
				phone: "Please enter a valid phone number",
				cellPhone: "Please enter a valid cell number",
				state: "Please select a state",
				zip: "Please enter a valid zip code",
				lastSocial: "Please enter 4 numbers",
				birthDate: "Please enter valid birthdate"
			}
		});
		$("#zip").mask("99999",{placeholder:" "});
	}
	else {
		$("#mainContent .content").remove();
		$("#loadingContent").slideUp(1200, function() {
			$("#mainContent").append("<h1>"+tempMessage+"</h1>").slideDown(1200);
		});
	}
});

