/*
	Created by: Greg Hacic
	Last Update: 2 April 2009 by Greg H
	Questions?: greg@interactiveties.com
	Copyright (c) 2009 Interactive Ties LLC
*/
var mouseOffset;
var iMouseDown = false; //represents the current mouse button state: up or down
var lMouseState = false; //represents the previous mouse button state so that we can check for button clicks and button releases
var curTarget; //holds the target div location
var lastTarget; //holds the orginating target div location
var rootParent; //parent div
var rootSibling; //sibling divs

Number.prototype.NaN0 = function() { return isNaN(this)?0:this; }

//gets the position of an element on the page
function getPosition(e) {
	var left = 0;
	var top  = 0;
	while (e.offsetParent) {
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e = e.offsetParent;
	}
	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	return {x:left, y:top};
}

//gets the actual mouse coordinates of the cursor
function mouseCoords(ev) {
	if (ev.pageX || ev.pageY) {
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	}
}

//determines offset for scroll bars
function getMouseOffset(target, ev) {
	ev = ev || window.event;
	var docPos = getPosition(target);
	var mousePos = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function mouseUp(ev) {
	curTarget  = null;
	iMouseDown = false;
}

function mouseMove(ev){
	ev = ev || window.event;
	var target   = ev.target || ev.srcElement; //set the target to whatever item the mouse is currently on Firefox uses event.target here, MSIE uses event.srcElement
	var mousePos = mouseCoords(ev);
	lMouseState = iMouseDown; //track the current mouse state so we can compare against it next time
}

function mouseDown(ev) {
	ev = ev || window.event;
	var target = ev.target || ev.srcElement;
	iMouseDown = true;
	if (target.getAttribute("id")) {
		var mousePos = mouseCoords(ev);
		mouseOffset = getMouseOffset(target, ev);
		var xPos = mousePos.x - mouseOffset.x;
		var yPos = mousePos.y - mouseOffset.y;
		//var side = "right";
		//if (xPos>415) {
		//	side = "left";
		//}
		if (target.getAttribute("id") == "viewScreenShots") {
			displaySS(xPos,yPos);
		} else if (target.getAttribute("id").substring(0,10) != "screenShot") {
			closeSS();
		} else {
			var doNothing = true;
		}
	} else {
		closeSS();
	}
}

//real-time tracking of mouse events
document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup = mouseUp;

function displaySS(tempX,tempY) {
	tempY = tempY - 200; //adjust the vertical alignment
	tempX = tempX - 290;
	document.getElementById("screenShotViewer").style.top = tempY+"px"; //set top location of DIV
	document.getElementById("screenShotViewer").style.left = tempX+"px"; //set left location of DIV
	document.getElementById("screenShotViewer").style.visibility = "Visible"; //set DIV to visible
}

function closeSS() {
	document.getElementById("screenShotViewer").style.visibility = "hidden";
}

function showNext(num) {
	document.getElementById("screenShotTitle").innerHTML = imageArray[num*1+1][0];
	document.getElementById("screenShotImage").innerHTML = imageArray[num*1+1][1];
	document.getElementById("screenShotNumber").innerHTML = imageArray[num*1+1][2];
	document.getElementById("screenShotNav").innerHTML = imageArray[num*1+1][3];
	return;
}

function showPrev(num) {
	document.getElementById("screenShotTitle").innerHTML = imageArray[num*1-1][0];
	document.getElementById("screenShotImage").innerHTML = imageArray[num*1-1][1];
	document.getElementById("screenShotNumber").innerHTML = imageArray[num*1-1][2];
	document.getElementById("screenShotNav").innerHTML = imageArray[num*1-1][3];
	return;
}