//############ FONCTIONS PERMETTANT DE CENTRER LA POPUP TOUT EN OUTREPASSANT L'ANTIPOPUP #########

function top_centre(hauteur)
	{	 
	 var top=(screen.height-hauteur)/2;	 
	 return top;
	}
	
function left_centre(largeur)
	{	 
	 var left=(screen.width-largeur)/2;	 
	 return left;
	}
//################################################################################################

function formChecker(name){
	this.name=name;
	this.checkventeoulocationouviager = function(){
		if(arguments.length == 0) return false;
		var _form = eval('document.' + arguments[0]);
		var _vente = _form.vente;
		var _location = _form.location;
		var _viager = _form.viager;
		if(_vente.checked == true || _location.checked == true || _viager.checked == true){
			return true;
		}else{
			alert("Vous devez choisir soit une vente ou une location !");
			return false;
		}
	} 
	this.checktypebien = function(){
		if(arguments.length == 0) return false;
		var Typebien = new Array("maison","appartement","terrain","immeuble","loft","parking","batiment","bureau","chateau","hotel","boutique","duplex");
		for(var i=0; i< Typebien.length;i++){
			var checked = eval('document.' + arguments[0] + '.' + Typebien[i] + '.checked');
			if(checked){
				return true;
			}
		}
		alert("Vous devez selectionner un Type de bien.");
		return false;
	}
	this.checkbien = function(){
		if(arguments.length == 0) return false;
		var _form = eval('document.' + arguments[0]);
		var _categorie = _form.categorie.value;
		if(_categorie == 'proposer' || _categorie == 'estimation'){
			return true;
		}else{
			if(_form.bien[0].checked == false && _form.bien[1].checked == false){
				alert("Choisissez un type de transaction.");
				return false;
			}
			if(_form.bien[0].checked == true && _form.prix.value == ''){
				alert("Vous devez indiquer le prix de vente.");
				return false;
			}else if(_form.bien[1].checked == true && _form.prix.value == ''){
				alert("Vous devez indiquer le loyer.");
				return false;
			}else{
				return true;
			}
		}
	}
	this.checkprix = function(){
		if(arguments.length == 0) return false;
		var _form = eval('document.' + arguments[0]);
		var _prix = _form.prix.value;
		if(_prix == ''){
			alert("Vous devez renseigner le champ prix !");
			return false;
		}else{
			return true;

		}
	}
	this.checkprixachat = function(){
		if(arguments.length == 0) return false;
		var _form = eval('document.' + arguments[0]);
		var _prix = _form.prixachat.value;
		if(_prix == ''){
			alert("Vous devez renseigner le champ prix !");
			return false;
		}else if(_prix.length < 4){
			alert("Le prix doit contenir au moins 4 chiffres.");
			return false;
		}else{
			return true;

		}
	}
	this.checkdescriptif = function(){
		if(arguments.length == 0) return false;
		var _desc = eval('document.' + arguments[0] + '.descriptif');
		if(_desc.value != ''){
			return true;
		}else{
			alert("Le champ Descriptif doit être rempli.");
			return false;
		}
	}
	this.checktypesurface = function(){
		if(arguments.length == 0) return false;
		var _F1 = eval('document.' + arguments[0] + '.F1');
		var _F2 = eval('document.' + arguments[0] + '.F2');
		var _F3 = eval('document.' + arguments[0] + '.F3');
		var _F4 = eval('document.' + arguments[0] + '.F4');
		var _F5 = eval('document.' + arguments[0] + '.F5');
		var _maison = eval('document.' + arguments[0] + '.maison');
		var _appartement = eval('document.' + arguments[0] + '.appartement');
		if(_maison.checked==false && _appartement.checked==false){
			return true;
		}
		if(_F1.checked || _F2.checked || _F3.checked || _F4.checked || _F5.checked){
			return true;
		}else{
			alert("Vous devez renseigner le Nombre de Pièces.");
			return false;
		} 
	}
	this.checksurfaceh = function(){
		if(arguments.length == 0) return false;
		var _surfaceh = eval('document.' + arguments[0] + '.surfaceh');
		var _maison = eval('document.' + arguments[0] + '.maison');
		var _appartement = eval('document.' + arguments[0] + '.appartement');
		var _maison = eval('document.' + arguments[0] + '.maison');
		if(_surfaceh.value != ''){
			return true;
		}else{
			if(_maison.checked==true || _appartement.checked==true){
				alert("Vous devez renseigner la Superficie Habitable.");
				return false;
			}else{
				return true;
			}
		}
	}
	this.checklocalisation = function(){
		if(arguments.length == 0) return false;
		var _localisation = eval('document.' + arguments[0] + '.localisation');
		if(_localisation.value != '' && _localisation.value != 'Saisir une localisation ci-dessus'){
			return true;
		}else{
			alert("Vous devez renseigner la localisation où se situe le bien.");
			return false;
		}
	}
	this.checkville = function(){
		if(arguments.length == 0) return false;
		var _ville = eval('document.' + arguments[0] + '.ville');
		if(_ville.value != ''){
			return true;
		}else{
			alert("Vous devez renseigner la Ville où se situe le bien.");
			return false;
		}
	}
	this.checkville1 = function(){
		if(arguments.length == 0) return false;
		var _ville1 = eval('document.' + arguments[0] + '.ville1');
		var _cp1 = eval('document.' + arguments[0] + '.cp1');
		if(_ville1.value != '' || _cp1.value != ''){
			return true;
		}else{
			alert("Vous devez sélectionner une Ville ou indiquer un Code Postal.");
			return false;
		}
	}
	this.checkville2 = function(){
		if(arguments.length == 0) return false;
		var _ville = eval('document.' + arguments[0] + '.ville');
		if(_ville.value != ''){
			return true;
		}else{
			alert("Vous devez indiquer une Ville.");
			return false;
		}
	}
	this.checkvilleOrCp = function(){
		if(arguments.length == 0) return false;
		var _ville1 = eval('document.' + arguments[0] + '.ville1');
		var _dept1 = eval('document.' + arguments[0] + '.dept1');
		if(_ville1.value != '' || _dept1.value != ''){
			return true;
		}else{
			alert("Vous devez sélectionner une Ville ou indiquer un Code Postal.");
			return false;
		}
	}
	this.checkcp = function(){
		if(arguments.length == 0) return false;
		var _cp = eval('document.' + arguments[0] + '.cp');
		if(_cp.value != ''){ 
			return true;
		}else{
			alert("Vous devez renseigner le Code Postal où se situe le bien.");
			return false;
		}
	}
	this.checkcp2 = function(){
		if(arguments.length == 0) return false;
		var _cp = eval('document.' + arguments[0] + '.cp');
		if(_cp.value != ''){ 
			return true;
		}else{
			alert("Vous devez renseigner votre Code Postal.");
			return false;
		}
	}
	this.checkcivilite = function(){
		if(arguments.length == 0) return false;
		var _civilite = eval('document.' + arguments[0] + '.civilite');
		if(_civilite[0].checked == true || _civilite[1].checked == true || _civilite[2].checked == true){
			return true;
		}else{
			alert("Vous devez renseigner le champ Civilité.");
			return false;
		}
	}
	this.checknom = function(){
		if(arguments.length == 0) return false;
		var _nom = eval('document.' + arguments[0] + '.nom');
		if(_nom.value != ''){
			return true;
		}else{
			alert("Vous devez indiquer votre Nom.");
			return false;
		}
	}
	this.checkprenom = function(){
		if(arguments.length == 0) return false;
		var _prenom = eval('document.' + arguments[0] + '.prenom');
		if(_prenom.value != ''){
			return true;
		}else{
			alert("Vous devez indiquer votre Prénom.");
			return false;
		}
	}
	this.checkagence = function(){
		if(arguments.length == 0) return false;
		var _agence = eval('document.' + arguments[0] + '.agence');
		if(_agence.value != ''){
			return true;
		}else{
			alert("Vous devez indiquer votre Agence ou Société.");
			return false;
		}
	}
	this.checkadresse = function(){
		if(arguments.length == 0) return false;
		var _adresse = eval('document.' + arguments[0] + '.adresse');
		if(_adresse.value != ''){
			return true;
		}else{
			alert("Vous devez indiquer votre Adresse.");
			return false;
		}
	}	
	this.checkemail = function(){	 		
		if(arguments.length == 0) return false;
		var _email = eval('document.' + arguments[0] + '.email');
		if(_email.value == '')
			{
			 alert("Vous devez indiquer votre adresse Email.");
			 return false;
			}						
		if(_email.value != '')
			{   		 
	  	 if(checkEmail(_email.value))
			 	{
		 	 	 return true;
				}
	 		 else
	 		 	{
		 		 alert("Le format de cet Email n'est pas valide !");
		 		 return false;
				}		
		  }		  
	}
	
	this.checkemail_confirm = function(){	 		
		if(arguments.length == 0) return false;		
		var _email = eval('document.' + arguments[0] + '.email');
		var _email_confirm = eval('document.' + arguments[0] + '.email_confirm');
		if(_email_confirm.value == ''){
			 alert("Vous devez confirmer votre adresse Email.");
			 return false;
		}						
		if(_email_confirm.value != ''){			 
			//var exp = /w{3}\./i;
	  	 	//var exp2 = /@\D{1,}\.\D{1,}/i;
	  		//var tmp_email = _email_confirm.value.match(exp);
	  	 	//var tmp_email2 = _email_confirm.value.match(exp2);
			
			//if(tmp_email){
		 	//	alert("Le format de cet Email n'est pas valide !");
		 	 //	return false;
			//}else if(tmp_email2){
				if(_email_confirm.value != _email.value){
					alert("Les deux adresses email doivent être indentiques !");
					return false;
				}else{
		 	 	 	return true;
				}
			//}else{
			//	alert("Le format de cet Email n'est pas valide !");
			//	return false;
			//}		
		}		  
	}
	this.checkemailami = function(){	 		
		if(arguments.length == 0) return false;		
		var _email = eval('document.' + arguments[0] + '.emailami');
		if(_email.value == '')
			{
			 alert("Vous devez indiquer l'adresse Email de votre ami.");
			 return false;
			}						
		if(_email.value != '')
			{			 
			 var exp = /w{3}\./i;
			 var exp2 = /@\D{1,}\.\D{1,}/i;
			 var tmp_email = _email.value.match(exp);
			 var tmp_email2 = _email.value.match(exp2);
			 if(tmp_email)
	 		 	{
		 	 	 alert("Le format de cet Email n'est pas valide !");
		 	 	 return false;
				}
	  	 else if(tmp_email2)
			 	{
		 	 	 return true;
				}
	 		 else
	 		 	{
		 		 alert("Le format de cet l'Email de votre ami n'est pas valide !");
		 		 return false;
				}		
		  }		  
	}
	this.checktel = function(){
		if(arguments.length == 0) return false;
		var _tel = eval('document.' + arguments[0] + '.tel');
		if(_tel.value != ''){
			if(_tel.value.length == 10){
				return true;
			}else{
				alert("Le numéro de Téléphone doir contenir 10 chiffres.");
				return false;
			}
		}else{
			alert("Vous devez indiquer votre numéro de Téléphone.");
			return false;
		}
	}
	this.checkValidCp = function(){
		var cpObj = eval('document.' + arguments[0] + '.' + arguments[1]);
		var expCp = /^\d{5}$/;
		if(cpObj.value.match(expCp) || cpObj.value == ''){
			return true;
		}else{
			alert("Le Code Postal doit contenir 5 chiffres.");
			cpObj.value = '';
			cpObj.focus();
			return false;
		}
	}
	this.checkValidDepOrCp = function(){
		var cpObj = eval('document.' + arguments[0] + '.' + arguments[1]);
		var expCp = /^\d{5}$/;
		var expDep = /^\d{2}$/;
		if(cpObj.value.match(expCp) || cpObj.value == '' || cpObj.value.match(expDep)){
			return true;
		}else{
			alert("Le Code Postal ou département non valide.");
			cpObj.value = '';
			cpObj.focus();
			return false;
		}
	}
	this.checkmessage = function(){
		if(arguments.length == 0) return false;
		var _message = eval('document.' + arguments[0] + '.message');
		if(_message.value != ''){
			return true;
		}else{
			alert("Le champ Message doit être rempli.");
			return false;
		}	
	}
	this.checkterrain = function(){
		if(arguments.length == 0) return false;
		var _terrain = eval('document.' + arguments[0] + '.terrain');
		var _surfaceterr = eval('document.' + arguments[0] + '.surfaceterr');
		if(_terrain.checked){
			if(_surfaceterr.value == ''){
				alert("Vous avez sélectionné un Terrain. Par conséquent vous devez renseigner le champ Superficie.");
				return false;
			}else{
				return true;
			}
		}else{
			return true;
		}
	}
	this.checksurfaceh_min = function(){
		if(arguments.length == 0) return false;
		var _surfaceh_min = eval('document.' + arguments[0] + '.surfaceh_min');
		var _surfaceh_max = eval('document.' + arguments[0] + '.surfaceh_max');
		
		if(_surfaceh_min.value == '' && _surfaceh_max.value == ''){
			alert("Vous devez renseigner soit la Superficie Habitable Minimum soit la Superficie Habitable Maximum ou bien les deux.");
			return false;
		}else{
			return true;
		}
	}
	this.checkpassword = function(){
		if(arguments.length == 0) return false;
		var _password = eval('document.' + arguments[0] + '.password');
		if(_password.value == ''){
			alert("Vous devez saisir un mot de passe !");
			return false;
		}else{
			return true;
		}
	}
	this.checkpassword_confirm = function(){
		if(arguments.length == 0) return false;
		var _password_confirm = eval('document.' + arguments[0] + '.password_confirm');
		var _password = eval('document.' + arguments[0] + '.password');
		if(_password_confirm.value == ''){
			alert("Vous devez confirmer votre un mot de passe !");
			return false;
		}else if(_password_confirm.value != _password.value){
			alert("Les deux mots de passe doivent être identique !");
			return false;
		}else{
			return true;
		}
	}
	this.checkprixvente = function(){
		if(arguments.length == 0) return false;
		var _prix = eval('document.' + arguments[0] + '.prix');
		var regExp = /\d\d\d\d\d/;
		if(!_prix.value.match(regExp)){
			alert("Le prix minimum de vente est trop faible(5 chiffres minimum)!");
			return false;
		}else{
			return true;
		}
	}
	this.checkfile_cv = function(){
		if(arguments.length == 0) return false;
		var _cv = eval('document.' + arguments[0] + '.file_cv');
		if(_cv.value == ''){
			alert("Vous devez uploader votre curiculum vitae !");
			return false;
		}else{
			return true;
		}
	}
	this.checkvalidation = function(){
		if(arguments.length == 0) return false;
		var _validation = eval('document.' + arguments[0] + '.btAccepter');
		if(_validation.checked == true){
			return true;
		}else{
			alert("Vous devez accepter de recevoir nos annonces par mail.");
			return false;
		}
	}
	this.checkoptin = function(){
		if(arguments.length == 0) return false;
		var _optin = eval('document.' + arguments[0] + '.optin');
		if(_optin.checked == true){
			return true;
		}else{
			alert("Vous devez accepter les conditions d'utilisation de ce service.");
			return false;
		}
	}
}
//Object FormChecker;
formContact = new formChecker('formContact');

function checkFormContact()
	{
	 // On lance les fonctions 1 à 1 pour voir si tous les paramètres donnés en argument sont OK
	 var error = true;
	 for(var i = 2; i < arguments.length; i++)
	 	{
		 var arg = eval('formContact.check' + arguments[i]);
		 if(arg(arguments[0]))		 	
			 error = false;
		 else
		 	{
			 error = true;
			 break;
			}
		}
	
	 // S'il n'y a aucune erreur, on lance le traitement de la Popup
	 if(!error)
	 	{
		 var _form = eval('document.' + arguments[0]);
		 // Si l'argument Popup est rempli, alors on l'ouvre en HTML et on l'indique à la CGI...
		 if (arguments[1] != "")
			{			 
			 window.open(arguments[1],'POPUP','top='+top_centre(165)+', left='+left_centre(395)+', width=395,height=165,scrollbars=no,status=no,menubar=no');
			}
			
		 // On soumet le formulaire
		 _form.submit();		 
		 
		 // On remet le formulaire à zero...
		 if (arguments[0]!='form_abo') {
		 	_form.reset();
		}
	}
	// Ici, il y a une erreur... on sort.
	else				
		return	
}
function checkFormContactOnClick(){
	 // On lance les fonctions 1 à 1 pour voir si tous les paramètres donnés en argument sont OK
	 var error = true;
	 for(var i = 2; i < arguments.length; i++){
		 var arg = eval('formContact.check' + arguments[i]);
		 if(arg(arguments[0]))		 	
			 error = false;
		 else
		 	{
			 error = true;
			 break;
			}
		}
	
	 // S'il n'y a aucune erreur, on lance le traitement de la Popup
	 if(!error){
		 var _form = eval('document.' + arguments[0]);
		 // Si l'argument Popup est rempli, alors on l'ouvre en HTML et on l'indique à la CGI...
		 if (arguments[1] != ""){
			 window.open(arguments[1],'POPUP','top='+top_centre(165)+', left='+left_centre(395)+', width=395,height=165,scrollbars=no,status=no,menubar=no');
		}
			
		 // On soumet le formulaire
		 _form.submit();		 
		 
		 // On remet le formulaire à zero...
		 if (arguments[0]!='form_abo') {
		 	_form.reset();document.location.replace('/');return true;
		}
	}
	// Ici, il y a une erreur... on sort.
	else				
		return false;
}

//***************************************************************//
// FONCTION PERMETTANT DE VÉRIFIER LE FORMAT D'UNE ADRESSE EMAIL //
//***************************************************************//
function checkEmail(email){
	var i;
	
	// Recherche de @
	i = email.indexOf("@");
	if (i == -1) return false;	
	
	// Séparation du nom de l'utilisateur et du nom de domaine.
	var username = email.substring(0, i);
	var domain = email.substring(i + 1, email.length)

	// Recherche des espaces au début du nom de l'utilisateur.
	i = 0;
	while ((username.substring(i, i + 1) == " ") && (i < username.length)){
		i++;
	}
	
	// Les enlève s'il en trouve.
	if (i > 0) username = username.substring(i, username.length);
	
	// Recherche d'espaces à la fin du nom de domaine.
	i = domain.length - 1;
	while ((domain.substring(i, i + 1) == " ") && (i >= 0)) {
		i--;
	}
	
	// Les enlève s'il en trouve.
	if (i < (domain.length - 1)) domain = domain.substring(0, i + 1);
	
	// Vérifie que le nom de l'utilisateur et du domaine ne soit pas vide.
	if ((username == "") || (domain == ""))	return false;
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de l'utilisateur.
	var ch;
	for (i = 0; i < username.length; i++){
		ch = (username.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) ||	(ch == "_") || (ch == "-") || (ch == "."))) return false;		
	}
	
	// Vérifie s'il n'y a pas de caractères interdits dans le nom de domaine
	for (i = 0; i < domain.length; i++){
		ch = (domain.substring(i, i + 1)).toLowerCase();
		if (!(((ch >= "a") && (ch <= "z")) || ((ch >= "0") && (ch <= "9")) ||	(ch == "_") || (ch == "-") || (ch == "."))){
			return false;
		}
	}

	// Ajouter ci-dessous de nouveaux noms de domaine (une liste sur http://www.toulouse-renaissance.net/c_outils/c-nom-domaine.htm)
	var aSuffix = new Array("com","net","int","aero","biz","museum","name","info","coop","pro","eu","edu","org","gov","gouv","mil","bj","dz","de","ad","be","ca","bf","bi","cm","cf","cg","cd","ci","cn","dj","fr","ga","gp","gf","jp","lu","mg","ml","ma","mq","mr","mc","nc","pf","re","pm","sn","ch","td","tf","tn");
	var bFoundSuffix = false;
	i = 0;
	while (i < aSuffix.length){
		if (("." + aSuffix[i]) == domain.substring(domain.length - aSuffix[i].length - 1, domain.length))	return true;		
		i++;
	}
	
	// Si le nom de domaine est inconnu  : return false
	return false;
}

//****************************************************************//
// FONCTION PERMETTANT D'AUTORISER QUE LES CHIFFRES DANS UN CHAMP //
//****************************************************************//
function NumMask(e){	
	var IE5 = false;

	if (!e) var e = window.event;
	if (e.keyCode){
		IE5= true; code = e.keyCode;}
	else if (e.which) code = e.which ;

	//test du code
	if (code < 48 || code > 57) {
		if(IE5){
			e.returnValue = false;
		}
		else
			e.preventDefault();
	} 
}

