var aCeldas=new Array();

function celda(n) {
	var v=aCeldas[n];
	if (!v) {
		v=LeerCelda(n);
		aCeldas[n]=v;
	}
	return v;
}
function LeerCelda(n) {
	var obj=document.getElementById(n);
	if (!obj) {
		alert("La celda " + n + " no existe");
		return;
	}

	if (obj.type=="checkbox") {
		return(obj.checked);
	}

	var txt=obj.value;
	if (txt=="") txt="0";
	if (hasClassName(obj, "entero")) {
		txt=txt+",0";
	}
	var v=CDbl2(txt);

//	AsignarValorCelda(obj, v);
	return(v);
}
function setCelda(n, v) {
	var obj=document.getElementById(n);
	if (!obj) {
		alert("La celda " + n + " no existe");
		return;
	}
	if (obj.type=="checkbox") {
		obj.checked=v;
		cambioCelda(n);
		return;
	}

	//actualizar matriz interna
	aCeldas[n]=v;

	AsignarValorCelda(obj, v);
	cambioCelda(n);
}

function cambioCeldaUsr(n) {
	//actualizar matriz interna
	var	v=LeerCelda(n);
	aCeldas[n]=v;

	cambioCelda(n)
}

function AsignarValorCelda(obj, v) {
	if (hasClassName(obj, "porcentaje")) {
		obj.value=FormatNum(v, 2) + " %";
	} else {
		if (hasClassName(obj, "entero")) {
			obj.value=FormatNum3(v, 0);
		} else {
			if (hasClassName(obj, "decLargo")) {
				obj.value=FormatNum3(v, 3);
			} else {
				obj.value=FormatNum(v, 2);
			}
		}
	}
}

function AnadirClase(n, v) {
	var obj=document.getElementById(n);
	if (!obj) {
		alert("La celda " + n + " no existe");
		return;
	}
	CambiarClase(obj, v);
}

//elimina los ceros decimales si no hacen falta.
function FormatNum3(precio, decim) {
	var txt=FormatNum(precio, decim);
	return LimpiarDecimales(txt);
}
//función recursiva (para cuando no quedan más decimales que sean 0 a la derecha)
function LimpiarDecimales(txt) {
	var pdecimal=txt.indexOf(",");
	// comprobamos si tiene decimales
	if (pdecimal != -1) {
		if (txt.substring(txt.length-1, txt.length)=="0") {
			txt=LimpiarDecimales(txt.substring(0, txt.length-1));
			//si solo se queda la coma al carajo
			if (txt.substring(txt.length-1, txt.length)==",") {
				txt=txt.substring(0, txt.length-1);
			}
		}
	}

	return txt;
}

