/**
 * Retorna el valor en formato moneda
 * 
 */
function CurrencyFormatted(amount) {
	var i = parseFloat(amount);
	if (isNaN(i)) {
		i = 0.00;
	}
	var minus = '';
	if (i < 0) {
		minus = '-';
	}
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if (s.indexOf('.') < 0) {
		s += '.00';
	}
	if (s.indexOf('.') == (s.length - 2)) {
		s += '0';
	}
	s = minus + s;
	return s;
}
/**
 * Número de la última fila con un item
 * en la tabla de cotizar menú
 */
var index = 1;
/**
 * El nombre de la clase para agregar la
 * siguiente fila. Los nombres son "oddrow"
 * y "evenrow". El objetivo de estas clases
 * es que las filas de la tabla de cotización
 * tengan colores diferentes de manera alternada
 */
var nombreClase = "oddrow";
/**
 * Si la categoria de menú está abierta
 * la cierra de lo contrario la abre
 * 
 * @author	Eduardo Sorribas
 * @param	desde Valores desde donde está la categoria en los arreglos des[] y pr[]
 * @param	hasta Valores hasta donde está la categoria en los arreglos des[] y pr[]
 * @param	id_ul Id del ul donde se pondrán los items de la categoría
 */
function changeCategoria(desde, hasta, id_ul) {
	var newHtml = "";
	var i;
	newHtml=newHtml+"<ul class=\"items\">";
	for (i = desde; i <= hasta; i++) {
		newHtml = newHtml
				+ "<li><a style=\"cursor:pointer\" onClick=\"agregarItem(" + i
				+ ")\"><strong> RD$ " + CurrencyFormatted(pr[i]) + "</strong> <span>" + item[i] + "</span> ";
		newHtml = newHtml + "<div class=\"clear\"></div><p> " + des[i] + "</p></a></li>";
	}
	newHtml=newHtml+"</ul>";
	if (document.getElementById(id_ul).innerHTML != newHtml
			&& document.getElementById(id_ul).innerHTML != "") {
		document.getElementById(id_ul).innerHTML = "";
		document.getElementById(id_ul).style.display="none";
	} else {
		document.getElementById(id_ul).innerHTML = newHtml;
		document.getElementById(id_ul).style.display="block";
	}
}
/**
 * Agregar un item a la cotización
 * 
 * @author Eduardo Sorribas
 * @param n Numero del item en los arreglos.
 */
function agregarItem(n) {
	if (!document.getElementById("ct" + n)) {
		changeClase()
		var fila = document.getElementById("cotizacion").insertRow(index);
		index++;
		fila.setAttribute("class", nombreClase);
		fila.setAttribute("className", nombreClase); //Para que funcione en IE
		var cantidad = fila.insertCell(0);
		cantidad.id = "ct" + n;
		cantidad.innerHTML = "1"; 
		var nombre = fila.insertCell(1);
		nombre.innerHTML = item[n];
		var precio = fila.insertCell(2);
		precio.innerHTML = CurrencyFormatted(pr[n]);
		precio.id = "pr" + n;
		var subtotal = fila.insertCell(3);
		subtotal.id = "st" + n;
		var borrar = fila.insertCell(4);
		borrar.innerHTML = "<a class=\"reject\" onClick=\"borrar(" + n
				+ ")\">X</a>"
	} else {
		document.getElementById("ct" + n).innerHTML = parseInt(document
				.getElementById("ct" + n).innerHTML) + 1;
	}
	ponerTotal();
}
/**
 * Cambiar las clases alternadamente
 * en las filas de la tabla.
 * 
 * @author Eduardo Sorribas
 */
function changeClase () {
	if(nombreClase=="evenrow") {
		nombreClase="oddrow";
	}
	else {
		nombreClase="evenrow";
	}
}
/**
 * Borrar un item de la tabla de cotización. Si el número del
 * Item es mayor que 1 le resta 1 a este número, si es uno,
 * elimina la fila de este item de la tabla de cotización.
 * 
 * @author Eduardo Sorribas
 * @param n Número del Item en los arreglos
 */
function borrar(n) {
	var cantidad = parseInt(document.getElementById("ct" + n).innerHTML);
	if (cantidad > 1) {
		document.getElementById("ct" + n).innerHTML = parseInt(document
				.getElementById("ct" + n).innerHTML) - 1;
	} else {
		document.getElementById('cotizacion').deleteRow(
				document.getElementById("ct" + n).parentNode.rowIndex);
		index--;
		changeClase();
	}
	ponerTotal();
}
/**
 * Calcular el total y colocarlo al fondo de la
 * tabla de cotización.
 * 
 * @author Eduardo Sorribas
 */
function ponerTotal() {
	var subtotal, total = 0, cantidad;
	for ( var i in item) {
		if (document.getElementById("ct" + i)) {
			cantidad = parseFloat(document.getElementById("ct" + i).innerHTML);
			precio = parseFloat(document.getElementById("pr" + i).innerHTML);
			subtotal = precio * cantidad;
			document.getElementById("st" + i).innerHTML = CurrencyFormatted(subtotal);
			total = total + subtotal;
		}
	}
	document.getElementById("total").innerHTML = CurrencyFormatted(total);
	mover();
}
/**
 * Borrar todos los elementos de la tabla de
 * cotización
 * 
 * @author Eduardo Sorribas
 */
function reset() {
	var i = 0;
	var j = 0;
	for (i=0;i<=item.length;i++){
		if(document.getElementById("ct"+i)) {
			while(document.getElementById("ct"+i)) {
				borrar(i);
			}
		}
	}
}
/**
 * Mover la tabla de cotización a lo largo de
 * la página. Funciona en Firefox y Opera e IE7
 * (hasta ahora). Se sabe que no funciona en IE6
 * y en Google Chrome.
 * 
 * @author Eduardo Sorribas
 */
function mover() {
	var mov;
	//mov = document.documentElement.scrollTop-310;
	//mov = document.documentElement.scrollTop-1710;
	mov = window.pageYOffset-1460;
	if(mov == 0) {
		mov = document.documentElement.scrollTop-1460;
	}
	if(mov>0) {
		if (mov > menuTotalHeight) {
			document.getElementById("cotizacionDiv").style.paddingTop = menuTotalHeight+"px";
		}
		else {
			document.getElementById("cotizacionDiv").style.paddingTop = mov+"px";
		}
	}
	else {
		document.getElementById("cotizacionDiv").style.paddingTop = 0+"px";
	}
}
