      
 // -------------------------------------------------------------------------------------------------------------------
 // Document Ready
 // -------------------------------------------------------------------------------------------------------------------
 
    jQuery(document).ready(function()
    { 
    // -------------------------------------------------------------------------------------------------------------------
    // Konfiguration einlesen
    // -------------------------------------------------------------------------------------------------------------------
       
       var _yt_id =     jQuery("#ytLayer").attr("yt_id");
       var _yt_player = jQuery("#ytLayer").attr("yt_player");
       var _yt_color =  jQuery("#ytLayer").attr("yt_color");
       var _yt_width =  jQuery("#ytLayer").attr("yt_width");
       var _yt_height = jQuery("#ytLayer").attr("yt_height");
       var _yt_acht =   jQuery("#ytLayer").attr("yt_acht");
       
    // -------------------------------------------------------------------------------------------------------------------
    // Titel setzen
    // -------------------------------------------------------------------------------------------------------------------
       
    // Default-Titel 
       jQuery("#ytTitelSpan").text(jQuery("#ytLayer").attr("yt_titel"));
      
    // -------------------------------------------------------------------------------------------------------------------
    // Youtube Javascript API 
    // -------------------------------------------------------------------------------------------------------------------
 
    // allowScriptAccess must be set to allow the Javascript from one 
    // domain to access the swf on the youtube domain
       var params = { allowScriptAccess: "always", bgcolor: _yt_color };
 
    // this sets the id of the object or embed tag to 'myytplayer'.
    // You then use this id to access the swf and make calls to the player's API
       var atts = { id: _yt_id };
    
       swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=ytplayer", _yt_player, _yt_width, _yt_height, _yt_acht, null, null, params, atts);
    });
    
 // -------------------------------------------------------------------------------------------------------------------
 // UI
 // -------------------------------------------------------------------------------------------------------------------
 
    function ytOpen(id,cue,titel) 
    {
    // Schatten einblenden
    // document.getElementById("ytShadow").style.display = "block";
       jQuery("#ytShadow").fadeIn(300);
       
    // Player anzeigen
       document.getElementById("ytLayer").style.display = "block";
      
       if ((!cue) || (cue == ""))
       {
          var cue = "0";
       }
      
       window.setTimeout("loadNewVideo('"+id+"', '"+cue+"', '"+titel+"');", 2000);
    // Funktion beenden
       return false;
    }

    function ytClose() 
    {
       mute();
       stop();
      
    // Titel zur?cksetzen
       var _yt_titel = jQuery("#ytLayer").attr("yt_titel")
       jQuery("#ytTitelSpan").text(_yt_titel);
      
    // Schatten ausblenden
    // document.getElementById("ytShadow").style.display = "none";
       jQuery("#ytShadow").fadeOut(100);
       
    // Player verbergen
       document.getElementById("ytLayer").style.display = "none";
          
    // Funktion beenden
       return false;
    }

    function ytStatus(status) 
    {
       if (status == "aus")
       {
       // Status-Box verbergen
          document.getElementById('ytStatus').style.display='none';
      
       // Buttons tauschen
          document.getElementById('ytStatusAn').style.display='inline'; 
          document.getElementById('ytStatusAus').style.display='none'; 
       }
       else
       {
       // Default Status-Box anzeigen
          document.getElementById('ytStatus').style.display='inline';
      
       // Buttons tauschen
          document.getElementById('ytStatusAn').style.display='none'; 
          document.getElementById('ytStatusAus').style.display='inline'; 
       }
          
    // Funktion beenden
       return false;
    }
    
 // -------------------------------------------------------------------------------------------------------------------
 // SDK: Youtube Javascript API 
 // -------------------------------------------------------------------------------------------------------------------
 
    function updateHTML(elmId, value) 
    {
    // document.getElementById(elmId).innerHTML = value;
    }

    function setytplayerState(newState) 
    {
      updateHTML("playerstate", newState);
    }

    function onYouTubePlayerReady(playerId) 
    {
      ytplayer = document.getElementById("myytplayer");
      setInterval(updateytplayerInfo, 1000);
      updateytplayerInfo();
      ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
      ytplayer.addEventListener("onError", "onPlayerError");
    }

    function onytplayerStateChange(newState) 
    {
      setytplayerState(newState);
    }

    function onPlayerError(errorCode) 
    {
      alert("An error occured: " + errorCode);
    }

    function updateytplayerInfo() 
    {
       var state = jQuery("#ytLayer").css("display");
       
       if (state == "block")
       {
          updateHTML("bytesloaded", getBytesLoaded());
          updateHTML("bytestotal", getBytesTotal());
          updateHTML("videoduration", getDuration());
          updateHTML("videotime", getCurrentTime());
          updateHTML("startbytes", getStartBytes());
          updateHTML("volume", getVolume());
       }
    }

 // Functions for the API calls
    function loadNewVideo(id, startSeconds, titel) 
    {
       if (ytplayer) 
       {
          ytplayer.loadVideoById(id, parseInt(startSeconds));
         
       // Buttons tauschen
          document.getElementById('ytPlayAn').style.display='none';
          document.getElementById('ytPlayAus').style.display='inline';
          
       // Stringl?ngen-Attribut f?r Men? lesen
          var lange = jQuery("#ytTitelSpan").attr("lange");
          var lange = parseInt(lange);
          
          jQuery("#ytTitelSpan").text(constrain(titel,lange,"..."));
       }
          
    // Funktion beenden
       return false;
    }

    function cueNewVideo(id, startSeconds) 
    {
       if (ytplayer) 
       {
          ytplayer.cueVideoById(id, startSeconds);
       }
    }

    function play() 
    {
       if (ytplayer) 
       {
       // Wiedergabe fortsetzen
          ytplayer.playVideo();
         
       // Buttons tauschen
          document.getElementById('ytPlayAn').style.display='none';
          document.getElementById('ytPlayAus').style.display='inline';
       }
          
    // Funktion beenden
       return false;
    }

    function pause() 
    {
       if (ytplayer) 
       {
       // Wiedergabe anhalten
          ytplayer.pauseVideo();
         
       // Buttons tauschen
          document.getElementById('ytPlayAn').style.display='inline';
          document.getElementById('ytPlayAus').style.display='none';
       }
          
    // Funktion beenden
       return false;
    }

    function stop() 
    {
       if (ytplayer) 
       {
       // Wiedergabe stoppen
          ytplayer.stopVideo();
       }
        
    // Funktion beenden
       return false;
    }

    function getPlayerState() 
    {
      if (ytplayer) 
      {
        return ytplayer.getPlayerState();
      }
    }

    function seekTo(seconds) 
    {
       if (ytplayer) 
       {
          ytplayer.seekTo(seconds, true);
       }
          
    // Funktion beenden
       return false;
    }

    function getBytesLoaded() 
    {
       var state = jQuery("#ytLayer").css("display");
       
       if ((ytplayer) && (state == "block"))
       {
          return ytplayer.getVideoBytesLoaded();
       }
    }

    function getBytesTotal() 
    {
      if (ytplayer) 
      {
        return ytplayer.getVideoBytesTotal();
      }
    }

    function getCurrentTime() 
    {
      if (ytplayer) 
      {
        return ytplayer.getCurrentTime();
      }
    }

    function getDuration() 
    {
      if (ytplayer) 
      {
        return ytplayer.getDuration();
      }
    }

    function getStartBytes() 
    {
      if (ytplayer) 
      {
        return ytplayer.getVideoStartBytes();
      }
    }

    function mute() 
    { 
       if (ytplayer) 
       {
          ytplayer.mute();
         
       // Buttons tauschen
          document.getElementById('ytMuteAn').style.display='inline';
          document.getElementById('ytMuteAus').style.display='none';
       }
          
    // Funktion beenden
       return false;
    }

    function unMute() 
    {
       if (ytplayer) 
       {
          ytplayer.unMute();
         
       // Buttons tauschen
          document.getElementById('ytMuteAn').style.display='none';
          document.getElementById('ytMuteAus').style.display='inline';
       }
          
    // Funktion beenden
       return false;
    }
    
    function getEmbedCode() 
    {
       alert(ytplayer.getVideoEmbedCode());
          
    // Funktion beenden
       return false;
    }

    function getVideoUrl() 
    {
       alert(ytplayer.getVideoUrl());
          
    // Funktion beenden
       return false;
    }
    
    function setVolume(newVolume) 
    {
      if (ytplayer) 
      {
        ytplayer.setVolume(newVolume);
      }
    }

    function getVolume() 
    {
      if (ytplayer) 
      {
        return ytplayer.getVolume();
      }
    }

    function clearVideo() 
    {
       if (ytplayer) 
       {
          ytplayer.clearVideo();
       }
          
    // Funktion beenden
       return false;
    }
   
 // ----------------------------------------------------------------------------------------------------------------
 // Helper: String kürzen
 // ----------------------------------------------------------------------------------------------------------------
    
    function constrain(str,n,hellip)
    { 
       if(str.length > n)
       {  
          var s = str.substr(0, n);
          var words = s.split(' '); 
          words[words.length - 1] = '';
          str = words.join(' ') + '' + hellip; 
       }
       
       return str;
    }
