$(function() {
	
	
	function checkLength(o,min,max) {

		if ( o.val().length > max || o.val().length < min ) {
		
			return false;
		} else {
			return true;
		}

	}

	function checkRegexp(o,regexp) {

		if ( !( regexp.test( o.val() ) ) ) {
			
			return false;
		} else {
			return true;
		}

	}
	
	function showResponse(responseText, statusText, xhr, $form){
	
		$('#dialog-amico').dialog('close');
		$('<div>Messaggio Inviato</div>').dialog({
			position:'center',
			modal:true,
			buttons:{
				'chiudi':function() {
				$(this).dialog('close');
				}
			}
		});
		
	}
	
	
	
	
	$('#invia_amico')
		.click(function(){		
		$('#dialog-amico').dialog('open');
		return false;
	});
	
	var email = $('input[name="your_email"]','#dialog-amico');
	var friendEmail = $('input[name="friend_email"]','#dialog-amico');
	var	subject = $('input[name="subject"]','#dialog-amico');
	var message = $('textarea[name="messageAmico"]','#dialog-amico');
	$('input[name="url"]','#dialog-amico').val(document.location);
	
	var label = $('#spanFormAmico').metadata();
	var buttonsMap = {};
	
	buttonsMap[label.inviaLabel] = function(){
		var validate = true;
		
		validate = validate && checkLength(email,6,80);
		validate = validate && checkLength(friendEmail,6,80);
		validate = validate && checkLength(subject,2,80);
		
		
		validate = validate && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
		validate = validate && checkRegexp(friendEmail,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
		
		
		
		
			if(validate){
					var option ={
					success : showResponse, 
					clearForm : true
					};
				
					$('#formAmico').ajaxSubmit(option);
					return false;
					
					
					
			}else{
				
				alert('E\' presente un errore nella compilazione del modulo');
			} 
	
	}
	buttonsMap[label.chiudiLabel] = function() {
		$(this).dialog('close');
	}
	
	$('#dialog-amico').dialog({
		autoOpen: false,
		height: 480,
		width: 640,
		modal: true,
		buttons: buttonsMap

	});
	
});
	

