
$(document).ready(function() {
	$('.screenshot').smartbox();
	
	$('.account_type a').click(setAccountType);
	
	$('.gotoStep1').click(formStepOne);
	$('.gotoStep2').click(formStepTwo);
	$('.gotoStep3').click(formStepThree);
	
	$('#bookmarklet a').hover(function() {
		$('#bookmarklet .arrow').fadeIn(150);
	}, function() {
		$('#bookmarklet .arrow').fadeOut(150);
	});
	
	$('._blank').TargetBlank();
	$(".bookmark_install").click(function() { return false; });
});

//ACCOUNT TYPE
function setAccountType() 
{
	if(!$(this).hasClass('selected'))
	{
		var selectedType = $(this).attr('name');
		$('.account_type a.selected').removeClass('selected');
		$(this).addClass('selected');
		$('#account_type').val(selectedType);
				
		selectedType = '.plan_' + selectedType;		
		$('.step2 .col3').find('ul').hide();
		$('.step2 .col3').find(selectedType).css({display: 'block'});
	}
	return false;
}


//FORM CHECK
function formStepOne() {
	if (!$(this).parent('li').hasClass('disabled')) {
		if ($('#account_type').val() == '2') { 

		} else {
			$('.signup_tabs .account').addClass('active').removeClass('complete');
			$('.signup_tabs .payment').removeClass('active').removeClass('complete');
			$('.signup_tabs .confirmation').removeClass('active').removeClass('complete');
			
			$('.signup_form .step1').show();
			$('.signup_form .step2').hide();
			$('.signup_form .step3').hide();
			return false;
		}
	} else {
		return false;
	}
}

function formStepTwo() {
	if (validateForm($('.step1')) && !$(this).parent('li').hasClass('disabled')) {
		if ($('#account_type').val() == '2') {
			$("#signup_form").submit();
		} else {
			$('.signup_tabs .account').removeClass('active').addClass('complete');
			$('.signup_tabs .payment').addClass('active').removeClass('complete');
			$('.signup_tabs .confirmation').removeClass('active').removeClass('complete');
			
			$('.signup_form .step1').hide();
			$('.signup_form .step2').show();
			$('.signup_form .step3').hide();
		}
	}

	return false;
}

function formStepThree() {
	
	if ($("li.account").hasClass("active")) {
		formStepTwo();
		return false;
	}

	if(validateForm($('.step2')) && !$(this).parent('li').hasClass('disabled'))
	{
/*
		$('.signup_tabs .payment').removeClass('active').addClass('complete');
		$('.signup_tabs .confirmation').addClass('active').removeClass('complete');
		
		$('.signup_form .step1').hide();
		$('.signup_form .step2').hide();
		$('.signup_form .step3').show();
*/
	}
	else
	{
		return false;
	}
}


//Form Validation

function validateForm(_formPart)
{
	var allGood = true;
	var passwordCheck = '';
	_formPart.find('input, textarea, select').not('.not_req, .submit').each(function() {
		if($(this).val() == '')
		{
			showError($(this));
			allGood = false;
		}
		else if($(this).hasClass('email') && !checkEmail($(this).val()))
		{
			showError($(this));
			allGood = false;
		}
		else if($(this).hasClass('phone') && !checkPhone($(this).val()))
		{
			showError($(this));
			allGood = false;
		}
		else if($(this).hasClass('password'))
		{
			passwordCheck = $(this).val();
			clearError($(this));
		}
		else if($(this).hasClass('cpassword'))
		{
			if($(this).val() != passwordCheck)
			{
				showError($(this));
				allGood = false;
			}
			else
			{
				clearError($(this));
			}
		}
		else
		{
			clearError($(this));
		}
	});
	
	if(!allGood)
	{
		if($('.signup_errors').length < 1)
		{
			$('.signup_form').prepend('<div class="signup_errors"><p class="js_error">Please complete all required fields before submitting</p></a>');
		}
		else
		{
			if($('.js_error').length < 1)
			{
				$('.signup_errors').show().append('<p class="js_error">Please complete all required fields before re-submitting.</p>')
			}
			else
			{
				$('.signup_errors, .signup_form .js_error').show();
			}
		}
	}
	else
	{
		$('.js_error').hide();
		if($('.signup_errors p').length < 2)
		{
			$('.signup_errors').hide();
		}
	}
	return allGood;
}


function checkEmail(email) {
	var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
	if (filter.test(email)) {
		return true;
	}
	else
	{
		return false;
	}
}

function checkPhone(phone) {
	var filter = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
	if (filter.test(phone)) {
		return true;
	}
	else
	{
		return false;
	}
}

function showError(el)
{
	el.addClass('error');
	el.prev('label').addClass('error');
}

function clearError(el)
{
	el.removeClass('error')
	el.prev('label').removeClass('error');
}







/**
 * jQuery TargetBlank plugin
 * Open links in new window while maintaining valid strict doc type
 * 
 * Copyright (c) 2009 Ben Plum <benjaminplum@gmail.com>
 */ 
(function($) {
	$.fn.TargetBlank = function() {
		return this.each(function () {
			//open links in new window
			$(this).click(function () {
				window.open($(this).attr('href'));
				return false;
			})
		});
	}
})(jQuery);