
var SocialEngineMusic = new Class({
  
  options: {
    'ajaxURL' : 'music_ajax.php'
  },
  
  
  sortablesEffect: null,
  
  
  currentConfirmDeleteID: 0,
  
  currentMusicID: null,
  currentMusicTitle: null,
  currentMusicCat: null,
  currentMusicArtist: null,
  currentMusicArtistOther: null,
  currentTask: null,
  currentMusicUrl: null,
  currentMusicLyric: null,
  currentMusicPlaylist:null,
  
  initialize: function()
  {
    var bind = this;
    window.addEvent('domready', function()
    {
      if( !$$('.seMusicRow').length ) return;
      
      bind.sortablesEffect = new Sortables($$('.userMusicList'),
      {
        constrain: true,
        clone: false,
        revert: true,
        handle: '.seMusicMoveHandle',
        opacity: 0.6
      });
      
      bind.sortablesEffect.addEvent('complete', function()
      {
        bind.sendFullMusicOrder();
      });
      
    });
  },
  
  
  // Move Up
  moveUpMusic: function(musicID)
  {
    // Ajax
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'moveupsong',
        'music_id' : musicID
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
          alert('There was an error processing your move request.');
        }
      }
    });
    
    request.send();
    
    // Switch the element's order.
    var musicContainer = $('seMusic_' + musicID);
    var previousContainer = musicContainer.getPrevious();
    musicContainer.inject(previousContainer, 'before');
    
    // Make it so the first one can't move up
    this.refreshMoveUpButtons();
  },
  
  
  sendFullMusicOrder: function()
  {
    var isFirst = true;
    var order = '';
    $$('.seMusicRow').each(function(musicRowElement)
    {
      var musicID = musicRowElement.getElement('.seMusicID').getProperty('html');
      if( !isFirst ) order += ',';
      order += musicID;
      isFirst = false;
    });
    
    // Ajax
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'reordermusic',
        'music_order' : order
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
          alert('There was an error processing your move request.');
        }
      }
    });
    
    request.send();
    
    // Make it so the first one can't move up
    this.refreshMoveUpButtons();
  },
  
  
  refreshMoveUpButtons: function()
  {
    /*
    var isFirst = true;
    $$('.seMusicRow').each(function(rowElement)
    {
      if( isFirst )
      {
        rowElement.getElement('.seMusicMoveUp').style.display = 'none';
        rowElement.getElement('.seMusicMoveDisabled').style.display = '';
      }
      else
      {
        rowElement.getElement('.seMusicMoveUp').style.display = '';
        rowElement.getElement('.seMusicMoveDisabled').style.display = 'none';
      }
      isFirst = false;
    });
    */
  },
  //TA ADD
  addMusicToPlaylist: function(musicID){
	//alert (musicID);
    // Display
	this.currentMusicID = musicID;
    this.currentTask = "doadd" ;
    TB_show(SELanguage.Translate(4000040), 'user_music_to_playlist.php?ajax=1&height=220&width=440', '', '../images/trans.gif');
	return false;
	

 },
 doaddMusictoPlaylist: function(playlist_id)
  {
		  // Ajax
		var request = new Request.JSON({
									   
		  'method' : 'post',
		  'url' : 'user_music_to_playlist.php',
		  'data' : {
			'task' : this.currentTask,
			'music_id' : this.currentMusicID,
			'playlist_id' : playlist_id
			
		  },
		  'onComplete':function(responseObject)
		  {
			
				if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
				{
				  if( $type(responseObject)!="object"){
					 alert('There was an error processing your move request.'); 	
				  }
				  else{
					  if(responseObject.message) alert(responseObject.message);
				  }
  
				  TB_show_window();
				  unlock_screen();
				  
				}
				else
				{
					TB_remove();
					unlock_screen();
					if(responseObject.message) alert(responseObject.message);
	
				}
				
		  }
		});
		
		request.send();
		TB_hide_window();
		lock_screen(1);
				
  },
  // TA ADD END
  
    //DuyAnh -- Show Edit music form
  editMusic: function(musicID,musicPlaylist)
  {
    // Display
    this.currentMusicID = musicID;
	this.currentMusicPlaylist = musicPlaylist;
    TB_show(SELanguage.Translate(4000039), 'user_music_editor.php?height=240&width=550&playlist_id='+musicPlaylist+"&music_id="+musicID, '', '../images/trans.gif');
	if(musicID=='') this.currentTask = "doaddURL";
	else this.currentTask = "editsong" ;

  },
  
  //DuyAnh -- Do edit music
  doeditMusic: function(notice,id1)
  {
		  // Ajax
		var request = new Request.JSON({
		  'method' : 'post',
		  'url' : this.options.ajaxURL,
		  'data' : {
			'task' : this.currentTask,
			'music_id' : this.currentMusicID,
			'music_title' : this.currentMusicTitle.value,
			'music_cat' : this.currentMusicCat.value,
			'music_artist' : this.currentMusicArtist.value,
			'music_artistOther' : this.currentMusicArtistOther.value,
			'music_url' : this.currentMusicUrl.value,
			'music_lyric' : this.currentMusicLyric.value,
			'music_playlist' : this.currentMusicPlaylist
			
		  },
		  'onComplete':function(responseObject)
		  {
			
				if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
				{
				        if(responseObject.message) alert(responseObject.message);
						else 	  alert('There was an error processing your move request.');
						unlock_screen()
						TB_show_window();
				}
				else
				{
					document.location="user_music.php?playlist_id="+id1;
				}
		  }
		});
		
		request.send();
		TB_hide_window();
		lock_screen(1);
		//$("TB_ajaxContent").innerHTML ="<p align='center' style='margin-top:60px'><img src='./images/ajax-loader.gif'><br>"+notice+"</p>";
				
  },
  
  // Delete
  deleteMusic: function(musicID, playlistID)
  {
    // Display
    this.currentConfirmDeleteID = musicID;
	this.currentMusicPlaylist = playlistID;
    TB_show(SELanguage.Translate(4000038), '#TB_inline?height=100&width=300&inlineId=confirmmusicdelete', '', '../images/trans.gif');
  },
  
  deleteMusicConfirm: function()
  {
    // Ajax
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'deletesong',
        'music_id' : this.currentConfirmDeleteID,
		'music_playlist' : this.currentMusicPlaylist
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
           alert('There was an error processing your delete request.');
        }
		else{
			    // Destroy
			//if( this.sortablesEffect )
			 // this.sortablesEffect.removeItems($('seMusic_' + this.currentConfirmDeleteID));
			
			$('seMusic_' + responseObject.musicdelete_id).destroy();
			
			// this.refreshMoveUpButtons();
		}
	
      }
    });
    
    request.send();
    

  },
  
  
  // Editing
  editMusicTitle: function(musicID)
  {
    // Get title
    var musicTitleContainer = $('seMusic_' + musicID);
    var musicTitle = musicTitleContainer.getElement('.seMusicTitle').getProperty('html');
    
    // Set title
    var musicTitleInput = musicTitleContainer.getElement('.seMusicTitleEditor').getElement('input');
    musicTitleInput.setProperty('value', musicTitle);
    
    // Display
    this.showMusicTitleEditor(musicID);
    
    // Focus
    musicTitleInput.focus();
    musicTitleInput.select();
  },
  
  saveMusicTitle: function(musicID)
  {
    // Get title
    var musicTitleContainer = $('seMusic_' + musicID);
    var musicTitle = musicTitleContainer.getElement('.seMusicTitleEditor').getElement('input').getProperty('value');
    
    // Ajax
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'editsongtitle',
        'music_id' : musicID,
        'music_title' : musicTitle
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
          alert('There was an error processing your edit request.');
        }
      }
    });
    
    request.send();
    
    // Set title
    musicTitleContainer.getElement('.seMusicTitle').setProperty('html', musicTitle);
    
    // Display
    this.hideMusicTitleEditor(musicID);
  },
  
  cancelMusicTitle: function(musicID)
  {
    // Display
    this.hideMusicTitleEditor(musicID);
  },
  
  showMusicTitleEditor: function(musicID)
  {
    var musicTitleContainer = $('seMusic_' + musicID);
    
    musicTitleContainer.getElement('.seMusicTitle').style.display = 'none';
    musicTitleContainer.getElement('.seMusicTitleEdit').style.display = 'none';
    
    musicTitleContainer.getElement('.seMusicTitleEditor').style.display = '';
    musicTitleContainer.getElement('.seMusicTitleSave').style.display = '';
    musicTitleContainer.getElement('.seMusicTitleCancel').style.display = '';
  },
  
  hideMusicTitleEditor: function(musicID)
  {
    var musicTitleContainer = $('seMusic_' + musicID);
    
    musicTitleContainer.getElement('.seMusicTitle').style.display = '';
    musicTitleContainer.getElement('.seMusicTitleEdit').style.display = '';
    
    musicTitleContainer.getElement('.seMusicTitleEditor').style.display = 'none';
    musicTitleContainer.getElement('.seMusicTitleSave').style.display = 'none';
    musicTitleContainer.getElement('.seMusicTitleCancel').style.display = 'none';
  },
  playerSource: function ( strSource )
	{
		var width=230;
		var height=200;
		var s;
		
		s="<OBJECT id=winMediaPlayerID ";
				s+="codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715 ";
				s+="type=application/x-oleobject height=" + height + " ";
				s+="standby=\"Loading Microsoft Windows Media Player components...\" "; 
				s+="width=" + width + " classid=CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6 ";
				s+="name=winMediaPlayerID>";
				s+="<PARAM NAME=\"URL\" VALUE=\""+strSource+"\"> ";
				s+="<PARAM NAME=\"rate\" VALUE=\"1\">";
				s+="<PARAM NAME=\"balance\" VALUE=\"0\">";
				s+="<PARAM NAME=\"currentPosition\" VALUE=\"0\">";
				s+="<PARAM NAME=\"defaultFrame\" VALUE=\"0\">";
				s+="<PARAM NAME=\"playCount\" VALUE=\"999\">";
				s+="<PARAM NAME=\"CursorType\" VALUE=\"-1\">";
				s+="<PARAM NAME=\"autoStart\" VALUE=\"1\">";
				s+="<PARAM NAME=\"autoplay\" VALUE=\"1\">";
				s+="<PARAM NAME=\"currentMarker\" VALUE=\"0\">";
				s+="<PARAM NAME=\"invokeURLs\" VALUE=\"-1\">";
				s+="<PARAM NAME=\"volume\" VALUE=\"50\">";
				s+="<PARAM NAME=\"mute\" VALUE=\"0\">";
				s+="<PARAM NAME=\"stretchToFit\" VALUE=\"-1\">";
				s+="<PARAM NAME=\"windowlessVideo\" VALUE=\"0\">";
				s+="<PARAM NAME=\"enabled\" VALUE=\"1\">";
				s+="<PARAM NAME=\"fullScreen\" VALUE=\"0\">";
				s+="<PARAM NAME=\"enableContextMenu\" VALUE=\"0\">";
				s+="<PARAM NAME=\"enableErrorDialogs\" VALUE=\"0\"> \n";
			
			s+="<Embed id='winMediaPlayerIDFF' type='application/x-mplayer2' pluginspage='http://www.microsoft.com/windows/windowsmedia/download/' filename='"+strSource+"' src='"+strSource+"' Name='winMediaPlayerIDFF' "; 
				s+="width='" + width + "' ";
				s+="height='" + height + "' ";
				s+="AutoSize='1' ";
				s+="AutoStart='1' ";
				s+="AutoPlay='1' ";
				s+="ClickToPlay='1' ";
				s+="DisplaySize='1' ";
				s+="EnableContextMenu='0' ";
				s+="EnableFullScreenControls='1' "; 
				s+="EnableTracker='1' ";
				s+="Mute='0' ";
				s+="PlayCount='999' "; 
				s+="ShowControls='1' "; 
				s+="ShowAudioControls='1' "; 
				s+="ShowDisplay='0' ";
				s+="ShowGotoBar='0' ";
				s+="ShowPositionControls='1' "; 
				s+="ShowStatusBar='1' ";
				s+="ShowTracker='1'> ";
				s+="</embed> ";
		s+="</OBJECT>";
		
		document.getElementById("ys_music_player").innerHTML=s;
		//scrollTo(0,100);
	}


});
function music_test_active(index,tab){
	hide = getObj(tab);
	show = getObj(tab+"_inactive");
	if (hide.style.display != "none" && tab != index) {
		hide.style.display = "none";
		show.style.display = "";
	}		
}
function music_get_active(show){
	music_test_active(show,"url");
	music_test_active(show,"html_code");
	music_test_active(show,"bb_code");
}
 function music_get_url(show,get){	
	getObj(show).style.display="";
	getObj(show+"_inactive").style.display="none";
	getObj("result_url").value = get;
	getObj("result_url").style.display = "";
	music_get_active(show);   
 }
function url_select_text(input_id){
	input_id.select();
}