
/* ******************* */
/*  website functions  */
/* ******************* */


/* Config */
var searchActiveBorderColor = '#000000';
var searchInctiveBorderColor = '#C2C1C1';

/* DOM objects */
var objSearchBox;
var objSearchInput;
var objSearchButtonImage;

/* Variables */
var searchHasFocus = false;



/* Init function is executed on body onload. */
function init()
{
    // Find objects in DOM
    objSearchBox = getObj('searchbox');
    objSearchButtonImage = getObj('searchbuttonImage');    
    
    if(objSearchBox)
    {
        var aInput = objSearchBox.getElementsByTagName('input');
        if(aInput[0])
            objSearchInput = aInput[0];
    }
        
    
    // Apply events
    if(objSearchBox)
    {
        addEventSimple( objSearchBox, 'mouseover', searchActive);
        addEventSimple( objSearchBox, 'mouseout', searchInactive);        
    }
    if(objSearchInput)
    {
        addEventSimple( objSearchInput, 'focus', searchFocus);
        addEventSimple( objSearchInput, 'blur', searchBlur);  
        if(objSearchInput.value != '')
            searchFocus();    
    }
    if(objSearchButtonImage)
    {
        addEventSimple( objSearchButtonImage, 'focus', searchFocus);
        addEventSimple( objSearchButtonImage, 'blur', searchBlur);        
    }    
    if(getObj('topnavDropdownMenu'))
    {
        var aLI = getObj('topnavDropdownMenu').getElementsByTagName('li');
        for(var i = 0; i < aLI.length; i++)
        {
            if(aLI[i].className.indexOf('lvl0') > -1)
            {
                addEventSimple(aLI[i], 'mouseover', dropdownMenuOpen);
                addEventSimple(aLI[i], 'mouseout', dropdownMenuClose);   
            }
        }
    }
    if(getObj('topnavDropdownMenuAdmin'))
    {
        var aLI = getObj('topnavDropdownMenuAdmin').getElementsByTagName('li');
        for(var i = 0; i < aLI.length; i++)
        {
            if(aLI[i].className.indexOf('lvl0') > -1)
            {
                addEventSimple(aLI[i], 'mouseover', dropdownMenuOpen);
                addEventSimple(aLI[i], 'mouseout', dropdownMenuClose);   
            }
        }
    }
    if(getObj('top'))
    {    
        var aA = getObj('top').getElementsByTagName('a');
        for(var i = 0; i < aA.length; i++)
        {
            if(aA[i].className.indexOf('iconbutton') > -1)
            {
                addEventSimple(aA[i], 'mouseover', iconOver);
                addEventSimple(aA[i], 'mouseout', iconOut);   
            }
        }            
    }
}

/* Iconbutton functions */
function iconOver(evt)
{
    var objTarget = (evt.target) ? evt.target : evt.srcElement;
    if(objTarget.nodeName.toLowerCase() == 'img')
    {
        objTarget.src = objTarget.src.replace('_out', '_over');
    }

}
function iconOut(evt)
{
    var objTarget = (evt.target) ? evt.target : evt.srcElement;
    if(objTarget.nodeName.toLowerCase() == 'img')
    {
        objTarget.src = objTarget.src.replace('_over', '_out');
    }
}


/* Dropdown menu functions */
var currentMenuLI = undefined;
function dropdownMenuOpen(evt)
{   
    var objTarget = (evt.target) ? evt.target : evt.srcElement;
    while(objTarget.className.indexOf('lvl0') < 0 )
        objTarget = objTarget.parentNode;               

    currentMenuLI = objTarget;
    currentMenuLI.className = currentMenuLI.className + ' hovering';
    return false;
}
function dropdownMenuClose()
{
    if(currentMenuLI)
    {
        currentMenuLI.className = currentMenuLI.className.replace(' hovering', '');        
        currentMenuLI = undefined;
    }  
    return false;
}


/* Search box functions */
function searchActive()
{
    if(objSearchBox)
        objSearchBox.style.borderColor = searchActiveBorderColor;  
        
    if(objSearchButtonImage)
        objSearchButtonImage.src = objSearchButtonImage.src.replace('_out', '_over'); 
}
function searchInactive()
{
    if(objSearchBox && !searchHasFocus)
        objSearchBox.style.borderColor = searchInctiveBorderColor;        
        
    if(objSearchButtonImage && !searchHasFocus)
        objSearchButtonImage.src = objSearchButtonImage.src.replace('_over', '_out');
}
function searchFocus()
{
    searchHasFocus = true;
    searchActive();
}
function searchBlur()
{
    searchHasFocus = false;
    searchInactive();
}





/* ****************** */
/*  helper functions  */
/* ****************** */

//get the object from id
function getObj(id)
{
	return document.getElementById(id);
}

//get absolute left for object
function getAbsLeft(obj) { 
	var iY = 0; 
	if(obj)
		while(obj.offsetParent)
		{ 
			iY += parseInt(obj.offsetLeft);
			obj = obj.offsetParent;  
		} 
	return iY; 
} 

//get absolute top for object
function getAbsTop( obj ) 
{  
	var iX = 0; 
	if( obj )
		while( obj.offsetParent )
		{ 
			iX += parseInt(obj.offsetTop);  
			obj = obj.offsetParent;  
		} 
	return iX
}

//popup window
function popUp( url, nam, w, h, extra )
{		
	str = 'height=' + h + ',width=' + w + ',' + extra;
	if( parseInt(navigator.appVersion) > 3 )
		str += ',left=' + (screen.width - w) / 2 + ',top=' + parseInt((screen.height -h) / 3);			
	win = this.window.open( url, nam, str );			
}	

//sorts any listbox
function sortListBox(objListbox)
{
	var x;
	var temparr = new Array(objListbox.options.length);
	for(x = 0; x < objListbox.options.length; x++)
		temparr[x] = objListbox.options[x].value + "||" + objListbox.options[x].text + "||" + objListbox.options[x].className;
	temparr.sort();
	for(x = 0; x < temparr.length; x++)
	{
		optionArr = temparr[x].split("||")
		objListbox.options[x] = new Option(optionArr[1],optionArr[0]);	
		objListbox.options[x].className = optionArr[2];
	}
}

//create a cookie
function createCookie(name, value, days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	else var expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

//read a cookie
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

//delete a cookie
function deleteCookie(name)
{
	createCookie(name,"",-1);
}

//trims a string
function trim(str)
{
    while (str.substring(0,1) == ' ')
    {
        str = str.substring(1, str.length);
        while (str.substring(str.length-1, str.length) == ' ')
            str = str.substring(0, str.length-1);
    }
    return str;
}

//adds a javascript event to an element
function addEventSimple(obj, evt, fn) 
{
	if (obj.addEventListener)
		obj.addEventListener(evt, fn, false);
	else if (obj.attachEvent)
		obj.attachEvent('on' + evt, fn);
}

//removes a javascript event fra an element
function removeEventSimple(obj, evt, fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt, fn, false);
	else if (obj.detachEvent)
		obj.detachEvent('on' + evt, fn);
}

