// Alle Funktionen sollten nur mit größter Vorsicht verändert werden.
// Alle Änderungen sind zu dokumentieren.
// Auch diese Scripts unterliegen den Copyright und Urheberrecht von AGI - Andreas Guder Internetagentur

// Variablen, die immer wieder gebraucht werden, nicht Löschen
var inpelement = null; // beliebiges Element, wird oft für Ajax-Funktionen verwendet
var picspeicher = null; // Speichervariable für plus- und minus-Bilde
var this_banner = null; // Name des angezeigten Banners
  
// Diese Funktion wandelt Zeilenumbrüche in BR Elemente um und gibt den Text im Aufrufenden Knoten aus
function nl2br(inhalt,aufrufenderKnoten) {
  
  if (inhalt.match(/\n/) ) {
    text = inhalt;
		while(text.match(/\n/))
		{
			var position = text.indexOf("\n");
			var schreibetext = text.substr(0, position);
			var neuerText = document.createTextNode(schreibetext);
			aufrufenderKnoten.appendChild(neuerText);
			var neuerKnoten = document.createElement('BR');
			aufrufenderKnoten.appendChild(neuerKnoten);
			text = text.substr(position+1);
		}
		var neuerText = document.createTextNode(text);
		aufrufenderKnoten.appendChild(neuerText);
    
	}
  else {
    
    neuerText = document.createTextNode(inhalt);
		aufrufenderKnoten.appendChild(neuerText);
    
  }
  
}

// Wiedergabe des Countdowns
function countdown(timestring) {
  
  var ta = timestring.split(',');
  var endzeit = new Date(ta[0],ta[1],ta[2],ta[3],ta[4],ta[5]);
  var args = countdown.arguments;
  var add_art_id = (args[1] && args[1] != '') ? args[1] : '';
  
  var startzeit = new Date();
  
  if ( startzeit < endzeit )  {
    
    var goon = true;
    
    if ( document.getElementById('cday'+add_art_id) ) {
      var tage = Math.floor((endzeit-startzeit)/(24*60*60*1000));
      startzeit.setTime(startzeit.getTime()+(tage*24*60*60*1000));
    }
    
    if ( document.getElementById('chour'+add_art_id) ) {
      var stunden = Math.floor((endzeit-startzeit)/(60*60*1000));
      startzeit.setTime(startzeit.getTime()+(stunden*60*60*1000));
    }
    
    if ( document.getElementById('cmin'+add_art_id) ) {
      var minuten = Math.floor((endzeit-startzeit)/(60*1000));
      startzeit.setTime(startzeit.getTime()+(minuten*60*1000));
    }
    
    var sekunden = Math.floor((endzeit-startzeit)/(1000));
    startzeit.setTime(startzeit.getTime()+(sekunden*1000));
    
  }
  else {
    
    var goon = false;
    var tage = 0;
    var stunden = 0;
    var minuten = 0;
    var sekunden = 0;
    
  }
  
  // Ausgabe der verbleibenden Tage
  if ( document.getElementById('cday'+add_art_id) ) {
    
    while ( document.getElementById('cday'+add_art_id).hasChildNodes() ) {
      document.getElementById('cday'+add_art_id).removeChild(document.getElementById('cday'+add_art_id).firstChild);
    }
    document.getElementById('cday'+add_art_id).appendChild(document.createTextNode(tage));
    
  }
  
  // Ausgabe der verbleibenden Stunden
  if ( document.getElementById('chour'+add_art_id) ) {
    
    while ( document.getElementById('chour'+add_art_id).hasChildNodes() ) {
      document.getElementById('chour'+add_art_id).removeChild(document.getElementById('chour'+add_art_id).firstChild);
    }
    if ( stunden < 10 )
      stunden = '0'+stunden;
    document.getElementById('chour'+add_art_id).appendChild(document.createTextNode(stunden));
    
  }
  
  // Ausgabe der verbleibenden Minuten
  if ( document.getElementById('cmin'+add_art_id) ) {
    
    while ( document.getElementById('cmin'+add_art_id).hasChildNodes() ) {
      document.getElementById('cmin'+add_art_id).removeChild(document.getElementById('cmin'+add_art_id).firstChild);
    }
    if ( minuten < 10 )
      minuten = '0'+minuten;
    document.getElementById('cmin'+add_art_id).appendChild(document.createTextNode(minuten));
    
  }
  
  // Ausgabe der verbleibenden Sekunden
  if ( document.getElementById('csec'+add_art_id) ) {
    
    while ( document.getElementById('csec'+add_art_id).hasChildNodes() ) {
      document.getElementById('csec'+add_art_id).removeChild(document.getElementById('csec'+add_art_id).firstChild);
    }
    if ( sekunden < 10 )
      sekunden = '0'+sekunden;
    document.getElementById('csec'+add_art_id).appendChild(document.createTextNode(sekunden));
    
  }
  
  if ( goon )
    setTimeout('countdown("'+timestring+'","'+add_art_id+'")',1000);
  
}

// Lädt die Originalbilder vor
function preloadImages() {
  
  if ( document.images ) { 
    
    // Gibt es schon einen Bilder-Array oder muss dieser erstellt werden
    if ( !document.pics) 
      document.pics = new Array();
    
    var x = document.pics.length;
    for ( var i=0; i < preloadImages.arguments.length; i++) {
      
      if ( preloadImages.arguments[i].indexOf("#") != 0 ) {
        
        document.pics[x] = new Image; 
        document.pics[x].src = preloadImages.arguments[i];
        x++;
      }
      
    }
    
  }
  
}

// Function zentriert das neue Bild in der Anzeigefläche
function centerbild(id) {
  
  var bild = document.getElementById(id);
  //bild.style.display = 'block'; 
  bild.style.visibility = 'visible';
  /*bild.style.top = '50%';
  var mtop = Math.round(bild.offsetHeight/2);
  bild.style.marginTop = '-'+mtop+'px';
  
  bild.style.left = '50%';
  var mtop = Math.round(bild.offsetWidth/2);
  bild.style.marginLeft = '-'+mtop+'px';*/
  
  
}

// Function zum wechseln der Bilder
// id -> id des Hauptbldes, src -> des neuen Bildes
function wechselbild(id,src,center) {
  
  var bild;
  if ( (bild = document.getElementById(id)) ) {
    
    var vgl = new RegExp(src);
    if ( !vgl.test(bild.src) ) {
      
      if ( center )
        //bild.style.display = 'none';
    	  bild.style.visibility = 'hidden';
      bild.src = src;
      if ( center )
        setTimeout("centerbild('"+id+"')",50); // Pause muss sein, um die neuen Daten des Bildes zu laden.
      
    }
    if (id=='hauptbild')
    {
      clearTimeout(swap_timer);
      for ( var i=0; i<imageStore.length; i++)
      {
        if (imageStore[i] == src)
        {
          swap_shown_image = i;
        }
      }
      swap_timer = setTimeout("swap_image()",swap_image_time);
    }
    
  }
  
}

// Tauscht die Bilder alle X Sekunden aus
function swap_image()
{
  var args = swap_image.arguments;
  if (args[0] == 0)
  {
    swap_timer = setTimeout("swap_image()",swap_image_time);
  }
  else
  {
    // get the next id
    if (imageStore[swap_shown_image+1])
    {
      wechselbild('hauptbild',imageStore[swap_shown_image+1],1);
    }
    else
    {
      wechselbild('hauptbild',imageStore[0],1);
    }
  }
}

// Blendet die entsprechenden Bestellung/Forum/Beschreibung ein und aus
function displaydetails(was) {
  
  var as = inpelement.parentNode.parentNode.getElementsByTagName('A');
  for ( var i = 0; i < as.length; i++ ) 
  {
    as[i].className = '';
  }
  inpelement.className = 'active';
  
  var parent_div = document.getElementById('detail_content');
  var content_childs = parent_div.childNodes;
  for ( var i = 0; i < content_childs.length; i++ ) 
  {
    if (content_childs[i].nodeType == 1)
      content_childs[i].style.display = 'none';
  }
  if (document.getElementById(was))
  {
    document.getElementById(was).style.display = 'block';
  }
}

// Blendet einen einzelnen Beitrag aus dem Produktforum ein
function prodListEinblenden() {
  
  if ( document.getElementById('produktlist') ) {
    
    var lis = document.getElementById('produktlist').getElementsByTagName('LI');
    for ( var i = 0; i < lis.length; i++ ) {
      
      if ( inpelement == lis[i].getElementsByTagName('A')[0] ) {
        
        inpelement.parentNode.getElementsByTagName('P')[0].style.display = 'block';
        inpelement.className = 'active';
        
      }
      else {
        
        var ps = lis[i].getElementsByTagName('P')[0].style.display = 'none';
        var ps = lis[i].getElementsByTagName('A')[0].className = '';
        
      }
      
    }
    
  }
  
}

// Blendet alle Produktlistenbeiträge aus, sodass nur das Intro stehen bleibt
function prodListAusblenden() {
  
  if ( document.getElementById('produktlist') ) {
    
    var lis = document.getElementById('produktlist').getElementsByTagName('LI');
    for ( var i = 0; i < lis.length; i++ ) {
      
      var ps = lis[i].getElementsByTagName('P')[0].style.display = 'none';
      var ps = lis[i].getElementsByTagName('A')[0].className = '';
      
    }
    
  }
  
}

// Ajax-initialisierung zum Abstimmen
function ajaxvote(formular,pid) {
  
  var count = 5;
  for ( var i = 0; i < formular.bewerten.length; i++ ) {
    
    if ( formular.bewerten[i].selected ) {
      
      count = formular.bewerten[i].value;
      break;
      
    }
    
  }
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  ajax(1,ajaxpfad, 'ajax=1&val='+count+'&pid='+pid, 1);
  
}

// Ergebnis der bewertung
function ergAjaxvote(rueckgabe) {
  
  if ( rueckgabe != '' ) {
    
    // Splitten der rueckgabe '<'
    var rueck1 = rueckgabe.split('<');
    
    // Wenn der erste Rueckgabewert aus mehr als einem Zeichen besteht, ist ein Fehler aufgetreten, die Ausführung wird abgebrochen
    if ( rueck1[0].length == 1 ) {
      
      // Ist der Rueckgabewert 1, wird ein gültiges Ergebnis zurückgegeben; andernfalls wäre der Rückgabewert nicht 1
      if ( rueck1[0] == 1 ) {
        
        if ( rueck1[1] != '' ) {
          
          // Aufsplitten der Rückgabe [0] => pid; [1] => Bewertung-Punkte; [2] => Anzahl Bewertungen; [3] => Prozentsetz
          var rueck2 = rueck1[1].split('|');
          
          if ( document.getElementById('votepoints') ) {
            
            while ( document.getElementById('votepoints').hasChildNodes() ) {
              
              document.getElementById('votepoints').removeChild(document.getElementById('votepoints').firstChild);
              
            }
            document.getElementById('votepoints').appendChild(document.createTextNode(rueck2[1]));
            
          }
          
          if ( document.getElementById('votevoters') ) {
            
            while ( document.getElementById('votevoters').hasChildNodes() ) {
              
              document.getElementById('votevoters').removeChild(document.getElementById('votevoters').firstChild);
              
            }
            document.getElementById('votevoters').appendChild(document.createTextNode(rueck2[2]+' Wertungen'));
            
          }
          
          if ( document.getElementById('votediv') )
            document.getElementById('votediv').style.width = rueck2[3]+'%';
          
          if ( document.getElementById('voteform') ) {
            
            while ( document.getElementById('voteform').hasChildNodes() ) {
              
              document.getElementById('voteform').removeChild(document.getElementById('voteform').firstChild);
              
            }
            var span = document.createElement('SPAN');
            span.appendChild(document.createTextNode('Vielen Dank'));
            span.style.paddingLeft = '20px';
            document.getElementById('voteform').appendChild(span);
            
          }
          
        }
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }
  
}

// Ajax-Initialisierung zur Abfrage nach neuen Forenbeiträgen
function checkProdliste(art,intervall,pid,remove) {
  
  if ( document.getElementById('produktlist') ) {
    
    // Es gibt schon Forenbeiträge. Jetzt muss ich nur die Id des Letzten Beitrags ermitteln
    var lis = document.getElementById('produktlist').getElementsByTagName('LI')[0];
    //var ahref = lis.getElementsByTagName('A')[0].href;
    var lid = lis.getElementsByTagName('A')[0].name;//ahref.substr(ahref.lastIndexOf('#')+1);
    lid = lid.substr(1);
    
    if ( lid == '' )
      return;
    
    var pam = '&lid='+lid;
    
  }
  else {
    
    // Es sind noch keine Beiträge vorhanden
    var pam = '';
    
  }
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  ajax(1,ajaxpfad, 'ajax=2&art='+art+'&pid='+pid+'&val='+remove+pam, 2);
  
  setTimeout('checkProdliste("'+art+'",'+intervall+','+pid+','+remove+')',intervall);
  
}

// Ergebnis der Produktlistenabfrage, ggf wird ein neuer Eintrag erstellt
function ergCheckProdliste(rueckgabe) {
  
  if ( rueckgabe != '' ) {
    
    // Splitten der rueckgabe '<'
    var rueck1 = rueckgabe.split('<');
    
    // Wenn der erste Rueckgabewert aus mehr als einem Zeichen besteht, ist ein Fehler aufgetreten, die Ausführung wird abgebrochen
    if ( rueck1[0].length == 1 ) {
      
      // Ist der Rueckgabewert 1, wird ein gültiges Ergebnis zurückgegeben; andernfalls wäre der Rückgabewert nicht 1
      if ( rueck1[0] == 1 ) {
        
        if ( rueck1[1] != '' ) {
          
          // Erstes Trennzeichen >@> trennt Pid, Remove, Anzahl, Art der gefundenen Beiträge und einzelne Datensätze
          var rueck2 = rueck1[1].split('>@>');
          
          if ( rueck2[2] == 0 || rueck2[2] == '' ) {
            
            // keine neuen Beiträge, also Abbrechen
            return;
            
          }
          else {
            
            // Es gibt neue Beiträge
            if ( document.getElementById('produktlist') ) {
              
              // Die Produktliste ist schon vorhanden, neue Beiträge werden hinzugefügt, für jeden hinzugefügten wird einer entfernt, wenn gewünscht
              for ( var i = 4; i < rueck2.length; i++ ) {
                
                if ( rueck2[i] == '' )
                  continue;
                
                // Das Letzte Li wird gelöscht
                if ( document.getElementById('produktlist').getElementsByTagName('LI').length >= rueck2[1] ) {
                  
                  var lastli = document.getElementById('produktlist').getElementsByTagName('LI');
                  document.getElementById('produktlist').removeChild(lastli[lastli.length-1]);
                  
                }
                
                // Den neuen Datensatz splitten
                var rueck3 = rueck2[i].split('|'); // ['id'], ['user'], ['datum'], ['intro'], ['text']
                
                // Erzeuge ein neues LI
                var newli = document.createElement('LI');
                // Erzeuge A
                
                var newa = document.createElement('A');
                newa.name = rueck3[0];
                /*
                newa.href="produktliste.php?p="+rueck2[0]+"#"+rueck3[0];
                newa.title="Beitrag öffnen";
                newa.onclick = new Function('inpelement=this;prodListEinblenden();return false;');
                */
                // Span Benutzername
                var newspan = document.createElement('SPAN');
                newspan.className = 'frmusername';
                newspan.appendChild(document.createTextNode(rueck3[1]+' '));
                newa.appendChild(newspan);
                
                // Span Datum
                var newspan = document.createElement('SPAN');
                newspan.className = 'frmdatum';
                newspan.appendChild(document.createTextNode(rueck3[2]+' Uhr:'));
                newa.appendChild(newspan);
                
                // Span Intro
                /*
                var newspan = document.createElement('SPAN');
                newspan.className = 'frmintro';
                newspan.appendChild(document.createTextNode(' '+rueck3[3]));
                newa.appendChild(newspan);
                */
                newli.appendChild(newa);
                
                // P
                var newp = document.createElement('P');
                //newp.style.display = 'none';
                nl2br(rueck3[4],newp);
                newli.appendChild(newp);
                
                // Das LI Element wurde erzeugt und wird nun am Anfang der Liste eingefügt
                document.getElementById('produktlist').insertBefore(newli, document.getElementById('produktlist').getElementsByTagName('LI')[0]);
                
              }
              
            }
            else {
              
              // Die Produktliste muss erst erstellt werden
              if ( document.getElementById('detailforum') ) {
                
                for ( var i = 4; i < rueck2.length; i++ ) {
                  
                  if ( rueck2[i] == '' )
                    continue;
                  
                  // gibt es einträge, wird die Produktliste erzeugt
                  if ( !document.getElementById('produktlist') ) {
                    
                    var rundum = document.getElementById('detailforum');
                    var newul = document.createElement('UL');
                    newul.id = 'produktlist';
                    rundum.insertBefore(newul, rundum.firstChild);
                    
                    if ( document.getElementById('jsremove') )
                      document.getElementById('jsremove').parentNode.removeChild(document.getElementById('jsremove'));
                    
                  }
                  
                  // Den neuen Datensatz splitten
                  var rueck3 = rueck2[i].split('|'); // ['id'], ['user'], ['datum'], ['intro'], ['text']
                  
                  // Erzeuge ein neues LI
                  var newli = document.createElement('LI');
                  // Erzeuge A
                  var newa = document.createElement('A');
                  newa.name = rueck3[0];
                  /*
                  newa.href="produktliste.php?p="+rueck2[0]+"#"+rueck3[0];
                  newa.title="Beitrag öffnen";
                  newa.onclick = new Function('inpelement=this;prodListEinblenden();return false;');
                  */
                  
                  // Span Benutzername
                  var newspan = document.createElement('SPAN');
                  newspan.className = 'frmusername';
                  newspan.appendChild(document.createTextNode(rueck3[1]+' '));
                  newa.appendChild(newspan);
                  
                  // Span Datum
                  var newspan = document.createElement('SPAN');
                  newspan.className = 'frmdatum';
                  newspan.appendChild(document.createTextNode(rueck3[2]+' Uhr:'));
                  newa.appendChild(newspan);
                  
                  // Span Intro
                  /*
                  var newspan = document.createElement('SPAN');
                  newspan.className = 'frmintro';
                  newspan.appendChild(document.createTextNode(' '+rueck3[3]));
                  newa.appendChild(newspan);
                  */
                  newli.appendChild(newa);
                  
                  // P
                  var newp = document.createElement('P');
                  //newp.style.display = 'none';
                  nl2br(rueck3[4],newp);
                  newli.appendChild(newp);
                  
                  // Das LI Element wurde erzeugt und wird nun am Anfang der Liste eingefügt
                  newul.appendChild(newli);
                  
                }
                
              }
              
              return;
                
              
            }
            
            
          }
          
        }
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }
  
}

// Ajax-Übermittlung eines Forumbeitrags in die Produktliste. Erforderd die Produktid
function sendfrmprodbeitrag(pid) {
  
  var formular = thisform;
  var text = formular.text.value;
  var testtext = /[\<\>\;\#\|]|(--)|(\*\/)/;
  
  if ( text == '' ) {
    
    alert('Bitte geben Sie deinen Beitrag ein');
    return false;
    
  }
  else if (testtext.test(text)) {
    
    return false;
    
  }
  
  if ( document.getElementById('produktlist') ) {
    
    // Es gibt schon Forenbeiträge. Jetzt muss ich nur die Id des Letzten Beitrags ermitteln
    var lis = document.getElementById('produktlist').getElementsByTagName('LI')[0];
    //var ahref = lis.getElementsByTagName('A')[0].href;
    var lid = lis.getElementsByTagName('A')[0].name;//ahref.substr(ahref.lastIndexOf('#')+1);
    
    if ( lid == '' )
      return;
    
    var pam = '&lid='+lid;
    
  }
  else {
    
    // Es sind noch keine Beiträge vorhanden
    var pam = '';
    
  }
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  // Die Rückgabe erfolg in Funktion2, ergCheckProdliste
  ajax(2,ajaxpfad, 'ajax=3&pid='+pid+'&text='+encodeURIComponent(text)+'&val='+max+pam, 2);
  
  if ( document.getElementById('fehlerdiv') ) {
    
    var anzeige = document.getElementById('fehlerdiv');
    if ( anzeige.style.display != 'none' ) {
      
      anzeige.style.top = '0px';
      anzeige.style.left = '-500px';
      anzeige.style.display = 'none';
      fehlerArray = new Array();
      
    }
    
  }
  hideform();
  return false;
  
}

// Ajax-Initialisierung zum senden eines TipAFriend, betreff und text stammen aus der Aufrufenden Funktion
function tipAFriend(betreff,mitteilung) {
  
  var formular = thisform;
  var text = formular.text.value;
  var empf = formular.email.value;
  var mailmuster = /^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-_]|\.)*[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{2,4}$/;
  var testtext = /[\<\>\;\#\|]|(--)|(\*\/)/;
  
  if ( text == '' ) {
    
    alert('Bitte geben Sie eine persönliche Mitteilung ein');
    return false;
    
  }
  else if (testtext.test(text)) {
    
    return false;
    
  }
  
  while ( empf == '' ) {
    
    var eingabe = prompt("Bitte geben Sie den Empfänger ein.");
    if(!eingabe)
      return false;
		formular.email.value = eingabe;
		empf = eingabe;
    
  }
  while (!mailmuster.test(empf)) {
    
		var eingabe = prompt("Bitte geben Sie eine gültige E-Mail-Adresse ein.", empf);
    if(!eingabe)
      return false;
      
		formular.email.value = eingabe;
		empf = eingabe;
    
	}
  // Bis hierhin bin ich gekommen, jetzt wird die Vordefinierte Mitteilung mit der individuellen Kombiniert
  text = decodeURIComponent(mitteilung)+"\n\n"+text;
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  // Die Rückgabe erfolg in Funktion2, ergCheckProdliste
  ajax(2,ajaxpfad, 'ajax=4&text='+encodeURIComponent(text)+'&empf='+encodeURIComponent(empf)+'&sub='+betreff, 3);
  
  if ( document.getElementById('fehlerdiv') ) {
    
    var anzeige = document.getElementById('fehlerdiv');
    if ( anzeige.style.display != 'none' ) {
      
      anzeige.style.top = '0px';
      anzeige.style.left = '-500px';
      anzeige.style.display = 'none';
      fehlerArray = new Array();
      
    }
    
  }
  
  return false;
  
}

// Ergebnis von TipAFriend
function ergTipAFriend(rueckgabe) {
  
  if ( rueckgabe != '' ) {
    
    // Splitten der rueckgabe '<'
    var rueck1 = rueckgabe.split('<');
    
    // Wenn der erste Rueckgabewert aus mehr als einem Zeichen besteht, ist ein Fehler aufgetreten, die Ausführung wird abgebrochen
    if ( rueck1[0].length == 1 ) {
      
      // Ist der Rueckgabewert 1, wird ein gültiges Ergebnis zurückgegeben; andernfalls wäre der Rückgabewert nicht 1
      if ( rueck1[0] == 1 ) {
        
        alert('Die E-Mail wurde versendet.');
        hideform();
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }
  
}

// Ajax-Initialisierung, um ein Passwort zu holen
function getPasswort() {
  
  var formular = thisform;
  var bname = formular.uname.value;
  var empf = formular.email.value;
  var mailmuster = /^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-_]|\.)*[a-zA-Z0-9]{1,}\.[a-zA-Z0-9]{2,4}$/;
  var testtext = /[\<\>\;\#\|]|(--)|(\*\/)/;
  
  while ( bname == '' ) {
    
    var eingabe = prompt("Bitte geben Sie deinen Benutzernamen ein.");
    if(!eingabe)
      return false;
		formular.uname.value = eingabe;
		bname = eingabe;
    
  }
  while (testtext.test(bname)) {
    
		var eingabe = prompt("Der Benutzername enthält ungültige Zeichen.", bname);
    if(!eingabe)
      return false;
      
		formular.uname.value = eingabe;
		bname = eingabe;
    
	}
  
  while ( empf == '' ) {
    
    var eingabe = prompt("Bitte geben Sie den Empfänger ein.");
    if(!eingabe)
      return false;
		formular.email.value = eingabe;
		empf = eingabe;
    
  }
  while (!mailmuster.test(empf)) {
    
		var eingabe = prompt("Bitte geben Sie eine gültige E-Mail-Adresse ein.", empf);
    if(!eingabe)
      return false;
      
		formular.email.value = eingabe;
		empf = eingabe;
    
	}
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  // Die Rückgabe erfolg in Funktion2, ergCheckProdliste
  ajax(2,ajaxpfad, 'ajax=5&empf='+encodeURIComponent(empf)+'&sub='+encodeURIComponent(bname), 4);
  
  if ( document.getElementById('fehlerdiv') ) {
    
    var anzeige = document.getElementById('fehlerdiv');
    if ( anzeige.style.display != 'none' ) {
      
      anzeige.style.top = '0px';
      anzeige.style.left = '-500px';
      anzeige.style.display = 'none';
      fehlerArray = new Array();
      
    }
    
  }
  return false;
  
}

// Ajax-Antwort der Passwort-Funktion
function ergGetPasswort(rueckgabe) {

  if ( rueckgabe != '' ) {
    
    // Splitten der rueckgabe '<'
    var rueck1 = rueckgabe.split('<');
    
    // Wenn der erste Rueckgabewert aus mehr als einem Zeichen besteht, ist ein Fehler aufgetreten, die Ausführung wird abgebrochen
    if ( rueck1[0].length == 1 ) {
      
      // Ist der Rueckgabewert 1, wird ein gültiges Ergebnis zurückgegeben; andernfalls wäre der Rückgabewert nicht 1
      if ( rueck1[0] == 1 ) {
        
        alert("Eine E-Mail mit dem neuen Passwort wurde an Sie gesendet.\n(Kontrollieren Sie ggf. Ihre Spam-Ordner.)");
        hideform();
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }

}

// Blendet Hinweise zur Zahlungsart ein, bzw. aus
function showzaText(id) {
  
  var args = showzaText.arguments;
  if (args[1])
  {
    if ( document.getElementById('la_zatexte') ) {
      
      var ps = document.getElementById('la_zatexte').getElementsByTagName('P');
      for ( var i = 0; i < ps.length; i++ ) {
        
        ps[i].style.display = "none";
        
      }
      
    }
    
    if ( document.getElementById('la_tza'+id) )
      document.getElementById('la_tza'+id).style.display = "block";
  }
  else
  {
    
    if ( document.getElementById('zatexte') ) {
      
      var ps = document.getElementById('zatexte').getElementsByTagName('P');
      for ( var i = 0; i < ps.length; i++ ) {
        
        ps[i].style.display = "none";
        
      }
      
    }
    
    if ( document.getElementById('tza'+id) )
      document.getElementById('tza'+id).style.display = "block";
  }
  
}

// Prüft per Javascript, ob die AGB'S beim Auslösen einer Bestellung akzeptiert wurden
function ischeckedAGB(feld) {
  
  if ( thisform.elements[feld].checked == false ) {
    
    alert('Sie können keine Bestellung auslösen ohne unsere AGB\'s zu akzeptieren.');
    return false;
    
  }
  else
    return true;
  
}

// Versteck ein Ajax-Formular
function hideform() {
  
  if ( document.getElementById('ajaxformdiv') ) {
    
    while ( document.getElementById('ajaxformdiv').hasChildNodes() ) {
      
      document.getElementById('ajaxformdiv').removeChild(document.getElementById('ajaxformdiv').firstChild);
      
    }
    var parent = document.getElementById('ajaxformdiv').parentNode;
    parent.removeChild(document.getElementById('ajaxformdiv'));
    
  }
  unsetwarten();
  
}
  
// Erzeugt ein Formular, zum Absenden von Beiträgen (Ajax)
function doform(art) {
  
  if ( document.getElementById('ajaxformdiv') )
    hideform();
  
  // Alle Parameter übrgeben?
  var a = doform.arguments;
  if ( art == 'prodform' && (!a[1] || a[1] == '') ) {
    
    alert('fehlende Parameter');
    return false;
    
  }
  else if ( art == 'jslogin' && (!a[1] || a[1] == '') ) {
    
    alert('fehlende Parameter');
    return false;
    
  }
  
  // Wir brauchen ein formdiv im Schleier
  if ( document.getElementById('schleier') ) {
    
    setwarten();
    var schleier = document.getElementById('schleier');
    var formdiv = document.createElement('DIV');
    formdiv.id = "ajaxformdiv";
    
    // ajaxformdiv wird am schleier ausgerichtet
    var forcewidth = schleier.offsetWidth;
    var halfwidth = Math.round(forcewidth*0.7);
    var posleft = schleier.offsetLeft
    var padding = 25;
    posleft = posleft+(forcewidth-halfwidth)/2;
    
    formdiv.style.left = Math.round(posleft-padding)+'px';
    formdiv.style.top = schleier.offsetTop+100+'px';
    formdiv.style.width = halfwidth+'px';
    formdiv.style.padding = padding+'px';
    
    schleier.parentNode.appendChild(formdiv);
    
    // Formular erzeugen
    var formform = document.createElement('FORM');
    formform.action = window.location;
    formform.method = "post";
    
    formdiv.appendChild(formform);
    
    if ( art == 'prodform' ) {
      
      var span = document.createElement('SPAN');
      span.className = 'strong';
      span.appendChild(document.createTextNode('Ihr Kommentar'));
      formform.appendChild(span);
      formform.appendChild(document.createElement('BR'));
      
      var inpArray = new Array(0);
      
    }
    else if ( art == 'tipafriend' ) {
      
      // Betreff und Text auslesen
      var txt = decodeURIComponent(inpelement.href);
      
      // Versuche Betreff und Text zu ermitteln
      var betreff = txt.match(/\?subject=.*?&body/);
      var mitteilung = txt.match(/&body=.*?$/);
      
      if ( betreff && mitteilung ) {
        
        betreff+='';
        mitteilung+='';
        betreff = betreff.substring(9,betreff.length-5);
        mitteilung = mitteilung.substr(6);
        
        var span = document.createElement('SPAN');
        span.className = 'strong';
        span.appendChild(document.createTextNode('Betreff:'));
        formform.appendChild(span);
        var span = document.createElement('SPAN');
        span.style.marginLeft = '15px';
        span.style.fontStyle = 'italic';
        span.appendChild(document.createTextNode(betreff));
        formform.appendChild(span);
        formform.appendChild(document.createElement('BR'));
        var span = document.createElement('SPAN');
        span.className = 'strong';
        span.appendChild(document.createTextNode('Nachricht:'));
        formform.appendChild(span);
        var span = document.createElement('SPAN');
        span.style.marginLeft = '15px';
        span.style.fontStyle = 'italic';
        span.appendChild(document.createTextNode(mitteilung));
        formform.appendChild(span);
        formform.appendChild(document.createElement('BR'));
        formform.appendChild(document.createElement('BR'));
        
        var span = document.createElement('SPAN');
        span.className = 'strong';
        span.appendChild(document.createTextNode('persönliche Mitteilung:'));
        formform.appendChild(span);
        
      } 
      else {
        
        betreff = '';
        mitteilung = '';
        
      }
      
      // Array mit den Formularfeldern
      //array[x] = array('label' (string),'type' (string),'name' (string),'maxlength' (int >= 0),'size' (integer),'checkit' (int siehe kontrollfunktion.js),'pflicht' (0/1))
      
      var inpArray = new Array(1);
      inpArray[0] = new Array('Empfänger','text','email',50,30,7,1);
      
    }
    else if ( art == 'passwort' ) {
      
      var span = document.createElement('SPAN');
      var stxt = 'Sie haben Ihr Passwort vergessen? Kein Problem!\nGeben Sie Ihren Benutzernamen und die E-Mail mit der Sie sich registriert haben ein.\nWir senden Ihnen umgehend ein neues Passwort zu.';
      nl2br(stxt,span);
      formform.appendChild(span);
      formform.appendChild(document.createElement('BR'));
      formform.appendChild(document.createElement('BR'));
      
      // Formular zum Passwort zurückholen
      var inpArray = new Array(2);
      inpArray[0] = new Array('Ihr Benutzername','text','uname',50,30,6,1);
      inpArray[1] = new Array('Ihre E-Mail','text','email',50,30,7,1);
      
    }
    else if ( art == 'jslogin' ) {
      
      // if get_to_post
      var get_string = '';
      if (a[2] && a[2] == 'gettopost')
      {
        var get_string = '?gtp=1';
        var get_inputs  = document.getElementsByTagName('INPUT');
        var get_selects = document.getElementsByTagName('SELECT');
        for ( var gi = 0; gi < get_inputs.length; gi++)
        {
          if (get_inputs[gi].type != 'image' && get_inputs[gi].type != 'submit' && get_inputs[gi].name != 'uname' && get_inputs[gi].name != 'upasswort' && get_inputs[gi].name != 'shop_id')
          {
            get_string += '&'+encodeURIComponent(get_inputs[gi].name)+'='+encodeURIComponent(get_inputs[gi].value);
          }
        }
        for ( var gs = 0; gs < get_selects.length; gs++)
        {
          get_string += '&'+encodeURIComponent(get_selects[gs].name)+'='+encodeURIComponent(get_selects[gs].options[get_selects[gs].selectedIndex].value);
        }
      }
      // Neue Action
      formform.action = a[1]+get_string;
      
      var span = document.createElement('SPAN');
      span.className = 'strong red';
      var stxt = '1. Schritt: Bitte einen Account erstellen oder einloggen';
      nl2br(stxt,span);
      formform.appendChild(span);
      formform.appendChild(document.createElement('BR'));
      formform.appendChild(document.createElement('BR'));
      
      // Formular zum Passwort zurückholen
      var inpArray = new Array(2);
      inpArray[0] = new Array('Ihr Benutzername','text','uname',50,30,6,1);
      inpArray[1] = new Array('Ihr Passwort','password','upasswort',50,30,6,1);
      
    }
    
    // Jedes Formular, außer die Passwort-einholung hat ein Textarea
    if ( art != 'passwort' && art != 'jslogin' ) {
      
      if ( document.all && !window.opera ) {
        // IE-eigene Notation um ein input mit Typ zu erstellen
        var formtextarea = document.createElement('<textarea name="text">');
        
      } else {
        var formtextarea = document.createElement('TEXTAREA');
        formtextarea.name = 'text';
      }
      formtextarea.rows = "7";
      formtextarea.cols = "70";
      formtextarea.style.border = '2px solid #000000';
      formtextarea.onblur = new Function('eingabe=this;check_it(6,1);');
      
      formform.appendChild(formtextarea);
      formform.appendChild(document.createElement('BR'));
      formform.appendChild(document.createElement('BR'));
      
    }
    
    if ( inpArray.length > 0 ) {
      
      for ( var i = 0; i < inpArray.length; i++ ) {
        
        var label = document.createElement('LABEL');
        label.className = 'jsformlabel';
        var lbfor = document.createAttribute("for");
        lbfor.nodeValue = 'jsform'+i;
        label.setAttributeNode(lbfor);
        label.appendChild(document.createTextNode(inpArray[i][0]+':'));
        formform.appendChild(label);
        
        if ( document.all && !window.opera ) {
          // IE-eigene Notation um ein input mit Typ zu erstellen
          var forminput = document.createElement('<input type="'+inpArray[i][1]+'" name="'+inpArray[i][2]+'">');
          
        } else {
          
          var forminput = document.createElement('INPUT');
          forminput.type = inpArray[i][1];
          forminput.name = inpArray[i][2];
          
        }
        
        forminput.maxlength = inpArray[i][3];
        forminput.size = inpArray[i][4];
        forminput.style.marginLeft = '15px';
        forminput.id = 'jsform'+i;
        
        if ( inpArray[i][5] > 0 ) {
          
          if ( inpArray[i][6] == 1 )
            forminput.onblur = new Function('eingabe=this;check_it('+inpArray[i][5]+',1);');
          else
            forminput.onblur = new Function('eingabe=this;check_it('+inpArray[i][5]+',0);');
          
        }
        
        formform.appendChild(forminput);
        formform.appendChild(document.createElement('BR'));
        formform.appendChild(document.createElement('BR'));
        
      }
      
    }
    
    if( art == 'jslogin' )
      var subname = 'loginsubmit';
    else
      var subname = 'submit';
    
    // und noch das Absenden-Feld
    if ( document.all && !window.opera ) {
      // IE-eigene Notation um ein input mit Typ zu erstellen
      var formsubmit = document.createElement('<input type="submit" name="'+subname+'">');
      
    } else {
      var formsubmit = document.createElement('INPUT');
      formsubmit.name = subname;
      formsubmit.type = 'submit';
    }
    formsubmit.value = 'Absenden';
    formsubmit.className = 'button';
    
    // Formularaktion in Abhängigkeit des Formulars
    if ( art == 'prodform' )
      formsubmit.onclick = new Function('thisform=this.form;geaendert=false;submit_ok();sendfrmprodbeitrag('+a[1]+'); return false');
    else if ( art == 'tipafriend' )
      formsubmit.onclick = new Function('thisform=this.form;geaendert=false;submit_ok();tipAFriend("'+encodeURIComponent(betreff)+'","'+encodeURIComponent(mitteilung)+'"); return false');
    else if ( art == 'passwort' )
      formsubmit.onclick = new Function('thisform=this.form;geaendert=false;getPasswort(); return false');
    else if ( art == 'jslogin' ) {
      
      formsubmit.value = 'Login';
    }
    else
      formsubmit.onclick = new Function('return false');
    
    var formp = document.createElement('P');
    formp.style.textAlign = 'center';
    formp.appendChild(formsubmit);
    formform.appendChild(formp);
    
    if ( art == 'jslogin' ) {
      
      // Im Login-Formular gibt es noch einen Link zu Registrieren
      var formp = document.createElement('BR');
      formform.appendChild(formp);
      var formp = document.createElement('P');
      formp.style.textAlign = 'center';
      formform.appendChild(formp);
      
      var txt = "Sie sind noch nicht registriert? ";
      formp.appendChild(document.createTextNode(txt));
      var reglink = document.createElement('A');
      reglink.href = "/login.html";
      reglink.appendChild(document.createTextNode(' >> Hier können Sie sich registrieren <<'));
      formp.appendChild(reglink);
      
    }
    
    var formp = document.createElement('P');
    formp.style.textAlign = 'center';
    formform.appendChild(formp);
    // Der Link zum schließen
    var closelink = document.createElement('A');
    closelink.href ='#';
    closelink.onclick = new Function('hideform();return false;');
    closelink.appendChild(document.createTextNode('schließen'));
    formp.appendChild(closelink);
    
    // Fenster richtig Scrollen
    window.scrollTo(0,formdiv.offsetTop-50);
    
  }
  else
    alert('Das Schleier-Div im Footer fehlt');
  
}


// Ajax-Initialisierung zum Holen der Bilder
function openImage(pid) {
  
  var pfad = window.location+'';
  
  /*
  if(pfad.lastIndexOf("/") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("/")+1)+'public/ajax.php';
  else if(pfad.lastIndexOf("\\") != -1)
    var ajaxpfad = pfad.substr(0, pfad.lastIndexOf("\\")+1)+'public/ajax.php';
  else 
    return false;
  */
  var ajaxpfad = '/public/ajax.php';
  
  ajax(1,ajaxpfad, 'ajax=8&pid='+pid, 7);
  setwarten();
  return false;
}

// Anzeigen der Bilder in einem DIV
function ergOpenImage(rueckgabe) {
  if ( rueckgabe.substring(0,1) == "{" )
  {
    eval('var detail = '+rueckgabe);
    if (detail.fatalerror)
    {
      alert(detail.fatalerror);
      unsetwarten()
    }
    else
    {
      if (detail.thumbs.length > 0)
      {
        if ( document.getElementById('ajaxformdiv') )
          hideform();
        
        // Wir brauchen ein formdiv im Schleier
        if ( document.getElementById('schleier') ) {
          
          var schleier = document.getElementById('schleier');
          var formdiv = document.createElement('DIV');
          formdiv.id = "ajaxformdiv";
          
          // ajaxformdiv wird am schleier ausgerichtet
          var posleft = schleier.offsetLeft
          var padding = 25;
          
          formdiv.style.left = '50%';
          formdiv.style.marginLeft = '-425px';
          formdiv.style.top = schleier.offsetTop+100+'px';
          formdiv.style.width = '850px';
          formdiv.style.padding = padding+'px';
          formdiv.style.textAlign = 'center';
          schleier.parentNode.appendChild(formdiv);
          
          // h1 mit Überschrift
          var e_h1 = document.createElement('H1');
          var e_span = document.createElement('SPAN');
          e_span.appendChild(document.createTextNode(decodeURIComponent(detail.title)));
          e_span.className = 'underline';
          e_h1.appendChild(e_span);
          formdiv.appendChild(e_h1);
          formdiv.appendChild(document.createElement('BR'));
          if (detail.mainimage_src)
          {
            // erzeuge das erste Bild
            var bild = new Image(detail.mainimage_width,detail.mainimage_height);
            bild.src = detail.mainimage_src
            bild.alt = decodeURIComponent(detail.title);
            bild.id = 'bigimageid';
            formdiv.appendChild(bild);
            formdiv.appendChild(document.createElement('BR'));
          }
          
          formdiv.appendChild(document.createElement('BR'));
          // erzeuge die thumbnails
          if ( !document.pics) 
            document.pics = new Array();
          var x = document.pics.length;
          
          for (var thumb in detail.thumbs)
          {
            var bild = new Image(detail.thumbs[thumb].width,detail.thumbs[thumb].height);
            bild.src = detail.thumbs[thumb].src
            bild.alt = decodeURIComponent(detail.title);
            bild.style.marginLeft = '10px';
            bild.style.marginRight = '10px';
            bild.style.cursor = 'pointer';
            bild.onclick = new Function('swapBigImage("'+detail.thumbs[thumb].src_big+'","'+detail.thumbs[thumb].width_big+'","'+detail.thumbs[thumb].height_big+'")');
            formdiv.appendChild(bild);
            document.pics[x] = new Image; 
            document.pics[x].src = detail.thumbs[thumb].src_big;
            x++;
          }
          
          var formp = document.createElement('P');
          formp.style.textAlign = 'center';
          formp.style.paddingTop = '20px';
          formp.style.fontWeight = 'bold';
          
          // Der Link zum schließen
          var closelink = document.createElement('A');
          closelink.href ='#';
          closelink.onclick = new Function('hideform();return false;');
          closelink.appendChild(document.createTextNode('schließen'));
          formp.appendChild(closelink);
          formdiv.appendChild(formp);
          
          // Fenster richtig Scrollen
          window.scrollTo(0,formdiv.offsetTop-50);
          
        }
        else
          unsetwarten();
      }
      else
        unsetwarten();
    }
  }
  else
  {
    alert(rueckgabe);
    unsetwarten();
  }
}

// wechseln des Großen bildes
function swapBigImage(src,width,height) {
  if (document.getElementById('bigimageid'))
  {
    document.getElementById('bigimageid').src = src;
    document.getElementById('bigimageid').width = width;
    document.getElementById('bigimageid').height = height;
  }
}

// Leitet die Serverantwort an die richtige Funktion weiter
function funktionAuswaehlen(funktionID) {
  
	if (refernzObjekt.readyState == 4) {	

		if (refernzObjekt.status == 200) {
      
			switch (funktionID) {
        case 1: 
					ergAjaxvote(refernzObjekt.responseText);
					break;
        case 2: 
					ergCheckProdliste(refernzObjekt.responseText);
					break;
        case 3: 
					ergTipAFriend(refernzObjekt.responseText);
					break;
        case 4: 
					ergGetPasswort(refernzObjekt.responseText);
					break;
        case 5: 
					ergAddVariation(refernzObjekt.responseText);
					break;
        case 6: 
					ergRemoveVariation(refernzObjekt.responseText);
					break;
        case 7:
          ergOpenImage(refernzObjekt.responseText);
					break;
        case 20:
          erg_check_code(refernzObjekt.responseText); // Händlerfunktion!!!
					break;
				default:
					alert(refernzObjekt.responseText);
					break;
			}
		}
/*		else
		{
			alert( "FEHLER:\n HTTP status = " + refernzObjekt.status + "\n" + refernzObjekt.statusText );
		}
*/

	}
}
  
//Funktion zum Erzeugen eines XMLHttpRequest-Objekts in abhängigkeit des Browsers
function erzeugeXMLHttpRequestObjekt() {
  
	try {
    
		if (window.ActiveXObject) {
      
			try {
        
				refernzObjekt = new ActiveXObject("Microsoft.XMLHTTP");  
        
			} catch(Error) {
        
				try {
          
					refernzObjekt = new ActiveXObject("Msxml2.XMLHTTP.");
          
				} catch(Error) {
          
					refernzObjekt = false;
          
				}
			}
      
		} else if (window.XMLHttpRequest) {
      
			refernzObjekt = new XMLHttpRequest();
      
		}
    
	} catch(Error) {
		refernzObjekt = false;
	}
	return refernzObjekt;
}

// Führt die Serveranfrage aus
function ajax(methode, pfad, code, funktionID) {
  
	if (!methode)
		var methode = 1;
	if (!code)
		var code = '';
  
	if (refernzObjekt && refernzObjekt.readyState) {
    
		refernzObjekt.abort();
		refernzObjekt = false;
	}
  
	var refernzObjekt = erzeugeXMLHttpRequestObjekt();
  
	if (refernzObjekt) {
    
		switch(methode) {
      
			case 1: //Request per GET
				var pfadcode = pfad+'?'+code;
				refernzObjekt.open( "GET", pfadcode, true );
				code = null;
				break;
			case 2: //Request per POST
				refernzObjekt.open( "POST", pfad, true );
				refernzObjekt.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
				refernzObjekt.setRequestHeader( 'Content-length', code.length );
				break;
		}
    refernzObjekt.setRequestHeader("Pragma", "no-cache");
    refernzObjekt.setRequestHeader("Cache-Control", "must-revalidate");
    refernzObjekt.setRequestHeader("If-Modified-Since", document.lastModified);
		refernzObjekt.onreadystatechange = new Function("funktionAuswaehlen("+funktionID+")");
		refernzObjekt.send(code);
	}
}

function get_position_top(element) 
{
  var positionTop = element.offsetTop;
  while((element = element.offsetParent) != null) {
    if(element.tagName != 'HTML')
      positionTop += element.offsetTop;
  }
  return positionTop;
}

function get_position_left(element) 
{
  var positionLeft = element.offsetLeft;
  while((element = element.offsetParent) != null) {
    if(element.tagName != 'HTML')
      positionLeft += element.offsetLeft;
  }
  return positionLeft;
}

// Rückgeben des Transparentz-Wertes
function getOpacity(id) {
  
  var opacity = null; 
  if ( opacity = document.getElementById(id).style.opacity ) {
    opacity = parseFloat(opacity)*100;
    
    return opacity;
  }
  return 100;
  
}

// Setzen des neuen Transparenz-Wertes
function setOpacity(id,wert) {
  
  id = document.getElementById(id);
  if ( wert == 100 ) {
    id.style.opacity = 1;  
    if ( /MSIE/.test(navigator.userAgent) )  
      id.style.filter.replace(/alpha\([^\)]*\)/gi,'');  
  } else {  
    id.style.opacity = wert/100; 
    if ( /MSIE/.test(navigator.userAgent) ) {
      id.style.filter = "alpha(opacity="+wert+")"; 
    }
  } 
  
  return;
  
}

// Fader blendet Elemente ein
function fade(id,wert) {
  
  if ( getOpacity(id) < 80) {
    wert++;
    setOpacity(id,wert);
    var ref = setTimeout('fade("'+id+'","'+wert+'")',30);
  } else {
    clearTimeout(ref);
    return true;
  }
  
}

// Blendet die Bitten-Warten-Meldung ein
function setwarten() {
  
  var id = 'schleier';
  var div = document.getElementById(id);
  var mainspace = document.getElementById('leftContainer');
  
  setOpacity(id,10);
  div.style.left = get_position_left(mainspace)+'px';
  div.style.top = get_position_top(mainspace)+'px';
  div.style.width = mainspace.offsetWidth+'px';
  div.style.height = mainspace.offsetHeight+'px';
  
  var ref = setTimeout('fade("'+id+'",0)',30);
 
}

// Blendet die Wartenmeldung aus
function unsetwarten() {
  
  var id = 'schleier';
  var div = document.getElementById(id);
  div.style.left = '-300px';
  div.style.width = '1px';
  div.style.textAlign = 'left';
  
}





var styleUrlCached = null;
function GetStyleUrl() {
	if (null == styleUrlCached) {
		var ns;
		styleUrlCached = '';
		ns = document.getElementsByTagName('link');
		for (var i = 0; i < ns.length; i++) {
			var l = ns[i];
			if (l.href && /style\.css(\?.*)?$/.test(l.href)) {
				return styleUrlCached = l.href.replace(/style\.css(\?.*)?$/, '');
			}
		}

		ns = document.getElementsByTagName('style');
		for (var i = 0; i < ns.length; i++) {
			var matches = new RegExp('import\\s+"([^"]+\\/)style\\.css"').exec(ns[i].innerHTML);
			if (null != matches && matches.length > 0)
				return styleUrlCached = matches[1];
		}
	}
	return styleUrlCached;
}

function fixPNG(element) {
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
		var src;
		if (element.tagName == 'IMG') {
			if (/\.png$/.test(element.src)) {
				src = element.src;
				element.src = GetStyleUrl() + "../img/spacer.gif";
			}
		}
		else {
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
			if (src) {
				src = src[1];
				element.runtimeStyle.backgroundImage = "none";
			}
		}
		if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')";
	}
}
