	var Cart = {
		url : "shopping.php",
		atributos : null,
		_get : function(fname){
			var peticion = new Fujar.MyServer();
			peticion.url = this.url;
			peticion.vars = "pg=see";
			peticion.onFinish = function(){
				var str = peticion.response;				
				if(fname)fname(str);
			}
			peticion._get();
		},
		_entidad : function(idn,fname){
		    var peticion = new Fujar.MyServer();
			peticion.url = entidad.urlHandler;
			peticion.vars += "pg=entidadbyid";
			peticion.vars += "&id=" + idn;
			peticion.vars += "&frontend="+entidad.isfrontend;
			peticion.onFinish = function(){
				var xml;
				xml = peticion.responseXML;
				var itemNodes = xml.getElementsByTagName("item");
				if(itemNodes.length > 0){
					var nodo = itemNodes[0];
					var nodoID = nodo.getAttribute("entidadID");	
					entidad.xnodes[nodoID] = nodo;
					if(fname)fname(idn,nodo);
				}
			}
			peticion._get();
		},
		_add : function(entidadID,fname){
			var nodo = entidad.xnodes[entidadID];
			if(!nodo){
				Cart._entidad(entidadID,function(idn,enode){
					Cart.send2Cart(entidadID,enode,fname);
				});
			}else{
				Cart.send2Cart(entidadID,nodo,fname);
			}
				
		},
		
		send2Cart : function(entidadID,nodo,fname){
			
			var hasAttributes = (nodo.getAttribute("hasAttributes")=="1")?true:false;
			if(hasAttributes){
				Cart.callAttrWindow(entidadID,fname);
			}else{
				Trace.show("Agregando a cesta..");
				Cart.addDirectly(entidadID,null,fname);
			}
		},

		callAttrWindow : function(entidadID,fname){
        var capaID = "entidad_atributo_aux_div";
      	var capa = document.getElementById(capaID);
		    capa.style.display = 'none';
      	var capaContenido = document.getElementById("entidad_atributo_aux_div_content");
      	var peticion = new Fujar.MyServer();
      	document.getElementById("entidad_atributos_list").innerHTML = "";
			  peticion.url = "/atributo/handler.php";
			  Cart.atributos = new Array();
			  peticion.vars = "pg=atributosByEntidadJSON&entidadID="+entidadID;        
			  peticion.onFinish = function(){
				
  				var jsonObject = eval('(' + peticion.response + ')');
  				capaContenido.innerHTML = "";
          for(var i = 0; i < jsonObject.atributos.length; i++){
            
            capaContenido.innerHTML += "<div> "+ jsonObject.atributos[i].atributo.nombre;
            var combo = "<select id='atributo_"+i+"' title='"+jsonObject.atributos[i].atributo.nombre+"'>";
            combo += "<option value=''>.: Seleccionar :.</option>";
            var items = jsonObject.atributos[i].atributo.item;
            
            for(var j = 0; j < items.length ; j++){              
              combo += "<option value='"+ items[j].id +"'>"+items[j].valor+"</option>";
            }
            combo += "</select>";
            
            capaContenido.innerHTML += combo + "</div>";
          }       
          capaContenido.innerHTML += "<br /><input type='button' id='entidad_atributo_button' name='entidad_atributo_button'  value='Agregar a carrito' onclick='javascript:Cart.addAtributes("+entidadID+");' />";
  				
			  }
			  peticion._get();     	
      	$.blockUI({ message: $("#" + capaID)});

    },
    addAtributes : function(entidadID){
        
        var i = 0;
        var list = document.getElementById("entidad_atributos_list");
        while(document.getElementById("atributo_"+i) != null){
          var combo = document.getElementById("atributo_"+i);
          var value = combo.options[combo.selectedIndex].value;
          if(value != ""){
            Cart.atributos[Cart.atributos.length] = value;
            list.innerHTML += combo.title+ " >" +combo.options[combo.selectedIndex].text+"<br />";
          }
          i++;    
        }
        Cart.addToCart(entidadID);        
    },
    addToCart : function(entidadID){
      Cart.addDirectly(entidadID,Cart.atributos,function(str){
          PrintHTMLCart(str);
          $.unblockUI();
    			document.getElementById("entidad_atributo_aux_div").style.display = 'none';		  
        }
      );
    },
 		
		
		addDirectly : function(entidadID,atributos,fname){
        var peticion = new Fujar.MyServer();
			  peticion.url = this.url;
			  peticion.vars = "pg=add&entidadID="+entidadID;
			  if(atributos){
          peticion.vars += "&atributos="+atributos;
        }
			  peticion.onFinish = function(){
  				var str = peticion.response;
				Trace.hide();
  				if(fname)fname(str);
			  }
			  peticion._get();
    },   
		_delete : function(entidadID,idn,fname){
			var peticion = new Fujar.MyServer();
			peticion.url = this.url;
			peticion.vars = "pg=remove&entidadID="+entidadID+"&idn="+idn;
			peticion.onFinish = function(){
				var str = peticion.response;				
				if(fname)fname(str);
			}
			peticion._get();
		},
		requestInfo : function(txt,fname){
			var peticion = new Fujar.MyServer();
			peticion.url = this.url;
			peticion.vars = "pg=solicitar";
			peticion.vars += "&comments="+encodeURIComponent(txt);
			peticion.onFinish = function(){
				var str = peticion.response;				
				if(fname)fname(str);
			}
			peticion._get();
		},
		pedidoMail : function(txt,email,nombre){
			var peticion = new Fujar.MyServer();
			peticion.url = this.url;
			peticion.vars = "pg=mail";
			peticion.vars += "&contenido="+encodeURIComponent(txt)+"&email="+encodeURIComponent(email)+"&nombre="+encodeURIComponent(nombre);
			//alert(peticion.url + "?" + peticion.vars); 
			peticion.onFinish = function(){
				var str = peticion.response;			
				//alert("aa" + str);
			}
			peticion._post();
		}
	}