/*
EMAIL_ADDRESS_NOT_WELL_FORMED = 101
UNKNOWN_HOST = 102
SERVER_NOT_RESPONDING = 103
DEPRECATED_CHARACTER = 104
INVALID_COUNTRY_CODE = 105
INVALID_LOCAL_PREFIX = 106
INVALID_PHONE_SINTAX = 107
PHONE_NUMBER_TOO_MUCH_SHORT = 108
PHONE_NUMBER_TOO_MUCH_LONG = 109
INPUT_SUCCESSFULLY_VALIDATED = 110
ACCESS_DENIED = 111
msg err su post x 101,105,106,107,108,109
msg ok 110
*/

var language = (document.getElementById("strLanguage")) != null ? (document.getElementById("strLanguage")).value : "";
var serviceKey=(document.getElementById("serviceKey")) != null ? (document.getElementById("serviceKey")).value : "";
var telPrefix=(document.getElementById("tpn")) != null ? (document.getElementById("tpn")).value : "";
var celPrefix=(document.getElementById("mpn")) != null ? (document.getElementById("mpn")).value : "";
var emailName=(document.getElementById("emailName")) != null ? (document.getElementById("emailName")).value : "";
var telName=(document.getElementById("telName")) != null ? (document.getElementById("telName")).value : "";
var cellName=(document.getElementById("celName")) != null ? (document.getElementById("celName")).value : "";
var nMaxFields=(document.getElementById("nFields")) != null ? (document.getElementById("nFields")).value : "";

var count=0;
var isPost=false;
var toRet=true;
var newValue = '';
var newType='';
var oldType = '';
var codice="";
var currField;
var tmpchk="";
/*
	Le seguenti variabili controllano se i campi mail o telefono sono corretti.
	True = corretti -> quindi si passa al submit della form
	False = errati   -> quindi non si effettua la submit della form
*/
var isTelCorrect = true;
var isCelCorrect = true;
var isMailCorrect = true;
var rispostaConfirmTel = true;
var rispostaConfirmCel = true;
var rispostaConfirmSMSTel = "";
var rispostaConfirmSMSCel = "";
var messageResultTel = '';
var messageResultCel = '';
var messageResultMail = '';

var controlloTelefono = '';
var controlloCellulare = '';

function controlloCampi(){
	var controlloEsitoOk = true;
	if(!rispostaConfirmTel){
		if(language == "IT"){
			alert("Controllare il campo Telefono!");
		}
		if(language == "ES"){
			alert("Compruebe el campo Telefono!");
		}
		if(language == "DE"){
			alert("Aktivieren Sie das Feld Telefon!");
		}
		if(language == "FR"){
			alert("Consultez le domaine de Telephone!");
		}
		//alert(rispostaConfirmSMS);
		controlloEsitoOk = false;
	}
	if(!rispostaConfirmCel){
		if(language == "IT"){
			alert("Controllare il campo Cellulare!");
		}
		if(language == "ES"){
			alert("Compruebe el campo Celular!");
		}
		if(language == "DE"){
			alert("Aktivieren Sie das Feld Zellularen!");
		}
		if(language == "FR"){
			alert("Consultez le domaine de Cellulaire!");
		}
		//alert(rispostaConfirmSMS);
		controlloEsitoOk = false;
	}
	if(!isTelCorrect){
		alert(messageResultTel);
		controlloEsitoOk = false;
	}
	if(!isCelCorrect){
		alert(messageResultCel);
		controlloEsitoOk = false;
	}
	if(!isMailCorrect){
		alert(messageResultMail);
		controlloEsitoOk = false;
	}
	
	if(!controlloEsitoOk){
		return false;
	}
	
	return true;
}

function checkBeforePost(){
	
	if(controlloCampi()){
		(document.getElementById("res")).value="";
		isPost=true;
		
		if((emailName=="" || (document.getElementById("emailName")).value=="") && (telName=="" || (document.getElementById("telName")).value=="") && (cellName=="" || (document.getElementById("cellName")).value=="")){
			(document.getElementById("res")).value="Y";
		}
	         
	    setTimeout("checkMail()",1000);
		setTimeout("checkTel()",2000);
		setTimeout("checkCell()",2000);
	}else{
		return false;
	}
	return true;
}

function checkMail(sname){
       //tmpchk=tmpchk+".";
       //alert("enter checkMail");
	isPost=true;
	if (sname != null && sname!=""){ document.getElementById("emailName").value=sname; }
	if(document.getElementById("emailName")){
		if(document.getElementById("emailName").value!=""){
			currField=document.getElementById("emailName");
			var valore=document.getElementById("emailName").value;
			encodeURIComponent(valore);
			callCL('email',valore);
		}
	}
}

function checkTel(sname){
	//tmpchk=tmpchk+".";
        //alert("enter checkTel");
	isPost=true;
	if (sname != null && sname!=""){ document.getElementById("telName").value=sname; } 
	if(document.getElementById("telName") && document.getElementById("telPrefix")){
		if(document.getElementById("telName").value!=""){
			currField=document.getElementById("telName");
			var pValue = (document.getElementById("internationalprefix")).value + "-" + (document.getElementById("telPrefix")).value + document.getElementById("telName").value;
			pValue=encodeURIComponent(pValue);
			callCL('phone',pValue);
		}
	}
}


function checkCell(sname){
	//tmpchk=tmpchk+".";
        // alert("enter checkCell");
	isPost=true;
	if (sname != null && sname!="") { document.getElementById("celName").value=sname; } 
	if(document.getElementById("celName") && document.getElementById("celPrefix")){
		if(document.getElementById("celName").value!=""){
			currField=document.getElementById("celName");
			var cValue = (document.getElementById("internationalprefix")).value + "-" + (document.getElementById("celPrefix")).value + document.getElementById("celName").value;
			cValue=encodeURIComponent(cValue);
			callCL('phone',cValue);
		}
	}
}


function postController(code){
	//var arrGoodCodes=new Array('102','103','104','110','111');
	//var arrBadCodes=new Array('101','105','106','107','108','109');
	var arrBadCodes=new Array('105','106','107','108','109');
	//msg err su post x 101,105,106,107,108,109
	//msg ok 110
	
	var found = false;
	for (i=0;i<arrBadCodes.length;i++){
		if(code==arrBadCodes[i]){
			found = true;
			break;
		}
		
	}
	if(!found){
		return true;
	}else{
		return false;
	}
}


function callCL(newType, newValue){
	// The web service call
	//isPost=true;
	//if(toRet==false) return false;
	var protocol="http://";
	if(String(location.href).substring(0,8)=="https://"){
		protocol="https://";
	}
    var req  = protocol+'cw.contactlab.it/TomatoMailAndPhoneChecker/ContactLabAnalyzer?type='+newType+'&value='+newValue+'&language='+language+'&objReturns=JSON&key='+ 	serviceKey; 
    (document.getElementById('debug')).value = req;
    bObj = new JSONscriptRequest(req); 
    // Build the dynamic script tag
    bObj.buildScriptTag(); 
    // Add the script tag to the page
    bObj.addScriptTag();
	//isPost=false;
}

function getRsp(type, jsonData){
	
    language = (document.getElementById("strLanguage")) != null ? (document.getElementById("strLanguage")).value : "";
	serviceKey=(document.getElementById("serviceKey")) != null ? (document.getElementById("serviceKey")).value : "";
	telPrefix=(document.getElementById("tpn")) != null ? (document.getElementById("tpn")).value : "";
	celPrefix=(document.getElementById("mpn")) != null ? (document.getElementById("mpn")).value : "";
	emailName=(document.getElementById("emailName")) != null ? (document.getElementById("emailName")).value : "";
	telName=(document.getElementById("telName")) != null ? (document.getElementById("telName")).value : "";
	cellName=(document.getElementById("celName")) != null ? (document.getElementById("celName")).value : "";
    nMaxFields=(document.getElementById("nFields")) != null ? (document.getElementById("nFields")).value : "";
	
    //alert("enter with " + type + " and " + jsonData.result);
    (document.getElementById("debug2")).value = 'type='+ type + ';result='+jsonData.result;
	var result = jsonData.result;
	var arrResult = result.split("|");
	var rcode="";
	var rmessage="";
	if(arrResult.length >1){
		rcode=arrResult[0];
		rmessage=arrResult[arrResult.length-1];
	}
	
       if(oldType=='email')    { isMailCorrect = true;}
	   if(oldType=='cellPhone'){ isCelCorrect = true; rispostaConfirmCel = true; }
	   if(oldType=='phone')    { isTelCorrect = true; rispostaConfirmTel = true; }
	   
       if(isPost==true){
		var doundval=-1;
		//alert('asd1'+currField.value);
		//alert('asd3'+postController(rcode));
		if(!postController(rcode)){
			//alert('asd4'+currField.name);
			alert(rmessage);
			res.value=res.value+"N";
			currField.value="";
			//("alert(rmessage)",100);
		}else{
			res.value=res.value+"Y";
		}
	
        }else{
            if(oldType=='email'){
	       (document.getElementById('search_spinner_mail')).style.visibility = 'hidden';
	       if(result.indexOf("|OK|") == 0){
	        
                }else{
				   
				   if(rcode!="110"){
				    alert(rmessage);
					isMailCorrect = false;
					messageResultMail = rmessage;
				   }
			   //(document.getElementById(emailName)).focus();
	        }
                 
	        bObj.removeScriptTag();     
                 
	    }else if(oldType =='phone' || oldType == 'cellPhone'){
	        //var show;
		    if(oldType=='phone'){
				(document.getElementById('search_spinner_phone')).style.visibility = 'hidden';
				if(result.indexOf("|OK|") == 0){
                    rispostaConfirmTel = true;
					rispostaConfirmSMSTel = "";
				}else{
					   //if(rcode=="106"){
						//alert(errTranslate["106"]);
					   //}else{
						
					   //}
					   if(rcode!="110"){
						if(rcode=="106"){
							rispostaConfirmTel = confirm(rmessage);
							rispostaConfirmSMSTel = rmessage;
						}else{
							isTelCorrect = false;
							messageResultTel = rmessage;
							alert(rmessage);
						}
					   }
					   //(document.getElementById("telName")).focus();
				}
            }else{
                 (document.getElementById('search_spinner_mphone')).style.visibility = 'hidden';
			     if(result.indexOf("|OK|") == 0){
					rispostaConfirmCel = true;
					rispostaConfirmSMSCel = "";
                 }else{
					  
					  if(rcode!="110"){
						if(rcode=="106"){
							rispostaConfirmCel = confirm(rmessage);
							rispostaConfirmSMSCel = rmessage;
						}else{
							isCelCorrect = false;
							messageResultCel = rmessage;
							alert(rmessage);
						}
					  }
					  //(document.getElementById("cellName")).focus();
			     }
	          }
		                     
	                            
	       if(result != null && result.indexOf("noErrors") == -1 ){
			 if(result.indexOf("|NO_SAVE|") == 0){
				  if(/*rcode!="106" &&*/ rmessage!="noErrors") alert(rmessage);
								/*
								  if(oldType == 'cellPhone'){
									   (document.getElementById(cellPrefix)).value="";
									   (document.getElementById("cellName")).value="";
									   //(document.getElementById("cellName")).focus();
								  }else{
									   (document.getElementById("telPrefix")).value="";
									   (document.getElementById("telName")).value="";
									   //(document.getElementById("telName")).focus();
								  }
								  */
                                  bObj.removeScriptTag(); 
                        }else{
                                if(1==2){
                                       bObj.removeScriptTag(); 
                                       storePhoneNumber(newValue);
                                 }else{
									/*
									   if(oldType == 'cellPhone'){
										   (document.getElementById(cellPrefix)).value="";
										   (document.getElementById("cellName")).value="";
										   //(document.getElementById("cellName")).focus();
									   }else{
										   (document.getElementById("telPrefix")).value="";
										   (document.getElementById("telName")).value="";
										   //(document.getElementById("telName")).focus();
									   }
									   */
                                       bObj.removeScriptTag(); 
                                  }
                      }
	    
	     }
	   
        }else if(type=='insertPhone'){
	      bObj.removeScriptTag(); 
	}
	   
	    newType='';
	    oldType='';
	    newValue='';
	}
}





function ajaxChkField(type, value, name, prefix) {
    
    isPost=false;
    toRet=true;
	
	if(value == '' && name == ''){
		if(type == 'phone'){
			value = controlloTelefono;
		}
		if(type == 'cellPhone'){
			value = controlloCellulare;
		}
	}else{
		if(type == 'phone'){
			controlloTelefono = value;
		}
		if(type == 'cellPhone'){
			controlloCellulare = value;
		}
	}
	
    newValue = value;
	
	oldType = type ;
    newType = type ;

    if (name){
		if (type=="phone" && prefix){
			telName=name;
			telPrefix=prefix;
		}	
		if (type=="cellPhone" && prefix){
			telName=name;
			telPrefix=prefix;
		}
		if (type=="email"){
			emailName=name;
		}
	}
    if(type =='phone'){
       if((document.getElementById("internationalprefix")).value == ""){
           alert(errTranslate["202"]);
           return null;
       }
	    /*
		if(document.getElementById(telPrefix).value == ""){
			alert(errTranslate["203"]);
			document.getElementById(telPrefix).focus = true;
			return null;
		}	
		*/
	   if(prefix && telPrefix == ""){
           alert(errTranslate["203"]);
           return null;
       }
       newValue = (document.getElementById("internationalprefix")).value + "-" + prefix + value;
   }else if (type == 'cellPhone'){
      if((document.getElementById("internationalprefix")).value == ""){
           alert(errTranslate["202"]);
           return null;
       }
       if((document.getElementById(celPrefix)).value == ""){
           alert(errTranslate["203"]);
            //document.getElementById(celPrefix).focus = true;
           return null;
       }
       newValue = (document.getElementById("internationalprefix")).value + "-" + (document.getElementById(celPrefix)).value + value;
   }else{
       newValue = value;
   }
    
   
    newValue=encodeURIComponent(newValue);
	if(value != "" || name != ''){
	   if(type =='email'){
			if(document.getElementById('search_spinner_mail')){
				(document.getElementById('search_spinner_mail')).style.visibility = 'visible';
			}
	   }else if(type == 'phone'){
			if(document.getElementById('search_spinner_phone')){
				(document.getElementById('search_spinner_phone')).style.visibility = 'visible';
			}
	   }else{
			if(document.getElementById('search_spinner_mphone')){
				(document.getElementById('search_spinner_mphone')).style.visibility = 'visible';
			}
	   }
   }
    
	if(type == 'cellPhone'){
         newType = 'phone';
		 type = 'phone';
    }
	
    if(value != "" || name != ''){
	    // The web service call
		var protocol="http://";
		if(String(location.href).substring(0,8)=="https://"){
			protocol="https://";
		}
	    var req  = protocol+'cw.contactlab.it/TomatoMailAndPhoneChecker/ContactLabAnalyzer?type='+newType+'&value='+newValue+'&language='+language+'&objReturns=JSON&key='+ 	serviceKey; 
		(document.getElementById('debug')).value = req;
		//alert("req0="+req);
		
	    // Create a new request object
	    bObj = new JSONscriptRequest(req); 
	    // Build the dynamic script tag
	    bObj.buildScriptTag(); 
	    // Add the script tag to the page
	    bObj.addScriptTag();
	}
 }
 
 function storePhoneNumber(value){
     value=encodeURIComponent(value);
     
     // The web service call
	var protocol="http://";
	if(String(location.href).substring(0,8)=="https://"){
		protocol="https://";
	}
    var req  = protocol+'cw.contactlab.it/TomatoMailAndPhoneChecker/ContactLabAnalyzer?type=insertPhone&value='+value+'&objReturns=JSON&key='+serviceKey; 
	//alert("req1="+req);
	(document.getElementById('debug')).value = req;
    // Create a new request object
    bObj = new JSONscriptRequest(req); 
    // Build the dynamic script tag
    bObj.buildScriptTag(); 
    // Add the script tag to the page
    bObj.addScriptTag();
    
  }


  