ClientSession = {
		
	CONNEXION_FORM_ID	: "connexionForm",
	ACCOUNT_DIV_ID		: "account",
	
	connect : function(){
		if(isInProgress())
			return;
		var form = document.getElementById(ClientSession.CONNEXION_FORM_ID);
		if(form==null)
			return;
		if(!this.check(form))
			return;
		var email = encodeURIComponent(form.email.value);
		var password = encodeURIComponent(form.password.value);
		var request = new ajax();
		request.parameters = "ajax=1&method=create&path=clientSession&email="+email+"&password="+password;
		request.onload = ClientSession.connected;
		request.send("post", ROOT+"clientSession", request.parameters);
	},
	
	keyUpConnect : function(e){
		if(e.which==13 || (window.event && window.event.keyCode==13)){
			ClientSession.connect();
		}
	},
	
	connected : function(){
		if(this.request.responseText=="CLIENTSESSION_CREATE_OK"){
			if(typeof(Favorite)!='undefined')
				window.location.reload();
			else if(typeof(Purchase)!='undefined')
				Purchase.validateBasket();
			else
				window.location.reload();
		}else
			alert(ClientSession.i18n(this.request.responseText));
	},
	
	disconnect : function(){
		if(isInProgress())
			return;
		var request = new ajax();
		request.parameters = "ajax=1&method=delete&path=clientSession/0";
		request.onload = ClientSession.disconnected;
		request.send("post", ROOT+"clientSession/0", request.parameters);
	},
		
	disconnected : function(){
		var reg = new RegExp("/facture|commande(/[0-9]*)?");
		if(reg.exec(window.location))
			window.location = ROOT+"client/menu.html";
		else
			window.location = window.location;
	},
	
	check : function(form){
		if(!isEmail(form.email.value)){
			alert("Veuillez saisir une adresse mail valide.");
			return false;
		}
		if(!isPassword(form.password.value)){
			alert("Veuillez saisir un mot de passe d'au moins 5 caractères sans espace blanc.");
			return;
		}
		return true
	},
	
	i18n : function(key){
		if(key=="CLIENT_NOT_FOUND")
			return "Client inconnu.\nVeuillez vérifier votre email et votre mot de passe.";
		else
			return "Votre requête a échoué.\nVeuillez vérifier votre email et votre mot de passe.";
	}

};


Client = {
		
	NEW_FORM_ID				: "newClientForm",
	CLIENT_CREATE_FORM_ID	: "clientCreationFrom",
	CLIENT_EDIT_FORM_ID		: "clientEditForm",
	CLIENT_PASSWORD_FORM_ID	: "clientPasswordForm",
	FORGOT_FORM_ID			: "forgotForm",
	
	create : function(){
		var form = document.getElementById(this.CLIENT_CREATE_FORM_ID);
		if(form==null)
			return;
		if(!this.check(form))
			return;
		if(!isPassword(form.password.value)){
			alert("Veuillez saisir un mot de passe d'au moins 5 caractères sans espace blanc.");
			return;
		}
		var name = encodeURIComponent(form.name.value);
		var email = encodeURIComponent(form.email.value);
		var password = encodeURIComponent(form.password.value);
		var request = new ajax();
		request.parameters = "ajax=1&method=create&path=client&name="+name+"&email="+email+"&password="+password;
		request.onload = Client.created;
		request.send("post", ROOT+"client", request.parameters);
	},

	created : function(){
		if(this.request.responseText=="CLIENT_CREATE_OK"){
			if(typeof(Purchase)!='undefined')
				window.location = ROOT+"purchase/modalites.html";
			else
				window.location = ROOT+"client/menu.html";
		}else
			alert(this.request.responseText);
	},
	
	update : function(){
		var form = document.getElementById(this.CLIENT_EDIT_FORM_ID);
		if(form==null)
			return;
		if(!this.check(form))
			return;
		var name = encodeURIComponent(form.name.value);
		var email = encodeURIComponent(form.email.value);
		var request = new ajax();
		request.parameters = "ajax=1&method=update&path=client/0&name="+name+"&email="+email;
		request.onload = Client.updated;
		request.send("post", ROOT+"client/0", request.parameters);
	},
	
	updatePassword : function(){
		var form = document.getElementById(this.CLIENT_PASSWORD_FORM_ID);
		if(form==null)
			return;
		if(!isPassword(form.password.value)){
			alert("Veuillez saisir un mot de passe d'au moins 5 caractères sans espace blanc.");
			return;
		}
		var password = encodeURIComponent(form.password.value);
		var request = new ajax();
		request.parameters = "ajax=1&method=update&path=client/0&password="+password;
		request.onload = Client.updated;
		request.send("post", ROOT+"client/0", request.parameters);
	},
	
	updated : function(){
		if(this.request.responseText!="CLIENT_UPDATE_OK")
			alert(this.request.responseText);
		else
			window.location.reload();
	},
		
	forgot : function(){
		var form = document.getElementById(this.FORGOT_FORM_ID);
		if(form==null)
			return;
		if(!isEmail(form.email.value)){
			alert("Veuillez saisir une adresse mail valide.");
			return;
		}
		var email = encodeURIComponent(form.email.value);
		var request = new ajax();
		request.parameters = "ajax=1&method=create&path=clientSession&email="+email+"&password="+form.password.value;
		request.onload = Client.sent;
		request.send("post", ROOT+"clientSession", request.parameters);
	},
	
	sent : function(){
		if(this.request.responseText=="CLIENTSESSION_CREATE_OK"){
			alert("Un nouveau mot de passe vous a été envoyé dans votre boîte mail.");
			if(typeof(Purchase)!='undefined')
				window.location = ROOT+"purchase/modalites.html";
			else
				window.document.location = ROOT+"client/menu.html";
		}else
			alert(this.request.responseText);
	},
	
	check : function(form){
		if(trim(form.name.value).length<2){
			alert("Veuillez indiquer une société ou un nom.");
			return false;
		}
		if(!isEmail(form.email.value)){
			alert("Veuillez saisir une adresse mail valide.");
			return false;
		}
		return true
	},
	
	showBasketSummary : function(id){
		var div = document.getElementById('basketSummary'+id);
		if(div==null)
			return;
		div.className = "visibleBasketSummary";
		div.style.width = div.parentNode.parentNode.parentNode.offsetWidth-220+"px";
	},
	
	hideBasketSummary : function(id){
		var div = document.getElementById('basketSummary'+id);
		if(div==null)
			return;
		div.className = "hiddenBasketSummary";
	}

		

};
