  /**
   * Dieser Konstruktor zerlegt den Searchpart des URIs im aktuellen
   * Fenster und erzeugt ein neues Objekt, dessen Eigenschaften Zugriff
   * auf die dort übergebenen (skalaren) Daten erlaubt. Beispiele:
   * 1) Searchpart ist "?a=42&b=h%E4ufig%20gestellte%20Frage", ein
   *    mittels "new parsedSearchParams()" erzeugtes Objekt besitzt dann
   *    die Eigenschaften "a" mit dem Inhalt "42" (String) sowie "b" mit
   *    dem Inhalt "häufig gestellte Frage" (String).
   * 2) Searchpart ist "?c=1&c=2&c=3&d=", das Objekt besitzt dann die
   *    Eigenschaften "c" mit dem Inhalt ["1","2","3"] (ein Array von
   *    Strings) sowie "d" mit dem Inhalt null (Object).
   */
  function parsedSearchParams() {
	  
    var aFracs, aNamVal, i, sName, sValue, sType;
    // Entfernen des "?" und Zerlegen in Teilstrings an "&" und ";".
    aFracs = location.search.substring(1).split(/[&;]/);
    // Iterieren über die so gewonnenen Teilstrings.
    for (i=0; i<aFracs.length; i++) {
      // Zerlegen des Teilstrings in Bezeichner und Wert an "=".
      var aNamVal = aFracs[i].split(/=/);
      // Nur, wenn Bezeichner vorhanden, weiter verarbeiten.
      if (aNamVal[0]) {
		 
        // Kodierungen entfernen und leere Werte durch null ersetzen.
        sName = unescape(aNamVal[0]);
        sValue = aNamVal[1]? unescape(aNamVal[1]) : null;
		//standard
		if (document.getElementById(sName)) {
			//alert();
			typ = document.getElementById(sName).type;
		    if (typ=="text") document.getElementById(sName).value = sValue;
			if (typ=="textarea") document.getElementById(sName).innerText = sValue;	
			if (typ=="checkbox" && sValue) document.getElementById(sName).checked = true;
		}
		//pflichtfeld?		
		maybeStar = "*" + sName;
		if (document.getElementById(maybeStar)) {
		    typ = document.getElementById(maybeStar).type;
		    if (typ=="text") document.getElementById(maybeStar).value = sValue;					
			if (typ=="textarea") document.getElementById(maybeStar).innerText = sValue;	
			if (typ=="checkbox" && sValue) document.getElementById(maybeStar).checked = true;	
			//alert(sValue);
			//if (typ=="select" && sValue) document.getElementById(maybeStar).selectedIndex = 3;
			}	
			
			
		//array feld...	
				
		/*maybeArray = sName + "[]";
		if (document.getElementById(maybeArray)) {
			//alert();
			typ = document.getElementById(maybeArray).type;
			document.getElementById(maybeArray[sValue]).checked = true;			
		}*/
				
        // Typ der Eigenschaft mit diesem Bezeichner holen.
        sType = typeof this[sName];
       
     /*if (sName == 'Anrede') {
            document.getElementById('zimmerkategorie').selectedIndex = sValue; 
            } else {
            document.getElementById(sName).options[0].text = sValue;
            }*/
        		
        // Wenn Eigenschaft noch nicht vorhanden, diese erzeugen
        if (sType == "undefined") {
          this[sName] = sValue;
        }
        else {
          // Andernfalls Eigenschaft ggf. in Array wandeln.
          if (sType != "object" || this[sName] == null) {
            this[sName] = [ this[sName] ];
          }
          // Wert dem Array hinzufügen.
          this[sName][this[sName].length] = sValue;
		  
        }
      }
    }
  }
att = new parsedSearchParams();