var CategoryArray = [
[0,'--- DEUTSCHLAND ---',0],[0,'Berlin',0],[0,'Bonn',0],[0,'Dortmund',0],[0,'Dresden',0],[0,'Duisburg',0],[0,'Düsseldorf',0],[0,'Essen',0],[0,'Frankfurt',0],[0,'Hamburg',0],[0,'Hannover',0],[0,'Köln',0],[0,'Leipzig',0],[0,'München',0],[0,'Nürnberg',0],[0,'Stuttgart',0],[0,'',0],[0,'--- ÖSTERREICH ---',0],[0,'Bregenz',0],[0,'Eisenstadt',0],[0,'Graz',0],[0,'Innsbruck',0],[0,'Klagenfurt',0],[0,'Linz',0],[0,'Salzburg',0],[0,'St. Pölten',0],[0,'Villach',0],[0,'Wien',0],[0,'',0],[0,'--- SCHWEIZ ---',0],[0,'Basel',0],[0,'Bern',0],[0,'Genf',0],[0,'St. Gallen',0],[0,'Zürich',0],[0,'Zug',0],[0,'',0],[0,'Sonstige',0],
[1,'Auto-HiFi',0],[1,'Bahn',1],[1,'Boote & Schifffahrt',2],[1,'Flugzeuge',3],[1,'Kauf & Verkauf',4],[1,'Motorräder',5],[1,'Sicherheit',6],[1,'Versicherung & Zulassung',7],[1,'Wartung & Reparatur',8],[1,'Sonstige',9],[1,'',0],[1,'--- AUTOMARKEN ---',0],[1,'Alfa Romeo',0],[1,'Audi',0],[1,'BMW',0],[1,'Buick',0],[1,'Cadillac',0],[1,'CHEVROLET',0],[1,'Chrysler',0],[1,'Citroen',0],[1,'Daewoo',0],[1,'Daihatsu',0],[1,'DODGE',0],[1,'Ferrari',0],[1,'FIAT',0],[1,'FORD',0],[1,'Honda',0],[1,'Hyundai',0],[1,'Jaguar',0],[1,'JEEP',0],[1,'KIA',0],[1,'Lada',0],[1,'LANCIA',0],[1,'Land Rover',0],[1,'Lexus',0],[1,'Lotus',0],[1,'Maserati',0],[1,'Mazda',0],[1,'Mercedes-Benz',0],[1,'MG',0],[1,'Mini',0],[1,'MITSUBISHI',0],[1,'Nissan',0],[1,'OPEL',0],[1,'Peugeot',0],[1,'Pontiac',0],[1,'Porsche',0],[1,'Puch',0],[1,'Renault',0],[1,'Rolls Royce',0],[1,'Rover',0],[1,'SAAB',0],[1,'Seat',0],[1,'Skoda',0],[1,'Smart',0],[1,'Subaru',0],[1,'Suzuki',0],[1,'TOYOTA',0],[1,'VOLVO',0],[1,'VW',0],
[2,'Aussehen',0],[2,'Frisur',0],[2,'Haut & Körper',1],[2,'Makeup',2],[2,'Mode',3],[2,'Piercing',3],[2,'Schmuck',3],[2,'Tattoos',3],[2,'Sonstige',4],
[3,'Hardware',0],[3,'Internet',1],[3,'Internetrecht',1],[3,'Internetseiten',4],[3,'Programmierung',2],[3,'Sicherheit',3],[3,'Software',4],[3,'willwissen.net',4],[3,'Sonstige',5],
[4,'Alkoholische Getränke',0],[4,'Backen',1],[4,'Getränke',1],[4,'Kochen & Rezepte',2],[4,'Nahrungsmittel',3],[4,'Süßwaren',3],[4,'Vegetarisch & Vegan',4],[4,'Sonstige',5],
[5,'Brettspiele',0],[5,'Computer- & Videospiele',0],[5,'Freizeitparks',1],[5,'Glückspiele',2],[5,'Kartenspiele',3],[5,'Modellbau',4],[5,'Spielzeug',5],[5,'Sonstige',6],
[6,'Beziehung',0],[6,'Ehe & Scheidung',0],[6,'Familie',1],[6,'Freunde',2],[6,'Singles & Dating',3],[6,'Trennung',0],[6,'Verlobung & Heirat',4],[6,'Sonstige',5],
[7,'Ausländer',0],[7,'Bauwerke',0],[7,'Behinderte',0],[7,'Berühmte Persönlichkeiten',0],[7,'Etikette',0],[7,'Länder',1],[7,'Lesben & Schwule',1],[7,'Politiker',1],[7,'Religion',2],[7,'Senioren',3],[7,'Sitten & Bräuche',0],[7,'Sprachen',4],[7,'Städte',4],[7,'Warum heisst',4],[7,'Sonstige',6],
[8,'Alternativmedizin',0],[8,'Blut',0],[8,'Diäten',0],[8,'Fitness',0],[8,'Gynäkologie',0],[8,'Impfungen',0],[8,'Medikamente',0],[8,'Psyche',0],[8,'Schulmedizin',0],[8,'Sucht',0],[8,'Urologie',0],[8,'Verdauung',0],[8,'Was kann das sein',0],[8,'Zahnpflege',0],[8,'Sonstige',1],[8,'',0],[8,'-- KRANKHEITEN & BESCHWERDEN --',0],[8,'Allergien',0],[8,'Augen',0],[8,'Diabetes',0],[8,'Geschlechtskrankheiten',0],[8,'Hals & Nasen & Ohren',0],[8,'Hautbeschwerden',0],[8,'Herzkrankheiten',0],[8,'Infektionskrankheiten',0],[8,'Krebs',0],
[9,'Dekorieren',0],[9,'Einrichtung',0],[9,'Garten',0],[9,'Heimwerken',0],[9,'Pflanzen',0],[9,'Renovieren',0],[9,'Wartung & Reparatur',0],[9,'Waschen & Reinigen',0],[9,'Sonstige',0],
[10,'Ahnenforschung',0],[10,'Bildhauerei',0],[10,'Bücher & Autoren',0],[10,'Darstellende Kunst',0],[10,'Dichtung',0],[10,'Fotografie',0],[10,'Geschichte',0],[10,'Malerei',0],[10,'Philosophie',0],[10,'Tanz',0],[10,'Theater & Schauspiel',0],[10,'Zeichnen',0],[10,'Sonstige',0],
[11,'Aktuelle Themen',0],[11,'Medien',0],[11,'Sonstige',0],
[12,'--- DEUTSCHLAND ---',0],[12,'Berlin',0],[12,'Bonn',0],[12,'Dortmund',0],[12,'Dresden',0],[12,'Duisburg',0],[12,'Düsseldorf',0],[12,'Essen',0],[12,'Frankfurt',0],[12,'Hamburg',0],[12,'Hannover',0],[12,'Köln',0],[12,'Leipzig',0],[12,'München',0],[12,'Nürnberg',0],[12,'Stuttgart',0],[12,'',0],[12,'--- ÖSTERREICH ---',0],[12,'Bregenz',0],[12,'Eisenstadt',0],[12,'Graz',0],[12,'Innsbruck',0],[12,'Klagenfurt',0],[12,'Linz',0],[12,'Salzburg',0],[12,'St. Pölten',0],[12,'Villach',0],[12,'Wien',0],[12,'',0],[12,'--- SCHWEIZ ---',0],[12,'Basel',0],[12,'Bern',0],[12,'Genf',0],[12,'St. Gallen',0],[12,'Zürich',0],[12,'Zug',0],[12,'',0],[12,'Sonstige',0],
[13,'Arbeitsrecht',0],[13,'Botschaften & Konsulate',0],[13,'Einwanderung',0],[13,'Erbrecht',0],[13,'Familienrecht',0],[13,'Hartz',0],[13,'Jugendrecht',0],[13,'Militär',0],[13,'Politik',0],[13,'Recht & Ethik',0],[13,'Rente',0],[13,'Unterstützungen',0],[13,'Verkehrsrecht',0],[13,'Verwaltung',0],[13,'Wahlen',0],[13,'Wohn- & Mietrecht',0],[13,'Sonstige',0],
[14,'Gepäck & Reisevorbereitung',0],[14,'Gesundheit & Sicherheit',0],[14,'',0],[14,'--- REISEZIELE ---',0],[14,'Afrika & Mittlerer Osten',0],[14,'Argentinien',0],[14,'Asien',0],[14,'Australien',0],[14,'Brasilien',0],[14,'Deutschland',0],[14,'Europa',0],[14,'Flugreisen',0],[14,'Frankreich',0],[14,'Griechische Inseln',0],[14,'Großbritannien',0],[14,'Indien',0],[14,'Irland',0],[14,'Italien',0],[14,'Kanada',0],[14,'Karibik',0],[14,'Kreuzfahrt',0],[14,'Lateinamerika',0],[14,'Mexiko',0],[14,'Neuseeland',0],[14,'Österreich',0],[14,'Schweiz',0],[14,'Spanien',0],[14,'USA',0],[14,'Sonstige',0],
[15,'Ausbildung',0],[15,'Auslandsstudium',0],[15,'Finanzielle Hilfen',0],[15,'Heimschule',0],[15,'Nachhilfe',0],[15,'Prüfungen & Tests',0],[15,'Redewendungen & Wortspiele',0],[15,'Schule',0],[15,'Trivialwissen',0],[15,'Universität',0],[15,'Vorschule',0],[15,'Zitate',0],[15,'Sonstige',0],
[16,'Adoption',0],[16,'Babys',0],[16,'Erziehung',0],[16,'Jugendliche',0],[16,'Kindernamen',0],[16,'Kinderwunsch',0],[16,'Kleinkinder',0],[16,'Schwangerschaft',0],[16,'Schwangerschaftstest',0],[16,'Teenager',0],[16,'Sonstige',0],
[17,'Anthropologie',0],[17,'Frauenforschung',0],[17,'Ökonomie',0],[17,'Psychologie',0],[17,'Soziologie',0],[17,'Traumdeutung',0],[17,'Sonstige',0],
[18,'American Football',0],[18,'Angeln',0],[18,'Autorennen',0],[18,'Baseball',0],[18,'Basketball',0],[18,'Billard',0],[18,'Boxen',0],[18,'Eishockey',0],[18,'Fitness',0],[18,'Fußball',0],[18,'Fußball EM 2008',0],[18,'Golf',0],[18,'Handball',0],[18,'Jagen',0],[18,'Kampfsport',0],[18,'Klettern',0],[18,'Laufen',0],[18,'Motorradrennen',0],[18,'Olympische Spiele',0],[18,'Radfahren',0],[18,'Reiten',0],[18,'Rugby',0],[18,'Schwimmen & Tauchen',0],[18,'Surfen',0],[18,'Tennis',0],[18,'Volleyball',0],[18,'Wassersport',0],[18,'Wintersport',0],[18,'Wrestling',0],[18,'Sonstige',0],
[19,'Aquaristik',0],[19,'Fische',0],[19,'Hunde',0],[19,'Insekten',0],[19,'Katzen',0],[19,'Nagetiere',0],[19,'Pferde',0],[19,'Reptilien',0],[19,'Säugetiere',0],[19,'Terraristik',0],[19,'Vögel',0],[19,'Wildtiere',0],[19,'Sonstige',0],
[20,'Alternative Antriebe',0],[20,'Klimawandel',0],[20,'Ökologische Lebensweise',0],[20,'Umwelt- & Naturschutz',0],[20,'Sonstige',0],
[21,'Bands',0],[21,'Comics',0],[21,'Filme',0],[21,'Horoskope',0],[21,'Musizieren',0],[21,'Promis',0],[21,'Radio',0],[21,'Singen',0],[21,'Songtexte',0],[21,'Umfragen',0],[21,'Witze & Rätsel',0],[21,'Zeichentrick',0],[21,'Zeitschriften',0],[21,'Sonstige',0],[21,'',0],[21,'--- MUSIK ---',0],[21,'Blues',0],[21,'Heavy Metal',0],[21,'Jazz',0],[21,'Klassik',0],[21,'Rap & Hip-Hop',0],[21,'Rhythm & Blues & Soul',0],[21,'Rock & Pop',0],[21,'Schlager',0],[21,'Techno & Rave',0],[21,'Volksmusik',0],[21,'',0],[21,'--- TV ---',0],[21,'Comedy',0],[21,'Drama',0],[21,'Reality TV',0],[21,'Serien',0],[21,'Shows',0],[21,'Soap Operas',0],[21,'Talk Shows',0],
[22,'Camcorder',0],[22,'Fernseher',0],[22,'Festnetz',0],[22,'Festplatten- & DVD-Rekorder',0],[22,'Handys',0],[22,'Heimkino',0],[22,'Kameras',0],[22,'Musik & Player',0],[22,'PDAs',0],[22,'Sonstige',0],[22,'',0],[22,'--- SPIELE & KONSOLEN ---',0],[22,'Nintendo',0],[22,'PC',0],[22,'PlayStation',0],[22,'Xbox',0],
[23,'Anlage',0],[23,'Banken',0],[23,'Berufe',0],[23,'Finanzierung',0],[23,'Firmen',0],[23,'Gastronomie',0],[23,'Insolvenz',0],[23,'Kleinunternehmen',0],[23,'Landwirtschaft',0],[23,'Marketing & Werbung',0],[23,'Miete & Eigentum',0],[23,'Persönliche Finanzen',0],[23,'Recht',0],[23,'Steuern Deutschland',0],[23,'Steuern Österreich',0],[23,'Steuern Schweiz',0],[23,'Versicherung',0],[23,'Sonstige',0],
[24,'Astronomie & Raumfahrt',0],[24,'Biologie',0],[24,'Botanik',0],[24,'Chemie',0],[24,'Geographie',0],[24,'Geowissenschaften',0],[24,'Ingenieurwesen',0],[24,'Mathematik',0],[24,'Medizin',0],[24,'Physik',0],[24,'Wetter',0],[24,'Zoologie',0],[24,'Sonstige',0]
];

var timeout	= 500;
var closetimer	= 0;
var ddmenuitem	= 0;

/////// Configuration Variables ///////////////////////////

TreeMenu.SymbolTag = 'span';			// symbol inserted at beginning of <LI> tags
//TreeMenu.SymbolTag = '';			// uncomment to disable insertion of symbols
//TreeMenu.SymbolTag = 'img';			// uncomment to use IMG tags for symbols
//TreeMenu.SymbolSrcItem = '';			// url to assign to IMG src attribute of an item
//TreeMenu.SymbolSrcClose = '';			// url to assign to IMG src attribute upon close
//TreeMenu.SymbolSrcOpen = '';			// url to assign to IMG src attribute upon open

TreeMenu.OmitSymbols = false;			// don't insert symbol but do adjust them

TreeMenu.SymbolClassItem  = 'symbol-item';
TreeMenu.SymbolClassClose = 'symbol-close';
TreeMenu.SymbolClassOpen  = 'symbol-open';

TreeMenu.ClassItem  = 'item';			// class name added to <LI> tag's class
TreeMenu.ClassClose = 'close';			// class name added to <LI> tag's class
TreeMenu.ClassOpen  = 'open';			// class name added to <LI> tag's class
TreeMenu.ClassLast  = 'last';			// added to last <LI> and symbol tags' classes

TreeMenu.CookieSaveStates = true;		// flag to use a cookie to save menu state
TreeMenu.CookieExpire = 90;			// days before cookie saving menu states expires

TreeMenu.SetupMenu = true;			// scan document objects to initialize menu

TreeMenu.Singular = false;			// restrict open menus to only one per level

/////// End of Configuration Variables ///////////////////

function fn_modellist(defaultText, make, model, formObject) {
	
	var sel = formObject.sc;
	var i, j;
	var start = 1;
	var len = sel.options.length;
	
	if (make == -1 && formObject.c.selectedIndex >= 0) {
		make = formObject.c[formObject.c.selectedIndex].value;
	}
	
	// Remove all elements from options
	for (i = len - 1; i >= 0; i--) {
		sel.options[i] = null;
	}
	
	if (defaultText != -1) {
		sel.options[0] = new Option(defaultText, "-1", "true", "true");
	} else {
		start = 0;
	}

	// No make selected
	if (make == -1) {
		return;
	}

	// Fill up model-option
	for (i = 0, j = start; i < CategoryArray.length; i++) {
		var s, k;
		var m = CategoryArray[i];
						
		if (m[0] == make) {
			sel.options[j] = new Option(m[1], m[1], "", "");
			
			if (m[1] == model) {
				sel.options[j].selected = true;
			}
			j++;
		}
	}
}

function make_tree_menu(id,omit_symbols,no_save_state,singular,no_setup) {
	var m = new TreeMenu(id);
	if (omit_symbols) m.OmitSymbols = true;
	if (no_save_state) m.CookieSaveStates = false;
	if (singular) m.Singular = true;
	if (no_setup) m.SetupMenu = false;
	// Setup menus if we are inserting symbols or restoring menu open/close states.
	if (m.SetupMenu) m.setup_symbols();
	return m;
}

/*
 * TreeMenu
 */

function TreeMenu(ul_id) {			// object constructor

	this.top_ul_id = ul_id;
	this.top_ul = document.getElementById(ul_id);

	this.configure();

	// Register menu
	TreeMenu.menus[ul_id] = this;

	return this;
}

/*
 * TreeMenu Class Variables
 */

TreeMenu.menus = [];				// list of defined menus

/*
 * TreeMenu Class Methods
 */

TreeMenu.toggle = function(e) {
	e = TreeMenu.get_ref(e);
	var m = TreeMenu.menus[TreeMenu.get_top_ul(e).id];
	var li = TreeMenu.get_li(e);
	var ul = li.getElementsByTagName("UL")[0];
	if (ul.style.display == "block") {
		m.hide_menu(ul,li,e);
	}
	else {
		if (m.Singular) m.hide_menus_except(li);
		m.show_menu(ul,li,e);
		//li.className += ' celCatMenuRed';
		
	}
	
	/*if (e.src == "http://www.willwissen.net/images/minus.png") {
		e.src="http://www.willwissen.net/images/plus.jpg";
	} else {
		e.src="http://www.willwissen.net/images/minus.png";
	}*/

	m.save_menu_states();
}

TreeMenu.show = function(ul) {
	ul = TreeMenu.get_ref(ul);
	var top_ul = TreeMenu.get_top_ul(ul);
	if (! top_ul) return;
	var m = TreeMenu.menus[top_ul.id];
	var li = TreeMenu.get_li(ul);
	m.show_menu(ul,li);
}

TreeMenu.hide = function(ul) {
	ul = TreeMenu.get_ref(ul);
	var top_ul = TreeMenu.get_top_ul(ul);
	if (! top_ul) return;
	var m = TreeMenu.menus[top_ul.id];
	var li = TreeMenu.get_li(ul);
	m.hide_menu(ul,li);
}

TreeMenu.show_all = function(ul) {
	// Show all menus under ul.
	ul = TreeMenu.get_ref(ul);
	var uls = ul.getElementsByTagName("UL");
	for (i = 0; i < uls.length; i++) {
		TreeMenu.show(uls[i]);
	}
}

TreeMenu.hide_all = function(ul) {
	// Hide all menus under ul.
	ul = TreeMenu.get_ref(ul);
	var uls = ul.getElementsByTagName("UL");
	for (i = 0; i < uls.length; i++) {
		TreeMenu.hide(uls[i]);
	}
}

TreeMenu.save_state = function(ul) {
	// Reset menu to original settings.
	ul = TreeMenu.get_ref(ul);
	var m = TreeMenu.menus[TreeMenu.get_top_ul(ul).id];
	m.save_menu_states();
}

TreeMenu.reset = function(ul) {
	// Reset menu to original settings.
	ul = TreeMenu.get_ref(ul);
	var m = TreeMenu.menus[TreeMenu.get_top_ul(ul).id];
	m.reset_menu_states();
}

// Private methods
TreeMenu.get_ref = function(id) {
        if (typeof id == "string") return document.getElementById(id);
	return id;
}

TreeMenu.get_top_ul = function(e) {
	while (e && (e.nodeName != 'UL' || ! e.id || ! TreeMenu.menus[e.id])) e = e.parentNode;
	return e;
}

TreeMenu.get_li = function(e) {
	while (e && e.nodeName != 'LI') e = e.parentNode;
	return e;
}


/*
 * TreeMenu Object Methods
 */

TreeMenu.prototype.configure = function() {

        // Assign global class settings (capitalized variables) to object settings.

        var v,c;
        for (v in TreeMenu) {
                c = v.substr(0,1);
                if (c == c.toUpperCase()) {
                        this[v] = TreeMenu[v];
                }
        }
}

TreeMenu.prototype.setup_symbols = function() {

	// Insert open/close symbols at the beginning of the menu items
	// and open or close menus like they were previously.

	var states = this.get_menu_states();

	var index = 0;
	var ul, li, symbol, islast = false;
	var ul_elements, li_elements = this.top_ul.getElementsByTagName("LI");
	for(var i=0; i < li_elements.length; i++) {
		li = li_elements[i];
		
		if (i==0) {
			//li.className='celCatMenuRed';
		}
		
		if (this.ClassLast) islast = this.is_last_item(li);

		ul_elements = li.getElementsByTagName("UL");
		if(ul_elements.length > 0) {
			// Submenus
			if (this.SymbolTag && ! this.OmitSymbols) {
				symbol = document.createElement(this.SymbolTag);
				if (this.ClassLast && islast) symbol.className = this.ClassLast;
				symbol.onclick = function() { TreeMenu.toggle(this); };
				li.insertBefore(symbol, li.firstChild);
			}

			ul = ul_elements[0];
			if (states[index] == '1') this.show_menu(ul,li);
			else                      this.hide_menu(ul,li);
			index++;
		}
		else {
			// Menu item
			if (this.SymbolTag && ! this.OmitSymbols) {
				symbol = document.createElement(this.SymbolTag);
				if (this.SymbolClassItem)
					symbol.className = this.SymbolClassItem;
				if (this.SymbolSrcItem)
					symbol.src = this.SymbolSrcItem;
				if (this.ClassLast && islast)
					symbol.className += ' ' + this.ClassLast;
				li.insertBefore(symbol, li.firstChild);
			}

			if (this.ClassItem) {
				li.className += ' ' + this.ClassItem;
			}
		}

		if (islast) li.className += ' ' + this.ClassLast;
	}
}

TreeMenu.prototype.is_last_item = function(e) {
	// Check if element is the last LI element in the list.
	e = e.nextSibling;
	// Get next element (Mozilla puts text nodes at same level here).
	while (e && e.nodeType != 1) e = e.nextSibling;
	return e ? false : true;
}

TreeMenu.prototype.get_menu_states = function() {
	var cookie = getCookie("tm_" + this.top_ul_id);
	if (cookie) return cookie.split('x');
	return [];
}

TreeMenu.prototype.save_menu_states = function() {

	// Save all menu and submenu open/close states in a cookie

	if (! this.CookieSaveStates) return;

	var states = [];
	var ul_elements, li_elements = this.top_ul.getElementsByTagName("LI");
	for(var i=0; i < li_elements.length; i++) {
		ul_elements = li_elements[i].getElementsByTagName("UL");
		if (ul_elements.length > 0) {
			states[states.length] = ul_elements[0].style.display == "block" ? 1 : 0;
		}
	}

	var expire_date = new Date((new Date().getTime()) + this.CookieExpire*24*60*60*1000);
	setCookie("tm_" + this.top_ul_id, states.join('x'), expire_date, '/');
}

TreeMenu.prototype.reset_menu_states = function() {

	// Reset all menu and submenu open/close states  (delete cookie)

	var expire_date = new Date((new Date().getTime()) - 1000);		// set to past time
	setCookie("tm_" + this.top_ul_id, '', expire_date, '/');
}

TreeMenu.prototype.add_remove_class = function(e,add_class,remove_class) {
	if (e) {
		if (remove_class) {
			e.className = e.className.replace(remove_class,'');
			e.className = e.className.replace('celCatMenuRed','celCatMenu');
		}
		if (add_class && ! e.className.match( (new RegExp("\\b"+add_class+"(\\s.*)?")) ) ) {
			e.className += ' ' + add_class;
			
			
		}
		
		if (add_class == this.ClassOpen) {
				e.className = e.className.replace('celCatMenu','celCatMenuRed');
		}
	}
}

TreeMenu.prototype.show_menu = function(ul,li,e) {
	ul.style.display = 'block';

	this.add_remove_class(li,this.ClassOpen,this.ClassClose);

	if (this.SymbolTag) {
		var symbol = li.getElementsByTagName(this.SymbolTag)[0];
		this.add_remove_class(symbol,this.SymbolClassOpen,this.SymbolClassClose);
		if (this.SymbolSrcOpen) symbol.src = this.SymbolSrcOpen;
	}

	// Following case is for toggle buttons disassociated with menu structure.
	this.add_remove_class(e,this.SymbolClassOpen,this.SymbolClassClose);
}

TreeMenu.prototype.hide_menu = function(ul,li,e) {
	ul.style.display = 'none';

	this.add_remove_class(li,this.ClassClose,this.ClassOpen);

	if (this.SymbolTag) {
		var symbol = li.getElementsByTagName(this.SymbolTag)[0];
		this.add_remove_class(symbol,this.SymbolClassClose,this.SymbolClassOpen);
		if (this.SymbolSrcClose) symbol.src = this.SymbolSrcClose;
	}

	// Following case is for toggle buttons disassociated with menu structure.
	this.add_remove_class(e,this.SymbolClassClose,this.SymbolClassOpen);
}

TreeMenu.prototype.hide_menus_except = function(li) {
	// Hide other menus at same level as li.
	var n;
	var re = new RegExp('\\b' + this.ClassOpen + '\\b');
	for (var i = 0; i < li.parentNode.childNodes.length; i++) {
		n = li.parentNode.childNodes[i];
		if (n == li || n.nodeType != 1) continue;
		
		if (n.className.match(re)) {
			this.hide_menu(n.getElementsByTagName("UL")[0],n);
		}
	}
}

/*
 * Classic Cookie functions
 */

function setCookie(name, value, expires, path, domain, secure) {
	document.cookie	= name + "=" + escape(value) +
	  (expires	? "; expires=" + expires.toGMTString()	: "") +
	  (path		? "; path=" + path			: "") +
	  (domain	? "; domain=" + domain			: "") +
	  (secure	? "; secure"				: "");
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	}
	else {
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}

function fn_setMarke(make, formObject) {
	var sel = formObject.c;
	var i, j;
	var len = sel.options.length;
	//alert(len);
	// Remove all elements from options
	for (i = 1; i < len ; i++) {
		if (sel.options[i].value==make) {
			sel.options[i].selected = true;
			break;
		}
	}
}

function fn_setMarkeDyn(make, formObjectC) {
	var sel = formObjectC;
	var i, j;
	var len = sel.options.length;
	//alert(len);
	// Remove all elements from options
	for (i = 1; i < len ; i++) {
		if (sel.options[i].value==make) {
			sel.options[i].selected = true;
			break;
		}
	}
}


function fn_modellistDyn(defaultText, make, model, formObjectC, formObjectSC) {
	
	var sel = formObjectSC;
	var i, j;
	var start = 1;
	var len = sel.options.length;
	
	if (make == "") {
		return;
	}
	
	if (make == -1) {
		make = formObjectC[formObjectC.selectedIndex].value;
	}

		
	// Remove all elements from options
	for (i = len - 1; i >= 0; i--) {
		sel.options[i] = null;
	}
	
	if (defaultText != -1) {
		sel.options[0] = new Option(defaultText, "-1", "true", "true");
	} else {
		start = 0;
	}

	// No make selected
	if (make == -1) {
		return;
	}

	if (model == -1) {
		// Fill up model-option
		for (i = 0, j = start; i < CategoryArray.length; i++) {
			var s, k;
			var m = CategoryArray[i];
							
			if (m[0] == make) {
				sel.options[j] = new Option(m[1], m[1], "", "");
				
				if (m[1] == model) {					
					sel.options[j].selected = true;
				}
				
				j++;
			}
		}

	} else {
		var token = model.split(",");
		
		// Fill up model-option
		for (i = 0, j = start; i < CategoryArray.length; i++) {
			var s, k;
			var m = CategoryArray[i];
							
			if (m[0] == make) {
				sel.options[j] = new Option(m[1], m[1], "", "");
				
				for(var t = 0; t < token.length; t++){
					if (m[1] == token[t] && token[t] != "") {					
						sel.options[j].selected = true;
					}
				}
				j++;
			}
		}
	}
}


function fn_submitOk(formObject) {
	if (formObject.subm.value == 0) {
		formObject.subm.value = 1;
		return true;
	} else {
		alert('Request wurde bereits gesendet...');
		return false;
	}
}

function xreplace(checkMe,toberep,repwith){
	var temp = checkMe;
	var i = temp.indexOf(toberep);
	while(i > -1) {
		temp = temp.replace(toberep, repwith);
		//i = temp.indexOf(toberep, i + repwith.length + 1);
		i = temp.indexOf(toberep); 
	}
	return temp;
}


function confirmDelete() {
	return confirm('Willst Du dieses Frage wirklich löschen?');
}

function confirmDeleteWl() {
	return confirm('Willst Du dieses Frage wirklich von Deiner Beobachtungsliste entfernen?');
}

function confirmDeleteAr() {
	return confirm('Willst Du dieses Frage wirklich aus Deinem Archiv entfernen?');
}

function confirmDeleteAns() {
	return confirm('Willst Du dieses Antwort wirklich löschen?');
}

function confirmDeleteMsg() {
	return confirm('Willst Du dieses Nachricht wirklich löschen?');
}

function confirmDeregister() {
	return confirm('Willst Du Deine Registrierung wirklich löschen?');
}

function confirmDeletePj() {
	return confirm('Wollen Sie diesen Auftrag wirklich löschen?');
}

function confirmDeleteBid() {
	return confirm('Wollen Sie dieses Gebot wirklich löschen?');
}

function fn_alert(text) {
	alert(text);
}

function decode(text) {
	text = text.replace("ue","ü");
	text = text.replace("eü","eue");
	text = text.replace("aü","aue");
	text = text.replace("ae","ä");	
	text = text.replace("oe","ö");
	text = text.replace("trö","troe");
	text = text.replace("Ue","Ü");
	text = text.replace("Ae","Ä");
	text = text.replace("Oe","Ö");				
	return text;
}

function doSearch(formObject, value_index) {
	formObject.index.value = value_index;
	formObject.submit();
}

function toggleDiv(formObject) {
	var e = document.getElementById(formObject); 
	if (e.style.display == 'block') {e.style.display = 'none'} else {e.style.display = 'block'}
}

function toggleSearchDiv(key) {
	var e = document.getElementById('catdiv' + key);
	var i = document.getElementById('img' + key);
	if (e.style.display == 'block') {	    
		e.style.display = 'none';
		i.src = '/images/plus.jpg';
	} 
	else {
		e.style.display = 'block';
		i.src = '/images/minus.png';
	}
}

function closeDiv(formObject) {
	var e = document.getElementById(formObject); 
	e.style.display = 'none';
}

function openDiv(formObject) {
	var e = document.getElementById(formObject); 
	e.style.display = 'block';
}



function reloadPage(urlValue) {
	if(top.frames.length <= 2) {
		top.location.href = urlValue;
	}
}

	
// open hidden layer
function mopen(id)
{	
	// cancel close timer
	mcancelclosetime();

	// close old layer
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

function divloader(divid, url) {
  divloader(divid,url,1);
}

function divloader(divid, url, nocache) {
    var datx = new Date();
    if (nocache == 1) {
	    $("div#" + divid).load(url + "&dmy=" + datx.getTime());
	} else {
	    $("div#" + divid).load(url);
	}
}				
