$my = {};

// 	=====================================================
// 	FIRE IT UP
// 	=====================================================
	jQuery(function($) {
		

		// 	=====================================================
		// 	SEARCH & SUBSCRIBE BUTTONS
		// 	=====================================================
			$my.searchInput = $('#keywords');
			$my.subscribeInput = $('#email');
			$my.subscribeButton = $('#subscribe_form button');
		
			var defaultSubscribeInputValue = $my.subscribeInput.attr('title');
			var defaultSearchInputValue = $my.searchInput.attr('title');
		
			$my.searchInput.DefaultValue(defaultSearchInputValue);
			$my.subscribeButton.css('left', '100px');
		
			$my.subscribeInput
				.DefaultValue(defaultSubscribeInputValue)
				.bind('focus', function() {
					$my.subscribeButton.animate({'left' : '150px'}, 400, 'easeOutExpo');
				})
				.bind('blur', function() {
					if($(this).val() == defaultSubscribeInputValue) {
						$my.subscribeButton.animate({'left' : '100px'}, 600, 'easeOutQuint');
					}
				});
		
		// 	=====================================================
		// 	Validate & submit newsletter subscription form via ajax
		// 	=====================================================
	
			// grab form object
			$my.subscribeForm = $('#subscribe_form');
			
			// prevent submitting multiple times			
			$my.subscribeFormSubmitted = false;

			// submitHandler form
			$my.subscribeFormSubmitHandler = function(form) {
				if($my.subscribeFormSubmitted == false) {
					$(form).ajaxSubmit({
						success: function(responseText) {
							// set response message
							var $responseMsg = $('<label>Thank you for subscribing!</label>');
							$my.subscribeForm.find('.error').append($responseMsg);

							// unbind focus/blur animation
							$my.subscribeInput.unbind();
							
							// restore button
							$my.subscribeButton
								.html('SENT')
								.css('width', '4.5em');
						},
						beforeSerialize: function($form, options) {
							// change button text & width
							$my.subscribeButton.html('sending').css('width', '6em');

							// empty the return field
							$my.subscribeForm.find('input[name=return]').attr("value",""); 
						},
						type: 'post'
					});
				}
				$my.subscribeFormSubmitted = true;
			}
			
			$my.subscribeFormErrorPlacement = function(error, element) {
				error.appendTo( element.parent('fieldset').siblings(".error") );
			}
			
			$my.subscribeForm.validate({
				submitHandler: $my.subscribeFormSubmitHandler,
				errorPlacement: $my.subscribeFormErrorPlacement
			});
	});

