var base_url = 'http://' +  location.hostname;	


/**
* funzione per mostrare un errore
**/

function showError(error_message) {
	alert(error_message);
}

/**
* funzione per la richiesta del PIN
**/
function pin_request() {
	var msisdn = document.getElementById('msisdn_pin').value;
	var do_request = true;
	
	if (msisdn.length < 9 || msisdn.length > 10 || isNaN(msisdn)) {
		showError('Il numero di telefono deve essere composto da 9 o 10 cifre !');
		do_request = false;
	}
	
	if (do_request){
		var sUrl = base_url + '/registrazione/richiedi_pin/39' + msisdn;
			
		var pin_callback = {
				success: function(o) {
			   					showError(o.responseText);
						 }, 
				failure: function(o) {
							showError(o.responseText);
						 }
		}
		//alert(sUrl); 
		var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, pin_callback, null); 
	}
}

/**
* funzione per la richiesta disponibilità nickname
**/

function check_nick() {
	var nickname = document.getElementById('nick_to_check').value;
	
	if (nickname.length < 3 || nickname.length > 15) {
		showError('Il nickname deve essere lungo tra 3 e 15 caratteri !');
	}
	else {
		var sUrl = base_url + '/registrazione/controlla_nick/' + nickname;
		
		var nick_callback = {
			success: function(o) {
						showError(o.responseText);
					}, 
			failure: function(o) {
						showError(o.responseText);
					 }
		} 
		var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, nick_callback, null); 
	}
}

/**
* funzione per la validazione dell'input del primo step di registrazione
**/

function validateRegistration(c_form) {
	// nickname
	if (c_form.nick.value.length < 3 || c_form.nick.value.length >10) {
		errore = "Devi inserire un nickname tra i 3 e i 10 caratteri di lunghezza !"; 	
	    showError(errore);
		c_form.nick.focus();
		return false;
	}
	
	// Codice PIN
	if (c_form.auth_code.value == '' || c_form.auth_code.value.length < 5 || isNaN(c_form.auth_code.value) ) {
		   errore = "Devi inserire il codice flirt che hai ricevuto via SMS!"; 	
	       showError(errore);
		   c_form.auth_code.focus();
		   return false;
	}
	
	// msisdn
	if (c_form.msisdn.value.length < 9 || c_form.msisdn.value.length > 10 || isNaN(c_form.msisdn.value)) {
		showError('Il numero di telefono deve essere composto da 9 o 10 cifre !');
		c_form.msisdn.focus();
		return false;
	}
	
	// email 
	if (c_form.email.value!= '') {
		   var goodEmail = c_form.email.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
		   if (!goodEmail) {
		   	errore = "Attenzione! Inserire un indirizzo email valido."; 	
	        showError(errore);
			c_form.email.focus();
		    return false;
		   }   
		} else {
			errore = "Attenzione! Inserire un indirizzo email valido."; 	
	        showError(errore);
			c_form.email.focus();
		    return false;
		}
	
	 // conferma della mail	
	 if (c_form.email.value != c_form.email_confirm.value ) {
		   errore = "La tua email di conferma è differente dalla tua email ! !"; 	
	       showError(errore);
		   c_form.email_confirm.focus();
		   return false;
	  }
	 
	 // password
	 if (c_form.password.value.length < 4 || c_form.password.value.length > 20  ) {
		   errore = "Devi inserire una password tra i 4 e i 20 caratteri ! !"; 	
	       showError(errore);
		   c_form.password.focus();
		   return false;
	}
	
	// conferma della password
	if (c_form.password.value != c_form.password_confirm.value ) {
		   errore = "La password di conferma è differente dalla tua password ! !"; 	
	       showError(errore);
		   c_form.password_confirm.focus();
		   return false;
	}
	
	// gender
	gender = false;
	for (counter = 0; counter < c_form.gender.length; counter++){
		if (c_form.gender[counter].checked) {
			gender = true; 
		}
	}	
		
	if (!gender) {
		errore = "Devi selezionare il tuo sesso !"; 	
	    showError(errore);
		return false;
	}
	
	// data di nascita
	if (c_form.day.value == -1 || c_form.month.value == -1 || c_form.year.value == -1) {
		   errore = "Devi selezionare la tua data di nascita !"; 	
	       c_form.day.focus();
		   showError(errore);
		   return false;
	}
	else {
			// This instruction will create a date object
		   source_date = new Date(c_form.year.value,(c_form.month.value)-1,c_form.day.value);
		   if(c_form.year.value != source_date.getFullYear() || c_form.month.value != (source_date.getMonth()+1) || c_form.day.value != source_date.getDate())
		   {
		      errore = "Devi scegliere una data di nascita corretta."; 	
			  c_form.day.focus();
			  showError(errore);	
		      return false;
		   }
	}
	
	// Provincia
	if (c_form.location_id.value == -1) {
		   errore = "Devi selezionare la tua provincia !"; 	
	       showError(errore);
		   c_form.location_id.focus();
		   return false;
	}
	
	// Descrizione
	if (c_form.description.value.length > 140) {
		   errore = "Inserisci una descrizione più corta !"; 	
	       showError(errore);
		   c_form.description.focus();
		   return false;
	}
	
	// Termini e condizioni
	if (!c_form.terms.checked) {
		   errore = "Devi accettare le condizioni per proseguire !"; 	
	       showError(errore);
		   return false;
	}
		
	return true;
}


