var Panier = new Class({

	Implements: [Options, Events],
	options: {
		name			: 	'panier',
		adresseDonnees	:	''
	},
	initialize			: function(options){
		this.setOptions(options);
		
	},
	
	ajouterAnnonce		: function(id_annonce, quantite, function_valid, function_error, function_redirect){

		if(function_valid==null){
			function_valid = function(){
				Alerte('ajouterAnnonce '+id_annonce+'x'+quantite+' OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('ajouterAnnonce '+id_annonce+'x'+quantite+' erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('ajouterAnnonce '+id_annonce+'x'+quantite+' redirect');
			}
		}
		var data	= 'action=ajouterAnnonce&id_annonce='+id_annonce+'&quantite='+quantite;
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	enleverAnnonce		: function(id_annonce, quantite, function_valid, function_error, function_redirect){

		if(function_valid==null){
			function_valid = function(){
				Alerte('enleverAnnonce '+id_annonce+' OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('enleverAnnonce '+id_annonce+' erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('enleverAnnonce '+id_annonce+' redirect');
			}
		}
		var data	= 'action=enleverAnnonce&id_annonce='+id_annonce+'&quantite='+quantite;
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	supprimerAnnonce	: function(id_annonce, function_valid, function_error, function_redirect){

		if(function_valid==null){
			function_valid = function(){
				Alerte('supprimerAnnonce '+id_annonce+' OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('supprimerAnnonce '+id_annonce+' erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('supprimerAnnonce '+id_annonce+' redirect');
			}
		}
		var data =	'action=supprimerAnnonce&id_annonce='+id_annonce;
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	changerTypeEnvoi		: function(id_type_envoi, id_annonce, function_valid, function_error, function_redirect){

		if(function_valid==null){
			function_valid = function(){
				Alerte('changerTypeEnvoi OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('changerTypeEnvoi erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('changerTypeEnvoi redirect');
			}
		}
		var data	= 'action=changerTypeEnvoi&id_annonce='+id_annonce+'&id_type_envoi='+id_type_envoi;
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	acheter				: function(function_valid, function_error, function_redirect, datas){
		if(function_valid==null){
			function_valid = function(){
				Alerte('Acheter OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('Acheter erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('Acheter redirect');
			}
		}
		this.envoyerAchat(datas);
	},
	vider				: function(function_valid, function_error, function_redirect){
		
		if(function_valid==null){
			function_valid = function(){
				Alerte('Vider OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('Vider erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('Vider redirect');
			}
		}
		
		var data	= 'action=viderPanier';
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	getPrix				: function(function_valid, function_error, function_redirect){
		
		if(function_valid==null){
			function_valid = function(){
				Alerte('prix OK');
			}
		}
		if(function_error==null){
			function_error = function(){
				Alerte('prix erreur');
			}
		}
		if(function_redirect==null){
			function_redirect = function(){
				Alerte('prix redirect');
			}
		}
		
		var data	= 'action=getPrix';
		this.envoyerRequete(function_valid, function_error, function_redirect,data);
	},
	
	
	envoyerAchat		: function(data){
		var panier	= this;
		var request = new Request({
			'url'			: panier.options.adresseDonnees,
			'method'		: 'post',
			'data'			: data
		}).send();
	},	
	
	
	envoyerRequete		: function(function_valid, function_error, function_redirect,data){
		var panier	= this;
		var request = new Request({
			'url'			: panier.options.adresseDonnees,
			'method'		: 'post',
			'data'			: data,
			onComplete: function(responseJson){	
				var jsonRes = JSON.decode(this.getHeader('X-JSON'));
				switch(jsonRes.status){
				    case 'error':
				    	if(function_error!=null){
				    		function_error();
				    	}
					    break;
				    case 'valid':
				    	if(function_valid!=null){
				    		function_valid(jsonRes.datas);
				    	}
						break;   
				    case 'redirect':
				    	if(function_redirect!=null){
				    		function_redirect();
				    	}
				    	break;
				    default :
					    break;
				}
			}
		
		}).send();
	}	
	
});