$(document).ready(function() {
	$("li[id^='select'] a").unbind('click').click(function() {
		var $target = $(this).parent();
		var $type = ($target.attr('class').match(/picture|frame|song/))[0];
		var $id = ($target.attr('class').match(/[pfs]\:(\d)/))[1];
							
		$target.siblings('.' + $type).children('a').removeClass('current');
		$target.children('a').addClass('current');
		
		$("#cardForm input[name*='" + $type + "']:hidden").val($id);
		return false;
	});
	
	$('#preview').unbind('click').click(function() {
		$('#cardForm').submit();
		return false;
	});
	$('#send').unbind('click').click(function() {
		$('#cardForm').attr({ action: './send.php' }).submit();
		return false;
	});
	
	$('#num_chars').text(140 - $('#cardForm textarea').val().length);
	
	$('#cardForm textarea').unbind('keyup').keyup(function() {
		var num_chars = $(this).val().length;
		
		if(num_chars >= 140)
			$(this).val($(this).val().slice(0, 140));
		
		$('#num_chars').text(140 - (num_chars > 140 ? 140 : num_chars));
	});
	
	$('#cardForm').unbind('submit').submit(function() {
		var errors = [];
		if($("#email:checked").length){
			var fields = {
				'data[sender_name]': {
					'pattern': /[\w'".,]+/,
					'error_msg': 'Please provide your name.'
				},
				'data[sender_email]': {
					'pattern': /^([a-z]+[\w-]*\.?)+@([\w-]+\.)+[a-z]{2,4}$/i,
					'error_msg': 'Your email address must be valid.'
				},
				'data[friend_name]': {
					'pattern': /[\w'".,]+/,
					'error_msg': "Please provide your friend's name."
				},
				'data[friend_email]': {
					'pattern': /^([a-z]+[\w-]*\.?)+@([\w-]+\.)+[a-z]{2,4}$/i,
					'error_msg': "Your friend's email address must be valid."
				},
				'data[message]': {
					'pattern': /[\w'".,]+/,
					'error_msg': 'Please include a message.'
				},
				'data[picture]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a picture.'
				},
				'data[frame]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a frame.'
				},
				'data[song]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a song.'
				}
			};
		}else{
			var fields = {
				'data[sender_name]': {
					'pattern': /[\w'".,]+/,
					'error_msg': 'Please provide your name.'
				},
				'data[sender_email]': {
					'pattern': /^([a-z]+[\w-]*\.?)+@([\w-]+\.)+[a-z]{2,4}$/i,
					'error_msg': 'Your email address must be valid.'
				},
				'data[message]': {
					'pattern': /[\w'".,]+/,
					'error_msg': 'Please include a message.'
				},
				'data[picture]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a picture.'
				},
				'data[frame]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a frame.'
				},
				'data[song]': {
					'pattern': /\d/,
					'error_msg': 'Please choose a song.'
				}
			};
		}
		
		
		
		$(this).find(':input').each(function() {
			var __name = $(this).attr('name');
			var __value = $(this).attr('value');
			
			if(__name in fields)
				if(!__value || !fields[__name]['pattern'].test(__value))
					errors.push(fields[$(this).attr('name')]['error_msg']);
		});
		
		
		if(!$("#email:checked").length && !$("#fb:checked").length)
			errors.push('You must choose at least one way to send your ecard.');
		
		if(errors.length) {
			errors.unshift('<b>The following error' + (errors.length > 1 ? 's' : '') + ' occurred:</b>');
			$('#errors').html(errors.join('<br />'));
			return false;
		}
		
		var shareMethod;
		if($("#email:checked").length)
			shareMethod='Email';
		if($("#fb:checked").length)
			shareMethod+='Facebook';
		if($("#fb:checked").length && $("#email:checked").length)
			shareMethod='Email and Facebook';
		_gaq.push(['_trackEvent', 'Share Method', shareMethod]);
		
	});
	
});
