// ***************************************
// Loading progress bar
// ***************************************
var itemsLoaded = 0;
var itemsTotal = 3;


function makeStop(song,file,id,element,player) {
    new Effect.Fade(player,{duration: 2, from: 0.5, to:0});
    document.getElementById(element).innerHTML =" <a href=\"javascript:listen('"+song+"','"+file+"',"+id+");replaceDiv('"+song+"','"+file+"',"+id+",'"+element+"')\"> <img src=\"img/play.png\" border=\"0\"/> </a>";
}

function replaceDiv(song,file,id,element) {
    document.getElementById(element).innerHTML = "<img src=\"img/stop_blue.png\" border=\"0\" onclick=\"makeStop('"+song+"','"+file+"',"+id+",'"+element+"','player');\" />";
}	
function showLoaded()
{
  // If running for the first time show box
  if (itemsLoaded == 0)
    {
      $('progressBar').className = 'progressBarVisible';
      new Effect.Highlight($('progressBar'));
    }

  itemsLoaded++;		
  $('progressBar').innerHTML = '<img src="./img/loading-s.gif" border="0" alt="" style="vertical-align: middle; margin-right: 5px;"/><b>Ucitavam: </b>'+Math.round((itemsLoaded*100)/(itemsTotal+1))+'%';

  // If all items processed make the progressBar disappear
  if (itemsLoaded == (itemsTotal+1))
    {
      $('progressBar').innerHTML = '<b>Kraj ucitavanja!</b>';
      hideStatus();
    }
}

// Hiding progress bar
function hideStatus()
{
  new Effect.Fade($('progressBar'));
}


// ***************************************
// Flickr photo ajax functions
// ***************************************
function requestFlickr(artist)
{	
  var url = './ajax.php';
  var pars = 'mode=flickr&query='+artist;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateFlickrContainer
    });
}

function updateFlickrContainer(response)
{
  $('flickrContainer').innerHTML = response.responseText;
  new Effect.Highlight($('flickrContainer'));
  initLightbox();
  showLoaded();
}

// ***************************************
// Songs ajax functions
// ***************************************
function requestSongs(artist)
{	
  var url = './ajax.php';
  var pars = 'mode=songs&query='+artist;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateSongsContainer
    });
}

function updateSongsContainer(response)
{
  $('songsContainer').innerHTML = response.responseText;
  new Effect.Highlight($('songsContainer'));
  showLoaded();
}



// ***************************************
// YouTube ajax functions
// ***************************************
function requestYouTube(artist,song)
{
        var url = './ajax.php';
        var pars = 'mode=youtube&query='+artist;
        var myAjax = new Ajax.Request(
                                      url, 
                                      {
                                          method: 'get', 
                                          parameters: pars, 
                                          onComplete: updateYouTubeContainer
                                      });
}

function requestYouTube2(artist,song)
{
 }

function updateYouTubeContainer(response)
{
  $('youtubeContainer').innerHTML = response.responseText;
  new Effect.Highlight($('youtubeContainer'));
  Tooltip.setup();
  showLoaded();
}

// ***************************************
// Lastfm toptags ajax functions
// ***************************************
function requestLastfmTags(artist)
{	
  var url = './ajax.php';
  var pars = 'mode=lastfm_toptags&query='+artist;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateTagsContainer
    });
}

function updateTagsContainer(response)
{
  $('tagsContainer').innerHTML = response.responseText;
  new Effect.Highlight($('tagsContainer'));
  showLoaded();
}

// ***************************************
// Lastfm similar artists ajax functions
// ***************************************
function requestLastfmSimilar(artist)
{	
  var url = './ajax.php';
  var pars = 'mode=lastfm_similar&query='+artist;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateSimilarContainer
    });
}

function updateSimilarContainer(response)
{
  $('similarContainer').innerHTML = response.responseText;
  new Effect.Highlight($('similarContainer'));
  showLoaded();
}

// ***************************************
// Artists Releases from musicbrainz/amazon ajax functions
// ***************************************
function requestMbReleases(mbid)
{	
  var url = './ajax.php';
  var pars = 'mode=mb_releases&query='+mbid;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateReleaseContainer
    });
}

function updateReleaseContainer(response)
{
  $('releaseContainer').innerHTML = response.responseText;
  new Effect.Highlight($('releaseContainer'));
  Tooltip.setup();
  showLoaded();
}

// ***************************************
// Blog entry search at technorati.com
// ***************************************
function requestTechnoratiEntries(artist)
{	
  var url = './ajax.php';
  var pars = 'mode=technorati&query='+artist;
  var myAjax = new Ajax.Request(
                                url, 
    {
      method: 'get', 
      parameters: pars, 
      onComplete: updateBlogContainer
    });
}

function updateBlogContainer(response)
{
  $('blogContainer').innerHTML = response.responseText;
  new Effect.Highlight($('blogContainer'));
  showLoaded();
}

function vote(id, rating){	
	var url = './ajax.php';
	var pars = 'mode=vote&id='+id+'&rating='+rating;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: updateRatingBar
		});
}

function updateRatingBar(response){
	$('ratingContainer').innerHTML = response.responseText;
	new Effect.Highlight($('ratingContainer'), {startcolor:HighlightStartColor, endcolor:HighlightEndColor});
}

function video(artist, video){	
	var url = './ajax.php';
	var pars = 'mode=video&artist='+artist+'&video='+video;
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: updateVideoBar
		});
}

function updateVideoBar(response){
	$('videoContainer').innerHTML = response.responseText;
	new Effect.Highlight($('videoContainer'), {startcolor:HighlightStartColor, endcolor:HighlightEndColor});
}

function songsList(page,artist) {
  var url   = './ajax.php';
  var pars  = 'mode=songs&page='+page+'&query='+artist;
  var myAjax = new Ajax.Request(url,
                                 { method: 'get',
                                   parameters: pars,
                                   onComplete: updateSongsContainer
                                 });
}

function updateSongsContainer(response)
{
  $('songsContainer').innerHTML = response.responseText;
    new Effect.Highlight($('songsContainer'), {startcolor:HighlightStartColor, endcolor:HighlightEndColor});
  showLoaded();
}


function listen(name,file,id) {
  var url   = './ajax.php';
  var pars  = 'mode=listen&id='+id+'&'+name.escapeHTML()+'&'+file;
  var myAjax = new Ajax.Request(url,
                                 { method: 'get',
                                   parameters: pars,
                                   onComplete: updatePlayerContainer
                                 });
}

function updatePlayerContainer(response){
	$('playerContainer').innerHTML = response.responseText;
	new Effect.Highlight($('playerContainer'), {startcolor:HighlightStartColor, endcolor:HighlightEndColor});
}

