ThreadsPlayer = {

 playlists_div: {},
 tracktitle:'',
 trackartists:'',
 trackurl:'',

 successHandler:function(o){ 
    var root = o.responseXML.documentElement; 
    var tree = new YAHOO.widget.TreeView("playlists");
    var r='';
    var nodes=root.childNodes;
    var treeroot = tree.getRoot(); 
    for ( var n=0; n<nodes.length; n++ ) {
      var node=nodes.item(n);
      if ( node.nodeType==1 ) {
	//	r=r+node.getAttribute('label')+'<br />';
	if (node.tagName=='playlist') {
	  var treenode = new YAHOO.widget.TextNode({label:node.getAttribute('label'),id:node.getAttribute('id') }, treeroot, false); 
	}
	if (node.tagName=='node') {
	  var treenode = new YAHOO.widget.MenuNode({label:node.getAttribute('label')}, treeroot, false); 
	  var subnodes=node.childNodes;
	  for ( var sn=0; sn<subnodes.length; sn++ ) {
	    var subnode=subnodes.item(sn);
	    if ( subnode.nodeType==1 ) {
	      var subtreenode = new YAHOO.widget.TextNode({label:subnode.getAttribute('label'),id:subnode.getAttribute('id')}, treenode, false); 
	//r=r+subnode.getAttribute('label')+'<br />';
	    }
	  }
	}
      }
    }

    tree.subscribe("labelClick", this.onLabelClick, this, true ); 

    tree.draw(); 
   
  } ,

 onLabelClick:function(node) {
    if (node.data.id != undefined ) {
      // alert(node.data.id);
      this.loadPlaylist(node.data.id);
      this.loadTracklist(node.data.id);
    }
  },

 failureHandler:function(o){ 
    this._playlist_div.innerHTML = o.status + " " + o.statusText; 
  } ,


 buildPlaylists:function() {
    this._playlists_div = document.getElementById('playlists'); 

    var request = YAHOO.util.Connect.asyncRequest('GET', 'playlists.xml', { success:this.successHandler, failure:this.failureHandler, scope:this }); 
  },

 buildPlaylistViewer:function() {
   var playlistViewerTabs = new YAHOO.widget.TabView("playlistviewer");
   playlistViewerTabs.addTab( new YAHOO.widget.Tab({ 
       label: 'Playlist Info', 
       content: '<div id="playlistinfo"><p>asdsda</p></div>', 
       active: true 
   })); 
   playlistViewerTabs.addTab( new YAHOO.widget.Tab({ 
       label: 'Tracks', 
       content: '<div id="tracklist"><p>Tab Two Content</p></div>'
   })); 
	      
  },

 playlistInfoHandler:function(o){ 
    var root = o.responseXML.documentElement; 
    var body = root.getElementsByTagName('body')[0];
    var nodes=body.childNodes;
    var bodyhtml='';
    for ( var n=0; n<nodes.length; n++ ) {
      bodyhtml=bodyhtml+nodes[n].nodeValue;
    }
    //alert(bodyhtml);
    var imageurl = root.getElementsByTagName('image_url')[0];
    var nodes=imageurl.childNodes;
    var imagesrc='';
    for ( var n=0; n<nodes.length; n++ ) {
      imagesrc=imagesrc+nodes[n].nodeValue;
    }
    //alert(imagesrc)
    ;
    playlistinfo_div = document.getElementById('playlistinfo');
    playlistinfo_div.innerHTML='<div class="playlistimage"><img src="'+imagesrc+'" /></div><div class="playlisttext">'+bodyhtml+'</div>';
  } ,

 loadPlaylist:function(id) {
    var url='./playerserver.php?cmd=playlistinfo&userid=0&playlistid='+id;
    var request = YAHOO.util.Connect.asyncRequest('GET', url, { success:this.playlistInfoHandler, failure:this.failureHandler, scope:this }); 
    //alert(id);
  },

 playlistTracksHandler:function(o){ 
    var root = o.responseXML.documentElement; 
    var ids = root.getElementsByTagName('id');
    var titles = root.getElementsByTagName('title');
    var artists = root.getElementsByTagName('artist');
    var urls = root.getElementsByTagName('file_url');
    r='<table>';
    for ( var n=0; n<ids.length; n++ ) {
      // alert(titles[n].firstChild.nodeValue);
      var title=titles[n].firstChild.nodeValue;
      var artist=artists[n].firstChild.nodeValue;
      var url=urls[n].firstChild.nodeValue;
      r=r+'<tr OnClick="javascript:LoadTrack(\''+title+'\',\''+artist+'\',\''+url+'\')"><td>'+title+'</td><td>'+artist+'</td></tr>';
      if (this.tracktitle=='') {
	this.tracktitle=title;
	this.trackartist=artist;
	this.trackurl=url;
        LoadTrack(this.tracktitle,this.trackartist,this.trackurl);
      }
    }
    r=r+'</table>';
    tracklist_div = document.getElementById('tracklist');
    tracklist_div.innerHTML=r;
  } ,


 loadTracklist:function(id) {
    var url='./playerserver.php?cmd=playlist&userid=0&playerid=0&playlistid='+id;
    var request = YAHOO.util.Connect.asyncRequest('GET', url, { success:this.playlistTracksHandler, failure:this.failureHandler, scope:this }); 
    //alert(id);
  }

}
