


function getElem(id)
{
    if(typeof(id) == 'object')
        return id;
    
    if(!document.getElementById(id))
        return false;
    
    return document.getElementById(id);
}
function getElement(id)
{
    return getElem(id);
}


function fadeIn(el, speed, s)
{
    var op;
    el = getElem(el);
    if(s == undefined)
    {
        if(speed == undefined)  
            speed = 50;
        
        el.style.opacity = '0';
        el.style.display = 'block';
        s = 0;
    }
    s = parseInt(s);
 alert(s);   
    if(s == 9)
    {
        el.style.opacity = '1';
        return;
    }
    
    s++;
    el.style.opacity = '0.'+(op+1);
    window.setTimeout("fadeIn('"+el.id+"', '"+speed+"', '"+s+"')", speed);    
}


function fadeElement(tagId, opacStart, opacEnd, millisec, hide) 
{
    var speed = Math.round(millisec / 100);
    var timer = 0;
    var id = '';
//     alert(tagId);
    if(typeof(tagId) == 'object')
    {
        if(tagId.id == undefined || tagId.id == '')
            tagId.id = 'aktFadeingElement'+makeUniqueId();
        
        id = tagId.id;
    }
    else
        id = tagId;
    
    if(hide == undefined)
        hide = true;

    if(!getElem(id))
        return;

    // Ausblenden
    if(opacStart > opacEnd) 
    {
        for(i = opacStart; i >= opacEnd; i--) 
        {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }

        if(hide == true && getElem(id).style != undefined)
            window.setTimeout("getElem('"+id+"').style.display = 'none';", (timer * speed));
        
        if(id == 'altFadingElement' && getElem(id))
            getElem(id).id = '';        
    } 
    // Einblenden
    else if(opacStart < opacEnd) 
    {   
        document.getElementById(id).style.display = 'block';
        changeOpac(opacStart, id);
        for(i = opacStart; i <= opacEnd; i++)
        {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
} 
function changeOpac(opacity, id) 
{
    id = getElem(id);
    if(!id)
        return;
    
    var object = id.style;
    
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}



function scrollElement(tagId, hStart, hEnd, millisec, hide, horizontal) 
{
    var speed = Math.round(millisec / 100);
    var timer = 0;
    var id = tagId;
    
    if(horizontal == undefined)
        direction = false;
    else
        direction = true;
        
    if(hide == undefined)
        hide = true;

    if(!getElem(id))
        return;

    // Einfahren
    if(hStart > hEnd) 
    {
        for(i = hStart; i >= hEnd; i--) 
        {
            if(direction == true)
                setTimeout("changeScrollWidth(" + i + ",'" + id + "')",(timer * speed));
            else
                setTimeout("changeScrollHeight(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }

        if(hide == true && getElem(id).style != undefined)
            window.setTimeout("getElem('"+id+"').style.display = 'none';", ((timer * speed)-10));
    } 
    // Einblenden
    else if(hStart < hEnd) 
    {   
        window.setTimeout("getElem('"+id+"').style.display = 'block';", 10);
        changeScrollHeight(hStart, id);
        for(i = hStart; i <= hEnd; i++)
        {
            if(direction == true)
                setTimeout("changeScrollWidth(" + i + ",'" + id + "')",(timer * speed));
            else
                setTimeout("changeScrollHeight(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
} 
function changeScrollHeight(h, id, toTop) 
{
    id = getElem(id);
    if(!id)
        return;
//     id.style.width = (h/1.3)+'px';
    id.style.height = h+'px';
}
function changeScrollWidth(h, id, toTop) 
{
    id = getElem(id);
    if(!id)
        return;
    
    id.style.width = h+'px';
}

function doNotMark(el, set)
{
    doNotmark(el, set);
}
function doNotmark(el, set)
{
    el = getElem(el);
    
    if(set == false)
    {
        el.onselectstart        = function(){return true;};
        el.unselectable         = "off";
        el.style.MozUserSelect  = "normal";
        el.style.cursor         = "default";    
        return;
    }
    
    el.onselectstart = function(){return false;};
    el.unselectable             = "on";
    el.style.MozUserSelect      = "none";
    el.style.cursor             = "default";
}




function blinkBackground(el, blinkTime, colorBlink, colorHide)
{
    el = getElem(el);
    el = el.id;
    dspl = 1;
    for(var i=0; i<blinkTime; i=i+250)
    {
        if(dspl == 1)
            window.setTimeout("getElem('"+el+"').style.backgroundColor = '"+colorBlink+"';", i);
        else
            window.setTimeout("getElem('"+el+"').style.backgroundColor = '"+colorHide+"';", i);
        
        if(dspl == 1)
            dspl = 2;
        else
            dspl = 1;
    }
}

function switchDisplay(el, set, fade)
{
    if(typeof(el) != 'object')
        div = document.getElementById(el);
    else
        div = el;

    if(!el)
        return;

    
    // Fade
    if(fade == true)
    {
        if(div.style.display == 'none')
            fadeElement(el, 0, 100, 200, true);
        else
            fadeElement(el, 100, 0, 200, true);
    
        return;
    }

    // Ohne Fade
    if(set != '' && set != undefined)
    {
        div.style.display = set;
        return set;
    }
    
    if(div.style.display == 'none')
        div.style.display = 'block';
    else
        div.style.display = 'none';
    
    return div.style.display;
}

function treeExpand(id, iconId, treeId, iconOpen, iconClose, speed)
{
    if(iconId == undefined)
        iconId = 'treeicon_';
        
    if(treeId == undefined)
        treeId = 'treeicon_';

    if(iconOpen == undefined)
        iconOpen = 'div_open.gif';
        
    if(iconClose == undefined)
        iconClose = 'div_close.gif';

    if(speed == undefined)
        speed = 300;

    icon    = document.getElementById(iconId+id);
    tree    = document.getElementById(treeId+id);
        
    if(tree.style.display != 'none')
    {
        icon.src            = 'images/'+iconOpen;
        fadeElement(tree, 100, 0, speed, true);
    }
    else
    {
        icon.src            = 'images/'+iconClose;
        fadeElement(tree, 0, 100, speed, true);
    }    
}


function switchHoverClass(elem)
{
    if(typeof(elem) != 'object')
        elem = getElem(elem);
        
    var cName   = elem.className;
    var cName2  = '';
    var len     = cName.length;

    if(cName == undefined || cName == '')
        return false;

    if(cName.substr((len-3), 3) == '_mo')
        elem.className = cName.substr(0, (len-3));
    else
        elem.className = cName+'_mo';
}


var explodeInnerHTML = '';
function explodeElement(fenster, startElement, width, height, top, left)
{
    startElement    = getElem(startElement);
    fenster         = getElem(fenster);
    
    w   = startElement.offsetWidth - 1;
    h   = startElement.offsetHeight;
    s1                    = getElem(startElement).offsetTop;
    s2                    = getElem(startElement).offsetLeft;
    explodeInnerHTML        = fenster.innerHTML;    
    fenster.style.overflow  = 'hidden';
    fenster.style.width     = w+'px';
    fenster.style.height    = h+'px';
    fenster.style.top       = s1+'px';
    fenster.style.left      = s2+'px';
    fenster.innerHTML       = '';
    fadeElement(fenster, 50, 100, 800, true);
    window.setTimeout("explodeElementSize('"+fenster.id+"', '"+width+"', '"+height+"', '"+top+"', '"+left+"');", 200);
}

function explodeElementSize(fensterId, width, height, stop, sleft)
{
    fenster = getElem(fensterId);
    
    w       = parseInt(fenster.style.width.replace(/px/, ''));
    h       = parseInt(fenster.style.height.replace(/px/, ''));
    t       = parseInt(fenster.style.top.replace(/px/, ''));
    l       = parseInt(fenster.style.left.replace(/px/, ''));
    width   = parseInt(width);
    height  = parseInt(height);
    len     = 0;

    if(stop == 'center')
    {
        if(navigator.appName=="Netscape")
            x = parseInt(innerHeight / 2);
        else
            x = parseInt(document.body.offsetHeight / 2);
        
        x = x-(height/2);
        setTop = Math.round(x);
        if(setTop < 10)
            setTop = 10;
    }
    else if(stop != undefined)
        setTop = stop;
        
    if(sleft == 'center')
    {
        if(navigator.appName=="Netscape")
            x = parseInt(innerWidth / 2);
        else
            x = parseInt(document.body.offsetWidth / 2);
        
        x = x-(width/2);
        setLeft = Math.round(x);
        if(setLeft < 10)
            setLeft = 10;
    }
    else if(sleft != undefined)
        setLeft = sleft;
    
//     alert(setLeft+"\n"+setTop);
    if(setLeft > l)
    {    
        while(l < setLeft)
        {
            window.setTimeout("getElem('"+fensterId+"').style.left = '"+l+"px';", len);
            l   += 3;
            len += 4;
        }
    }
    else
    {
        while(l > setLeft)
        {
            window.setTimeout("getElem('"+fensterId+"').style.left = '"+l+"px';", len);
            l   -= 3;
            len += 4;
        }
    }    
// alert(setTop+" > "+ t);
    aLen = len;
    len = 0;

    
    if(setTop > t)
    {    
        while(t < setTop)
        {
            window.setTimeout("getElem('"+fensterId+"').style.top = '"+t+"px';", len);
            t   += 3;
            len += 4;
        }
    }
    else
    {
        while(t > setTop)
        {
            window.setTimeout("getElem('"+fensterId+"').style.top = '"+t+"px';", len);
            t   -= 3;
            len += 4;
        }
    }    
//     alert(l+"\n"+t);
    if(len > aLen)
        aLen = len;
    len = aLen;
    
    while(w < width)
    {
        window.setTimeout("getElem('"+fensterId+"').style.width = '"+w+"px';", len);
        len += 3;
        w   += 4;
    }
    len  = aLen;
    while(h < height)
    {
        window.setTimeout("getElem('"+fensterId+"').style.height = '"+h+"px';", len);
        len += 3;
        h   += 4;
    }
    if(len > aLen)
        aLen = len;
    len = 0;
    
    window.setTimeout("getElem('"+fensterId+"').style.width = '"+width+"px';", aLen);
    window.setTimeout("getElem('"+fensterId+"').style.height = '"+height+"px';", aLen);
    window.setTimeout("explodeResetHTM('"+fensterId+"');", aLen+10);
}

function explodeResetHTM(fensterId)
{
    getElem(fensterId).innerHTML = explodeInnerHTML;
}

function float2Euro(val)
{
	val += '';
	x    = val.split('.');
	if(x[1].length > 2)
	   x[1] = x[1].substr(0, 2);
	
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + '.' + '$2');
	}
	re = x1+x2;
	if(re.substr((re.length-3), 1) == '.')
	   re = re.substr(0, (re.length-3))+','+re.substr((re.length-2), 2);
	return re;
}


// STRING Funktionen erweitern
String.prototype.trim = function() 
{
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() 
{
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() 
{
	return this.replace(/\s+$/,"");
}



// Mouseposition
var mouseposX = 0;
var mouseposY = 0;
function registerMousePos(e)
{
    if(navigator.appName == 'Netscape')
    {
       mouseposX = e.pageX;
       mouseposY = e.pageY;
    }
    else
    {
       mouseposX = window.event.x;
       mouseposY = window.event.y;
    }
}
document.onmousemove    = registerMousePos;
