// JavaScript Document

// ----------------- Variables especificas de cada tienda --------------------------
// PedidoRecoal = [id#seccion#cantidad]
var strNombreCookie = 'PedidoRecoal';
var arrayNombresCampos = new Array(3);
arrayNombresCampos[0] = 'txtId';
arrayNombresCampos[1] = 'txtSeccion';
arrayNombresCampos[2] = 'txtCantidad';
// cadenaConfirmacion - Devuelve la cadena de confirmacion de anyadir al pedido
function cadenaConfirmacion(frm) {
	var strCadena = 'Se va a añadir al pedido ' + frm.elements[arrayNombresCampos[arrayNombresCampos.length-1]].value + ' unidades de este producto';
	return strCadena + '.';
}

// ----------------- FIN Variables especificas de cada tienda --------------------------

// esValidaCantidad - Valida el campo Cantidad
function esValidaCantidad(frm,i,mostrarAviso) {
	if (!/^[0-9]+$/.test(frm.elements[arrayNombresCampos[arrayNombresCampos.length-1] + i].value) || frm.elements[arrayNombresCampos[arrayNombresCampos.length-1] + i].value.charAt(0) == '0') {
		if (mostrarAviso) alert('La cantidad' + (i!=''?' de la línea '+i:'') + ' es incorrecta.\nLos carácteres permitidos son\n0 1 2 3 4 5 6 7 8 9\ny no puede comenzar por 0.');
		frm.elements[arrayNombresCampos[arrayNombresCampos.length-1] + i].focus();
		return false;
	}
	return true;
}

// obtenerListaArticulosPedido - Obtiene el pedido completo, de corchete a corchete [..]
function obtenerListaArticulosPedido() {
	intIndice = document.cookie.indexOf(strNombreCookie);
	intInicio = 0; intFinal = 0;
	if (intIndice != -1) {
		intInicio = (document.cookie.indexOf('=', intIndice) + 1);
		intFinal = document.cookie.indexOf(';', intIndice);
		if (intFinal == -1) intFinal = document.cookie.length;
	}
	return document.cookie.substring(intInicio,intFinal);
}

// reemplazar - Reemplaza una cadena por otra
function reemplazar(texto,textoBuscado,nuevaCadena) {
	while (texto.indexOf(textoBuscado)>-1) {
		pos = texto.indexOf(textoBuscado);
		texto = '' + (texto.substring(0, pos) + nuevaCadena + texto.substring((pos + textoBuscado.length), texto.length));
	}
	return texto;
}

// sustituirEspacios - Sustituye los espacios de una cadena por &nbsp
function sustituirEspacios(cadena) {
	return reemplazar(cadena,' ','&nbsp');
}

// format1 - Formatea el número con el punto de miles
function format1(num) {
	var i = num.length - 3;
	return (i <= 0) ? num : format1(num.substr(0, i)) + '.' + num.substr(i, 3);
}

// cambiarNumAFormatoIngles - Cambia el numero a formato ingles
function cambiarNumAFormatoIngles(num) {
	return reemplazar(reemplazar(num,'.',''),',','.');
}

// format - Formatea el número con coma decimal y dos decimales
function format(numero) {
	if (numero == '' || numero == '0') {
		return '0,00';
	} else {
		var temp = String(Math.round(numero * 100));
		var len = temp.length - 2;
		return format1(temp.substring(0, len)) + ',' + temp.substring(len);
	}
}

// anyadirArticulo - Añade un artículo al pedido
function anyadirArticulo(frm) {
	with (frm) {
		if (!esValidaCantidad(frm,'',true)) return false;
		if (confirm(cadenaConfirmacion(frm))) {
			// Buscar si el artículo ya está en el pedido
			strCadenaAux = '[';
			for (i=0; i<arrayNombresCampos.length-1; i++) {	// Todos los campos menos el último (cantidad)
				strCadenaAux = strCadenaAux + sustituirEspacios(elements[arrayNombresCampos[i]].value) + '#';
			}
			intIndice = document.cookie.indexOf(strCadenaAux);
			if (intIndice != -1) { 	// El artículo ya está en el pedido
				alert('Este artículo ya está incluido en el pedido.\nSi desea modificar la cantidad, bórrelo desde la hoja de pedidos\ny vuélvalo a añadir al pedido con la cantidad correcta.');
				return false;
			} else {				// El artículo no está en el pedido
				document.cookie = strNombreCookie + '=' + obtenerListaArticulosPedido() + strCadenaAux + elements[arrayNombresCampos[arrayNombresCampos.length-1]].value + ']; path=/;';
				location.href = 'pedido_intermedio.asp';
			}
		}
	}
	return true;
}

// borrarArticulo - Borra un artículo del pedido
function borrarArticulo(intArticuloBorrar) {
	strListaArticulos = obtenerListaArticulosPedido();
	strNuevoPedido = strNombreCookie + '=.';
	intArticulo = 0;
	for (i=0; i<=strListaArticulos.length; i++) {
		switch (strListaArticulos.substring(i,i+1)) {
			case '[': intInicio = i + 1;
					  break;
			case ']': intFinal = i;
					  intArticulo = intArticulo + 1;
					  if (intArticulo != intArticuloBorrar) strNuevoPedido = strNuevoPedido + '[' + strListaArticulos.substring(intInicio,intFinal) + ']';
					  break;
		}
	}
	document.cookie = strNuevoPedido + '; path=/;';
	document.location.reload();
	return true;
}

// reiniciarPedido - Reinicia la cookie
function reiniciarPedido() {
	document.cookie = strNombreCookie + '=.; path=/;';
	return true;
}
