<!-- Trage ein paar Zusatzinformationen ein -->
var debug=false;

<!-- Sendet ein Formular ab -->
function sendForm(form,url,wait,openlayerid,closelayerid,loadintolayerurl,writeposttoid,writetoid,emptylayerpost,emptylayer,openjavascript) {

      if (debug) { alert('Sende Formular: '+form+'\nSende an URL: '+url+'\nOeffne Layer: '+openlayerid+'\nSchliesse Layer: '+closelayerid+'\nHole Inhalte von URL: '+loadintolayerurl+'\nschicke formular an: '+writeposttoid+'\nSchreibe Inhalte in Layer: '+writetoid+'\nFormularlayer löschen: '+emptylayerpost+'\ninhaltelayer löschen: '+emptylayer+'\nJavascript nachladen und ausführen: '+openjavascript); }
      //Wartelayer öffnen
      if (wait) { openLayer('wait'); }
      if (closelayerid) { closeLayer(closelayerid); }
      //Inhalte von URL in Layer laden
      if (loadintolayerurl) { loadURLContent(loadintolayerurl,writetoid,emptylayer,''); }
      //Layerinhalte löschen oder beibehalten?
      //eval (closeLayer(openlayerid));
      
      //Formular abschicken an
      dojo.io.bind({
                     url: url,
                     load: function(type, data, evt)
                      { 
                        if (debug) { alert(data); }                
                        // SPECIAL HACK - Neues Fenster nur öffnen, wenn open dasteht
                        if(data.substring(0,11) == "<!--open-->") 
                          {
                          if (debug) { alert(data.substring(0,11)); }
                          //Neues Fenster wird nur geöffnet, wenn die Ausgabe mit "<!--open--> beginnt"
                          if (openlayerid) { openLayer(openlayerid); }
                          }
                        else
                          {
                          if (openlayerid) { document.getElementById(openlayerid).style.visibility = "hidden"; }
                          }
                          
                        // SPECIAL HACK - Fenster nicht schliessen, wenn ein Fehler aufgetreten ist, Ausgabe in das Fenster verlagern
                        if(data.substring(0,11) == "<!--erro-->")
                          {
                          openLayer(closelayerid);
                          if (emptylayer && data) { document.getElementById(closelayerid).innerHTML = data; }
                          else {document.getElementById(closelayerid).innerHTML += data;}
                          }
                        else
                          {  
                          if (emptylayer && data) { document.getElementById(writeposttoid).innerHTML = data; }
                          else {document.getElementById(writeposttoid).innerHTML += data;}
                          } 
                        // SPECIAL HACK - Links anzeigen zu Studip und Co
                        if(data.substring(0,11) == "<!--load-->") 
                          {
                            if (debug) { alert(data.substring(0,11)); }
                            openLayer('toolbar_right');
                          }
                        
                        if (wait) { closeLayer('wait'); }
                      },
                     formNode: dojo.byId(form)
                  });
                
      
      //Javascript dynamisch nachladen und ausführen
      if (openjavascript) { ensureScriptIsLoaded(openjavascript); }
      
      // SPECIAL HACK - Im Falle eines Logins, alle anderen Layer killen
      if (form == 'loginform') 
        {
          document.getElementById('logincreateprofile').style.visibility = "hidden";
          document.getElementById('loginloadprofile').style.visibility = "hidden";
        }
};


<!-- Öffnet ein Layer -->
function loadURLContent(url,writetoid,emptylayer,openjavascript) {
  if (debug) { alert('Lade von URL'+url+'Schreibe in Layer'+writetoid); }
  if (openjavascript) { ensureScriptIsLoaded(openjavascript); }
  
  writeURLContent(url,writetoid,emptylayer);
}

<!-- Öffnet eine URL und stoppt danach das Wartefenster -->
function writeURLContent(url,id,emptylayer) {
    dojo.io.bind({
          url: url,
          load: function(type, data, evt)
            { 
              if (emptylayer && data) { document.getElementById(id).innerHTML = data; }
              else {document.getElementById(id).innerHTML += data;}
              
              // SPECIAL HACK - username und password einfügen
              if(data.substring(0,11) == "<!--save-->")
                {
                if (debug) { alert(data.substring(0,11)); }
                document.getElementById('username2').value = document.getElementById('username1').value;
                document.getElementById('password2').value = document.getElementById('password1').value;
                }
              // SPECIAL HACK - Links verstecken zu Studip und Co
              if(data.substring(0,11) == "<!--dele-->") 
                {
                  if (debug) { alert(data.substring(0,11)); }
                  closeLayer('toolbar_right');
                  document.getElementById('mainframe').src='empty.html';
                }
            },
          mimetype: "text/plain"
    });
}     
     
<!-- Öffnet ein Layer -->
function openLayer(open) {
  if (debug) { alert("öffne Layer"+open); }
  changeOpac(0, open);
  document.getElementById(open).style.visibility = "visible";
  opacity(open, 0, 100, 300);
  //changeOpac(90, open);
}

<!-- Schließt ein Layer -->
function closeLayer(close) {
  if (debug) { alert("schliesse Layer"+close); }
  opacity(close, 100, 0, 300);
  changeOpac(0, close);
  document.getElementById(close).style.visibility = "hidden";
  //changeOpac(0, close);
}           

<!-- Layer ein/ausfaden -->
function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

<!-- Ändert Layertransparenz -->
//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

<!-- Lädt ein Script nachträglich dynamisch nach -->
function ensureScriptIsLoaded(scriptname) {
   if (self.uploadMessages) { // Already exists
     return;
   }
   var head = document.getElementsByTagName("head")[0];
   script = document.createElement('script');
   script.id = 'uploadScript';
   script.type = 'text/javascript';
   script.src = scriptname;
   head.appendChild(script)
}

<!-- Öffnet ein Layer -->
function switchAndLoad(close,open,url) {
  //Inhalte von URL in zu öffnendes Layer laden
  if (url) { loadURLContent(url,open,'emptylayer',''); }
  //Layer ein- ausblenden
  if (close) { closeLayer(close); }
  if (open) { openLayer(open); }
}  

<!-- ersetzt ein Textvorkommen -->
function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}
