String.prototype.ltrim = function (clist) {
	if (clist)
		return this.replace (new RegExp ('^[' + clist + ']+'), '');
	return this.replace (/^\s+/, '');
}

String.prototype.rtrim = function(clist) {
	if (clist)
		return this.replace (new RegExp ('[' + clist + ']+$'), '');
	return this.replace (/\s+$/, '');
}

String.prototype.trim = function(clist) {
	if (clist)
		return this.ltrim(clist).rtrim(clist);
	return this.ltrim().rtrim();
};

/** Namespaces
 * de.gsp.app
 * de.gsp.misc.domready **/
if (!de) var de = new Object();
if (!de.gsp) de.gsp = new Object();
if (!de.gsp.app) de.gsp.app = new Object();
if (!de.gsp.widgets) de.gsp.widgets = new Object();
if (!de.gsp.misc) de.gsp.misc = new Object();
if (!de.gsp.misc.domready) de.gsp.misc.domready = new Object();

/** DOMReady **/
de.gsp.misc.domready.onloadfuncs = function() {}; // stack of functions for DOMReady
de.gsp.misc.domready.registerOnLoad = function(func) {
	var oof = de.gsp.misc.domready.onloadfuncs;
	de.gsp.misc.domready.onloadfuncs = function () {
	   oof();
	   func();
	}
}
de.gsp.misc.domready.alreadyran=false;
if (document.addEventListener) {
	// Mozilla
	document.addEventListener("DOMContentLoaded", function() {
		if (!de.gsp.misc.domready.alreadyran) {
			de.gsp.misc.domready.alreadyran=true;
			de.gsp.misc.domready.onloadfuncs();
		}
	}, false);
} else if (document.all && !window.opera) {
	// This is the IE style which exploits a property
	// of the (standards defined) defer attribute
	document.write("<scr" + "ipt id='DOMReady' defer=true " + "src=//:><\/scr" + "ipt>");  
	document.getElementById("DOMReady").onreadystatechange=function(){
		if (this.readyState=="complete"&&(!de.gsp.misc.domready.alreadyran)){
			de.gsp.misc.domready.alreadyran=true;
			de.gsp.misc.domready.onloadfuncs();
		}
	}
}
de.gsp.misc.domready.oof = window.onload;
window.onload = function() {
	if (typeof(de.gsp.misc.domready.oof) == 'function') {
		de.gsp.misc.domready.oof();
	}
	if (!de.gsp.misc.domready.alreadyran) {
		de.gsp.misc.domready.alreadyran=true;
		de.gsp.misc.domready.onloadfuncs();
	}
}

/** XMLHTTPRequestObject **/

de.gsp.misc.createXmlHttpRequestObject = function()
{
   var xmlHttp;

   // IE
   if(window.ActiveXObject)
   {
      try
      {
         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
         xmlHttp = false;
      }

   } else {
      // other
      try
      {
         xmlHttp = new XMLHttpRequest();
      } catch (e) {
         xmlHttp = false;
      }
   }

   if(!xmlHttp)
      alert("Fehler beim erstellen des XMLHttpRequest-Objectes."+
	      " Bitte aktualisieren Sie ihren Browser!");
   else
      return xmlHttp;
}

/** str_replace **/

de.gsp.misc.str_replace = function(search, replace, subject) {
    return subject.split(search).join(replace);
}

/** decode UTF8-URL URI-Parts **/

de.gsp.misc.decodeUTF8inURL = function(subject) {
    subject = de.gsp.misc.str_replace('%C3%BC','%FC',subject); // ü
    subject = de.gsp.misc.str_replace('%C3%9C','%DC',subject); // Ü
    subject = de.gsp.misc.str_replace('%C3%A4','%E4',subject); // ä
    subject = de.gsp.misc.str_replace('%C3%84','%C4',subject); // Ä
    subject = de.gsp.misc.str_replace('%C3%B6','%F6',subject); // ö
    subject = de.gsp.misc.str_replace('%C3%96','%D6',subject); // Ö
    subject = de.gsp.misc.str_replace('%C3%9F','%DF',subject); // ß
    return subject;
}

/** Mouse **/

de.gsp.misc.Mouse = function(elid) {

	de.gsp.misc.Mouse.x = 0;
	de.gsp.misc.Mouse.y = 0;
	
	if (document.all && !document.captureEvents) {
		de.gsp.misc.Mouse.ieel = (typeof document.compatMode != 'undefined' &&
			document.compatMode != 'BackCompat') ? 'documentElement' : 'body';
	} else { de.gsp.misc.Mouse.ieel = null; }
	
	function onMove(e) {
		
		//e = e || window.event;
		//var target = e.target || e.srcElement || null;
		//if (target.nodeType == 3) target = target.parentNode;
		
		var xPos = e ? e.pageX : window.event.clientX;
		var yPos = e ? e.pageY : window.event.clientY;
		
		if (de.gsp.misc.Mouse.ieel) {
			var ieel = de.gsp.misc.Mouse.ieel;
			xPos += document[ieel].scrollLeft;
			yPos += document[ieel].scrollTop;
		}
		
		de.gsp.misc.Mouse.x = xPos;
		de.gsp.misc.Mouse.y = yPos; 
	}
	
//	document.getElementById(elid).onmousemove = onMove;
	document.onmousemove = onMove;

}

/** Widget: ImageZoom **/

de.gsp.widgets.ImageZoom = function() {
	
	this.zoomimage = function(e) {
		
		e = e || window.event;
		var target = e.target || e.srcElement || null;
		if (target.nodeType == 3) target = target.parentNode;

		if (target) {
			var imgname = null;
			imgsibling = target.nextSibling;
			if (imgsibling && imgsibling.nodeType == 8) {
				var confcomm = imgsibling.nodeValue.split("\n");
				for (j = 0; j < confcomm.length; j++) {
					confline = confcomm[j].split(':',2);
					if (confline.length > 0) {
						conflinecom = confline[0].trim();
						conflineval = confline[1].trim();
						if (conflinecom == 'zoomable')
						imgname = conflineval; 
					}
				}
			}
			if (imgname) {
				container = document.getElementById('imagezoom-container');
				container.childNodes[0].src = imgname;
				container.style.display = 'block';
				de.gsp.app.huerdenlos_obj.imagezoom.placeimage(e);
				container.childNodes[0].onload = de.gsp.app.huerdenlos_obj.imagezoom.placeimage;
			}
		}
	}
	
	this.placeimage = function(e) {
		var container = document.getElementById('imagezoom-container');
		var w = 0; //becomes viewport width
		var h = 0; //becomes viewport height
		var x = 0; //becomes left co. of visible viewport area
		var y = 0; //becomes top co. of visible viewport area
		var nx = de.gsp.misc.Mouse.x + 20;
		var ny = de.gsp.misc.Mouse.y + 20;
		var iw = container.childNodes[0].width;
		var ih = container.childNodes[0].height;
		if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			//IE 6+ in 'standards compliant mode'
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			//IE 4 compatible
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
		if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
			//DOM compliant
			y = document.body.scrollTop;
			x = document.body.scrollLeft;
		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
			//IE6 standards compliant mode
			y = document.documentElement.scrollTop;
			x = document.documentElement.scrollLeft;
		}
		if ((nx + iw + 20) > (x + w)) {
			nx = (x + w) - (iw + 40);
		}
		if ((ny + ih + 20) > (y + h)) {
			ny = (y + h) - (ih + 40);
		}
		container.style.left = ( nx ) + 'px';
		container.style.top = ( ny) + 'px';
	}
	
	this.hidecontainer = function(e) {
		container = document.getElementById('imagezoom-container');
		if (container) {
			container.style.display = 'none';
		}
	}
	
	this.init = function(pelid) {
		pel = pelid ? document.getElementById(pelid) : document;
		container = document.createElement('div');
		container.style.display = 'none';
		container.style.position = 'absolute';
		container.style.backgroundColor = '#ffffff';
		container.style.padding = '0.25em';
		container.style.border = '1px solid #000000'
		container.style.zIndex = '100';
		container.setAttribute('id','imagezoom-container');
		container.appendChild(document.createElement('img'));
		if (de.gsp.app.huerdenlos_obj.config.js.imagezoom.mode.trim() == '1') {
			tmpp = document.createElement('p');
			tmpp.style.fontSize = '0.8em';
			tmpp.style.fontFamily = 'sans-serif';
			tmpp.style.textAlign = 'center';
			tmpp.style.margin = '0.25em';
			tmpp.appendChild(document.createTextNode('Zum Schließen bitte auf das Bild klicken!'));
			container.appendChild(tmpp);
			// Klick
			if (container.addEventListener) {
				container.addEventListener('click', this.hidecontainer, false);
			} else if (container.attachEvent) {
				container.attachEvent('onclick', this.hidecontainer);
			} else {
				container['onclick'] = this.hidecontainer;
			}
		}
		//pel.appendChild(container);
		document.body.appendChild(container);
		
		imgelements = document.getElementsByTagName('img');
		if (imgelements) {
			for (i = 0; i < imgelements.length; i++) {
				imgsibling = imgelements[i].nextSibling;
				if (imgsibling && imgsibling.nodeType == 8) {
					var confcomm = imgsibling.nodeValue.split("\n");
					for (j = 0; j < confcomm.length; j++) {
						confline = confcomm[j].split(':');
						if (confline.length > 0) {
							conflinecom = confline[0].trim();
							conflineval = confline[1].trim();
							if (conflinecom == 'zoomable') {
								if (de.gsp.app.huerdenlos_obj.config.js.imagezoom.mode.trim() == '0') {
									// Photolia
									if (imgelements[i].addEventListener) {
										imgelements[i].addEventListener('mousemove', this.zoomimage, false);
									} else if (imgelements[i].attachEvent) {
										imgelements[i].attachEvent('onmousemove', this.zoomimage);
									} else {
										imgelements[i]['onmousemove'] = this.zoomimage;
									}
									if (imgelements[i].addEventListener) {
										imgelements[i].addEventListener('mouseout', this.hidecontainer, false);
									} else if (imgelements[i].attachEvent) {
										imgelements[i].attachEvent('onmouseout', this.hidecontainer);
									} else {
										imgelements[i]['onmouseout'] = this.hidecontainer;
									}
								} else if (de.gsp.app.huerdenlos_obj.config.js.imagezoom.mode.trim() == '1') {
									// Klick
									if (imgelements[i].addEventListener) {
										imgelements[i].addEventListener('click', this.zoomimage, false);
									} else if (imgelements[i].attachEvent) {
										imgelements[i].attachEvent('onclick', this.zoomimage);
									} else {
										imgelements[i]['onclick'] = this.zoomimage;
									}
								}
								//imgelements[i].onmousemove = this.zoomimage;
								//imgelements[i].onmouseout = this.hidecontainer;
								imgelements[i].style.cursor = 'default';
								try {
								imgelements[i].style.cursor = '-webkit-zoom-in';
								} catch (err) {}
								try {
									imgelements[i].style.cursor = '-moz-zoom-in';
								} catch (err) {}
							}
						}
					}
				}
			}
		}
	}
}

/** Widget: HuerdenlosAjaxWhereBox **/

de.gsp.widgets.HuerdenlosAjaxWhereBox = function() {
	
	this.onkeypress = function(e) {
		container = de.gsp.widgets.HuerdenlosAjaxWhereBox.listcontainer;
		
		e = e || window.event;
		el = document.getElementById('huerdenlos-search-where');
		keycode = e.keyCode || e.which;
		
		if (keycode == 38) {
			if ((de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem - 1) > -1) {
				de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem =
					de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem - 1;
				de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.renderAjaxBox();
			}
		}
		else if (keycode == 40) {
			lis = container.getElementsByTagName('li');
			if ((de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem + 1) < lis.length) {
				de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem =
					de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem + 1;
				de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.renderAjaxBox();
			}
		}
		else if (keycode == 13) {
			if (de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem > -1) {
				lis = container.getElementsByTagName('li');
				document.getElementById('huerdenlos-search-where').value =
					lis[de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem].firstChild.nodeValue;
			}
		} else {
			if (de.gsp.widgets.HuerdenlosAjaxWhereBox.requestinprogress) {
				de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.createRequestObject();
			}
			var searchword = el.value;
			if (keycode > 64 && keycode < 91) {
				searchword = searchword + String.fromCharCode(keycode).toLowerCase();
			}
			if (keycode == 8) {
				searchword = searchword.substring(0,searchword.length - 1);
			}
			searchword = de.gsp.misc.decodeUTF8inURL(encodeURIComponent(searchword));
			if (searchword == '') {
				de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.hidelist();
			} else {
				de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.open("GET", "/huerdenlos/huerdenlos_v1/ajax_where.php?searchword="+searchword, true);
				de.gsp.widgets.HuerdenlosAjaxWhereBox.requestinprogress = true;
				de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.send(null);
				de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem = -1;
				de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.renderAjaxBox();
			}
		}
	}
	
	this.renderAjaxBox = function () {
		container = de.gsp.widgets.HuerdenlosAjaxWhereBox.listcontainer;
		lis = container.getElementsByTagName('li');
		for (i=0; i<lis.length; i++) {
			lis[i].className = '';
			if (i == de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem)
				lis[i].className = 'selected';
		}
	}
	
	this.onitemclick = function(e) {
		e = e || window.event;
		var target = e.target || e.srcElement || null;
		if (target.nodeType == 3) target = target.parentNode;
		
		document.getElementById('huerdenlos-search-where').value = target.firstChild.nodeValue;
	}
	
	this.hidelist = function() {
		container = de.gsp.widgets.HuerdenlosAjaxWhereBox.listcontainer;
		container.style.display = 'none';
	}
	
	this.hidelistd = function() {
		setTimeout('de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.hidelist()',500)
	}
	
	this.createRequestObject = function() {
		de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject = null;
		de.gsp.widgets.HuerdenlosAjaxWhereBox.requestinprogress = false;
		de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject = de.gsp.misc.createXmlHttpRequestObject();
		de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.onreadystatechange = function () {
			if(de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.readyState == 4) {
				if(de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.status == 200) {
					xmlResponse = de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.responseText;
					container = de.gsp.widgets.HuerdenlosAjaxWhereBox.listcontainer;
					if (xmlResponse == "") {
						container.style.display = 'block';
						container.innerHTML = "Keine Eintraege gefunden";
					} else {
						container.style.display = 'block';
						container.innerHTML = xmlResponse;
						lis = container.getElementsByTagName('li');
						for (i=0; i<lis.length; i++) {
							if (lis[i].addEventListener) {
								lis[i].addEventListener('click', de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.onitemclick, false);
							} else if (lis[i].attachEvent) {
								lis[i].attachEvent('onclick', de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.onitemclick);
							} else {
								lis[i]['onclick'] = de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj.onitemclick;
							}
						}
					}
					de.gsp.widgets.HuerdenlosAjaxWhereBox.requestinprogress = false;
				} else {
					de.gsp.widgets.HuerdenlosAjaxWhereBox.requestinprogress = false;
					alert("Beim Zugriff auf den Server ist ein Problem aufgetreten: " +
							de.gsp.widgets.HuerdenlosAjaxWhereBox.xmlHttpRequestObject.statusText);
				}
			}
		}
	}
	
	this.init = function() {
		el = document.getElementById('huerdenlos-search-where');
		if (el) {
			container = document.createElement('div');
			container.style.display = 'none';
			container.style.position = 'absolute';
			container.style.padding = '0';
			container.style.border = '1px solid #000000';
			container.style.zIndex = '100';
			container.className = 'huerdenlos-search-where-ajaxbox';
			var elleft = 0;
			if(el.offsetParent) {
				obj = el;
				while(obj.offsetParent) {
					elleft += obj.offsetLeft;
					obj = obj.offsetParent;
				}
			}
			else if(el.x) 
			elleft = el.x;
			var eltop = 0;
			if(el.offsetParent) {
				obj = el;
				while(obj.offsetParent) {
					eltop += obj.offsetTop;
					obj = obj.offsetParent;
				}
			}
			else if(el.y) 
			eltop = el.y;
			container.style.left = elleft + 'px';
			container.style.top = eltop + el.clientHeight + 'px';
			container.style.width = el.clientWidth + 'px';
			document.body.appendChild(container);
			
			de.gsp.widgets.HuerdenlosAjaxWhereBox.selecteditem = -1;
			de.gsp.widgets.HuerdenlosAjaxWhereBox.thisobj = this;
			de.gsp.widgets.HuerdenlosAjaxWhereBox.listcontainer = container;
			this.createRequestObject();
			if (el.addEventListener) {
				el.addEventListener('keydown', this.onkeypress, false);
			} else if (el.attachEvent) {
				el.attachEvent('onkeydown', this.onkeypress);
			} else {
				el['onkeydown'] = this.onkeypress;
			}
			if (el.addEventListener) {
				el.addEventListener('blur', this.hidelistd, false);
			} else if (el.attachEvent) {
				el.attachEvent('onblur', this.hidelistd);
			} else {
				el['onblur'] = this.hidelistd;
			}
			el.setAttribute('autocomplete', 'off');
		}
	}
}

/** Widget: CategoriesFoldBox **/
de.gsp.widgets.CategoriesFoldBox = function() {
	
	this.init = function(elid) {
		el = document.getElementById(elid);
		if (el) {
			elc = el.getElementsByTagName('div');
			for (i = 0; i < elc.length; i++) {
				grpid = elc[i].getAttribute('id');
				if (grpid) {
					ulel = elc[i].getElementsByTagName('ul');
					if (ulel[0]) ulel[0].style.display = 'none';
					//elc[i].setAttribute('onclick', objname+'.onGroupClick(\''+grpid+'\')');
					if (elc[i].addEventListener) {
						//elc[i].addEventListener('click', function() {
						//	onGroupClick(grpid);
						//}, false);
						elc[i].addEventListener('click', this.onGroupClick, false);
					} else if (elc[i].attachEvent) {
						//elc[i].attachEvent('onclick', function() {
						//	onGroupClick(grpid);
						//});
						elc[i].attachEvent('onclick', this.onGroupClick);
					} else {
						elc[i]['onclick'] = this.onGroupClick;
					}
				}
			}
		} else {
			alert('Container ' + elid + ' nicht gefunden!');
		}
		
	}
	
	this.onGroupClick = function(e) {
		e = e || window.event;
		var target = e.target || e.srcElement || null;
		if (target.nodeType == 3) target = target.parentNode;
		if (target.parentNode) {
			var ulel = target.parentNode.getElementsByTagName('ul');
			if (ulel[0]) {
				if (ulel[0].style.display == 'none') {
					ulel[0].style.display = 'block';
				} else {
					ulel[0].style.display = 'none';
				}
			}
		}
	}

}

/** Widget: AddressListBoxes **/
de.gsp.widgets.AddressListBoxes = function() {
	
	this.init = function() {
		var hl = document.getElementById('huerdenlos-list'); 
		if (hl) {
			hlels = hl.getElementsByTagName('li');
			for (i = 0; i < hlels.length; i++ ) {
				divels = hlels[i].getElementsByTagName('div');
				if (divels[0].addEventListener) {
					divels[0].addEventListener('click', this.onBoxClick, false);
				} else if (divels[0].attachEvent) {
					divels[0].attachEvent('onclick', this.onBoxClick);
				} else {
					divels[0]['onclick'] = this.onBoxClick;
				}
				divels[0].style.cursor = 'pointer';
			}
		}
		
	}
	
	this.onBoxClick = function(e) {
		e = e || window.event;
		var target = e.target || e.srcElement || null;
		if (target.nodeType == 3) target = target.parentNode;
		while (target.nodeName != 'DIV') {
			target = target.parentNode;
		}
		aels = target.getElementsByTagName('a');
		if (aels[0]) {
			location.href = aels[0].getAttribute('href');
		}
	}

}

/** Hürdenlos **/
de.gsp.app.huerdenlos = function() {
	
	this.obj = null;
	this.mouse = null;
	this.config = null;
	
	this.onFoldButtonClick = function(eln) {
		opened = false;
		el = document.getElementById(eln);
		if (el) {
			var elc = el.getElementsByTagName('div');
			var elh = null;
			for (i = 0; i < elc.length; i++ ) {
				if (elc[i].className == 'box-header')
					elh = elc[i];
			}
			if (elh) {
				var elhc = elh.getElementsByTagName('div');
				var elhbtn = null;
				for (i = 0; i < elhc.length; i++ ) {
					if (elhc[i].className == 'fold-button')
						elhbtn = elhc[i];
				}
			}
			var elco = null;
			for (i = 0; i < elc.length; i++ ) {
				if (elc[i].className == 'box-content')
					elco = elc[i];
			}
		}
		if (elco) {
			if (elco.style.display == 'none') {
				elco.style.display = 'block';
				imagezoom = new de.gsp.widgets.ImageZoom();
				imagezoom.init('page');
				if (elhbtn) {
					elhbtn.childNodes[0].setAttribute('src','fileadmin/templates/huerdenlos/images/icons/close.gif');
					elhbtn.childNodes[0].setAttribute('alt','Pfeil nach oben');
					elhbtn.childNodes[1].nodeValue = ' zuklappen';
					opened = true;
				}
			} else {
				elco.style.display = 'none';
				if (elhbtn) {
					elhbtn.childNodes[0].setAttribute('src','fileadmin/templates/huerdenlos/images/icons/open.gif');
					elhbtn.childNodes[0].setAttribute('alt','Pfeil nach unten');
					elhbtn.childNodes[1].nodeValue = ' aufklappen';
				}
			}
		}
		if (opened) {
			el.parentNode.appendChild(el);
			elpc = el.parentNode.getElementsByTagName('div');	
			for (i = 0; i < elpc.length; i++ ) {
				var elid = elpc[i].getAttribute('id');
				if (elid != eln && (elid == 'huerdenlos-longdescription' || elid == 'huerdenlos-shortdescription')) {
					var elco = null;
					var elc = elpc[i].childNodes;
					for (j = 0; j < elc.length; j++ ) {
						if (elc[j].className == 'box-content')
							elco = elc[j];
					}
					elco.style.display = 'none';
					var elh = null;
					for (j = 0; j < elc.length; j++ ) {
						if (elc[j].className == 'box-header')
							elh = elc[j];
					}
					if (elh) {
						var elhc = elh.getElementsByTagName('div');
						var elhbtn = null;
						for (j = 0; j < elhc.length; j++ ) {
							if (elhc[j].className == 'fold-button')
								elhbtn = elhc[j];
						}
					}
					if (elhbtn) {
						elhbtn.childNodes[0].setAttribute('src','fileadmin/templates/huerdenlos/images/icons/open.gif');
						elhbtn.childNodes[0].setAttribute('alt','Pfeil nach unten');
						elhbtn.childNodes[1].nodeValue = ' aufklappen';
					}
				}
			}
		}
	}
	
	this.init = function() {
		if (document) {
			
			els = document.getElementsByTagName('meta');
			if (els) {
				for (i = 0; i < els.length; i++) {
					if (els[i].name == 'jsconfig') {
						de.gsp.app.huerdenlos_obj.config = eval (' ( ' + els[i].getAttribute('content') + ' ) ');
					}
				}
			}
			
			// Mouse Handler
			de.gsp.app.huerdenlos_obj.mouse = new de.gsp.misc.Mouse('page');
			de.gsp.app.huerdenlos_obj.imagezoom = new de.gsp.widgets.ImageZoom();
			de.gsp.app.huerdenlos_obj.imagezoom.init('page');
			
			de.gsp.app.huerdenlos_obj.ajaxwherebox = new de.gsp.widgets.HuerdenlosAjaxWhereBox();
			de.gsp.app.huerdenlos_obj.ajaxwherebox.init();
			
			// CategoriesFoldBox?
			if (document.getElementById('categories')) {
				var categories = new de.gsp.widgets.CategoriesFoldBox();
				categories.init('categories');
			}
			
			// Adress List Boxes
			boxes = new de.gsp.widgets.AddressListBoxes();
			boxes.init();
			
			// is this the detail page?
			/** if (document.getElementById('huerdenlos-details')) {
				var ld = document.getElementById('huerdenlos-longdescription');
				if (ld) {
					var ldc = ld.getElementsByTagName('div');
					var ldh = null;
					for (i = 0; i < ldc.length; i++ ) {
						if (ldc[i].className == 'box-header')
							ldh = ldc[i];
					}
					var ldco = null;
					for (i = 0; i < ldc.length; i++ ) {
						if (ldc[i].className == 'box-content')
							ldco = ldc[i];
					}
				}
				if (ldh) {
					ldhbtn = document.createElement('div');
					ldhbtn.className = 'fold-button';
					ldhbtn.setAttribute('id', 'huerdenlos-longdescription-foldbutton');
					ldhbtn.setAttribute('onclick', 'de.gsp.app.huerdenlos_obj.onFoldButtonClick(\'huerdenlos-longdescription\')');
					if (ldhbtn.addEventListener) {
						ldhbtn.addEventListener('click', function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-longdescription');
						}, false);
					} else if (ldhbtn.attachEvent) {
						ldhbtn.attachEvent('onclick', function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-longdescription');
						});
					} else {
						ldhbtn['onclick'] = function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-longdescription');
						};
					}
					ldhbtnimg = document.createElement('img');
					ldhbtnimg.setAttribute('src','fileadmin/templates/huerdenlos/images/icons/open.gif');
					ldhbtnimg.setAttribute('alt','Pfeil nach unten');
					ldhbtntxt = document.createTextNode(' aufklappen');
					ldhbtn.appendChild(ldhbtnimg);
					ldhbtn.appendChild(ldhbtntxt);
					ldh.insertBefore(ldhbtn,ldh.firstChild);
				}
				if (ldco) {
					ldco.style.display = 'none';
				}
				var sd = document.getElementById('huerdenlos-shortdescription');
				if (sd) {
					var sdc = sd.getElementsByTagName('div');
					var sdh = null;
					for (i = 0; i < sdc.length; i++ ) {
						if (sdc[i].className == 'box-header')
							sdh = sdc[i];
					}
				}
				if (sdh) {
					sdhbtn = document.createElement('div');
					sdhbtn.className = 'fold-button';
					sdhbtn.setAttribute('id', 'huerdenlos-longdescription-foldbutton');
					sdhbtn.setAttribute('onclick', 'de.gsp.app.huerdenlos_obj.onFoldButtonClick(\'huerdenlos-shortdescription\')');
					if (sdhbtn.addEventListener) {
						sdhbtn.addEventListener('click', function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-shortdescription');
						}, false);
					} else if (sdhbtn.attachEvent) {
						sdhbtn.attachEvent('onclick', function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-shortdescription');
						});
					} else {
						sdhbtn['onclick'] = function() {
							de.gsp.app.huerdenlos_obj.onFoldButtonClick('huerdenlos-shortdescription');
						};
					}
					sdhbtnimg = document.createElement('img');
					sdhbtnimg.setAttribute('src','fileadmin/templates/huerdenlos/images/icons/close.gif');
					sdhbtnimg.setAttribute('alt','Pfeil nach oben');
					sdhbtntxt = document.createTextNode(' zuklappen');
					sdhbtn.appendChild(sdhbtnimg);
					sdhbtn.appendChild(sdhbtntxt);
					sdh.insertBefore(sdhbtn,sdh.firstChild);
				}
				if (ld && sd) {
					var ldcl=ld.cloneNode(true);
					var sdcl=sd.cloneNode(true);
					ld.parentNode.replaceChild(sdcl, ld);
					sd.parentNode.replaceChild(ldcl, sd);
				}
			}**/
		}		
	}
	
}

de.gsp.app.huerdenlos_obj = new de.gsp.app.huerdenlos();
de.gsp.misc.domready.registerOnLoad(de.gsp.app.huerdenlos_obj.init);
