var totales = new Array();
var imagenes = new Array();
var ocupado = false;
//Detect IE5.5+
var version=0;
if (navigator.appVersion.indexOf("MSIE")!=-1){
   var temp=navigator.appVersion.split("MSIE");
   var version=parseFloat(temp[1]);
}

function imagengrande(img,width,height)
{
   this.img=img;
   this.width=width;
   this.height=height;
}

function oculta_imggrande()
{

   if (navigator.appName=="Microsoft Internet Explorer" && version<=6)
   {
      var CSS1=document.createStyleSheet();
      CSS1.addRule("select","display:inline;");
   }
   dd.elements['contenedor'].hide();
}


function muestra_imggrande(idpadre)
{
   if(imagenes[idpadre] != null)
   {
      dd.elements["contenedor"].write('<div style="float:right;margin:2px;"><a href="javascript:oculta_imggrande();"><img src="/imgfiles/Imagenes/cesta/boto-cerrar.gif" border="0"></a></div><img src="'+imagenes[idpadre].img+'">');
      dd.elements["contenedor"].resizeTo(imagenes[idpadre].width+6,imagenes[idpadre].height+20);


      var coord = coordenadas_centro(imagenes[idpadre].width,imagenes[idpadre].height);
      dd.elements["contenedor"].moveTo(coord.x,coord.y);
      dd.elements["contenedor"].show();
      if (navigator.appName=="Microsoft Internet Explorer" && version<=6)
      {
         var CSS1=document.createStyleSheet();
	 CSS1.addRule("select","display:none;");
      }
   }
}

function recalcular_cantidad(canti,idprodu)
{
   var url="/cesta.setCantiProducto";
   var params = new Object();
   if(canti != '')
   {
      params['cantidad']=canti;
      params['idprodu']=idprodu;
      ajaxCaller.postForPlainText(url, params, repaint_cesta);
   }
}

function recalcular_formato(formato,idprodu)
{
   var url="/cesta.setFormatProduct";
   var params = new Object();
   params['idformat']=formato;
   params['idprodu']=idprodu;
   ajaxCaller.postForPlainText(url, params, repaint_cesta);
}

function new_product(idorigen)
{
      var url="/cesta.newProduct";
      var params = new Object();
      params['idprodu']=idorigen;
      ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function remove_product_1(idprodu,idpadre)
{
   var total = 1;
   var ok = true;
   if(totales[idpadre] != null){total=totales[idpadre];}
   if(total == 1)
   {
   ok = false;
	confirma('dichis','Esta usted a punto de eliminar el producto por completo.<br>Desea continuar?','remove_product_1_ok('+idprodu+','+idpadre+');',true);
   }
   /*
   if(total == 1)
   {
      ok=confirm('Esta usted a punto de eliminar el producto por completo.\nDesea continuar?');
   }*/
   if(ok)
   {
		if(totales[idpadre] != null){totales[idpadre]--;}
		var url="/cesta.deleteProduct";
		var params = new Object();
		params['idprodu']=idprodu;
		ajaxCaller.postForPlainText(url, params,repaint_cesta);
   }
}

function remove_product_1_ok(idprodu,idpadre)
{
	if(totales[idpadre] != null){totales[idpadre]--;}
    var url="/cesta.deleteProduct";
    var params = new Object();
    params['idprodu']=idprodu;
    ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function remove_padre_product_1(idpadre)
{
   var total = 1;
   confirma('dichis','Esta usted a punto de eliminar el producto por completo.<br>Desea continuar?','remove_padre_product_1_ok('+idpadre+');',true);
   /*
   var ok = confirm('Esta usted a punto de eliminar el producto por completo.\nDesea continuar?');

   if(ok)
   {
      var url="/cesta.deleteProduct";
      var params = new Object();
      params['idpadre']=idpadre;
      ajaxCaller.postForPlainText(url, params,repaint_cesta);
   }*/
}

function remove_padre_product_1_ok(idpadre)
{
	var url="/cesta.deleteProduct";
    var params = new Object();
    params['idpadre']=idpadre;
    ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function recalcular_color(color,idprodu)
{
   var url="/cesta.setColorProducto";
   var params = new Object();
   params['color']=color;
   params['idprodu']=idprodu;
   ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function recalcular_tipo(tipo,idprodu, plastificado)
{
   var url="/cesta.setTipoProducto";
   var params = new Object();
   params['tipo']=tipo;
   params['idprodu']=idprodu;
   params['plastificado']=0;
   if(plastificado==1){params['plastificado']=1;}
   ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function recalcular_margenes(margenes,idprodu)
{
   var url="/cesta.setMargenesProducto";
   var params = new Object();
   params['margenes']=0;
   if(margenes){params['margenes']=1;}
   params['idprodu']=idprodu;
   ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function recalcular_acolchada(margenes,idprodu)
{
   var url="/cesta.setAcolchada";
   var params = new Object();
   params['acolchada']=0;
   if(margenes){params['acolchada']=1;}
   params['idprodu']=idprodu;
   ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function recalcular_opciones(opcion,chkopcion,idprodu)
{
   var url="/cesta.setOpciones";
   var params = new Object();
   params['opcion']=opcion;
   params['chkopcion']=0;
   if(chkopcion){params['chkopcion']=1;}
   params['idprodu']=idprodu;
   ajaxCaller.postForPlainText(url, params,repaint_cesta);
}

function repaint_cesta(json)
{
   var all = eval('('+json+')');

   if(all.msgerror){alerta(all.msgerror);}
   if(all.repaint_canti){eval(all.campo+'.value = '+all.cantidad);}
   if(all.divtotal)
   {
      var obj = document.getElementById(all.divtotal);
      if(obj)
      {
         var total = all.cantidad * all.precio;
         obj.innerHTML = redondear(total,100)+'€';
      }
   }
   if(all.change_precio)
   {
      var obj = document.getElementById('precio_'+all.idprodu);
      if(obj)
      {
         obj.innerHTML = redondear(all.precio,100)+'€';
      }
   }
   if(all.todelete)
   {
      var obj=document.getElementById('cesta_conte_hijos_'+all.todelete.idpadre);
      var objchild=document.getElementById('cesta_conte_hijo_'+all.todelete.idprodu);
      if(all.todelete.delete_padre == 1)
      {
         obj=document.getElementById('allcesta');
         objchild=document.getElementById('cesta_conte_produ_'+all.todelete.idpadre);
      }
      if(obj!=null && objchild!=null){obj.removeChild(objchild);}
   }
   if(all.toadd)
   {
      var obj=document.getElementById(all.toadd.divpadre);
      var o = document.createElement('div');
      o.id='cesta_conte_hijo_'+all.toadd.idprodu;
      o.className="cesta_conte_hijo";
      o.innerHTML=all.toadd.htmlnew;
      if(obj && o)
      {
         obj.appendChild(o);
         if(totales[all.toadd.idpadre] != null){totales[all.toadd.idpadre]++;}
      }
   }

   if(all.totalcesta)
   {
      var descuento_superdichis = (all.totalcesta) * all.descuento_superdichis / 100;
      var descuento = (all.totalcesta) * all.descuento / 100 + all.dinero;
      var total = all.totalcesta - descuento_superdichis - descuento;
      if(total<0){total=0;}
      document.getElementById('total_cesta').innerHTML=redondear(all.totalcesta,100)+'€';
      document.getElementById('total_descuento').innerHTML=redondear(descuento,100)+'€';
      document.getElementById('total_descuento_superdichis').innerHTML=redondear(descuento_superdichis,100)+'€';
      document.getElementById('total_final').innerHTML=redondear(total,100)+'€';
   }
   if(all.repintar_total)
   {
      /*var descuento_superdichis = (all.totalcesta) * all.descuento_superdichis / 100;
      var descuento = (all.totalcesta) * all.descuento / 100 + all.dinero;
      var total = all.totalcesta - descuento_superdichis - descuento;
      if(total<0){total=0;}*/
      document.getElementById('total_cesta').innerHTML=all.xsctotal_productos+'€';
      document.getElementById('total_descuento').innerHTML='-'+all.xscdescuento+'€';
      document.getElementById('total_descuento_superdichis').innerHTML='-'+all.xscsuperdichis+'€';
      document.getElementById('total_final').innerHTML=all.xsctotal+'€';
   }
   if(all.noproducts)
   {
      document.getElementById('promos').innerHTML='';
      document.getElementById('totales_finales').innerHTML=all.noproducts;
   }

   if(all.new_contact)
   {
      inserta_contacto(all.new_contact);
   }

   if(all.html_contactos)
   {
      dd.elements['mis_contactos_popup'].write(all.html_contactos);
      for(var x in all.nuevos_contactos)
      {
         inserta_contacto(all.nuevos_contactos[x]);
      }
   }
   if(all.recalcularpacks)
   {
		recalcular_packs(all.idprodu);
   }
   /*
	if(all.packs)
	{
		document.getElementById('FORMATO_PACK_'+all.idprodu).style.display = 'block';
		//alert(all.fotosrestantes);
		if(all.cambioselects)
		{
			
		}
	
	}
	else
		document.getElementById('FORMATO_PACK_'+all.idprodu).style.display = 'none';
	*/	
	if(all.packsmenos)
	{
		new_product(all.idprodu);
		recalcular_formato(all.idformato,all.idprodu);

	}
	if(all.alerta != null)
		alerta(all.alerta);

	if(all.changemetalico)
	{
		if(all.metalico)
		{
			eval('document.cesta.plastificado_'+all.idprodu+'.checked = false');
			eval('document.cesta.plastificado_'+all.idprodu+'.disabled = true');
		}
		else
			eval('document.cesta.plastificado_'+all.idprodu+'.disabled = false');
	}
	
	if(all.pintar_calidad)
	{
		document.getElementById(all.id_calidad).src=all.img_calidad;
		document.getElementById(all.id_calidad).alt=all.alt_calidad;
		document.getElementById(all.id_calidad).title=all.alt_calidad;
	}
   ocupado = false;
   if(all.htmlpromociones)
		document.getElementById('promociones').innerHTML = all.htmlpromociones;
}

function redondear(valor,multiplicador)
{ return Math.round(valor*multiplicador)/100; }


function calcular_promo(idpromo,checked)
{
   if(!ocupado){
     ocupado = true;
     var url="/cesta.calcPromo";
     var params = new Object();
     params['idcodigo']=idpromo;
     params['checked']=0;
     if(checked){params['checked']=1;}
     ajaxCaller.postForPlainText(url, params, repaint_cesta);
   }
   else{ eval("document.cesta.promo_"+idpromo+".checked="+!checked+";")}
}

function recalcular_packs(idprodu)
{
	var obj = eval('document.cesta.formato_'+idprodu);
	var obj2 = eval('document.cesta.canti_'+idprodu);
	//alert(obj.value);
	var url="/cesta.setPacksProduct";
	var params = new Object();
	params['idprodu']=idprodu;	
	params['formato']=obj.value;
	params['cantidad']=obj2.value;
	ajaxCaller.postForPlainText(url, params, repaint_cesta);
}

function recalcular_calidad(idpadre, idprodu, formato)
{
	var url="/cesta.setCalidadFoto";
	var params = new Object();
	params['idpadre']=idpadre;
	params['idprodu']=idprodu;	
	params['formato']=formato;
	ajaxCaller.postForPlainText(url, params, repaint_cesta);
}

function inserta_contacto(contact)
{
   var tr=document.getElementById('mis_contactos').insertRow(0);
   tr.id='tr_contact_'+contact.ID;
   var td=tr.insertCell(0);
  // td.colSpan=2;
   td.className="cesta_valores_envio";
   td.style.padding="3px 3px 3px 5px";
   td.innerHTML = contact.NOMBRE;

  /* tr=document.getElementById('mis_contactos').insertRow(0);
   tr.id='tr_contact_'+contact.ID;
   td=tr.insertCell(0);
   td.className="cesta_valores_envio";
   td.style.padding="3px 3px 3px 5px";
   td.style.whiteSpace="nowrap";
   td.innerHTML=contact.NOMBRE;*/

   td=tr.insertCell(1);
   td.className="cesta_valores_envio";
   //td.style.width='100%';
   td.style.padding='3px 3px 3px 5px';
   td.style.borderLeft='0';
   td.className="cesta_valores_envio";
   td.innerHTML=contact.DIRECCION + ' ' + contact.CP  + ' ' + contact.POBLACION + ' ' + contact.PROVINCIA + ' ' + contact.PAIS;

   td=tr.insertCell(2);
   //td.className="cesta_valores_envio";
   //td.style.width='100%';
   td.style.align='right';
   td.style.borderLeft='0';
   td.className="cesta_valores_envio";
   td.innerHTML=contact.PRECIO_ENVIO + '€';

     td=tr.insertCell(3);
   td.className="cesta_valores_envio";
   //td.style.width='100%';
   td.style.padding='3px 3px 3px 5px';
   td.style.borderLeft='0';
      td.innerHTML='<div style="float:right;"><img src="/imgfiles/Imagenes/iconos/btn_detall_off.gif" border=0 onmouseover="this.src=\'/imgfiles/Imagenes/iconos/btn_detall_on.gif\';" onmouseout="this.src=\'/imgfiles/Imagenes/iconos/btn_detall_off.gif\';" onClick="modificar_datos(\'contactos\','+contact.ID+');"> <img src="/imgfiles/Imagenes/cesta/btn_eliminar_off.gif" border=0 onmouseover="this.src=\'/imgfiles/Imagenes/cesta/btn_eliminar_on.gif\';" onmouseout="this.src=\'/imgfiles/Imagenes/cesta/btn_eliminar_off.gif\';" onclick="delete_contacto(this)"></div>';
	  
   document.getElementById('cesta_conte_mis_contactos').style.display='block';

}

function datos_factura()
{
	var url="/cesta.datos_Factura";
	var params = new Object();
	params['nombre']=document.envio.fac_nombre.value;
	params['direccion']=document.envio.fac_direccion.value;
	params['nif']=document.envio.fac_nif.value;
	params['cp']=document.envio.fac_cp.value;
	params['ciudad']=document.envio.fac_ciudad.value;
	params['pais']=document.envio.fac_pais[document.envio.fac_pais.selectedIndex].value;
	params['provincia']=document.envio.fac_provincia[document.envio.fac_provincia.selectedIndex].value;
	ajaxCaller.postForPlainText(url, params, repaint_cesta);
}

function datos_factura_siguiente()
{
	var url="/cesta.datos_Factura";
	var params = new Object();
	params['nombre']=document.envio.fac_nombre.value;
	params['direccion']=document.envio.fac_direccion.value;
	params['nif']=document.envio.fac_nif.value;
	params['cp']=document.envio.fac_cp.value;
	params['ciudad']=document.envio.fac_ciudad.value;
	params['pais']=document.envio.fac_pais[document.envio.fac_pais.selectedIndex].value;
	params['provincia']=document.envio.fac_provincia[document.envio.fac_provincia.selectedIndex].value;
	ajaxCaller.postForPlainText(url, params, redirigir);
}

function redirigir(json)
{
	var all = eval('('+json+')');
	if(all.url)location.href=all.url;
	if(all.msgbox)alerta(all.msgbox);
}

function add_newcontact()
{
   if(valida_form())
   {
      var url="/cesta.addnewContact";
      var params = new Object();
      params['nombre']=document.envio.new_nombre.value;
      params['direccion']=document.envio.new_direccion.value;
      params['email']=document.envio.new_email.value;
      params['cp']=document.envio.new_cp.value;
      params['ciudad']=document.envio.new_ciudad.value;
      params['pais']=document.envio.new_pais[document.envio.new_pais.selectedIndex].value;
	  params['provincia']=document.envio.new_provincia[document.envio.new_provincia.selectedIndex].value;
      ajaxCaller.postForPlainText(url, params, repaint_cesta); 
   }

}

function valida_form()
{
   var lista = '';
   var lista2 = '';
   var ok = true;
   if(document.envio.new_nombre.value == ''){lista+='<br>\t- Nombre.';}
   if(document.envio.new_direccion.value == ''){lista+='<br>\t- Direccion.';}
	if(document.envio.new_email.value == '')
	{
		lista+='<br>\t- Correo eletrónico.';
	}
	else if (!checkemail(document.envio.new_email.value))
	{
		lista2+='<br>\t- El Correo electrónico es incorrecto.';
	}
   if(document.envio.new_cp.value == ''){lista+='<br>\t- Código Postal.';}
   if(document.envio.new_ciudad.value == ''){lista+='<br>\t- Ciudad.';}
   if(document.envio.new_pais[document.envio.new_pais.selectedIndex].value == 0){lista+='<br>\t- País.';}
   
 	if(lista != '')
	{
		alerta('Los siguientes campos son obligatorios:'+lista+'<br>Rellénalos e intenta nuevamente.');
		ok=false;
	}else if (lista2 != '')
	{
		alerta(lista2);
		ok=false;
	}
   return ok;
}

function add_del_me(check)
{
      var url="/cesta.AddDelMe";
      var params = new Object();
      params['checked']=check;
      ajaxCaller.postForPlainText(url, params, repaint_cesta); 
   return true;
}

function delete_contacto(td)
{
   var idtr = td.parentNode.parentNode.parentNode.id;
   var re = new RegExp('^tr_contact_(\\d+)$');
   var m = re.exec(idtr);
   if(m)
   {
      var index=td.parentNode.parentNode.parentNode.rowIndex;
    //  index--;
      document.getElementById('mis_contactos').deleteRow(index);
     // document.getElementById('mis_contactos').deleteRow(index);
      var tbl = document.getElementById('mis_contactos');
      if(tbl.rows.length == 0){document.getElementById('cesta_conte_mis_contactos').style.display='none';}
      var url="/cesta.deleteContact";
      var params = new Object();
      params['id']=m[1];
      ajaxCaller.postForPlainText(url, params, repaint_cesta); 
   }

  return;
}

function change_display_div(id,val)
{
   if(dd.elements[id])
   {
      if(val == 'none'){dd.elements[id].hide();}
      else
      {
         var coord = coordenadas_centro(dd.elements[id].w,dd.elements[id].h);
         dd.elements[id].moveTo(coord.x,coord.y);
         dd.elements[id].show();
      }
   }else{document.getElementById(id).style.display=val;}
}

function add_contacts()
{
   var contactos='';
   for(var x in document.envio.elements)
   {
      var re = new RegExp('^contact_(\\d+)$');
      if(document.envio.elements[x] && document.envio.elements[x].name)
      {
         var m = re.exec(document.envio.elements[x].name);

         if(m && document.envio.elements[x].checked)
         {
            contactos+=m[1]+',';
         }
      }
   }

   if(contactos.length)
   {
      var url="/cesta.addContacts";
      var params = new Object();
      params['lista']=contactos;
      ajaxCaller.postForPlainText(url, params, repaint_cesta); 
   }
   change_display_div('mis_contactos_popup','none');
}

function gotopago()
{
	var url="/cesta.url_pago";
    var params = new Object();
    ajaxCaller.postForPlainText(url, params, redireccion);
}

function redireccion(url)
{
	if(url != null)
		location.href=url;
}

function modificar_datos(origen, id)
{
	  var url="/cesta.getDatosEnvio";
      var params = new Object();
      params['origen']=origen;
	  params['id']=id;
      ajaxCaller.postForPlainText(url, params, tratar_datos); 
}

function guardar_datos(f,id)
{
	var lista = '';
	var lista2 = '';
	//alert(f.popup_direccion.value);
	if(f.popup_nombre.value == ''){lista+='<br>\t- Nombre.';}
	if(f.popup_direccion.value == ''){lista+='<br>\t- Direccion.';}
	if(f.popup_cp.value == ''){lista+='<br>\t- Código Postal.';}
	if(f.popup_ciudad.value == ''){lista+='<br>\t- Ciudad.';}
	if(f.popup_pais.value == 0){lista+='<br>\t- País.';}
	if(f.popup_email.value == '')
	{
		lista+='<br>\t- Correo electrónico.';
	}
	else
	{
		if (!checkemail(f.popup_email.value))
		{
			lista2+='<br>\t- El Correo electrónico es incorrecto.';
		}
	}
	if(lista != '')
	{
		confirma(null,'Los siguientes campos son obligatorios:'+lista+'<br>Rellénalos e intenta nuevamente.','cerrar_dialogo(\'contenedor\');');
	}
	else if (lista2 != '')
	{
		confirma(null,lista2+'<br><br>Intenta nuevamente.','cerrar_dialogo(\'contenedor\');');
	}
   	else
	{
		var url="/cesta.setDatosEnvio";
		var params = new Object();
		params['nombre']=encodeURIComponent(f.popup_nombre.value);
		params['direccion']=encodeURIComponent(f.popup_direccion.value);
		params['email']=encodeURIComponent(f.popup_email.value);
		params['cp']=f.popup_cp.value;
		params['ciudad']=encodeURIComponent(f.popup_ciudad.value);
		params['provincia']=encodeURIComponent(f.popup_provincia.value);
		params['pais']=f.popup_pais.value;
		params['id']=f.popup_id.value;
		ajaxCaller.postForPlainText(url, params, tratar_datos); 
	}
}

function tratar_datos(json)
{
	var all = eval('('+json+')');
	if (all.popup)
	{
		abrir_dialogo('modi_datos','contenedor',700,200,null,'popup');
		document.popup.popup_pais.value=all.pais;
		getprovincias(document.popup.popup_pais[document.popup.popup_pais.selectedIndex].value,'document.popup.popup_provincia');
		document.popup.popup_nombre.value=all.nombre;
		document.popup.popup_direccion.value=all.direccion;
		document.popup.popup_email.value=all.email;
		document.popup.popup_cp.value=all.cp;
		document.popup.popup_ciudad.value=all.ciudad;
		document.popup.popup_id.value=all.id;
		setTimeout("document.popup.popup_provincia.value="+all.provincia,400);
	}
	else
	{
		location.reload();
	}
}

function change_promo(campo, idpromo, checked, id)
{
	if(checked)
	{
		for (j=1;j<=document.cesta.total_promos.value;j++) {
			for (i=0;i<document.cesta.elements.length;i++) {
				if(document.cesta.elements[i].type == "checkbox" && document.cesta.elements[i].id != id && document.cesta.elements[i].id==j){
					document.cesta.elements[i].checked=0;
				}
			}
		}
	}
	eval(campo+'.checked = '+checked);

	 var url="/cesta.changePromo";
     var params = new Object();
     params['idpromo']=idpromo;
     params['checked']=0;
     if(checked){params['checked']=1;}
     ajaxCaller.postForPlainText(url, params, repaint_cesta);
}


