function Producto(){
	this.idproducto;
	this.descripcion;
}

function Pedido(){
	this.itemes = new Array();
	this.ponderadorIva = 0.19; //imprimir desde server con smarty este numero magico
	this.montoNeto=0;
	this.montoIva=0;
	this.montoTotal=0;
	this.ultimoIdItemPedido=1;
	this.visibleDespacho = 'false';
	this.query='';
	this.retornoTotal = function(){
		return this.montoNeto;
	}
	this.rescatarPedido = function(){
		var cadena = "{";
		cadena += "ponderadorIva: '"+cotizadorBC.pedido.ponderadorIva+"'," ;
		cadena += "montoNeto: '"+cotizadorBC.pedido.montoNeto+"'," ;
		cadena += "montoIva: '"+cotizadorBC.pedido.montoIva+"'," ;
		cadena += "montoTotal: '"+cotizadorBC.pedido.montoTotal+"'," ;
		cadena += "ultimoIdItemPedido: '"+cotizadorBC.pedido.ultimoIdItemPedido+"'," ;
		cadena += "visibleDespacho: '"+cotizadorBC.pedido.visibleDespacho+"'," ;
		cadena += "query: '"+cotizadorBC.pedido.query+"'}" ;
		return cadena;	
	}
	this.evaluarCompra = function()	{
		var flag = false;
		if(this.montoTotal<0){
			alert("Su Carro de compras esta aun vacío");
		}else{
			items=this.rescatarItemPedidoActivo();
			window.location = 'index.php?moduloFrontend=fn_prod_productos&flujo=carroCotizacionPpal&items='+items;
		}	
	}
	this.vaciarCarro=function(){
		for(var i=0;i<cotizadorBC.pedido.itemes.length;i++){
			cotizadorBC.pedido.itemes[i].flagActivo='0';
		}
		//if(appName == 'Microsoft Internet Explorer')
		delCookie('itempedidocotizacion');			
	}
	this.rescatarItemPedidoActivo=function(){
		var contadorItem=0;
		var SE =',';
		var cadena ='[';
		for(var i=0;i<cotizadorBC.pedido.itemes.length;i++){
			if(cotizadorBC.pedido.itemes[i].flagActivo=='1'){
				if(contadorItem!=0)cadena +=SE;
				cadena += '{';
				cadena += '"id":"'+cotizadorBC.pedido.itemes[i].producto.idproducto+'",';
				cadena += '"cant":"'+cotizadorBC.pedido.itemes[i].cantidad+'"}';
				contadorItem++;
			}
		}
		cadena+=']';
		return cadena;
	}
	this.rescatarItemPedido = function(){
		var SE ='|;';
		var cadena = "";
		for(var i=0;i<cotizadorBC.pedido.itemes.length;i++){
			cadena += "{";
			cadena += "id: '"+cotizadorBC.pedido.itemes[i].id+"',";
			cadena += "idproducto: '"+cotizadorBC.pedido.itemes[i].producto.idproducto+"',";
			cadena += "descripcion: '"+cotizadorBC.pedido.itemes[i].producto.descripcion+"',";
			cadena += "precio: '"+cotizadorBC.pedido.itemes[i].precio+"',";
			cadena += "cantidad: '"+cotizadorBC.pedido.itemes[i].cantidad+"',";
			cadena += "flagTieneIva: '"+cotizadorBC.pedido.itemes[i].flagTieneIva+"',";
			cadena += "flagActivo: '"+cotizadorBC.pedido.itemes[i].flagActivo+"'}"+SE;
		}
		return cadena;
	}
	this.getElementos = function(){
		var separador = ",";
		var cadena='';
		for(var i=0;i<cotizadorBC.pedido.itemes.length;i++){
			cadena+= cotizadorBC.pedido.itemes[i].producto.descripcion+separador;
		}
		return cadena;
	}
	this.construirPanel = function(botones){
		cotizadorBC.pedido.construirDetallePedido();
		cotizadorBC.pedido.construirTotales();
		cotizadorBC.pedido.construirBotones();
		return cotizadorBC.pedido.formarPanel(botones);
	}
	this.formarPanel = function(botones){
		cotizadorBC.pedido.content = '<div id="contenedorinfoDetalle" style="font-size:10px; color:#FFFFFF; display:block">'+cotizadorBC.pedido.infoDetalleplantilla+'</div>';
		cotizadorBC.pedido.content += '<div id="contenedorTotales" style="font-size:10px; color:#FFFFFF; display:block">'+cotizadorBC.pedido.infoTotales+'</div>';
		return cotizadorBC.pedido.content;
	}
	this.construirBotones = function(){
		cotizadorBC.pedido.botones ='';
		return true;
	}
	this.construirTotales = function(){
		cotizadorBC.pedido.infoTotales = '';
	}
	this.construirDetallePedido = function(){
		cotizadorBC.pedido.infoDetalleplantilla ='';
		var modificar= '3';
		for(var i=0;i<cotizadorBC.pedido.itemes.length;i++){
			if(cotizadorBC.pedido.itemes[i].flagActivo=='1'){					
				//PARA COLOREAR INTERLINEADO
				var mod=i%2;
				var colorFila="#FFFFFF";
				if(mod)
				var colorFila="#CCCCCC";
				/////////////////////////////
				cotizadorBC.pedido.infoDetalleplantilla +='<a name="pr'+cotizadorBC.pedido.itemes[i].producto.idproducto+'"></a><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:175px;"><tr><td align="center" valign="top" class="carroCotz_1px"><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:165px;"><tr><td align="left" class="claro_3">'+cotizadorBC.pedido.itemes[i].producto.descripcion+'</td></tr></table></td></tr></table><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:175px; height:13px;"><tr><td align="center" valign="top" class="carroCotz_Seg"></td></tr></table><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:175px;"><tr><td align="center" valign="top" class="carroCotz_1px"><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:165px;"><tr><td align="left" style="width:100px;"><table border="0" cellpadding="0" cellspacing="0" style="width:100px;"><tr><td align="left" class="texto_descuento" style="width:50px;">Uni</td><td align="left" valign="middle" class="texto_descuento" style="width:50px;"><input class="menu_campo1" type="text" name="cantidad_'+i+'" value="'+cotizadorBC.pedido.itemes[i].cantidad+'"  onchange="cotizadorBC.modificarcantidad(this.value,'+modificar+','+i+');" /></td></tr></table></td><td align="left" class="texto_gris"><a href="#carroCotizacion" onclick="cotizadorBC.desactivaritem('+i+')" >  <img src="sistemas/pcrm/gui/emergencias/html/frontend/images/icons/eliminar2.png" width="16" height="15" border="0"/></a></td></tr></table></td></tr></table><table border="0" align="center" cellpadding="0" cellspacing="0" style="width:175px; height:13px;"><tr><td align="center" valign="top" class="carroCotz_Lin"></td></tr></table>';

			}
		}
		cotizadorBC.pedido.infoDetalleplantilla += '</table>';
	}
	this.desactivarItem = function(posicion){
		this.itemes[posicion].flagActivo = '0';
		this.calcularMontos();	
	}
	this.modificarCantidad = function(cantidad,opcion,posicion){
		
		if(opcion == '3'){
			var pattern=new RegExp("^[0-9]+$");
   			var isInteger=cantidad.match(pattern);
			var cant = parseInt(cantidad);
			if(isInteger){
				if (cant==0){
					this.desactivarItem(posicion);
				}else{
					this.itemes[posicion].cantidad = cant;
					this.calcularMontos();
				}
			}
		}
		if(opcion =='1'){
			total=parseInt(this.itemes[posicion].cantidad)+parseInt(cantidad);
			this.itemes[posicion].cantidad=total;
		}if(opcion =='2'){
			total=parseInt(this.itemes[posicion].cantidad)-parseInt(cantidad);
			this.itemes[posicion].cantidad=total;
		}
			
	}
	this.checkItem = function(idProducto){
		var indiceProducto = -1;
		for(var i=0;i<this.itemes.length;i++){
			if(this.itemes[i].producto.idproducto==idProducto&&this.itemes[i].flagActivo=='1'){
				indiceProducto = i;
			}
		}
		return indiceProducto;
	}
	this.getIdProducto = function(indice){
		return this.itemes[indice].producto.idproducto;
	}
	this.limpiarPedidosSesion = function(){
		for(var i=0;i<this.itemes.length;i++){
			this.itemes[i].id="";
			this.itemes[i].producto.idproducto="";
			this.itemes[i].producto.descripcion="";
			this.itemes[i].producto.idproducto="";
			this.itemes[i].precio="";
			this.itemes[i].cantidad="";
			this.itemes[i].flagTieneIva="";
			this.itemes[i].flagActivo="";
		}
	}
	this.limpiarPedidos = function(){
		for(var i=0;i<this.itemes.length;i++){
			this.itemes[i].id="";
			this.itemes[i].producto.idproducto="";
			this.itemes[i].producto.descripcion="";
			this.itemes[i].producto.idproducto="";
			this.itemes[i].precio="";
			this.itemes[i].cantidad="";
			this.itemes[i].flagTieneIva="";
			this.itemes[i].flagActivo="";
		}
		this.calcularMontos();
	}
	this.addItem = function(item){
		this.itemes.push(item);
		return true;
	}
	this.actualizarDiv = function(){
		if(document.getElementById("cajeroCotizador")){
			document.getElementById("cajeroCotizador").innerHTML = '';
			document.getElementById("cajeroCotizador").innerHTML = this.construirPanel(true);
		}
	}
	this.actualizarDivFinal = function(){
		document.getElementById("cajeroCotizador").innerHTML = '';
		document.getElementById("cajeroCotizador").innerHTML = this.construirPanel(false);
	}
	this.removeLastItem = function(idItem){
		this.itemes.pop();
		this.ultimoIdItemPedido--;
		return true;
	}
	this.calcularMontos = function(){
		var montoIva = 0;
		var montoNeto = 0;
		for(var i=0;i<this.itemes.length;i++){
			if(this.itemes[i].flagActivo=='1'){
				montoNeto += (this.itemes[i].precio*this.itemes[i].cantidad);
				if(this.itemes[i].flagTieneIva==1){
					montoIva += this.itemes[i].precio*this.ponderadorIva*this.itemes[i].cantidad;
				}
			}
		}
		this.montoIva = montoIva;
		this.montoNeto = montoNeto;
		this.montoTotal = this.montoNeto + this.montoIva;
		this.actualizarDiv();
	}
	this.generarIdNuevoItemPedido = function(){
		return (this.ultimoIdItemPedido++);
	}
	this.crearTxtPedidoServer = function(){
		var SE = ";|";
		var SNF = "@@";
		var SNT = "!!"
		txtdetalle='';
		txttotales='';
		txt='';
		for(var i=0;i<this.itemes.length;i++){
			if(this.itemes[i].flagActivo=='1'){
				txtdetalle+= this.itemes[i].producto.idproducto+SE+this.itemes[i].producto.descripcion+SE+this.itemes[i].cantidad+SE+this.itemes[i].precio+SE+this.itemes[i].flagTieneIva+SNF;
			}
		}
		txttotales= this.montoNeto+SE+this.montoIva+SE+this.montoTotal;
		txt= txtdetalle+SNT+txttotales;
		return txt;
	}
}

function ItemPedido(){
	this.id;
	this.producto = new Producto();
	this.precio;
	this.cantidad;
	this.flagTieneIva;
	this.flagActivo;
	this.setProducto=function(idProducto,descripcion){
		this.producto.idproducto = idProducto;
		this.producto.descripcion = descripcion;
	}
}

function CotizadorVirtualBC(){
	this.infoClientePersona;
	this.infoDetalle;
	this.infoTotales;
	this.pedido = new Pedido();
	this.conversion = new ConvertirArray();
	this.titulo='';
	this.limpiarCajero = function(){
		this.pedido.limpiarPedidos();
	}
	this.modificarcantidad = function(cantidad,opcion,posicion)	{
		var idProducto = this.pedido.getIdProducto(posicion);
		this.pedido.modificarCantidad(cantidad,opcion,posicion);			
	}
	this.desactivaritem = function(posicion){
		this.pedido.desactivarItem(posicion);
	}
	this.agregarItemPedido = function(idProducto,descripcion,flagTieneIva,precioSinIva,cantidad,it){
		if(this.pedido.checkItem(idProducto)<0){
			it.id = this.pedido.generarIdNuevoItemPedido();
			it.setProducto(idProducto,descripcion);
			it.precio=precioSinIva;
			it.cantidad=cantidad;
			it.flagTieneIva=flagTieneIva;
			it.flagActivo='1';
			this.pedido.addItem(it);
			this.pedido.calcularMontos();
		}else{
			this.pedido.modificarCantidad(cantidad,'1',this.pedido.checkItem(idProducto));
			this.pedido.calcularMontos();	
		}
		return true;
	}
	this.mostrarPedido = function(objVista){
		this.pedido.calcularMontos();
	}		
}

function getCookie(name){
	var cname = name + "=";
	var dc = document.cookie;
	if (dc.length > 0) {
		begin = dc.indexOf(cname);
		if (begin != -1) {
			begin += cname.length;
			end = dc.indexOf(";", begin);
			if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
		}
	}
	return null;
}

function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

function delCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function ConvertirArray()
{
	this.rescatarPedido = function(){
		var pedido = cotizadorBC.pedido.rescatarPedido();
		return pedido;
	}
	this.rescatarItemPedido = function(){
		var itempedido = cotizadorBC.pedido.rescatarItemPedido();
		return itempedido;
	}
	this.rescatarTitulo = function(){
		return cotizadorBC.titulo;
	}
	this.recuperarObjetos = function(cadenaCliente,cadenaPedido,cadenaItemPedido,cadenaTitulo){
		if(true){//if(appName == 'Microsoft Internet Explorer')
			if(cadenaPedido!=undefined){
				var pedido=eval('('+cadenaPedido+')');
				cotizadorBC.pedido.ponderadorIva = pedido.ponderadorIva;
				cotizadorBC.pedido.montoNeto = pedido.montoNeto;
				cotizadorBC.pedido.montoIva = pedido.montoIva;
				cotizadorBC.pedido.montoTotal = pedido.montoTotal;
				cotizadorBC.pedido.ultimoIdItemPedido = pedido.ultimoIdItemPedido;
				cotizadorBC.pedido.visibleDespacho = pedido.visibleDespacho;
				cotizadorBC.pedido.query = pedido.query;
			}
			if(cadenaItemPedido!=undefined)	{
				var SE ='|;';
				elementos = cadenaItemPedido.split(SE);
				var total = elementos.length - 1;
				for(var i=0;i<total;i++){
					var cadena = elementos[i];
					var item = eval('('+cadena+')');
					it = new ItemPedido();
					it.id = item.id;
					it.setProducto(item.idproducto,item.descripcion);
					it.precio=parseInt(item.precio);
					it.cantidad=parseInt(item.cantidad);
					it.flagTieneIva=item.flagTieneIva;
					it.flagActivo=item.flagActivo;
					cotizadorBC.pedido.addItem(it);
				}
				cotizadorBC.pedido.calcularMontos();
			}
		}
	}
	this.guardarObjetos = function(){
		if(true){//appName == 'Microsoft Internet Explorer'
			/*
			if(cotizadorBC.pedido.montoTotal!=''){
				setCookie ('pedidocotizacion', cotizadorBC.conversion.rescatarPedido());
			}
			*/
			if(cotizadorBC.pedido.itemes.length!=0){
				setCookie ('pedidocotizacion', cotizadorBC.conversion.rescatarPedido());
				setCookie ('itempedidocotizacion',cotizadorBC.conversion.rescatarItemPedido());
			}
			setCookie ('cliente','');
		}
	}
}

if(!cotizadorBC){
	var cotizadorBC = new CotizadorVirtualBC();
}
//cotizadorBC.mostrarPedido();//SE DEBE EJUCUTAR EN EL MISM0 TEMPLATE




