$(document).ready( function() {
	/**
	 * CONTROLLARE L'ESISTENZA DEL PLUGIN TIPTIP
	 */
	//if(typeof (window.tipTip) =='function') {
	// function exists, so we can now call it
		$(":input").tipTip({maxWidth: "170px", edgeOffset: 10, defaultPosition: "top", delay: 150, fadeOut: 400});
	//}
	
	
	function disableForm(){
		$('form#contact').animate({ opacity: "0.3" }, "fast");
		$('#contentlinkpripol').animate({ opacity: "0.3" }, "fast");
		$("form#contact :enabled").attr("disabled", true);
		//$("form#contact :reset").attr("readonly", true); 
		//$('form#contact > *').attr("readonly", true);
	}

	function enableForm(){
		$('form#contact').each(function(index){
			if ($(this).css('opacity') < 1  ){
				$('form#contact').animate({ opacity: "1" }, "fast");
				$('#contentlinkpripol').animate({ opacity: "1" }, "fast");
			}
		});
		
		$("form#contact :disabled").removeAttr("disabled",true);
		//$("form#contact :reset").removeAttr("readonly",true);
		//$('form#contact[id*=button]').removeAttr("disabled");
	}
	
	//repositions infoboxes
	var LoaderLeftCentered = Math.round(($("div.ajaxForm").width()-$("div.loader").width())/2);
	var LoaderTopCentered = Math.round(($("div.ajaxForm").height()-$("div.loader").height())/2);
	
	var OkLeftCentered = Math.round(($("div.ajaxForm").width()-$("div#form_ok").width())/2);
	var OkTopCentered = Math.round(($("div.ajaxForm").height()-$("div#form_ok").height())/2);
	var OkTopOutUp=-($("div#form_ok").height()+10);
	
	var ErrLeftCentered = Math.round(($("div.ajaxForm").width()-$("div#form_errors").width())/2);
	var ErrTopCentered = Math.round(($("div.ajaxForm").height()-$("div#form_errors").height())/2);
	var ErrTopOutUp=-($("div#form_errors").height()+10);
	
	var OkTopOutDown = ErrTopOutDown = ($("div.ajaxForm").height()+10);
	
	//centers divs and send out 
	$("div#form_ok").css("left",OkLeftCentered);
	$("div#form_ok").css("top",OkTopOutUp);
	$("div#form_errors").css("left",ErrLeftCentered);
	$("div#form_errors").css("top",ErrTopOutUp);
	$("div.loader").css("left",LoaderLeftCentered);
	$("div.loader").css("top",LoaderTopCentered);
	
	//hide info boxes and return to form
	$('div#form_errors').click(function(e){
		$(this).stop().animate({/*opacity: "0",*/ top: ErrTopOutDown}, "fast", function(){
			enableForm();
			$("div#form_errors").css("top",ErrTopOutUp);
		});
	});
	
	$('div#form_ok').click(function(e){
		$(this).stop().animate({/*opacity: "0",*/ top: OkTopOutDown}, "fast", function(){
			$('form#contact').animate({ opacity: "1" }, "fast");
			$('#contentlinkpripol').animate({ opacity: "1" }, "fast");
			$("div#form_ok").css("top",OkTopOutUp);
		});
	});
	
	//form submission
	$('form#contact').submit(function(e) {
		e.preventDefault();
		var action = $(this).attr("action");
		var formdata = $("form#contact").serialize();
		formdata=formdata+"&js=true";
		
		$.ajax({
  		type: "POST", 
  		url: action,
  		data: formdata,
  		timeout: 10000,
  		dataType: "json",
			beforeSend:  function() {
				//remove formerror class when changes the field value
				$('form#contact .formerror').removeClass('formerror');
				$('.loader').css('display','block');
				$('.loader').animate({ opacity: "1" }, "fast");
				disableForm();
			},
			complete:  function() {
				/*$('.loader').animate({ opacity: "0" }, "slow", function() {
					$(this).css('display','none');
				});*/
			},
			error: function (xhr, desc, exceptionobj) {
				alert(xhr.responseText);
				enableForm();
			},
  		success: function(json){
				$('.loader').animate({ opacity: "0" }, "slow", function() {
					$(this).css('display','none');
				
					var output="";
					if (json.formerror){//errore di compilazione form
						for (e in json['errori']) {
			  			output += json['errori'][e] + "<br/>";
		  			} 
						for (f in json['wrongfields']) {
							$('form#contact div.'+json['wrongfields'][f]).addClass("formerror");
							//$('form#contact div.'+json['wrongfields'][f]).removeClass(json['wrongfields'][f]);
		  			} 
						//$('#form_errors').html(output);
						//$('#form_errors').css('display','block');
						//$('#form_errors').animate({ opacity: "1" }, "fast");
						$("#form_errors").stop().animate({/*opacity: "1",*/ top: ErrTopCentered}, "slow");
					}else{//form compilato correttamente
						//$('#form_ok').html('<p>'+json['message']+'</p>');
						//$('#form_ok').css('display','block');
						//$("#form_ok").animate({ opacity: "1" }, "fast");
						$("#form_ok").stop().animate({/*opacity: "1",*/ top: OkTopCentered}, "slow");
						disableForm();
					}
					
				});
  		}
	  }); 
	});
	
	//popup privacy e policy
	$("a[rel='.privacy_policy']").overlay({ 
  	//expose: 'darkred', 
  	//effect: 'apple', 
		onBeforeLoad: function() { 
		// grab wrapper element inside content 
			var wrap = this.getContent().find(".ppWrap"); 
			// load the page specified in the trigger 
			wrap.load(this.getTrigger().attr("href")); 
		} 
  }); 

});

