﻿AchatExpress = Class.create();
AchatExpress.prototype = {

	initialize: function () {
		if ($("achatExpressCodeArticle")) {
			if ($("addArticle")) {
				this.articles = new Array();
				for (var i=0;i<3;i++) { this.addArticle(); }
				Event.observe($("addArticle"),"click",this.addArticle.bind(this));
				Event.observe($("removeArticle"),"click",this.removeArticle.bind(this));
			}
		}
	},
	
	addArticle: function () {
		this.articles.push({code:"",quantity:1});
		if (this.articles.length>1) { $("removeArticle").style.display = "block"; }
		this.writeArticles();
	},
	
	removeArticle: function () {
		if (this.articles.length>1) {
			this.articles.pop();
			if (this.articles.length==1) { $("removeArticle").style.display = "none"; }
			this.writeArticles();
		}
	},
	
	writeArticles: function () {
		var str = '';
		for (var i=1;i<=this.articles.length;i++) {
			str += '<div class="boxAchatExpress" id="'+i+'achatExpress">';
				str += '<div class="codeArticle">';
					str += '<label for="codeArticle'+i+'">Code article :</label>';
					str += '<input name="codeArticle'+i+'" type="text" id="codeArticle'+i+'" title="Code article" value="'+this.articles[i-1].code+'" class="myInput" />';
				str += '</div>';
				str += '<div class="quantite">';
					str += '<label for="quantite'+i+'">Quantit&eacute; :</label>';
					str += '<a href="#0"><img src="'+basketImgMoins+'" alt="moins" /></a>';
					str += '<input name="quantite'+i+'" type="text" id="quantite'+i+'" title="Quantit&eacute;" value="'+this.articles[i-1].quantity+'" class="myInput" />';
					str += '<a href="#0"><img src="'+basketImgPlus+'" alt="plus" /></a>';
				str += '</div>';
				str += '<div id="msgArticle'+i+'"></div>';
				str += '<div class="clear"></div>';
			str += '</div>';
		}
		$("boxesAchatExpress").innerHTML = str;
		this.setArticleEvent();
	},
	
	setArticleEvent: function () {
		this.nodesArticles = $$("#boxesAchatExpress .boxAchatExpress");
		for (var i=0;i<this.nodesArticles.length;i++) {
			var nodesA = this.nodesArticles[i].getElementsByTagName("a");
			Event.observe(nodesA[0],"click",this.modifyArticleQuantity.bindAsEventListener(this,-1));
			Event.observe(nodesA[1],"click",this.modifyArticleQuantity.bindAsEventListener(this,1));			
			Event.observe(this.nodesArticles[i].getElementsByTagName("input")[0],"blur",this.modifyCode.bindAsEventListener(this));			
			Event.observe(this.nodesArticles[i].getElementsByTagName("input")[1],"blur",this.refreshQuantity.bindAsEventListener(this));						
		}
	},

	refreshQuantity: function (o) {
		this.articles[parseInt(Event.element(o).parentNode.parentNode.id)-1].quantity = Event.element(o).value;
	},
	
	modifyCode: function (o) {
		this.articles[parseInt(Event.element(o).parentNode.parentNode.id)-1].code = Event.element(o).value;
	},
	
	modifyArticleQuantity: function (o,quantity) {
		var input = Event.element(o).parentNode.parentNode.getElementsByTagName("input")[0];
		var n = Number(input.value) + quantity;
		if (n>=1) {
			input.value = n;
			this.articles[parseInt(Event.element(o).parentNode.parentNode.parentNode.id)-1].quantity = input.value;
		}
	}

}

Event.observe(window,"load",function () { var myAchatExpress = new AchatExpress(); });