/**
 * @author Administrator
 */

/**
 * @classDescription MusicshakeActiveX 실행 Class
 */
var Musicshake = function() {
	this.initialize();
};

Musicshake.prototype = {
	objectTagString : ['<object id="objMusicshakeActiveX" height="0" width="0" classid="CLSID:1CE47888-DD62-482c-9723-4814BB04D45D" codebase="http://pump.musicshake.com/NewDownload/musicshake.cab#version=1,0,0,14">',
							'<param name="_Version" value="65536"/>',
							'<param name="_ExtentX" value="2646"/>',
							'<param name="_ExtentY" value="1323"/>',
							'<param name="_StockProps" value="0"/>',
							'</object>'],
	options : {
	},

	/**
	 * @constructor
	 */
	initialize: function() {
		for (var i = 0; i < this.objectTagString.length; i++) {
			document.write(this.objectTagString[i]);
		}
		
		this.app = $('objMusicshakeActiveX');
	},
	
	Launch: function() {
		if(IE_)
			this.app.Launch();
		else
		{
			alert('뮤직쉐이크 실행은 Internet Explorer에서만 지원합니다.');
		}
	},

	/**
	 * 
	 * @param {Object} data
	 */
	appinit:function(data) {
		if(data == undefined)
			data = '';

		this.app.Provider = 'musicshake';
		this.app.DownloadPath = 'http://stat.musicshake.com/app_download/chk_download.php?d_version=0&d_type=2';
		this.app.Code = '';
		this.app.Shaker = ' /SVC:SMB /USERID: /USERNAME: /USER_SEQ: /L:0 /A:0 /WEBSESSION:'
			 + Cookies.get('PHPSESSID')
			 + data;
	},

    // 슬롯 MSW 편집
	editslot:function(slotnumber) {
		this.appinit(' /LOADSLOT:' + slotnumber);
		this.Launch();
	},

	editfile:function(filename) {
		this.appinit(' /LOADSLOT:http://dog.musicshake.com:8080/msw/' + filename);
		this.Launch();
	},
	event:function(ev_code) {
		this.appinit(' /EV:' + ev_code);
		this.Launch();
	},
	
	/**
	 * Musicshake Application 바로실행
	 */
	start:function() {
	    
	    if(!IE_) 
	    {
	        alert('뮤직쉐이크 실행은 Internet Explorer에서만 지원합니다.');
	        return;
	    }
	    
		this.appinit();
		this.Launch();
	},
	pattern:function(data) {
		this.appinit(' /TRLOAD:'+data);
		this.Launch();
	},
	
	editsong:function(song_num) {
		this.appinit(' /LOADSLOT:http://'+location.hostname+'/APP/LoadSongMsw?SONG_NUM=' + song_num);
		this.Launch();
	},
	
	// 자랑하기
	exportslot:function(slot_num) {
		this.appinit(' /EXPORTSLOT:EXPORT' + slot_num);
		this.Launch();
	},
	
	mp3downslot:function(slot_num) {
		this.appinit(' /EXPORTSLOT:BUY' + slot_num);
		this.Launch();
	}
};

var msActiveX = new Musicshake();


var Shakelog = 
{
    UDIR : getComponentURL('Musicshake'),
    Open : function (UserNum)
    {
        window.open('/Shakelog/'+UserNum, 'Shakelog'+UserNum, "width=500");
        
    },
    
    addFriend : function (UserNum)
    {
        
        var Result = Ajax.exec(this.UDIR+'addFriend.php', { 'USER_NUM' : UserNum } );
        alert(Result.text);
        
    },
    
    removeFriend : function (UserNum)
    {
      if(confirm("관심 쉐이커를  삭제하시겠습니까?"))
      {
        var Result = Ajax.exec(this.UDIR+'removeFriend.php', { 'USER_NUM' : UserNum } );
        alert(Result.text);
        document.location.href= '/MyMusicShake/FavShaker/';
        return false;
      }  
    },
    
    
    
    Scrap : function (CONTEST_NUM)
    {
       var Result = Ajax.exec(this.UDIR+'Scrap.php', { 'CONTEST_NUM' : CONTEST_NUM } );
       alert(Result.text);
        
    },
    
    showAllContest : function (USER_NUM)
    {
        document.location.href = '/Search/UserSongList/?USER_NUM='+USER_NUM
    }    
    
}

var Pop = 
{
    open : function (URL, Param)
    {
       
       
       
        switch (Param)
        {
            
            case "checkF" :
            
            
            
            
            break;
            
            
            default : 
            
            alert(Param);
            
            break;
        }
        
    },
    
    close : function ()
    {
        
      _Window.closePopUp();   
        
    }
    
    
}



var Album =
{
    removeAlbum : function (AlbumNum)
    {
        if(confirm("지정한 앨범을 삭제할 경우 앨범 내용 및 댓글등이 모두 함께 삭제 됩니다.\n 정말  삭제하시겠습니까?"))
      {
        
          var Result = Ajax.exec(Shakelog.UDIR+'album_exec.php', { "MODE" : "REMOVE" , 'ALBUM_NUM' : AlbumNum } );
          
          if(Result.text == "OK")
          {
                
                alert('삭제 되었습니다');
                
                document.location.href = "/MyMusicShake/MyAlbum/PR_Album/";     
              
          }
          else 
          {
         
            alert(Result.text);
    
          }
      } 
               
    },

	removescrapAlbum : function (AlbumNum)
    {
		if(confirm("스크랩한 앨범을 정말 삭제하시겠습니까?"))
     	{
      		    var Result = Ajax.exec(Shakelog.UDIR+'album_exec.php', { "MODE" : "DELETESCRAP" , 'ALBUM_NUM' : AlbumNum } );
          
			    if(Result.text == "OK")
			    {

				    alert('삭제 되었습니다');

				    document.location.href = "/MyMusicShake/MyAlbum/Scrap_Album/";     

			    }
			    else 
			    {

				    alert(Result.text);

			    }
		}
    },
    
    recommend : function (AlbumNum)
    {
        var Result = Ajax.exec(Shakelog.UDIR+'album_exec.php', { "MODE" : "RECOMMEND" , 'ALBUM_NUM' : AlbumNum } );
       
        if(isNaN(Result.text)) alert(Result.text);
        else 
        {
            alert('추천 되었습니다.');        
           $('recommendCount').innerHTML = Result.text;
        }
        
    },

    
    Scrap : function ( AlbumNum)
    {
      
      if(confirm("선택한 앨범을 스크랩 하시겠습니까?"))
      {
      
          var Result = Ajax.exec(Shakelog.UDIR+'album_exec.php', { "MODE" : "SCRAP" , 'ALBUM_NUM' : AlbumNum } );
          
          if(Result.text == "OK")
          {
                
                alert('스크랩 되었습니다');
                document.location.href = "/MyMusicShake/MyAlbum/Scrap_Album/";     
              
          }
          else 
          {
            alert(Result.text);
          }
          
      }
        
    }

}

var Share = 
{
	getShareLayerUrl : function()
	{
		return '/Listen/Song/SongContent/ShareLayer.php';
	},
	openShareEmbed : function(ShareType, ShareNum)
	{
		Share.ShareType = ShareType;
		Share.ShareNum = ShareNum;
		
		Share.Windows = _Window.showPopUp();
		Share.Windows.style.width    = '484px';
		
		var Param = {  'MODE' : 'Call'  };
		
		Param["Type"] =  "Page";
		Param["File"] =  this.getShareLayerUrl();
		Param.onComplete = function ()
		{
			Share.setValue();
			UI.setScreenCenter(this);
			Clipboard.init();
		}.bind(Share.Windows);

        AutoRun.setDocument(Share.Windows, Param, '/Listen/Song/SongContent/ShareLayer.php');
	},
	openShareEmail : function(ShareType, ShareNum)
	{
		Share.ShareType = ShareType;
		Share.ShareNum = ShareNum;
		
		Share.Windows = _Window.showPopUp();
		Share.Windows.style.width = '484px';
		
		var Param = {  'MODE' : 'Call'  };
		
		Param["Type"] =  "Page";
		Param.onComplete = function ()
		{
			Share.setValue();
			Share.viewEmail();
			UI.setScreenCenter(this);
		}.bind(Share.Windows);
        	  
        AutoRun.setDocument(Share.Windows, Param, '/Listen/Song/SongContent/ShareLayer.php');
	},
	submitShare : function()
	{
		var F =  document.ShareForm;
		
		
		if (F.TO.value.trim() == '')
		{
			alert('받는 사람의 이메일을 적어 주세요.');
			F.TO.focus();
			return false;
		}
		
		var From = F.TO.value.split('\,');
		
		for(var i = 0, len = From.length ; i < len ; i++)
		{
			if(!isEmail(From[i]))
			{
				alert('받는 사람의 이메일이 유효한 이메일 주소가 아닙니다.');
				return false;
			}
		}
		
		if (!isEmail(F.FROM.value))
		{
			alert('보내는 사람의 이메일이 유효한 이메일 주소가 아닙니다.');
		}
		else if (F.CONTENT.value.trim() == '')
		{
			alert('내용을 적어 주세요.');
		}
		else
		{
			var Result = Ajax.exec(getComponentURL('FormMail') + 'Component.php', {
				'MAIL': 'SHAREMAIL',
				'SHARE_TYPE': Share.ShareType,
				'SHARE_NUM': Share.ShareNum,
				'TO': F.TO.value,
				'FROM': F.FROM.value,
				'CONTENT': F.CONTENT.value
			});
			
			F.reset();
			if(Result.text == 'OK')
			{
				alert('메일이 발송 되었습니다.');
				_Window.closePopUp();
			}
			else
			{
				alert(Result.text);
			}
		}
	},
	viewEmail : function ()
	{
		$('EmailBox').style.display = "block";
		$('EmbedBox').style.display = "none";
	},
	
	viewEmbed : function ()
	{
		$('EmailBox').style.display = "none";
		$('EmbedBox').style.display = "block";
	},
	
	setValue : function()
	{
		var F =  document.ShareForm;
		var embedurl = 'http://'+document.location.hostname+'/musicshakePlayer.swf?DIR='+this.ShareType+'/'+this.ShareNum+'&NUM=1&lang=kor&auto='+(F.AUTO.checked?1:0);
		$('share_url_link').value = document.location.href;
		$('embedtag').value = getFlashCode(embedurl, 'flashPlayer', 375, 150);
	},
	copyString : function(Str)
	{
		
	}
}

var Contest =
{
    
  removeContest : function (ConNum)
  {
    
      if(confirm("지정한 자랑곡을 삭제할 경우 자랑 내용 및 댓글등이 모두 함께 삭제 됩니다.\n 정말  삭제하시겠습니까?"))
      {
        
          var Result = Ajax.exec(Shakelog.UDIR+'contest_exec.php', { "MODE" : "REMOVE" , 'CONTEST_NUM' : ConNum } );
          
          if(Result.text == "OK")
          {
                
                alert('삭제 되었습니다');
                
                document.location.href = "/MyMusicShake/MySong/PR_Song/";     
              
          }
          else 
          {
         
            alert(Result.text);
    
          }
      } 
    
   },
   
   recommend : function (ConNum)
   {
       
       var Result = Ajax.exec(Shakelog.UDIR+'contest_exec.php', { "MODE" : "RECOMMEND" , 'CONTEST_NUM' : ConNum } );
       
        if(isNaN(Result.text)) alert(Result.text);
        else 
        {
            alert('추천 되었습니다.');        
           $('recommendCount').innerHTML = Result.text;
        }
   },
   
   Scrap : function (ConNum)
   {
      
       if(confirm("선택하신 곡을 스크랩 하시겠습니까?"))
      {
      
          var Result = Ajax.exec(Shakelog.UDIR+'contest_exec.php', { "MODE" : "SCRAP" , 'CONTEST_NUM' : ConNum } );
          
          if(Result.text == "OK")
          {
                
                if(confirm('스크랩 되었습니다. 스크랩된 곡을 보시겠습니까?'))
                {
                   document.location.href = "/MyMusicShake/MySong/Scrap_Song/";     
                }
          }
          else 
          {
            	alert(Result.text);
          }
      }
   },
   
   removescrapContest : function (ContestNum)
    {
		if(confirm("스크랩한 곡을 삭제하시겠습니까?"))
     	{
      		    var Result = Ajax.exec(Shakelog.UDIR+'contest_exec.php', { "MODE" : "DELETESCRAP" , 'CONTEST_NUM' : ContestNum } );
          
			    if(Result.text == "OK")
			    {
				    alert('삭제 되었습니다');
				    document.location.href = "/MyMusicShake/MySong/Scrap_Song/";
			    }
			    else 
			    {

				    alert(Result.text);

			    }
		}
    }
}

function DownLoad(BUY_ID, USER_NUM)
{
	if(isNaN(BUY_ID))
	{
		var BUYID = '';
		
		for(i = 0 ; i < BUY_ID.length; i++)
		{
			if (BUY_ID[i].checked)
			{
				BUYID += ( BUYID==''?'':',') + BUY_ID[i].value;
			}
		}
		
		if(BUYID != '')
			location.href = 'http://mp3.musicshake.com/procfile/download.php?BUY_ID='+BUYID+'&USER_NUM='+USER_NUM;
	}
	else
		location.href = 'http://mp3.musicshake.com/procfile/download.php?BUY_ID='+BUY_ID+'&USER_NUM='+USER_NUM;
} 


var FindPW = 
{
	submitShare : function()
	{
		var F =  document.ShareForm;
		
		
		if (F.TO.value.trim() == '')
		{
			alert('받는 사람의 이메일을 적어 주세요.');
			F.TO.focus();
			return false;
		}
		
		var From = F.TO.value.split('\,');
		
		for(var i = 0, len = From.length ; i < len ; i++)
		{
			if(!isEmail(From[i]))
			{
				alert('받는 사람의 이메일이 유효한 이메일 주소가 아닙니다.');
				return false;
			}
		}
		
		if (!isEmail(F.FROM.value))
		{
			alert('보내는 사람의 이메일이 유효한 이메일 주소가 아닙니다.');
		}
		else if (F.CONTENT.value.trim() == '')
		{
			alert('내용을 적어 주세요.');
		}
		else
		{
			var Result = Ajax.exec(getComponentURL('FormMail') + 'Component.php', {
				'MAIL': 'SHAREMAIL',
				'SHARE_TYPE': Share.ShareType,
				'SHARE_NUM': Share.ShareNum,
				'TO': F.TO.value,
				'FROM': F.FROM.value,
				'CONTENT': F.CONTENT.value
			});
			
			F.reset();
			if(Result.text == 'OK')
			{
				alert('메일이 발송 되었습니다.');
				_Window.closePopUp();
			}
			else
			{
				alert(Result.text);
			}
		}
	},
	viewEmail : function ()
	{
		$('EmailBox').style.display = "block";
		$('EmbedBox').style.display = "none";
	},
	
	viewEmbed : function ()
	{
		$('EmailBox').style.display = "none";
		$('EmbedBox').style.display = "block";
	},
	
	setValue : function()
	{
		var F =  document.ShareForm;
		var embedurl = 'http://'+document.location.hostname+'/musicshakePlayer.swf?DIR='+this.ShareType+'/'+this.ShareNum+'&NUM=1&lang=kor&auto='+(F.AUTO.checked?1:0);
		$('share_url_link').value = document.location.href;
		$('embedtag').value = getFlashCode(embedurl, 'flashPlayer', 300, 400);
	},
	copyString : function(Str)
	{
		
	}
}



var User = 
{
    Body : document.getElementsByTagName('body')[0],
    myNick : '',
    Bar : null,
    
    setNickBar : function ()
    {
        User.groupColor = new Array();
        User.groupColor[3] = "#7a1d85"; // 파워쉐이커 1기
        User.groupColor[4] = "#199cdf"; // 운영자
        //User.groupColor[6] = "#AAA"; // 네이트 닷컴
            
            
         
        addEvent(User.Body, "click", function ()
        {
            if(User.Bar) 
            { 
                 User.Bar.removeNode(true);
                 User.Bar = false;
            }
        }
       );
       
         var UserNick = $$('.NickName');
         UserNick.each(User.showBar, this);
    },
    
	addFriend : function (UserNum)
	{
		var Result = Ajax.exec(getComponentURL('Musicshake') + "addFriend.php", { 'USER_NUM' : UserNum } );
		alert(Result.text);
    },
    
	showBar : function (Obj)
	{
		addEvent(Obj, 'click', function (e) { cancel(e); } );

         var Pnode = Obj.parentNode;
         var PSize = UI.getObjSize(Pnode);
         
         var Size = UI.getObjSize(Obj);
         
         var Nick = Obj.innerHTML.trim();
         
         if(PSize.w < Size.w)
         {
               Obj.style.position = 'absolute';
               Obj.style.width = PSize.w +  'px';
               Obj.style.overflowX = 'hidden';      
               
               /*
               var Span = document.createElement('span');
               Span.style.position ='relative';
               Span.style.color = '#F00';
               
               Obj.innerHTML = '';
               Obj.appendChild(Span);
               Span.innerHTML = Nick;
               
               
               
               var Param = { "Obj" : $(Span), "Size" : Size.w };
               
               
               Obj.onmouseover =  function ()
               {
                    var Left = new Fx.Style( this.Obj, 'left', { wait : false });
                    var fLeft = - this.Size;
                    Left.start(fLeft);
              
               }.bind(Param)
               */
               
               
         }

        var Param = DOM.getAttributes(Obj);
	    var USER_NUM = Param.user_num;
		var USER_GROUP = Param.user_group;
			
		
		if(User.groupColor[USER_GROUP])
		{
		    Obj.style.color = User.groupColor[USER_GROUP];
		    
		}	
	

		Obj.onclick = function ()
		{
			if(User.Bar) User.Bar.removeNode(true);
			
			if(USER_GROUP == 6)
			    return false;


			var Div = document.createElement('div');
			User.Body.appendChild(Div);

			User.Bar = Div;
			var Pos = UI.getOffsetPos(this);

			Div.style.position   = 'absolute';
			Div.style.width      = '105px';
			Div.style.border     = 'solid 1px #999';
			Div.style.height     = '60px';
			
			Div.style.backgroundColor     = '#FFFEE6';
			Div.style.left       = Pos.x + 'px';
			Div.style.top        = Pos.y + 15 + 'px';
			Div.style.fontFamily = "돋움";
			Div.style.fontSize = "11px";
			
			
			var Div1  = document.createElement('div');
			Div1.innerHTML = "자랑곡 전체보기 ▶";
			
			Div1.style.paddingTop = "6px";
			Div1.style.paddingBottom = "3px";
			Div1.style.cursor = "pointer";
			
			
			Div1.onclick = function () { document.location.href = '/Search/UserSongList/?USER_NUM='+USER_NUM };
	
			Div.appendChild(Div1);
			
			
			if(USER_GROUP == 6)
			{
			    //Div.style.height     = '20px';기획팀 요청으로 변
			    Div.style.height     = '0px';
			    return false;
			}
			
			
			var Div2  = document.createElement('div');
			Div2.innerHTML = "쉐이클로그 가기 ▶";
			Div2.style.cursor = "pointer";
			Div2.style.borderTop = "dotted 1px #999";
			Div2.style.paddingTop = "4px";
			Div2.style.paddingBottom = "3px";
			Div2.onclick = function () { Shakelog.Open(USER_NUM); }
			Div.appendChild(Div2);
			
			if(User.myNick && Nick !== User.myNick.trim())
			{
				Div2.style.borderBottom = "dotted 1px #999";
				var Div3  = document.createElement('div');
				Div3.style.paddingTop = "4px";
				Div3.style.cursor = "pointer";
				Div3.style.paddingBottom = "3px";
				Div3.innerHTML = "관심쉐이커 추가 ▶";
				Div3.onclick = function()
				{
					User.addFriend(USER_NUM);
				}
				Div.appendChild(Div3);
			}
			else
			{
				Div.style.height     = '40px';
			}
			
			return false;
			
		}.bind(Obj);
       
       
   }       
}


addEvent(window, 'load', User.setNickBar);


