    function showMsg(str, id){
		//alert (str);
		$('#'+id+' .errore').html(str).show();
    }
	
	function trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
	 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
	 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}

    function checkContatto(f, page) {
        var __filter	= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
		var __data		= /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
		var check=true;
		var messaggio='';
		
		$("form *").removeClass('attenzione');
		
		$("#"+f+" input.required").each(function() {
			if ( (trim($(this).val())=='') || ($(this).val()==this.defaultValue) ){
				$(this).addClass('attenzione');
				if (check){
					check=false;
					messaggio='<li>campi obbligatori mancanti</li>';
				}
			}
		});
		
		$password='_';
		$("#"+f+" input.password").each(function() {
			if ( (trim($(this).val())=='')  && ($password=='_') ){
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>password mancante</li>';
			}
			else
				if ( ($password!='_') && (trim($(this).val())!=$password) ){
					$(this).addClass('attenzione');
					check=false;
					messaggio+='<li>le password non coincidono</li>';	
				}
			$password=trim($(this).val());
		});
		
		$("#"+f+" input.email").each(function() {
			if (!__filter.test( $(this).val() )) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>formato email errato</li>';
			}
		});
		
		$("#"+f+" input.data").each(function() {
			if (!__data.test( $(this).val() )) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>formato data di nascita errato</li>';
			}
		});
		
		$("#"+f+" input.eta").each(function() {
			if ($(this).val()<18) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>bisogna essere maggiorenni</li>';
			}
		});
		
		$("#"+f+" .select").each(function() {
			if ($(this).val()==0) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>selezionare la provincia</li>';
			}
		});
		
		$("#"+f+" input.consenso").each(function() {
			if (!$(this).is(':checked')) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>e\' necessario autorizzare il trattamento dei dati</li>';
			}
		});
		
		if (!check){
			popUpErrore.html('<h5 class="attenzione">ATTENZIONE</h5><ul>'+messaggio+'</ul>');
		}
		else{
			$.post(page, {
					stringa: $("#"+f).serializeArray()
				},
				function(data){
					popUpErrore.html(data);
				}
			);
		}
		return false;
    }


    function checkIt(f, page) {
        var __filter	= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
		var __data		= /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
		var check=true;
		var messaggio='';
		
		$("form *").removeClass('attenzione');
		
		$("#"+f+" input.required").each(function() {
			if ( (trim($(this).val())=='') || ($(this).val()==this.defaultValue) ){
				$(this).addClass('attenzione');
				if (check){
					check=false;
					messaggio='<li>campi obbligatori mancanti</li>';
				}
			}
		});
		
		$password='_';
		$("#"+f+" input.password").each(function() {
			if ( (trim($(this).val())=='')  && ($password=='_') ){
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>password mancante</li>';
			}
			else
				if ( ($password!='_') && (trim($(this).val())!=$password) ){
					$(this).addClass('attenzione');
					check=false;
					messaggio+='<li>le password non coincidono</li>';	
				}
			$password=trim($(this).val());
		});
		
		$("#"+f+" input.email").each(function() {
			if (!__filter.test( $(this).val() )) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>formato email errato</li>';
			}
		});
		
		$("#"+f+" input.data").each(function() {
			if (!__data.test( $(this).val() )) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>formato data di nascita errato</li>';
			}
		});
		
		$("#"+f+" input.eta").each(function() {
			if ($(this).val()<18) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>bisogna essere maggiorenni</li>';
			}
		});
		
		$("#"+f+" .select").each(function() {
			if ($(this).val()==0) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>selezionare la provincia</li>';
			}
		});
		
		$("#"+f+" input.consenso").each(function() {
			if (!$(this).is(':checked')) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>e\' necessario autorizzare il trattamento dei dati</li>';
			}
		});
		
		if (!check){
			popUpErrore.html('<h5 class="attenzione">ATTENZIONE</h5><ul>'+messaggio+'</ul>');
		}
		else{
			$.post(page, {
				nome: $('#nome').val(),
				cognome: $('#cognome').val(),
				email: $('#email').val(),
				ragionesociale: $('#ragionesociale').val(),
				cap: $('#cap').val(),
				provincia: $('#provincia').val(),
				indirizzo: $('#indirizzo').val(),
				citta: $('#citta').val(),
				telefono: $('#telefono').val(),
				codice: $('#codice').val(),
				invio: 'farmacista'
				},
				function(data){
					popUpErrore.html(data);
				}
			);
		}
		return false;
    }

    function checkCode(f) {
        var __filter	= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
		var __data		= /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
		var check=true;
		var messaggio='';
		
		$("form *").removeClass('attenzione');
		$("form .errore").hide();
		
		$("#"+f+" input.required").each(function() {
			if ( (trim($(this).val())=='') || ($(this).val()==this.defaultValue) ){
				$(this).addClass('attenzione');
				if (check){
					check=false;
					messaggio='<li>campi obbligatori mancanti</li>';
				}
			}
		});
				
		if (!check){
			showMsg('<strong>ATTENZIONE</strong><ul>'+messaggio+'</ul>', f);
		}
		else{
			$.post('script/codiceVerifica.php', { 
				codice: $('#codice').val()
				},
				function(data){
					if (data==1)
						$('#codiceForm').submit();
					else
						showMsg('<strong>ATTENZIONE</strong><ul><li>'+data+'</li></ul>', 'codiceForm');
				}
			);
		}
		return false;
    }

    function checkEmail(f) {
        var __filter	= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/;
		var __data		= /^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;
		var check=true;
		var messaggio='';
		
		$("form *").removeClass('attenzione');
		$("form .errore").hide();
		
		$("#"+f+" input.required").each(function() {
			if ( (trim($(this).val())=='') || ($(this).val()==this.defaultValue) ){
				$(this).addClass('attenzione');
				if (check){
					check=false;
					messaggio='<li>campi username mancante</li>';
				}
			}
		});
		
		$("#"+f+" input.email").each(function() {
			if (!__filter.test( $(this).val() )) {
				$(this).addClass('attenzione');
				check=false;
				messaggio+='<li>formato email errato</li>';
			}
		});
		
		if (!check){
			popUpErrore.html('<h5 class="attenzione">ATTENZIONE</h5><ul>'+messaggio+'</ul>');
		}
		else{
			return true;
		}
    }
	
	function defaultValue(id){
		
		$(id+' .default-value').each(function() {
			var default_value = this.value;
			$(this).focus(function() {
				if(this.value == default_value) {
					this.value = '';
				}
			});
			$(this).blur(function() {
				if(this.value == '') {
					this.value = default_value;
				}
			});
		});
	}

	$(document).ready(
		function(){
			
			defaultValue('form');
			
		}
	);
