/**
 * Gets an element
 * TODO different browsers
 */
function getElem(id)
{
	return document.getElementById(id);
}

/**
 * Shows/hides element
 */
function showHide(id, img)
{
	var el = getElem(id);
    var image = null;
    if (img) image = getElem(img);
    
	if (el.style.display == 'none' || el.style.display == '') {
		el.style.display = 'block';
        if (image) image.style.display = 'none';    
	} else {
		el.style.display = 'none';
        if (image) image.style.display = 'inline';   
    }
}

/**
 * Sets display style
 */
function display(el, display)
{
 	el.style.display = display ? 'block' : 'none';
}
 

/**
 * add highlight style
 */
function highlight(elid, light)
{
    var el = getElem(elid);
    if (light) {
        el.className += " highlight";
    } else {
        el.className = el.className.replace(/\bhighlight\b/, ' ');
    }
}
 
/**
 * Shows/hides by names according to value
 */
function showHideByName(name, value) 
{
    el_list = document.getElementsByName(name);
    if (el_list.length == 0) {
    	el_list = document.body.getElementsByTagName('SPAN');
    }
    for (var i=0; i<el_list.length; i++) {
        var el = el_list.item(i);
        if (name == el.getAttribute('name')) {
            if (el.className == value) {
                el.style.display = 'block';
            } else {
                el.style.display = 'none';
            }
        }
    }
}


/**
 * Onload functions
 */
var registeredOnloadFunctions = new Array();

function registerOnloadFunction(func)
{
	registeredOnloadFunctions[registeredOnloadFunctions.length] = func;
}

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

window.onload = execOnloadFunctions;
