var chars="";

var DIGITS="0123456789";
var ALPHABETICS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
var ALPHANUMERICS = ALPHABETICS + DIGITS;
var SPECIAL = "!A@BCEDFGIHJKMLNOPQSRTUVXZY[\]^_a`bcedfgihjkmlnopqsrtuvxzy{|}мийтащ<>?=()/&%$Ј|\n";
var MAIL = "@.-_";
var TELEPHONE = "+() ";
var SURNAME = "-' ";
var NAME = " -,'";
var UID = ".-_";
var ADDR = " ,.-/'";
var QUESTIONRESPONSE = "@|!\"$&?,;.:_-()+*' ";
var WHITESPACE = " \t\n\r";

// Constants to define max and min length

var MAX_NAME_LENGTH = 60;
var MIN_NAME_LENGTH = 1;
var MAX_SN_LENGTH = 60;
var MIN_SN_LENGTH = 1;
var MAX_MAIL_LENGTH = 60;
var MIN_MAIL_LENGTH = 6;
var MAX_TELEPHONENUMBER_LENGTH = 30;
var MIN_TELEPHONENUMBER_LENGTH = 0;
var MAX_USR_LENGTH = 30;
var MIN_USR_LENGTH = 6;
var MAX_NICK_LENGTH = 30;
var MIN_NICK_LENGTH = 6;
var MAX_DESC_LENGTH = 1000;
var MIN_DESC_LENGTH = 1;

/************** VARIABILI PER LA COMPOSIZIONE DEI MESSAGGI DI ERRORE **********/

var LBL_SN="Cognome";
var LBL_NAME="Nome";
var LBL_MAIL="Email";
var LBL_TELEPHONENUMBER="Telefono";
var LBL_USR="Username medisaet.it";
var LBL_NICK="Nickname community mediaset.it";
var LBL_SO="Sistema Operativo";
var LBL_BROWSER="Browser";
var LBL_CONN="Connessione";
var LBL_PROV="Provider";
var LBL_PROBL="Problema";
var LBL_DESC="Descrizione";


var LBL_INVALIDLENGTHPREFIX="La lunghezza del campo";
var LBL_INVALIDLENGTHSUFFIX="deve essere compresa tra";
var LBL_INVALIDCHARSPREFIX="Il campo";
var LBL_INVALIDCHARSSUFFIX="contiene caratteri non validi";
var LBL_NOTMATCHINGPREFIX="Il campo";
var LBL_NOTMATCHINGSUFFIX="non coincide con la sua conferma";
var LBL_EMPTYPREFIX="Il campo";
var LBL_EMPTYSUFFIX="e' obbligatorio";
var LBL_WRONGFORMATPREFIX="Il formato del campo";
var LBL_WRONGFORMATSUFFIX="e' errato";
var LBL_USRNAMEEQUALSPASSWORD="Lo username non puo' coincidere con la password";
var LBL_USRNAMEEQUALSNEWPASSWORD="Lo username non puo' coincidere con la nuova password";

function isValidLength(theString,min,max){
	if(theString.length>=min && theString.length<=max) return true; else return false;
}

function getParameter(sName) {
	var queryString = window.location.search.substring(1);
	if (queryString) {
		var parameters = queryString.split("&");
		for (var i = 0; i < parameters.length; i++) {
			var parameter = parameters[i].split("=");
			var parameterName = parameter[0];
			var parameterValue = parameter[1];
			if (sName == parameterName) return parameterValue;
		}
	}
	return null;
}

function checkEmail(theObj ){
	var theString=theObj.value;
	
    if (isEmpty(theString))
        return warn(theObj, LBL_MAIL, LBL_EMPTYPREFIX, LBL_EMPTYSUFFIX);
    if (!isValidLength(theString, MIN_MAIL_LENGTH, MAX_MAIL_LENGTH))
        return warn(theObj, LBL_MAIL, LBL_INVALIDLENGTHPREFIX, LBL_INVALIDLENGTHSUFFIX + " " + MIN_MAIL_LENGTH + " e " + MAX_MAIL_LENGTH);
    if (!checkString(theString, ALPHANUMERICS+MAIL)){
      
        return warn(theObj, LBL_MAIL, LBL_INVALIDCHARSPREFIX, LBL_INVALIDCHARSSUFFIX+" ("+chars+")");
      }
      
    if ((theString.indexOf("@")<0) || (theString.indexOf("@")!=theString.lastIndexOf("@"))){
     
        return warn(theObj, LBL_MAIL, LBL_WRONGFORMATPREFIX, LBL_WRONGFORMATSUFFIX);
      }
    if(theString.substring(theString.indexOf("."),theString.length).length<3)
    	return warn(theObj, LBL_MAIL, LBL_WRONGFORMATPREFIX, LBL_WRONGFORMATSUFFIX);
    return true;
}
// validazione campo Telefono
function checkTelephone(theObj){
	var theString=theObj.value;
	if (isEmpty(theString))
		return warn(theObj, LBL_TELEPHONENUMBER, LBL_INVALIDLENGTHPREFIX, LBL_INVALIDLENGTHSUFFIX + " " + MIN_TELEPHONENUMBER_LENGTH + " e " + MAX_TELEPHONENUMBER_LENGTH);
	if (!isValidLength(theString, MIN_TELEPHONENUMBER_LENGTH, MAX_TELEPHONENUMBER_LENGTH))
        	return warn(theObj, LBL_TELEPHONENUMBER, LBL_INVALIDLENGTHPREFIX, LBL_INVALIDLENGTHSUFFIX + " " + MIN_TELEPHONENUMBER_LENGTH + " e " + MAX_TELEPHONENUMBER_LENGTH);
	if (!checkString(theString,DIGITS+TELEPHONE))
        	return warn(theObj, LBL_TELEPHONENUMBER, LBL_INVALIDCHARSPREFIX, LBL_INVALIDCHARSSUFFIX);
	return true;
}

function checkMessaggio(theString,theLabel,option)
{
	
	if(option=='1')
	{
		if (isEmpty(theString))
		{
			return warn(theLabel,LBL_EMPTYPREFIX,LBL_EMPTYSUFFIX);
		}
		if (!isValidLength(theString, MIN_NAME_LENGTH, MAX_NAME_LENGTH))
        return warn(theLabel, LBL_INVALIDLENGTHPREFIX, LBL_INVALIDLENGTHSUFFIX + " " + MIN_NAME_LENGTH + " e " + MAX_NAME_LENGTH);
	
	}	
	return true;
}
function isEmpty(theString){
	if (theString==null) return true;
	if (theString.length<1) return true;
	if (theString=="") return true;
	if (checkString(theString,WHITESPACE)) return true;
	return false;
}

function warn(fieldName,mPrefix,mSuffix)
{
	alert (mPrefix + " " + fieldName + " " + mSuffix);	
	return false;

}
function warn(theObj,fieldName,mPrefix,mSuffix){
	alert (mPrefix + " " + fieldName + " " + mSuffix);
	theObj.focus();
	return false;
}
function checkString(theString,universe)
{	
	var currentChar;
	for(i=0;i<theString.length;i++)
	{
		currentChar=theString.charAt(i);
		if (universe.indexOf(currentChar)==-1) 
		{					
			return false;
		}
	}
	return true;
}
var pathAuthCheck='http://massmailingservice.txt.it/newsletter/digitaleAddUser.jsp';
//var pathAuthCheck2='http://massmailingservice.txt.it/newsletter/digitaleAddUser2.jsp?offerta=6';
var pathAuthCheck2='http://massmailingservice.txt.it/newsletter/digitaleAddUser2.jsp?offerta=' + getParameter('offerta');

function checkConsenso(){
	
   var o = document.getElementById('si_consenso');
   var t = document.getElementById('no_consenso');
   
   if ( (o.checked == false ) )
   {
      alert ("Per poter procedere e' necessario accettare l'informativa per il trattamento dei dati personali.");
      		
      form.elements.subscription.focus();
      return false;
   }
   return true;

	
}

// validazione del campo "COGNOME"
function checkSurname(theObj){
	var theString=theObj.value;
	if (isEmpty(theString))
        return warn(theObj, LBL_SN, LBL_EMPTYPREFIX,LBL_EMPTYSUFFIX);
	if (!isValidLength(theString, MIN_SN_LENGTH,MAX_SN_LENGTH))
        return warn(theObj, LBL_SN, LBL_INVALIDLENGTHPREFIX,LBL_INVALIDLENGTHSUFFIX + " " + MIN_SN_LENGTH + " e " + MAX_SN_LENGTH);
	if (!checkString(theString, ALPHABETICS+SPECIAL+SURNAME))
        return warn(theObj, LBL_SN, LBL_INVALIDCHARSPREFIX, LBL_INVALIDCHARSSUFFIX+" ("+chars+")");
	return true;
}


/* validazione del campo "NOME" */
function checkName(theObj){
    var theString=theObj.value;
    if (isEmpty(theString))
        return warn(theObj, LBL_NAME,LBL_EMPTYPREFIX, LBL_EMPTYSUFFIX);
    if (!isValidLength(theString, MIN_NAME_LENGTH, MAX_NAME_LENGTH))
        return warn(theObj, LBL_NAME,LBL_INVALIDLENGTHPREFIX, LBL_INVALIDLENGTHSUFFIX + " " + MIN_NAME_LENGTH + " e " + MAX_NAME_LENGTH);
	if (!checkString(theString, ALPHABETICS+SPECIAL+NAME))
        return warn(theObj, LBL_NAME,LBL_INVALIDCHARSPREFIX, LBL_INVALIDCHARSSUFFIX+" ("+chars+")");
    return true;
}

function checkForm(form){
	// controlli fields non vuoti
	var email= form.elements['email'];
	var cognome= form.elements['cognome'];
	var nome= form.elements['nome'];
	var privacy= form.elements['subscription'];
	
	//alert('CHECK-paese--->' + form.elements['paese'].value);
	//alert('CHECK-mansione--->' + form.elements['mansione'].value);
	//alert('CHECK-checkEmail--->'+ checkEmail(email));
	//alert('CHECK-checkMessaggio-cognome-->' + checkMessaggio(cognome,LBL_SN,1));
	//alert('CHECK-checkMessaggio--nome->' + checkMessaggio(nome,LBL_NAME,1));
	
	if(checkSurname(cognome)&&  checkName(nome) && checkEmail(email) && checkConsenso(privacy))
		{//alert('CHECK-email2 dopo--->' + email);
		//alert('CHECK-cognome dopo--->' + cognome);
		//alert('CHECK-nome dopo--->' + nome);
		   form.action=pathAuthCheck;
	      return true;  
	      //alert('param--->' + params ); 	      
	      //document.getElementById('newsletter').innerHTML = "";
	   } 
	   
}

function checkForm2(form){
	// controlli fields non vuoti
	var email= form.elements['email'];
	var cognome= form.elements['cognome'];
	var nome= form.elements['nome'];
	var telefono= form.elements['telefono'];
	var privacy= form.elements['subscription'];
	
	//alert('CHECK-paese--->' + form.elements['paese'].value);
	//alert('CHECK-mansione--->' + form.elements['mansione'].value);
	//alert('CHECK-checkEmail--->'+ checkEmail(email));
	//alert('CHECK-checkMessaggio-cognome-->' + checkMessaggio(cognome,LBL_SN,1));
	//alert('CHECK-Telefono--nome->' + checkTelephone(form.elements['telefono']));
	
	if(checkSurname(cognome)&&  checkName(nome) && checkEmail(email) && checkTelephone(telefono) && checkConsenso(privacy))
		{//alert('CHECK-email2 dopo--->' + email);
		//alert('CHECK-cognome dopo--->' + cognome);
		//alert('CHECK-getParameter--->' + getParameter('offerta'));
		//alert('CHECK-getParameter--->' + pathAuthCheck2);
		   form.action=pathAuthCheck2;
	      return true;  
	      //alert('param--->' + params ); 	      
	      //document.getElementById('newsletter').innerHTML = "";
	   } 
	   
}
