//----------------------------------------------------------------------------
/* <LISTA DE CAMPOS A FORMATEAR> */
	var LISTA_DE_CAMPOS_A_FORMATEAR_TAMANO = 4;
	var LISTA_DE_CAMPOS_A_FORMATEAR = new Array(LISTA_DE_CAMPOS_A_FORMATEAR_TAMANO);

	for (var i = 0; i < LISTA_DE_CAMPOS_A_FORMATEAR_TAMANO; i++) {
		LISTA_DE_CAMPOS_A_FORMATEAR[i] = new Array(2);
	}

	LISTA_DE_CAMPOS_A_FORMATEAR[0][0] = '_cantidad';
	LISTA_DE_CAMPOS_A_FORMATEAR[0][1] = 0;

	LISTA_DE_CAMPOS_A_FORMATEAR[1][0] = '_cuota';
	LISTA_DE_CAMPOS_A_FORMATEAR[1][1] = 2;

	LISTA_DE_CAMPOS_A_FORMATEAR[2][0] = '_pvp';
	LISTA_DE_CAMPOS_A_FORMATEAR[2][1] = 2;

	LISTA_DE_CAMPOS_A_FORMATEAR[3][0] = '_total';
	LISTA_DE_CAMPOS_A_FORMATEAR[3][1] = 2;
/* </LISTA DE CAMPOS A FORMATEAR> */

function formatearCampos () {

	for (var i = 0; i < document.forms.length; i++) {

		for (var j = 0; j < document.forms[i].length; j++) {

			var bContinua = true;

			for (var k = 0; k < LISTA_DE_CAMPOS_A_FORMATEAR_TAMANO && bContinua; k++) {

				if (document.forms[i][j].name.indexOf(LISTA_DE_CAMPOS_A_FORMATEAR[k][0]) > -1) {
					frmFormatInput(document.forms[i][j], LISTA_DE_CAMPOS_A_FORMATEAR[k][1]);
					bContinua = false;
				}

			}

		}

	}

}
//----------------------------------------------------------------------------
function desformateaCampos () {

	for (var i = 0; i < document.forms.length; i++) {

		for (var j = 0; j < document.forms[i].length; j++) {

			var bContinua = true;

			for (var k = 0; k < LISTA_DE_CAMPOS_A_FORMATEAR_TAMANO && bContinua; k++) {

				if (document.forms[i][j].name.indexOf(LISTA_DE_CAMPOS_A_FORMATEAR[k][0]) > -1) {
					frmUnformatInput(document.forms[i][j]);
					bContinua = false;
				}

			}

		}

	}

}
//----------------------------------------------------------------------------
/* <LISTA DE CAMPOS A LIMPIAR> */
	var LISTA_DE_CAMPOS_A_LIMPIAR_TAMANO = 1;
	var LISTA_DE_CAMPOS_A_LIMPIAR = new Array(LISTA_DE_CAMPOS_A_LIMPIAR_TAMANO);

	LISTA_DE_CAMPOS_A_LIMPIAR[0] = '_cuota';
/* </LISTA DE CAMPOS A LIMPIAR> */

function limpiarCampos (sListaCamposALimpiar) {

	for (var i = 0; i < document.forms.length; i++) {

		for (var j = 0; j < document.forms[i].length; j++) {

			var bContinua = true;

			for (var k = 0; k < LISTA_DE_CAMPOS_A_LIMPIAR_TAMANO && bContinua; k++) {

				if (document.forms[i][j].name.indexOf(LISTA_DE_CAMPOS_A_LIMPIAR[k]) > -1) {
					document.forms[i][j].value = '';
					bContinua = false;
				}

			}

		}

	}

}
//----------------------------------------------------------------------------
/*
Las funciones sólo realizan el cálculo del PVP, la cuota se calcula en el servidor y lo único que se
tiene que hacer en la parte cliente es formatearla.
*/

var CATEGORIA_HW = 'OfOp_HardwareProductos_';
var CATEGORIA_SW = 'OfOp_Software_';
var CATEGORIA_SP = 'OfOp_SoporteServicios_';

function calcularTotalPvpFilas (sCategoria) {

	for (var i = 0; i < document.forms.length; i++) {
		for (var j = 0; j < document.forms[i].length; j++) {

			var input = document.forms[i][j];

			if (input.name.indexOf(sCategoria + 'id_') == 0) {
				calcularTotalPvpFila(document.forms[i], sCategoria, input.value);
			}

		}
	}

}
//----------------------------------------------------------------------------
function calcularTotalPvpFila (form, sCategoria, id) {

	/*
	Recibe:
	 - El formulario al que pertenece la fila a calcular.
	 - La categoría (hw, sw o sp) a la que pertenece la fila.
	 - El identificador de la fila.
	*/

	eval('var iCantidad = new Number(frmUnformat(form.' + sCategoria + 'cantidad_' + id + '.value))');
	eval('var dPvp = new Number(frmUnformat(form.' + sCategoria + 'pvp_' + id + '.value))');

	var dSubTotal = iCantidad * dPvp;

	if (sCategoria == CATEGORIA_SP) {
		eval('form.' + sCategoria + 'pvp_' + id + '.value = frmFormat(dSubTotal, 2)');
	} else {
		eval('form.' + sCategoria + 'pvpTotal_' + id + '.value = frmFormat(dSubTotal, 2)');
	}

}
//----------------------------------------------------------------------------
function calcularTotalPvpCategoria (sCategoria, inputTotalCategoria) {

	var dTotalCategoria = 0;

	for (var i = 0; i < document.forms.length; i++) {
		for (var j = 0; j < document.forms[i].length; j++) {

			var input = document.forms[i][j];

			if (sCategoria == CATEGORIA_SP) {

				if (input.name.indexOf(sCategoria + 'pvp_') == 0) {
					dTotalCategoria += new Number(frmUnformat(input.value));
				}

			} else {

				if (input.name.indexOf(sCategoria + 'pvpTotal_') == 0) {
					dTotalCategoria += new Number(frmUnformat(input.value));
				}

			}

		}
	}

	//TODO: REDONDEAR EL RESULTADO A DOS DECIMALES
	inputTotalCategoria.value = frmFormat(dTotalCategoria, 2);

}
//----------------------------------------------------------------------------
function calcularTotalPvp (form) {

	if (form.of_total != null) {
		form.of_total.value = frmFormat(new Number(frmUnformat(form.hw_total.value)) + new Number(frmUnformat(form.sw_total.value)) + new Number(frmUnformat(form.sp_total.value)), 2);
	}

}
//----------------------------------------------------------------------------