// 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() {
  
  var startzeit = new Date();
  
  if ( startzeit < endzeit )  {
    
    var goon = true;
    
    if ( document.getElementById('cday') ) {
      var tage = Math.floor((endzeit-startzeit)/(24*60*60*1000));
      startzeit.setTime(startzeit.getTime()+(tage*24*60*60*1000));
    }
    
    if ( document.getElementById('chour') ) {
      var stunden = Math.floor((endzeit-startzeit)/(60*60*1000));
      startzeit.setTime(startzeit.getTime()+(stunden*60*60*1000));
    }
    
    if ( document.getElementById('cmin') ) {
      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') ) {
    
    while ( document.getElementById('cday').hasChildNodes() ) {
      document.getElementById('cday').removeChild(document.getElementById('cday').firstChild);
    }
    document.getElementById('cday').appendChild(document.createTextNode(tage));
    
  }
  
  // Ausgabe der verbleibenden Stunden
  if ( document.getElementById('chour') ) {
    
    while ( document.getElementById('chour').hasChildNodes() ) {
      document.getElementById('chour').removeChild(document.getElementById('chour').firstChild);
    }
    if ( stunden < 10 )
      stunden = '0'+stunden;
    document.getElementById('chour').appendChild(document.createTextNode(stunden));
    
  }
  
  // Ausgabe der verbleibenden Minuten
  if ( document.getElementById('cmin') ) {
    
    while ( document.getElementById('cmin').hasChildNodes() ) {
      document.getElementById('cmin').removeChild(document.getElementById('cmin').firstChild);
    }
    if ( minuten < 10 )
      minuten = '0'+minuten;
    document.getElementById('cmin').appendChild(document.createTextNode(minuten));
    
  }
  
  // Ausgabe der verbleibenden Sekunden
  if ( document.getElementById('csec') ) {
    
    while ( document.getElementById('csec').hasChildNodes() ) {
      document.getElementById('csec').removeChild(document.getElementById('csec').firstChild);
    }
    if ( sekunden < 10 )
      sekunden = '0'+sekunden;
    document.getElementById('csec').appendChild(document.createTextNode(sekunden));
    
  }
  
  if ( goon )
    setTimeout('countdown()',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.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.src = src;
      if ( center )
        setTimeout("centerbild('"+id+"')",50); // Pause muss sein, um die neuen Daten des Bildes zu laden.
      
    }
    
  }
  
}

// Blendet die entsprechenden Bestellung/Forum/Beschreibung ein und aus
function displaydetails(was) {
  
  if ( was == 3 ) {
    
    var as = inpelement.parentNode.parentNode.getElementsByTagName('A');
    for ( var i = 0; i < as.length; i++ ) {
      
      as[i].className = '';
      
    }
    inpelement.className = 'aktiv';
    if ( document.getElementById('detaildesc') )
      document.getElementById('detaildesc').style.display = 'none';
    if ( document.getElementById('detailforum') )
      document.getElementById('detailforum').style.display = 'none';
    if ( document.getElementById('detailbuy') )
      document.getElementById('detailbuy').style.display = 'block';
    
  }
  else if ( was == 2 ) {
    
    var as = inpelement.parentNode.parentNode.getElementsByTagName('A');
    for ( var i = 0; i < as.length; i++ ) {
      
      as[i].className = '';
      
    }
    inpelement.className = 'aktiv';
    if ( document.getElementById('detaildesc') )
      document.getElementById('detaildesc').style.display = 'none';
    if ( document.getElementById('detailforum') )
      document.getElementById('detailforum').style.display = 'block';
    if ( document.getElementById('detailbuy') )
      document.getElementById('detailbuy').style.display = 'none';
    
  }
  else {
    
    var as = inpelement.parentNode.parentNode.getElementsByTagName('A');
    for ( var i = 0; i < as.length; i++ ) {
      
      as[i].className = '';
      
    }
    inpelement.className = 'aktiv';
    if ( document.getElementById('detaildesc') )
      document.getElementById('detaildesc').style.display = 'block';
    if ( document.getElementById('detailforum') )
      document.getElementById('detailforum').style.display = 'none';
    if ( document.getElementById('detailbuy') )
      document.getElementById('detailbuy').style.display = 'none';
    
  }
  
}

// 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 = 'aktiv';
        
      }
      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;
  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);
    
    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;
  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 den 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;
  // 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 Ihre 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;
  // 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 Ihren 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;
  // 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 Ihnen zugesendet.\n(Kontrollieren Sie ggf. Ihren Spam-Ordner.)");
        hideform();
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }

}

// Die Submit-Button zum ergänzen vorn Variationsmöglichkeiten werden ausgeblenden, statdessen werden Bilder eingefügt
function changeVariationsubmit(plusbild,minusbild) {
  
  preloadImages(plusbild,minusbild);
  picspeicher = plusbild+';'+minusbild;
  
  // erzeuge das Plus-Bild in jedem Div
  if ( document.getElementById('artikelauswahl') ) {
    
    var div = document.getElementById('artikelauswahl');
    
    if ( document.getElementById('varplus') ) {
      
      var merk = document.getElementById('varplus');
      thisform = merk.form;
      
      // Nur wenn das input "fields" existiert, können die Inputs entfernt werden
      if ( thisform.fields ) {
        
        var anzinp = thisform.fields.value;
        
        document.getElementById('varplus').parentNode.removeChild(document.getElementById('varplus'));
        if ( document.getElementById('varminus') )
          document.getElementById('varminus').parentNode.removeChild(document.getElementById('varminus'));
        
        var vardivs = div.getElementsByTagName('DIV');
        // Nur das Letzte Element bekommt die Plus-Minus-Bilder
        // Imageobjekte erstellen
        var plus = new Image(12,12);
        plus.src = plusbild;
        plus.alt = 'hinzufügen';
        plus.title = "weitere Möglichkeit hinzufügen";
        plus.style.marginLeft = '10px';
        plus.style.cursor = 'pointer';
        plus.onclick = new Function ( "addVariation()");
        vardivs[vardivs.length-1].appendChild(plus);
        
        if ( vardivs.length > 1 ) {
          
          var kreuz = new Image(12,12);
          kreuz.src = minusbild;
          kreuz.alt = 'entfernen';
          kreuz.title = "Möglichkeit entfernen";
          kreuz.style.cursor = 'pointer';
          kreuz.id = 'kreuzbild';
          kreuz.style.marginLeft = '10px';
          kreuz.onclick = new Function ( "removeVariation()");
          vardivs[vardivs.length-1].appendChild(kreuz);
          
        }
        
      }
      
    }
    
  }
  
}

// Ajax-Initialisierung zum ergänzen einer Variationsmöglichkeit im Bestellformular
function addVariation() {
  
  // Ich muss wieder das Formular ermitteln
  if ( document.getElementById('konffields') ) {
    
    var hform = document.getElementById('konffields').form;
    
    if ( hform ) {
      
      var anzinp = hform.fields.value;
      // Jetzt muss ich die die gesamte bisherige Anzahl auslesen
      var counter = 0;
      for ( var i = 1; i <= anzinp; i++ ) {
        
        counter += hform.elements['anzahl'+i].value*1;
        
      }
      var p = hform.elements['pid'].value;
      
      // Übergebe den ermittelten Wert an Ajax, um zu prüfen, ob weitere Felder hinzugefügt werden können
      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;
      
      ajax(1,ajaxpfad, 'ajax=6&val='+counter+'&pid='+p, 5);
      return false;
      
      
    }
    else
      alert('AJAX-Fehler');
    
  }
  
}

// Ergebnis von addVariation, das Formular wird ggf. Erweitert
function ergAddVariation(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 ) {
        
        var rueck2 = rueck1[1].split('|'); // [0] gezählte Anzahl, [1] maximale Abgabemenge
        // Ich muss wieder das Formular ermitteln
        if ( document.getElementById('konffields') ) {
          
          var hform = document.getElementById('konffields').form;
          
          if ( hform ) {
            
            var anzinp = hform.fields.value;
            var nanzinp = anzinp;
            // Jetzt muss ich die die gesamte bisherige Anzahl auslesen
            var counter = 0;
            var removeit = false;
            var div = document.getElementById('artikelauswahl');
            
            for ( var i = 1; i <= anzinp; i++ ) {
              
              counter += hform.elements['anzahl'+i].value*1;
              if ( counter > rueck2[1] ) {
                
                if ( removeit ) {
                  
                  nanzinp--;
                  var parent = hform.elements['anzahl'+i].parentNode;
                  while ( parent.hasChildNodes() ) {
                    
                    parent.removeChild(parent.firstChild);
                    
                  }
                  div.removeChild(parent);
                  
                }
                else {
                  
                  // Jetzt ist die Anzahl zu groß, der Wert wird zurückgesetzt, bis der Maximalwert erreicht ist
                  var hcount = counter - hform.elements['anzahl'+i].value*1;
                  
                  hform.elements['anzahl'+i].value = rueck2[1]-hcount;
                  counter += rueck2[1]-hcount;
                  // Weitere Elemente müssen entfernt werden
                  removeit = true;
                  
                  if ( hform.elements['anzahl'+i].value == 0 ) {
                    
                    // Dieser Wert ist schon Null, also muss auch dieses Element entfernt werden
                    var parent = hform.elements['anzahl'+i].parentNode;
                    while ( parent.hasChildNodes() ) {
                      
                      parent.removeChild(parent.firstChild);
                      
                    }
                    div.removeChild(parent);
                    
                    // Fields wird um 1 verringert
                    nanzinp--;
                    
                  }
                  
                }
                
              }
              
            }
            
            if ( !removeit && counter < rueck2[1] ) {
              
              nanzinp++;
              
              // Wurde nichts entfernt, und der counter ist !gleich der maximalen Abgabe, so kann ein neues Feld hinzugefügt werden
              var mdiv = document.createElement('DIV');
              div.appendChild(mdiv);
              
              // Zuerst das Label
              var label = document.createElement('LABEL');
              label.htmlFor = "anzahl"+nanzinp;
              label.appendChild(document.createTextNode('Anzahl:'));
              mdiv.appendChild(label);
              
              // Input-Element erzeugen
              if ( document.all && !window.opera ) {
                // IE-eigene Notation um ein input mit Typ zu erstellen
                var inp = document.createElement('<input type="text" name="anzahl'+nanzinp+'">');
                
              } else {
                var inp = document.createElement("INPUT");
                inp.type = "text";
                inp.name = 'anzahl'+nanzinp;
              }
              inp.id = 'anzahl'+nanzinp; 
              inp.maxlength = '3';
              inp.size = 5;
              inp.value = 1;
              inp.onblur = new Function("eingabe = this; check_it(3,0);");
              mdiv.appendChild(inp);
              
              // Auswahlmöglichkeit 1
              if ( document.getElementById('var11') ) {
                
                // Labeltext auslesen
                var labeltext = div.getElementsByTagName('DIV')[0].getElementsByTagName('LABEL')[1].firstChild.nodeValue;
                
                var label = document.createElement('LABEL');
                label.htmlFor = "var1"+nanzinp;
                label.className = 'inline';
                label.appendChild(document.createTextNode(labeltext));
                mdiv.appendChild(label);
                
                // Jetzt muss ein Select erzeugt werden, dass alle Möglichkeiten enthält
                var varsel = document.createElement('SELECT');
                varsel.id = 'var1'+nanzinp;
                varsel.name = 'var1'+nanzinp;
                mdiv.appendChild(varsel);
                
                for ( var x = 0; x < hform.var11.options.length; x++ ) {
                  
                  var varopt = document.createElement('OPTION');
                  varopt.value = hform.var11.options[x].value;
                  varopt.appendChild(document.createTextNode(hform.var11.options[x].firstChild.nodeValue));
                  varsel.appendChild(varopt);
                  
                }
                
              }
              
              // Auswahlmöglichkeit 2
              if ( document.getElementById('var21') ) {
                
                // Labeltext auslesen
                var labeltext = div.getElementsByTagName('DIV')[0].getElementsByTagName('LABEL')[2].firstChild.nodeValue;
                
                var label = document.createElement('LABEL');
                label.htmlFor = "var2"+nanzinp;
                label.className = 'inline';
                label.appendChild(document.createTextNode(labeltext));
                mdiv.appendChild(label);
                
                // Jetzt muss ein Select erzeugt werden, dass alle Möglichkeiten enthält
                var varsel = document.createElement('SELECT');
                varsel.id = 'var2'+nanzinp;
                varsel.name = 'var2'+nanzinp;
                mdiv.appendChild(varsel);
                
                for ( var x = 0; x < hform.var21.options.length; x++ ) {
                  
                  var varopt = document.createElement('OPTION');
                  varopt.value = hform.var21.options[x].value;
                  varopt.appendChild(document.createTextNode(hform.var21.options[x].firstChild.nodeValue));
                  varsel.appendChild(varopt);
                  
                }
                
              }
             
            }
            
            // Erhöhen der Anzahl an Feldern
            hform.fields.value = nanzinp;
            
            var bilder = picspeicher.split(';');
            
            // Plus und Minusbild aus allen Divs entfernen
            var vardivs = div.getElementsByTagName('DIV');
            for ( var i = 0; i < vardivs.length; i++ ) {
              
              var imgs = vardivs[i].getElementsByTagName('IMG');
              var c = imgs.length;
              for ( var k = 0; k < c; k++ ) {
                
                vardivs[i].removeChild(imgs[0]);
                
              }
              
            }
            
            // Jetzt die Bilder zum hinzufügen und entfernen
            // Imageobjekte erstellen
            var plus = new Image(12,12);
            plus.src = bilder[0];
            plus.alt = 'hinzufügen';
            plus.title = "weitere Möglichkeit hinzufügen";
            plus.style.marginLeft = '10px';
            plus.style.cursor = 'pointer';
            plus.onclick = new Function ( "addVariation()");
            vardivs[vardivs.length-1].appendChild(plus);
            
            if ( vardivs.length > 1 ) {
              
              var kreuz = new Image(12,12);
              kreuz.src = bilder[1];
              kreuz.alt = 'entfernen';
              kreuz.title = "Möglichkeit entfernen";
              kreuz.style.cursor = 'pointer';
              kreuz.id = 'kreuzbild';
              kreuz.style.marginLeft = '10px';
              kreuz.onclick = new Function ( "removeVariation()");
              vardivs[vardivs.length-1].appendChild(kreuz);
              
            }
            
          }
          else
            alert('AJAX-Fehler');
          
        }
  
        
      } 
      else {
        
        // Ist der erste Wert keine 1, so wird eine Fehlermeldung übermittelt
        alert (rueck1[1]);
        
      }
      
    } else
      alert(rueckgabe);
    
  }  
  
}

// Ajax-Initialisierung zum entfernen einer Variationsmöglichkeit im Bestellformular
function removeVariation() {
  
  // Ich muss wieder das Formular ermitteln
  if ( document.getElementById('konffields') ) {
    
    var hform = document.getElementById('konffields').form;
    
    if ( hform ) {
      
      var anzinp = hform.fields.value;
      // Jetzt muss ich die die gesamte bisherige Anzahl auslesen
      var counter = 0;
      for ( var i = 1; i <= anzinp; i++ ) {
        
        counter += hform.elements['anzahl'+i].value*1;
        
      }
      var p = hform.elements['pid'].value;
      
      // Übergebe den ermittelten Wert an Ajax, um zu prüfen, ob weitere Felder hinzugefügt werden können
      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;
      
      ajax(1,ajaxpfad, 'ajax=7&val='+counter+'&pid='+p, 6);
      return false;
      
      
    }
    else
      alert('AJAX-Fehler');
    
  }
  
  
}

// Ergebnis von removeVariation, das Formular wird ggf. verkürzt
function ergRemoveVariation(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 ) {
        
        var rueck2 = rueck1[1].split('|'); // [0] gezählte Anzahl, [1] maximale Abgabemenge
        // Ich muss wieder das Formular ermitteln
        if ( document.getElementById('konffields') ) {
          
          var hform = document.getElementById('konffields').form;
          
          if ( hform ) {
            
            var anzinp = hform.fields.value;
            var nanzinp = anzinp;
            // Jetzt muss ich die die gesamte bisherige Anzahl auslesen
            var counter = 0;
            var removeit = false;
            var div = document.getElementById('artikelauswahl');
            
            for ( var i = 1; i <= anzinp; i++ ) {
              
              counter += hform.elements['anzahl'+i].value*1;
              if ( counter > rueck2[1] ) {
                
                if ( removeit ) {
                  
                  nanzinp--;
                  var parent = hform.elements['anzahl'+i].parentNode;
                  while ( parent.hasChildNodes() ) {
                    
                    parent.removeChild(parent.firstChild);
                    
                  }
                  div.removeChild(parent);
                  
                }
                else {
                  
                  // Jetzt ist die Anzahl zu groß, der Wert wird zurückgesetzt, bis der Maximalwert erreicht ist
                  var hcount = counter - hform.elements['anzahl'+i].value*1;
                  
                  hform.elements['anzahl'+i].value = rueck2[1]-hcount;
                  counter += rueck2[1]-hcount;
                  // Weitere Elemente müssen entfernt werden
                  removeit = true;
                  
                  if ( hform.elements['anzahl'+i].value == 0 ) {
                    
                    // Dieser Wert ist schon Null, also muss auch dieses Element entfernt werden
                    var parent = hform.elements['anzahl'+i].parentNode;
                    while ( parent.hasChildNodes() ) {
                      
                      parent.removeChild(parent.firstChild);
                      
                    }
                    div.removeChild(parent);
                    
                    // Fields wird um 1 verringert
                    nanzinp--;
                    
                  }
                  
                }
                
              }
              
            }
            
            if ( !removeit ) {
              
              nanzinp--;
              var vardivs = div.getElementsByTagName('DIV');
              
              while ( vardivs[vardivs.length-1].hasChildNodes() ) {
                
                vardivs[vardivs.length-1].removeChild(vardivs[vardivs.length-1].firstChild);
                
              }
              div.removeChild(vardivs[vardivs.length-1]);
             
            }
            
            // Verändern der Anzahl an Feldern
            hform.fields.value = nanzinp;
            
            var bilder = picspeicher.split(';');
            
            // Plus und Minusbild aus allen Divs entfernen
            var vardivs = div.getElementsByTagName('DIV');
            for ( var i = 0; i < vardivs.length; i++ ) {
              
              var imgs = vardivs[i].getElementsByTagName('IMG');
              var c = imgs.length;
              for ( var k = 0; k < c; k++ ) {
                
                vardivs[i].removeChild(imgs[0]);
                
              }
              
            }
            
            // Jetzt die Bilder zum hinzufügen und entfernen
            // Imageobjekte erstellen
            var plus = new Image(12,12);
            plus.src = bilder[0];
            plus.alt = 'hinzufügen';
            plus.title = "weitere Möglichkeit hinzufügen";
            plus.style.marginLeft = '10px';
            plus.style.cursor = 'pointer';
            plus.onclick = new Function ( "addVariation()");
            vardivs[vardivs.length-1].appendChild(plus);
            
            if ( vardivs.length > 1 ) {
              
              var kreuz = new Image(12,12);
              kreuz.src = bilder[1];
              kreuz.alt = 'entfernen';
              kreuz.title = "Möglichkeit entfernen";
              kreuz.style.cursor = 'pointer';
              kreuz.id = 'kreuzbild';
              kreuz.style.marginLeft = '10px';
              kreuz.onclick = new Function ( "removeVariation()");
              vardivs[vardivs.length-1].appendChild(kreuz);
              
            }
            
            
          }
          else
            alert('AJAX-Fehler');
          
        }
  
        
      } 
      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) {
  
  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.5);
    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 ich 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' ) {
      
      // Neue Action
      formform.action = a[1];
      
      var span = document.createElement('SPAN');
      span.className = 'strong red';
      var stxt = 'Bitte erst 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 = "Du bist noch nicht bei Xeibo.de registriert? ";
      formp.appendChild(document.createTextNode(txt));
      var reglink = document.createElement('A');
      reglink.href = "login.php";
      reglink.appendChild(document.createTextNode('Hier kannst du dich 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;
  
  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 ( 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(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 = 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 = 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
  {
    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;
				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);
	}
}

// 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('container');
  
  setOpacity(id,10);
  div.style.left = (mainspace.offsetLeft)+'px';
  div.style.top = (mainspace.offsetTop)+'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';
  
}

// Einfliegen der Werbung
function flyin(id,max) {
  
  if ( document.getElementById(id).offsetLeft < max ) {
    
    document.getElementById(id).style.left = document.getElementById(id).offsetLeft+5+'px';
    var ref = setTimeout('flyin("'+id+'",'+max+')',10);
    
  }
  else {
    
    clearTimeout(ref);
    return true;
    
  }
  
}

// Einblenden der Werbung
function showwerbung(banner) {
  
  if ( document.getElementById(banner) ) {
    
    this_banner = banner;
    var werbung = document.getElementById(banner);
    var id = 'schleier';
    var div = document.getElementById(id);
    var mainspace = document.getElementsByTagName('body')[0];
  
    div.style.left = '0px';
    div.style.top = '0px';
    div.style.width = mainspace.offsetWidth+'px';
    div.style.height = (mainspace.offsetHeight)+'px';
    setOpacity('schleier',70);
    
    werbung.style.top = '50px';
    werbung.style.width = '400px'; 
    werbung.style.left = '-400px'; //(mainspace.offsetWidth-400)/2+'px';
    werbung.style.display = 'block';
    var max = Math.ceil((mainspace.offsetWidth-400)/2);
    var ref = setTimeout('flyin("'+banner+'",'+max+')',10);
    
  }
  
}

// Schließen der Werbung
function closewerbung() {
  
  var id = 'schleier';
  var div = document.getElementById(id);
  div.style.left = '-300px';
  div.style.width = '1px';
  
  var werbung = document.getElementById(this_banner);
  werbung.style.display = 'none';
  
}
