﻿var divToolTip = null;
var spanHeader = null;
var spanDetail = null;
var iCountDot = 0;
var xmlHttp = null;

function showToolTips(referrer, lastDate, provider)
{
	var stRef = referrer.substr(0, 7).toLowerCase();

	if (!divToolTip)
	{
		divToolTip = document.createElement("div");
		divToolTip.style.visibility = "visible";
		divToolTip.style.position = "absolute";
		divToolTip.className = "tooltip";
		
		spanHeader = document.createElement("span");
		divToolTip.appendChild(spanHeader);
		
		divToolTip.appendChild(document.createElement("hr"));
		
		spanDetail = document.createElement("div");
		spanDetail.className = "tooltipdetails";
		divToolTip.appendChild(spanDetail);
		
		var st = document.createElement("p");
		st.appendChild(document.createTextNode("Click on the figura to follow the referred url"));
		st.style.margin = "0px";
		st.style.marginTop = "5px";
		st.style.textAlign = "right";
		
		divToolTip.appendChild(st);

		document.body.appendChild(divToolTip);
	}
	
	spanHeader.innerHTML = "Referred from " + referrer + "<br />On " + lastDate + "<br />Provider: " + provider + "<br />";
	spanDetail.style.textAlign = "center";
	
	if (stRef == "http://"){
		spanDetail.innerHTML = "<img src='Styles/Images/smallload.gif' alt='loading' width='32px' height='16px' /><br />Loading Text";
	
		xmlHttp = getXMLHTTPRequest();
		if (xmlHttp)
		{
			xmlHttp.onreadystatechange = function() {
				if (xmlHttp.readyState == 4)
				{
					if (xmlHttp.status == 200) {
						var sTxt = xmlHttp.responseText;
						
						if (sTxt == "")
						{
							spanDetail.innerHTML = "No Description";
						}
						else
						{
							spanDetail.style.textAlign = "justify";
							spanDetail.innerHTML = xmlHttp.responseText;
						}
					}
					else spanDetail.innerHTML = "No Description";
				}
			}
			xmlHttp.open("GET", "TextSnap.aspx?url=" + encodeURI(referrer), true);
			xmlHttp.send(null);
		}
		else spanDetail.innerHTML = "Not supported";
	}
	else spanDetail.innerHTML = "Bad URL";
}

function getXMLHTTPRequest()
{
	try
	{
		return new XMLHttpRequest();
	}
	catch(err)
	{
		var b=["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP"];
		for(var a=0,c=b.length;a<c;a++)
		{
			try{
				return new ActiveXObject(b[a])
			}
			catch(d) {}
		}
	}
	
	return false;
}

var overFlag = false;

function imgMouseMove(){
	var e = window.event;

	if (divToolTip) {
		divToolTip.style.visibility = "visible";
		divToolTip.style.left = (mouseX + 5) + "px";
		divToolTip.style.top = (mouseY + 25) + "px";
	}
}

function imgMouseOver(referrer, lastDate, provider){
	if (!overFlag)
		showToolTips(referrer, lastDate, provider);

	imgMouseMove();
}

function imgMouseOut(){
	if (divToolTip) divToolTip.style.visibility = "hidden";
}

function clientSizeFilterResult(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result < n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result < n_body)) ? n_body : n_result;
};

function getClientScrollLeft() {
	return clientSizeFilterResult (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
};
function getClientScrollTop() {
	return clientSizeFilterResult (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
};

var IE = document.all?true:false

if (!IE) document.captureEvents(Event.MOUSEMOVE);

var mouseX = 0;
var mouseY = 0;

document.onmousemove = function(e) {
	if (IE)
	{
		mouseX = event.clientX + getClientScrollLeft();
		mouseY = event.clientY + getClientScrollTop();
	} 
	else 
	{  
		mouseX = e.pageX;
		mouseY = e.pageY;
	}  

	if (mouseX < 0) {mouseX = 0;}
	if (mouseY < 0) {mouseY = 0;}  
	
	return true;
}
