// ein Bisschen Browsersniffing
var uagent = navigator.userAgent;

// Auf Mac Spezielitäten kann leider noch nicht rücksichtgenommen werden
// var browser = (uagent.indexOf('Mac') >= 0) ? "_mac" : "_win";

var isIE = (uagent.indexOf('MSIE') >= 0) ? true : false;
var isOpera = (uagent.indexOf('Opera') >= 0) ? true : false;
var isGecko = (uagent.indexOf('Gecko') >= 0) ? true : false;
var isIE6 = ((uagent.indexOf('MSIE') >= 0) && (uagent.indexOf('6') >= 0)) ? true : false;
var isIE7 = (  (uagent.indexOf('MSIE 7.0') >= 0)  ) ? true : false;

function TransElement()
{
	this.hideDelay = -1;
	this.effect = false;
	this.transDelay = -1;
	this.maxOpacity = 75;
	this.minOpacity = 0;
	this.transIndex = this.minOpacity;
	this.timeout = 400;
	this.ie6png = false;
}

// in diesem Array werden die Zustände der durch ihr id-Attribut spezifizierten Elemente gespeichert
var transElements = new Array();
transElements["ttbox"] = new TransElement();
transElements["ttboxshadow"] = new TransElement();
transElements["infobox"] = new TransElement();
transElements["logo"] = new TransElement();
transElements["popupmenu"] = new TransElement();
transElements["popupbodyshadow"] = new TransElement();
transElements["mitte"] = new TransElement();
transElements["menu"] = new TransElement();
transElements["lyricsbox"] = new TransElement();
transElements["band_mitte"] = new TransElement();
transElements["outerbox"] = new TransElement();
transElements["cover_front"] = new TransElement();
transElements["designList"] = new TransElement();

//transElements["submenu1"] = new Array();
//transElements["submenu2"] = new Array();

// hier werden einige Ausnahmen nachgetragen
transElements["cover_front"]["effect"] = true;
// transElements[element]["maxOpacity"] = 100;
transElements["popupmenu"]["timeout"] = 0;
transElements["popupbodyshadow"]["timeout"] = 0;

transElements["lyricsbox"]["timeout"] = 0;


// transElements["popupmenu"]["maxOpacity"] = (isIE) ? 100 : 100;
// transElements["ttbox"]["maxOpacity"] = (isIE) ? 75 : 100;
// transElements["logo"]["maxOpacity"] = (isIE) ? 100 : 100;
// transElements["mitte"]["maxOpacity"] = (isIE) ? 100 : 100;
// transElements["menu"]["maxOpacity"] = (isIE) ? 100 : 100;
// transElements["lyricsbox"]["maxOpacity"] = (isIE) ? 100 : 100;
// if (document.getElementById('band_bw') != null)
//    transElements["mitte"]["maxOpacity"] = (isIE) ? 100 : 100;

if (isIE6 || isIE7 )
{
	transElements['popupmenu']['effect'] = false;
	transElements['ttbox']['effect'] = false;
	transElements['lyricsbox']['effect'] = false;
}
for (var element in transElements) 
{
	transElements[element]["transIndex"] = transElements[element]["minOpacity"];
}

// allg. Methode zum Anzeigen eines Elements
function showElement(elementId)
{
	if (document.getElementById(elementId)) 
	{
        clearTimeout(transElements[elementId]["hideDelay"]);
        clearInterval(transElements[elementId]["transDelay"]);
        if ( (isIE && !isOpera || isGecko) &&  transElements[elementId].effect)
        {		
                appear(elementId);
        }
	else
	{
		//document.getElementById(elementId).style.mozOpacity = 1;
		//document.getElementById(elementId).style.setAttribute("filter", "alpha(opacity=100)");
	}
        document.getElementById(elementId).style.display = "block";
	}
}
// allg. Methode zum Verstecken von Elementen
function hideElement(elementId)
{
	if (document.getElementById(elementId))
	{
        if ( (isIE && !isOpera || isGecko) && transElements[elementId].effect)
        {
                clearInterval(transElements[elementId]["transDelay"]);
                disappear(elementId);
        }
        else
        {
                transElements[elementId]["hideDelay"] = setTimeout("delayedHideElement('" + elementId + "')", transElements[elementId]["timeout"]);
        }
	}
}
// wird mit Verzögerung aufgerufen, wenn "Erscheinen" nicht angefrordert, oder nicht unterstützt ist
function delayedHideElement(elementId)
{
        var element = document.getElementById(elementId);
	if (transElements[elementId]["minOpacity"] == 0)
	{
        	element.style.display = "none";
	}
        document.onmousemove = null;
        document.onmouseover = null;

        clearTimeout(transElements[elementId]["hideDelay"]);
        clearInterval(transElements[elementId]["transDelay"]);
}

// elementId = id-Name des zu erscheinenden Elements
function appear(elementId)
{
        if (isGecko)
        {
                var z = transElements[elementId]["transIndex"] % 4;
                transElements[elementId]["transIndex"] += z ;
        }
        transElements[elementId]["transDelay"] = setInterval("delayedAppear('"	+ elementId + "')", 1);
}
// elementId =  id-Name des zu erscheinenden Elements
function disappear(elementId)
{
        if (isGecko)
        {
                var z = transElements[elementId]["transIndex"] % 4;
                transElements[elementId]["transIndex"] -= z ;
        }
        transElements[elementId]["transDelay"] = setInterval("delayedDisappear('" + elementId + "')", 1);
}
// die, wenn angefordert (bzw. Broweserunterstützt), verzögert aufgerufenene "Erscheinungsfunktion"
function delayedAppear(elementId)
{
               var element = document.getElementById(elementId);
               if (transElements[elementId]["transIndex"] > transElements[elementId]["maxOpacity"])
               {
                       clearInterval(transElements[elementId]["transDelay"]);
                       transElements[elementId]["transIndex"] = transElements[elementId]["maxOpacity"];
		       if (document.getElementById(elementId).style.filter)
			       document.getElementById(elementId).style.removeAttribute("filter");							   
               }
               else
               {
                        if (isIE && !isOpera)
                       {
                               element.style.setAttribute("filter", "alpha(opacity=" + transElements[elementId]["transIndex"] + ")");
                               transElements[elementId]["transIndex"] = (transElements[elementId]["transIndex"] < 50) ? transElements[elementId]["transIndex"]+3 : transElements[elementId]["transIndex"]+5;
                       }
                       else if (isGecko)
                       {
                                if (transElements[elementId]["transIndex"] %  4 == 0 )
                                {
                                        //element.style.MozOpacity = transElements[elementId]["transIndex"] + "%;"
									element.style.MozOpacity = transElements[elementId]["transIndex"]/100 + "";
                                }
                                 transElements[elementId]["transIndex"] += 1 ;
                       }
               }
}
// s.o. nur andersherum
function delayedDisappear(elementId)
{
        var element = document.getElementById(elementId);
        if (transElements[elementId]["transIndex"] < transElements[elementId]["minOpacity"])
        {
                document.onmousemove = null;
                document.onmouseover = null;
		if (transElements[elementId]["minOpacity"] == 0)
		{
                	document.getElementById(elementId).style.display = "none";
		}
                clearInterval(transElements[elementId]["transDelay"]);
                transElements[elementId]["transIndex"] = transElements[elementId]["minOpacity"];
        }
        else
        {
                if (isIE && !isOpera)
               {
                       element.style.setAttribute("filter", "alpha(opacity=" + transElements[elementId]["transIndex"] + ")");
                       transElements[elementId]["transIndex"] = (transElements[elementId]["transIndex"] < 50) ? transElements[elementId]["transIndex"]-3 : transElements[elementId]["transIndex"]-5;
               }
               else if (isGecko)
               {
                        if (transElements[elementId]["transIndex"] %  4 == 0 )
                        {
                                element.style.MozOpacity = transElements[elementId]["transIndex"]/100 + "";
                        }
                        transElements[elementId]["transIndex"] -= 1 ;
               }
        }
}
function setOpacity(elementId, value)
{
	var element = document.getElementById(elementId);
	if (isIE && isOpera)
	{
		element.style.setAttribute("filter", "alpha(opacity=" + value + ")");
	}
	else if (isGecko) 
	{
		element.style.MozOpacity = value + ""; 
	}
}

