
/*
	Copyright (c) 2007-2008 JB Interactive Pty. Ltd.
	All Rights Reserved
	http://www.jbinteractive.com.au/
*/

(function($) {
	
$(document).ready(function () {
	var RewardsForm = {
		fields: {
			name:    $('input[name=name]'),
			email:   $('input[name=email]'),
			phone:   $('input[name=phone]'),
			address: $('textarea[name=address]'),
			state:   $('select[name=state]')		
		},
		
		init: function () {
			$('#submit').click(function (e) {
				e.preventDefault();
				
				$('#submit').parent('dd').addClass('rewards-form-spinner');
				$('#submit').attr('disabled', true);
				
				RewardsForm.unmarkError('name');
				RewardsForm.unmarkError('email');

				$data = { 
					submit: 1
				};

				$.each(RewardsForm.fields, function (name, element) {
					$data[name] = element.val();
				});

				$.ajax({
					url:      'index.php',
					type:     'post',
					data:     $data,
					dataType: 'json',
					complete: function () {
						$('#submit').parent('dd').removeClass('rewards-form-spinner');
						$('#submit').attr('disabled', false);
					},
					success:  function (json) {
						if (json.submitted == 1) {
							if (!$('#thankyou').is('*')) {
								RewardsForm.addPopup(
									'thankyou',
									'<h2>Thank you</h2>' + 
									'<p>Thank you for joining McGills Rewards.</p>'
								);
							}

							tb_show('Thank you', '#TB_inline?height=165&width=330&inlineId=thankyou&modal=true');

							$.each(RewardsForm.fields, function (name, element) {
								element.val('');
							});
						} else {
							$.each(json.errors, function (name, error) {
								RewardsForm.markError(name);
							});

							if (!$('#form-errors').is('*')) {
								RewardsForm.addPopup(
									'form-errors',
									'<h2>Oops!</h2>' + 
									'<p>It looks like you forgot to include your ' + 
									'name or email address.  We\'ll need those '+ 
									'details for you to join McGills Rewards.</p>'
								);
							}

							tb_show('Errors', '#TB_inline?height=165&width=330&inlineId=form-errors&modal=true');
						}
					}
				})
			});			
		},
		
		markError: function (name) {
			$('input[name=' + name + ']')
				.addClass('rewards-error-field')
				.parent().prev().children('label').addClass('rewards-error')
		},
		
		unmarkError: function (name) {
			$('input[name=' + name + ']')
				.removeClass('rewards-error-field')
				.parent().prev().children('label').removeClass('rewards-error')			
		},
		
		addPopup: function (name, content) {
			var close = '<br /><p style="text-align:center"><input type="button" id="close-popup" value="Ok" /></p>';
		
			$('body').append(
				$('<div />').attr('id', name).hide().html(content + close)
			);			
			
			$('#close-popup').click(function () {
				tb_remove();
				$('#' + name).remove();
			});
		}
	}
	
	RewardsForm.init();
});

})(jQuery);
