// on evite les confilts de prototype et de jquery 
var $ez_jQuery = jQuery.noConflict();

// ces fonctions seront dans un fichier récupéré sur les serveurs easy et mis en cache sur le site de l'affilié
// Generated on 05/21/10 14:26:46
ez_tabSiteId = [];
ez_tabSiteId[0] = '290671';
ez_tabSiteId[1] = '290677';
ez_tabSiteId[2] = '290683';
// declaration de variable
var ez_siteurl = 'http://1rencontre-mature.love.easyrencontre.com'; // url du site
var ez_newSiteUrl = 'www.easyflirt.com/redirect.php';

// info du user
var ez_ct = 0; // on recupere la ez_ct pour le javascript
var ez_pass=''; // on stocke le passe
var ez_login = ''; // on stocke le login
var ez_sexe = 0; // on stocke le sexe
var ez_lang = 'fr'; // on stocke la lang

// pour l'ergonomie
var ez_firstLogin = true; // indique si le curseur est déjà allé dans le champ de login
var ez_firstPass = true;// indique si le curseur est déjà allé dans le champ de pass
var ez_loginIsOK = false; // par defaut le ez_login n'est pas bon
var ez_emailIsOK = false; // par defaut le mail n'est pas bon

var ez_error_ville = false; // si il y a une erreur avec la ville
var need_cp = false; // indique si c'est un pays sans cp
var int_city = 0; // timeOUT pour la ville
var lastVille = undefined; // derniere ville checker
var postcodeField = undefined; // cp quand pas de ville dans la base

// geoLoc 
var ez_id_pays = undefined; // id du pays 
var ez_id_region =undefined; // id de la rÃ©gion 
var ez_id_dep = undefined; // id du dÃ©partement 
var ez_location_id = undefined; // id de la ville 
var ez_tabControl = []; // tableau pour la gestion des select de la localisation 
var ez_currentSelectLocation = 0; // indique quel indice du tableau est utilisÃ© pour gÃ©rer les select des localisation
 
var isReady = false; 
var isLoaded = false; 

var estBlacklist = 0;

var simple = '&simple=1'; 


/* On iniatilise les Ã©vÃ©nements  
* ansi que des variables et  
* aussi des l'affichage des elements     
*/  
function ez_getGeoLoc(){ 
    $ez_jQuery.ajax({ 
        type: "GET", 
        url: "/ez_registerForm/registerForm.php", 
        data: "action=getGeoLoc",  
        success: function(msg){ 
			var infos = msg.split("@");
            var tabGeo = infos[0].split('|'); 
			estBlacklist = infos[1];
            switch (tabGeo.length){ 
                case 1 : 
                    ez_id_pays = tabGeo[0]; 
                    break; 
                case 2 : 
                    ez_id_pays   = tabGeo[0]; 
                    ez_location_id  = tabGeo[1]; 
                    break; 
                case 3 : 
                    ez_id_pays      = tabGeo[0]; 
                    ez_id_region    = tabGeo[1]; 
                    ez_location_id     = tabGeo[2]; 
                    break; 
                case 6: 
                case 5: 
                case 4 : 
                    ez_id_pays      = tabGeo[0]; 
                    ez_id_region    = tabGeo[1]; 
                    ez_id_dep       = tabGeo[2]; 
                    ez_location_id     = tabGeo[3]; 
                    break; 
            } 
            isReady = true; 
        } 
    }); 
} 
ez_getGeoLoc(); 
 
var  timeoutID = 0; 
 
/* 
*Verifie si le DOM et la geoLoc est chargÃ©  
* si les deux ok alors on init le doc 
*/ 
function verifReady(){ 
    if ( isReady && isLoaded ){ 
        clearTimeout(timeoutID); 
        $ez_jQuery('#btn_goPart2').disabled = false; 
        ez_registerInit(); 
    } else { 
        timeoutID  = setTimeout( "verifReady()", 500); 
    } 
} 

$ez_jQuery(document).ready(function () { 
	$ez_jQuery('#btn_goPart2').disabled = true;
	isLoaded = true;
});
timeoutID  = setTimeout( "verifReady()", 500); 

/* On iniatilise les événements 
* ansi que des variables et 
* aussi des l'affichage des elements	
*/

function ez_registerInit(){
	
	 ez_tabControl = 
	 [['newCountryField' , 'regionField' , 'regionField_box' , [ 'regionField', 'departementField', 'townField'], [ 'regionField_box', 'departementField_box', 'townField_box', 'postcodeField_box' ], 'postcodeField_box' , ez_id_region ],
	 ['regionField' , 'departementField' , 'departementField_box' , [  'departementField', 'townField'], [ 'townField_box', 'postcodeField_box' ], 'postcodeField_box'  ,ez_id_dep],
	 ['departementField' , 'townField' , 'townField_box' , [ 'townField'], [ 'townField_box', 'postcodeField_box' ], 
	 'postcodeField_box'  ,ez_location_id]]; 
	
	if (! ez_id_pays)
		ez_id_pays = 78;
    
    $ez_jQuery('#tmp-location_id').val(ez_id_pays);

	if (ez_ct != 1) 
    	$ez_jQuery('#s_1_2').parent('label').css('display' , 'none');
        
	ez_ct = 0; 
	ez_gestionDisplay(true);
	ez_onLoginChange(document.getElementById('loginField'));
	
    $ez_jQuery('#choiceCt').addClass('ezHidden');
	ez_selectionOption(ez_id_pays , $ez_jQuery('#newCountryField') );
	ez_selectionOption( ez_id_pays , $ez_jQuery('#newCountryField') );
	ez_onLocationFieldChange (ez_tabControl[ez_currentSelectLocation][0] ,ez_tabControl[ez_currentSelectLocation][1] , ez_tabControl[ez_currentSelectLocation][2] , ez_tabControl[ez_currentSelectLocation][3] ,ez_tabControl[ez_currentSelectLocation][4] , ez_tabControl[ez_currentSelectLocation][5] , ez_tabControl[ez_currentSelectLocation][6] , true); 
	// Evenement
	// sur le champs pass
	$ez_jQuery('#passwordField').focus( function() { 
		$ez_jQuery('#passwordField_info').removeClass('ezHidden'); 
			var mm = $ez_jQuery('#birthdateMonthField').val();
			var jj = $ez_jQuery('#birthdateDayField').val();
			if (jj != '' && mm != '' && ez_firstPass ){
				this.value = jj + mm;
				ez_firstPass = false;
			}
	});
	$ez_jQuery('#passwordField').blur( function() { $ez_jQuery('#passwordField_info').addClass('ezHidden')});
	
	// sur le champ login
	$ez_jQuery('#loginField').focus( function() { 
		$ez_jQuery('#loginField_info').removeClass('ezHidden');
		if ($ez_jQuery('#emailField').val() != '' && ez_firstLogin && $ez_jQuery('#loginField').val() == '') {
			this.value = $ez_jQuery('#emailField').val().split("@")[0];
			ez_firstLogin = false;
		}
		
	});
	$ez_jQuery('#loginField').blur( function() { 
		ez_onLoginChange (this); 
		$ez_jQuery('#loginField_info').addClass('ezHidden')
	});
	
	
	$ez_jQuery('#emailField').blur( function() { 
		ez_onEmailChange (this); 
	});
	
	
	$ez_jQuery('#newCountryField').change(function (){
		lastVille = '';
		$ez_jQuery('#ez_nom_ville').val('');
		$ez_jQuery('#postcodeField').val('');
		ez_time_getNameCity($ez_jQuery('#ez_nom_ville').val() , true );
		$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderLoading');
		ez_clearErrorLocalisation();
	})
	
	$ez_jQuery('#ez_nom_ville').change (function (){
		if (lastVille != ez_clean(this.value)){
			$ez_jQuery('#townField').val('');
		}
	});

	$ez_jQuery('#ez_nom_ville').keyup(function(e){
		if (e.keyCode != 38 && e.keyCode != 40 && e.keyCode != 13 ){
			ez_time_getNameCity(this.value , false)
		}else{
			if (e.keyCode == 38 || e.keyCode == 40){
				ez_gestionScroll(e.keyCode)
			}
			if (e.keyCode == 13 ){
				var li = $ez_jQuery('.ez_ville_active');
				if (li.length){
					var eltHTML = document.getElementById(li.attr('id'));
					ez_saveIdCity(eltHTML);
				}
			} 
		}
	});
	
	
	// sur le bouton
	$ez_jQuery('#btn_goPart2').click( function (){ ez_submitRegisterFormPart1();}); 
};

/**
*
*	On check si le ez_login à une syntaxe valide
*	@login login à vérifier
*/
function ez_checkLogin (login)
{
	var exp = new RegExp("^[0-9a-zA-Z_-]{3,15}$","g");
	if (login.length < 3) return ('short')
	else if (login.length > 15) return ('long');
	else if (!exp.test(login)) return ('bad');
	return ('true');
}

/**
*
* On check si le mail à une syntaxe valide
* @email = mail à vérifier
*/
function checkMail (email)
{
	var exp = new RegExp ("^[.a-zA-Z0-9_-]+@[a-zA-Z0-9-.]{2,}\\.[.a-zA-Z]{2,5}$","g");
	if (!exp.test (email)) 
    	return 'bad';
	else 
    	return 'true';
}

/*
*		
* Permet de déternimer si num est un nombre
* @num = chaine à vérifier
*/
function ez_is_numeric (num)
{
	var exp = new RegExp ("^[0-9]+$","g");
	return (exp.test (num));
}

/* 
* Verifie de que obj à moins de maxLength caractère et affiche le nombre de caractères restant dans carz
* @obj = element  pour lequelle on vérifie la longueur
* @carz = element qui contient le nombre de caractere restant
* @maxLength = nombre de lettre maximun pouvant être contenu dans obj
*/
function LimitLen(obj, carz, maxLength)
{
	var CharsLeft = 0;
	if (obj.value.length > maxLength) 
		obj.value = obj.value.substring(0, maxLength);
	else 
		CharsLeft = maxLength - obj.value.length;
	$ez_jQuery(carz).text ( CharsLeft );
}

/*
* Met à jour l'icone de id en fonction de son mode
* @id =  id de l'element pour lequel on va changé de status
* @mod = nouveau status de l'element ( loading | ok | error )
*/
function ez_updateLoader (id, mode)
{
	switch (mode) {
		case 'loading':
			$ez_jQuery('#' + id).removeClass ('ezLoaderError');
			$ez_jQuery('#' +id).removeClass ('ezLoaderOk');
			$ez_jQuery('#' +id).addClass ('ezLoaderLoading');
		break;
		case 'ok':
			$ez_jQuery('#' +id).removeClass ('ezLoaderLoading');
			$ez_jQuery('#' +id).removeClass ('ezLoaderError');
			$ez_jQuery('#' +id).addClass ('ezLoaderOk');
		break;
		case 'error':
			$ez_jQuery('#' +id).removeClass ('ezLoaderLoading');
			$ez_jQuery('#' +id).removeClass ('ezLoaderOk');
			$ez_jQuery('#' +id).addClass ('ezLoaderError');
		break;
	}
}

/**
* Selectionne valeur qui est une option de elt
* @valeur = valeur qui doit être selectionner
* @elt = element dans lequel on va selectionner la valeur
*/
function ez_selectionOption (valeur , elt){
	$ez_jQuery('option' , elt).each(function(i){
		this.selected = (this.value == valeur) ? true : false;
	});
}


/* ==========================
=							=
=	 Controle du login		=
=							=
============================= */

var	ez_loginCheckId = 1;
var ez_loginCheckLastUsedId = 0;
var ez_loginCheckCache = [] ;
var ez_checkLoginLastChecked = '';

/**
* Met à jour le message de id en fonction de son status
* @id = id de l'element à verifier
* @status = nouveau status de l'element ( no  | short | long | false | true | bad)
*/

function ez_updateLoginMsg (id, status)
{
    var text, icon;
	ez_loginIsOK = false;
	switch (status)	{
		case 'true':
			icon = 'ok';
			ez_loginIsOK = true;
			$ez_jQuery('#' + id +'_msg').addClass('ezHidden');
		break;
		
		case 'no':
			text = 'Renseignez votre pseudo';
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
		break;
		
		case 'short':
			text = 'Ce pseudo est trop court (minimum 3 caractères)';
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
		break;
		
		case 'long':
			text = 'Ce pseudo est trop long (maximum 15 caractères)';
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
		break;

		case 'false':
			text = "Ce pseudo n'est pas libre";
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
		break;
		
		case 'bad':
			text = 'Le pseudo ne peut contenir que les caractères A à Z, 0 à 9, _ et -';
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
		break;
	}
	ez_updateLoader (id, icon);
	$ez_jQuery('#' + id +'_msg').html(text);
}


/** 
*Check entierement le login qui dans un l'input id
* @id = id de l'input à vérifier
*/
function ez_onLoginCheck (id)
{
	var ez_login = $ez_jQuery('#' + id).val();
	var length = ez_login.length;
	var text;

	text = ez_checkLogin (ez_login);
	
	if (text == 'true')	{
		$ez_jQuery.ajax({
			type: "GET",
			url: "/ez_registerForm/registerForm.php",
			data: "action=testLogin&login="+ez_login +"&ct="+ ez_ct + "&lang=" + ez_lang , 
			success: function(msg){
				ez_updateLoginMsg (id, msg);
			}
		});
	} else {
		ez_updateLoginMsg (id, text);
	}
}

/*
* verifie le contenu de control (champ de login)
* @control = element à verifier
*/

function ez_onLoginChange (control)
{
	var id = control.id;

	if ($ez_jQuery('#'+id).val() != ez_checkLoginLastChecked) {
		ez_checkLoginLastChecked = $ez_jQuery('#'+id).val();
		ez_updateLoader (id, 'loading');
		ez_onLoginCheck( control.id );
	}
}


/* ==========================
=							=
=	 Controle du mail		=
=							=
============================= */

var	ez_mailCheckId = 1;
var ez_checkMailLastChecked = '';

/**
* Met à jour le message de id en fonction de son status
* @id = id de l'element à verifier
* @status = nouveau status de l'element ( false | true | bad)
*/
function ez_updateEmailMsg (id, status)
{
var text, icon;

	ez_emailIsOK = false;
	switch (status) {
		case 'false':
			text = "Votre e-mail semble incorrect";
			icon = 'error';
			$ez_jQuery('#' + id +'_msg').removeClass('ezHidden');
			break;

		case 'true':
			icon = 'ok';
			ez_emailIsOK = true;
			$ez_jQuery('#' + id+'_msg').addClass('ezHidden');
			break;

		case 'bad':
			text = 'Votre e-mail semble incorrect';
			icon = 'error';
			$ez_jQuery('#' + id+'_msg').removeClass('ezHidden');
			break;
	}

	ez_updateLoader (id, icon);
	$ez_jQuery('#' + id+'_msg').html( text);
}

/** 
*Check entierement le mail qui dans un l'input id
* @id = id de l'input à vérifier
*/

function ez_onMailCheck (id) {
	var email = $ez_jQuery('#' + id).val();
	var length = email.length;
	var text;

	text = checkMail (email);
	if (text == 'true')
	{
		var	currentId = ez_mailCheckId++;
		$ez_jQuery.get("/ez_registerForm/registerForm.php", 
		{ action: "testMail", email: email  },
		function (data){
			ez_updateEmailMsg (id, data);
		});
	}
	else
	{
		ez_updateEmailMsg (id, text);
	}

}


/*
* verifie le control de l'input (champ de mail)
* @control = element à verifier
*/
function ez_onEmailChange (control) {
	var id = control.id;
	if ($ez_jQuery('#' + id ).val() != ez_checkMailLastChecked) {
		ez_checkMailLastChecked = $ez_jQuery('#' + id ).val();
		ez_updateLoader (id, 'loading');
		ez_onMailCheck ( control.id ) ;
	}
}


/*
* Gestion des erreurs
* @errors = chaine qui contient le erreur à traier. Format : 
* les erreur sont séparé par ||| et une erreur est défini par le champ qui va afficher l'erreur et le texte d"erreur (champ||erreur) 
*/
function ez_fillErrors(errors) {
	var i;
	for (i=0; i < errors.length; i++)	{
		if (errors [i] != '') {
			var infos = errors [i].split ('||');
			
			if (infos[0] == 'loginField' || infos[0] == 'emailField'){
				ez_updateLoader (infos[0] , 'error');
			}
			
			// cas spécial de la geoloc
			if (infos[0] == 'townFieldDiv'){
				$ez_jQuery('#townField_msg').text(infos[1]); 
				$ez_jQuery('#townFieldDiv_msg').removeClass('ezHidden');
			}else {
				if ($ez_jQuery('#' + infos[0]+'_msg'))
				{
					$ez_jQuery('#' +infos[0]+'_msg').html(infos[1]); 
					$ez_jQuery('#' +infos[0]+'_msg').removeClass('ezHidden');
					if (infos[0] == 'emailField' ){
						ez_changeURL();
					}
				}
			}
		}
	}
}


/** 
*
*Change l'url du mail perdu
*/
function ez_changeURL(){
	var a =  $ez_jQuery('#emailField_msg a:first');
	if ( a.attr('href') ){
		var url = a.attr('href');
		var param = url.split ('?');
		var param = param[param.length - 1];
		var newUrl =ez_siteurl + '?' + param;
		a.attr('href' , newUrl);
	}
	
}

/**
*
* Appeler quand on valide la premiere partie
*/
function ez_submitRegisterFormPart1 ()
{	
	if(parseInt(estBlacklist)  === 1)
	{
			window.top.location.href = 'http://www.drague.org/rencontres.php';
			return false;
	}
	var form = this;
	var errors = '';
		
	var aa = $ez_jQuery('#birthdateYearField').val();
	var mm = $ez_jQuery('#birthdateMonthField').val();
	var jj = $ez_jQuery('#birthdateDayField').val();
	var now = new Date ();
	
	if (ez_ct !=2)
		ez_sexe = $ez_jQuery("input[@name=genderField][@checked]").val();
	
	// vide les message d'erreurs
	
	var elts = $ez_jQuery("#passwordField_msg, #genderField_msg , #birthdateField_msg , #newsletterField_msg , #cguField_msg , #loginField_msg, #townFieldDiv_msg, #recherche_msg");
	elts.each (function(i){ 
			if ( this.id == 'loginField_msg' && !$ez_jQuery(this).hasClass('ezHidden') ) {
			}else{
				$ez_jQuery('#' + this.id).addClass('ezHidden'); 
				$ez_jQuery('#' + this.id).val();
			}
	});
	if (!document.getElementById('cguField').checked) 
    	errors = errors + "cguField||Vous devez accepter les conditions générales d'utilisation|||";
	
	if ($ez_jQuery('#loginField').val() == '')	
    	errors = errors + "loginField||Veuillez indiquer votre pseudo|||";
	else if (!ez_checkLogin ($ez_jQuery('#loginField').val()))
    	errors = errors + "loginField||Pseudo invalide|||";
	
	var passValue =  $ez_jQuery('#passwordField').val();
	if (passValue == '')
    	errors = errors + "passwordField||Veuillez indiquer votre mot de passe|||";
	else if (!ez_is_numeric (passValue) || passValue.length != 4)
    	errors = errors + "passwordField||Mot de passe invalide|||";
	else if ($ez_jQuery('#passwordField').val() == 'aa'  ||  $ez_jQuery('#passwordField').val() == '1234'  ||  $ez_jQuery('#passwordField').val() == '0000') 
		errors = errors + "passwordField||Votre mot de passe est trop simple|||";

	
	if ($ez_jQuery('#emailField').val() == '') 
		errors = errors + "emailField||Votre email semble incorrect|||";
	
	if ((!ez_is_numeric (jj) || jj == "") || (!ez_is_numeric (mm) || mm == "") || (!ez_is_numeric (aa) || aa == ""))
		errors += "birthdateField||Veuillez sélectionner votre date de naissance|||";
	
	var recherche = false;
	var inputs = $ez_jQuery('[name="s[1][]"]');
	inputs.each(function(i){
		if (this.checked)
			recherche = true;
	});
	
	if (!recherche) 
    	errors += "recherche||Merci de renseigner le type de personne que vous désirez|||";

		errors += ez_validLocation();

	if (ez_sexe == undefined) {
		errors += "genderField||Sélectionner votre sexe|||";
	}
	
	if (errors != '') {
		ez_fillErrors (errors.split ('|||'));
		return false;
	} else {
		ez_pass = $ez_jQuery('#passwordField').val();
		ez_login = $ez_jQuery('#loginField').val();
		var ch_cp_free =  (need_cp ) ?  '&cp_free=' + $ez_jQuery('#postcodeField').val() : ''; 
		$ez_jQuery.ajax({
			type:'GET',
			url : "/ez_registerForm/registerForm.php?" ,
			data  : 'action=register&' + $ez_jQuery('#ezRegisterFormPart1').serialize () + '&part=1' + simple + ch_cp_free,
			success : function(data){
				submitRegisterFormPart1_onComplete(data);
			}
		});
	}
	return false;
}

/**
*
*Appeler quand on recoit la reponse de l'appel du deuxieme webservice
*/
function ez_submitRegisterFormPart2_onComplete (requete)
{
	if (requete == 'ok') {
		redirection();
	} else {
		var errors = requete.split ('|||');
		ez_fillErrors (errors);
	}
}

/**
*
*Appeler quand on recoit la reponse de l'appel du premier webservice
*/
function submitRegisterFormPart1_onComplete (requete) {
	if ( ez_is_numeric(requete) && requete > 0  ) {
		redirection();
	} else {
		var errors = requete.split ('|||');
		ez_fillErrors (errors);
	}
}

/* affiche le loader correspondant à un ID 
   @param id string nom de l'id
 */
 
function showLoader (id) {
	if ($ez_jQuery("#" + id+"_loader")) {
		$ez_jQuery("#" + id+"_loader").removeClass ('ezHidden');
	}
}

function hideLoader (id) {
	if ($ez_jQuery('#' + id+"_loader")) {
		$ez_jQuery('#' + id+"_loader").addClass ('ezHidden');
	}
}

/* affiche le loader correspondant à un ID 
   @id string nom de l'id
*/
function ez_showLoader (id) {
	if ($ez_jQuery("#" + id+"_loader")) {
		$ez_jQuery("#" + id+"_loader").removeClass ('ezHidden');
	}
}

/* masque le loader correspondant à un ID 
* @id string nom de l'id
*/
function ez_hideLoader (id) {
	if ($ez_jQuery('#' + id+"_loader")) {
		$ez_jQuery('#' + id+"_loader").addClass ('ezHidden');
	}
}

/**
* Appeler quand on change de ct
* @newCt = nouvelle ct
* @newSiteUrl = Nouvelle url de redirection
*/
function ez_changeCt( newCt , newSiteUrl ){
	ez_ct = newCt ;
	ez_siteurl = newSiteUrl;
	ez_gestionDisplay();
}

var ez_tabSexe = [];
ez_tabSexe[0] = [];
ez_tabSexe[1] = [];
ez_tabSexe[2] = [];
// premier ez_sexe , deuxieme ez_ct
ez_tabSexe[0][0] = [0 , 1];
ez_tabSexe[1][0] = [0];
ez_tabSexe[0][1] = [0 ,1 , 2];
ez_tabSexe[1][1] = [0 , 2];
ez_tabSexe[2][1] = [0, 1, 2];
ez_tabSexe[1][2] = [1];
ez_tabCtSexe = []
ez_tabCtSexe[0] = [0,1];
ez_tabCtSexe[1] = [0,1,2];
ez_tabCtSexe[2]= [1];

/** 
*
* Gere l'affichage des elements 
* @init dertime si on est dans l'initialisation des elements
*/
function ez_gestionDisplay( init ){
	
	var tabName = []
	var elts = $ez_jQuery("input[name='s[1][]'][checked]");
	elts.each (function (){ 
		tabName.push( this.id ) ;
	});
	ez_sexe = $ez_jQuery("input[@name=genderField][@checked]").val();
	if (ez_ct == 2) 
		ez_sexe = 1;
	
	var inputCt = $ez_jQuery("input[@name=choiceCt][@checked]");

	// section possible
	if (ez_sexe != undefined) {
		var tab  = ez_tabCtSexe[ez_sexe];
		$ez_jQuery('#ctDef0s').parent().hide();
		$ez_jQuery('#ctDef1s').parent().hide();
		$ez_jQuery('#ctDef2s').parent().hide();
	
		for ( var i = 0 ; i < tab.length ; i++){
			var elt = $ez_jQuery('#ctDef'+tab[i]+'s');
			elt.parent().show();
			if (!inputCt && i == 1){
				document.getElementById ('#ctDef'+tab[i]+'s').checked = true;
			}
		}
		if (inputCt.parent().css('display') == 'none')
			document.getElementById('ctDef'+tab[0]+'s').checked = true;
	}

	var inputCt = $ez_jQuery("input[@name=choiceCt][@checked]");

	
	$ez_jQuery('#siteid').val(ez_tabSiteId[ez_ct]);
	// ez_sexe possible

	
	var tabTemp = ez_tabCtSexe[ez_ct];
	$ez_jQuery('#genderField0').parent().hide();
	$ez_jQuery('#genderField1').parent().hide();
	$ez_jQuery('#genderField2').parent().hide();

	for ( var i = 0 ; i < tabTemp.length ; i++){
		$ez_jQuery('#genderField' + tabTemp[i]).parent().show();
	}
	
	
	if (ez_sexe){
		// recherhce possible
		if (! init) {
			document.getElementById('s_1_0').checked=false;
			document.getElementById('s_1_1').checked=false;
			document.getElementById('s_1_2').checked=false;
		}
		$ez_jQuery('#s_1_' + 0).parent().hide();
		$ez_jQuery('#s_1_' + 1).parent().hide();
		$ez_jQuery('#s_1_' + 2).parent().hide();
	
		var tab2 = ez_tabSexe[ez_sexe][ez_ct];
		for ( var i = 0 ; i < tab2.length ; i++) {
			var tempElt = 's_1_' + tab2[i];
			$ez_jQuery('#' + tempElt).parent().show();
			if (tab2.length == 1 || in_array( tempElt , tabName ) ) {
				document.getElementById(tempElt).checked= true;
			}
		}
	}
}

/**
*
* Appeler lorsque l'on valide la deuxieme partie
*/
function ez_submitRegisterFormPart2(){
	
	// vide les message d'erreurs
	var elts = $ez_jQuery("#professionField_msg, #eyeField_msg , #hairField_msg , #heightField_msg , #weightField_msg , #townFieldDiv_msg" );
	elts.each (function(i){ 
		$ez_jQuery('#' + this.id).addClass('ezHidden'); 
		$ez_jQuery('#' + this.id).val();
	});
	var errors = '';
	
	// profession 
	var profession = $ez_jQuery('#ezProfession').val();
	if ((!ez_is_numeric (profession) || profession == "") )
		errors += "professionField||Veuillez renseigner votre profession|||";
		
	// yeux 
	var yeux = $ez_jQuery('#ezEye').val();
	if ((!ez_is_numeric (yeux) || yeux == "") )
		errors += "eyeField||Veuillez renseigner la couleur de vos yeux|||";
		
	// cheveux 
	var cheveux = $ez_jQuery('#ezHair').val();
	if ((!ez_is_numeric (cheveux) || cheveux == "") )
		errors += "hairField||Veuillez renseigner la couleur de vos cheveux|||";

	// taille 
	var taille = $ez_jQuery('#ezHeight').val();
	if ((!ez_is_numeric (taille) || taille == "") )
		errors += "heightField||Veuillez renseigner votre taille|||";

	// poid 
	var poid = $ez_jQuery('#ezWeight').val();
	if ((!ez_is_numeric (poid) || poid == "") )
		errors += "weightField||Veuillez renseigner votre poid|||";
	
	errors += ez_validLocation();
	
	// On check si il y a des erreurs
	if (errors != '') {
		ez_fillErrors (errors.split ('|||'));
		return false;
	} else { // si pas d'erreur on appelle le websrvice pour mettre les infos à jour
		var ch_cp_free =  (need_cp ) ?  '&cp_free=' + $ez_jQuery('#postcodeField').val() : ''; 
		$ez_jQuery.ajax({
			type:'GET',
			url : "/ez_registerForm/registerForm.php?" ,
			data  : 'action=register&' + $ez_jQuery('#ezRegisterFormPart2').serialize () + '&part=2&id_user=' + id_user + '&ct=' + ez_ct + ch_cp_free,
			success : function(data){
				ez_submitRegisterFormPart2_onComplete(data); 
			}
		});
	}
	return false;
}

/*
* Valide les select location (la valeur ne doit pas être vide)
*/
function ez_validLocation(){
	ez_clearErrorLocalisation();
	$ez_jQuery('#user-location_id').val($ez_jQuery('#townField').val());
	if ($ez_jQuery('#newCountryField').val() == '') return   "ville||Vous devez spécifier votre ville|||";
	if (ez_error_ville) return "ville||Votre ville est introuvable|||";
	if ($ez_jQuery('#user-location_id').val() == '' && ! need_cp) return  "ville||Vous devez spécifier votre ville|||";
	if ( need_cp && $ez_jQuery('#postcodeField').val() == '' ) return "ville||Vous devez spécifier votre code postal|||";
	return '';
}

/*
*Effectue le redirection du nouveau membre vers le site 
*/
function redirection (){
	
	var wanthim = ($ez_jQuery('#id_wanthim').val() != '')  ? wanthim = '&wanthim=' + $ez_jQuery('#id_wanthim').val() : '';
	var urlredirection = ez_siteurl + '/login.php?m_login='+ ez_login +'&m_pass='+ez_pass+'&fromRegisterForm=1&ez_lang=' + ez_lang + wanthim;

	window.top.location.href=  urlredirection ;

}

function in_array( elt , array){
	for (var i = 0 ; i < array.length ; i++){
		if ( array[i] == elt) return true;
	}
	return false;
}

/*
* vides les messages d'erreurs
*/
function ez_clearErrorLocalisation(){
		$ez_jQuery('#cp_msg').html('');
		$ez_jQuery('#newCountryField_msg').html('');
		$ez_jQuery('#ville_msg').html('');
}

/*
* Va chercher les valeurs possibles pour la valeur saisie par l'utilisateur
*/
function ez_getNameCity(pattern){
		var pays = document.getElementById('newCountryField').options[document.getElementById('newCountryField').options.selectedIndex].value;
		var rep = arguments[1];
		$ez_jQuery('#townField').val('');
		if ( $ez_jQuery('#newCountryField').val() != '' && $ez_jQuery('#newCountryField').val() != '' ){
			data = '&action=getLocationInfos&from=cp&val=' + pattern  + '&pays=' + pays;
			if ( rep ) {
				data = '&action=getLocationInfos&from=cp&val=' + pattern  + '&pays=' + pays + '&search=0';
			}
			$ez_jQuery.ajax({
				type:'GET',
				url : "/ez_registerForm/registerForm.php" ,
				data  : data,
				success : function(data){
					ez_remplirNameCity(data);
				},
				error : function(){

				}
			}, 'xml'); 
		} else if ($ez_jQuery('#newCountryField').val() == '' ) {
			$ez_jQuery('#ez_div_value_ville').addClass('ezHidden');
			$ez_jQuery('#ez_div_cp_free').addClass('ezHidden');
		}
}


/*
* Rempli les l'ul avec toutes les villes possibles
*/
function ez_remplirNameCity(data){
	var div = $ez_jQuery('#ez_div_all_ville');
	var villes = data.getElementsByTagName('item');
	var ul = $ez_jQuery('#ez_ul_ville');
	need_cp = false;
	ez_resetUL();
	nbVille = villes.length; 
	
	//alert ( nbVille);
	if (nbVille > 0){
		div.removeClass('ezHidden');
		for (var i = 0 ; i< nbVille ; i++){
			var id = villes[i].getElementsByTagName('id').item(0).firstChild.nodeValue;
			var value =  villes[i].getElementsByTagName('value').item(0).firstChild.nodeValue;
			$ez_jQuery('#ez_div_cp_free').addClass('ezHidden');
			$ez_jQuery('#ez_div_value_ville').removeClass('ezHidden');
			if (id =='NEED_CP') {
				need_cp = true;
				$ez_jQuery('#ez_div_cp_free').removeClass('ezHidden');
				$ez_jQuery('#ez_div_value_ville').addClass('ezHidden');
			} else if (id == 'NO_VILLE') {
				ul.append('<li id="'+id+'"  class="ez_une_ville">'+ value+ '<span id="'+value+ '_' + id + '" ></span></li>');
			} else if (id == 'OK') {
				$ez_jQuery('#ez_div_all_ville').addClass('ezHidden');
			} else {
				if (i == 0) {
					ul.append('<li id="'+id+'"  class="ez_une_ville cliquable ez_ville_active">'+ value+ '<span id="'+value+ '_' + id + '" ></span></li>');
				} else {
					ul.append('<li id="'+id+'"  class="ez_une_ville cliquable">'+ value+ '<span id="'+value+ '_' + id + '" ></span></li>');
				}
			}
		};
		var lis = $ez_jQuery('.cliquable' , ul);
		lis.click (function (){
			ez_saveIdCity(this);
		});
		
		document.getElementById('ez_div_ville').scrollTop = 0;
		if (document.getElementById('ez_div_ville').scrollHeight > document.getElementById('ez_div_ville').offsetHeight){
			$ez_jQuery('#ez_suite').removeClass('ezHidden');
		}
		$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderLoading');
		$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderError');
		$ez_jQuery('#ville_msg').html('');
		$ez_jQuery('#ville_msg').addClass('ezHidden');
	} else if ($ez_jQuery('#ez_nom_ville').val() != '' ) {
		ez_error_ville = true;
		$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderLoading');
		$ez_jQuery('#ez_nom_ville').addClass('ezLoaderError');
		div.addClass('ezHidden');
		$ez_jQuery('#ville_msg').html('Votre ville est introuvable');
		$ez_jQuery('#ville_msg').removeClass('ezHidden');
	} else {
		$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderLoading');
	}

}

/*
*
*/
function ez_time_getNameCity( value , forceAjax){
	if (value){
		value = ez_clean (value);	
		if (( value.length > 1 && lastVille != value ) || forceAjax ) {
			lastVille = value;
			ez_error_ville = false;
			$ez_jQuery('#townField').val('');
			$ez_jQuery('#ez_nom_ville').addClass('ezLoaderLoading');
			$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderError');
			clearTimeout(int_city);
			var time =  (forceAjax ) ? 0 : 1;
			int_city = setTimeout('ez_getNameCity("'+value+'")' , time*1000);
		} else if ( value.length <= 1 ){
			$ez_jQuery('#ez_nom_ville').removeClass('ezLoaderLoading');
			clearTimeout(int_city);
			ez_resetUL();
		}
	}
}

function ez_setValeur(eltQuery , value){
	eltQuery.val(value);
}

function ez_saveIdCity(eltHTML){
	var div = $ez_jQuery('#ez_div_all_ville');
	var span = $ez_jQuery('#' + eltHTML.id).children('span');
	var nom_ville = span.attr('id').split('_')[0];
	ez_setValeur($ez_jQuery('#townField') , eltHTML.id);
	div.addClass('ezHidden');
    nom_ville = jQuery.trim( nom_ville.split('(')[0]);
	ez_setValeur($ez_jQuery('#ez_nom_ville') , nom_ville);
	lastVille = nom_ville;
}

function ez_gestionScroll(keyCode){
	var divHTML = document.getElementById('ez_div_ville');
	var li = $ez_jQuery('.ez_ville_active' );
	var newLi, margin;
	newLi = (keyCode == 38 ) ? li.prev('li') : li.next('li');
	
	if (newLi.length){
		li.removeClass('ez_ville_active');
		newLi.addClass('ez_ville_active');
	}
	
	var liHTML = document.getElementById(newLi.attr('id'));
	if (liHTML){
	 	margin=2;
		if (keyCode == 38 ){
			if ( liHTML.offsetTop - liHTML.offsetHeight    < divHTML.scrollTop ){
				divHTML.scrollTop -= liHTML.offsetHeight + margin ;
			}
		} else {
			if ( liHTML.offsetTop - divHTML.scrollTop > ( divHTML.offsetHeight - ( liHTML.offsetHeight * 2) ) ){
				divHTML.scrollTop += liHTML.offsetHeight + margin;
			}
		}
	}
} 

function ez_resetUL(){
	var div = $ez_jQuery('#ez_div_all_ville');
	var lis = $ez_jQuery('.ez_une_ville' ).remove();
	div.addClass('ezHidden');
	$ez_jQuery('#ez_suite').addClass('ezHidden');
}

function ez_clean(value ){
	if (value) {
		var tabInterdit = ['%' ,  '"' , '_'  , "'" ];
		var tabreplace = ['' ,  " " ,  '' , ' '];
		for (var i = 0 ; i < tabInterdit.length ; i++ ){
			var reg=new RegExp(tabInterdit[i], "g");
			value = value.replace(reg,tabreplace[i]);
		}
	}
	return value;
}

/* 
* Gere le contenu des select de localisation 
*  @control = element pour lequel on va récuépere sa valeur 
*  @fill = element directement dépendant de control 
*  @show = element qui va être affiché 
*  @clear = tableau d'élément qui va être vider 
*  @hide = tableau d'élément qui vont être masqué 
*  @showsingle = element qui doit Ãªtre visible si pas de geoLoc  
*  @defautValue = valeur qui être sÃ©lectionner par défaut  
*  @init si on passe dans cette fonction lors de l'initialisation (vau true qu'une seule fois) 
*/ 
function ez_onLocationFieldChange (control, fill, show, clear, hide, showsingle , defautValue , init ) { 
   	need_cp = false;
    if (typeof control  == 'string') { 
        var id = control; 
        var control = $ez_jQuery('#' + control); 
    } else { 
        var id = control.id; 
        var control = $ez_jQuery('#' + control.id); 
    } 
     
    /* on vide tout le temps les listes */
    if (clear != undefined) { 
        for ( var i = 0 ; i < clear.length ; i++) { 
           	document.getElementById(clear[i]).selectedIndex = 0; 
	    	document.getElementById(clear[i]).options.length = 1; 
        } 
    } else { 
        // clear only the control that will be filled 
        document.getElementById( fill ).options.length = 1; 
        document.getElementById( fill ).selectedIndex = 0; 
    } 
    $ez_jQuery('#postcodeField').val(''); 
    if (control.val() > 0) { 
        ez_showLoader (control.attr('id') ); 
        $ez_jQuery.get("/ez_registerForm/registerForm.php", {  
            action: "getLocationInfos",  
            from: id , 
            val:control.val()  }, 
            function(data){ 
                var i; 
                $ez_jQuery('#postcodeField').val(''); 
                // HIDE the loader 
                ez_hideLoader (control.attr('id')); 
                // hide controls 
                if (!init){ 
                    if (hide != undefined) { 
                        for (i=0; i < hide.length; i++) { 
                            if ($ez_jQuery('#' + hide[i])) 
                            $ez_jQuery('#' +hide[i]).addClass ('ezHidden'); 
                        } 
                    } 
                } 
                // fill with result 
                var items = data.getElementsByTagName('item'); 
                if (items.length == 0) { 
                    $ez_jQuery('#' + showsingle).removeClass ('ezHidden'); 
                } else if (items.length == 1) { 
                    var id, value; 
                    id = items[0].getElementsByTagName("id")[0].firstChild.nodeValue; 
                    if (items[0].getElementsByTagName("value")[0].firstChild) { 
                        value = items[0].getElementsByTagName("value")[0].firstChild.nodeValue; 
                        if (id == 'NEED_CP'){
                        	need_cp = true;
                        	$ez_jQuery('#postcodeField_box').removeClass ('ezHidden')
                        	return;
                        }
                    } else { 
                        value = ''; 
                    } 
                    document.getElementById(fill).options.add (new Option(value, id)); 
                    document.getElementById(fill).selectedIndex = 1; 
                    if (value != '') $ez_jQuery('#' +  show).removeClass ('ezHidden'); 
                    if (document.getElementById(fill).onchange){ 
                        document.getElementById(fill).onchange (); 
                    } 
                } else { 
                    $ez_jQuery('#' + show).removeClass('ezHidden'); 
                    for(var i = 0; i < items.length; i++) { 
                        var id = items[i].getElementsByTagName("id")[0].firstChild.nodeValue; 
                        var value = items[i].getElementsByTagName("value")[0].firstChild.nodeValue; 
                        document.getElementById(fill).options.add (new Option(value, id)); 
                        document.getElementById(fill).selectedIndex = 0; 
                    } 
                    if (defautValue != undefined){ 
                        ez_selectionOption(defautValue, document.getElementById(fill)); 
                    } 
                    $ez_jQuery('#' + show).removeClass ('ezHidden'); 
                    ez_currentSelectLocation++; 
                    if ( init && ez_currentSelectLocation < 3){ 
                        ez_onLocationFieldChange (ez_tabControl[ez_currentSelectLocation][0] ,ez_tabControl[ez_currentSelectLocation][1] , ez_tabControl[ez_currentSelectLocation][2] , ez_tabControl[ez_currentSelectLocation][3] ,ez_tabControl[ez_currentSelectLocation][4] , ez_tabControl[ez_currentSelectLocation][5] , ez_tabControl[ez_currentSelectLocation][6] , true);                       } 
                    } 
                } 
        ); 
    } else { 
        // nothing to fetch (we are on the first choice) 
        // hide controls 
        if (hide != undefined) { 
            for (var i=0 ; i < hide.length ; i++){ 
                if ($ez_jQuery('#' + hide[i])) 
                    $ez_jQuery('#' + hide[i]).addClass ('ezHidden'); 
            } 
        } 
    } 
}
