  /* Aufrufen des Toolbox-Windows (alt) ----------------------------------------------------------------------------------- */
	function callSBerater(id) {OpenToolboxWindow(id, new Array(), new Array());}

	/* Aufrufen des Toolbox-Windows (Low-Level) ----------------------- */
	function OpenToolboxWindow(tool_id, window_parameters, application_parameters) {

		/* Ermittle den Pfad des Toolbox-Windows (für alle Tools dasselbe) */
		this.url_path = "kontakt/kontakt_de.html";

		/* Ermittle Window-Parameter anhand der übergebenen Daten und setze nicht vorhandene
		   Parameter durch Default-Daten */

		this.window_width  = 780;
		this.window_height = 500;

		if ((ValueOfParameterInArray(application_parameters, "navigation") == "0") || 
		    (tool_id.substr(-6,6).toUpperCase() == "SEARCH")  ||
		    (tool_id.substr(-7,7).toUpperCase() == "SITEMAP") ||
		    (ValueOfParameterInArray(application_parameters, "tool_id").substr(-6 , 6).toUpperCase() == "SEARCH")  ||
		    (ValueOfParameterInArray(application_parameters, "tool_id").substr(-7 , 7).toUpperCase() == "SITEMAP") ||
		    (tool_id.substr(-6,6).toUpperCase() == "SEARCHSGRUPPE")  ||
		    (tool_id.substr(-7,7).toUpperCase() == "CONTACTSGRUPPE") ||
		    (ValueOfParameterInArray(application_parameters, "tool_id").substr(-13,13).toUpperCase() == "SEARCHSGRUPPE")  ||
		    (ValueOfParameterInArray(application_parameters, "tool_id").substr(-14,14).toUpperCase() == "CONTACTSGRUPPE") 
			) {
			this.window_width  = 637;
			this.window_height = 500;
			this.window_name   = "ToolboxNoNavigation";
			application_parameters = AddParameterToArray(application_parameters, NamedParameter("navigation", "0"));
		} else {
			this.window_width  = 780;
			this.window_height = 500;
			this.window_name   = "Toolbox";
		}

		this.default_window_parameters = new Array(	NamedParameter("name",             this.window_name),
													NamedParameter("width",            this.window_width),
													NamedParameter("height",           this.window_height),
													NamedParameter("menubar",          "no"),
													NamedParameter("toolbar",          "no"),      
													NamedParameter("scrollbars",       "yes"),   
													NamedParameter("resizable",        "no"),    
													NamedParameter("status",           "yes"),       
													NamedParameter("location",         "no")
												  );
		this.effective_window_parameters = new Array();													  

		for (this.i=0; (window_parameters != null) && (this.i < window_parameters.length); this.i++) {
			this.effective_window_parameters = AddParameterToArray(this.effective_window_parameters, window_parameters[this.i]);
		}
		for (this.i=0; (this.default_window_parameters != null) && (this.i < this.default_window_parameters.length); this.i++) {
			this.effective_window_parameters = AddParameterToArray(this.effective_window_parameters, this.default_window_parameters[this.i]);
		}

		/* Ermittle aus den Variablen des Document-Objekts (sofern vorhanden ), welche s Site-Information im aktuellen
		   Dokument angezeigt werden. Diese Variablen sollten im Zuge des Seitenaufbaus gesetzt werden */
		if (typeof(document.sst_env_application)    != "undefined") {this.application    = document.sst_env_application;}    else {this.application    = "SSITE";}
		if (typeof(document.sst_env_institute_id)   != "undefined") {this.institute_id   = document.sst_env_institute_id;}   else {this.institute_id   = 2;}
		if (typeof(document.sst_env_portalgroup_id) != "undefined") {this.portalgroup_id = document.sst_env_portalgroup_id;} else {this.portalgroup_id = 1;}
		if (typeof(document.sst_env_portal_id)      != "undefined") {this.portal_id      = document.sst_env_portal_id;}      else {this.portal_id      = "";}
		if (typeof(document.sst_env_homepage_id)    != "undefined") {this.homepage_id    = document.sst_env_homepage_id;}    else {this.homepage_id    = this.portal_id;}
		if (typeof(document.sst_env_node_id)        != "undefined") {this.node_id        = document.sst_env_node_id;}        else {this.node_id        = "";}
		if (typeof(document.sst_env_content_id)     != "undefined") {this.content_id     = document.sst_env_content_id;}     else {this.content_id     = "";}
		if (typeof(document.sst_env_slang_name)     != "undefined") {this.slang_name     = document.sst_env_slang_name;}     else {this.slang_name     = "Deutsch";}
		if (typeof(document.sst_env_data_mode)      != "undefined") {this.data_mode      = document.sst_env_data_mode;}      else {this.data_mode      = "live";}
		if (typeof(document.sst_env_view_mode)      != "undefined") {this.view_mode      = document.sst_env_view_mode;}      else {this.view_mode      = "screen";}

		/* Merge Default-Parameter und übergebene Parameter und bestimme dann die effektiven Parameter */

		this.default_application_parameters = new Array(	NamedParameter("application",      application) ,
															NamedParameter("trigger",          "DEFAULT"),
															NamedParameter("tool_id",          tool_id),
															NamedParameter("institute_id",     this.institute_id),
															NamedParameter("portalgroup_id",   this.portalgroup_id),
															NamedParameter("portal_id",        this.portal_id),
															NamedParameter("homepage_id",      this.homepage_id),
															NamedParameter("node_id",          this.node_id),
															NamedParameter("content_id",       this.content_id),
															NamedParameter("slang_name",       this.slang_name),
															NamedParameter("data_mode",        this.data_mode), 
															NamedParameter("view_mode",        this.view_mode)
													  );
		this.effective_application_parameters = new Array();													  

		for (this.i=0; (application_parameters != null) && (this.i < application_parameters.length); this.i++) {
			this.effective_application_parameters = AddParameterToArray(this.effective_application_parameters, application_parameters[this.i]);
		}
		for (this.i=0; (this.default_application_parameters != null) && (this.i < this.default_application_parameters.length); this.i++) {
			this.effective_application_parameters = AddParameterToArray(this.effective_application_parameters, this.default_application_parameters[this.i]);
		}

		/* Spezial-Behandlung client-seitige Parameter-Überprüfung */
		if ((ValueOfParameterInArray(this.effective_application_parameters, "tool_id").toUpperCase() == "SEARCH") && 
		    (ValueOfParameterInArray(this.effective_application_parameters, "search_string").length < 3)) {
			switch (ValueOfParameterInArray(this.effective_application_parameters, "slang_name")) {
				case "Englisch": alert("Please enter at least 3 characters per word, not counting the asterisk."); return false;
				default:         alert("Bitte geben Sie nur Wörter an, die (exklusive Stern) mindestens 3 Zeichen lang sind."); return false;
			}
		}

		/* Öffnen der Toolbox */
 		return OpenPopUpWindow(this.url_path, this.effective_window_parameters, this.effective_application_parameters); 
	}

	/* Hilfsfunktion für Parameter -------------------------------------- */
	function NamedParameter(name, value) {return new Array (name, value);}

	function AddParameterToArray(parameter_array, parameter) {
		if (parameter_array == null) { parameter_array = new Array(); }
		if (parameter != null) {
			for (this.i_1=0; this.i_1 < parameter_array.length; this.i_1++) {
				if (parameter_array[this.i_1][0] == parameter[0]) {return parameter_array;}
			}
			parameter_array = parameter_array.concat(new Array (parameter));
		}
		return parameter_array;
	}

	function ValueOfParameterInArray(parameter_array, parameter_name) {
		this.parameter_value = "";
		if (parameter_array != null) {
			if (parameter_name != null) {
				for (this.i_2=0; this.i_2 < parameter_array.length; this.i_2++) {
					if (parameter_array[this.i_2][0] == parameter_name) {return parameter_array[this.i_2][1];}
				}
			}
		}
		return this.parameter_value;
	}


