var currRollOver = null;

function mouseX(evt) {if (!evt) evt = window.event; if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;}
function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}

function follow(evt) {
	
	Viewport();
	
	var posLeft = parseInt(mouseX(evt));
	var posTop = parseInt(mouseY(evt));
	
	var mouseFollow = document.getElementById("mouseFollow");
	var popupHeight = getElementHeight(mouseFollow);
	
	if (popupHeight > 0 && (posTop + popupHeight > scrollY + windowY)) {
		posTop = scrollY + windowY - popupHeight - 20;
	}
	
	posLeft += 15;
	posTop += 15;
	
	mouseFollow.style.left = posLeft + 'px';
	mouseFollow.style.top = posTop + 'px';
}

function getElementHeight(el) {
	if (el.currentStyle && el.currentStyle.height && el.currentStyle.height > 0) {
		return el.currentStyle.height;
	} else if (el.offsetHeight && el.offsetHeight > 0) {
		return el.offsetHeight;
	} else {
		return false;	
	}
}

function productRollOver(pid, rolloverEl) {
	$("#mouseFollow")[0].innerHTML = $("#pid_" + pid)[0].innerHTML;
	$("#mouseFollow")[0].style.display = "block";
	currRollOver = rolloverEl;
	$('img[@src$=.png]').pngfix();
}

function productRollOut() {
	$("#mouseFollow")[0].innerHTML = "";
	$("#mouseFollow")[0].style.display = "none";
}

function pageLoaded() {
	var popups = $("#content-grid .product-popup");
	for (var i = 0; i < popups.length; i++) {
		var idSplit = popups[i].id.split("_");
		$("#" + popups[i].id).load("popup.php?pid=" + idSplit[1]);	
	}
}

function Viewport(){
	this.windowY = (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;
	this.scrollY = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop;
	this.pageY = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
}

if (document.getElementById) {
	document.onmousemove = follow;
}
