
 // -------------------------------------------------------------------------------------------------------------------
 // Document Ready
 // -------------------------------------------------------------------------------------------------------------------
 
    $(document).ready(function()
    { 
    // -------------------------------------------------------------------------------------------------------------------
    // Konfiguration lesen
    // -------------------------------------------------------------------------------------------------------------------
              
       var _dj = getParameters("dj"); // DJ-Admin
       
       if ((!_dj) || (_dj == ""))
       {
       // Cooles Parameter (...html?Andreas)
          var _dj = getParameters("cool");
       }
    
       var _raver = getParameters("raver");
       if ((!_raver) || (_raver == ""))
       {
          var _raver = getParameters("hash"); // DJ-Channel
       }
       
    // alert("_dj: "+_dj+"\n_raver: "+_raver+"\n");
       
    // -------------------------------------------------------------------------------------------------------------------
    // Ajax Setup
    // -------------------------------------------------------------------------------------------------------------------
            
       jQuery.ajaxSetup({ url: "ws/webservice.php", type: "POST", global: false, cache: false });
       
    // -------------------------------------------------------------------------------------------------------------------
    // Applikationen
    // -------------------------------------------------------------------------------------------------------------------
            
    // Du bist DJ!
       if ((_dj) && (_dj != ""))
       {
          friskyContainer("friskyDj");
          
          $("#friskyControls").css("display","block");
          
          $("#friskyCheck").click(function()
          {       
             friskySwitch();
          });
          
          window.setInterval('friskyTimeout();', 1000);
          
          var _raver = "";
       }
       
    // Tanz!
       else if ((_raver) && (_raver != ""))
       {
          friskyContainer("friskyRaver");
          
          $("#friskyControls").css("display","block");
          
          $("#friskyCheck").click(function()
          {       
             friskySwitch();
          });
          
          window.setInterval('friskyTimeout();', 1000);
          
          $("#dj").html(_raver);
       }
       
    // Hallo Raver!
       else 
       {
          $("#friskyControls").css("display","none");
          
          friskyContainer("friskySets");
       }
          
       $("#friskyWerdeDj").click(function()
       {
          var dj = $("#friskyWerdeDjName").attr("value");
          
          if (dj)
          {
             var href = getParameters("none");
          
             window.location.href = href+"?"+dj;
          }
          else
          {
             alert("Gib Deinen Namen ein, um DJ zu werden!");
          }
       });
          
       $("#friskyFeiereDj").click(function()
       {
          var dj = $("#friskyFeiereDjName").attr("value");
          
          if (dj)
          {
             var href = getParameters("none");
          
             window.location.href = href+"#"+dj;
             
             friskyContainer("friskyRaver");
          }
       });
       
       $("#friskyShareLink").click(function()
       {
          friskyShare();
       });
              
    // Document Ready Ende
    });
    
 // --------------------------------------------------------------------------------------------------
 // UI: Container-Framework
 // --------------------------------------------------------------------------------------------------

    function friskyContainer(show)
    {
       if (show)
       {    
          $(".container").css("display","none");
          $("#"+show).css("display","block");
          
          var title = document.title;
          var title = title.split(": ");
          var title = title[0];
          
          var type = friskyGetType();
          
          document.title = title+": "+type;
       }
          
       return false;
    }
      
 // --------------------------------------------------------------------------------------------------
 // Frisky Check
 // --------------------------------------------------------------------------------------------------

    function friskyTimeout()
    {
       var statusDj =   friskyGetDj();
       var statusSet =  friskyAjax("read",statusDj);
    }
    
    function friskyTimeoutAjax(html)
    {
       var statusType = friskyGetType();
       var statusDj =   friskyGetDj();
       var statusAlt =  friskyLayer();
       var statusNeu =  html;
       
       var debug = "friskyTimeoutAjax();\n";
       var debug = debug+"\n- Typ des Clients: "+statusType;
       var debug = debug+"\n- Aktueller DJ: "+statusDj;
       var debug = debug+"\n- Status des Players: "+statusAlt;
       var debug = debug+"\n- Status der Textdatei: "+statusNeu;

       if (statusNeu != statusAlt)
       {     
          var debug = debug+"\n- �nderung, statusNeu: "+statusNeu+", statusAlt: "+statusAlt;
             
          if (statusType == "dj")
          {
             friskyLoad(statusNeu);
             var debug = debug+"\n- Lade Player, statusNeu: "+statusNeu;
          }
             
          friskyLayer(statusNeu);
          var debug = debug+"\n- Aktualisiere Layer: "+statusNeu;
             
          friskyStatus(statusNeu);
          var debug = debug+"\n- Aktualisiere Checkbox: "+statusNeu;
       }
       else
       {
          var debug = debug+"\n- Keinen neuen Player oder Status gesetzt, statusNeu: "+statusNeu+", statusAlt: "+statusAlt;
       }
       
    // alert(debug);
    }
    
 // --------------------------------------------------------------------------------------------------
 // Frisky Switch
 // --------------------------------------------------------------------------------------------------
    
    function friskySwitch()
    {
       var statusDj = friskyGetDj();
       
       var switcher = friskyStatus();
       
    // alert("statusDj: "+statusDj+", switcher: "+switcher+"");
       
       friskyAjax(switcher,statusDj);
    }
    
 // --------------------------------------------------------------------------------------------------
 // Frisky-Player laden
 // --------------------------------------------------------------------------------------------------

    function friskyLoad(status)
    {
       if (status == 1)
       {    
          $("#friskyFrame").css("background-image","url(img/player_lade.png)");
          $("#friskyFrame").css("display","block");
          $("#friskyFrameEmpty").css("display","none");
          
          var url =      $("#friskyLayer").attr("url");
          var autoplay = $("#friskyLayer").attr("autoplay");
          var color =    $("#friskyLayer").attr("color");
          
          var src = url+"?autoPlay="+autoplay+"&color=0x"+color;
          
          $("#friskyFrame").attr("src",src);
          
       // alert("friskyLoad("+status+"): Player geladen");
       }
       else if (status == 0)
       {
          $("#friskyFrameEmpty").css("background-image","url(img/player_aus.png)");
          $("#friskyFrameEmpty").css("display","block");
          $("#friskyFrame").css("display","none");
          
          var src = "";
          
          $("#friskyFrame").attr("src",src);
          
       // alert("friskyLoad("+status+"): Player entfernt");
       }
          
       return false;
    }
     
 // --------------------------------------------------------------------------------------------------
 // Helper: Frisky Ajax
 // --------------------------------------------------------------------------------------------------

    function friskyAjax(mode,dj)
    {
       if (mode == "read")
       {
          jQuery.ajax({ 
             data: "&mode=read&dj="+dj,
             dataType: "html",
             error: function()
             {
             // alert("Fehler beim Lesen");
             },
             success: function(html)
             {
                friskyTimeoutAjax(html);
                
             // alert("friskyAjax(mode,dj)\n\nmode: read\nhtml: "+html);
             }
          });
       }
       else if ((mode == 0) || (mode == 1))
       {
          jQuery.ajax({ 
             data: "&mode="+mode+"&dj="+dj,
             dataType: "html",
             error: function()
             {
                alert("Fehler beim Schreiben");
             },
             success: function(html)
             {
             // alert("friskyAjax(mode,dj)\n\nmode: write\nhtml: "+html);
             }
          });
       }
          
       return false;
    }
      
 // --------------------------------------------------------------------------------------------------
 // Helper: Frisky Player
 // --------------------------------------------------------------------------------------------------

    function friskyLayer(status)
    {
       if (!status)
       {    
          var status = $("#friskyLayer").attr("status");
          
       // alert("status aus Layer gelesen mit friskyLayer(status): "+status); 
          
          return status; 
       }
       else
       {    
          if (status == 1)
          {
             $("#friskyLayer").attr("status","1");
          }
          else
          {    
             $("#friskyLayer").attr("status","0");
          }
          
       // alert("status geschrieben: "+status);  
          
          return false;
       }
    }
    
 // --------------------------------------------------------------------------------------------------
 // Helper: Frisky Status
 // --------------------------------------------------------------------------------------------------

    function friskyStatus(status)
    {
       if (!status)
       {    
          var status = $("#friskyCheck").attr("checked");
          
          if (status == true)
          {    
             var status = 1;
          }
          else
          {    
             var status = 0;
          }
          
       // alert("status der Checkbox gelesen mit friskyStatus(status): "+status); 
          
          return status; 
       }
       else
       {    
          if (status == 1)
          {
             $("#friskyCheck").attr("checked","true");
          }
          else
          {    
             $("#friskyCheck").removeAttr("checked");
          }
          
       // alert("status geschrieben: "+status);  
          
          return false;
       }
    }
    
 // --------------------------------------------------------------------------------------------------
 // Helper: Frisky Get Typ
 // --------------------------------------------------------------------------------------------------

    function friskyGetType()
    { 
       if ((!type) || (type == ""))
       {
       // Normales Parameter (...html?dj=Andreas)
          var type = getParameters("dj");
          
          if ((type) && (type != ""))
          {
             var type = "dj";
          }
       }
       
       if ((!type) || (type == ""))
       {
       // Cooles Parameter (...html?Andreas)
          var type = getParameters("cool");
          
          if ((type) && (type != ""))
          {
             var type = "dj";
          }
       }
    
       if ((!type) || (type == ""))
       {
       // Hash (...html#Andreas)
          var type = getParameters("hash");
          
          if ((type) && (type != ""))
          {
             var type = "raver";
          }
       }
    
       if ((!type) || (type == ""))
       {
       // Fehler
          var type = "none";
       }
       
    // alert("friskyGetType()\n\ntype: "+type);
       
       return type;
    }
    
 // --------------------------------------------------------------------------------------------------
 // Helper: Frisky Get DJ
 // --------------------------------------------------------------------------------------------------

    function friskyGetDj()
    { 
       if ((!type) || (type == ""))
       {
       // Normales Parameter (...html?dj=Andreas)
          var type = getParameters("dj");
       }
       
       if ((!type) || (type == ""))
       {
       // Cooles Parameter (...html?Andreas)
          var type = getParameters("cool");
       }
    
       if ((!type) || (type == ""))
       {
       // Hash (...html#Andreas)
          var type = getParameters("hash");
       }
    
       if ((!type) || (type == ""))
       {
       // Fehler
          var type = "Konnte nicht ermittelt werden";
       }
       
    // alert("friskyGetDj()\n\ntype: "+type);
       
       return type;
    }
    
 // --------------------------------------------------------------------------------------------------
 // Frisky Share
 // --------------------------------------------------------------------------------------------------

    function friskyShare()
    { 
       var url = getParameters("none");
       var dj =  friskyGetDj();
       
       var url = url+"#"+dj;
       
       alert(url);
       
       return false;
    }
    
 // --------------------------------------------------------------------------------------------------
 // Helper: URL-Parameter lesen                                                             
 // --------------------------------------------------------------------------------------------------

    function getParameters(name)
    {
       if (name == "hash")
       {
          var hashUrl = window.location.hash;
          var hashUrl = hashUrl.replace("#","");
          
          return hashUrl;
       }
       else if (name == "cool")
       {
          var param1 = location.href;
          var param2 = param1.split("?");
          var param3 = param2[1]; if (param3) {
          var param4 = param3.split("&");
          var param5 = param4[0]; if (param5) {
          var param6 = param5.split("#");
          var param7 = param6[0]; if (param7) {
          var param8 = param7.split("=");
          var param =  param8[0];
          }}}
          
          return param;
       }
       else if (name == "none")
       {
          var url1 = location.href;
          var url2 = url1.split("?");
          var url3 = url2[0]; if (url3) {
          var url4 = url3.split("&");
          var url5 = url4[0]; if (url5) {
          var url6 = url5.split("#");
          var url =  url6[0];
          }}
          
          return url;
       }
       else
       {
          name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
          var regexS = "[\\?&]"+name+"=([^&#]*)";
          var regex = new RegExp( regexS );
          var results = regex.exec( window.location.href );
          if( results == null )
          {
            return "";
          }
          else
          {
            return results[1];
          }
       }
    }

