// INIT BON CMD
var vins = Array();
var invalid = false;
var curRange = 0;
var oldRange = 0;
var ranges = Array(0,10,20);
var rangeCell = Array();
var totCell = Array(); 
var quantity = 0; 
var sum = 1; 
//--------------------------
var qBout = 2;
//--------------------------
var submitButton;
//--------------------------
var nb_bout_par_carton = 6;
//--------------------------
//highlightRange();
//updateRange();

function Stretch(Q, L, c)
{
	var S = Q;
	if (c.length > 0)
		while (S.length < L)
		{S = c + S;}
	return S;
}

function StrU(X, M, N)
{ // X>=0.0
	var T, S=new String(Math.round(X*Number("1e"+N)));
	if (S.search && S.search(/\D/)!=-1) { return ''+X }
	with (new String(Stretch(S, M + N, '0')))
	return substring(0, T = (length - N)) + '.' + substring(T);
}

function Sign(X)
{
	return X < 0 ? '-' : '';
}

function StrS(X, M, N)
{
	return Sign(X)+StrU(Math.abs(X), M, N);
}

Number.prototype.toFixed = new Function('n','return StrS(this,1,n)');

function checkKey(myEv, curObj)
{
//	alert('test');
	var lastKey = (navigator.appName == "Netscape") ? myEv.which : myEv.keyCode;
//	alert(lastKey);
	if(lastKey != 9)
	{
		if(lastKey == 40)
		{
			selectNextElem(curObj);
		}
		else if(lastKey == 38)
		{
			selectPrevElem(curObj);
		}
		else
		{
//			alert(lastKey);
			update();
		}
	}
}

function selectNextElem(curObj)
{
	var newName = "";
	var oldIndex = "";
	var newIndex = 0;
	var i;

	for(i=(curObj.name).length-1; i>=0 && (curObj.name).charAt(i) != "_"; i--)
	{
		oldIndex = (curObj.name).charAt(i) + oldIndex;
	}
	newIndex = parseInt(oldIndex) + 1;
	if(newIndex >= vins.length)
	{
		return false;
	}

	for(; i>=0; i--)
	{
		newName = (curObj.name).charAt(i) + newName;
	}
//	alert(curObj.name + " " + newName + newIndex);
	nextElem = MM_findObj(newName + newIndex);
	nextElem.select();
	return false;
}

function selectPrevElem(curObj)
{
	var newName = "";
	var oldIndex = "";
	var newIndex = 0;
	var i;

	for(i=(curObj.name).length-1; i>=0 && (curObj.name).charAt(i) != "_"; i--)
	{
		oldIndex = (curObj.name).charAt(i) + oldIndex;
	}
	
	if(oldIndex <= 0)
	{
		return false;
	}

	for(; i>=0; i--)
	{
		newName = (curObj.name).charAt(i) + newName;
	}

	newIndex = parseInt(oldIndex) - 1;
//	alert(curObj.name + " " + newName + newIndex);
	nextElem = MM_findObj(newName + newIndex);
	nextElem.select();
	return false;
}

function clearCell(curObj)
{
//	alert(curObj.value);
	if (curObj.value == "0")
	{
		curObj.value = "";
	}
	else
	{
		curObj.focus();
	}
}

function updateRange()
{
//	alert("in updateRange");
	qty = 0;
	for(curVin in vins)
	{
		if(isNumeric(vins[curVin].qty.value))
			qty += parseInt(vins[curVin].qty.value);
	}

	go = true;
	for(i=(ranges.length-1);i>=0 && go;i--)
	{
		if(qty < ranges[i])
		{
			go = true;
		}
		else
		{
			go = false;
		}
	}
	if(go)
		curRange = 0;
	else
		curRange = i+1;
	
	if(totCell.length <= 0)
	{
		totCell[quantity] = MM_findObj("qtyTot");
		//--------------------------------------------
		totCell[qBout] = MM_findObj("qtyTotBout");
		//--------------------------------------------
		totCell[sum] = MM_findObj("totTot");
	}
	totCell[quantity].innerHTML = qty;
	totCell[qBout].innerHTML =qty*nb_bout_par_carton;
//	alert(qty + " : " + curRange);
}

function highlightPrix(curObj)
{
//	alert(curObj.id);
	curObj.prixCell[curRange].style.backgroundColor = "#D3CB98";
	curObj.prixCell[oldRange].style.backgroundColor = "transparent";
}

function highlightRange()
{
	oldRange = curRange;
	updateRange();
	if(oldRange != curRange)
	{
		if(rangeCell.length <= 0)
		{
			rangeCell = Array(MM_findObj('range1'), MM_findObj('range2'), MM_findObj('range3'));
		}
		rangeCell[oldRange].style.backgroundColor = "transparent";
		rangeCell[curRange].style.backgroundColor = "#D3CB98";
		for(curVin in vins)
		{
//			update(vins[curVin]);
			highlightPrix(vins[curVin]);
		}
	}
}

function bouteille(prix1, prix2, prix3, id)
{
//	alert('creating ' + id);
	this.prix = Array(prix1, prix2, prix3);
	this.id = id;
	this.qty = MM_findObj('qty_'+id);
	this.tot = MM_findObj('tot_'+id);
	//--------------------------------------
	this.bout = MM_findObj('nbBout_'+id);
	//--------------------------------------
	this.prixCell = Array(MM_findObj('prix1_'+id), MM_findObj('prix2_'+id), MM_findObj('prix3_'+id));
	this.sousTot = 0;
	this.sousTotBt = 0;
}

function isNotValid(curObj)
{
		curObj.tot.style.color = "red";
		curObj.tot.innerHTML = "incorrect";
		curObj.qty.style.borderColor = "red";
		//---------------------------------------
		curObj.bout.innerHTML = "erreur";
		//---------------------------------------
		invalid = true;
}

function isValid(curObj)
{
		curObj.tot.style.color = "";
		curObj.tot.style.textAlign = "center";
		curObj.tot.innerHTML = "-";
		curObj.qty.style.borderColor = "";
		//-----------------------------------------
		curObj.bout.innerHTML = "-";
		//-----------------------------------------
}

function updateTot()
{
	tmpTot = 0;
	for(curVin in vins)
	{
//	alert(vins[curVin].id + " : " + parseInt(vins[curVin].sousTot) + " : " + tmpTot);
		tmpTot += parseFloat(vins[curVin].sousTot);
	}

	totCell[sum].innerHTML = tmpTot.toFixed(2).replace('.',',') + "&nbsp;€";

}

function update()
{
	submitButton = MM_findObj('submitButton');
	invalid = false;
	for(curVin in vins)
	{
		curObj = vins[curVin];
//alert(curObj.qty);
		if(curObj.qty.value == "")
			curObj.qty.value = 0
		if(isNumeric(curObj.qty.value))
		{
			isValid(curObj);
			//highlightRange();
			updateRange();
			curObj.sousTot = curObj.qty.value * curObj.prix[curRange]
				//----------------------------------------------
			curObj.sousTotBt = nb_bout_par_carton*curObj.qty.value
				//----------------------------------------------
	//		alert(curObj.sousTot);
			if(curObj.qty.value > 0)
			{
				curObj.tot.style.textAlign = "right";
//				curObj.tot.innerHTML = (curObj.sousTot).toFixed(2).replace('.',',');
//				curObj.tot.innerHTML = (curObj.sousTot).replace('.',',');
				curObj.tot.innerHTML = curObj.sousTot.toFixed(2);
				curObj.tot.innerHTML = curObj.tot.innerHTML.replace('.',',');
				//------------------------------------------------------------
				curObj.bout.innerHTML = curObj.sousTotBt.toFixed(0).replace('.','');
				//------------------------------------------------------------
			}
			else
			{
				curObj.tot.innerHTML = "-";
				//--------------------------------------------------
				curObj.bout.innerHTML = "-";
				//--------------------------------------------------
			}
			updateTot();
		}
		else
		{
			isNotValid(curObj);
		}
	}
	if(invalid || totCell.length <= 0 || parseInt(totCell[quantity].innerHTML) <= 0)
	{
		submitButton.disabled = true;
	}
	else
	{
		submitButton.disabled = false;
	}
}
//<!-- // INIT BON CMD -->
