YAHOO.namespace ('threadsplayer');


YAHOO.threadsplayer.addTrack = function (playerid,trackid,link) { 

  var status='';

  var handleSuccess = function (o) {
    status=o.responseText;
  }


  var handleFailure = function (o) {
    alert('F'+o.statusText);
  }

  var callback=
  {
  success:handleSuccess,
  failure: handleFailure
  };


  var request = YAHOO.util.Connect.asyncRequest('GET', '/player.php?player_method=addtrack&player_id='+playerid+'&player_track_id='+trackid+'&player_link='+link, callback);

   

};


YAHOO.threadsplayer.Player = function (id) {
  if (id) { this.init(id); }
};

YAHOO.threadsplayer.Player.prototype = {
 init: function(id) {
    this.id=id;
    this.tracks=new Array();
    this.played=new Array();
    this.current='';
    this.status='paused';
  },

 buildPlayer: function() {
    this.playlist = new YAHOO.util.Element('playlist');
  },

 setStatus: function(track_id,status) {


    var handleSuccess = function (o) {
      status1=o.responseText;
    }


    var handleFailure = function (o) {
      alert('F'+o.statusText);
    }

    var callback=
    {
    success:handleSuccess,
    failure: handleFailure
    };


    var request = YAHOO.util.Connect.asyncRequest('GET', '/player.php?player_method=setstatus&player_id='+this.id+'&player_track_id='+track_id+'&player_status='+status, callback);
  },


 start: function() {
    if ( this.current=='' ) {
      this.current=this.tracks.shift();
      //alert(window.player.tracks[0]);
    }
    var li = new YAHOO.util.Element(this.current);
    li.removeClass('played');
    li.addClass('selected');
    document.flashplayer.nextTrack('123',this.current);
  },

 next: function() {
    if ( this.current=='' ) {
      this.start();
    } else {
      this.setStatus(this.current,'played');
      var li = new YAHOO.util.Element(this.current);
      li.removeClass('selected');
      li.addClass('played');
      this.played[this.played.length]=this.current;
      this.current=this.tracks.shift();
      this.start();
    }
  },

 previous: function() {
    if ( this.current=='' ) {
      this.start();
    } else {
      this.setStatus(this.current,'pending');
      var li = new YAHOO.util.Element(this.current);
      li.removeClass('selected');
      this.tracks.unshift(this.current);
      this.current=this.played.pop();
      this.start();
    }
  },

 inPlaylist: function(track_id) {
    if ( track_id == this.current ) { return true; }
    for (var i = 0; i < this.tracks.length; i++) {
      if (this.tracks[i] == track_id) {
	return true;
      }
    }
    return false;
  },


 checkTracks: function() {

    var handleSuccess = function (o) {
      var xml = o.responseXML.documentElement;
      //alert('S'+o.responseText);
      var playlist = new YAHOO.util.Element('playlist');
      var ids=xml.getElementsByTagName('track_id');
      var titles=xml.getElementsByTagName('title');
      var artists=xml.getElementsByTagName('artist');
      var links=xml.getElementsByTagName('link');
      for ( var i=0; i<ids.length; i++ ) {
	var track_id=ids[i].firstChild.nodeValue;
	if ( window.player.inPlaylist(track_id)==false ) {
	  var title=titles[i].firstChild.nodeValue;
	  var artist=artists[i].firstChild.nodeValue;
	  var link=links[i].firstChild.nodeValue;
	//	var titleEl = document.createTextNode(t);
	  var li = document.createElement('li');
	 
	  link=link.replace('%amp','%25amp');
	 
	  link=link.replace('%25amp','%2525amp');
	 
	  li.innerHTML='<a href="javascript:openPage(\''+link+'\')"><b>'+title+'</b><br />'+artist+'</a>';
	  li.setAttribute('id',track_id);
	  //	li.appendChild(titleEl);
	  playlist.appendChild(li);
	  window.player.tracks[window.player.tracks.length]=track_id;
	}
      }
      // alert(this.current);
      if ( window.player.current=='' ) { 
	window.player.start();
      }
    }

    var handleFailure = function (o) {
    }

    var callback=
    {
    success:handleSuccess,
    failure:handleFailure
    };

    var request = YAHOO.util.Connect.asyncRequest('GET', '/player.php?player_method=checktracks&player_id='+this.id, callback);
    
  }

};
