/* Footnotes Object */
function Footnotes() {
	this.arrFootnotes = getFootnotes();
	this.showFootnote = showFootnote;
	this.showFootnoteLeft = showFootnoteLeft;
	this.showFootnoteBig = showFootnoteBig;	
	this.hideFootnote = hideFootnote;
	
	

	function showFootnote(footnoteID, footnoteObject) {
		
		//alert(footnoteID+'');
		if (thisFootnote = this.arrFootnotes["f"+footnoteID]) {
			//alert(thisFootnote);
			/* Create the tooltip */
			var footnoteBox = document.createElement('div');
			var posX = 0;
			var posY = 0;
			
			footnoteBox.id = "sonyFootnotes";
			footnoteBox.className = "footnoteDefinition";
			footnoteBox.innerHTML = thisFootnote[1];
			footnoteBox.style.position = "absolute";
			document.body.appendChild(footnoteBox);
			if (findPosX(footnoteObject) < 540)
			{
				posX = (findPosX(footnoteObject) + 20);
				posY = (findPosY(footnoteObject) + 20);
			}
			else
			{
				posX = (findPosX(footnoteObject) - 200);
				posY = (findPosY(footnoteObject) + 20);
			}			
			if (posX < 0) posX = 0;
			if (posY < 0) posY = 0;
			footnoteBox.style.left = posX + "px";
			footnoteBox.style.top = posY + "px";

			/* Add mouse out event */
			footnoteObject.onmouseout = footnotes.hideFootnote;
		}
	}
	
	function showFootnoteLeft(footnoteID, footnoteObject) {
		
		//alert(footnoteID+'');
		if (thisFootnote = this.arrFootnotes["f"+footnoteID]) {
			//alert(thisFootnote);
			/* Create the tooltip */
			var footnoteBox = document.createElement('div');
			var posX = 0;
			var posY = 0;
			footnoteBox.id = "sonyFootnotes";
			footnoteBox.className = "footnoteDefinition";
			footnoteBox.innerHTML = thisFootnote[1];
			footnoteBox.style.position = "absolute";
			document.body.appendChild(footnoteBox);
			posX = (findPosX(footnoteObject) - 210);
			posY = (findPosY(footnoteObject) - 25);
			if (posX < 0) posX = 0;
			if (posY < 0) posY = 0;
			footnoteBox.style.left = posX + "px";
			footnoteBox.style.top = posY + "px";

			/* Add mouse out event */
			footnoteObject.onmouseout = footnotes.hideFootnote;
		}
	}

	function showFootnoteBig(footnoteID, footnoteObject) {		
		//alert(footnoteID+'');
		if (thisFootnote = this.arrFootnotes["f"+footnoteID]) {
			//alert(thisFootnote);
			/* Create the tooltip */
			var footnoteBox = document.createElement('div');
			var posX = 0;
			var posY = 0;
			
			footnoteBox.id = "sonyFootnotes";
			footnoteBox.className = "footnoteDefinitionBig";
			footnoteBox.innerHTML = thisFootnote[1];
			footnoteBox.style.position = "absolute";
			document.body.appendChild(footnoteBox);
			if (findPosX(footnoteObject) < 540)
			{
				posX = (findPosX(footnoteObject) + 20);
				posY = (findPosY(footnoteObject) + 20);
			}
			else
			{
				posX = (findPosX(footnoteObject) - 300);
				posY = (findPosY(footnoteObject) + 20);
			}			
			if (posX < 0) posX = 0;
			if (posY < 0) posY = 0;
			footnoteBox.style.left = posX + "px";
			footnoteBox.style.top = posY + "px";

			/* Add mouse out event */
			footnoteObject.onmouseout = footnotes.hideFootnote;
		}
	}
	
	function hideFootnote() {
		if (thisFootnote = document.getElementById('sonyFootnotes')) {
			thisFootnote.parentNode.removeChild(thisFootnote);
		}
	}
}



/* Find position of DOM object */
/* http://www.quirksmode.org/js/findpos.html */
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	} else {
		if (obj.x) {
			curleft += obj.x;
		}
	}
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else {
		if (obj.y) {
			curtop += obj.y;
		}
	}
	return curtop;
}


function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

