$(document).ready( function() {	
	$('.enabled').live('click', function() {
	
		var emailsubmitted = $('input[name="email"]').attr('value');
		
		var result = '';
		
		$('#match').fadeOut(300);
		$('.newsletterForm #form').fadeOut(300);		
				
		$.ajax({
			type: "POST",
			url: "../formnews/php/newsletterSubmit.php",
			dataType: "text",
			success: function(result) {
				$('#submitting').fadeOut(300, function() {
					if(result == 'yes') {
						$.ajax({
							type: "POST",
							url: "../formnews/php/newsletterMail.php",
							dataType: "text",
							data: 'email=' + emailsubmitted,
							success: function(emailresult) {
								if (emailresult == 'yes') {
									$('#submitting').fadeOut(300, function() {
										$('#submitted').fadeIn(300);
									});
								}
								
								else {
									$('#submitted').fadeIn(300).text('Forse c\è; qualcosa di sbagliato con il tentativo di mandare l\e-mail al tuo indirizzo');
								}
							}
						});
					}
					
					else {
						$('#submitted').fadeIn(300).text('Il tuo indirizzo e-mail è già nel nostro database');
									
					}
				});
			},
			error: function() {
				$('#submitting').fadeOut(300, function() {
					$('#submitError').fadeIn(300);
				});
			},
			data: "email=" + emailsubmitted,
			beforeSend: function() {
				$('#submitting').fadeIn(300);
			}
		});
	});

	$("input, textarea").keyup(function() {	
		
		var address1 = $('input[name="email"]').attr('value');
		var address2 = $('input[name="emailconf"]').attr('value');
			
		if(address1 != address2) {
			$('#match').fadeOut(300, function(){
				$('#match').remove();
			});
			
			$('#bademail').slideUp(300, function() {
				$('#bademail').remove();
			});

			if($('input[name="emailconf"]').next().attr('id') != "nomatch" && address2 != $('input[name="emailconf"]').attr('defaultfield')) {
				$('input[name="emailconf"]').after('<div id="nomatch"></div>');
				$('#nomatch').fadeIn(300);
			}
		$('#submitButton').removeClass('enabled').addClass('disabled').css('cursor', 'default').attr('disabled', 'disabled');
						
		} else {
			$('#nomatch').fadeOut(300, function(){
				$('#nomatch').remove();
			});
			if($('input[name="emailconf"]').next().attr('id') != "match") {
				$('input[name="emailconf"]').after('<div id="match"></div>');
				$('#match').fadeIn(300, function() {
					
					if(!isValidEmailAddress(address1)){
						$('#match').after('<div id="bademail">I campi di confronto coincidono, ma il tuo indirizzo e-mail non è valido. Esso deve essere formattato come \'john@doe.com\'</div>');
						$('#bademail').slideDown(300);
					}
					
					else {
						$('#bademail').slideUp(300, function() {
							$('#bademail').remove();
						});
						$('#submitButton').removeClass('disabled').addClass('enabled').css('cursor', 'pointer').removeAttr('disabled');
					}
				});
			}
		}
	});
	
	$('.default-value').each(function() {
		var default_value = $(this).val();
		$(this).attr('rel', default_value);
	});
	
	$('.default-value').focus(function(){
		if($(this).val() == $(this).attr('rel')) { 
			$(this).val(''); 
		} 
	}); 
		
	$('.default-value').blur(function(){ 
		if($(this).val() == '') { 
			$(this).val($(this).attr('rel')); 
		} 
	});	

});

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}
