//PathNavigation
//--------------------------------------------------------------------
var cookieName = 'pathNav';

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=/";
}
    
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;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

//page object
function visitedPage(level, title, url){
   this.level = level;
   this.url = url;  
   this.title = title;   
}

//convert page to string for cookie (encode &uuml;to &uumlXXX)
function pageToString(page)
{
    var str = page.level+'|'+page.title+'|'+ page.url;
    return str.replace(/;/g, 'XXX').replace(/,/g, '_');
}

//convert cookie string to page object
function stringToPage(string)
{
    var string = string.replace(/XXX/g, ';').replace(/_/g, ',').split('|');
    return new visitedPage(string[0], string[1], string[2]);
}


//read cookie as collection of pages
function cookieToPageArray(cookie)
{
    cookie = cookie.split(',');
    for(i=0; i < cookie.length; ++i)
    {
        cookie[i] = stringToPage(cookie[i]);
    }
    return cookie;
}

//register page to cookie
//called on masterpage
function registerPage(num, text, url)
{
   

   COMPANY_NAME = '';  
   text = text.replace(COMPANY_NAME, '');
  
    var page = new visitedPage(num, text, url);
    var cookie = readCookie(cookieName);
    if(cookie)
    {
        var pages = cookieToPageArray(cookie);
        for(i=pages.length-1; i >= 0; --i) //remove old pages
        {
            if(pages[i].level >= page.level)
            {
                pages.pop();
            }
            else
            {
                break;
            }
        }
        pages.push(page);
        var result = '';
        for(j=0; j < pages.length; ++j) //change pageArray to string
        {
            result = result + pageToString(pages[j]) + ',';
        }
        result = result.substring(0, result.length -1); //remove last comma
        createCookie(cookieName , result, 1);
    }
    else
    {
        createCookie(cookieName ,pageToString(page), 1);
    }
}

//print pages in navigation
function printPageNavigation()
{
    
    var cookie = readCookie(cookieName);
    if(cookie)
    {
        pages = cookieToPageArray(cookie);
        document.write('<ul id="breadcrumb">');
        for(i=0; i< pages.length; ++i)
        {
            if(i == pages.length - 1)
            {
                document.write('<li class="current">');
            }
            else
            {
                document.write('<li>');
            }
            document.write('<a href=' + pages[i].url + '>' + pages[i].title + '</a></li> ');
        }
        document.write('</ul>');
    }
}

function popupform(myform, windowname, height, width, url)
{
    window.open(url + '?term=' + myform.term.value + '&mode=S', windowname, 'height=' + height + ',width=' + width + ',scrollbars=yes');
    return false; // POST nicht abschicken
}


window.onload = init;//initPrintLink;

function init()
{
    initPrintLink();
    //highlightNavigation();
    fixSafariToggle();
    if (typeof popup_window != 'undefined'){
        popup_window();
    }
}

function initPrintLink()
{
    if(location.href.indexOf("?variant=print") > -1)
    {
        var headID = document.getElementsByTagName("head")[0];         
        var cssNode = document.createElement('link');
        cssNode.type = 'text/css';
        cssNode.rel = 'stylesheet';
        cssNode.href = 'printview.css';
        cssNode.media = 'screen';
        cssNode.id = 'printview'
        headID.appendChild(cssNode);
    }
}

function highlightNavigation()
{
    var highlightSet = false;
    $$('#main-navigation li').each( function(obj, n)
    {     
        if (obj.hasClassName('current') && !highlightSet )
        {
            var tabNumber = n + 1;
            $('tab' + tabNumber.toString()).firstDescendant().setStyle({ backgroundPosition: '0 -37px' });
            highlightSet = true;
        }
    });
}

function fixSafariToggle()
{
    if(window.devicePixelRatio)
    {
        $$(".accordion_toggle").each(function(elem){ elem.style.height = '3em'; });
    }
}

//functions used to scale select boxes
function expand(select)
{        
    var MAX_LENGTH = 40; //maximum character length
    var foundMaxLength = 0;
    var elements = select.getElementsByTagName('option'); //check if any option value is longer than max. length
    for(var i = 0; i < elements.length; ++i)
    {
        if(elements[i].value.length > foundMaxLength)
        {
            foundMaxLength = elements[i].value.length;
        }
    }
    
    if(foundMaxLength >= MAX_LENGTH)
    {
        select.style.width = 'auto'; //set auto to resize
    }
    
}
function reduce(select)
{
    select.style.width = '250px';
}