function getElement(obj) {
  
	if (document.getElementById)
		return (document.getElementById(obj));
	else if (document.all) 
		return document.all(obj);
        else if (seekLayer) 
            return seekLayer(document, obj);

    return null;
}

function getIEVersionNumber() {

	var ua = navigator.userAgent;
	var offcet = ua.indexOf("MSIE ");
	if (offcet == -1)
		return true;
	else
		return parseFloat(ua.substring(offcet + 5, ua.indexOf(";", offcet)));

}

function _isBrowser(par) {

	var ua = navigator.userAgent;
	var offcet = ua.indexOf(par);
	if (offcet == -1)
		return false;

	return true;
}

function isMozilla() {

	return _isBrowser("Gecko");
}

function isOpera() {

	return _isBrowser("Opera");
}

function getOperaVersion() {

	var ua = navigator.userAgent;
	var offcet = ua.indexOf("Opera");
	if (offcet == -1)
		return true;
	else
		return parseFloat(ua.substring(offcet + 6, ua.indexOf("(", offcet)));	

}

function addEvent(obj,type,fn) {
	if (obj.addEventListener) obj.addEventListener(type,fn,false);
	else if (obj.attachEvent)	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() {obj["e"+type+fn](window.event);}
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}

function removeEvent(obj,type,fn) {
	if (obj.removeEventListener) obj.removeEventListener(type,fn,false);
	else if (obj.detachEvent) {
		obj.detachEvent("on"+type, obj[type+fn]);
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}


var oldClassName;

function getParent(el) {

	return ((el.parentElement) ? el.parentElement : ((el.parentNode) ? el.parentNode : null));

}

function returnElement(el) {

var parent = getParent(el);
var parentOfParent = getParent(parent);

if ((el.tagName.toLowerCase() == "a") || (el.tagName.toLowerCase() == "p"))
	return parentOfParent;
else
if (el.tagName.toLowerCase() == "td")
	return parent;
else
	return el;
}

function getElementFromEvent(evt) {
var evt=(evt)?evt:((window.event)?event:null);
if(evt){var to=(evt.target)?evt.target:
((evt.srcElement)?evt.srcElement:
((evt.currentTarget)?evt.currentTarget:null));
return to;
}
return null;
}

function hoverOut(evt) {
var to = getElementFromEvent(evt);
if(to){

	el = returnElement(to); 
	el.className = oldClassName;
	
}

}


function hoverOver(evt) {
var to = getElementFromEvent(evt);
if (to) {

	el = returnElement(to);
	oldClassName = el.className;
	el.className = oldClassName + 'hv';
}

}

function onClick(evt) {

var to = getElementFromEvent(evt);

if (to) {
	if ((to.tagName.toLowerCase() == "a") || (to.tagName.toLowerCase() == "img"))
		return;
	var add = '';
	var parent = returnElement(to);

	//oldClassName = parent.className;
	//parent.className = oldClassName + 'hv';

	if (!parent)
		return;

	// mod_rewrite
	var baseHref = (typeof(base) != 'undefined') ? base : '';
	var del = (baseHref == '') ? '&' : '/';
	var is = (baseHref == '') ? '=' : '/';
	var quest = (baseHref == '') ? '?' : '';

	var ids = parent.id.toString().substr(0, 150);
	var chapter = ids.substring(ids.indexOf('c') + 1, ids.indexOf('i'));

	var car = ids.indexOf('f');
	var car_ = '';
	var vac_ = '';
	if (car != -1) {
		var car_ = del + 'f' + is + ids.substring(ids.indexOf('f') + 1, ids.length + 1);
		var id = ids.substring(ids.indexOf('i') + 1, ids.indexOf('f'));
	}
	else {
		var vac = ids.indexOf('v');
		if (vac != -1) {
			var vac_ = del + 'v' + is + ids.substring(ids.indexOf('v') + 1, ids.length + 1);
			var id = ids.substring(ids.indexOf('i') + 1, ids.indexOf('v'));
		} else
			var id = ids.substring(ids.indexOf('i') + 1, ids.length + 1);
	}

	if (!id)
		return;

	newWindow = window.open(baseHref + quest + 'c' + is + chapter + del + 'i' + is + id + car_ + vac_);
	newWindow.focus();
}

}

function tableHover() {
		var el = getElement("mtab");

		if (el) {
		var trs = el.getElementsByTagName('tr');
		for (var i = 0; i < trs.length; i++) {

			if (trs[i].className == 'thd') 
				continue;
			if ((getIEVersionNumber() > 5.5) || (getIEVersionNumber() == true))
				trs[i].style.cursor = 'pointer';
			else
				trs[i].style.cursor = 'hand';

			addEvent(trs[i],'mouseover', hoverOver);
			addEvent(trs[i],'mouseout', hoverOut);
			addEvent(trs[i],'click', onClick);
				
		}
}}


function loadEl(path) {

	var cont = getElement('enlarge');
	var el = getElement('zedane');
	temp = new Image();
	temp.src = path;
	var tag = (isOpera()) ? ' !important' : '';
	if (!temp.complete) {
		el.src = 'i/wait.gif';
		el.style.border = '1px solid #fff';
		el.style.width = el.style.height = '20px' + tag;
		temp.onload = function () {var el = getElement('zedane'); el.src = path; 
					el.style.border = '1px solid gray';
					el.style.width = '390px' + tag;
					el.style.height = '292px' + tag;
				}
	} else { el.src = path;	

		el.style.width = '390px' + tag;
		el.style.height = '292px' + tag;
	}
	

	return false;
}

function show(id) {

	var el = getElement(id);
	if (!el)
		return true;

	if (isOpera()) {

		if (getOperaVersion() !== true && getOperaVersion() < 9) {

			if (id.toString().indexOf('c') == -1) {
				var bool = (el.style.display == "none" || el.style.display == "");
				el.style.display = (bool) ? "block !important" : "none !important";
			}
			else {
				var bool = (el.style.display == "block" || el.style.display == "");
				el.style.display = (bool) ? "none !important" : "block !important";
			}

			return false;
		}

	}

	if (id.toString().indexOf('c') == -1) {
		var bool = (el.style.display == "none" || el.style.display == "");
		el.style.display = (bool) ? "block" : "none";
	}
	else {
		var bool = (el.style.display == "block" || el.style.display == "");
		el.style.display = (bool) ? "none" : "block";
	}



	return false;

}


function showEl(id) {
	var el = getElement(id);
	if (el) {
		el.style.display = 'block';
		return el;
	}
}

function hideEl(id) {
	var el = getElement(id);
	if (el) 
		el.style.display = 'none';
}

function fillElement(id, text, hide_) {

	var el = showEl(id);
	if (el) {
		el.innerHTML = text;
		if (hide_) {
			hideEl(hide_);	
		}
	}

}

var storedHTML;

function wait(id, title) {

	var el = showEl(id);
	if (el) {
		storedHTML = el.innerHTML;

		el.innerHTML = 
		"<div id='wait'><p><img src='i/wait.gif' alt=''></p><p>" + title + "</p></div>";
	}
}

function restoreElement(par) {

		var restEl = getElement(par);
		if (restEl)
			restEl.innerHTML = storedHTML;
}

function error(par, restore, refresh, show_, hide_) {

	alert(par);
	if (restore) {
		restoreElement(restore);
	}
	if (refresh)
		location.href = refresh;
	if (show_) 
		showEl(show_);

	if (hide_)
		hideEl(hide_);
}

function getRandom() { 

	var min_ = 1;
	var max_ = 10000;

	max_++;

	var range = max_ - min_;
	var n = Math.floor(Math.random()*range) + min_;

	return n;
}

function makeRequest(url, params) {

	var sUrl = url;
        for (name in params) {
		if (sUrl.indexOf("?") > -1)
			sUrl += "&";
		else 
			sUrl += "?";

		if (getIEVersionNumber() > 5.01 || getIEVersionNumber() == true)
			sUrl += encodeURIComponent(name) + "=" + encodeURIComponent(params[name]);
		else
			sUrl += name + "=" + params[name];
        }
	sUrl += "&js=" + getRandom();

        return sUrl;
}        


function getFromScriptExt(array, script) {

	var scrpt = (!script) ? getScriptName() : script;
	var params = makeRequest(scrpt, array);

 	var frame = document.createElement("script");

	if (frame)
	if (frame.src)	
		frame.src = params;
	else	
		frame.setAttribute('src', params);

	frame.setAttribute('id', 'scri');

	var old = getElement('scri');

	if (old === null) {
		document.body.appendChild(frame);
	}
	else {

		document.body.removeChild(old);
		document.body.appendChild(frame);

	}

}