﻿//--- check.js
var txtPhoneCallDate;
var ddlTitle;
var txtFirstName;
var txtLastName;
var txtFonction;
var txtAddress;
var tbZipCode;
var ddlInseeCode;
var txtPhoneNumber;
var ddlPhoneCallTime;
var txtEmail;

// --------------------------
function CheckAllControls()
{
   var frm = document.Form1;
 
     if (frm.elements['txtProfessionTypeID'].value.trim() == "3" )
    {
    	if (IsTXTCompleted(frm, 'txtCorporateName', 'Veuillez préciser le nom de l\'association') == false) return false;
    }
    else
    {
       	if (IsTXTCompleted(frm, 'txtCorporateName', 'Veuillez préciser le nom de la société') == false) return false;
    }
	
	if (IsTXTCompleted(frm, 'txtCreateCorporateDate', "Veuillez préciser l'année de création de l'entreprise") == false) return false;
	
	if (IsTXTCompleted(frm, 'txtSIREN', ' Le champ Numéro de SIREN n\'a pas été rempli ') == false) return false;
	if (IsTXTCompleted(frm, 'txtAPECode', ' Le champ Code APE / NAF n\'a pas été rempli ') == false) return false;
		
    if (IsDDLCompleted(frm, 'ddlActivityDomains', ' Le champ Secteur d\'activité n\'a pas été rempli ') == false) return false;
	if (IsTXTCompleted(frm, 'txtActivityDomainName', 'Le champ Secteur d\'activité n\'a pas été rempli') == false) return false;
	if (IsTXTCompleted(frm, 'ddlActivitySubDomains', 'Le champ métier n\'a pas été rempli') == false) return false;
	if (IsTXTCompleted(frm, 'txtActivityDescription', ' Veuillez préciser l\'activité ') == false) return false;
   

	if (IsDDLCompleted(frm, 'ddlProductTypes', ' Le champ Besoin d\'assurance n\'a pas été rempli ') == false) return false;

	if (IsTXTCompleted(frm, 'txtEmployeesNumber', ' Veuillez préciser le nombre de salariés ') == false) return false;
	if (IsTXTCompleted(frm, 'txtEmpNbToInsure', ' Veuillez préciser le nombre de salariés à assurer') == false) return false;
	if (IsTXTCompleted(frm, 'txtSurface', ' Veuillez préciser la surface des locaux ') == false) return false;
 
	return true;
}

 
function checkAddress()
{
var frm = document.Form1;
 // bloc adresse
 if (IsTXTCompleted(frm, txtPhoneCallDate, ' Le champ Date du rdv n\'a pas été rempli ') == false) 
 	{
 	    return false;
 	}
 	else
 	{
	    var sDate = frm.elements[txtPhoneCallDate].value ;
    	
	    if (!isDate(sDate))
	    {
		    alert('Date du rendez-vous incorrecte ! ')
		    return false;
	    }

        if (isDateInThePast(sDate))
        {
	        alert('Veuillez choisir une date postérieure à la date du jour ')
	        return false;
        }

        if (isWeekEndDay(sDate))
        {
	        alert('Veuillez choisir un autre jour qu\'un dimanche ')
	        return false;
        }

 	}
 	
	if (IsDDLCompleted(frm, ddlTitle, ' Le champ Titre n\'a pas été rempli ') == false) return false;
	if (IsDDLCompleted(frm, txtFirstName, ' Veuillez préciser votre prénom ') == false) return false;
 	if (test_letters_only(frm.elements[txtFirstName].value, 'prénom') == false) 
        {
            frm.elements[txtFirstName].focus();
 	        return false;
        }


	if (IsTXTCompleted(frm, txtLastName, ' Veuillez préciser votre nom  ') == false) return false;
 	if (test_letters_only(frm.elements[txtLastName].value, 'nom') == false) 
        {
            frm.elements[txtLastName].focus();
 	        return false;
        }


    if (frm.elements[txtFonction])
    {
        
	    if (IsTXTCompleted(frm, txtFonction, ' Veuillez préciser votre fonction  ') == false) return false;
	    if (test_letters_only(frm.elements[txtFonction].value, 'Fonction') == false) 
            {
                frm.elements[txtFonction].focus();
 	            return false;
            }
    }

	if (IsTXTCompleted(frm, txtAddress, ' Veuillez préciser votre adresse ') == false) return false;

	if (IsTXTCompleted(frm, tbZipCode, ' Veuillez préciser votre code postal ') == false) return false;
	
	if (IsDDLCompleted(frm, ddlInseeCode, ' Veuillez préciser votre ville ') == false) return false;

	if (IsTXTCompleted(frm, txtEmail, ' Veuillez préciser votre adresse email ') == false) return false;
	
	if (IsTXTCompleted(frm, txtPhoneNumber, ' Veuillez préciser votre téléphone ') == false) return false;
	
	if (IsTXTCompleted(frm, txtPhoneCallDate, ' Le champ Date d\'appel n\'a pas été rempli ') == false) return false;

	if (IsDDLCompleted(frm, ddlPhoneCallTime, ' Le champ Horaire d\'appel souhaité n\'a pas été rempli ') == false) return false;


	 
	if (frm.elements[txtEmail].value != '')
	{
		if (TestEmail(trim(frm.elements[txtEmail].value,' ')) != 0){
			alert('Vérifiez votre adresse email');
			frm.elements[txtEmail].focus();
			return false;
		}
	}
	
	if (test_NumTel(frm.elements[txtPhoneNumber].value, 'téléphone') == false) 
        {
            frm.elements[txtPhoneNumber].focus();
 	        return false;
        }

    return true;
}

//----------------------------
// Test le nom et le prénom
function test_letters_only(oField, sFieldName)
{
  var chainez
  if (deleteEspace(oField) == "")
  {
  	alert('Veuillez nous indiquer votre' + sFieldName)
  	return false
  }
  if (oField.length > 32) {
  	msg = 'Le taille du champ ' + sFieldName + ' est limitée à 32 lettres '
  	alert(msg)
  	return false
  }
  for (var i = 0; i < oField.length ; i++) 
  { 
  	chainez = oField.substring (i, i + 1); 
  	if ((chainez > "0") && (chainez < "9") ) 
      {
        msg = 'Veuillez saisir des caractères non numériques.'
        alert(msg)
        return false
        break;
  	} 
  } 	
  return true;
}

function isWeekEndDay(sFrenchDateJJMMYYYYWithSlashes)
{
    var tabDate = (sFrenchDateJJMMYYYYWithSlashes).split("/");
	var JJ = tabDate[0];
	var MM = tabDate[1];
	var AA = tabDate[2];
    
    var dInputDate = new Date(MM + "/" + JJ + "/" + AA );
    
    if  (dInputDate.getDay() == 0) 
    {
        return true;
    }
    else
    {
        return false;
    }
}

function isDateInThePast(sFrenchDateJJMMYYYYWithSlashes)
{
    var tabDate = (sFrenchDateJJMMYYYYWithSlashes).split("/");
	var JJ = tabDate[0];
	var MM = tabDate[1];
	var AA = tabDate[2];
    
    var dInputDate = new Date(MM + "/" + JJ + "/" + AA );
    var dToday = new Date();
    
    if (dInputDate <= dToday)
    {
    	return true;
    }
    else
    {
    	return false;
    }  
}

function isDate(maDate) {

	
	
	tabDate = (maDate).split("/");
	
	if(tabDate.length!=3) return false;
	
	JJ = tabDate[0];
	MM = tabDate[1];
	AA = tabDate[2];
	
	if ( isNaN(JJ) || isNaN(MM) || isNaN(AA) )  return false;
	
	if (!isNumeric(JJ)) return false;
	if (!isNumeric(MM)) return false;
	if (!isNumeric(AA)||AA.length!=4) return false;

	iJJ = new Number(JJ);
	iMM = new Number(MM);
	iAA = new Number(AA);
	
	var newDate = new Date();
	newDate.setFullYear(iAA,iMM-1,iJJ)
	
	if (newDate=="NaN" || newDate=="Invalid Date") return false;
	 
	if (iJJ < 1 || iJJ > 31) return false;
	if (iAA < 1901 ) return false;
	if (iAA > 2020 ) return false;  
	
	//Mois de 30 jours
	if (iJJ>30&&(iMM==2||iMM==4||iMM==6||iMM==9||iMM==11)) return false;
	
	//Mois de Fevrier 
	if (iMM==2){
	if (iJJ>29)  return false;
	
	if ((iJJ>28)&&!(((iAA % 4)==0) && ((iAA % 100)!=0) || ((iAA % 400)==0))) return false;
	}
	
	if (iMM < 1 || iMM > 12) return false;
	return true;
}

function IsTXTCompleted(frm, sControlName, sAlert)
{
    if (frm.elements[sControlName] != null)
    {
		if (frm.elements[sControlName].value == "")
		{
			frm.elements[sControlName].focus();
			alert(sAlert);
			return false;
		}
		else
		{
			return true;
		}
	}
}

function IsDDLCompleted(frm, sControlName, sAlert)
{
    
    if (frm.elements[sControlName] != null)
    {
		if ( (frm.elements[sControlName].value == "--") ||  (frm.elements[sControlName].value == "") ||  (frm.elements[sControlName].value == "0") ||  (frm.elements[sControlName].value == "sans objet")  ||  (frm.elements[sControlName].value.trim() == "-- Sélectionnez --")  )
		{
			frm.elements[sControlName].focus();
			alert(sAlert);
			return false;
		}
		else
		{
			return true;
		}
	}
}


  // Test et modifie le code postal
  function testCP(val)
  {
		// Test si la valeur est numérique
		var msgCP
		if (val == ""){	return false }
		else
		{
			if ( !(tester(val)) )
			{
				return false
			}
		
			// Test si la valeur est un code postal
			if ( val.length != 5 ) 
			{
				alert('Code postal incorrect : un code postal est composé de 5 chiffres')
				return false
			}

			msgCP = "Etes-vous certain d\'avoir saisi un code postal du territoire français ?"
				
			// Test si le CP est compris entre 2 valeurs
			if ( (val < 1000) || (val > 99000) || ((val >= 96000) && (val <= 96999)))
			{
				alert(msgCP)
				return false
			}
			
			// Test si le CP correspond à la Corse
			
			/*
			if ( (20000 <= val) && (val < 21000) )
			{
				alert(msgCP)
				return false
			}
			*/
		}
		return true
  }// Fin de TestCP


  //---------------------------------
	// Test si la valeur est numérique 
	function tester(chaine) { 
	var chain = new String(chaine);
	erreur=0;
	for (var i = 0; i < chain.length ; i++) 
	{ 
		var chainez = chain.substring (i, i + 1); 
		if (chainez < "0" || "9" < chainez) 
			{
			erreur=2 ; 
			break;
			} 
	} 
	if (erreur == 2 ) 
	{ 
		alert ("Veuillez saisir une valeur numerique" ) ;    
		erreur=0;
		return false;
	}
	else {return true;}
	}
	
	
	function LoadList(ArrayText,ArrayValues,ctrlSelect,strdefaultvalue,formName){
   		var i=0;
   		var i_selected=0;
   		document.forms[formName].elements[ctrlSelect].length=ArrayText.length - 1;
   		document.forms[formName].elements[ctrlSelect].style["visibility"] = "visible";
		for (i=0; i<ArrayText.length; i++) {
			if ((strdefaultvalue!='') && (strdefaultvalue == ArrayValues[i].toString()))
				i_selected = i;
			document.forms[formName].elements[ctrlSelect].options[i]= new Option(ArrayText[i],ArrayValues[i]);
		}
		document.forms[formName].elements[ctrlSelect].options[i_selected].selected=true;
	}

	function trim(s,c){
		return trimEnd(trimStart(s,c),c);
	}

	function trimStart(s,c)
	{
		var iLen = s.length;
		var sOut = "";
		var chr = "";

		for (var i=0; i<iLen; i++)
		{
			chr = s.charAt(i); 
			if ((c == "0") && (iLen == 1))
				sOut = c;
			else { 
				if ((chr==c) && (sOut.length==0)){
				}
				else
				{
					sOut = sOut + chr; 
				}
			}
		}
		return sOut;
	}

	function trimEnd(s,c)
	{
		var iLen = s.length;
		var sOut = "";
		var chr = "";

		for (var i=iLen-1; i>=0; i--)
		{
			chr = s.charAt(i); 
			if ((chr==c) && (sOut.length==0)){
			}
			else
			{
				sOut = chr + sOut; 
			}
		}
		return sOut;
	}
	
	function TestNumTel(num)
	{
		var val; 
		val = deleteEspace(num);
		
		if (val == ""){	return false }
		else
		{
			// Valeur numérique ?
			if ( !(isNumeric(val)) )
			{
				return false;
			}

			if ((val.length < 10) || (val.length > 14))
			{
				return false;
			}
		}
		return true;
	}

	function TestEmail(myEmail)
	{
		tmp_email = deleteEspace(myEmail);
		len = tmp_email.length ;
		
		tmp_email = myEmail;
		//-------------------------------------------------------
		// 1) On parcout une 1er fois la chaine de caractere 
		// pour verifier qu'il n'y est que les carateres voulus
		//
		// Liste des caractere : [A-Z,a-z,0-9,_,.,-,@]
		//
		/*
		msg = "Le format de votre adresse email est incorrect. \n"
		msg = msg + "Elle ne peut etre constituée seulement : \n"
		msg = msg + "   - de lettre (de A à Z) \n"
		msg = msg + "   - de chiffre (de 0 à 9) \n"
		msg = msg + "   - et de certains caracteres comme \"-\", \"_\" et \".\"  "
		*/
		i=0;
		while (i<len)
		{
		myChar = tmp_email.charAt(i);
		if (  (('A' <= myChar) && (myChar <= 'Z')) || 
				(('a' <= myChar) && (myChar <= 'z')) || 
				(('0' <= myChar) && (myChar <= '9')) || 
				(myChar == '@') || (myChar == '.') || 
				(myChar == '_') || (myChar == '-')  )
		{
			// Tout est OK
		}
		else
		{
			return 1;
		}
		i = i + 1;
		}
		

		//----------------------------
		// 2) Le caractere '@'
		//
		
		//----
		// 2.1) au moin un caractere @ et pas en 1er position
		i = tmp_email.indexOf("@");
		// Pas de @
		if (i == -1) 
		{
			return 2;
		}
		// @ en 1er position
		if (i == 0) 
		{
			return 3;
		}
		
		//----
		// 2.2) Un seul et unique caratere @
		tmp_domaine = tmp_email.substr(i+1);
		j = tmp_domaine.indexOf("@");
		if (j != -1)
		{
			return 4;
		}

		//----
		// 2.3) Sequences interdites autour du @
		substr1 = tmp_email.substr(i-1,2);
		substr2 = tmp_email.substr(i,2);
		if ( (substr1 == '.@') || (substr2 == '@.') ||
			(substr1 == '-@') || (substr2 == '@-') || 
			(substr1 == '_@') || (substr2 == '@_') )
		{
			return 5;
		}

		// 3) l'extension 
		if ((tmp_email.substr(len-3,1) != '.') && (tmp_email.substr(len-4,1) != '.'))  
		{
			return 6;
		}
		if ((tmp_email.lastIndexOf(".") != len-3) && (tmp_email.lastIndexOf(".") != len-4))  	
		{
			return 7;
		}

		i=tmp_email.lastIndexOf(".");
		while (i<len)
		{
		myChar = tmp_email.charAt(i);
		if (  (('A' <= myChar) && (myChar <= 'Z')) || 
				(('a' <= myChar) && (myChar <= 'z')) || 
				(myChar == '.'))
		{
			// Tout est OK
		}
		else
		{
			return 7;
		}
		i = i + 1;
		}
		
		return 0 ; 

	}
		
		
	// --------------------------
	// Suppression des espaces 
	//---------------------------
	function  deleteEspace(chaine)
	{
		retour = ""
		lenChaine = chaine.length 
		i=0
		while (i < lenChaine)
		{
			subSTR_i = chaine.substr(i,1)
			codeStr_i = chaine.charCodeAt(i)
			if ( subSTR_i != " " )
			{
				retour = retour.concat(subSTR_i)
			}
			i++
		}
		return retour
	}
	function isNumeric(strSaisie) {
		var iNumeric = 1;

		if (strSaisie != "") {
			for (i=0; i < strSaisie.length; i++)
				if (strSaisie.charAt(i) < '0' || strSaisie.charAt(i) > '9')
					iNumeric = 0;
			if (iNumeric == 1)
				return true;
		}
		return false;
	}



	function JJMMAAAA(strdate, b_alert)
	{
			var jour, mois, annee;
			var chaine;
			var i, len;
			
			// teste si la chaine existe
			len	= strdate.length;
			if (len==0) 
			{ 
				return ""; 
			}

			//positionnement sur le premier chiffre
			i = 0;
			while (((strdate.charAt(i)<'0')||(strdate.charAt(i)>'9'))&&(++i<len)) {}
			if (i==len) { 
				if ((b_alert) && (strdate != ''))
					alert('Format de date incorrect.');
				return ""; 
			}

			// extraction du jour
			chaine = "";
			jour	= 0;
			while ((strdate.charAt(i)>='0')&&(strdate.charAt(i)<='9'))
			{
				chaine += strdate.charAt(i);
				jour = jour*10 + eval(strdate.charAt(i),10);
				i++;
				if (i>=len) break;
			}
							
			if ((jour>31)||(jour==0))
			{
				if ((chaine.length==6)||(chaine.length==8))
				{
					//forme jjmmaa ou jjmmaaaa
					jour  = eval(chaine.charAt(0),10)*10+eval(chaine.charAt(1),10);
					mois  = eval(chaine.charAt(2),10)*10+eval(chaine.charAt(3),10);
					annee = eval(chaine.charAt(4),10)*10+eval(chaine.charAt(5),10);
					if (chaine.length==8)
					{
						annee = annee*100 + eval(chaine.charAt(6),10)*10+eval(chaine.charAt(7),10);
					}
					if ((jour>31)||(jour==0)||(mois>12)||(mois==0)) { 
						if ((b_alert) && (strdate != ''))
							alert('Format de date incorrect.');
						return ""; 
					}	
				}
				else { 
					if ((b_alert) && (strdate != ''))
						alert('Format de date incorrect.');
					return ""; 
				}
			}
			else
			{
						
				//positionnement sur le deuxieme chiffre
				while (((strdate.charAt(i)<'1')||(strdate.charAt(i)>'9'))&&(++i<len)) {}
				if (i==len) { 
					if ((b_alert) && (strdate != ''))
						alert('Format de date incorrect.');
					return ""; 
				}

				// extraction du mois
				mois = 0;
				while ((strdate.charAt(i)>='0')&&(strdate.charAt(i)<='9'))
				{
					mois = mois*10 + eval(strdate.charAt(i),10);
					i++;
					if (i>=len) break;
				}
				if ((mois>12)||(mois==0)) { 
					if ((b_alert) && (strdate != ''))
						alert('Format de date incorrect.');
					return "";  
				}
			
				//positionnement sur le troisieme chiffre
				while (((strdate.charAt(i)<'0')||(strdate.charAt(i)>'9'))&&(++i<len)) {}
				if (i==len) { 
					if ((b_alert) && (strdate != ''))
						alert('Format de date incorrect.');
					return ""; 
				}
				
				// extraction de l'année
				annee	= 0;
				while ((strdate.charAt(i)>='0')&&(strdate.charAt(i)<='9'))
				{
					annee = annee*10 + eval(strdate.charAt(i),10);
					i++;
					if (i>=len) break;
				}
			}

			// fenêtrage
			if (annee<15)
			{
				annee += 2000;
			}

			if (annee<100)
			{
				annee += 1900;
			}		

			if ((annee>=100) && (annee.toString().length == 3))
			{
				alert('Format de date incorrect.');
				return "";
			}			
			
			var jourbis, moisbis;
			jourbis = "" + eval(jour);
			moisbis = "" + eval(mois);
			
			if ( jourbis.length<2 )
			{
				jourbis = "0" + eval(jour);
			}
			
			if ( moisbis.length<2 )
			{
				moisbis = "0" + eval(mois);
			}
			
			return	"" + jourbis + "/" + moisbis + "/" + annee;
		}	




 //------------------------------
  // Test le numéro de téléphone 
  function test_NumTel(num)
  {
	var val 
	val = deleteEspace(num)
	
	if (val == ""){	return false }
	else
	{
		// Valeur numérique ?
		if ( !(tester(val)) )
		{
			return false
		}

		if ((val.length < 10) || (val.length > 14))
		{
			alert('Vérifiez votre numéro de téléphone')
			return false
		}
	}
	return true 
  }
  
  //------------------------------
  // Test l'année de création
  function test_DateCreationCorporation(dateAAAA)
  {
    if (dateAAAA !=""){
     var exp=new RegExp("^[0-9]{4}$","g");
     if (! exp.test(dateAAAA) ) {alert("Merci de vérifier la date de création de votre\t\n entreprise.\n\n La réponse doit avoir le format suivant : \n\n \t\t AAAA"); }
     }
  }
  
  //old open.js
  
var browser2 = 1;
if (navigator.appName.substring(0,8) == "Netscape") browser2 = 1;

if (navigator.appName.substring(0,9) == "Microsoft") browser2 = 0;

function openZipCode(url,dimx,dimy,fen)
{
	url1 = url ;//+ "&targetsource=" + window.name ;

	if (browser2 == 0 && navigator.appVersion.indexOf("Win") > 0) dimy=dimy-19;
	featur = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrolling=no,scrollbars=no,resizable=no,width="+ dimx + ",height=" + dimy;
	cl = window.open(url1,fen,featur);
	if (browser2 == 1) cl.focus(); else cl = window.open(url1,fen,featur);
}