     function toggle(id)
	{
		var divlnk = document.getElementById(id);
		var state = divlnk.style.display;
		if ( state == "none" )
			divlnk.style.display = "inline";
		else
		{
			if(navigator.userAgent.indexOf('Opera') != -1)
			{
			
			        var allUls = document.getElementsByTagName("ul");
				for (i = 0; i < allUls.length; i++)
				{
					
					if(allUls[i].parentNode.id == id)
					{
						divlnk.style.display = "none";
						allUls[i].style.display = "none";
						allUls[i].style.display = "block";
						//allUls[i].style.display = "inline";
					}
				}
			}
			
			divlnk.style.display = "none";
		}
	}
    
    function toggleImg(img, name1, name2)
    {  
         var url      = img.src;
         var urlShort = "";
         var pos = url.indexOf(name1);
         if(pos > 0)
         {
            urlShort = url.substring(0, pos);
            urlShort = urlShort + name2; 
         }
         else
         {
            pos = url.indexOf(name2);
            if (pos > 0)
            {
                urlShort = url.substring(0, pos);
                urlShort = urlShort + name1; 
            }
            else 
              return;    
         } 

	img.src = urlShort;
    }


      //-----------------------------------------------------------------------------
      // Navigation
      //-----------------------------------------------------------------------------
      function next(ueblist)
      {
        var allDivs     = document.getElementsByTagName("div");
        var nextVis     = false;
        var lastVisible  = 0;
        for (i = 0; i < allDivs.length; i++)
        {
            if(allDivs[i].parentNode.id  == ueblist)
            {
		
		if(allDivs[i].style.display =="inline" && i < (allDivs.length-1))
                {
		
		    var left = allDivs[i].style.left
		    allDivs[i].style.display = "none";	
		    allDivs[i].parentNode.style.display = "none";
  	            allDivs[i].parentNode.style.display = "block";
		    //allDivs[i].parentNode.style.display = "inline";
		    

                    nextVis = true;
                    lastVis = i;
                }
                else if(nextVis == true) 
                {
                    allDivs[i].style.display = "inline";
                    nextVis = false;
                }
            }
        }
        if(nextVis == true)
            allDivs[lastVis].style.display = "inline";
	    
      }
      
     function toggleDiv (myDiv)
     {
	  if ( myDiv.className == "uebLsgInactive" )
		myDiv.className = "uebLsgActive";
	  else
		myDiv.className = "uebLsgInactive";
     }

      function prev(ueblist)
      {
        var allDivs = document.getElementsByTagName("div");
        var nextVis = false;
        for (i = allDivs.length-1; i >=0; i--)
        {
            if(allDivs[i].parentNode.id == ueblist)
            {
                if(allDivs[i].style.display =="inline" && i > 0 )
                {
                    allDivs[i].style.display = "none";
		    allDivs[i].parentNode.style.display = "none";
  	            allDivs[i].parentNode.style.display = "block";
		    //allDivs[i].parentNode.style.display = "inline";
                    nextVis = true;
                }
                else if(nextVis == true) 
                {
                    allDivs[i].style.display = "inline";
                    nextVis = false;
                }
            }
        }
      }
      
      function count(ueblist)
      {
		var count = 1;
		var allDivs = document.getElementsByTagName("div");
		for (i = 0; i <allDivs.length; i++)
		{
			 if(allDivs[i].parentNode.id != undefined &&  allDivs[i].parentNode.id == ueblist)
			 {
				//alert(count+ " " +ueblist );
				count ++;
			}
		}
		document.write(count);
      
      }
      
      //-----------------------------------------------------------------------------
      // Zufallsreihenfolge
      //-----------------------------------------------------------------------------
	var currentUeblist; // aktuelle Uebungsliste
	var questionNumbers = new Array(); // Array, das die Zufallsreihenfolge enthaelt.
	var nextVisible = 1; // index fuer questionNumbers

	function initArray(max)
	{
		questionNumbers = new Array(max);
		nextVisible = 1;
		var i=0;
		var tmp;
		tmp=0;
		for(i=0; i<max; i++)
		{
			tmp=i+1;
			questionNumbers[i]=tmp;
			
		}
		
		var zzhal;
		var izahl;
		for (i=0;i<max*10;i++)
		{
			zzahl =  Math.floor(Math.random()*max) + 1;
			izahl = questionNumbers[0];
			questionNumbers[0] = questionNumbers[zzahl-1];
			questionNumbers[zzahl-1] = izahl;
		}
	}
	
	function zufall(ueblist, current, max)
        {
	
		if(ueblist != currentUeblist)
		{
			currentUeblist = ueblist;
			initArray(max);
		}
	
		var allDivs = document.getElementsByTagName("div");
		var j; 
		j=0;
		
		for (i = 0; i < allDivs.length; i++)
		{
		    if(allDivs[i].parentNode.id == ueblist)
		    {
				j = j + 1;
				 
				 if(j == current)
				 {
					allDivs[i].style.display = "none";
					allDivs[i].parentNode.style.display = "none";
					allDivs[i].parentNode.style.display = "block";
				 }
				 if (j == questionNumbers[nextVisible-1])
				 {
					allDivs[i].style.display = "inline";
				 }
			}
		}
		nextVisible = nextVisible + 1;
		// ggf. array neu aufbauen
		if (nextVisible > max)
		{
			alert("Alle Fragen dieses Kapitels wurden per  \nZufallsreihenfolge vollständig angezeigt!\n\nWenn Sie das nächste Mal auf den Würfel klicken,\nwerden die Fragen erneut durchlaufen!");
			initArray(max);
		}
        }
	
	// -----------------------------------------------------------------------------
	// Selbstausertung
	// -----------------------------------------------------------------------------
	function createOrSaveCookie(name,value,days) 
	{
		if (days) 
		{
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else 
			var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}

	function readCookie(name) 
	{
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0; i < ca.length; i++) 
		{
			var c = ca[i];
			while (c.charAt(0)==' ') 
				c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) 
				return c.substring(nameEQ.length,c.length);
		}
		return null;
	}
	
	function changeUebStatus(uebId,wbOid,count,uebListId, auswertungURL)
	{
		var imgSpan=document.getElementById('status'+uebId);
		 imgSpan.className ="uebBestanden";
		var wbCookie = readCookie(wbOid);
		if(wbCookie != null && wbCookie !='')
		{
			if ( wbCookie.indexOf(uebId) < 0)
				wbCookie = wbCookie + uebId + '$$';
		}
		else 
		{
			wbCookie=uebId+'$$';
			wbCookie = count+"###" + wbCookie;
		}	
		
		//
		// Aenderung der Anzahl beruecksichtigen
		//
		var countStr = count+'###';
		if (wbCookie.indexOf(countStr) < 0)
		{
			var pos =  wbCookie.indexOf("###");
			wbCookie = countStr + wbCookie.substring(pos+3,wbCookie.length);
		}
		

		createOrSaveCookie(wbOid,wbCookie,730);	
		updateFortschrittsbalken(getErfolgsquote(wbOid, count), uebListId);
		// todo: fuer das Specihern nur die oid uermitteln
		//saveAuswertung(auswertungURL, wbOid, wbCookie);
	}
	
	function tearDownUebStatus(uebId,wbOid,count,uebListId, auswertungURL)
	{
		var imgSpan=document.getElementById('status'+uebId);
		imgSpan.className="uebNichtBestanden";
		
		var wbCookie = readCookie(wbOid);
		if(wbCookie != null)
		{
			if ( wbCookie.indexOf(uebId) > -1)
			{
				var tmp = uebId + '$$';
				wbCookie = wbCookie.replace(tmp, "");
				createOrSaveCookie(wbOid,wbCookie,730);	
				updateFortschrittsbalken(getErfolgsquote(wbOid, count), uebListId);
				// todo: fuer das Specihern nur die oid uermitteln
				//saveAuswertung(auswertungURL, wbOid, wbCookie);
			}
		}
	}
	
	function updateFortschrittsbalken(erfolgsquote, uebListId)
	{
			
		var divID = "fortschritt_" + uebListId;
		var fortschrittsDiv = document.getElementById(divID);
		if(fortschrittsDiv != null && fortschrittsDiv != 'undefined')
		{
			var html= "<div class='ProzentbalkenUeblist'><div class='ProzentfuellungUeblist bestanden ' style='width:" + erfolgsquote *4.15+ "px;' ></div></div>";
			fortschrittsDiv.innerHTML = html;
		}
	}
	
	function getErfolgsquote(wbOid, count)
	{
		var wbCookie = readCookie(wbOid);
		if(wbCookie == null)
			return 0;
			
		var correctCount = 0;	
		for(var i=1; i<wbCookie.length;i++ )	
		{
			if(wbCookie.charAt(i) == '$')
			{
				if(wbCookie.charAt(i-1) == '$')
				   correctCount = correctCount + 1;
			}
		}
		var erfolgsquote = correctCount/count * 100;
		
		return erfolgsquote;
	}
	
	// -----------------------------------------------------------------------------
	// Speicherung der Selbstauswertung auf dem Server
	// -----------------------------------------------------------------------------
	function makeRequest(url, parameters) 
	{
		http_request = false;
		if (window.XMLHttpRequest) 
		{ // Mozilla, Safari,...
		    http_request = new XMLHttpRequest();
		    if (http_request.overrideMimeType) 
		    {
			http_request.overrideMimeType('text/xml');
			// zu dieser Zeile siehe weiter unten
		    }
		} 
		else if (window.ActiveXObject) 
		{ // IE
		    try 
		    {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		    } 
		    catch (e) 
		    {
			try 
			{
			    http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		    }
		}

		if (!http_request) 
		{
		    return false;
		}
		
		http_request.open('POST', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send(parameters);
		
		//var xmldoc = http_request.responseXML;
		//return xmldoc;
    }
	
	function saveAuswertung(url, wbOid,  data)
	{
		var param = "wbOid=" + wbOid + "&data=" + readCookie(wbOid);
   	        makeRequest(url, param);
		//var node = result.getElementsByTagName('result').item(0);
		//alert (node.firstChild.data);
	}
	
	
 