var is_ie = ( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) );

function g(id){
	return document.getElementById(id);
}

/* IE6 flicker fix
-------------------------------------------------- */
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


/* Login toggle
-------------------------------------------------- */
var exp1 = null;
var exp2 = null;

function addEvent(el, evname, func) {
	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
	focusFirstForm();
}

function removeEvent(el, evname, func) {
	if (el.detachEvent) { // IE
		el.detachEvent("on" + evname, func);
	} else if (el.removeEventListener) { // Gecko / W3C
		el.removeEventListener(evname, func, true);
	} else {
		el["on" + evname] = null;
	}
}

function closeExpandable(ev){
	if (!exp1 || !exp2) return;

	var f = is_ie ? window.event.srcElement : ev.target;
	while (f){
		if (f.id == exp1+'container') return;
		f = f.parentNode;
	}

	el = g(exp1);
	el.style.display = 'none';
	exp2.className = '';
	removeEvent(document, "mousedown", closeExpandable);
}

function toggleExpandable(target, ref){
	if (exp1 != null && exp1 != target){ g(exp1).style.display = 'none'; }
	if (exp1 != null && exp2 != ref){ exp2.className = ''; }
	exp1 = target;
	exp2 = ref;

	el = g(target);
	if (el.style.display != 'block'){
		el.style.display = 'block';
		ref.className = 'open';
		addEvent(document, "mousedown", closeExpandable);
	} else {
		el.style.display = 'none';
		ref.className = '';
		removeEvent(document, "mousedown", closeExpandable);
	}
	return false;
}

function toggleExpandableNoEvents(target, ref){
	if (exp1 != null && exp1 != target){ g(exp1).style.display = 'none'; }
	if (exp1 != null && exp2 != ref){ exp2.className = ''; }
	exp1 = target;
	exp2 = ref;

	el = g(target);
	if (el.style.display != 'block'){
		el.style.display = 'block';
		ref.className = 'open';
	} else {
		el.style.display = 'none';
		ref.className = '';
	}
	return false;
}

/* On key press
-------------------------------------------------- */
document.onkeypress = function(e) {
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if (code == 27){
		hideOverlay();
	}
}

