
// ----- WARNING ----- \\
// COPYRIGHTED CONTENT \\
//  COPYRIGHT © NERVA  \\
//   nerva@nerva.ee    \\
// All rights reserved \\
// ------------------- \\

var nerva = (getCookie("registereduser") == "nerva@nerva.ee");

function get_object_left(obj) {
	var x = 0;
	while (obj != null) {
		x += obj.offsetLeft;
		obj = obj.offsetParent;
		}
	return x;
  }

function get_object_top(obj) {
	var y = 0;
	while (obj != null) {
		y += obj.offsetTop;
		obj = obj.offsetParent;
		}
	return y;
  }

function get_object_pos(obj) { // returns rect(left, top, width, height)
	var pos = new Array(0, 0, 0, 0);
	if (obj != null) {
		pos[2] = obj.offsetWidth;
		pos[3] = obj.offsetHeight;
	  }
	while (obj != null) {
		pos[0] += obj.offsetLeft;
		pos[1] += obj.offsetTop;
		obj = obj.offsetParent;
		}
	return pos;
  }

function getElementsByName_IE(tag, name) { // A workaround for IE
	var elem = document.getElementsByTagName(tag);
	var a = new Array();
	for (i = 0, j = 0; i < elem.length; i++) {
    if (elem[i].getAttribute("name") == name) {
			a[j] = elem[i];
			j++;
			}
	  }
	return a;
  }

function getclassparam(obj, paramname) {
	var i = obj.className.indexOf(paramname + "(");
	if (i < 0) return false;
	var j = obj.className.indexOf(")", i);
	if (j < 0) return false;
	return obj.className.substr(i + paramname.length + 1, j - i - paramname.length - 1);
  }

function body_mousemove(e) {
  if (mbo != null) {
    e = e || window.event;
		var i = e.clientX - mbx;
		if (i < 10) i = 10;
		var p = i + "px";
		if (mbo.style.left != p) mbo.style.left = p;
		i = e.clientY - mby;
		if (i < 10) i = 10;
		p = i + "px";
		if (mbo.style.top != p) mbo.style.top = p;
	  e.cancelBubble = true;
	  e.returnValue = false;
		if (!mb_creatures_moved) {
			mb_creatures_moved = true;
		  hide_creatures(mbo);
		  }
	  }
  }

function body_mouseup() {
  if (mbo != null) {
		var o = mbo;
		mbo = null;
		if ((o.className.indexOf("mbarticle") >= 0) && mb_creatures_moved) update_articles_width();
		mb_saveposition(o);
	  }
  }

function hide(o) {
	if (o != null) {
	  o.className = o.className + " hidden";
	  move_creatures(true, o);
	  }
  }

function unhide(o, bringtofront) {
	if (o != null) {
		var i = o.className.indexOf("hidden");
		if (i >= 0) o.className = o.className.substr(0, i) + o.className.substr(i + 6);
		if ((bringtofront != null) && bringtofront) mb_bringtofront(o);
		}
  }

function hideByName(name) {
	var objects = document.getElementsByName(name);
	var i;
	if (objects != null) {
		for (i = 0; i < objects.length; i++) {
			hide(objects[i]);
			}
	  }
  }

function unhideByName(name, bringtofront) {
	var objects = document.getElementsByName(name);
	var i;
	if (objects != null) {
		for (i = 0; i < objects.length; i++) {
			unhide(objects[i], bringtofront);
			}
	  }
  }

function showerror(error) {
	var o = document.getElementById("mb_content_" + mbindex_error);
	if (o != null) {
		o.innerHTML = error;
		unhide(document.getElementById("mb_" + mbindex_error));
		}
  }

function showerrorontop(error) {
	var o = document.getElementById("main_error_on_top");
	if (o != null) {
		o.innerHTML = error;
		unhide(o);
	  }
  }

/* Loading images */

var loadimage_nodes = null;
var loadimage_level = -1;

function loadimage_nextlevel() {
	if (loadimage_level > 16) {
		move_creatures_soon();
		return true;
	  }
	loadimage_level++;
	loadimage_nodes = document.getElementsByName("loadimage" + loadimage_level);
	loadimage_loadnext();
  }

function loadimage_loaded(o) {
	if (o.src.indexOf("pixel.gif") < 0) loadimage_loadnext();
  }

var q_i = -1;
var q_s = "";
var q_c = 0;

function loadimage_loadnext() {
	if ((loadimage_nodes != null) && (loadimage_nodes.length > 0)) {
		var i;
		for (i = 0; i < loadimage_nodes.length; i++) {
			if (loadimage_nodes[i].src.indexOf("pixel.gif") < 0) continue;
			src = getclassparam(loadimage_nodes[i], "src");
			if (src != "") {
				loadimage(loadimage_nodes[i], src, "loadimage_loadnext()");
				return true;
				}
			}
	  }
	// when finished, start over again with a next level:
	loadimage_nextlevel();
  }

function replace_bgreplace() {
	var i;
	var e;
	var src;
	for (i = 0; i <= last_mbindex; i++) {
		e = document.getElementById("bgreplace" + i);
		if (e != null) {
			src = getclassparam(e, "bgreplace");
			if (src != "") e.style.backgroundImage = "url(" + src + ")";
			}
		}
  }

/* Main events */

var body_loaded = false; // for IE8 compatibility

function body_onload() {
	var o = document.getElementById("main_loadingcontent");
	if (o != null) hide(o);
	if (!setCookieVerify("cc", Math.random(), 1, '/')) showerror(getString("require_cookies"));
	refresh_mb_positions(true, false);
	setFocusSoon("login_usr");
	png_ie6_img_all();
	png_ie6_tdbg_all();
	if (ie6) showerrorontop(getString("oldbrowser"));
  replace_bgreplace();
	loadimage_nextlevel();
	body_loaded = true;
  }

function body_resize() {
	if (body_loaded) update_articles_width();
  }

function imghover_mouseover(sender) {
	if (sender != null) {
	  var i = sender.src.lastIndexOf(".");
		if (i > 0) sender.src = sender.src.substr(0, i) + "_hover" + sender.src.substr(i);
	  }
  }

function imghover_mouseout(sender) {
	if (sender != null) {
	  var i = sender.src.lastIndexOf("_hover.");
		if (i > 0) sender.src = sender.src.substr(0, i) + sender.src.substr(i + 6);
	  }
  }

function loadimg(imgid, src) {
  addhtml('<img class="hidden" src="' + src + '" alt="" border="0" onload=\'loadimg_loaded("' + imgid + '", "' + src + '")\'>');
  }

function loadimg_loaded(imgid, src) {
	var o = document.getElementById(imgid);
	if (o != null) o.src = src;
  }

function logo_text_click(logotext, maxid) {
	var s = logotext.src;
	var i = s.indexOf("logo_text_animation_") + 20;
	var j = s.indexOf(".gif");
	var index = (parseInt(s.substr(i, j - 1)) + 1) % (maxid + 1);
	logotext.src = s.substr(0, i) + index + s.substr(j);
  }

/* Contents */

var mbindex_contents = 0;

function show_contents() {
	var o = null;
	disable_comments_candies();
	if (mbindex_contents > 0) {
		o = document.getElementById("mb_" + mbindex_contents);
		if (o != null) {
			unhide(o);
			mb_bringtofront(o);
			setFocusSoon("contentsearch");
			}
	  }
	if (o == null) {
		last_mbindex++;
		mbindex_contents = last_mbindex;
		loadcontent(root + "content/direct.php?&call=main/pagetree|contents&langid=" + langid + "&mbindex=" + last_mbindex, overlay_callback);
		}
	}

function logout() {
	setCookie("ahhaa_ee_user", "", 1, "/");
	window.location.reload();
  }

/* Enter */

function isEnter(e) {
	var keynum = 0;
	if (window.event) { // IE
		keynum = e.keyCode;
		}
	else if (e.which) { // Others
		keynum = e.which;
		}
	return ((keynum == 13) || (keynum == 10) || (keynum == 3));
  }

// Using onEnter:
// onKeyPress=\'return onEnter(event, "any javascript you want to run")\'

function onEnter(e, scriptToEval) {
	if (isEnter(e)) {
	  eval(scriptToEval);
	  return false;
	  }
  return true;
	}

/* Focus */

function setFocus(id) {
	var o = document.getElementById(id);
	if (o != null) o.focus();
  }

function setFocusSoon(id) {
	setTimeout("setFocus('" + id + "')", 100);
  }

