
/* 'Transparenz 090507' (c) cybaer@binon.net - http://Coding.binon.net/Transparenz */
/* Lizenz CC <http://creativecommons.org/licenses/by-nc-sa/2.5/> */
function transparency(element,percentage) {
 var i, count, objStyle, filterValue, opacityValue;
 if(document.getElementById) {
  if(typeof(element)=="object" && element) { obj=element; }
  else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
  else if (document.getElementById(element)) { obj=document.getElementById(element); }
  else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
  else { obj=false; }
  if(obj) {
   percentage=(typeof(percentage)=="undefined")?50:100-percentage;
   filterValue="Alpha(opacity="+percentage+")";
   opacityValue=""+percentage/100;
   count=(obj.length)?obj.length:1;
   for(i=0;i<count;i++) {
    objStyle=(obj.length)?obj[i].style:obj.style;
    objStyle.filter=filterValue;
    objStyle.MozOpacity=opacityValue;
    objStyle.KhtmlOpacity=opacityValue;
    objStyle.opacity=opacityValue;
   }
  }
 }
}

 // Transparenz-Funktion mit lokaler 'Dummy'-Funktion und 'xJStrans'
 // geklammert, falls externes Script nicht geladen werden konnte!
 xJStrans=false; function t(e,p){if(xJStrans){transparency(e,p);}}

 // Ueberblendungsfunktion - Beispiel fuer transparency(): http://Coding.binon.net/Transparenz
 // Parameter: Image-Objekt, neuer Image-URL, Transparenzschritt (optional - Default: 4),
 //            Wartezeit zw. den Schritten (in ms - optional - Default: 20ms),
 //            Funktion die nach der Ueberblendung aufgerufen wird (optional)
 function imgBlend(imgObj,imgURL,step,time,onBlend) {

  // Wenn Aufruf mit neuem Image-URL als Parameter und keine Ueberblendung laeuft: Initialisierungszweig der Funktion
  if(imgURL && !imgObj.blendTrans) {
   // Image-Eigenschaft um Ueberblendung abzubrechen
   imgObj.blendStop=false;
   // Image-Eigenschaft mit aktuellem Transparenzwert (100 = voll transparent, 0 = deckend)
   imgObj.blendTrans=100;
   // Image-Eigenschaft mit der Schrittweite
   imgObj.blendStep=(step)?step:4;
   // Image-Eigenschaft mit der Zeitspanne (in ms) bis zum naechsten Schritt
   imgObj.blendTime=(time)?time:30;
   // Image-Eigenschaft mit der abschliessend aufzurufenden Funktion
   if(onBlend) { imgObj.onBlend=onBlend; }
   // Grafik als zentrierte Hintergrundgrafik des Elternobjektes verwenden 
   imgObj.parentNode.style.background="url("+imgObj.src+") no-repeat center";
   // Grafik voll transparent machen
   t(imgObj,imgObj.blendTrans);
   // Neue Grafik laden
   imgObj.src=imgURL;
   // Funktion erneut (aber ohne Image-URL) aufrufen
   setTimeout(function() { imgBlend(imgObj); },imgObj.blendTime);

  // Wenn Aufruf ohne neuen Image-URL: Ueberblendungszweig der Funktion
  } else if(!imgURL) {
   // Neuen Transparenzwert berechnen (nicht kleiner 0)
   imgObj.blendTrans=Math.max(0,imgObj.blendTrans-imgObj.blendStep);
   // Wenn Grafik immer noch transparent und Ueberblendung nicht abgebrochen:
   if(imgObj.blendTrans>0 && !imgObj.blendStop) {

    // Neuen Transparenzwert setzen
    t(imgObj,imgObj.blendTrans);
    // Und erneuter Funktionsaufruf fuer naechsten Schritt
    setTimeout(function() { imgBlend(imgObj); },imgObj.blendTime);

   // Wenn Grafik nicht mehr transparent (Ende der Ueberblendung) oder Abbruch 
   } else {
    // Aktueller Transparenzwert ist 0
    imgObj.blendTrans=0;
    // Transparenzwert 0 setzen
    t(imgObj,0);
    // Alte (Hintergrund-)Grafik loeschen
    imgObj.parentNode.style.backgroundImage="";
    // Sofern gewuenscht: Abschlussfunktion (mit Image-Objekt als Parameter) aufrufen
    if(imgObj.onBlend) { onBlend=imgObj.onBlend; imgObj.onBlend=null; onBlend(imgObj); }
   }

  }

 }
 

function pausecomp(millis) 
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); } 
while(curDate-date < millis);
} 



// =============================== Direkt-Code ===============================

xJStrans=true; // Externes JavaScript geladen!

