// Copyright Mihai Bazon, 2002.  All rights reserved.

function removeClass(el, className) {
	if (!(el && el.className)) return;
	var classes = el.className.split(" ");
	var newClasses = new Array;
	for (i = 0; i < classes.length; ++i)
		if (classes[i] != className) newClasses[newClasses.length] = classes[i];
	el.className = newClasses.join(" ");
};

function addClass(el, className) {
	el.className += " " + className;
};

function getHavingClass(cont, cl) {
	for (i = 0; i < cont.childNodes.length; ++i)
		if (cont.childNodes[i].className == cl)
			return cont.childNodes[i];
	return null;
};

function contains(cont, el) {
	if (!el) return true;
	while (el.parentNode && el.parentNode != cont)
		el = el.parentNode;
	return (el.parentNode != null);
};

function isOutside(caller, ev) {
	var cur, rel;
	if (window.event) { // IE
		cur = caller;
		rel = window.event.toElement;
	} else { // Browser
		cur = ev.currentTarget;
		rel = ev.relatedTarget;
	}
	return (cur != rel && !contains(cur, rel));
};

function Position(x, y) {
	this.x = x;
	this.y = y;
};

function getAbsolutePos(el) {
	var res = new Position(el.offsetLeft, el.offsetTop);
	if (el.offsetParent) {
		var tmp = getAbsolutePos(el.offsetParent);
		res.x += tmp.x;
		res.y += tmp.y;
	}
	return res;
};

function relatedId(evt) {
	var related = evt.relatedTarget;
	if(!related) {
		var type = evt.type;
		/* for IE */
		if( type == "mouseover") related = evt.fromElement;
		else if(type == "mouseout") related = evt.toElement;
	}
	for(var i=0;related && i < 3; i++) {
		var id = related.id;
		if( id ) return id;
		related = related.parentNode;
	}
	return false;
};

function showBrief(ev, caller) {
	if (caller.id == relatedId(ev)) return;
	id = caller.id.substr(1);
	style = document.getElementById(id).style;
	var pos = getAbsolutePos(caller);
	style.left = pos.x + 'px';
	style.top = pos.y + caller.offsetHeight + 1 + 'px';
	style.display = 'block';
};

function hideBrief(ev, caller) {
	if (caller.id == relatedId(ev)) return;
	id = caller.id.substr(1);
	if (id == relatedId(ev)) return;
	el = document.getElementById(id);
	el.style.display = 'none';
};

function hideBBrief(ev, caller) {
	if (caller.id == relatedId(ev) || !isOutside(caller, ev)) return;
	caller.style.display = 'none';
};

function int_random(x, y) {
	return Math.round( (x - 0.5) +( ( (y+0.49999) - (x-0.5) ) * Math.random() ) );
};

// all functions here will be executed at <body onload="">
init_document_funcs = new Array;

function init_document() {
	showNavBar();
	var el = document.getElementById('conttoc');
	if (el != null) generate_TOC(el);

	for (var i = 0; i < init_document_funcs.length; ++i) {
		init_document_funcs[i]();
	}
};

function add_init_function(func) {
	init_document_funcs[init_document_funcs.length] = func;
};

function openEMwin() {
	var is_ie = ( (navigator.userAgent.toLowerCase().indexOf("msie") != -1) &&
		      (navigator.userAgent.toLowerCase().indexOf("opera") == -1) );
	if (!is_ie) {
		window.open(
			    'ajudando.htm',
			    '_blank',
			    'toolbar=no,menubar=no,personalbar=no,innerWidth=600,innerHeight=400,scrollbars=no,resizable=no');
	} else {
		window.open(
			    'ajudando.htm',
			    '_blank',
			    'channelmode=no,directories=no,height=400,width=600,location=no,menubar=no,resizable=no,scrollbars=no,toolbar=no');
	}
	return false;
};
