ecommerce.account = {
	showLoginWindow: function(zlandingpage) {
		zdiv = $('cssid_connect') ;
		var zclone = zdiv.cloneNode(true) ;
		if (zlandingpage!=null) {
			zclone.down('div.cssclass_login').down('input[name=landing_page]').value = zlandingpage ;
		}
		ecommerce.ajaxmask.show('',false) ;
		
		var zmodal = $('cssid_modal') ;
		
		zmodal.update(zclone) ;
		zmodal.show() ;
		zclone.show() ;
		
		var zwidth = zmodal.getWidth();
		var zheight = zmodal.getHeight();
		var ztop  = document.viewport.getScrollOffsets().top+document.viewport.getHeight()/2-(zheight/2) ;
		var zleft = document.viewport.getWidth()/2-(zwidth/2) ;
		zmodal.setStyle( { top: ztop+'px', left: zleft+'px' } );
		zclone.down('input[name=account_email]').focus();
		zclone.down('a.cssclass_close').observe('click', this.onCloseClick.bind(this));
	},
	
	onCloseClick: function(event) {
		ecommerce.account.closeLoginWindow();
	},
	
	closeLoginWindow: function() {
		var zmodal = $('cssid_modal');
		zmodal.show();
		zmodal.update('');
		zmodal.hide();
		ecommerce.ajaxmask.hide();
	},
	
	login: function() {
		var zmodal = $('cssid_modal');
		var zdiv   = zmodal.down('div.cssclass_login');
		var zform  = zdiv.up('form');
		var zinput_mail   = zform.down('input[name=account_email]');
		var zinput_pass   = zform.down('input[name=account_password]');
		var zlanding_page = zform.down('input[name=landing_page]').value;
		
		var zcheck = ecommerce.utils.verifyEmail(zinput_mail.value,false);
		
		if (!isNaN(zcheck)) {
			alert(ecommerce.utils.translate('Veuillez saisir une adresse valide#Please enter a valid e-mail address'));
			zinput_mail.focus();
			return false;
		}
		
		if (!(zinput_pass.value.length>0)) {
			alert(ecommerce.utils.translate('Veuillez saisir votre mot de passe#Please enter your password'));
			zinput_pass.focus();
			return false;
		}
		
		zmodal.hide();
		ecommerce.ajaxmask.showLoader(ecommerce.utils.translate('Connexion en cours...#Connection under progress...'));
		
		zdata = zform.serialize();
		
		new Ajax.Request('/tools/ajax/ajax_account_callback.php?action=login',
						 { method: 'post',
						   parameters: zdata,
						   onSuccess: function(transport) {
						   		var zmessage = zdiv.down('div.cssclass_message');
						   		switch(transport.responseText) {
						   			case 'ok':
							   			ecommerce.ajaxmask.showLoader(ecommerce.utils.translate('Succès. Redirection vers le compte en ligne.#Success. Redirection to the online account.'));
							   			window.location.href = zlanding_page ;
						   				break;
						   			case 'missing_account_email':
						   			case 'missing_account_password':
						   			case 'customer_not_found':
						   				zmessage.update(ecommerce.utils.translate('Il n\'existe pas de compte avec cet e-mail et ce mot de passe, veuillez vérifier votre saisie.#There is no account with these e-mail and password. Please check your input.'));
						   				zmessage.show();
						   				ecommerce.ajaxmask.hideLoader();
						   				zmodal.show();
						   				break;
						   		}
						 } } );
		return false;
	},
	
	password: function() {
		var zmodal      = $('cssid_modal');
		var zdiv        = zmodal.down('div.cssclass_password');
		var zform       = zdiv.up('form');
		var zinput_mail = zform.down('input[name=account_email]');
		
		var zcheck = ecommerce.utils.verifyEmail(zinput_mail.value,false);
		
		if (!isNaN(zcheck)) {
			alert(ecommerce.utils.translate('Veuillez saisir une adresse valide#Please enter a valid e-mail address'));
			zinput_mail.focus();
			return false;
		}
		
		zmodal.hide();
		ecommerce.ajaxmask.showLoader(ecommerce.utils.translate('Recherche en cours...#Search under progress...'));
		
		zdata = zform.serialize();
		
		new Ajax.Request('/tools/ajax/ajax_account_callback.php?action=password',
						 { method: 'post',
						   parameters: zdata,
						   onSuccess: function(transport) {
						   		var zerror_msg;
						   		switch(transport.responseText) {
						   			case 'ok':
							   			ecommerce.ajaxmask.showLoader(ecommerce.utils.translate('Succès#Success'));
							   			var zmessage = zmodal.down('div.cssclass_login').down('div.cssclass_message');
							   			zmodal.down('div.cssclass_login').down('input[name=account_email]').value = zinput_mail.value;
										zmessage.update(ecommerce.utils.translate('Un e-mail contenant votre mot de passe vient de vous être envoyé.#An e-mail containing your password has just been sent.'));
										zmessage.show();
										ecommerce.account.toggle();
										ecommerce.ajaxmask.hideLoader();
						   				zmodal.show();
										break;
						   			case 'missing_account_email':
						   			case 'customer_not_found':
						   				var zmessage = zdiv.down('div.cssclass_message');
						   				zmessage.update(ecommerce.utils.translate('Il n\'existe pas de compte avec cet e-mail et ce mot de passe, veuillez vérifier votre saisie.#There is no account with these e-mail and password. Please check your input.'));
						   				zmessage.show();
						   				ecommerce.ajaxmask.hideLoader();
						   				zmodal.show();
						   				break;
						   			case 'query_error':
						   			case 'mail_could_not_be_sent':
						   				var zmessage = zdiv.down('div.cssclass_message');
						   				zmessage.update(ecommerce.utils.translate('Erreur de l\'application, essayez à nouveau ou contactez-nous au 02 97 47 56 92. [#Application error. Please try again or contact us at +33(0)297475692. [')+transport.responseText+']');
						   				zmessage.show();
						   				ecommerce.ajaxmask.hideLoader();
						   				zmodal.show();
						   				break;
						   		}
						 } } );
		return false;
	},
	
	logout: function() {
		new Ajax.Request('/tools/ajax/ajax_account_callback.php?action=logout',
						 { method: 'post',
						   onSuccess: function(transport) {
					   			window.location.href = '/' ;
						 } } );
	},
	
	toggle: function() {
		var zmodal = $('cssid_modal') ;
		var zlogin = zmodal.down('div.cssclass_login');
		var zpassw = zmodal.down('div.cssclass_password');
		
		if (zpassw.visible()) {
			zpassw.hide();
			zlogin.show();
		} else {
			zlogin.hide();
			zpassw.show();
		}
	}
	
} ;