var authenticateAndCreate = function(){
	
	login = Ext.get("auth_login").dom.value;
	pass = Ext.get("auth_password").dom.value;
	url = Ext.get("authentification_url").dom.value;
	
	//url2 = "/Professionnel/";

	Ext.Ajax.request({
			url: "/Authentification/index/check",
			params : {mode : "ajax", login : login , pass : pass},
			success: function( result, request ) {
//				alert(result.responseText);
				content = JSON.parse(result.responseText);
				if(url && content.status == 1){
					form = Ext.get("depot_annonce_submit_form");
					form.dom.action = url;
					document.depot_annonce_submit_form.submit();
				}
				/*else if(url2 && content.status == 2){
					form = Ext.get("depot_annonce_submit_form");
					form.dom.action = url2;
					document.depot_annonce_submit_form.submit();  
				}*/
				else{
//					var div = Ext.get("authAlerte");
//					div.update("vous n'&ecirc;tes pas inscrit !");
					Ext.MessageBox.alert('Identification incorrecte',"Vos identifiants ne correspondent &agrave; aucun compte. <br/>V&eacute;rifiez votre adresse mail ou tapez une nouvelle fois votre mot de passe.");
				}
			 },

			failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"une erreur est survenue"); 
			}
//			, 
//			callback: function (result,request){
//				form = Ext.get("depot_annonce_submit_form");
//				form.dom.action = url;
//				document.depot_annonce_submit_form.submit();
//				
//			}
		});
			
}

var afficheInscription = function(){
	div = Ext.get("depot_annonce_bloc_form");
	div.load({
				url: "/Utilisateurs/",
				text: "Updating...",
				callback : initAll
			});		
	div.show();
	var str = '<div id="cgen_texte"></div>';
	Ext.get("cgen").update(str);
}

function initAll(){
	initInscription();
	if(Ext.get("cgen_lien")){
		Ext.get("cgen_lien").on("click",appearCg);
	}
	if(Ext.get("Cg")){
	Ext.get("Cg").on("click",changeValueCg);
	}
}

//function initCg(){
//	if(Ext.get("cgen_lien")){
//		Ext.get("cgen_lien").on("click",appearCg);
//	}
//}


var valide_champs_nok = function(label){
	if(Ext.get(label)){
 		 Ext.get(label).addClass("cObligatoire_nvalide");
	 	champs_input = Ext.get(label).dom.htmlFor;
	 	if (Ext.get(champs_input)){
	 		Ext.get(champs_input).addClass("ajaxVerificationErreur");
	 	}
 	}
}
var valide_champs_clear = function(label){
	if(Ext.get(label)){
 		 Ext.get(label).removeClass("cObligatoire_nvalide");
	 	champs_input = Ext.get(label).dom.htmlFor;
	 	if (Ext.get(champs_input)){
	 		Ext.get(champs_input).removeClass("ajaxVerificationErreur");
	 	}
 	}
}


var inscrireUtilisateur = function(){

	
tab = Ext.Ajax.serializeForm("FormulaireUtilisateur");
tab += '&mode=ajax';

var process = true;

if(Ext.get("conditions_ok")){
	var v = Ext.get("conditions_ok").getValue();
	if(v == "nook"){
		 process = false;
		 Ext.MessageBox.alert('Attention',"Vous devez valider les conditions g&eacute;n&eacute;rales ! "); 
	}
}

if(process){
/**
 * on valide le formulaire d'inscription
 */
 var tabObligatoire = new Array("FormDataMail","FormDataPassword","FormDataPasswordConf","FormDataCivilite","FormDataNom","FormDataPrenom","FormDataNaissance","FormDataVilleID","FormDataAdresse");
 var tabParam = tab.split("&");
 /**
  * il faut un traitement particulier pour le lieu
  */
 var follow = true;
 var ville;
 var message = "Au moins un des champs obligatoires n'est pas renseign&eacute; !";
 var telephoneGsm;
 var telephone;
 var datenaissance;
 var passwordConf;
 var password;
 
 for(var i =0; i < tabParam.length ; i++){
 	var tabNom = tabParam[i].split("=");
 	if(tabObligatoire.indexOf(tabNom[0]) != -1){
 		var nom = "label_"+tabNom[0];
			
		if(tabNom[1] == "" || tabNom[1] == "choose"){
			follow = false;
			if(Ext.get(nom))
			valide_champs_nok(nom);
			//Ext.get(nom).addClass("cObligatoire_nvalide");
		}else{
			if(Ext.get(nom))
			valide_champs_clear(nom);
			//Ext.get(nom).removeClass("cObligatoire_nvalide");
		}
 		
 	}
 	if(tabNom[0] == "isfind") ville = tabNom[1];
 	if(tabNom[0] == "FormDataGSM") telephoneGsm = tabNom[1];
 	if(tabNom[0] == "FormDataTelephone") telephone = tabNom[1]; 
 	if(tabNom[0] == "FormDataNaissance") datenaissance = tabNom[1];
 	if(tabNom[0] == "FormDataNaissance") datenaissance = tabNom[1];
 	if(tabNom[0] == "FormDataPasswordConf") passwordConf = tabNom[1];
 	if(tabNom[0] == "FormDataPassword") password = tabNom[1];
 }
 
 if(password == passwordConf){
 	valide_champs_clear("label_FormDataPasswordConf");
 } else {
 	follow = false;
 	message = "Les mots de passe saisis ne sont pas les m&ecirc;mes";
 	valide_champs_nok("label_FormDataPasswordConf");
 }

 var champs_input;
 if(ville){
 	valide_champs_clear("label_Lieu");
 }else{
 	follow = false;
 	message = "Vous devez renseigner votre lieu de r&eacute;sidence";
 	valide_champs_nok("label_Lieu");
 }
 
 if(!telephone && !telephoneGsm){
 	follow = false;
 	message = "Au moins un des champs t&eacute;l&eacute;phone doit &ecirc;tre renseign&eacute;";
 	valide_champs_nok("label_FormDataTelephone");
 	valide_champs_nok("label_FormDataGSM");
 }else{
 	valide_champs_clear("label_FormDataTelephone");
 	valide_champs_clear("label_FormDataGSM");
 }
 
 if(datenaissance){
 	
 	var tabDatenaissance = datenaissance.split("%2F");
 	var date = new Date(tabDatenaissance[1]+"/"+tabDatenaissance[0]+"/"+tabDatenaissance[2]);
 	
 	var dateDeb = new Date("01/01/1900");
 	var dateFin = new Date();
 	
 	if(Date.parseDate(tabDatenaissance[1]+"/"+tabDatenaissance[0]+"/"+tabDatenaissance[2],"m/d/Y") == undefined || !date.between(dateDeb,dateFin)){
 		message = "La date de naissance renseign&eacute;e n'est pas valide !";
 		follow = false;
 	}
 }
 message += "</ul>";
 
 if(follow){
 	
	var id = Ext.get("auth_groupe");
	tab["groupe"] = id.getValue();
 	
 Ext.Ajax.request({
	url : '/Utilisateurs/index/insertAndAuthenticate' ,
	params : tab,
	success: function( result, request ) {
				json = JSON.parse(result.responseText);
				c = Ext.get("bloc_inscription");
				if(json.status == 1){				
//					alert(result.responseText);
//					/**
//					 * on regarde si il y a des annonces en attente 
//					 */
//					 val = Ext.get("annonce_attente").dom.value;
//					 if(val){
//			
//					 	// Annonce en attente;
//					 	valideAnnonceEnAttente(json.idannonceur);
//					 }
//					document.location.href = "/Particulier/Espace/";
					form = Ext.get("depot_annonce_submit_form");
					form.dom.action = "/Particulier/Espace/";
					document.depot_annonce_submit_form.submit();
				}else if(json.status == 3){
					Ext.Msg.alert('Attention',"Votre adresse email est d&eacute;j&agrave; enregistr&eacute;e sur notre site ! ");
				}else if(json.status == 2){
					Ext.Msg.alert('Attention', json.message);
				}else if(json.status == 4){
					// on redirige vers la page d'accueil
					document.location.href = "/";
				}else{
					Ext.Msg.alert('Attention',"Il y a des erreurs dans le formulaire d'inscription");
				}
			},
			
	failure: function ( result, request) { 
				Ext.MessageBox.alert('Failed',"une erreur est survenue"); 
			},
			
	callback: function (result , request){
//				valideAnnonce(); 
			}				 
		});
	}else{
		
		Ext.Msg.alert('Attention',message);
	}
}	
} 


function initInscription(){
	listenBoutonsVilles();
	creerLiensSpansVilles();
	listenVerificationChamps();
	Ext.get("button_submit").on('click', inscrireUtilisateur); 
}

function initExtraParam(){
	Ext.get("authentification_submit").removeAllListeners();
	Ext.get("authentification_submit").on("click",authenticateAndCreate);
}

Ext.onReady(function(e){
	if(Ext.get("button_submit")){
		initInscription();
	}
	if(Ext.get("authenticateOrCreate.initExtraParam")){
		initExtraParam();
	}
});