/* 
// CREATE ACCOUNT 
*/
var pre_email, pre_age, create_account_dialog;

$(function() {
	pre_email	= $("#pre-email");
	pre_age		= $("#pre-age");
	
	$(".message").hide();
	wrap_buttons();
	
	//CREATE DIALOG CONTAINER
	create_account_dialog 	= $('<div/>');

	// FORM TOOLTIPS
	$('.peek-a-boo').tooltip({
		position: "top center",
		effect	: "slide",
		offset 	: [15, -108],
		tipClass: "tooltip-right-tip"
	});
	
	// BUTTON CLICKS
	$("#get-started")
		.click(function () {
			recordOutboundLink("",location.pathname,"Let's get started");
			//VALIDATION
			if(pre_email.val() != "" && pre_age.val() != "") {
				if(validateEmail(pre_email.val())) {
					if(validateAge(pre_age.val())) {
						$('.sign-up').block({
							message : "Checking system..."
						});
						//check if email address exists in system
						$.ajax( {
							url: 	"/make-magic/api/account/validate_email?email=" + pre_email.val() + "&insert_email=1",
							dataType: 'json',
							success: function(data){
								if(data.valid) {
									
									$('.sign-up').unblock();
									//load create account view into dialog
									create_dialog();
									return false;
								} else {
									$('.sign-up').unblock();
									updateMessage(data.error);
								}
							}
						})
					} else {
						updateMessage("Please enter a valid number.");
					}
				} else {
					updateMessage("Please enter a valid email address.");
				}
			} else {
				updateMessage("Please complete the form to continue.");
			}
		});
	
	$('#sign-up').live('click', function() {
		recordOutboundLink("","Login","Let's get started");
		create_dialog();
	});
	
	$('#home-video-button').live('click', function() {
		recordOutboundLink("","Home","Video");
	});
	
	
	$("#create-account").live('click',function(){
		recordOutboundLink("","Create Account","Let's Go");
		var $inputs = $('.placeholder');
		$inputs.trigger('focus.placeholder');
		if($(".create-account form[name=create-account]").valid()) {
			// block ui after clicking
			$('.ui-dialog-content').block({
				message : "Creating account..."
			});
			$.ajax( {
				type: 	'post',
				url: 	"/make-magic/api/account/create_user",
				data: {
						first_name: 		$('input[name=first_name]').val(),
						last_name: 			$('input[name=last_name]').val(),
						country: 			$('select[name=country]').val(),
						email: 				$('input[name=email_create]').val(),
						password: 			$('input[name=confirm_password]').val(),
						dob:				$('select[name=year]').val() + "-" + $('select[name=month]').val() + "-" + $('select[name=day]').val(),
						gender: 			$('input[name=gender]:checked').val(),
						zip: 				$('input[name=zip]').val(),
						work_optional_age: 	$('input[name=age]').val()
					},
				success: function(data) {
					$('#dialog-form').fadeOut('1000',function(){
						$(this).load('/make-magic/popups/index/thank_you/' + $('input[name=first_name]').val() + '/' + data.user_key, function(){
							$(this).css('paddingTop', '100px').fadeIn('1000');
							$('input[name=age]').attr('disabled', 'disabled');
							$('.ui-dialog-content').unblock();
							topBar(data.valid);
						})
					})
				},
				error: function(data) { 
					$('.ui-dialog-content').unblock();
					topBar("There was an error with your request."); 
				}
			});
			return false;
		}
		$inputs.trigger('blur.placeholder');
	});		
});

// CREATE ACCOUNT DIALOG
function create_dialog() {
	create_account_dialog
		.load('/make-magic/popups/create_account', function() {
			create_account_dialog.dialog({
				autoOpen: true,
				height: 500,
				width: 760,
				modal: true,
				resizable: false,
				dialogClass: "create-account",
				open: function() {
					$("input[name=first_name]").blur();
					$("input[name=email_create]").focus().val(pre_email.val()).blur();
					$("input[name=age]").focus().val(pre_age.val()).blur();
				},
				close: function() {
					create_account_dialog.dialog('destroy');
				}
			})
			.before('<a class="close-button">Close</a>');
			initialize_create_account();
		});
}

//INITIALIZE FORM
function initialize_create_account() {
	$('input.text').placeholder();
	wrap_buttons();
	//RE-INITIALIZE TOOLTIPS
	$("span.tip").tooltip({
		position: "top center",
		effect: 'slide',
		offset: [15, 15]
	});

	var container = $('div.errors');
	
	//VALIDATION
	var result = false;
	$.validator.addMethod('check_email',
		function(value){
			$.ajax( {
				url: 		"/make-magic/api/account/validate_email?email=" + value,
				dataType: 	'json',
				async:		false,
				success: function(data){
					result = (data.valid) ? true : false;
				}
			})
			return result;
		},
		"That email address is already in the system"
	);
	
	$(".create-account form[name=create-account]").validate({
		focusInvalid: 			false,
		errorContainer: 		container,
		errorLabelContainer: 	$("ul", container),
		wrapper: 				'li',
		ignoreTitle:			true,
		errorPlacement: function(error, element) {
			if (element.attr("name") == "month" || element.attr("name") == "day" || element.attr("name") == "year") {
				error.append(container);
			} else {
				error.append(container);
			}
			error.addClass('message').slideDown('fast');
        },
		groups: { 
			birthdate: "month day year" 
		},
		rules: {
			first_name: 		{ required:true, minlength:2 },
			last_name: 			{ required:true, minlength:2 },
			country:			{ required:true },
			zip: {
				required: function() { return $('select[name=country]').val() == 'US'; },
				minlength: function() { if($('select[name=country]').val() == 'US') { return 5; } else { return 0; } },
				maxlength: function() { if($('select[name=country]').val() == 'US') { return 5; } else { return 10; } }
			},
			gender:				{ required:true },
			email_create:		{ required:true, email:true, check_email:true },
			password:			{ required:true },
			confirm_password:	{ required:true, equalTo:"#password" },
			month:				{ required:true },
			day:				{ required:true },
			year:				{ required:true },
			age:				{ required:true, digits:true },
			terms:				{ required:true }
		},
		messages: {
			first_name:			"Please enter your first name.",
			last_name:			"Please enter your last name.",
			country:			"Please select a country.",
			zip:				{required: "Please enter a valid zip code.", minlength:"Zip code must be 5 digits.", maxlength: "Zip code must only be 5 digits."},
			gender:				"Please select your gender.",
			email_create:		{required: "Please enter an email address", email:"Please enter a valid email address."},
			password:			"Please enter a password.",
			confirm_password:	{required: "Please confirm your password.", equalTo: "Passwords must match."},
			month:				"Please enter your birthdate.",
			day:				"Please enter your birthdate.",
			year:				"Please enter your birthdate.",
			age:				{required: "Please enter an age.", digits: "Age must be a valid number"},
			terms:				"Please accept the terms."
		}
	});
	
	//Set up ajax call for resend email link on thank you view
	$(".resend_email").live("click", 	function () {
		var key = $(this).attr("key");
		
		$.ajax({
			type: 		'post',		
			url: 		"/make-magic/api/account/resend_email/",
			data: 		{ user_key: key },
			dataType: 	'json',
			async:		false,
			success: function(data){
				topBar('Email sent');
			}
		});
	});
}

//VALIDATION FUNCTIONS
function updateMessage(txt) {
	$(".message").html(txt).fadeIn('slow').delay(3000).fadeOut('slow');
}

function validateEmail($email) {
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	if(!emailReg.test($email)) {
		return false;
	} else {
		return true;
	}
}

function validateAge($age) {
	if (isNaN($age)) {
		return false;
	} else {
		return true;
	}
}

function wrap_buttons() {
	$('a.btn').wrapInner('<span><span></span></span>');
}

