	/*

	 sw_parseQueryString
	
	 zerlege den teil nach dem ? einer url (query-string)
	 in ein asoziatives array
	 
	 out: 	asoziatives array mit schluessel/wertepaar
	 
	*/
	function sw_parseQueryString() {
			
		var url	= window.document.URL;
		var qstrRegx = /\?(.*)/;
		var paraRegx = /&/;
		var valuRegx = /=/;
		var qstr = qstrRegx.exec(url);
		var para = null;
		var paraArray = new Array(0);
		var keyValue = null;
		
		// zeigt an das kein querystring uebergeben wurde
		if(qstr == null || qstr[1].length == 0) {
			return null;
		}
		// parameter in array
		else {
			para = qstr[1].split(paraRegx);
						
			for(i = 0; i < para.length; i++) {
				keyValue = para[i].split(valuRegx);
				paraArray[keyValue[0]] = keyValue[1];
			}
		}
		return paraArray;
	}

	/*

	 sw_getParameter
	 
	 gebe text - wert eines parameters zurueck, wenn parameter nicht 
	 vorhanden, gib einen vorgabewert zurueck
	 
	 in : 	aParaArray	 - array wie von sw_parseQueryString erzeugt
	 	aName 		 - name des parameters	 
	 	aDefault	 - vorgabewert, falls parameter nicht uebergeben
	 	
	 out: 	wert des parameters (text)
	 
	*/
	function sw_getParameter(aParaArray, aName, aDefault) {
	
		if(aParaArray == null)
			return aDefault;
			
		var p = aParaArray[aName];
		
		if(p != null && p.length> 0)
			return aParaArray[aName];
			
		return aDefault;
	}

	/*

	 sw_getParameterInt
	 
	 gebe zahlen - wert eines parameters zurueck, wenn parameter nicht 
	 vorhanden, gib einen vorgabewert zurueck
	 
	 in : 	aParaArray	- array wie von sw_parseQueryString erzeugt
	 	aName		- name des parameters	 
	 	aDefault	- vorgabewert, falls parameter nicht uebergeben
	 	
	 out: 	wert des parameters (zahl)
	 
	*/
	function sw_getParameterInt(aParaArray, aName, aDefault) {

		if(aParaArray == null)
			return aDefault;
	
		var p = aParaArray[aName];
		
		if(p != null && p.length > 0)
			return parseInt(p);
		
		return aDefault;
	}

	var _menuStatArray 		= new Array(0);
	var _menuGoodBrowser  = false;	

	if((navigator.appName.indexOf("Microsoft") > -1 && parseInt(navigator.appVersion) >= 3) ||
	    (navigator.appName.indexOf("Netscape")  > -1 && parseInt(navigator.appVersion) >= 3) ||
   	    (navigator.appName.indexOf("Opera")     > -1 && parseInt(navigator.appVersion) >= 5) ||
	    (navigator.appName.indexOf("Konqueror") > -1 && parseInt(navigator.appVersion) >= 5)) {

          _menuGoodBrowser = true;
 	}
			
	/*
	sw_loadImage
   
	 lade ein bild in asoziatives array
	 
	 in:		aImageArray	 - array unter dem bild abgelegt wird
			aName		    - name unter dem bild abgelegt wird
			aUrl		       - url von der bild geladen wird
	*/
	function sw_loadImage(aImageArray, aName, aUrl) {
	
	  if(!_menuGoodBrowser) return;
	  
		aImageArray[aName] = new Image();
		aImageArray[aName].src = aUrl;
	}
	
	/*
	 sw_changeImage
	 
	 wechselt ein bild aus
	 
	 in:		aImageArray	- array unter dem bilder abgelegt sind
	 		aName		   - names des bildes (echtes bild und im array) das durch
	 					   das bild im array ersetzt wird
	*/
	function sw_changeImage(aImageArray, aName) {
	
		if(!_menuGoodBrowser) return;
		
		var img = aImageArray[aName];
		
		if(img == null)
			return;
			
		document[aName].src = img.src;
	}

	/*
	
	  sw_menuImageHili
	  
	  leuchtet ein bild an (wenn es nicht angewaehlt ist)
	  
	  in:		aStatVar 	- name fuer statusvariable die fuer dieses menue verw. wird
	  		aImageArray   	- array unter dem bilder abgelegt sind
	  		aName		- names des bildes (echtes bild und im array) das durch
	 				  das bild im array ersetzt wird
	*/
	function sw_menuImageHili(aStatVar, aImgArray, aName) {
		
		if(!_menuGoodBrowser) return;			
		
		// das gewaehlte bild nicht anleuchten
		if(_menuStatArray[aStatVar] != null && _menuStatArray[aStatVar] == aName)
			return;
			
		sw_changeImage(aImgArray, aName);
	}

	/*
	
	  sw_menuImageSelect
	  
	  waehlt ein bild aus (wenn es nicht angewaehlt ist)
	  
	  in:		aStatVar	- name fuer statusvariable die fuer dieses menue verw. wird
	  		aImageArrayOn   - array unter dem bilder abgelegt sind fuer status gewaehlt
	  		aImageArrayOff	- array unter dem bilder abgelegt sind fuer status nicht gewaehlt
	  		aName		- names des bildes (echtes bild und im array) das durch
	 				  das bild im array ersetzt wird
	*/
	function sw_menuImageSelect(aStatVar, aImgArrayOn, aImgArrayOff, aName) {
	
		if(!_menuGoodBrowser) return;
	
		// das gewaehlte bild nicht waehlen
		if(_menuStatArray[aStatVar] != null && _menuStatArray[aStatVar] == aName)
			return;
			
		// die alte auswahl abwaehlen
		if(document[_menuStatArray[aStatVar]] != null)
			sw_changeImage(aImgArrayOff, _menuStatArray[aStatVar]);
			
		sw_changeImage(aImgArrayOn, aName);
		_menuStatArray[aStatVar] = aName;
	}

	function sw_openDialogWindow(name, url, width, height) {
        
                attribs = "width=" + width + ",height="+ height + ",toolbar=no,scrollbars=no";
                wnd = window.open(url,name,attribs);
        }

	function sw_loadFrame(fName, fUrl){
        	parent.frames[fName].location.href=fUrl;
      	}

