

var clipTop = 0;
var clipWidth = 168;
var clipBottom = 200;
var topper = 30;
var lyrheight = 0;
var time,amount,theTime,theHeight,DHTML;

var openLayerLevel2;
var openLayerLevel3;

	DHTML = (document.getElementById || document.all || document.layers);
	
function scrollerInit(clipbottom)
{
    clipBottom = clipbottom;

	DHTML = (document.getElementById || document.all || document.layers)
	
	if (!DHTML) return;

	var x = new getObj('industryList1');

	if (document.layers)
	{
		lyrheight = x.style.clip.bottom;
		lyrheight += 20;
		x.style.clip.top = clipTop;
		x.style.clip.left = 0;
		x.style.clip.right = clipWidth;
		x.style.clip.bottom = clipBottom;
	}
	else if (document.getElementById || document.all)
	{
		lyrheight = x.obj.offsetHeight;
		var clipstring = 'rect('+clipTop+'px,'+clipWidth+'px,'+clipBottom+'px,0)';
		x.style.clip = clipstring;
	}
}

function scrollayer(layername,amt,tim)
{
	if (!DHTML) return;
	thelayer = new getObj(layername);
	// get height of the current layerlevel
	lyrheight = thelayer.style.clip.bottom;
	if (!thelayer) return;
	amount = amt;
	theTime = tim;
	realscroll();

}

function stopScroll()
{
	if (time) clearTimeout(time);
}

function realscroll()
{
	if (!DHTML) return;
	clipTop += amount;
	clipBottom += amount;
	topper -= amount;
	if (clipTop < 0 || clipBottom > lyrheight)
	{
		clipTop -= amount;
		clipBottom -= amount;
		topper += amount;
		return;
	}
	if (document.getElementById || document.all)
	{
		clipstring = 'rect('+clipTop+'px,'+clipWidth+'px,'+clipBottom+'px,0)'
		thelayer.style.clip = clipstring;
		thelayer.style.top = topper + 'px';
	}
	else if (document.layers)
	{
		thelayer.style.clip.top = clipTop;
		thelayer.style.clip.bottom = clipBottom;
		thelayer.style.top = topper;
	}
	time = setTimeout('realscroll()',theTime);
}

function getObj(name)
{
  if (document.getElementById)
  {
    this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
    this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name].style;
  }
}

function showlayer(layername)
{
	// hide active layers first	
    // jos klikataan ensimmäistä tasoa, piilotetaan ensin vanhat 2 ja 3 tasot
    if (layername.indexOf("_2") > -1)
    {
        var elementList = new Array();
        elementList = getElementsByClassName("industryLevel2", null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";   

        elementList = new Array();
        elementList = getElementsByClassName("industryLevel3", null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";	
	        
	    // change clicked link to selected, and remove old selection
        var firstLevelLinks = new Array();
        firstLevelLinks = document.getElementById('industryList1').getElementsByTagName('a');
        for(var i = 0; i < firstLevelLinks.length; i++)
        {
            var classCode = firstLevelLinks[i].className;          
            var patternOld = new RegExp("selected openNextLevel");
            if (patternOld.test(classCode))
            {
                firstLevelLinks[i].className = ""; 
            }        
            var onclickCode = firstLevelLinks[i].onclick;  
            var patternNew = new RegExp(layername);
            if (patternNew.test(onclickCode))
            {
                firstLevelLinks[i].className = "selected openNextLevel"; 
            }        
        }
    }	

    // jos klikataan toista tasoa, piilotetaan vanhat 3 tasot
    if (layername.indexOf("_3") > -1)
    {
        elementList = new Array();
        elementList = getElementsByClassName('industryLevel3', null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";
	        
	    // change clicked link to selected, and remove old selection
        var firstLevelLinks = new Array();
        firstLevelLinks = document.getElementById('industryList1').getElementsByTagName('a');
        for(var i = 0; i < firstLevelLinks.length; i++)
        {
            var secondLevelName = firstLevelLinks[i].onclick;
            if (secondLevelName != null)
            {
                var str = secondLevelName.toString();           
                var start = str.indexOf("('");              /* IE */
                if (start == -1) start = str.indexOf('("'); /* FF, Opera */
                var end = str.indexOf("_");
                var secondLevelListName = str.substring(start+2,end)+"2List";   
                var secondLevelLinks = new Array();
                secondLevelLinks = document.getElementById(secondLevelListName).getElementsByTagName('a');
                for(var j = 0; j < secondLevelLinks.length; j++)
                {
                    var classCode = secondLevelLinks[j].className;          
                    var patternOld = new RegExp("selected openNextLevel");
                    if (patternOld.test(classCode))
                    {
                        secondLevelLinks[j].className = ""; 
                    }        

                    var onclickCode = secondLevelLinks[j].onclick;  
                    var patternNew = new RegExp(layername);
                    if (patternNew.test(onclickCode))
                    {
                        secondLevelLinks[j].className = "selected openNextLevel"; 
                    }        
                }
            }
        } 	    
    }	


	if (!DHTML) 
	{	
		return;
	}	

	thelayer = new getObj(layername);

	if (!thelayer)
	{	
		return;
	}
	else
	{	
		thelayer.style.visibility="visible";

		// Fix for safari browser bug with navigation
		// For some reason element is not being shown if its visible element is changed AND it has z-index
		// Changing z-index to auto fixes this problem but breaks IE
		// So the workaround is dynamically create colorless div which is same size and position than
		// #industry div, which is base element for navigation
		// After div is created, screen is refreshed and navigation appears. Now div can be deleted
		if (/Safari[\/\s]/.test(navigator.userAgent))
		{

			// CHANGE THIS VALUE IF ELEMENT #industry ID CHANGES IN PAGES.CSS
			var productLayerId = 'industry';

			var newdiv = document.createElement('div');
			newdiv.setAttribute('id', "safarifix");
			newdiv.style.width = document.getElementById(productLayerId).style.width;
			newdiv.style.height = document.getElementById(productLayerId).style.height;
			newdiv.style.bottom = document.getElementById(productLayerId).style.bottom;
			newdiv.style.left = document.getElementById(productLayerId).style.left;
			newdiv.style.position = "absolute";
			document.body.appendChild(newdiv);

			var olddiv = document.getElementById('safarifix');
			document.body.removeChild(olddiv);

		}
	}

}


function hidelayer(layername)
{
	if (!DHTML) return;
	thelayer = new getObj(layername);
	if (!thelayer) return;
	thelayer.style.visibility = "hidden";
	
	if (layername.indexOf("_3") > -1)
    {
        // thelayer at level 3, no need to close other levels
    }
    else if (layername.indexOf("_2") > -1)
    {
        // thelayer at level 2, close also level 3
        elementList = new Array();
        elementList = getElementsByClassName("industryLevel3", null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";
    }
    else
    {
        // thelayer at level 1, close also levels 2 and 3	
        var elementList = new Array();
        elementList = getElementsByClassName("industryLevel2", null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";

        elementList = new Array();
        elementList = getElementsByClassName("industryLevel3", null, null);
        for(var i = 0; i < elementList.length; i++)
	        elementList[i].style.visibility="hidden";
	}
}

function getElementsByClassName(searchClass, node, tag)
{
    var classElements = new Array();

    if (node == null)
    {
        node = document;
    }
    if (tag == null)
    {
        tag = '*';
    }
    var els = node.getElementsByTagName(tag);

    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");

    for (var i = 0, j = 0; i < elsLen; i++)
    {
        if (pattern.test(els[i].className))
        {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

