try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {}

function $my(id)
{
	return document.getElementById(id);
}

function setClass(id, cl)
{
	var obj = (typeof(id) == "object") ? id : $my(id);
	var re = new RegExp("(^|\\s)" + cl + "($|\\s)", "g");
	if (!re.test(obj.className))
	{
        obj.className = obj.className ? (obj.className + " " + cl) : cl;
    }
}

function removeClass(id, cl)
{
	var obj = (typeof(id) == "object") ? id : $my(id);
	var re = new RegExp("[\\s]?" + cl, "i");
	obj.className = obj.className == cl ? "" : obj.className.replace(re, "");
}

function toggleClass(id, cl)
{
	var obj = (typeof(id) == "object") ? id : $my(id);
	if (obj.className && obj.className.indexOf(cl) != -1)
	{
		removeClass(obj, cl);
	}
	else
	{
		setClass(obj, cl);
	}
}

function insertAfter(el, insertedEl)
{
    el.parentNode.insertBefore(insertedEl, el.nextSibling);
}

// show/hide sidebar block
function toggleLinkBlock()
{
	var linkBlock = null;
	toggleClass(this, "closed");
	var obj = this.parentNode;
	while ((!obj.tagName || obj.tagName.toUpperCase() != "UL") && obj.nextSibling)
	{
		obj = obj.nextSibling;
	}
	toggleClass(obj, "closed");
	
    // {{{ fix hasLayout in IE6
    this.parentNode.parentNode.parentNode.style.zoom = 0.9;
	this.parentNode.parentNode.parentNode.style.zoom = 1;
	// }}}
	
	return false;
}

// show/hide extended search form
function toggleExtSearchForm()
{
	toggleClass($my("ext-search-form"), "closed");
	toggleClass($my("ext-search"), "closed");
	return false;
}

var calendarOpened = false;
var calendarOpenedBy = '';
// show/hide calendar
function _loadCalendar(btn)
{
    if (calendarOpened)
    {
        calendarOpened = false;
        var oldCalendarOpenedBy = calendarOpenedBy;
        calendarOpenedBy = '';
        setClass($my("min1"), "closed");
        setClass($my("max1"), "closed");
        setClass($my('date-selector'), "closed");
        if (btn != oldCalendarOpenedBy)
        {
            _loadCalendar(btn);
        }
    }
    else
    {
        calendarOpened = true;
        calendarOpenedBy = btn;
        removeClass($my(btn), "closed"); 
        removeClass($my('date-selector'), "closed");
        insertAfter($my(btn).parentNode, $my("date-selector"));
    }
}

// plus/minus
function changeState()
{
    toggleClass($my("state"), "minus");
    return false;
}

window.onload = function() {
	var headers = $my("sidebar").getElementsByTagName("H2");
	for (var i = 0, hCount = headers.length; i < hCount; i++)
	{
		headers[i].firstChild.onclick = toggleLinkBlock;
	}
}