/*
	Standards Compliant Rollover Script
	Version 2.62
*/

var initedRollover, austausch, debug, austauschsuffix, threestatesuffix, alleBilder, aPreLoad = new Array(), syncImage, i=1, imageToClick, threestate, cssnavi, o , navizahl;

function initRollovers(imageToClick,settings) {
	if (!document.getElementById) return;
    if (!austauschsuffix) austauschsuffix ='_austausch';
    if (!threestatesuffix) threestatesuffix ='_f3';
   
     // CSSNavigation
    if (cssnavi){
       var navigation = document.getElementsByClassName('navigation');
       debugalert('Anzahl gefundene CSS-Navigationen: ' + navigation.length);
       for (navizahl=0;navizahl < navigation.length;navizahl++){
           if (navigation[navizahl] != 'undefined') {
               var menupunkte = navigation[navizahl].getElementsByTagName('LI');

               // IDs für alle LI vergeben, die noch keine ID haben. Dazu wird der Text des LI > A verwendet
               for (var anzahlMenupunkte = 0; anzahlMenupunkte < menupunkte.length; anzahlMenupunkte++){
                   var link = getNextNode(menupunkte[anzahlMenupunkte],'a', true);
                   if (!menupunkte[anzahlMenupunkte].id) {
                       var linktext = getNextNode(link, '#text', true).data;
                        if (linktext && linktext.data !== "undefined" ) {
                            debugalert('ID zugewiesen: '+linktext.toLowerCase());
                            menupunkte[anzahlMenupunkte].id = linktext.toLowerCase();
                        }
                    }
                        
                   if(imageToClick){
        				for (var anzahl=0; anzahl<imageToClick.length; anzahl++){
                            if (menupunkte[anzahlMenupunkte].id == imageToClick[anzahl].toLowerCase()) {
                                debugalert(menupunkte[anzahlMenupunkte].id +': Listenpunkt und Link auf active gesetzt');
                                menupunkte[anzahlMenupunkte].className = 'active';
                                link.className = 'active';
                                
                            }
                        }
                   }
               }
            }
       }
    }
    // Ende CSSNavigation
    
   	alleBilder = document.getElementsByTagName('img');

	// Austauschbild vorhanden?
	if (document.getElementById('austausch') != null) {
		syncImage = document.getElementById('austausch');
		var syncSrc = syncImage.src;
		debugalert('Austauschbild: '+syncSrc);
	}

	// Alle Bilder die den classname rollover und keine ID haben mit numerischer ID versehen
	for (var j = 0; j < alleBilder.length; j++){
		if (alleBilder[j].className.match('rollover')){

			var dateiname = alleBilder[j].getAttribute('src').substring(alleBilder[j].getAttribute('src').lastIndexOf('/')+1, alleBilder[j].getAttribute('src').length);
			dateiname = dateiname.replace(dateiname.substring(dateiname.lastIndexOf('.'), dateiname.length),"");
 			if (!alleBilder[j].id) alleBilder[j].id = dateiname;

			// Jetzt kommt das Zuordnen von allen Eigenschaften
			alleBilder[j].original = alleBilder[j].getAttribute('src'); // Src des aktuellen Bildes
			var ftype = alleBilder[j].original.substring(alleBilder[j].original.lastIndexOf('.'), alleBilder[j].original.length); // Filetype abfragen
			alleBilder[j].over = alleBilder[j].original.replace(ftype, '_f2'+ftype); // in Over den src + _f2 schreiben
			if(threestate){
                   alleBilder[j].klick = alleBilder[j].original.replace(ftype, '_f3'+ftype); // in Klick den src + _f3 schreiben
			}

			if (syncImage && alleBilder[j].className.match('austausch')){
				var syncFtype = syncSrc.substring(syncSrc.lastIndexOf('.'), syncSrc.length);
				var syncOver = alleBilder[j].original.substring(0,alleBilder[j].original.lastIndexOf('.'));
			    alleBilder[j].syncImage = syncOver+austauschsuffix+syncFtype;
				alleBilder[j].syncOriginal = syncImage.src;
			}

			aPreLoad[i] = new Image();
			aPreLoad[i].src = alleBilder[j].over;
            
            if(imageToClick != 'undefined'){
			// Wenn das Bild in imageToClick steht, dann den src direkt auf das _f2 Bild setzen
				for (anzahl=0; anzahl<imageToClick.length; anzahl++){
					if (imageToClick[anzahl]!="0"){
						if (alleBilder[j].id == imageToClick[anzahl]) {
							if (threestate){
                               alleBilder[j].src = alleBilder[j].klick;
                               alleBilder[j].original = alleBilder[j].klick;
							}
							else {
                                alleBilder[j].src = alleBilder[j].over;
    							alleBilder[j].original = alleBilder[j].over;
							}
							if (alleBilder[j].syncImage) {
								var syncOriginal = alleBilder[j].syncImage;
								syncImage.src = alleBilder[j].syncImage;
							}
						}
					}
				}
			}

			alleBilder[j].onmouseover = function () {
				this.src = this.over;
				if (this.syncImage && (austausch == 'hover')) {
                    syncImage.src = this.syncImage;
                    	debugalert('neues Austauschbild.src:\n'+this.syncImage);
                    }
			};
			alleBilder[j].onmouseout = function () {
				this.src = this.original;
				if (this.syncImage && (austausch == 'hover')) {
                    syncImage.src = syncOriginal;
                    debugalert('voriges Austauschbild wiederherstellen:\n'+syncOriginal);    
                }
			};
		}
	}
	initedRollover = "true";
};

function getNextNode ( o , typeOfNode ) {
    if ( arguments[2] == null ) {
        o = o.nextSibling ;
    }

    while ( o && o.nodeName.toLowerCase() != typeOfNode.toLowerCase () ) {
        c = o.childNodes ;

        for ( var i = 0 ; i < c.length ; i++ ) {
            pSub = getNextNode ( c[i] , typeOfNode , false )  ;

            if ( pSub  ) {
                return pSub ;
            }
        }
        o = o.nextSibling;
    }

    if ( o ) {
        return o ;
    } else {
        return '' ;
    }
};

function debugalert(outputtext){
    if (debug=='true') alert(outputtext);
};

document.getElementsByClassName = function(class_name)
{
  var all_obj,ret_obj=new Array(),j=0,teststr;

  if(document.all)all_obj=document.all;
  else if(document.getElementsByTagName && !document.all) all_obj=document.getElementsByTagName("*");
  for(i=0;i<all_obj.length;i++)
  {
    if(all_obj[i].className.match(class_name))
    {
     ret_obj[j]=all_obj[i];
        j++;
    }
  }
  return ret_obj;
};

function getElementsByClassName (class_name,el,tagName)
{
  var all_obj,ret_obj=new Array(),j=0,teststr;
  if(!el) el = document;
  if(!tagName) tagName = "*";

  all_obj = el.getElementsByTagName(tagName);
  for(i=0;i<all_obj.length;i++)
  {
    if(all_obj[i].className.match(class_name))
    {
     ret_obj[j]=all_obj[i];
        j++;
    }
  }
  return ret_obj;
};

 function jstrigger (class_name, func, el, tagName) {
                obj = getElementsByClassName(class_name,el,tagName);
                if(typeof func == 'function') func(obj);
            };
            
if (document.attachEvent)
attachEvent("onload", function(){if(initedRollover != "true") initRollovers(new Array('0'));});

else addEventListener("load", function(){if(initedRollover != "true") initRollovers(new Array('0'));}, false);
