/**
 * Gibt alle Elemente mit der Klasse className ab dem 
 * Element parentElement zurück
 * 
 */   
function getElementsByClass(className, parentElement) {

  if (!parentElement) parentElement = document;
  //Array mit allen HTML Tags erzeugen
  var allHTMLTags = parentElement.getElementsByTagName('*');
  
  //Rückgabe-Array
  var foundTags = new Array();
  
  //alle Tags durchlaufen
  for (var i=0; i < allHTMLTags.length; i++) {
  
    //Prüfen, ob die Klasse der gesuchten entspricht
    if (allHTMLTags[i].className == className) {
      foundTags.push(allHTMLTags[i]);
    }
  }
  
  return foundTags;
}


/**
 * Setzt die Event-Handler der Menüelemente
 * 
 */
function createMenu() {
  var titleElements = getElementsByClass('category_title');
  
  for (var i=0; i < titleElements.length; i++) {
    //MouseOver-Event setzen
    titleElements[i].onmouseover =
      function() {
        var elements = getElementsByClass('category_items', this);
        for (var j=0; j < elements.length; j++) {
          elements[j].style.display = 'block';
        }
      }
    
    //MouseOut-Event setzen  
    titleElements[i].onmouseout =
      function() {
        var elements = getElementsByClass('category_items', this);
        for (var j=0; j < elements.length; j++) {
          elements[j].style.display = 'none';
        }
      }


    //Das Menü selbst soll so funktionieren wie der oberste Menüpunkt
    var menuElements = getElementsByClass('category_items', titleElements[i]);
    
    for (var j=0; j < menuElements.length; j++) {
      menuElements[j].onmouseover =
        function() {
          this.style.display = 'block';
        };
        
      menuElements[j].onmouseout =
        function() {
          this.style.display = 'none';
        };
    }
        
  }
}


/**
 * Browsererkennung
 * 
 */  
function msieversion() {
  var ua = window.navigator.userAgent
  var msie = ua.indexOf ( "MSIE " )

  if ( msie > 0 )      // If Internet Explorer, return version number
     return parseInt (ua.substring (msie+5, ua.indexOf (".", msie )))
  else                 // If another browser, return 0
     return 0
}


/**
 * Neues Menu mit jQuery
 * 
 */  
function createNewMenu() {
  $('.category_title').bind({
    'mouseenter': function() {
      $(this).children('.category_items').stop(false, true).slideDown();
    },
    
    'mouseleave': function() {
      $(this).children('.category_items').stop(false, true).slideUp();
    }
  });
}


function load(src, id) {
	http_request = true;
	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Das verlangte Objekt konnte nicht erzeugt werden! Bitte ueberpruefen Sie Ihre JAVA Einstellungen!');
		return false;
	}
	
	http_request.onreadystatechange = function(){show(id)}
	http_request.open('GET', src, true);
	http_request.send(null);
}


function show(id) {
	if (http_request.readyState == 4) {
		document.getElementById(id).innerHTML = http_request.responseText;
	}
}
