$(function()
{
	DY_AJAX				= {};

	DY_AJAX.target		= $();

	// CONFIGURACION PARA $.ajaxSetup()
	DY_AJAX.ajaxSetup	= {
		// TIPO DE PEITCION
		type		: 'post',
		// TIPO DE DATOS RECIBIDOS
		dataType	: 'xml',
		// TIMEOUT DE LA PETICION
		timeout		: 10000
	};

	// Cargamos nuestra configuración ajax general
	$.ajaxSetup(DY_AJAX.ajaxSetup);

	DY_AJAX.target.ajaxStart(function(e)
	{
		// tu código... (por ejemplo, mostrar la típica imagen de loading)
	});

	DY_AJAX.target.ajaxSend(function(e, r, s)
	{
		// tu código... (por ejemplo, indicar que los datos se están mandando)
	});


	DY_AJAX.target.ajaxSuccess(function(e, r, s)
	{
		// tu código... (por ejemplo, indicar que ya tenemos respuesta a la peticion)
	});

	DY_AJAX.target.ajaxError(function(e, r, s, err)
	{
		// tu código...  (por ejemplo, limpiar cualquier indicador de petición activa y avisar del error)
		// NOTA: si el dataType indicado es distinto al recibido salta este evento
		//		 y no ajaxSucces aunque realmente la petición se haya realizado con éxito
		/*var d = document.createElement('div');
		$(d).css({
			position: 'absolute',
			width: '200px',
			padding:'20px',
			top: '50px',
			border: '1px solid #777',
			fontSize: '2em',
			fontWeight: 'bold',
			textAlign: 'center',
			left: (($(window).width()/2) - 100) + 'px',
			background: '#fff'
		});
		d.innerHTML='<p>Ajax error: ' + err + '</p>';
		document.body.appendChild(d);
		setTimeout(function(){
			$(d).fadeOut(500,function(){$(this).remove()})
		},1000)*/
		//alert('Ajax error: ' + err);
	});

	DY_AJAX.target.ajaxComplete(function(e, r, s)
	{
		// tu código... (por ejemplo, indicar que la petición se completo y se proceso)
	});

	DY_AJAX.target.ajaxStop(function(e)
	{
		// tu código... (por ejemplo, esconder la imagen de loading lanzada en ajaxStart)
	});

})
