        /* *******************************************************************************
           ***                                                                         ***
           ***                        Liberty Tools 7                                  ***
           ***                                                                         ***
           ***  (c) Christian Schnettelker   www.manoftaste.de    mail@manoftaste.de   ***
           ***                                                                         ***
           ******************************************************************************* */


        /* --------------------------------------------------------------------------------------- */
        /* Eingabe von Zusatztext                                                                  */
        /* Quelle: http://archiv.raid-rush.ws/t-135665.html                                        */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__input( text,vorgabe )
                {
                var eingabe = prompt( text,vorgabe );
                return eingabe;
                }


        /* --------------------------------------------------------------------------------------- */
        /* Filelink und xLink setzen                                                               */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__filelink( idTextarea,file,vorgabe )
                {
                var eingabe = lt7js__input( "Bitte geben Sie den Linktext ein",vorgabe );
                if ( eingabe==vorgabe || eingabe=='' )  {  lt7js__taginsert( idTextarea,'[datei]'+file+'[/datei]','' );  return;  }
                lt7js__taginsert( idTextarea,'[datei]'+eingabe+'[separator]'+file+'[/datei]','' );
                }
        function lt7js__xlink( idTextarea,vorgabe )
                {
                var eingabe = lt7js__input( "Bitte geben Sie den Linktext ein",vorgabe );
                if ( eingabe==vorgabe || eingabe=='' )  {  lt7js__taginsert( idTextarea,'[link]','[/link]' );  return;  }
                lt7js__taginsert( idTextarea,'[xlink]'+eingabe+'[separator]','[/xlink]' );
                }
                
                
        /* --------------------------------------------------------------------------------------- */
        /* Filelink und xLink setzen                                                               */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__ask( question,doyes,dono )
                {
                Check = confirm( question );
                if ( Check==false )  {  if ( dono )  window.location.href = dono;  return;  }
                window.location.href = doyes;
                }

                

        /* --------------------------------------------------------------------------------------- */
        /* Tag in Textarea einfügen                                                                */
        /* Quelle: http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/                       */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__taginsert( idTextarea,aTag,eTag )
                {
                var input = document.getElementById( idTextarea );
                input.focus();

                /* für Internet Explorer */
                if ( typeof document.selection!='undefined' )
                   {
                   var range   = document.selection.createRange();
                   var insText = range.text;
                   range.text  = aTag + insText + eTag;

                   range = document.selection.createRange();
                   if ( insText.length==0 )  { range.move( 'character', -eTag.length); }
                                        else { range.moveStart( 'character', aTag.length + insText.length + eTag.length ); }
                   range.select();
                   }

                /* für neuere auf Gecko basierende Browser */
                else if ( typeof input.selectionStart!='undefined' )
                   {
                   var start   = input.selectionStart;
                   var end     = input.selectionEnd;
                   var insText = input.value.substring( start,end );
                   input.value = input.value.substr( 0,start ) + aTag + insText + eTag + input.value.substr( end );

                   var pos;
                   if ( insText.length==0 )  { pos = start + aTag.length; }
                                        else { pos = start + aTag.length + insText.length + eTag.length; }
                   input.selectionStart = pos;
                   input.selectionEnd   = pos;
                   }

                /* für die übrigen Browser */
                else
                   {
                   var pos;
                   var re = new RegExp( '^[0-9]{0,3}$' );
                   while (!re.test(pos) ) { pos = prompt( "Einfügen an Position (0.." + input.value.length + "):","0" ); }
                   if ( pos>input.value.length ) { pos = input.value.length; }

                   var insText = prompt( "Bitte geben Sie den zu formatierenden Text ein:" );
                   input.value = input.value.substr( 0,pos ) + aTag + insText + eTag + input.value.substr( pos );
                   }
                }
                
                
        /* --------------------------------------------------------------------------------------- */
        /* Kaufmännisch runden, Ergebnis mit , statt . ausgeben                                    */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__roundkaufm( x )
                {
                var k = (Math.round(x * 100) / 100).toString();
                k += (k.indexOf('.') == -1)? '.00' : '00';
                var p = k.indexOf('.');
                return k.substring(0, p) + ',' + k.substring(p+1, p+3);
                }
                
                
        /* --------------------------------------------------------------------------------------- */
        /* Zufallszahl erzeugen                                                                    */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__getrandom( min,max )
                {
                if( min==max ) return( min );
                return( min+parseInt( Math.random() * ( max-min+1 ) ) );
                }
                
                
        /* --------------------------------------------------------------------------------------- */
        /* Delay                                                                                   */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        function lt7js__delay( prmSec )
                {
                prmSec   *= 1000;
                var eDate = null;         var eMsec = 0;
                var sDate = new Date();   var sMsec = sDate.getTime();

                do  {  eDate = new Date();  eMsec = eDate.getTime();
                    }
                while( (eMsec-sMsec)<prmSec );
                }
                
        /* --------------------------------------------------------------------------------------- */
        /* SlideShow                                                                                   */
        /*                                                                                         */
        /* --------------------------------------------------------------------------------------- */
        var slideShowSpeed = 10000;
        var crossFadeDuration = 4000;

        var BilderNamen = new Array();
        var BilderDaten = new Array();
        
        var BilderNext = 0;
        var mark = "                                                            ";
        var BilderURL;
        var BilderCount = 0;
        var BilderFirst;
        var TargetID;
        var RunCounter = 0;
        
        function lt7js__initSlideShow( __bildername,__bilderstart,__bilderstopp,__bilderurl,__id,__speed,__duration )
                {
                var i;
                
                /* Bildernamen erzeugen */
                for( i=__bilderstart; i<=__bilderstopp; i++ )  {  BilderNamen[BilderCount++] = __bildername + i + ".jpg";
                                                                  if ( BilderCount>50 )  break;
                                                               }

                /* Restliche Variabelen übernehmen */
                BilderURL         = __bilderurl;
                TargetID          = __id;
                slideShowSpeed    = __speed;
                crossFadeDuration = __duration;
                }
        function lt7js__runSlideShow()
                {
                var i;
                
                /* Filter vorbereiten */
                if ( document.all && document.getElementById(TargetID).filters )
                   {
                   document.getElementById(TargetID).style.filter = "blendTrans(duration=crossFadeDuration)";
                   document.getElementById(TargetID).filters.blendTrans.Apply();
                   }
                else  return;   // Keine SlideShow auf FF & Co.

                /* Bild ggf. laden */
                if ( !BilderDaten[BilderNext] )  {  BilderDaten[BilderNext] = new Image();
                                                    BilderDaten[BilderNext].src = BilderURL + BilderNamen[BilderNext];
                                                    lt7js__delay( 1 );
                                                 }

                /* Bild setzen */
                document.getElementById(TargetID).style.backgroundImage = "url("+BilderDaten[BilderNext].src+")";
                if ( document.all && document.getElementById(TargetID).filters)  document.getElementById(TargetID).filters.blendTrans.Play();

                /* Nächstes Bild bestimmen */
                i=0;
                while( 1 )  {  BilderNext = lt7js__getrandom( 0,BilderCount-1 );
                               if ( mark[BilderNext]!='X' )  {  mark[BilderNext]='X';  break;  }
                               if ( ++i>500 )  mark = "                                                            ";
                            }

                setTimeout( 'lt7js__runSlideShow()',slideShowSpeed );
                }



        function __SetOpacity( object,opacityPct )
                {
                // IE/Win
                object.style.filter = "alpha(opacity:"+opacityPct+")";

                // Safari<1.2, Konqueror
                object.style.KHTMLOpacity = opacityPct/100;

                // Older Mozilla and Firefox
                object.style.MozOpacity = opacityPct/100;

                // Safari 1.2, newer Firefox and Mozilla, CSS3
                object.style.opacity = opacityPct/100;
                }
       function __ChangeOpacity( id,msDuration,msStart,fromO,toO )
                {
                var element = document.getElementById( id );
                var msNow   = (new Date()).getTime();
                var opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;
                
                if ( opacity>=100 )  {  __SetOpacity( element,100 );  element.timer = undefined;  return;  }
                if ( opacity<=0   )  {  __SetOpacity( element,0   );  element.timer = undefined;  return;  }

              __SetOpacity( element,opacity );
                element.timer = window.setTimeout( "__ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",10 );
                }
        function lt7js__initSlideShowx( __bildername,__bilderstart,__bilderstopp,__bilderurl,__id,__speed,__duration,__bilderfirst )
                {
                var i;

                /* Bildernamen erzeugen */
                for( i=__bilderstart; i<=__bilderstopp; i++ )  {  BilderNamen[BilderCount++] = __bildername + i + ".jpg";
                                                                  if ( BilderCount>50 )  break;
                                                               }

                /* Restliche Variabelen übernehmen */
                BilderURL         = __bilderurl;
                TargetID          = __id;
                slideShowSpeed    = __speed;
                crossFadeDuration = __duration;
                BilderFirst       = __bilderfirst;
                BilderNext        = __bilderfirst;
                }
        function lt7js__runSlideShowx()
                {
                var i;
                
                /* Aktuelles Bild ggf. laden */
                if ( !BilderDaten[BilderNext] )  {  BilderDaten[BilderNext] = new Image();
                                                    BilderDaten[BilderNext].src = BilderURL + BilderNamen[BilderNext];
                                                    lt7js__delay( 1 );
                                                 }

                /* Aktuelles Bild setzen */
                document.getElementById("FotoTabelle1").style.backgroundImage = "url("+BilderDaten[BilderNext].src+")";

                /* Nächstes Bild bestimmen */
                i=0;
                while( 1 )  {  BilderNext = lt7js__getrandom( 0,BilderCount-1 );
                               if ( mark[BilderNext]!='X' )  {  mark[BilderNext]='X';  break;  }
                               if ( ++i>500 )  mark = "                                                            ";
                            }

                /* Nächstes Bild ggf. laden */
                if ( !BilderDaten[BilderNext] )  {  BilderDaten[BilderNext] = new Image();
                                                    BilderDaten[BilderNext].src = BilderURL + BilderNamen[BilderNext];
                                                    lt7js__delay( 1 );
                                                 }

                /* Nächstes Bild setzen */
                var foreground = document.getElementById( "FotoTabelle2" );
                if ( foreground.timer )  window.clearTimeout( foreground.timer );

                document.getElementById("FotoTabelle2").style.backgroundImage  = "url("+BilderDaten[BilderNext].src+")";
              __SetOpacity( document.getElementById("FotoTabelle2"),0 );
                 
                /* Fade-Effekt zum neuen Bild */
                var startMS = (new Date()).getTime();
                foreground.timer = window.setTimeout( "__ChangeOpacity('" + "FotoTabelle2" + "'," + crossFadeDuration + "," + startMS + ",0,100)",10 );

                /* Wieder von vorne anfangen */
                setTimeout( 'lt7js__runSlideShowx()',slideShowSpeed );
                }










function FadeInImage(foregroundID,newImage,backgroundID)
{
  var foreground=document.getElementById(foregroundID);
  if (foreground.timer) window.clearTimeout(foreground.timer);
  if (backgroundID)
  {
    var background=document.getElementById(backgroundID);
    if (background)
    {
      if (background.src)
      {
        foreground.src = background.src;
        SetOpacity(foreground,100);
      }
      background.src = newImage;
      background.style.backgroundImage = 'url(' + newImage + ')';
      background.style.backgroundRepeat = 'no-repeat';
      var startMS = (new Date()).getTime();
      foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "'," + FadeDurationMS + "," + startMS + ",0,100)",10);
    }
  } else {
    foreground.src = newImage;
  }
}
var slideCache = new Array();
function RunSlideShow(pictureID,backgroundID,imageFiles,displaySecs)
{
  var imageSeparator = imageFiles.indexOf(";");
  var nextImage = imageFiles.substring(0,imageSeparator);
  if (slideCache[nextImage] && slideCache[nextImage].loaded)
  {
    FadeInImage(pictureID,nextImage,backgroundID);
    var futureImages = imageFiles.substring(imageSeparator+1,imageFiles.length)
      + ';' + nextImage;
    setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+futureImages+"',"+displaySecs+")",
      displaySecs*1000);
    // Identify the next image to cache.
    imageSeparator = futureImages.indexOf(";");
    nextImage = futureImages.substring(0,imageSeparator);
  } else {
    setTimeout("RunSlideShow('"+pictureID+"','"+backgroundID+"','"+imageFiles+"',"+displaySecs+")",
      250);
  }
  // Cache the next image to improve performance.
  if (slideCache[nextImage] == null)
  {
    slideCache[nextImage] = new Image;
    slideCache[nextImage].loaded = false;
    slideCache[nextImage].onload = function(){this.loaded=true};
    slideCache[nextImage].src = nextImage;
  }
}


