window.addEvent('domready',function() {
	tunnelCartAction();
	checkAccount();
	deliveryAction();
	
	//	DECONNEXION DE L'UTILISATEUR
	if($('deconnect'))
		$('deconnect').addEvent('click', function(e) {
			e.stop();
			var request = new Request ({
				method:'post',
				url: _ROOT_URL+'routines.ajax.php',
				onRequest: function() {},
				onComplete: function(response) {
					var retour = JSON.decode(response,true);
					if(retour && retour.method == 'JSON' && retour.etat == false) alert(retour.message);
					else { window.location.reload(); }
				}
			});
			request.send('action-ajax=deconnect');
		});
	
	//	UTILISATION D'UN CODE PROMO
	if($('codepromo'))
		$$('#checkout-cart #codepromo input[type=submit]').addEvent('click', function(e) {
			var request = new Request ({
				method:'post',
				url: _ROOT_URL+'routines.ajax.php',
				onRequest: function() {  },
				onComplete: function(response) {
					response = response.split('$$$$$');
					$('cart-total').set('html', response[0]);
					
					if(response[1]) alert(response[1]);
				}
			});
			request.send('action-ajax=promotion&code='+$$('#checkout-cart #codepromo input[name=codepromo]').get('value'));
			return false;
		});
});

/**
 * Actions de l'étape panier
 */
function tunnelCartAction() {
	//	SUPPRESSION D'UN ARTICLE
	$$('#checkout-cart table a.product-del').addEvent('click', function(e) {
		var itemDiv = this.getParent().getParent();
		var request = new Request ({
			method:'post',
			url: _ROOT_URL+'routines.ajax.php',
			onRequest: function() { },
			onComplete: function(response) {
				var retour = JSON.decode(response,true);
				if(retour && retour.method == 'JSON' && retour.etat == false) alert(retour.message);
				else {
					response = response.split('$$$$$');
					//	FADE DE L'ITEM A SUPPRIMER ET DU BOUTON "TERMINER" SI LE PANIER EST VIDE
					itemDiv.fade(0);	
					if(response[1] == '') $('cart-total').getNext('input').fade(0);
					
					$('cart-total').set('html', response[2]);
					
					//	RE-ECRITURE DU CONTENU DU PANIER ET INITIALISATION DE SES ACTIONS
					(function() {
						$$('#second-menu li.cart').set('html', response[0]);
						$$('#my-cart .catalog-cart').set('html', response[1]);
						$$('#checkout-cart table').set('html', response[3]);
						tunnelCartAction();
					}).delay('1000');
					
				}
			}
		});
		request.send('action-ajax=gestion-panier&checkout=1&do=del&id_montre='+this.get('id').split('-')[1]);
	});
	
	//	MODIFICATION DE LA QUANTITE
	$$('#checkout-cart table select.cart-change').addEvent('change', function(e) {
		var request = new Request ({
			method:'post',
			url: _ROOT_URL+'routines.ajax.php',
			onRequest: function() {  },
			onComplete: function(response) {
				var retour = JSON.decode(response,true);
				if(retour && retour.method == 'JSON' && retour.etat == false) alert(retour.message);
				else {
					//	RE-ECRITURE DU CONTENU DU PANIER ET INITIALISATION DE SES ACTIONS
					response = response.split('$$$$$');
					$$('#second-menu li.cart').set('html', response[0]);
					$$('#my-cart .catalog-cart').set('html', response[1]);
					$('cart-total').set('html', response[2]);
					$$('#checkout-cart table').set('html', response[3]);
					tunnelCartAction();
				}
			}
		});
		request.send('action-ajax=gestion-panier&checkout=1&do=quantite&id_montre='+this.get('id').split('-')[1]+'&quantite='+this.get('value'));
	});
}

/**
 * Actions de l'étape d'identification
 */
function checkAccount() {
	//	VALIDATION DU FORMULAIRE D'IDENTIFICATION
	$$('form.account_login').addEvent('submit', function(e) { e.stop(); });
	$$('form.account_login input[type=submit]').addEvent('click', function(e) { $$('form.account_login').send(); });
	$$('form.account_login').set('send', {
		onRequest: function() { $('waitLogin').set('html', '<img src="'+_ROOT_URL+'gene/image/common/ajax-loader.gif" />'); },
		onComplete: function(response) {
			$('waitLogin').empty();
			var retour = JSON.decode(response, true);
			if(retour && retour.method == 'JSON' && retour.etat == false) {
				$$('input[name='+retour.champ+']').setStyles({ border:'1px solid red' });
				$('errorsLogin').set('html', retour.message);
			}
			else { window.open(response, '_self'); }
		}
	});
	
	//	VALIDATION DU FORMULAIRE DE CREATION
	$$('form.account_create').addEvent('submit', function(e) { e.stop(); });
	$$('form.account_create input[type=submit]').addEvent('click', function(e) { $$('form.account_create').send(); });
	$$('form.account_create').set('send', {
		onRequest: function() { $('wait').set('html', '<img src="'+_ROOT_URL+'gene/image/common/ajax-loader.gif" />'); },
		onComplete: function(response) {
			$('wait').empty();
			var retour = JSON.decode(response, true);
			if(retour && retour.method == 'JSON' && retour.etat == false) {
				$$('input[name='+retour.champ+']').setStyles({ border:'1px solid red' });
				$('errors').set('html', retour.message);
			}
			else { window.open(response, '_self'); }
		}
	});
	
	//	Sur tous les input dont le type est différent de SUBMIT
	$$('form.account_create input:not([type=submit]):not([type=checkbox])').addEvent('blur', function(e) {
		if(this.value == '') this.setStyles({ border:'1px solid red' });
		else this.setStyles({ border:'1px solid black' });
	});
}

/**
 * Actions de l'étape de livraison
 */
function deliveryAction()
{
	//	DESACTIVE L'ADRESSE DE FACTURATION
	$$('input[name=adresses_identiques]').addEvent('click', function(e) {
		disabledFactAdr($$('input[name=adresses_identiques]')[0].checked);
	});
	
	//	MODIFIE LE PAYS DE FACTURATION
	$$('form.adresse_livraison select').addEvent('change', function(e) {
		if($$('input[name=adresses_identiques]')[0].checked == true) {
			var object = eval($$('form.adresse_livraison select[name='+this.name+'_fact]'));
			object.set('selectedIndex', this.selectedIndex);
			object.set('value', this.get('value'));
			//	NO IE7
			if(object.getPrevious('span') != '') {
				object.getPrevious('span').set('html', this.get('value'));
			}
		}
	});
	
	//	DIFFERENTES ACTIONS DU FORMULAIRE
	var action = 0;
	$$('form.adresse_livraison').addEvent('submit', function(e) { e.stop(); });
	//	Choix d'un pays
	$$('form.adresse_livraison select[name=pays]').addEvent('change', function(e) {
		$$('input[name=do]').set('value', 'pays');
		$$('form.adresse_livraison').send();
	});
	//	Choix d'un code postal
	/*$$('form.adresse_livraison input[name=code_postal]').addEvent('blur', function(e) {
		$$('input[name=do]').set('value', 'pays');
		$$('form.adresse_livraison').send();
	});*/
	//	Validation du formulaire
	$$('form.adresse_livraison input[type=submit]').addEvent('click', function(e) {
		action = 1;
		$$('input[name=do]').set('value', 'valide');
		$$('form.adresse_livraison').send();
	});
	//	Choix d'un mode de livraison
	$$('form.adresse_livraison input[type=radio]').addEvent('click', function(e) {
		action = 2;
		$$('form.adresse_livraison').send();
	});
	
	//	ENVOI DU FORMULAIRE
	$$('form.adresse_livraison').set('send', {
		onRequest: function() { $('wait').set('html', '<img src="'+_ROOT_URL+'gene/image/common/ajax-loader.gif" />'); },
		onComplete: function(response) {
			var retour = JSON.decode(response, true);
			if(retour && retour.method == 'JSON' && retour.etat == false) {
				if($$('select[name='+retour.champ+']')) {
					var select = $$('select[name='+retour.champ+']');
					//	NO IE7
					if(select.getPrevious('span') != '') {
						if(select.value) select.getPrevious('span').setStyles({ border:'1px solid black' });
						else select.getPrevious('span').setStyles({ border:'1px solid red' });
					}
					//	IE7
					else {
						if(select.value) select.setStyles({ color:'black' });
						else select.setStyles({ color:'red' });
					}
				}
				$$('input[name='+retour.champ+']').setStyles({ border:'1px solid red' });
				$('errors').set('html', retour.message);
				$('wait').empty();
			}
			else {
				response = response.split('$$$$$');
				if(response[2] != '' && response[2] != ' ' && action == 1) window.open(response[2], '_self');
				
				$('delivery_mode').set('html', response[0]);
				$('checkout-my-delivery').set('html', response[1]);
				$('checkout-mini-cart').set('html', response[3]);
				$$('form.adresse_livraison input[type=radio]').addEvent('click', function(e) { action = 2; $$('form.adresse_livraison').send(); });
				$$('fieldset input[type=submit]').set('value', '► '+response[4]);
				$('errors').empty();
				$('wait').empty();
			}
		}
	});
	
	//	Sur tous les input dont le type est différent de SUBMIT (et dont le label contient *)
	$$('form.adresse_livraison input:not([type=submit])').addEvent('blur', function(e) {
		if(this.getParent().get('html').search(/\*/) != -1) {
			if(this.value == '') this.setStyles({ border:'1px solid red' });
			else this.setStyles({ border:'1px solid black' });
		}
	});
	
	$$('form select').addEvent('blur', function(e) {
		//	NO IE7
		if(this.getPrevious('span') != null) {
			if(this.value == '') this.getPrevious('span').setStyles({ border:'1px solid red' });
			else this.getPrevious('span').setStyles({ border:'1px solid black' });
		}
		//	IE7
		else {
			if(this.value) this.setStyles({ color:'black' });
			else this.setStyles({ color:'red' });
		}
	});
}
