/* 
	Questo file, condiviso da tutti i clienti, ha tutte le funzioni necessarie per il fare il 
	submit dei form tipo contatti, richiest info ecc...ecc...
*/ 



/* questa func riceve il form da submittare ed il messaggio da restituire dopo il submit */
function submitAjaxForm(obj, nomeForm, msg) {
	
	var err = checkFormFields(nomeForm) ;	
	
	if (err) {
		return false;
	}


	var dataString = 'obj='+obj+"&action=submitAjaxForm" ;	
	dataString += getDataSting_SubmitAjaxForm(nomeForm) ;


	jQuery.ajax({
  		type: "POST",
  		url: "./ajax/moduli.php",
  		data: dataString,
  		success: function(html) {
			
			//alert(html) ;
    		jQuery('#'+nomeForm).html("<div id='message'></div>");
    		jQuery('#message').html(msg).hide().fadeIn(1200, function() {
				
		    });
		}
	});
	
	return false;
}




/* questa func riceve il form da cui prender ei dati del login, l'id dove vado a scrivere l'attendere prego e l'url del redirect */
function submitAjaxFormLogin(obj, nomeForm, idLoading, lodingText, redirectUrl) {
	
	var err = checkFormFields(nomeForm) ;	
	
	if (err) {
		return false;
	}


	var dataString = 'obj='+obj+"&action=submitAjaxFormLogin" ;	
	dataString += getDataSting_SubmitAjaxForm(nomeForm) ;

	console.log(dataString) ;
	jQuery.ajax({
  		type: "POST",
  		url: "./ajax/moduli.php",
  		data: dataString,
  		beforeSend: function() {
  			jQuery('#'+idLoading).html(lodingText) ;
  		},
  		success: function(html) {
  			
  			var strRet = html.split("|") ;
  			
  			// LOGIN FALLITO. Stampo msg e faccio ricaricamento form
  			if (strRet[0] == 'KO') {
  				
  				jQuery('#'+nomeForm).html("<div id='message'></div>");
	    		jQuery('#OutLogout_span').html(strRet[1]) ;
	    		jQuery('#message').html(strRet[1]).hide().fadeIn(1000, function() {
					
					setTimeout(function() {
						
						var pos = 0;
					 	needle = "Sidebar" ;
					    haystack = nomeForm ;
					    pos = haystack.indexOf(needle);
					    var act = "" ;
					    if (pos == -1) {
					        act = "printFormLoginInner" ;
					    } else {
					    	
					        if (haystack.substr(0, pos)) {
					        	act = "areaRiservataSidebarInner" ;
					        }
					        else {
					        	act = "printFormLoginInner" ;
					        }
					    }
						
						var dataStringReset = 'obj='+obj+"&action="+act ;	
						dataStringReset += getDataSting_SubmitAjaxForm(nomeForm) ;
						
						jQuery.ajax({
					  		type: "POST",
					  		url: "./ajax/moduli.php",
					  		data: dataStringReset,
					  		success: function(html) {
					  			jQuery('#'+nomeForm).html(html) ;
					  		}
					  	}) ;
						
					},1100) ;
			    });
  			}
  			else {
  				
  				/** Se riusciamo a fare ricaricare con ajax i box (tipo documenti, news ecc...ecc...)
  					che sono soggetti a variazioni per pubblico/privato, allora decommenta parte qui sotto
  					e preoccupati di fare funcs in ajax per i reload dei box.
  					Per adesso facciamo location.reload()
  				**/
  				
  				/** leggi sopra e decommanta se necessario 
  				jQuery('#'+nomeForm).html("<div id='message'></div>");
	    		jQuery('#OutLogout_span').html(strRet[1]) ;
	    		jQuery('#message').html(strRet[1]).hide().fadeIn(1000, function() {
					
					setTimeout(function() {
						
						var pos = 0;
					 	needle = "Sidebar" ;
					    haystack = nomeForm ;
					    pos = haystack.indexOf(needle);
					    var act = "" ;
					    if (pos == -1) {
					        act = "printFormLogin" ;
					    } else {
					    	
					        if (haystack.substr(0, pos)) {
					        	act = "areaRiservataSidebar" ;
					        }
					        else {
					        	act = "printFormLogin" ;
					        }
					    }
					    
						
						var dataStringReset = 'obj='+obj+"&action="+act ;	
						dataStringReset += getDataSting_SubmitAjaxForm(nomeForm) ;
						
						jQuery.ajax({
					  		type: "POST",
					  		url: "./ajax/moduli.php",
					  		data: dataStringReset,
					  		success: function(html) {
					  			jQuery('#'+nomeForm).html(html) ;					  	
					  			
					  			// Qui metodi ajax per reload dei box	
					  				
					  		}
					  	}) ;
						
					},1100) ;
			    });
			    
			    **/ 
			    
			    /* se decommenti sopra, allora togli questa */
			    location.reload() ;
  			}
  			  			
    		
		    
		}
	});
	
	return false;
}


function getDataSting_SubmitAjaxForm(nomeForm) {
	
	var dataString = '' ;
	
	jQuery.each(jQuery('#'+nomeForm).serializeArray(), function(i, field) {

		if ((field.type == 'radio') || (field.type == 'checkbox')) {
        	if (field.checked) {
        		dataString += "&"+field.name+"="+field.value ;
            }
        }
        else {
        	dataString += "&"+field.name+"="+encodeURIComponent(field.value) ;
     	}

	}) ;
	
	return dataString ; 
}

function checkFormFields(nomeForm) {

	var err = false ;
	
	jQuery('.error').hide() ;
	jQuery.each(jQuery('#'+nomeForm).find('*'), function(i, field) {
		
		try {
						
			var errorId = field.id.split("_") ;
			
			if (errorId[1] == 'error') {

				var campo = errorId[0] ;
				
				if (jQuery("#"+field.id).attr('tipologia') == 'checkbox') {
					
					if (!jQuery("#ID_"+campo).attr('checked')) {
						jQuery("label#"+field.id).show();
		      			jQuery("input#ID_"+campo).focus();
		      			err = true ;
		      			return false ;
		      			
					}
				}
				if (jQuery("#"+field.id).attr('tipologia') == 'VAR') {
					
					if (jQuery("#"+campo).val() == "" || jQuery("#"+campo).val() == 1) {
		      			jQuery("label#"+field.id).show();
		      			jQuery("input#"+campo).focus();
		      			err = true ;
		      			return false ;
		      			
		    		}
					
				}
				else {
					
					if (jQuery("#ID_"+campo).val() == "") {
		      			jQuery("label#"+field.id).show();
		      			jQuery("input#ID_"+campo).focus();
		      			err = true ;
		      			return false ;
		      			
		    		}
		    	}

			}
			
			if (errorId[1] == 'email') {
				
				var campo = errorId[0] ;
				var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
			    if (jQuery("#ID_"+campo).val().search(emailRegEx) == -1) {
			    	jQuery("label#"+field.id).show();
	      			jQuery("input#ID_"+campo).focus();
			    	err = true ;
	      			return false ;
			    }
			    
			}
			
			
			if (errorId[1] == 'login') {

				var logincheck = "obj="+obj+"&action=checkLogin&login="+encodeURIComponent(jQuery('#ID_XACCESS01').val()) ;
				
				var statusLogin = 	jQuery.ajax({
										async: false,
										url: "./ajax/moduli.php",
										data: logincheck
									}).responseText;
 
				if (statusLogin == 'ko') {
			    	jQuery("label#"+field.id).show();
	      			jQuery("input#ID_"+campo).focus();
			    	err = true ;
	      			return false ;
			    }
			}
			
			if (errorId[1] == 'account') {
			
				var campo = errorId[0] ;
				
				if (jQuery("input[id='ID_XUT49']:checked").val() == 1) {
			    	if (jQuery("#ID_"+campo).val() == "") {
		      			jQuery("label#"+field.id).show();
		      			jQuery("input#ID_"+campo).focus();
		      			err = true ;
		      			return false ;		      			
		    		}
			    }
			    
			}

		}
		catch(e) {}

	}) ;
	
	return err ;
}
