/*!
 * jQuery.mu5ik - Plugin for www.mu5ik.de
 * Copyright 2011, Dirk Koester 
 * Version 0.0
 * Last modified: 01.11.2011 
 * http://www.dirkoester.de/
 */
(function($)
{
  var cache = [];


  //Hintergrundbild austausachen
  $.fn.loadBGImage = function(url)
  {
    var t = this;
    $('<img />').attr('src', url).load(function()
    { 
      t.each(function()
      { 
        $(this).css('backgroundImage', 'url(' + url + ')');
      });
    });
    return this;
  }
  
  //
  $.fn.loadFrame = function(id)
  {
    return this.each(function()
    { 
      var url = "http://www.youtube.com/v/" + id + "?version=3&fs=0&showinfo=0&rel=0&showsearch=0&modestbranding=1&iv_load_policy=0&hd=0&color=white";
      $(this).attr('src', url);
      $(this).load(function() 
      {

      });
    });
  }

  //Zufallszahl
  $.random = function (b, a) 
  {
    return (b + parseInt(Math.random() * (a - b + 1)));
  }

  //Return-Taste abfangen
  $.isReturn = function (b) 
  {
    var a = b.which;
    if (a == 13) 
    {
        return true;
    }
    return false;
  }

  //Shadowbox anzeigen
  $.shadowboxShow = function(options)
  {
    var settings =
    {
      width: "820px",
      height: "400px",
      player: "html",
      options:
      {
        modal: true,
        overlayOpacity: 0.80,
        overlayColor: '#000',
        viewportPadding: 0,
        enableKeys: false,
        displayNav: false
      }
    };
    if(options) 
    { 
      $.extend( settings, options );
    }
    Shadowbox.open(settings);
  }
 
  //Vorladen von Bildern
  $.preload = function() 
  { 
    var args_len = arguments.length;
    for (var i = args_len; i--;) 
    {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
  
  //
  $.renderEntity = function($container, dataArray, leftRight)
  {
    $container.removeClass('loading');
    
    for(var i=0; i < dataArray.length; ++i)
    {
      $item = $($.renderWidgetItem(dataArray[i],leftRight));
      $container.append($item);
      $item.hide().delay(i*100).fadeIn();
    }
  }
  
  //
  $.renderFlavorIndicator = function(flavs, lClass)
  {
    var flavors = "";

    for(var i=0; i < flavs.length; ++i)
    {
      switch(flavs[i])
      {
        case '1':
          flavors += "<div class='icon n n-r fl'></div>";
          break;
        case '2':
          flavors += "<div class='icon n n-y fl'></div>";
          break;
        case '3':
          flavors += "<div class='icon n n-g fl'></div>";
          break;
        case '4':
          flavors += "<div class='icon n n-b fl'></div>";
          break;
        case '5':
          flavors += "<div class='icon n n-i fl'></div>";
          break;
      }
    }  
    return "<div class='" + lClass + "'>" + flavors + "</div>";
  }
  
  //
  $.renderWidgetItem = function(json, lC)
  {
    return "<div class='wid-prev gr-gray-horizontal'>"
             + "<img class='wid-img fl' src='" + json.baseurl + "img/" + json.pictureTeaser + "'>"
             + "<div class='wid-prev-txt'>"
             + $.renderFlavorIndicator(json.flavor, lC) 
             + "<h1><a href='" + json.baseurl + "'>" + json.name + "</a></h1>"
             + "<p>" + json.description + "</p>"
             + "</div>"
            + "</div>";
  }
  
  /*
  $.renderVideo = function($container, dataArray)
  {
    $container.removeClass('loading');
    $container.append($.renderVideoContainer(dataArray));
  }
  
  //
  $.renderVideoContainer = function(json)
  {
    var ul = "<ul id='yt-video-list' class='wid-videos'>";
    for(var i=0; i < json.length; ++i)
    {
      ul += "<li class='gr-gray-horizontal ia' data-id='" + json[i].media + "'><img src='" + json[i].baseurl + "img/" + json[i].teaser  + "' width='60' height='37' /><p>" + json[i].entityname + " - " + json[i].title + "</p></li>";
    }
    ul += "</ul>";
    return ul; 
  }
  */
  
  //
  $.renderListItem = function(listcontent)
  {
    return "<li class='gr-gray-horizontal'>" + listcontent + "</li>";
  }
  
  //
  $.renderMetaGigs = function(dataArray)
  {
    $container = $('#widget-container-gigs');
    $container.removeClass('loading');
    
    for(var i=0; i < dataArray.length; ++i)
    {
      var cnt = "<b>" + dataArray[i].date + "</b>" + " &ndash; " + dataArray[i].name + " &ndash; <a href='" + dataArray[i].baseurl + "'>" + dataArray[i].entityname + "</a> &ndash; " + dataArray[i].location + " in " + dataArray[i].city + "</li>";
      $item = $($.renderListItem(cnt));
      $container.find('ul').append($item);
      $item.hide().delay(i*100).fadeIn();
    }
  }
  
  //
  $.renderMetaNews = function(dataArray)
  {
    $container = $('#widget-container-news');
    $container.removeClass('loading');
    
    for(var i=0; i < dataArray.length; ++i)
    {
      var cnt = "<a href='" + dataArray[i].baseurl + "'>" + dataArray[i].entityname + "</a> &ndash; " + dataArray[i].news + "</li>";
      $item = $($.renderListItem(cnt));
      $container.find('ul').append($item);
      $item.hide().delay(i*100).fadeIn();
    }
  } 
  
})(jQuery);
