var OP = (navigator.userAgent.indexOf('Opera') != -1) ? true : false;
var IE = (navigator.userAgent.indexOf('MSIE') != -1 && !OP) ? true : false;
var GK = (navigator.userAgent.indexOf('Gecko') != -1) ? true : false;
var NN4 = document.layers;
var DOM = document.getElementById;
var hintActive, mouseX = mouseY = winX = winY = scrTop = hWidth = hHeight = 0;
var cursorDistance = 5;
var divHint;
var sdivHint;

var clickX=clickY=offX=offY=targetH=0;
var targetName = '';
document.onclick = function(e) {
	if (IE) e = event;
	var t = ((GK||NN4)?e.target:event.srcElement);
	if (t.id == 'activity_img' || t.id == 'activity_img2' || t.id == 'activity_name' || t.id == 'activity_name2' || t.id == 'activity_name3') {
		targetName = t.id;
		if (t.style.height) {
			targetH = parseInt(t.style.height);
		} else if (t.height) {
			targetH = parseInt(t.height);
		} else {
			targetH = 16;
		}
		if (IE) {
			var oCanvas = document.getElementsByTagName(
	            (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
			)[0];
			clickX = e.clientX + oCanvas.scrollLeft;
			clickY = e.clientY + oCanvas.scrollTop;
			offX = e.offsetX+3;
			offY = e.offsetY+2;
			targetH+=2;
		} else {
			clickX = e.pageX;
			clickY = e.pageY;
			//offX = e.offsetX;
			//offY = e.offsetY;
			var totalOffsetLeft = totalOffsetTop = 0;
			var el = t;
			while (el.offsetParent) {
				totalOffsetLeft += el.offsetLeft;
				totalOffsetTop += el.offsetTop;
				el = el.offsetParent;
			}
			offX = e.pageX - totalOffsetLeft;
			offY = e.pageY - totalOffsetTop-6;
		}
	
		if (clickX < 0) clickX = 0;
		if (clickY < 0) clickY = 0;
		
		if (targetName == 'activity_name3') {
			if (activityPopup2 == 1) {				
				showActivityPopupHandler(2);	
			}			
		}
		else {
			if (activityPopup == 1) {				
				showActivityPopupHandler();	
			}
			else {
				changeAddObjectSelectElementsVisibility(1);
			}
		}		
	}
	if ((t.id && t.id.substring(0,9) == 'activity_') ||
		(t.parentNode && t.parentNode.id && t.parentNode.id.substring(0,9) == 'activity_') ||
		(t.parentNode && t.parentNode.parentNode && t.parentNode.parentNode.id && t.parentNode.parentNode.id.substring(0,9) == 'activity_')
	) {
		
	} else {
		if (targetName == 'activity_name3') {
			hideActivityPopup(2);
		}
		else {
			hideActivityPopup();
		}		
	}
}

document.onmousemove = function(e) {
	if (IE) e = event;
	var t = ((GK||NN4)?e.target:event.srcElement);
	if (t.id.match(/hint_\d+/) != -1) {
		getMouseXY(e);
	}
}
document.onmouseover = function(e) {
	if (IE) e = event;
	var t = ((GK||NN4)?e.target:event.srcElement);
	if (t.id.match(/hint_\d+/) != -1) {
		var _m = (t.id.match(/hint_(\d+)/));
		if (_m) {
			hintIt(parseInt(_m[1]));
		}
	}
	if (t.id == 'activity_img'||t.id == 'activity_name'
	||t.id == 'activity_img2'||t.id == 'activity_name2'||t.id == 'activity_name3') t.style.cursor = (IE)?'HAND':'POINTER';
}
document.onmouseout = function(e) {
	if (IE) e = event;
	var t = ((GK||NN4)?e.target:event.srcElement);
	if (t.id.match(/hint_\d+/) != -1) {
		hintIt(0);
	}
	if (t.id == 'activity_img'||t.id == 'activity_name') t.style.cursor = 'DEFAULT';
}

function initDiv() {
	if (DOM) {
		divHint = document.getElementById('div_hint');
		if (divHint) sdivHint = divHint.style;
	} else if (IE) {
		divHint = document.all.div_hint;
		if (divHint) sdivHint = divHint.style;
	} else if (NN4) {
		divHint = document.div_hint;
		sdivHint = divHint;
	}
}

function getMouseXY(e) {
	if (document.body && document.body.scrollTop >= 0) scrTop = document.body.scrollTop;
	else if (window.pageYOffset >= 0) scrTop = window.pageYOffset;

	if (IE) {
		var oCanvas = document.getElementsByTagName(
            (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
		)[0];
		mouseX = e.clientX + oCanvas.scrollLeft;
		mouseY = e.clientY + oCanvas.scrollTop;
	} else {
		mouseX = e.pageX;
		mouseY = e.pageY;
	}

	if (mouseX < 0) mouseX = 0;
	if (mouseY < 0) mouseY = 0;

	if (GK || NN4) {
		winX = window.innerWidth - 25;
		winY = window.innerHeight;
	} else if(DOM) {
		winX = document.body.offsetWidth - 25;
		winY = document.body.offsetHeight;
	} else {
		winX = screen.width - 25;
		winY = screen.height;
	}
	
	if (hintActive) moveHint();
}

function hideHint() {
	initDiv();
	if (sdivHint) sdivHint.visibility = 'hidden';
	hintActive = 0;
}

function showHint(text) {
	initDiv();
	
	if (!hintActive) {
		var t = '<table border="0" cellspacing="0" cellpadding="0" width="200"><tr>' +
			'<td align="justify" style="padding:5px;border:1px solid #999999;background-color:#FFFFFF;">'+text+'</td></tr></table>';
		
		if(NN4) {
			sdivHint.document.write(t);
			sdivHint.document.close();
		} else {
			divHint.innerHTML = t;
		}
	}
	
	if (DOM) hHeight = divHint.offsetHeight;
	else if (IE) hHeight = sdivHint.pixelHeight;
	else if (NN4) hHeight = divHint.clip.bottom;
	
	moveHint();
	
	if (!hintActive) {
		sdivHint.visibility = 'visible';
	}
	
	hintActive = 1;
}

function moveHint() {
	initDiv();
	var left = mouseX;
	var top = mouseY;

	if (left + hWidth + cursorDistance > winX) left -= hWidth + cursorDistance;
	else left += cursorDistance;

	if (top + hHeight + cursorDistance - scrTop > winY) top -= hHeight;
	else top += cursorDistance;

	sdivHint.left = (left+10)+'px';
	sdivHint.top = top+'px';
}

var loadedHints = new Array();
function hintIt(hint_id){
	if (hint_id == 0) {
		hideHint();
		return;
	}
	if (loadedHints[hint_id]) {
		showHint(loadedHints[hint_id]);
		return;
	}
	//
	document.getElementById('form_hint').elements['hint_id'].value = hint_id;
	var req = new JsHttpRequest();
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			//document.getElementById('debug').innerHTML = req.responseText; 
			if (req.responseJS.ok == 1) {
				loadedHints[hint_id] = req.responseJS.text;
				showHint(req.responseJS.text);
			} else {
				
			}
		}
	}
	req.open(null, '/loader.php', true);
	req.send( { 'form': document.getElementById('form_hint') } ); 
}
