  dojo.require("dojo.parser");
  dojo.require("dojo._base.json");     
	dojo.require("dijit.Dialog");
	dojo.require("dijit.Tooltip");
	dojo.require("dijit.form.Form");
	dojo.require("dijit.form.TextBox");
	dojo.require("dijit.form.ValidationTextBox");
	dojo.require("dijit.form.Button");
	dojo.require("dojox.validate.regexp");
	dojo.require("dijit.form.FilteringSelect");
	dojo.require("dijit.layout.ContentPane");
	
	var producto = "";

	function getCant()
	{   
		var xhrArgs = 
    {
     	url: "/ajax/libros/carro/count",
     	sync:true,
      load: function(data)
      {
      	dat = dojo.fromJson(data);
      	document.write(dat.message);
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}

	function getProducto(idProd, cc)
	{   
		var param = idProd;
		if ( (cc != "") & (cc != undefined) )
		{
			param = param+"/cc/"+cc;
		}
    var xhrArgs = 
    {
     	url: "/ajax/libros/producto/get/p/"+param,
     	sync:true,
      load: function(data)
      {
      	producto = dojo.fromJson(data);
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	function addProducto(idProd)
	{
		var param = idProd;
    var xhrArgs = 
    {
     	url: "/ajax/libros/carro/add-prod/p/"+param,
     	sync:true,
      load: function(data)
      {
      	dat = dojo.fromJson(data);
      	if (producto.status == "ok")
      	{
      		//muestro la cantidad donde corresponde
      		document.getElementById("cont").innerHTML = dat.message;
      		showCart();
      	}else{
      		//muestro un mensaje de error
      		alert(dat.message);
      	}
			},
			error: function(data)
			{
				alert(data);
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	function removeProd(pos)
	{
		var param = pos;
    var xhrArgs = 
    {
     	url: "/ajax/libros/carro/remove-prod/p/"+param,
     	sync:true,
      load: function(data)
      {
      	dat = dojo.fromJson(data);
      	document.getElementById("cont").innerHTML = dat.message;
      	loadListCart();
			},
			error: function(data)
			{
				alert(data);
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	function anular()
	{
		var xhrArgs = 
    {
     	url: "/ajax/libros/carro/anular/",
     	sync:true,
      load: function(data)
      {
      	dat = dojo.fromJson(data);
      	document.getElementById("cont").innerHTML = dat.message;
      	loadListCart();
			},
			error: function(data)
			{
				alert(data);
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	
	function showCart()
	{
		loadListCart();
		document.getElementById('contentCart').style.display='inline';
		document.getElementById('contentCart').style.visibility='visible';
		document.getElementById('contentFormPagar').style.display='none';
		document.getElementById('contentFormPagar').style.visibility='hidden';
		if (document.getElementById("errorDescuento") != undefined)
		{
			document.getElementById("errorDescuento").innerHTML = "";
		}
		dijit.byId("dialogCart").show();
	}
	
	function hideCart()
	{
		dijit.byId("dialogCart").hide();
	}
	
	function loadListCart()
	{
		var xhrArgs = 
    {
     	url: "/ajax/libros/carro/list",
     	sync:true,
      load: function(data)
      {
      	document.getElementById("contentCart").innerHTML = data;
			},
			error: function(data)
			{
				document.getElementById("contentCart").innerHTML = "Ocurrio un error.";
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	function addDescuento()
	{
		var descuento = dojo.byId("descuento").value;
    var xhrArgs = 
    {
     	url: "/ajax/libros/carro/add-desc/n/"+descuento,
     	sync:true,
      load: function(data)
      {
      	data = dojo.fromJson(data);
      	if (data.status == "ok")
      	{
      		loadListCart();
      		dojo.byId("descuento").value = "";
      		document.getElementById("errorDescuento").innerHTML = "";
      	}else{
      		//muestro un mensaje de error
      		document.getElementById("errorDescuento").innerHTML = data.message;
      	}
			},
			error: function(data)
			{
				data = dojo.fromJson(data);
				document.getElementById("errorDescuento").innerHTML = data.message;
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}
	
	function volverCarro()
	{
		loadListCart();
		document.getElementById('contentCart').style.display='inline';
		document.getElementById('contentCart').style.visibility='visible';
		document.getElementById('contentFormPagar').style.display='none';
		document.getElementById('contentFormPagar').style.visibility='hidden';
	}
	
	function hidenLoading()
	{
		dijit.byId("dialogLoading").hide();
	}
	
	function showLoading()
	{
		dijit.byId("dialogLoading").show();
	}
		
	function formPagar()
	{
		document.getElementById('contentFormPagar').style.display='inline';
		document.getElementById('contentFormPagar').style.visibility='visible';
		document.getElementById('contentCart').style.display='none';
		document.getElementById('contentCart').style.visibility='hidden';
		var xhrArgs = 
    {
     	url: "/ajax/libros/carro/form-pagar",
     	sync:true,
      load: function(data)
      {
      	if (dijit.byId("contentFormPagar").content != "")
      	{
      		dijit.byId("contentFormPagar").setContent(data);
      	}
			},
			error: function(data)
			{
				document.getElementById("contentCart").innerHTML = "Ocurrio un error.";
			}
    }
    //Call the asynchronous xhrGet
    var deferred = dojo.xhrGet(xhrArgs);
	}

	function formUserData_validate()
	{
		if (dijit.byId('formUserData').validate())
		{
			if (dijit.byId('compradorEmail').value != dijit.byId('compradorCheckEmail').value)
			{
				dijit.byId('compradorCheckEmail_invalidMessage').open();
			}else{
				showLoading();
				dojo.xhrPost({
		        url: '/ajax/libros/carro/form-pagar',
		        sync:true,
		        load: formUserData_Callback,
		        error: formUserData_Error,
		        form: 'formUserData'
		    });
		  }
	  }
		return false;
	}
	
	//return callback
	function formUserData_Callback(data,ioArgs){
		var jsonResult = dojo.fromJson(data);
		hidenLoading();
		if (jsonResult.status == 'ok')
		{
			dijit.byId('formUserData').reset();
			document.location.href = jsonResult.message;
		}else{
			hideCart();
			errorDlg = new dijit.Dialog({title: "Error", content: jsonResult.message});
			errorDlg.show();
		}
	}
	//return error
	function formUserData_Error(data, ioArgs){
		hideCart();
		errorDlg = new dijit.Dialog({title: "Error", content: jsonResult.message});
		errorDlg.show();
	  hidenLoading();
	}