function Accordion(id) {
  // Speicher das Element der ?bergebenen ID als Akkordion Container
  this.accContainer = document.getElementById(id);
	
  // Alle Elemente mit der CSS-Klasse 'accordionItem' holen
  this.accItems = YAHOO.util.Dom.getElementsByClassName("accordionItem", "div", this.accContainer);
  
  // default Akkordion body H?he definieren
  this.accItemBodyHeight = 0;
  
  // ?ber alle Akkordion Elemente iterieren und jedes einzelne in einem Array speichern
  for (var i=0; i<this.accItems.length; i++) {
    // Aktuelles Akkordion Element als Eltern-Element f?r dazugeh?rigen Header und Body speichern
    this.accItems[i].parent = this;
    // Akkordion Header und Body des aktuellen Akkordion Elements holen und speichern
    this.accItems[i].header = 
      YAHOO.util.Dom.getElementsByClassName("accordionHeader", "div", this.accItems[i])[0];
    this.accItems[i].body = 
      YAHOO.util.Dom.getElementsByClassName("accordionBody", "div", this.accItems[i])[0];
    
    // Pr?fen ob das aktuelle Akkordion Element das aktive Element ist (also eine gr??ere
    // H?he f?r den accordion body gesetzt hat). Normalerweise sollte nur ein Element eine
    // H?he gr??er 0 definiert haben. Wenn die H?he gr??er 0 ist wird das aktuelle Element
    // als aktives Element gespeichert
    if (this.accItems[i].body.offsetHeight > this.accItemBodyHeight) {
      this.accItemBodyHeight = this.accItems[i].body.offsetHeight;
      this.activeItem = this.accItems[i];
      this.activeItem.body.style.height = this.accItemBodyHeight + "px";
    }
    
    // Einen Click Event Listener f?r jeden accordion header registrieren
    YAHOO.util.Event.addListener(this.accItems[i].header, "click", function(){
      // Wenn auf das aktive Element geklickt wurde - nichts machen
      if(this.parent.activeItem == this){
        return;
      }

      // F?r das aktive Element eine "Schrumpf" Animation definieren
      var shrinkLastAccAnim = new YAHOO.util.Anim(this.parent.activeItem.body, {
        height:{from:this.parent.accItemBodyHeight, to:0}}, 0.5);
	    
      // F?r das angeklickte Elment eine "Ausdehnen" Animation definieren
      var expandNewActiveAccAnim = new YAHOO.util.Anim(this.body, {
        height:{from:0, to:this.parent.accItemBodyHeight}}, 0.5);
	    	
      // Selektiertes Element als aktives Element setzen
      expandNewActiveAccAnim.onStart.subscribe(function() {
        this.parent.activeItem = this;
      }, this, true);
			zz = "bs_page.php?tpl=all&id="
			xid = this.body.id;
			zz = zz + this.body.id;
			//document.getElementById('eintraege').style.display = "none";
			ajax_loadContent("array",zz);
			zz = "bs_page.php?tpl=ueber&id="
			zz = zz + this.body.id;
			ajax_loadContent("ueber",zz);
			zz = "bs_page.php?tpl=neue_eintraege&id="
			zz = zz + this.body.id;
			ajax_loadContent("eintraege1",zz);
      shrinkLastAccAnim.animate();
      expandNewActiveAccAnim.animate();
			// start1();

    }, this.accItems[i], true);
  }
  
  // Letzte Pr?fung, falls mehrere Elemente eine H?he angegeben haben. Es wird nur das 
  //aktive Element offen gelassen. Alle anderen Akkordion Elemente erhalten die H?he 0px.
  for(var i=0; i<this.accItems.length; i++){
    if(this.activeItem != this.accItems[i]){
      this.accItems[i].body.style.height = 0 + "px";
    }
  }

};


function geo1(xarray) {
	var gmarkers = [];
  var htmls = [];
  var i = 0;
	var baseIcon = new GIcon();
	baseIcon.iconSize=new GSize(32,32);
	baseIcon.shadowSize=new GSize(56,32);
	baseIcon.iconAnchor=new GPoint(16,32);
	baseIcon.infoWindowAnchor=new GPoint(16,0);
	var camping = new GIcon(baseIcon, "http://www.ostseeservice.de/bilder/pictogramme/pins/camping.png", null, null ); 
	var geo = new GClientGeocoder(new GGeocodeCache()); 
	var map = new GMap(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	var geob = 53.9735;
	var geol = 11.234316;
	if (xarray.length) {
		for (var z=0 ; z < 1; z++ ) {
			var mData = xarray[z].split('|');
			var geob = mData[0];
			var geol = mData[1];
		}
	}
	map.setCenter(new GLatLng( geob, geol ),13 );
	var bounds = new GLatLngBounds();
	var point = new GLatLng(geob, geol);
	bounds.extend(point);
  var tooltip = document.createElement("div");
  document.getElementById("map").appendChild(tooltip);
  tooltip.style.visibility="hidden";
  if (xarray.length) {
		for (n=0 ; n < xarray.length ; n++ ) {
			var mData = xarray[n].split('|');
			var point = new GLatLng(mData[0],mData[1]);
			bounds.extend(point);
 			var marker = new GMarker(point, camping );
			marker = createMarker(point, mData[2], mData[3], mData[4], mData[5], mData[6] );
			// alert(mData[2]+" - "+ mData[3]+" - "+ mData[4]+" - "+mData[5]+" - "+ mData[6]);
			map.addOverlay(marker);
		}
	}
	var level = map.getBoundsZoomLevel(bounds);
	if ( level > 14 ) { level = 14; }
	map.setCenter(bounds.getCenter(), level);
	
}
