/* plugins */
jQuery(function($) {
	$.fn.extend({
		remove_default: function(options) {
			return this.each(
				function() {
					var $input = $(this);
					var default_value = $input.val();
					$input.focus(function(){
						var $input_focus = $(this);
						if($input_focus.val()==default_value) {
							$input_focus.val('');
						}
						$input_focus.addClass('focus');
					}).blur(function(){
						var $input_focus = $(this);
						if($input_focus.val()=='') {
							$input_focus.val(default_value);
						}
						$input_focus.removeClass('focus');
					});
				}
			);
		}
	});
});

jQuery(function($) {
	$.fn.extend({
		validate_email: function(options) {
			return this.each(
				function() {
					var $input = $(this);
					var input_value = $input.val();
					var valid_email_regex = new RegExp('(?:^|\s)[-a-z0-9_.]+@([-a-z0-9]+\.)+[a-z]{2,6}(?:\s|$)');
					
					$input.parents('form').submit(function(){
						$form = $(this);
						$input_submited = $form.find('input.email');
						var input_submited_value = $input_submited.val();
						if(input_submited_value.match(valid_email_regex)===null) {
							$input.addClass('error');
							return false;
						}
						else {
							$input.removeClass('error');
							$input.blur();

							$.ajax({
								type: 'POST',
								url: '/xml/requests/newsletter_insert.php',
								data: $form.serialize(),
								dataType: 'xml',
								success: function(data) {
									var return_type = $('type',data).text();
									var return_text = $('response',data).text();
									
									if(return_type=='success') {
										$form.slideUp('slow', function(){
											$form[0].reset();
											var $reponse = $form.next('div.response');
											if($reponse.length==0) {
												$reponse = $('<div class="response"></div').insertAfter($form).hide();
											}
											
											$reponse.html(return_text).slideDown('slow', function(){
												var $inserted = $(this);
												$inserted.find('a').click(function(){
													$inserted.slideUp('slow', function(){
														$inserted.html();
														$form.slideDown('slow');
													});
													return false;
												});
											});
										});
									}
									else {
										// something went wrong
									}
								},
								error: function(XMLHttpRequest, text_status, error_thrown) {
									// typically only one of text_status or error_thrown will have info
									this; // the options for this ajax request
								},
								complete: function(XMLHttpRequest, text_status) {
									this; // the options for this ajax request
								}
							});
						}
						return false;
					});
				}
			);
		}
	});
});


$(document).ready(function() {
	$('input.default').remove_default();
	$('input.email').validate_email();
});