var eShop	= new Array();
eShop.Caddy	= new Array();
var Trans 	= new Array();
Trans.Caddy	= new Array();
var TVA 	= new Array();
TVA.Caddy	= new Array();
var PRODTVA = new Array();
PRODTVA.Caddy = new Array();

function AddToCaddy (id,ref, des, price,quantite) {
	// browse existing ref
	found= false;
	if (isNaN(quantite)){
		quantite = parseInt(prompt('Veuillez entrer un nombre valable fr','1'));
		while (isNaN(quantite)){
			quantite = parseInt(prompt('Veuillez entrer un nombre valable fr','1'));
		}
	}

	if (quantite==0) return 0;

	if (quantite<0){
		quantite = parseInt(prompt('Veuillez entrer un nombre supérieur à zero fr','1'));
		while (quantite<0){
			quantite = parseInt(prompt('Veuillez entrer un nombre supérieur à zero fr','1'));
		}
	}

	for (index in eShop.Caddy) {
		if (eShop.Caddy[index][0]==id) {
			// existing at index
			found= true;
			eShop.Caddy[index][4] += quantite;
		}
	}
	if (!found) { // not found, add new record
		index = eShop.Caddy.length;
		eShop.Caddy[index]= new Array(4);
		eShop.Caddy[index][0]= id;
		eShop.Caddy[index][1]= ref;
		eShop.Caddy[index][2]= des;
		eShop.Caddy[index][3]= price;
		eShop.Caddy[index][4]= quantite; // quantity
	}
	window.status= "Added "+ref+"-"+des+"-"+price+" to caddy at "+index+".";
	// Should update frmCaddy if Dynamic style eShop.
}

function RemoveFromCaddy (index,quantitex) {


	var quantite = quantitex;

	if (isNaN(quantite)){
		quantite = parseInt(prompt('Veuillez entrer un nombre valable debug','1'));
		while (isNaN(quantite)){
			quantite = parseInt(prompt('Veuillez entrer un nombre valable debug','1'));
		}
	}

	if (quantite==0) return 0;

	if (eShop.Caddy[index][4] > quantite) {
		// remove quantite
		eShop.Caddy[index][4] =eShop.Caddy[index][4] - quantite;
	} else {
		// delete record
		eShop.Caddy= eShop.Caddy.slice(0,index).concat(eShop.Caddy.slice(index+1,eShop.Caddy.length));

	}
}

function EmptyCaddy() {
	eShop.Caddy.length = 0;
	eShop= new Array();
	eShop.Caddy= new Array();
}


function AddToCaddyStock (id,ref, des, price,quantite,Stock) {
	// browse existing ref
	found= false;

	if (quantite==0) return ;

	if (Stock==null || Stock==0) return ;

	// browse existing ref
	found= false;
	if (quantite==0) return 0;
	ValidNumber = false;
	while (!ValidNumber) {
		ValidNumber = true;
		if (quantite.value=="undefined") return 0;
		if (isNaN(quantite)){ 
			quantite = parseInt(prompt('Error','1'));
			ValidNumber = false;
		}
		if (quantite<0){
			quantite = parseInt(prompt('Error','1'));
			ValidNumber = false;
		}
		if (quantite>Stock && Stock>=1){
			quantite = parseInt(prompt('Error '+Stock,'1'));
			ValidNumber = false;
		}
	}

	for (index in eShop.Caddy) {
		if (eShop.Caddy[index][0]==id) {
			// existing at index
			found= true;
			eShop.Caddy[index][4] += quantite;
		}
	}
	if (!found) { // not found, add new record
		index = eShop.Caddy.length;
		eShop.Caddy[index]= new Array(4);
		eShop.Caddy[index][0]= id;
		eShop.Caddy[index][1]= ref;
		eShop.Caddy[index][2]= des;
		eShop.Caddy[index][3]= price;
		eShop.Caddy[index][4]= quantite; // quantity
	}
	window.status= "Added "+ref+"-"+des+"-"+price+" to caddy at "+index+".";
	// Should update frmCaddy if Dynamic style eShop.
}


function AddToTrans (id,ref, des, price,quantite) {
	// browse existing ref
	if (price>0) {
	Trans.Caddy[0]= new Array(4);
	Trans.Caddy[0][0]= id;
	Trans.Caddy[0][1]= ref;
	Trans.Caddy[0][2]= des;
	Trans.Caddy[0][3]= price;
	Trans.Caddy[0][4]= quantite; // quantity
	}
	else {

	Trans.Caddy[0]= new Array(4);
	Trans.Caddy[0][0]= id;
	Trans.Caddy[0][1]= ref;
	Trans.Caddy[0][2]= des;
	Trans.Caddy[0][3]= "--";
	Trans.Caddy[0][4]= quantite; // quantity
	}
	// Should update frmCaddy if Dynamic style eShop.
}

function RemoveFromTrans (index,quantite) {
	if (isNaN(quantite)){
		quantite = parseInt(prompt('Veuillez entrer un nombre valable','1'));
		while (isNaN(quantite)){
			quantite = parseInt(prompt('Veuillez entrer un nombre valable','1'));
		}
	}
	if (Trans.Caddy[index][4] > quantite) {
		// remove quantite
		Trans.Caddy[index][4] =Trans.Caddy[index][4] - quantite;
	} else {
		// delete record
		Trans.Caddy= Trans.Caddy.slice(0,index).concat(Trans.Caddy.slice(index+1,Trans.Caddy.length));
	}
}

function EmptyTrans() {
	Trans.Caddy.length = 0;
	Trans= new Array();
	Trans.Caddy= new Array();
}

function AddToTVA (id, ref, des, price,quantite, THEPROD, THETVA, IDPROD ) {

//	alert('PARAM : id'+id+"Ref : "+ref+" des : "+des+" Price : "+price+" THEPROD : "+THEPROD+" THETVA "+THETVA+" IDPROD "+IDPROD);

	// browse existing ref
	found= false;
	if (isNaN(quantite)){
		quantite = parseInt(prompt('Veuillez entrer un nombre valable fr','1'));
		while (isNaN(quantite)){
			quantite = parseInt(prompt('Veuillez entrer un nombre valable fr','1'));
		}
	}
	if (quantite<0){
		quantite = parseInt(prompt('Veuillez entrer un nombre supérieur à zero fr','1'));
		while (quantite<0){
			quantite = parseInt(prompt('Veuillez entrer un nombre supérieur à zero fr','1'));
		}
	}
	if (quantite==0) return;

	var indexcpt = 0;
	
	for (index in TVA.Caddy) {
		indexcpt++;	
		if (TVA.Caddy[index][0]==id) {
			// existing at index
			found= true;
			TVA.Caddy[index][3] += (price * quantite);
		}
	}
	if (!found) { // not found, add new record
		index= TVA.Caddy.length;
		TVA.Caddy[index]= new Array(4);
		TVA.Caddy[index][0]= id;
		TVA.Caddy[index][1]= ref;
		TVA.Caddy[index][2]= des;
		TVA.Caddy[index][3]= (price * quantite); // Total Price
		TVA.Caddy[index][4]= 1; // quantity

	}

	found= false;
	var indexTVA= 0;
	for (indexFind in PRODTVA.Caddy) {
		if (PRODTVA.Caddy[indexFind][2]==THEPROD) {
			found= true;
		}
	}

	if (found) {
		indexTVA= indexFind;
		//PRODTVA.Caddy[indexTVA][1] += THETVA; 	// ADD TVA
	}
	else { // not found, add new record
		indexTVA= PRODTVA.Caddy.length;
		PRODTVA.Caddy[indexTVA]= new Array(4);
		PRODTVA.Caddy[indexTVA][0]= indexTVA;   // ID Ligne
		PRODTVA.Caddy[indexTVA][1]= THETVA; 	// TVA
		PRODTVA.Caddy[indexTVA][2]= THEPROD; 	// PRODUIT TVA
		PRODTVA.Caddy[indexTVA][3]= id; 		// id TVA ?
		PRODTVA.Caddy[indexTVA][4]= IDPROD; 	// PRODUIT ID
	}

	window.status= "Added "+ref+"-"+des+"-"+price+" to caddy at "+index+".";
}

function RemoveFromTVA (index,TVAX,quantite,IDPROD) {

	// DECLARATION 
	// index : N° ligne dans Produits et PRODTVA
	if (quantite==0) return 0;

	//alert('PARAM : index'+index+"TVAX : "+TVAX+" quantite : "+quantite+" TAUX : "+TAUX+" IDPROD : "+IDPROD)
	
	foundProdTVA 	= false;
	TVACPT 		= 0; 

	for (indexProdTVA in PRODTVA.Caddy) {
		if (PRODTVA.Caddy[indexProdTVA][4]==IDPROD) { // OK
			// existing at index
			//alert('Find PRODTVA @'+indexProdTVA)
			TVACPT = parseInt(indexProdTVA);
			foundProdTVA= true;
		}
	}
	
	foundTauxTVA 	= false;
	TAUXCPT 			= 0; 
	for (indexTauxTVA in TVA.Caddy) {
		//alert('Compare :'+TVA.Caddy[indexTauxTVA][0]+" à "+PRODTVA.Caddy[TVACPT][3])
		if (TVA.Caddy[indexTauxTVA][0]==PRODTVA.Caddy[TVACPT][3]) {
			// existing at index
			//alert('Find TVA Taux @ '+indexTauxTVA)
			TAUXCPT = parseInt(indexTauxTVA);
			foundTauxTVA= true;
		}
	}
	THETVATAUX = parseFloat(PRODTVA.Caddy[TVACPT][1]);
	//alert('THE TVA Taux @ '+THETVATAUX);
	TOTALM = parseFloat(((TVAX*THETVATAUX)/100)*quantite);
	
	//alert ("Compare Montant :"+parseFloat(TVA.Caddy[TAUXCPT][3])+" à "+TOTALM);
	if (parseFloat(TVA.Caddy[TAUXCPT][3])>parseFloat(TOTALM)) {
		// remove quantite
		 TVA.Caddy[TAUXCPT][3]=TVA.Caddy[TAUXCPT][3]-TOTALM;
	} else {
		//alert('del TVA LIGNE @'+TAUXCPT)
		// delete record REMOVE THE TVA LIGNE
		if (foundProdTVA) {
			TVA.Caddy = TVA.Caddy.slice(0,TAUXCPT).concat(TVA.Caddy.slice(TAUXCPT+1,TVA.Caddy.length));
		}
	}
	foundProd = false;
	for (indexProd in eShop.Caddy) {
		if (eShop.Caddy[indexProd][0]==IDPROD) {
			// existing at index
			foundProd= true;
		}
	}
	if (!foundProd && foundProdTVA) {
		//alert('del PROD @'+TVACPT)
		TVACPT = parseInt(TVACPT);
		PRODTVA.Caddy = PRODTVA.Caddy.slice(0,TVACPT).concat(PRODTVA.Caddy.slice(TVACPT+1,PRODTVA.Caddy.length));
	}
	
}

function EmptyTVA() {
	TVA.Caddy.length = 0;
	TVA= new Array();
	TVA.Caddy= new Array();
}
