var jsvar_sub_page = 1;
var jsmouseX, jsmouseY, jskey;
var onmme;
var eventlistenerid;
var target_element;
var IE = document.all ? 1 : 0;
var js_top_offset = getYOffset();
var pageSize;

document.onmousemove = function(e) { onmme = getEvent(e); getMousePos() }
document.onkeypress = function(e) { jskey = keypressed(getEvent(e)) }
window.onscroll = function(e) { js_top_offset = getYOffset() }

function addFieldValue(field, v) { var f = gebn(field); f[0].value += (f[0].value!='' ? ', ' : '')+v.innerHTML }
function align_objects(a, b) { ae = gebi(a); be=gebi(b); if (ae==null || be==null) return; bcr_a = ae.getBoundingClientRect(); bcr_b = be.getBoundingClientRect(); wr = gebi('wrapper').getBoundingClientRect(); ae.style.display = 'block'; ae.style.left = bcr_b.left-wr.left-ae.offsetWidth; ae.style.top = bcr_b.top + getYOffset() }
function check_default_value(v) { return typeof(v) != 'undefined' ? 1 : 0 }
function gebi(id) { var obj=null; obj=document.getElementById(id); return obj;}
function getEvent(e) { return check_default_value(e) ? e : window.event }
/* function gebi(id){ var obj=null; if (document.getElementById) obj=document.getElementById(id); else if (document.all) obj=document.all[id]; else if (document.layers) obj=document.layers[id]; return obj; } */
function gebn(n) { var obj=null; obj=document.getElementsByName(n); return obj; }
function hideListenedElement() { gebi(eventlistenerid).style.display = 'none'; }
function focus_element(id) { var a = gebi(id); if (a!=null && a.style.display=='') setTimeout('gebi(\''+id+'\').focus()', 250) }
function jump_to(page) { top.location.href=page }
function filter(v, targ) { with (document.filter) { target = targ!='' ? targ : 'tf'; ajax_button.click() }}
function filter_country(country_id) { with(document.filters) { ajax_button.value = 'country,'+country_id; ajax_button.click() }}
function fix_gb_position() { var bb = gebi('browse_button'); if (bb==null) return; bb = bb.getBoundingClientRect(); var bf = gebi('browse_field'); var md = gebi('maskbb'); var wr = gebi('wrapper').getBoundingClientRect(); bf.style.display = 'block'; bf.style.left = bb.right-wr.left-bf.offsetWidth; bf.style.top=bb.top-2; md.style.left = bf.style.left; md.style.width = bb.left-parseInt(md.style.left)-wr.left; md.style.top = bb.top-2 } function refresh_captcha(lang) { gebi('captcha').src = lang+'/visualconfirmation/'+Math.floor(Math.random()*1000000); }
function remove_element(id) { var el = gebi(id); el.parentNode.removeChild(el) }
/* function set_event_listener(id) { eventlistenerid = id; document.all ? document.attachEvent('onclick', checkClick) : document.addEventListener('click', checkClick, false); } */
function set_event_listener(receiver_id, target_id, event_name, function_name) { var arg; if (document.all) { fn = 'attachEvent'; arg = ''; } else { fn = 'addEventListener'; arg = ', false'; } if (target_id=='') target_id='document'; eventlistenerid = receiver_id; eval(target_id+'.'+fn+'(\''+event_name+'\', '+function_name+arg+');'); }
function show_loader(el) { return '<img height="'+el.offsetHeight+'" src="/template/images/loader.gif">' }
function sort_col(fn, targ) { with(document.sort) { ajax_button.value = 'sort,'+fn; ajax_button.click() }}
function strip_tags(s) { return s.replace(/(<([^>]+)>)/ig,"") }
function switch_border(id, state) { var a = gebi(id); if (a==null || !can_switch_border) return; if (state && a.className.indexOf("border_focus")==-1) a.className += " border_focus"; else a.className = a.className.replace("border_focus", "") }
function switch_show(id, state) { var a = gebi(id); if (a==null) return; a.style.display = (state || (state==null && a.style.display=='none')) ? '' : 'none' }
function test_mouse_over(id) { var bcr = gebi(id).getBoundingClientRect(); return (jsmouseX<bcr.left || jsmouseX>bcr.right || jsmouseY<(bcr.top+js_top_offset) || jsmouseY>(bcr.bottom+js_top_offset)) ? 0 : 1 }

function addToFavorites(error_msg)
{
	var url = location.href;
	var title = document.title;

	if (error_msg=='') error_msg = "Your browser can't support this feature";

	if (window.sidebar) window.sidebar.addPanel(title, url, "");
	else if (window.external) window.external.AddFavorite(url, title);
	else if (window.opera && window.print) return true;
	else alert(error_msg);
}

function browser_supported()
{
	switch (BrowserDetect.browser)
	{
		case 'Explorer' : if (BrowserDetect.version<7) return false;
	}

	return true;
}

function center2screen(id)
{
	var el = gebi(id);
	if (el==null) return;

	var w, h;

	el.style.left = (document.body.clientWidth-el.offsetWidth)/2;
	el.style.top = (document.body.clientHeight-el.offsetHeight)/2;
}

function check_length(element, max_length, still2go_id)
{
	if (Number(max_length) < 1) return;
	if (isNaN(still2go_id)) still2go_id = 0;
	var still2go = document.getElementsByName('still2go');
	if (still2go_id > still2go.length) return;
	if (element.value.length > max_length) element.value = element.value.substr(0, max_length);
	if (still2go[still2go_id]) still2go[still2go_id].value = max_length - element.value.length;
}

/* function checkClick(e)
{
	e ? evt = e : evt = event;
	CSE = evt.target ? evt.target : evt.srcElement;

	if (gebi(eventlistenerid))
		if (!isChild(CSE, gebi(eventlistenerid)))
			gebi(eventlistenerid).style.display = 'none';
}

function isChild(s, d)
{
	while(s)
	{
		if (s==d) return true;
		s = s.parentNode;
	}
	return false;
} */

function get_body_size()
{
	var page_w, page_h;

	if (window.innerHeight && window.scrollMaxY) /* FF */
	{
		page_w = window.innerWidth + window.scrollMaxX;
		page_h = window.innerHeight + window.scrollMaxY;
        }
        else if (document.body.scrollHeight > document.body.offsetHeight) /* all but explorer mac */
        {
		page_w = document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth;
		page_h = document.body.scrollHeight;
	}
	else /* explorer mac...would also work in explorer 6 strict, mozilla and safari */
	{
		page_w = document.body.offsetWidth;
		page_h = document.body.offsetHeight;
	}

	pageSize = [ page_w, page_h ];
}

function get_element(e)
{
	e = getEvent(e);

	if (e.target) target_element = e.target;
	else if (e.srcElement) target_element = e.srcElement;

	if (target_element.nodeType == 3) target_element = target_element.parentNode; /* defeat Safari bug */
}

function getMousePos()
{
	if (onmme.pageX) /* Moz */
	{
		jsmouseX = onmme.pageX;
		jsmouseY = onmme.pageY;
	}
	else if (onmme.clientX) /* IE */
	{
		if (document.documentElement) /* IE 6+ strict mode */
		{
			jsmouseX = onmme.clientX + getXOffset();
			jsmouseY = onmme.clientY + getYOffset();
		}
		else if (document.body) /* Other IE */
		{
			jsmouseX = onmme.clientX + getXOffset();
			jsmouseY = onmme.clientY + getYOffset();
		}
	}
	else return false;
}

function getXOffset()
{
	if (typeof(window.pageXOffset)=='number') return window.pageXOffset;
	else if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollLeft;
	else if (document.body && document.body.scrollTop) return document.body.scrollLeft;
	else return document.documentElement.scrollLeft;
}

function getYOffset()
{
	if (typeof(window.pageYOffset)=='number') return window.pageYOffset;
	else if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollTop;
	else if (document.body && document.body.scrollTop) return document.body.scrollTop;
	else return document.documentElement.scrollTop;
}

function keypressed(e)
{
	var key;

	if (e.keyCode) key = e.keyCode;		/* IE */
	else if (e.which) key = e.which;    	/* firefox */

	return key;
}

function sleep(naptime)
{
	naptime = naptime * 1000;

	var now = new Date();
	var exitTime = now.getTime() + naptime;
	while (true) { now = new Date(); if (now.getTime() > exitTime) return; }        
}

function Left(obj)
{
	var curleft = 0;
	var wrapper = gebi('wrapper').getBoundingClientRect();
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) curleft += obj.x;

	return curleft-wrapper.left;
}

function put_tf_here() { document.write("<i"+"fra"+"me fr"+'amebo'+'r'+'der'+"=\"0\""+' cla'+"ss=\"tf\""+' i'+"d=\"tf\""+' na'+"m"+"e=\"t"+"f\">"+"<"+'/i'+"fr"+"a"+"me>") }

function Top(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y) curtop += obj.y;

	return curtop;
}

function set_courtain(state)
{
	var courtain = gebi('courtain');

	with (courtain.style)
	{
		if (!state) { display = 'none'; return; }

		get_body_size();

		if (IE) position = 'absolute';
		width = pageSize[0];
		height = pageSize[1];
		display = '';
	}
}

function show_sub_page(id)
{
	if (id==jsvar_sub_page) return;
	if (!jsvar_sub_page) jsvar_sub_page = 1;

	switch_show('sub_page'+id, 1);
	switch_show('sub_page'+jsvar_sub_page, 0);
	with (gebi('sub_page_button'+id)) className = className.replace('liteoption', 'mainoption');
	with (gebi('sub_page_button'+jsvar_sub_page)) className = className.replace('mainoption', 'liteoption');
	jsvar_sub_page = id;
}

function switch_ytvideo(ytcode) { gebi('ytplayer').src = 'http://www.youtube.com/embed/'+ytcode }

function table_toggle_rows(thisname)
{
	tr = document.getElementsByTagName('tr');

	for (i=0; i<tr.length; i++)
	{
		if (tr[i].getAttribute(thisname))
		{
			if (tr[i].className.indexOf("hidden")==-1) tr[i].className += " hidden";
			else tr[i].className = tr[i].className.replace("hidden", "");
		}
	}
}

sfHover = function()
{
	var sfEls = gebi('menu').getElementsByTagName("LI");

	for (var i=0; i<sfEls.length; i++)
	{
		sfEls[i].onmouseover=function() { this.className+=" sfhover"; }
		sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), "") }
	}
}

if (window.attachEvent) window.attachEvent("onload", sfHover);

