var linktrack="/incluidos/capturarClick.php4?";
var url_web='.20minutos.es/';

//Limpia una cadena
function limpiarParametro(parametro)
{
	parametro=parametro.replace(/#/g,'');
	return parametro;
}

//Dada una URL, te devuelve un código que significa el tipo de destino
function parsearUrl(href)
{
	var trozos_url=href.split(url_web);
	var tipoDestino='';

	if((trozos_url[1]!='') && (trozos_url[1]!=undefined))
	{
		if(trozos_url[1].indexOf('comentarios')!=(-1) || trozos_url[1].indexOf('nuevo_comentario')!=(-1))
		{
			tipoDestino='2'; //Comentarios
		}
		else
		{
			var plantillas = trozos_url[1].split('/');

			switch(plantillas[0])
			{
				case 'noticia': tipoDestino='1'; break;//Noticia
				case 'comentarios': tipoDestino='2'; break;//Comentarios
				case 'galeria': tipoDestino='3'; break;//Galeria
				case 'columna': tipoDestino='4'; break;//Columna
				case 'carta': tipoDestino='5'; break;//Carta
				case 'vineta': tipoDestino='7'; break;//Vineta
				case 'videos':
				case 'video': tipoDestino='8'; break;//Video
				case 'encuestas':
				case 'encuesta': tipoDestino='11'; break;//Encuesta
				case 'especial': tipoDestino='12'; break;//Especial
				case 'trivial': tipoDestino='13'; break;//Trivial
				case '#': tipoDestino='0'; break;//Portada
				
				default: 	if(trozos_url[0]!='' && trozos_url[0].indexOf('http://blogs')!=(-1)) tipoDestino='6'; //Blog
							else tipoDestino='14';//Subportada
			}
		}
	}
	else tipoDestino='9';//Externa

	return tipoDestino;
}

function compruebaEnlace(e)
{
 	var lt_target = null;
 	var x_pos = null;
 	var y_pos = null;
 	
	if(e != null)
	{
		lt_target = e.target;
		x_pos = e.pageX;
		y_pos = e.pageY;
		if(lt_target == null || lt_target == undefined)
		{
			lt_target = window.event.srcElement;
			if(typeof(document.documentElement.scrollLeft) != 'undefined') x_pos = document.documentElement.scrollLeft + window.event.clientX;
			if(typeof(document.documentElement.scrollTop) != 'undefined') y_pos = document.documentElement.scrollTop + window.event.clientY;	
		}
	}
	else
	{
		lt_target = window.event.srcElement;
		if(typeof(document.documentElement.scrollLeft) != 'undefined') x_pos = document.documentElement.scrollLeft + window.event.clientX;
		if(typeof(document.documentElement.scrollTop) != 'undefined') y_pos = document.documentElement.scrollTop + window.event.clientY;	
	}

	// No podemos hacer nada cuando el objeto no existe
	if(lt_target==null) return true;

	// Si no es un <A>, <IMG>, <EMBED> ó <A> con <STRONG> no hacemos nada
	if(lt_target.nodeName.toUpperCase() != 'A' && lt_target.nodeName.toUpperCase() != 'IMG' && lt_target.nodeName.toUpperCase() != 'EMBED' &&
		(lt_target.nodeName.toUpperCase() != 'STRONG' || lt_target.parentNode.nodeName.toUpperCase() != 'A') )
	return true;
	
	// Descartamos elementos con clase "notrack"
	if(lt_target.className.indexOf('notrack') != -1)
	    return true;

	/* Buscar en 5 niveles la etiqueta span que tenga idSeccion distinto de null */
	var nodoPadre= lt_target;
	if (lt_target.nodeName.toUpperCase() == 'STRONG')
	{ // Si tenemos un enlace con una etiqueta strong, tenemos que cambiar al nodo hijo para que pille bien el enlace
		 nodoPadre = lt_target.parentNode;
	}
	
	var lt_newurl = nodoPadre.getAttribute('sec');
	var nivel=0;
	var tipoEnlace='';
	var tipoDestino='';
	descripcion='';
	var eventOnClick='';
	do
	{
		a=nodoPadre;//hijo
		if(a.nodeName.toUpperCase()=="IMG") //Si el elemento es un IMG sacamos el href del padre
		{
			href=a.parentNode.href;
			descripcion=a.alt;
			tipoEnlace='3'
			if(descripcion=='') descripcion='No alt';
		}
		else
		{
			if(a.href!=undefined) //Si no es IMG sacamos su propio href
			{
				href=a.href;
				eventOnClick=a.onclick;
				if(descripcion=='')
				{
					descripcion=a.innerHTML;
					if(a.className=="clicks_titular") tipoEnlace='2'; //El enlace es un titular
			  		else tipoEnlace='1'; //Es un enlace general
			  	}
		  	}
		}
		nodoPadre=a.parentNode;//padre
		try {
			idSeccion = nodoPadre.getAttribute('sec');
			idZona = nodoPadre.getAttribute('zon');
			idElem = nodoPadre.getAttribute('elem');
		} catch(err) {
			href = ''; descripcion = ''; idSeccion = ''; idZona = ''; idElem = '';
			break;
		}
		nivel++;
	}
	while(idSeccion==null && nivel<10)

	var tipoDestino='';

	if(href!='') tipoDestino=parsearUrl(limpiarParametro(href)); //Obtenemos el tipo de destino a través de la URL
	if(descripcion!='') 
	{
		// Quitamos la etiquetas strong que nos podemos encontrar en algunos enlaces
		descripcion=descripcion.replace("<strong>", "");
		descripcion=descripcion.replace("</strong>", "");
		descripcion=descripcion.substr(0,32);//Recortamos a 32 caracteres la descripcion		
	}		

	//Obtener la respuesta
	var respuesta=true;
	if(eventOnClick != undefined && eventOnClick != null)
	{
  		if(eventOnClick.toString().indexOf('return false') != -1) respuesta = false;
	}

	//Si los parámetros que necesitamos mandar estan listos se procede al envio de información al servidor
	if(idSeccion!='' && idZona!='' && idElem!='' && tipoEnlace!='' && tipoDestino!='' && href!='' && descripcion!='')
	{	
		var parametro1=idSeccion+'_'+idZona+'_'+idElem+'_'+tipoEnlace+'_'+tipoDestino;//
		var parametro2=limpiarParametro(href);//destino
		var parametro3=limpiarParametro(descripcion);//descripcion
		
		if(idSeccion == '1' && x_pos != null && y_pos != null) coord = "&coord="+x_pos+","+y_pos;
		else coord = '';

		// Llamada al servidor generando una imagen al vuelo
		var lt_newurl=linktrack+"parametro1="+parametro1+"&parametro2="+parametro2+"&parametro3="+parametro3+coord;
		try
		{
	  		var lt_newimg = new Image();
	  		var fecha=new Date();
			lt_newurl=lt_newurl+"&parametro4="+fecha;
		  	lt_newimg.src =  lt_newurl;
  		}
  		catch(err)
  		{
			return respuesta;
		}
	}

	// Introducimos una pausa para un refresh
	var lt_start = new Date().getTime();
	var lt_stop = lt_start + 100;
	while(lt_start<lt_stop)
	{
		lt_start = new Date().getTime();
	}

	return respuesta;

}

function clickTracking(e)
{
	try
	{
		return compruebaEnlace(e);
	}
	catch(err)
	{
		//No se ha podido contabilizar el click, pero seguimos con la acción asociada
		return true;
	}
}

// Activamos el control del clickTracking en todo el documento
document.onclick=clickTracking;
