var mouse = {x: 0, y: 0};
var pTimeoutId = 0;
var lastPopup = '';
var lastRef = null;

function getPos(ref) {
	var x = y = 0;
	if (ref.offsetParent) {
		x = ref.offsetLeft;
		y = ref.offsetTop;
		while (ref = ref.offsetParent) {
			x += ref.offsetLeft;
			y += ref.offsetTop;
		}
	}
	return {x:x, y:y};
}

function showPopup(ref, popup) {
	if (pTimeoutId != 0) {
		clearTimeout(pTimeoutId);
		pTimeoutId = 0;
		if (lastPopup != '') {
			document.getElementById(lastPopup).style.display = 'none';
			lastRef.style.backgroundColor = '';
		}
		if (lastRef) {
			lastRef.style.backgroundColor = '';
			lastRef = null;
		}
	}
	ref.style.backgroundColor = '#3D5D76';
	document.getElementById(popup).style.left = getPos(ref).x + ref.offsetWidth;
	document.getElementById(popup).style.top = getPos(ref).y;
	document.getElementById(popup).style.display = 'block';
	lastPopup = popup;
	lastRef = ref;
}

function _hidePopup(popup) {
	p_left = document.getElementById(popup).offsetLeft;
	p_right = p_left + document.getElementById(popup).offsetWidth;
	p_top = document.getElementById(popup).offsetTop;
	p_bottom = p_top + document.getElementById(popup).offsetHeight;
	if (mouse.x < p_left || mouse.x > p_right || mouse.y < p_top || mouse.y > p_bottom) {
		document.getElementById(popup).style.display = 'none';
		if (lastRef) {
			lastRef.style.backgroundColor = '';
			lastRef = null;
		}
		lastPopup = '';
	}
	pTimeoutId = 0;
}

function hidePopup(popup, timeout) {
	_popup = popup;
	if (pTimeoutId == 0) pTimeoutId = setTimeout('_hidePopup(_popup)', timeout);
}

function getMouseXY(e)
{ 
	e = e || window.event;
	if (e.pageX || e.pageY) {
		mouse.x = e.pageX;
		mouse.y = e.pageY;
	} else if (e.clientX || e.clientY) {
		mouse.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		mouse.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
}

document.onmousemove = getMouseXY;

function openImage(id, width, height, ref) {
	var w = window.open('show.asp?id=' + id, 'moonprojects_image_' + id, 'scrollbars=1,resizable=1,left=0,top=0,width=' + width + ',height=' + height);
	if (w) {
		w.focus();
		if (ref) ref.className = 'displayed';
	}
	return !w;
}

function insertSmile(smile) {
	var e = document.getElementById('comment');
	var scrollLeft = e.scrollLeft;
	var scrollTop = e.scrollTop;
	e.focus();
	if (document.selection) {
		var sel = document.selection.createRange();
		sel.text = smile;
	} else if (e.selectionStart || e.selectionStart == '0') {
		var selStart = e.selectionStart;
		var selEnd = e.selectionEnd;
		e.value = e.value.substring(0, selStart) + smile + e.value.substring(selEnd, e.value.length);
		e.selectionStart = selStart + smile.length;
		e.selectionEnd = e.selectionStart;
	} else {
		e.value += smile;
	}
	e.scrollLeft = scrollLeft;
	e.scrollTop = scrollTop;
}

var progressBar = null;
var elComment = null;

function createProgressBar() {
	if (!progressBar) {
		elComment = document.getElementById("comment");
		if (elComment) {
			progressBar = document.createElement("div");
			progressBar.style.borderLeft = "0px #A0A0E0 solid";
			progressBar.style.overflow = "hidden";
			progressBar.style.height = "1px";
			if (elComment.nextSibling)
				elComment.parentNode.insertBefore(progressBar, elComment.nextSibling);
			else
				elComment.parentNode.appendChild(progressBar);
			setInterval("setProgressBar();", 200);
		}
	}
}

function setProgressBar() {
	if (progressBar) {
		var length = elComment.value.length;
		progressBar.style.borderLeftColor = (length <= 1000 ? "#A0A0E0": "#FF4400");
		var progress = Math.round(elComment.offsetWidth * Math.min(length / 1000, 1));
		progressBar.style.borderLeftWidth = progress + "px";
	}
}

var scrollTop = 0;

function scrollBackground() {
	var newTop = Math.round((document.documentElement.scrollTop || document.body.scrollTop) / 16);
	if (newTop != scrollTop) {
		document.body.style.backgroundPosition = 'center ' + newTop * -1 + 'px';
		scrollTop = newTop;
	}
}

if (window.addEventListener) {
	window.addEventListener('scroll', scrollBackground, false);
} else if (window.attachEvent) {
	window.attachEvent('onscroll', scrollBackground);
} else {
	window.onscroll = function() {
		scrollBackground();
	};
}