<!--

var timer; // needed to loop through thumbnails
function getVideoId(url)
{
  var match_start = url.indexOf('=');
  var match_end = url.indexOf('&');
  if (match_start)
  {
    id = url.substring(match_start+1,match_end);
    return id;
  }
}


function clearList(ul)
{
  var list = document.getElementById(ul);
  while (list.firstChild)
  {
    list.removeChild(list.firstChild);
  }
}


function hideOverlay()
{
  var overlay = document.getElementById('embed_overlay');
  overlay.style.display = 'none';
  overlay.innerHTML = "";
}


var ytPlayerDiv;
var ytPlayer = {}
function videoOverlay(id, block, _width, _height, autoplay)
{
  if(!ytPlayer[block])
  {
    var objBody = document.getElementById(block);
    ytPlayerDiv = document.createElement('div');
    ytPlayerDiv.setAttribute("id", block+"_video");
    objBody.insertBefore(ytPlayerDiv, objBody.firstChild);
    ytPlayer[block] = true;
  }
  ytPlayerDiv.innerHTML = "Laddar videospelare... <a href=\"http://www.youtube.com/watch?v="+id+"\">Laddar inte?</a>";

  var flashvars = {};
  if(autoplay == true)
    flashvars.autoplay = "1";

  var params = {};
  params.wmode           = "transparent";
  params.allowfullscreen = "true";

  var attributes = {};

  if(swfobject) // create flash object
    swfobject.embedSWF("http://www.youtube.com/v/"+id, block+"_video", _width, _height, "6", "false", flashvars, params, attributes);
  else // no SwfObject JS include
    ytPlayerDiv.innerHTML = '<div id="embed_overlay"><a href="javascript:hideOverlay()" id="close">Close</a><br /><object width="510" height="420"><param name="movie" value="http://www.youtube.com/v/'+id+'"><param name="autoplay" value="1"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/'+id+'&autoplay=1" type="application/x-shockwave-flash" wmode="transparent" width="510" height="420"></embed></object></div>';
}


function mousOverImage(name,id,nr)
{
  if(name)
    imname = name;

  // make border orange
  imname.style.borderColor =  'orange';

  imname.src = "http://img.youtube.com/vi/"+id+"/"+nr+".jpg";
  nr++;
  if(nr > 3)
    nr = 1;
  timer =  setTimeout("mousOverImage(false,'"+id+"',"+nr+");",1000);
}


function mouseOutImage(name,border)
{
  if(name)
    imname = name;

  // make border back to greyish
  //imname.style.border = border; --- ie issues!

  if(timer)
    clearTimeout(timer)
}


function listVideos(json,cfg)
{
  if(!cfg.player)
    cfg.player = 'embed';

  if(!cfg.layout)
    cfg.layout = 'full';

  div = document.getElementById(cfg.block);
  div.innerHTML = ''; // empty

  var ul = document.createElement('ul');
  ul.setAttribute('id', 'youtubelist');
  if(json.feed.entry)
  {
    for (var i = 0; i < json.feed.entry.length; i++)
    {
      var entry = json.feed.entry[i];
      for (var k = 0; k < entry.link.length; k++)
      {
        if (entry.link[k].rel == 'alternate')
        {
          url = entry.link[k].href;
          break;
        }
      }

      var thumb       = entry['media$group']['media$thumbnail'][1].url;
      var li          = document.createElement('li');
      var overlayLink = 'javascript:videoOverlay(\''+getVideoId(url)+'\',\''+cfg.block+'\');';

      if(cfg.layout == 'thumbnails')
      {
        if(cfg.player ==  'embed')
          li.innerHTML = '<a href="'+overlayLink+'"><img style="border:'+cfg.imgstyle+'" src="'+thumb+'" alt="'+entry.title.$t+'"  onmouseout="mouseOutImage(this,\''+cfg.imgstyle+'\')" onmouseover="mousOverImage(this,\''+getVideoId(url)+'\',2)"></a>';
        else // cfg.player = link
          li.innerHTML = '<a href="'+url+'"><img style="border:'+cfg.imgstyle+'" src="'+thumb+'" alt="'+entry.title.$t+'" onmouseout="mouseOutImage(this,\''+cfg.imgstyle+'\')" onmouseover="mousOverImage(this,\''+getVideoId(url)+'\',2)"></a>';
      }
      else
      {
        if(cfg.player ==  'embed') // cfg.layout = full
          li.innerHTML = entry.content.$t.replace(url,overlayLink);
        else // cfg.player = link
          li.innerHTML = entry.content.$t;
      }

      ul.appendChild(li);
    }
  }
  else
  {
    div.innerHTML = 'Inga videos hittades för given query:<br>Type:\''+cfg.type+'\'<br>Query: \''+cgf.q+'\'';
  }

  div.appendChild(ul);
}


var ytQuery = 0;
var ytInit = {}
function insertVideos(cfg)
{
  cfg = cfg || {};
  if(!cfg.block)
  {
    //alert();
  }
  else
  {
    if(!cfg.type)
      document.getElementById(cfg.block).innerHTML = 'You must provide a type: search, user, playlist, featured in the insertVideos function.';
    else
    {
      document.getElementById(cfg.block).innerHTML = 'Laddar video. Vänligen vänta...';
      //create a javascript element that returns our JSON data.
      var script = document.createElement('script');
      script.setAttribute('id', 'jsonScript');
      script.setAttribute('type', 'text/javascript');

      //a counter
      ytQuery++;

      if(!cfg.results){
        cfg.results = 10;
      }
      if(!cfg.order){
        cfg.orderby = 'relevance';
        cfg.sortorder = 'descending';
      }

      switch(cfg.order){
        case "new_first":
        cfg.orderby = 'published';
        cfg.sortorder = 'ascending';
        break;

        case "highest_rating":
        cfg.orderby = 'rating';
        cfg.sortorder = 'descending';
        break;

        case "most_relevance":
        cfg.orderby = 'relevance';
        cfg.sortorder = 'descending';
        break;
      }

      //what data do we need: a search, a user search, a playlist
      switch(cfg.type){
        case "search":
        script.setAttribute('src', 'http://gdata.youtube.com/feeds/videos?vq='+cfg.q+'&max-results='+cfg.results+'&alt=json-in-script&callback=ytInit['+ytQuery+']&orderby='+cfg.orderby+'&sortorder='+cfg.sortorder);
        break;

        case "user":
        script.setAttribute('src', 'http://gdata.youtube.com/feeds/users/'+cfg.q+'/uploads?max-results='+cfg.results+'&alt=json-in-script&callback=ytInit['+ytQuery+']&orderby='+cfg.orderby+'&sortorder='+cfg.sortorder);
        break;

        case "playlist":
        script.setAttribute('src', 'http://gdata.youtube.com/feeds/playlists/'+cfg.q+'?max-results='+cfg.results+'&alt=json-in-script&callback=ytInit['+ytQuery+']&orderby='+cfg.orderby+'&sortorder='+cfg.sortorder);
        break;

        case "featured":
        script.setAttribute('src', 'http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured?alt=json-in-script&callback=ytInit['+ytQuery+']&start-index=1&max-results='+cfg.results+'&orderby='+cfg.orderby+'&sortorder='+cfg.sortorder);
        break;

      }

      ytInit[ytQuery] = function(root) { listVideos(root,cfg);  };

      //attach script to page, this will load the data into our page and call the funtion ytInit[ytQuery]
      document.documentElement.firstChild.appendChild(script);
    }
  }
}

-->

