// JavaScript Document

var tipo='';
var moneda='Bs';
var g_descuento = 0;

function actualizarProg(childObj){
	var cantidad;
	var tableObj;
	var rowObj;
	var precio;
	var costo;

	calculate(childObj);
	cantidad = parseInt(childObj.value);
	tableObj = document.getElementById('tbl_servicios');	
	
	for(var i=1; i<tableObj.rows.length; i++){
		rowObj = tableObj.rows[i];
		rowObj.cells[1].childNodes[0].value = cantidad;
		precio = parseFloat(rowObj.cells[4].getAttribute('value'));
		costo = r2(cantidad*precio);
		rowObj.cells[5].value = costo;
		rowObj.cells[5].innerHTML = costo;
		rowObj.cells[5].setAttribute('value',costo);
		activeRow(rowObj.cells[1].childNodes[0]);
	}
	
	activeRow(childObj);
	totalizar();
}


function activeRow(input){	
	input = $(input);	
	var row = input.getParent('tr');	
	
	if(input.value.toInt() > 0 && !row.hasClass('active_row')){
		row.addClass('active_row');
	}else if(input.value.toInt() <= 0 && row.hasClass('active_row')){
		row.removeClass('active_row');
	}	
}


function calculate(childObj) {	
	var tableObj;
	var rowObj;
	var cantidad;
	var precio;
	var costo;
	
 	rowObj = childObj.parentNode.parentNode;
	if(childObj.value==''){
		childObj.value = 0;
	}
	cantidad = parseInt(childObj.value,10); //Debo especificar que es base 10 sino toma 010 como 8 ya que el primer 0 lo asume como "base octal"	
	precio = parseFloat(rowObj.cells[4].getAttribute('value'));
	costo = r2(cantidad*precio);
	rowObj.cells[5].innerHTML = costo;
	rowObj.cells[5].setAttribute('value',costo);
	
	activeRow(childObj);
	totalizar();
}


function resetValues(){

	//Kit Basico
	tableObj = document.getElementById('tbl_kitBasico');
	if(tableObj!=null){
		for(i=1;i<tableObj.rows.length;i++){
			if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
				tableObj.rows[i].cells[1].childNodes[0].value = 0;
				tableObj.rows[i].cells[5].setAttribute('value', 0);	
				tableObj.rows[i].cells[5].innerHTML = r2(0);
			}
		}
	}
	
	//Servicios
	tableObj = document.getElementById('tbl_servicios');
	if(tableObj!=null){
		for(i=1;i<tableObj.rows.length;i++){
			if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
				tableObj.rows[i].cells[1].childNodes[0].value = 0;
				tableObj.rows[i].cells[5].setAttribute('value', 0);	
				tableObj.rows[i].cells[5].innerHTML = r2(0);
			}
		}
	}
	
	//Productos
	tableObj = document.getElementById('tbl_productos');
	if(tableObj!=null){
		for(i=1;i<tableObj.rows.length;i++){
			if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
				tableObj.rows[i].cells[1].childNodes[0].value = 0;
				tableObj.rows[i].cells[5].setAttribute('value', 0);	
				tableObj.rows[i].cells[5].innerHTML = r2(0);
			}
		}
	}
	
	//Adicionales
	tableObj = document.getElementById('tbl_adicionales');
	if(tableObj!=null){
		for(i=1;i<tableObj.rows.length;i++){
			if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
				tableObj.rows[i].cells[1].childNodes[0].value = 0;
				tableObj.rows[i].cells[5].setAttribute('value', 0);	
				tableObj.rows[i].cells[5].innerHTML = r2(0);
			}
		}
	}
		
	//CCTV
	tableObj = document.getElementById('tbl_cctv');
	if(tableObj!=null){
		for(i=1;i<tableObj.rows.length;i++){
			if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
				tableObj.rows[i].cells[1].childNodes[0].value = 0;
				tableObj.rows[i].cells[5].setAttribute('value', 0);	
				tableObj.rows[i].cells[5].innerHTML = r2(0);
			}
		}
	}
}


function reiniciarPO(){
	resetValues();
	resetActiveColor();
	resetExtra();
	totalizar();
}


function resetExtra(){
	$('ajuste').set('value',0);
	$('label_ajuste').set('value','');
	$('abono').set('value',0);
	$('p_alquiler').set('value',20);
	$('p_financiamiento').set('value',40);
	/*$('sistema').set('value','compra');
	$('sistema').fireEvent('change');*/
}

function totalizar(){	
	actualizarKitBasicoTotal();  	//TABLA RESUMEN KIT BASICO
	actualizarServiciosTotal(); 	//TABLA RESUMEN SERVICIOS
	actualizarBasicoServicio();
	actualizarProductosTotal();  	//TABLA RESUMEN PRODUCTOS	
	actualizarAdicionalesTotal(); 	//TABLA RESUMEN ADICIONALES
	actualizarCCTVTotal();  		//TABLA RESUMEN CCTV
	actualizarResumen();	
	actualizarAlquiler();
	actualizarFinanciamiento();
	actualizarMensualidad();
}


function actualizarKitBasicoTotal(){
	
	var tableObj;
	var tableObjTotal;
	var subtotal;	
	var p_iva;
	var n_iva;
	var desc;
	var i;
	var tiempo;
	
	tableObj = $('tbl_kitBasico');
	subtotal = 0;
	tiempo = 0;
	for(i=1;i<tableObj.rows.length;i++){
		if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
			subtotal += parseFloat(tableObj.rows[i].cells[5].getAttribute('value'));
			tiempo += tableObj.rows[i].cells[3].getAttribute('value') * tableObj.rows[i].cells[1].childNodes[0].value;
		}
	}
	
	tableObjTotal = $('tbl_kitBasico_total');
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(subtotal);
	p_iva = parseFloat(tableObjTotal.rows[1].cells[0].getAttribute('value'));
	n_iva = subtotal*(p_iva/100);
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(n_iva);
	subtotal = subtotal + n_iva;
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(subtotal);
	desc = parseFloat(tableObjTotal.rows[3].cells[0].getAttribute('value'));	
	subtotal = subtotal*((100-desc)/100);
	tableObjTotal.rows[4].cells[1].setAttribute('value',subtotal);
	tableObjTotal.rows[4].cells[1].innerHTML = moneda + " " + r2(subtotal);
	
	//tiempo
	tableObjTotal.rows[5].cells[1].setAttribute('value',tiempo);
	tiempo = minutesToString(tiempo);
	tableObjTotal.rows[5].cells[1].innerHTML = tiempo;
} 


function actualizarServiciosTotal(){
	
	var tableObj;
	var tableObjTotal;
	var subtotal;	
	var p_iva;
	var n_iva;
	var i;
	var tiempo;
	
	tableObj = $('tbl_servicios');
	subtotal = 0;
	tiempo = 0;
	for(i=1;i<tableObj.rows.length;i++){
		if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
			subtotal += parseFloat(tableObj.rows[i].cells[5].getAttribute('value'));
			tiempo += tableObj.rows[i].cells[3].getAttribute('value') * tableObj.rows[i].cells[1].childNodes[0].value;
		}
	}
	
	tableObjTotal = $('tbl_servicios_total');
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(subtotal);
	p_iva = parseFloat(tableObjTotal.rows[1].cells[0].getAttribute('value'));
	n_iva = subtotal*(p_iva/100);
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(n_iva);
	subtotal = subtotal + n_iva;
	tableObjTotal.rows[2].cells[1].setAttribute('value',subtotal);
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(subtotal);
	
	//tiempo
	tableObjTotal.rows[3].cells[1].setAttribute('value',tiempo);
	tiempo = minutesToString(tiempo);
	tableObjTotal.rows[3].cells[1].innerHTML = tiempo;
} 


function actualizarBasicoServicio(){
	
	var val_1;
	var val_2;
	var val;
	var tableObjTotal;
	
	val_1 = parseFloat($('total_kitBasico').getAttribute('value'));
	val_2 = parseFloat($('total_servicios').getAttribute('value'));
	val = val_1 + val_2;
	tableObjTotal = $('tbl_BasicoServicio');
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(val);
	
	var t1 = parseInt($('tiempo_kitBasico').getAttribute('value'));
	var t2 = parseInt($('tiempo_servicios').getAttribute('value'));
	var t3 = t1 + t2;
	tableObjTotal.rows[1].cells[1].setAttribute('value',t3);
	tableObjTotal.rows[1].cells[1].innerHTML = minutesToString(t3);
}


function actualizarProductosTotal(){

	var tableObj;
	var tableObjTotal;
	var subtotal;
	var subtotal2;
	var p_acc;
	var n_acc;
	var p_ins;
	var n_ins;	
	var p_iva;
	var n_iva;
	var i;
	var tiempo;
	
	tableObj = $('tbl_productos');
	subtotal = 0;
	tiempo = 0;
	for(i=1;i<tableObj.rows.length;i++){
		if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
			subtotal += parseFloat(tableObj.rows[i].cells[5].getAttribute('value'));
			tiempo += tableObj.rows[i].cells[3].getAttribute('value') * tableObj.rows[i].cells[1].childNodes[0].value;
		}
	}
	
	tableObjTotal = $('tbl_productos_total');
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(subtotal);

	p_acc = parseFloat(tableObjTotal.rows[1].cells[0].getAttribute('value'));
	n_acc = subtotal*(p_acc/100);
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(n_acc);
	
	p_ins = parseFloat(tableObjTotal.rows[2].cells[0].getAttribute('value'));
	n_ins = subtotal*(p_ins/100);
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(n_ins);

	subtotal2 = subtotal + n_acc + n_ins;
	tableObjTotal.rows[3].cells[1].setAttribute('value',subtotal2);
	tableObjTotal.rows[3].cells[1].innerHTML = moneda + " " + r2(subtotal2);

	p_iva = parseFloat(tableObjTotal.rows[4].cells[0].getAttribute('value'));
	n_iva = (subtotal + n_acc + n_ins)*(p_iva/100);
	tableObjTotal.rows[4].cells[1].innerHTML = moneda + " " + r2(n_iva);
	
	subtotal = subtotal + n_acc + n_ins + n_iva;
	tableObjTotal.rows[5].cells[1].setAttribute('value',subtotal);
	tableObjTotal.rows[5].cells[1].innerHTML = moneda + " " + r2(subtotal);

	//tiempo
	tableObjTotal.rows[6].cells[1].setAttribute('value',tiempo);
	tiempo = minutesToString(tiempo);
	tableObjTotal.rows[6].cells[1].innerHTML = tiempo;
} 


function actualizarAdicionalesTotal(){
	
	var tableObj;
	var tableObjTotal;
	var subtotal;	
	var p_iva;
	var n_iva;
	var i;
	var tiempo;
	
	tableObj = $('tbl_adicionales');
	subtotal = 0;
	tiempo = 0;
	for(i=1;i<tableObj.rows.length;i++){
		if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
			subtotal += parseFloat(tableObj.rows[i].cells[5].getAttribute('value'));
			tiempo += tableObj.rows[i].cells[3].getAttribute('value') * tableObj.rows[i].cells[1].childNodes[0].value;
		}
	}
	
	tableObjTotal = $('tbl_adicionales_total');
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(subtotal);
	p_iva = parseFloat(tableObjTotal.rows[1].cells[0].getAttribute('value'));
	n_iva = subtotal*(p_iva/100);
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(n_iva);
	subtotal = subtotal + n_iva;
	tableObjTotal.rows[2].cells[1].setAttribute('value',subtotal);
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(subtotal);
	
	//tiempo
	tableObjTotal.rows[3].cells[1].setAttribute('value',tiempo);
	tiempo = minutesToString(tiempo);
	tableObjTotal.rows[3].cells[1].innerHTML = tiempo;
} 


function actualizarCCTVTotal(){
	
	var tableObj;
	var tableObjTotal;
	var subtotal;	
	var p_acc;
	var n_acc;
	var p_ins;
	var n_ins;	
	var p_iva;
	var n_iva;
	var i;
	var tiempo
	
	tableObj = $('tbl_cctv');
	subtotal = 0;
	tiempo = 0;
	for(i=1;i<tableObj.rows.length;i++){
		if(tableObj.rows[i].cells[1].getAttribute('colspan') == null || tableObj.rows[i].cells[1].getAttribute('colspan') == 1){
			subtotal += parseFloat(tableObj.rows[i].cells[5].getAttribute('value'));
			tiempo += tableObj.rows[i].cells[3].getAttribute('value') * tableObj.rows[i].cells[1].childNodes[0].value;
		}
	}
	
	tableObjTotal = $('tbl_cctv_total');
	tableObjTotal.rows[0].cells[1].value = subtotal;
	tableObjTotal.rows[0].cells[1].innerHTML = moneda + " " + r2(subtotal);

	p_acc = parseFloat(tableObjTotal.rows[1].cells[0].getAttribute('value'));
	n_acc = subtotal*(p_acc/100);
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(n_acc);
	
	p_ins = parseFloat(tableObjTotal.rows[2].cells[0].getAttribute('value'));
	n_ins = subtotal*(p_ins/100);
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(n_ins);

	subtotal2 = subtotal + n_acc + n_ins;
	tableObjTotal.rows[3].cells[1].setAttribute('value',subtotal2);
	tableObjTotal.rows[3].cells[1].innerHTML = moneda + " " + r2(subtotal2);

	p_iva = parseFloat(tableObjTotal.rows[4].cells[0].getAttribute('value'));
	n_iva = (subtotal + n_acc + n_ins)*(p_iva/100);
	tableObjTotal.rows[4].cells[1].innerHTML = moneda + " " + r2(n_iva);
	
	subtotal = subtotal + n_acc + n_ins + n_iva;
	tableObjTotal.rows[5].cells[1].setAttribute('value',subtotal);
	tableObjTotal.rows[5].cells[1].innerHTML = moneda + " " + r2(subtotal);
	
	//tiempo
	tableObjTotal.rows[6].cells[1].setAttribute('value',tiempo);
	tiempo = minutesToString(tiempo);
	tableObjTotal.rows[6].cells[1].innerHTML = tiempo;
} 


function actualizarResumen()
{	
	var kit_basico = parseFloat($('total_kitBasico').getAttribute('value'));
	var servicios  = parseFloat($('total_servicios').getAttribute('value'));
	var productos  = parseFloat($('total_productos').getAttribute('value'));	
	var cctv       = parseFloat($('total_cctv').getAttribute('value'));	
	
	var ajuste = parseFloat($('ajuste').get('value'));
	var abono = parseFloat($('abono').get('value'));
	
	var subtotal1 = ajuste + kit_basico + servicios + productos + cctv;
	var subtotal2 = subtotal1 - abono;
	var subtotal3 = subtotal2*(1-(g_descuento/100));
	
	var tableObjTotal = $('tbl_resumen');
	tableObjTotal.rows[1].cells[1].innerHTML = moneda + " " + r2(kit_basico + servicios + productos);	//Instalación + Hardware Alarmas
	tableObjTotal.rows[2].cells[1].innerHTML = moneda + " " + r2(cctv);	//Instalación + Hardware CCTV
	tableObjTotal.rows[3].cells[1].innerHTML = moneda + " " + r2(subtotal1);	//Subtotal
	tableObjTotal.rows[4].cells[1].innerHTML = g_descuento + " %";				//Descuento	
	tableObjTotal.rows[6].cells[1].innerHTML = moneda + " " + r2(subtotal3);
	
	$('total_resumen').setAttribute('value',subtotal3);
	
	//tiempo
	var t1 = parseInt($('tiempo_kitBasico').getAttribute('value'));
	var t2 = parseInt($('tiempo_servicios').getAttribute('value'));
	var t3 = parseInt($('tiempo_productos').getAttribute('value'));
	var t4 = parseInt($('tiempo_adicionales').getAttribute('value'));
	var t5 = parseInt($('tiempo_cctv').getAttribute('value'));
	var tiempo = t1 + t2 + t3 + t4 + t5;
	tableObjTotal.rows[7].cells[1].innerHTML = minutesToString(tiempo);
}


function actualizarAlquiler()
{	
	var total         = parseFloat($('total_resumen').getAttribute('value'));
	var p_entrada     = parseFloat($('p_alquiler').get('value'));
	var v_entrada     = (total*p_entrada)/100;
	var v_mensualidad = (total-v_entrada)*(0.04); //La mensualidad es el 5% del total
	
	$('tbl_alquiler').rows[1].cells[0].innerHTML = moneda + " " + r2(v_entrada);
	$('tbl_alquiler').rows[1].cells[1].innerHTML = moneda + " " + r2(v_mensualidad);
}


function actualizarFinanciamiento()
{	
	var total      = parseFloat($('total_resumen').getAttribute('value'));
	var p_entrada  = parseFloat($('p_financiamiento').get('value'));
	var v_entrada  = (total*p_entrada)/100;
	var v_6_meses  = ((total-v_entrada)*(1.2))/6;
	var v_12_meses = ((total-v_entrada)*(1.4))/12;
	var v_18_meses = ((total-v_entrada)*(1.6))/18;
	
	$('tbl_financiamiento').rows[1].cells[0].innerHTML = moneda + " " + r2(v_entrada);
	$('tbl_financiamiento').rows[1].cells[1].innerHTML = moneda + " " + r2(v_6_meses);
	$('tbl_financiamiento').rows[1].cells[2].innerHTML = moneda + " " + r2(v_12_meses);
	$('tbl_financiamiento').rows[1].cells[3].innerHTML = moneda + " " + r2(v_18_meses);	
}


function actualizarMensualidad()
{	
	var cctv        = parseFloat($('total_cctv').getAttribute('value'));	
	var p_mant      = $$('input[name="contrato_mant"]:checked')[0].get('value'); //Porcentaje Mantenimiento CCTV
	var v_mant      = cctv*(p_mant/100);	
	var adicionales = parseFloat($('total_adicionales').getAttribute('value'));

	var total = adicionales + v_mant;

	$('tbl_mensualidades').rows[0].cells[1].innerHTML = moneda + " " + r2(adicionales);
	$('tbl_mensualidades').rows[1].cells[1].innerHTML = moneda + " " + r2(v_mant);	
	$('tbl_mensualidades').rows[2].cells[1].innerHTML = moneda + " " + r2(total);
}


function setMinValue(minValue, input)
{
	var minValue = parseInt(minValue);
	var value = $(input).get('value');
	
	if(value == '' || value < minValue){ 
		$(input).set('value',minValue);
		$(input).fireEvent('keyup');
	}	
}


function r2(n)
{	
	var ans;
	var len;
	
	ans = n * 1000
	ans = Math.round(ans /10) + ""
	while (ans.length < 3) {ans = "0" + ans}
	len = ans.length
	ans = ans.substring(0,len-2) + "." + ans.substring(len-2,len)
	return ans
} 


function minutesToString(minutes){
	if(minutes<60){
		return minutes + "min";
	}
	if(minutes%60==0){
		return minutes/60 + "h";
	}
	if(minutes>60){
		var hours = Math.floor(minutes/60);
		minutes = Math.round(((minutes/60) - hours)*60);
		return hours + "h " + minutes + "min";
	}	
}


function concatenar(arreglo){
	
	var cadena;
	
	cadena = '';
	for(i=0;i<arreglo.length;i++){		
		if(i == (arreglo.length-1)){
			cadena += arreglo[i];
		}else{
			cadena += arreglo[i] + '¬';
		}	
	}
	return cadena;
}


function actualizarMant(obj){
	totalizar();
}


function fillHiddenForm(auxTipo){

	var cantidad;
	var descripcion;
	var tiempo;
	var p_unitario;
	var p_total;
	var tabla;
	var obj;
	var flag;
	var i;
	var totKitBasico_A;
	var totKitBasico_B;
	var totServicios_A;
	var totServicios_B;
	var totBasicoServicio_A;
	var totBasicoServicio_B;
	var totProductos_A;
	var totProductos_B;
	var totAdicionales_A;
	var totAdicionales_B;
	var totCCTV_A;
	var totCCTV_B;
	var totResumen_A;
	var totResumen_B;
	var totResumen_A;
	var totResumen_B;
	var pais;

	tipo = auxTipo;	//Global Variable

	cantidad = new Array();
	descripcion = new Array();
	tiempo = new Array();
	p_unitario = new Array();
	p_total = new Array();
	tabla = new Array();


	// **** INICIO KIT BASICO ****
	
	obj = $('tbl_kitBasico');

	flag = false;
	for(i=0;i<obj.rows.length;i++){
		if(obj.rows[i].cells.length == 6){
			if(parseInt(obj.rows[i].cells[1].childNodes[0].value)>0){
				cantidad.push(obj.rows[i].cells[1].childNodes[0].value);
				descripcion.push(obj.rows[i].cells[2].innerHTML);
				tiempo.push(obj.rows[i].cells[3].innerHTML);
				p_unitario.push(obj.rows[i].cells[4].innerHTML);
				p_total.push(obj.rows[i].cells[5].innerHTML);
				tabla.push('kitBasico');
				flag = true;		
			}
		}
	}

	if(flag){
		totKitBasico_A = new Array();
		totKitBasico_B = new Array();
		obj = $('tbl_kitBasico_total');
		for(i=0;i<obj.rows.length;i++){
			totKitBasico_A.push(obj.rows[i].cells[0].innerHTML);
			totKitBasico_B.push(obj.rows[i].cells[1].innerHTML);
		}
		document.formulario.totKitBasico_A.value = concatenar(totKitBasico_A);
		document.formulario.totKitBasico_B.value = concatenar(totKitBasico_B);
	}	
	
	// **** FIN KIT BASICO ****



	// **** INICIO SERVICIOS ****

	obj = $('tbl_servicios');

	flag = false;
	for(i=0;i<obj.rows.length;i++){
		if(obj.rows[i].cells.length == 6){
			if(parseInt(obj.rows[i].cells[1].childNodes[0].value)>0){
				cantidad.push(obj.rows[i].cells[1].childNodes[0].value);
				descripcion.push(obj.rows[i].cells[2].innerHTML);
				tiempo.push(obj.rows[i].cells[3].innerHTML);
				p_unitario.push(obj.rows[i].cells[4].innerHTML);
				p_total.push(obj.rows[i].cells[5].innerHTML);
				tabla.push('servicios');
				flag = true;		
			}
		}
	}

	if(flag){

		totServicios_A = new Array();
		totServicios_B = new Array();

		obj = $('tbl_servicios_total');
		for(i=0;i<obj.rows.length;i++){
			totServicios_A.push(obj.rows[i].cells[0].innerHTML);
			totServicios_B.push(obj.rows[i].cells[1].innerHTML);
		}

		document.formulario.totServicios_A.value = concatenar(totServicios_A);
		document.formulario.totServicios_B.value = concatenar(totServicios_B);


		obj = $('tbl_BasicoServicio');
		totBasicoServicio_A = obj.rows[0].cells[0].innerHTML;
		totBasicoServicio_B = obj.rows[0].cells[1].innerHTML;

		document.formulario.totBasicoServicio_A.value = totBasicoServicio_A;
		document.formulario.totBasicoServicio_B.value = totBasicoServicio_B;
		
	}

	// **** FIN SERVICIOS ****
	


	// **** INICIO PRODUCTOS ****

	obj = $('tbl_productos');

	flag = false;
	for(i=0;i<obj.rows.length;i++){
		if(obj.rows[i].cells.length == 6){
			if(parseInt(obj.rows[i].cells[1].childNodes[0].value)>0){
				cantidad.push(obj.rows[i].cells[1].childNodes[0].value);
				descripcion.push(obj.rows[i].cells[2].innerHTML);
				tiempo.push(obj.rows[i].cells[3].innerHTML);
				p_unitario.push(obj.rows[i].cells[4].innerHTML);
				p_total.push(obj.rows[i].cells[5].innerHTML);
				tabla.push('productos');
				flag = true;		
			}
		}
	}
	
	
	if(flag){
		totProductos_A = new Array();
		totProductos_B = new Array();
		obj = $('tbl_productos_total');
		for(i=0;i<obj.rows.length;i++){
			totProductos_A.push(obj.rows[i].cells[0].innerHTML);
			totProductos_B.push(obj.rows[i].cells[1].innerHTML);
		}		
		document.formulario.totProductos_A.value = concatenar(totProductos_A);
		document.formulario.totProductos_B.value = concatenar(totProductos_B);
	}

	// **** FIN PRODUCTOS ****
	
	

	// **** INICIO ALARMAS ADICIONALES ****

	obj = $('tbl_adicionales');

	flag = true;
	for(i=0;i<obj.rows.length;i++){
		if(obj.rows[i].cells.length == 6){
			if(parseInt(obj.rows[i].cells[1].childNodes[0].value)>0){
				cantidad.push(obj.rows[i].cells[1].childNodes[0].value);
				descripcion.push(obj.rows[i].cells[2].innerHTML);
				tiempo.push(obj.rows[i].cells[3].innerHTML);
				p_unitario.push(obj.rows[i].cells[4].innerHTML);
				p_total.push(obj.rows[i].cells[5].innerHTML);
				tabla.push('adicionales');
				flag = true;		
			}
		}
	}
	
	if(flag){
		totAdicionales_A = new Array();
		totAdicionales_B = new Array();
		obj = $('tbl_adicionales_total');
		for(i=0;i<obj.rows.length;i++){
			totAdicionales_A.push(obj.rows[i].cells[0].innerHTML);
			totAdicionales_B.push(obj.rows[i].cells[1].innerHTML);
		}
		document.formulario.totAdicionales_A.value = concatenar(totAdicionales_A);
		document.formulario.totAdicionales_B.value = concatenar(totAdicionales_B);
	}
	
	// **** FIN ALARMAS ADICIONALES ****
	


	// **** INICIO CCTV ****

	obj = $('tbl_cctv');

	flag = false;
	for(i=0;i<obj.rows.length;i++){
		if(obj.rows[i].cells.length == 6){
			if(parseInt(obj.rows[i].cells[1].childNodes[0].value)>0){
				cantidad.push(obj.rows[i].cells[1].childNodes[0].value);
				descripcion.push(obj.rows[i].cells[2].innerHTML);
				tiempo.push(obj.rows[i].cells[3].innerHTML);
				p_unitario.push(obj.rows[i].cells[4].innerHTML);
				p_total.push(obj.rows[i].cells[5].innerHTML);
				tabla.push('cctv');
				flag = true;		
			}
		}
	}
	
	
	if(flag){
		totCCTV_A = new Array();
		totCCTV_B = new Array();
		obj = $('tbl_cctv_total');
		for(i=0;i<obj.rows.length;i++){
			totCCTV_A.push(obj.rows[i].cells[0].innerHTML);
			totCCTV_B.push(obj.rows[i].cells[1].innerHTML);
		}		
		document.formulario.totCCTV_A.value = concatenar(totCCTV_A);
		document.formulario.totCCTV_B.value = concatenar(totCCTV_B);
	}

	// **** FIN CCTV ****


	
	// **** INICIO RESUMEN **** 
	
	totResumen_A = new Array();
	totResumen_B = new Array();
	obj = $('tbl_resumen');
	
	for(i=0;i<obj.rows.length;i++)
	{
		
		if($(obj.rows[i].cells[0]).getFirst('input')){
			totResumen_A.push($(obj.rows[i].cells[0]).getFirst('input').get('value'));
		}else{
			totResumen_A.push(obj.rows[i].cells[0].innerHTML);	
		}
		
		//totResumen_A.push(obj.rows[i].cells[0].innerHTML);
		
		if($(obj.rows[i].cells[1]).getFirst('input')){
			totResumen_B.push(moneda + " " + r2($(obj.rows[i].cells[1]).getFirst('input').get('value')));
		}else{
			totResumen_B.push(obj.rows[i].cells[1].innerHTML);	
		}		
	}	
	document.formulario.totResumen_A.value = concatenar(totResumen_A);
	document.formulario.totResumen_B.value = concatenar(totResumen_B);
	
	console.log(totResumen_A);
	console.log(totResumen_B);
	
	// **** FIN RESUMEN ****
	
	
	
	// *** INICIO ALQUILER ***
	
	var tbl = $('tbl_alquiler');
	var info = new Array();	

	for(i=0; i<tbl.rows[1].cells.length; i++){
		info.push(tbl.rows[1].cells[i].innerHTML);
	}
	document.formulario.alquiler.value   = concatenar(info);
	document.formulario.p_alquiler.value = $('p_alquiler').get('value');
	// *** FIN ALQUILER ***
	
	

	// *** INICIO FINANCIAMIENTO ***	
	
	var tbl = $('tbl_financiamiento');
	var info = new Array();
	
	for(i=0; i<tbl.rows[1].cells.length; i++){
		info.push(tbl.rows[1].cells[i].innerHTML);
	}
	document.formulario.financiamiento.value   = concatenar(info);
	document.formulario.p_financiamiento.value = $('p_financiamiento').get('value');
	
	// *** FIN FINANCIAMIENTO ***
	
	
	
	document.formulario.cantidad.value = concatenar(cantidad);
	document.formulario.descripcion.value = concatenar(descripcion);
	document.formulario.tiempo.value = concatenar(tiempo);
	document.formulario.p_unitario.value = concatenar(p_unitario);
	document.formulario.p_total.value = concatenar(p_total);
	document.formulario.tabla.value = concatenar(tabla);	
	document.formulario.moneda.value = moneda;
	
	
	
	// *** INICIO MENSUALIDADES ***
	
	totMensualidad_A = new Array();
	totMensualidad_B = new Array();
	
	obj = $('tbl_mensualidades');
	
	for(i=0;i<obj.rows.length;i++)
	{		
		totMensualidad_A.push(obj.rows[i].cells[0].innerHTML);		
		totMensualidad_B.push(obj.rows[i].cells[1].innerHTML);				
	}	
	document.formulario.totMensualidad_A.value = concatenar(totMensualidad_A);
	document.formulario.totMensualidad_B.value = concatenar(totMensualidad_B);		
	
	// *** FIN MENSUALIDADES ***
	
	
	openForm();
}


function GetXmlHttpObject(){
    var xmlHttp=null;
    try{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
    }catch (e){
		// Internet Explorer
		try{
	    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	    }
    }
    return xmlHttp;
}

function printVersion(){
	document.formulario.action="presupuesto_print.php";
	document.formulario.target="_blank";
	document.formulario.submit();			
}


function sendMail(notify){
	
	var cadena;
	var i;
	var xmlhttp;
	
	cadena='';
	for(i=0;i<document.formulario.length;i++){
		cadena += document.formulario[i].name + '=' + document.formulario[i].value + '&';		
		if(i==(document.formulario.length-1)){
			cadena += document.formulario[i].name + '=' + document.formulario[i].value;
		}
	}
		
	xmlhttp = GetXmlHttpObject();
	xmlhttp.open("POST","presupuesto_mail.php",true);
	
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && notify == true) {
			createNewSexyAlertInstance();
			Sexy.alert('<span style="font-size:15px;">El Presupuesto Online se ha enviado a la dirección de correo electrónico indicada. Este correo podría ser clasificado como "Spam" en su bandeja de entrada</span>');
		}
	}
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlhttp.send(cadena);	
}



/*-------- POP UP FORM (MOOTOOLS) ------------*/

function openForm(){
	$('popup_wrapper').reveal();
}

function closeForm(){
	clearFormStyle();
	$('popup_wrapper').dissolve();
}


function checkForm(){

	clearFormStyle();

	var objEmpresa   = $('empresa');
	var objNombre    = $('nombre');
	var objApellido  = $('apellido');
	var objDireccion = $('direccion');
	var objTelefono  = $('telefono');
	var objCelular   = $('celular');
	var objEmail     = $('email');
	var objError     = $('error_note');
	var message 	 = '';

	//Verifico que el campo "empresa" no este vacío	
	if(document.info_cliente.empresa.value==''){	
		message = 'Por favor introduzca el campo "Empresa"';
		changeInputFieldOnError(objEmpresa, objError, message);
		return;
	}
	
	//Verifico que el campo "nombre" no este vacío
	if(document.info_cliente.nombre.value==''){	
		message = 'Por favor introduzca el campo "Nombre"';
		changeInputFieldOnError(objNombre, objError, message);
		return;
	}
	
	//Verifico que el campo "apellido" no este vacío
	if(document.info_cliente.apellido.value==''){
		message = 'Por favor introduzca el campo "Apellido"';
		changeInputFieldOnError(objApellido, objError, message);
		return;
	}

	//Verifico que el campo "direccion" no este vacío
	if(document.info_cliente.direccion.value==''){
		message = 'Por favor introduzca el campo "Dirección"';
		changeInputFieldOnError(objDireccion, objError, message);
		return;
	}

	//Verifico que el campo "telefono" no este vacío
	if(document.info_cliente.telefono.value==''){
		message = 'Por favor introduzca el campo "Teléfono"';
		changeInputFieldOnError(objTelefono, objError, message);
		return;
	}

	//Verifico que el campo "celular" no este vacío
	if(document.info_cliente.celular.value==''){
		message = 'Por favor introduzca el campo "Celular"';
		changeInputFieldOnError(objCelular, objError, message);
		return;
	}

	//Verifico que el campo "email" tenga el formato correcto
	var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    if(!pattern.test(document.info_cliente.email.value)){         
		message = 'Por favor introduzca un "Email" válido';
		changeInputFieldOnError(objEmail, objError, message);		
		return;
    }

	//Almaceno los campos restantes en el formulario principal
	document.formulario.empresa.value = document.info_cliente.empresa.value;
	document.formulario.nombre.value = document.info_cliente.nombre.value;
	document.formulario.apellido.value = document.info_cliente.apellido.value;
	document.formulario.direccion.value = document.info_cliente.direccion.value;
	document.formulario.telefono.value = document.info_cliente.telefono.value;
	document.formulario.celular.value = document.info_cliente.celular.value;
	document.formulario.email.value = document.info_cliente.email.value;
	document.formulario.vendedor.value = document.info_cliente.vendedor.value;
	document.formulario.referencia.value = document.info_cliente.referencia.value;
	document.formulario.detalle.value = document.info_cliente.detalle.value;
	
	closeForm();
	
	if(tipo == 'print'){	
		sendMail(false);	
		printVersion();	
	}else{
		sendMail(true);
	}
}

function changeInputFieldOnError(objInput, objError, message){
	objInput.tween('background-color','#FFE0EA');
	objError.setStyle('opacity',0);
	objError.innerHTML = message;
	objError.tween('opacity',1);
}

function clearFormStyle(){
	$('empresa').setStyle('background-color','#FFFFFF');
	$('nombre').setStyle('background-color','#FFFFFF');
	$('apellido').setStyle('background-color','#FFFFFF');
	$('direccion').setStyle('background-color','#FFFFFF');
	$('telefono').setStyle('background-color','#FFFFFF');
	$('celular').setStyle('background-color','#FFFFFF');
	$('email').setStyle('background-color','#FFFFFF');
	$('error_note').setStyle('opacity',0);
	$('error_note').innerHTML = '';
}

function checkDiscountCode(code){
	var strCode = code.toString();
	var leftDigit = strCode.charAt(0);
	var rightDigit = strCode.charAt(strCode.length-1);
	var realCode = parseInt(strCode.substr(1,strCode.length-2));
	var discount = parseInt(leftDigit + rightDigit);
	
	var myDate = new Date();
	var compCode = Math.round((myDate.getHours()-2) + (myDate.getMinutes()/100) + myDate.getDate() + (myDate.getMonth()+1));
	var maxCode = Math.round(myDate.getHours() + (myDate.getMinutes()/100) + myDate.getDate() + (myDate.getMonth()+1));
	var pattern = /[^0-9]/;
	
	createNewSexyAlertInstance();
	if(realCode < compCode || discount >= 30 || realCode > maxCode || pattern.test(strCode)){
		Sexy.alert('<span style="font-size:15px;">El código introducido es inválido, por favor póngase en contacto con nuestro personal de ventas para solicitar un nuevo código de descuento</span>');	
	}else{
		Sexy.alert('<span style="font-size:15px;">¡Código de descuento válido! Se aplicará un descuento del ' + discount + ' % sobre el monto presupuestado</span>');
		g_descuento = discount;
		actualizarResumen()		
	}
}


function createNewSexyAlertInstance(){
	if($('BoxOverlay')){	//BoxOverlay es la capa oscura que usa de fondo el sexyalertbox y se debe eliminar para poder hacer el resize de la pantalla
		$('BoxOverlay').dispose();
		$('SexyAlertBox-Box').dispose();		
	}
	Sexy = new SexyAlertBox();
}


function resetActiveColor(){
	$$('tr.active_row').removeClass('active_row');
}


function changePaySystem(pay_system)
{	
	switch(pay_system)
	{
		case 'compra':		
			$('aux_div').set('html','');
			break;
		
		case 'alquiler':
			crearTablaAlquiler();
			break;
			
		case 'financiamiento':
			crearTablaFinanciamiento();			
			break;		
	}
	totalizar();
}


/*function crearTablaAlquiler()
{	
	var HTML = '';
	
	HTML += '<table id="tbl_alquiler" class="small_table">';
	HTML +=   '<tr>';
	HTML +=     '<td>*Entrada <input type="text" name="entrada" id="entrada" />%</td>';
	HTML +=     '<td></td>';
	HTML +=   '</tr>';
	HTML +=   '<tr>';
	HTML +=     '<td>**Mensualidad <input type="text" name="mensualidad" id="mensualidad" />%</td>';
	HTML +=     '<td id="total_mensualidad"></td>';
	HTML +=   '</tr>';
	HTML += '</table>';
	HTML += '<p class="nota">* Mínimo: <span id="min_entrada">20</span>%</p>';
	HTML += '<p class="nota">** Mínimo: <span id="min_mensualidad">5</span>%</p>';
	
	$('aux_div').set('html',HTML);
	
	
	//Registro de Eventos para el input "Entrada"
	var entrada = $('aux_div').getElement('[name="entrada"]');
	
	entrada.addEvent('change',function()
	{
		if(this.value == '' || this.value.toInt() < $('min_entrada').get('text').toInt())
		{
			this.value = $('min_entrada').get('text');
			totalizar();
		}
	});
	
	entrada.addEvent('keyup',function()
	{
		totalizar();
	});
	
	
	//Registro de Eventos para el input "Mensualidad"
	var mensualidad = $('aux_div').getElement('[name="mensualidad"]');	
	
	mensualidad.addEvent('change',function()
	{
		if(this.value == '' || this.value.toInt() < $('min_mensualidad').get('text').toInt())
		{
			this.value = $('min_mensualidad').get('text');
			totalizar();	
		}
	});
	
	mensualidad.addEvent('keyup',function()
	{
		totalizar();
	});
	
	
	//Disparo de eventos registrados
	entrada.fireEvent('change');
	mensualidad.fireEvent('change');
}*/


/*function crearTablaFinanciamiento()
{
	var HTML = '';
	
	HTML += '<table id="tbl_financiamiento" class="small_table">';
	HTML +=   '<tr>';
	HTML +=     '<td>*Entrada <input type="text" name="entrada" id="entrada" />%</td>';
	HTML +=     '<td></td>';
	HTML +=   '</tr>';
	HTML +=   '<tr>';
	HTML +=     '<td>';
	HTML +=       '<span>**Financiado a </span>';
	HTML +=       '<select name="meses" id="meses">';
	HTML +=         '<option value="6">6</option>';
	HTML +=         '<option value="12">12</option>';
	HTML +=         '<option value="18">18</option>';
	HTML +=       '</select>';
	HTML +=       '<span> meses </span>';
	HTML +=       '<input type="text" name="recargo" id="recargo" />%';
	HTML +=     '</td>';
	HTML +=     '<td id="total_mensualidad"></td>';
	HTML +=   '</tr>';
	HTML += '</table>';
	HTML += '<p class="nota">* Mínimo: <span id="min_entrada">20</span>%</p>';
	HTML += '<p class="nota">** Mínimo: <span id="min_mensualidad">5</span>%</p>';

	$('aux_div').set('html',HTML);
	
	var entrada = $('aux_div').getElement('[name="entrada"]');
	
	
	//Registro de Eventos para el input "Entrada"
	entrada.addEvent('change',function()
	{ 
		if(this.value == '' || this.value.toInt() < $('min_entrada').get('text').toInt())
		{
			this.value = $('min_entrada').get('text');
			totalizar();
		}
	});
	
	entrada.addEvent('keyup',function()
	{
		totalizar();	
	});
	
	
	//Registro de Eventos para el selector "Meses"	
	var meses = $('aux_div').getElement('[name="meses"]');			
	
	meses.addEvent('change',function()
	{	
		setMinValue(this); 
		totalizar();
	});			
	
	
	//Registro de Eventos para el input "Recargo"
	var recargo = $('aux_div').getElement('[name="recargo"]');			
	
	recargo.addEvent('change',function()
	{ 
		if(this.value == '' || this.value.toInt() < $('min_mensualidad').get('text').toInt())
		{
			this.value = $('min_mensualidad').get('text');
			totalizar();
		}
	});
	
	recargo.addEvent('keyup',function()
	{
		totalizar();
	});
	
	
	//Disparo de eventos registrados
	entrada.fireEvent('change');
	meses.fireEvent('change');
	recargo.fireEvent('change');
}*/
