Walruses never cry!
@&^%#$$!*@%
Last time there wasn't enough time
@&^%#$$!*@% <BR>I wasn't ready to fight, it's different now<BR> <BR>Between life and death in the open sea <BR>Flashbacks of bitter memories<BR>Don’t know how much time has passed<BR>Getting harder to breathe, fear of death <BR><BR>Your curious embrace saved me<BR>Never felt that relief before<BR>So I devoured you to tell this story, to survive <BR> <BR>Now it’s time to be my companion <BR>Some brandy in your tea will make you forget everything<BR>Be a Tusk<BR><BR>Everything about myself is gone<BR>(Scream out in anger countless times)<BR>My reflection on the water<BR>(Cannot face myself anymore, all hope is gone)<BR> <BR>@&^%#$$!*@% <BR>Last time there wasn't enough time<BR>@&^%#$$!*@% <BR>I wasn't ready to fight, it's different now<BR><BR>I have a sixth sense<BR>I have 11 toes<BR>The endless sea unfolds on the CRT<BR>How many tusks were there?<BR>Hurry up, find me<BR>Hurry up, find me<BR><BR>Swim to survive and eat guts to live<BR>Now I'm all set. I'll give you a chance to fight <BR><BR>Struggle to the death with your tusk<BR><BR>I can't stop if the flesh is torn and bleeding<BR>Kill me now, free me from my guilt<BR><BR>The teeth of my freedom<BR>You're my tusk<BR><BR>Everything about myself is gone<BR>(Scream out in anger countless times)<BR>My reflection on the water<BR>(Cannot face myself anymore, all hope is gone)<BR><BR>Roaring at the gunpoint<BR>What did I fight for<BR>I became a mockery itself, just like the one I used to laugh at <BR><BR>Who am I?
</div>
</div>
<div class="area-more">
<button class="btn-more"><span class="txt-g">더보기</span></button>
</div>
</div>
</div>
</div>
<!-- // 가사 -->
<div class="content-melon content-credit">
<div class="content-head">
<h3 class="tit-content">
<span class="inner-title">
크레딧
</span>
</h3>
</div>
<div class="content-body">
<strong class="tit-g">Tusk (ft. Yul of End These Days)</strong>
<dl class="list-detail-info list-credit">
<div class="item-detail">
<dt>작사</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>작곡</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>편곡</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>장르</dt>
<dd>
<div class="txt-g">
인디음악, 록/메탈
</div>
</dd>
</div>
</dl>
</div>
</div>
<!-- // 크레딧 -->
<!-- // 이 곡의 기록 -->
<!-- // 이 곡의 다른 버전 -->
<!-- // 이 곡의 비디오 -->
<div class="content-melon content-magazine">
<div class="content-head">
<h3 class="tit-content">
<span class="inner-title">
이 곡의 매거진
</span>
</h3>
</div>
<div class="content-body">
<ul class="list-melon list-magazine">
<li>
<div class="box-item box-magazine ">
<div class="inner-item">
<a href="javascript:goDetail('mus','15966')" class="link-detail">
<div class="box-thumb">
<span class="img-thumb" style="background-image:url(//cdnimg.melon.co.kr/resource/image/cds/musicstory/imgUrl20250325044556133.png/melon/resize/200/optimize/90)"></span>
<span class="logo-thumb ico-sprite ico-magazine-logo-02">magazine</span>
</div>
<div class="info-content">
<strong class="tit-content">
<span class="txt-title">3월 추천 신곡</span>
</strong>
<span class="desc-content">
<span class="txt-description">트랙제로</span>
</span>
</div>
</a>
</div>
</div>
</li>
</ul>
</div>
</div>
<!-- // 이 곡의 매거진 -->
<!-- // 이 곡의 스테이션 -->
<script>let INIT_CMT_CNT_BTN=true;</script>
<!-- document.domain -->
<script type="text/javascript">document.domain='melon.com';</script>
<!-- melon comment plugin -->
<div id="d_cmtpgn_list" class="content-melon content-comment"
data-sqwidget="templateType:mobile6-list-page;pageType:summary-page;"
data-sqwidget-settings="cmtPocType:m.web;pocId:;menuId:1000000455;useInWebveiw:false;chnlSeq:103;contsRefValue:38557214;listPageUrl:/m6/comment/list.htm?chnlSeq=103&contsRefValue=38557214;writePageUrl:/m6/comment/write.htm?chnlSeq=103&contsRefValue=38557214;viewPageUrl:/m6/comment/view.htm?chnlSeq=103&contsRefValue=38557214;">
</div>
<script type="text/javascript">
(function ($) {
try {
if (POC_ID == 'AS40' || POC_ID == 'IS40') {
var $cmtpgn = $("#d_cmtpgn_list");
if( $cmtpgn != null ){
cmtDataSqwidgetSettings = $cmtpgn.attr("data-sqwidget-settings") + ";useInWebveiw:true;";
$cmtpgn.attr("data-sqwidget-settings", cmtDataSqwidgetSettings);
}
}
} catch (e) {}
})(jQuery);
</script>
<!-- 댓글플러그인 리소스 -->
<script type="text/javascript" src="//cmt.melon.com/cmt/plugin/release/melonweb_cmtpgn_mobile6_list.js?tm=202207201752"></script>
<!-- //melon comment plugin -->
<script type="text/javascript">
$(document).ready(function () {
let appPocIds = ['AS40', 'IS40'];
// 상단 댓글 버튼 클릭
let $cmtBtn = $(".user-action .btn-comment");
if ($cmtBtn){
$cmtBtn.click(function(event){
let cmtListUrl = "https://m2.melon.com/m6/comment/list.htm"
+ "?pocId=&cmtPocType=m.web&chnlSeq=103&contsRefValue=38557214&returnPage=" + encodeURIComponent(location.href);
if (appPocIds.includes(POC_ID))
commentObj.openWebview({url : cmtListUrl});
else
location.href = cmtListUrl;
});
}
// 상단 댓글 카운트, HOT 세팅
let $cmtCntTxt = $(".user-action .btn-comment .txt-btn").not(".cmtpgn-exclude-set-cnt");
let $cmtHotIcon = $(".user-action .btn-comment .ic-common-hot-24").not(".cmtpgn-exclude-set-hot");
if ($cmtCntTxt.length > 0 || $cmtHotIcon.length > 0) {
getCmtContsSumm('103', '38557214', function (cmtCnt, isHot) {
if ($cmtCntTxt){
var cmtTotCnt = (cmtCnt != null) ? cmtCnt : 0;
var strCmtTotCnt = cmtTotCnt > 9999999 ? "9,999,999+" : cmtTotCnt.toString().replace(/(d)(?=(ddd)+(?!d))/g, "$1,");
$cmtCntTxt.text(strCmtTotCnt);
}
if ($cmtHotIcon && isHot != null)
isHot == true ? $cmtHotIcon.show() : $cmtHotIcon.hide();
});
}
});
function getCmtContsSumm(chnlSeq, contsRefValue, callback){
let cmtContsSummUrl = "https://cmt.melon.com/cmt/api/api_informCmtContsSumm.json"
+ "?pocId=&cmtPocType=m.web&chnlSeq="+chnlSeq+"&contsRefValue="+contsRefValue;
$.getJSON(cmtContsSummUrl, function(data) {
if (data && data.result != undefined) {
let cmtContsSumm = data.result.cmtContsSumm;
if (typeof callback === "function") {
callback(cmtContsSumm.validCmtCnt, cmtContsSumm.hotFlag);
}
}
});
}
</script>
<!-- // 팬톡 -->
</div>
</main>
<footer class="melon-footer simple-footer">
<div class="inner-footer">
<h2 class="screen-out">서비스 이용정보</h2>
<small class="txt-copyright"><a href="javascript:window.open('https://kakaoent.com','POP_POLICY','');" class="link-copyright">© Kakao Entertainment Corp.</a></small>
</div>
</footer>
<div class="popup-toast" style="display:none;">
<span class="txt-toast"></span>
</div>
<div class="melon-modal" id="alertRecordInfo">
<div class="modal-dialog modal-alert">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-body">
<p class="txt-alert">
멜론 차트, 주간 인기상 등의<br>
데이터를 분석하여 이 곡의 명예로운<br>
기록들을 보여줍니다.
</p>
<ul class="list-guide">
</ul>
</div>
<div class="layer-foot">
<button type="button" class="btn-modal btn-submit" id="recordInfoClose">
<span class="txt-btn">확인</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 아티스트 바텀시트 -->
<div class="melon-modal" id="bottomsheetAritst" >
<div class="modal-dialog modal-bottomsheet">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-head">
<strong class="tit-layer">아티스트 선택</strong>
</div>
<div class="layer-body">
<div class="box-bottomsheet bottomsheet-artist">
<div class="inner-box">
<ul class="list-bottomsheet">
<li>
<button type="button" class="btn-bottomsheet " onclick="goDetail('artist','764257')">
<span class="box-thumb">
<span class="img-thumb" style="background-image:url(//cdnimg.melon.co.kr/cm2/artistcrop/images/007/64/257/764257_20250213170148_120.jpg)"></span>
</span>
<span class="txt-btn">Eighteen April</span>
</button>
</li>
</ul>
</div>
</div>
</div>
<button type="button" class="btn-close">
<span class="ico-sprite ico-common-close-30">닫기</span>
</button>
</div>
</div>
</div>
</div>
<!--공유-->
<div class="melon-modal" id="bottomsheetShare">
<div class="modal-dialog modal-bottomsheet">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-head">
<strong class="tit-layer">공유</strong>
</div>
<div class="layer-body">
<div class="box-bottomsheet bottomsheet-share">
<div class="inner-box">
<ul class="list-bottomsheet">
<li>
<button type="button" class="btn-bottomsheet " id="kakaotalkSns">
<span class="ico-thumb">
<span class="ico-sprite ic-common-kakao-20"></span>
</span>
<span class="txt-btn">카카오톡</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="twitter">
<span class="ico-thumb">
<span class="ico-sprite ic-common-twitter-20"></span>
</span>
<span class="txt-btn">X</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="facebook">
<span class="ico-thumb">
<span class="ico-sprite ic-common-facebook-20"></span>
</span>
<span class="txt-btn">페이스북</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="copyUrl">
<span class="ico-thumb">
<span class="ico-sprite ic-common-url-20"></span>
</span>
<span class="txt-btn">URL 복사</span>
</button>
</li>
</ul>
</div>
</div>
</div>
<button type="button" class="btn-close">
<span class="ico-sprite ico-common-close-30">닫기</span>
</button>
</div>
</div>
</div>
</div>
<!--Bottom MelonApp Floating -->
<div class="melon-floating" style="display: none;">
<div class="inner-floating">
<p class="txt-g">멜론 앱에서 더 많은 콘텐츠를 즐기세요.</p>
<button type="button" class="btn-app" data-button-type="app" data-conts-type="N10001" data-conts-id="38557214">
<span class="txt-btn">앱 열기</span>
</button>
<button type="button" class="btn-close" id="melonFloatingClose">
<span class="ico-sprite ico-web-toolbar-close">닫기</span>
</button>
</div>
</div>
<!-- 좋아요, 팬맺기 토스트 팝업 메시지 -->
<div class="popup-toast popup-toast-fan">
<span class="txt-toast"></span>
<span class="icon-lottie" id="fanIcon"> </span>
</div>
<div class="popup-toast popup-toast-like">
<span class="txt-toast"></span>
<span class="icon-lottie" id="likeIcon"></span>
</div>
<!-- 공통 JS -->
<div id="postName" style="display:none;">Tusk (ft. Yul of End These Days)</div>
<script type="text/javascript" src="//cdnimg.melon.co.kr/services/js/vendor/lottie.min.js"></script>
<script type="text/javascript" src="//cdnimg.melon.co.kr/services/js/vendor/lottie-animation.js"></script>
<script type="text/javascript" src="/resource/script/cds/common/kakao.1.39.9.min.js?_resVer=cb94acdc1c3894b737cb2e3203f1b23f"></script>
<script type="text/javascript">
//2016.04.15 KKJ pvlog에서 POC_ID를 사용하여 선 조회하도록 변경함.
var httpWww = "http://m2.melon.com";
var httpsWww = "https://m2.melon.com";
var POC_ID = getCookie("POC"); //POC_ID 기본값을 쿠키에서 가져와서 세팅 (160721:choiyg)
var UA_TYPE_CODE = "";
var ANDROID_VERSION = "";
var SEARCH_PHASE = 'https://search.melon.com';
$(document).ready(function() {
POC_ID = getCookie("POC");
if(POC_ID == "" || typeof POC_ID == "undefined" || POC_ID == "XXXX" || POC_ID == "STON"){
$.ajax({
async:false,
url: 'https://m2.melon.com/common/useragent_info.json',
dataType: 'json',
error: function(request, status, error) {},
success: function(data){
var pocId = data.pocId;
// iOS13 부터 아이패드의경우 UA값이 "Macintosh"으로 넘오기 때문에 pocId가 정상적으로 세팅되지 않음 (MP10으로 넘어옴)
// pocId가 "MP10" 이고 터치포인트 정보가 1보다 크면 패드로 인식하고 pocId를 "IT10"으로 전환해준다.
if(data.pocId == "MP10" && navigator.maxTouchPoints > 1){
pocId = "IT10";
}
setCookie("POC", pocId, 10, "/", ".melon.com");
}
});
POC_ID = getCookie("POC");
}
//공유하기
$.HOME = "https://m2.melon.com";
var postId = '38557214';
var type ='son';
var postName = $("#postName").text();
var postDescription = "";
var postImg = "https://cdnimg.melon.co.kr/cm2/album/images/117/15/089/11715089_20250213165937_500.jpg/melon/optimize/90";
var artistPostName = "Eighteen April";
var isAdult = ("false" == 'true');
var totSongCnt = "";
var twitterPostUrl = "";
$.longUrl = $.HOME + "/pda/msvc/snsGatePage.jsp?type="+type+"&sId=" + postId;
// 신규 URL 링크 복사 (iOS 18 ~ 지원)
$('#copyUrl').on("click", function() {
// 친절한 멜론 사전 컨텐츠 상세 랜딩 URL :: 파라미터 추가
if('dic' == type) {
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
}
if('gt' == type) {
$.longUrl = $.HOME +"/m6/getTitle/share.htm?memberKey=&type="+gtype+"&code="+code+"&bgImg="+bgImg+"&statFlag="+status;
}
var copyUrl = getNShortenUrl({longUrl:$.longUrl, ref:'copyurl'});
if ('kpop100' == type) {
copyUrl = 'https://into.melon.com/kpop100';
}else if('spotlight' == type){
if(typeof insertSpotlightActionLog == 'function'){
insertSpotlightActionLog('CP', spotlightEventId);
}
// url 복사하기
copyUrl = 'https://into.melon.com/bridge/normal/spotlight/' + spotlightSeq;
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(copyUrl)
.then(() => alert("URL이 복사되었습니다."))
.catch(err => {
fn_sns_url_old(copyUrl);
});
} else {
fn_sns_url_old(copyUrl);
}
});
// 구버전 URL 링크 복사 (~ iOS 17 까지 지원)
function fn_sns_url_old(shareUrl) {
let el = document.createElement('textarea');
el.value = shareUrl;
el.setAttribute('readonly', '');
el.style = {position: 'absolute', left: '-9999px'};
document.body.appendChild(el);
if (navigator.userAgent.match(/ipad|ipod|iphone/i)) {
let editable = el.contentEditable;
let readOnly = el.readOnly;
el.contentEditable = true;
el.readOnly = true;
let range = document.createRange();
range.selectNodeContents(el);
let selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
el.setSelectionRange(0, 999999);
el.contentEditable = editable;
el.readOnly = readOnly;
} else {
el.select();
}
let successful = document.execCommand('copy');
if (successful) {
alert("URL이 복사되었습니다.");
} else {
alert("fail");
}
document.body.removeChild(el);
}
//트위터 클릭(S)
$('#twitter').on("click", function() {
if(artistPostName.length > 30){
artistPostName = artistPostName.substring(0, 30) + "...";
}
if('art'==type){
//artist
$.adjTitle = artistPostName + " - 좋아합니다.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/art/"+postId+".htm"
}else if('son'==type){
//song
var songName = postName;
if(songName != null && songName.length > 60){
songName = songName.substring(0, 60) + "...";
}
$.adjTitle = songName + " - " + artistPostName + " - 들어보세요.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/son/"+postId+".htm"
}else if('alb'==type){
//album
var albumName = postName;
if(albumName != null && albumName.length > 60){
albumName = albumName.substring(0, 60) + "...";
}
$.adjTitle = artistPostName + "의 "+ albumName +" - 추천합니다.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/alb/"+postId+".htm"
}else if('mvd'==type){
//melontv
var mvName = postName;
if(mvName != null && mvName.length > 50){
mvName = mvName.substring(0, 50) + "...";
}
$.adjTitle = artistPostName + "의 " + mvName + " - 감상해보세요.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/mvd/"+postId+".htm"
}else if('ntz' == type) {
$.adjTitle = '멜론 주간 어워드 투표 진행중! 빨리 투표에 참여하세요.';
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/ntz/0.htm"
}else if('mus' == type) {
$.adjTitle = postName;
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/mus/"+postId+".htm";
}else if('musc' == type) {
$.adjTitle = postName;
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/musc/"+postId+".htm";
} else if('dic' == type) {
var themeName = $("#themeName").text();
postName = "Tusk (ft. Yul of End These Days)";
$.adjTitle = "[친절한 멜론사전] "+postName+" : "+themeName+" ▶ ";
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
} else if('kpop100' == type) {
$.adjTitle = "["+ postName +"] "+postDescription;
}else{
$.adjTitle = postName;
}
//트위터 이미지 공유 기능 추가
if(twitterPostUrl != ""){
$.cbUrl = getNShortenUrl({longUrl:twitterPostUrl, ref:'twitter', isRef:'N'});
$.encodeUrl = encodeURIComponent($.cbUrl);
$.encodeTitle = encodeURIComponent($.adjTitle);
$.twitURL = "https://twitter.com/intent/tweet?url=" + $.encodeUrl + "&text=" + $.encodeTitle + "&hashtags=Melon";
} else if('kpop100' == type) {
$.cbUrl = 'https://into.melon.com/kpop100';
$.strStatus = encodeURIComponent($.adjTitle + " " + $.cbUrl + " #Melon #kpop");
$.twitURL = "https://twitter.com/intent/tweet?lang=ko&text=" + $.strStatus;
}else{
$.cbUrl = getNShortenUrl({longUrl:$.longUrl, ref:'twitter'});
$.strStatus = encodeURIComponent($.adjTitle + " " + $.cbUrl + " #Melon");
$.twitURL = "https://twitter.com/intent/tweet?lang=ko&text=" + $.strStatus;
}
if(POC_ID == "AS40" || POC_ID == "IS40" ){
$.parantUrl = window.document.location.href;
if ('dic' == type) {
if (POC_ID == "AS40") {
location.href = 'melonapp://webview?url=' + encodeURIComponent($.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl)) + '&type=PA';
} else if (POC_ID == "IS40") {
appLaunch('meloniphone://webview?url=' + $.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl) + '&type=PA', '', false);
}
} else {
window.location.href = $.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl);
}
}
else{
window.open($.twitURL);
var currUrl = window.document.location.href;
currUrl = currUrl.replace("snsGate=Y", "snsGate=N");
location.href = currUrl;
}
});
//페이스북 클릭(S)
$('#facebook').on("click", function() {
//로그인 체크 제거 기획자 요청 김미선M
if('art'==type){
//artist
$.adjTitle = encodeURIComponent(artistPostName);
}else if('son'==type){
//song
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('alb'==type){
//album
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('mvd'==type){
//melontv
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('ntz' == type) {
//주간어워드
$.adjTitle = encodeURIComponent('멜론 주간 어워드 투표 진행중! 빨리 투표에 참여하세요.');
}else if('dic' == type) {
// $.longUrl = "www.melon.com/restful/sns/posting/facebook/dic/"+postId+"/"+contsType+"/"+cpId+"/"+cateSeq+"/"+offerSeq+".htm";
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
}else if('kpop100' == type) {
// K-POP 명곡 100
$.adjTitle = encodeURIComponent(postName+'n'+postDescription);
}else{
$.adjTitle = encodeURIComponent(postName);
}
$.description = encodeURIComponent("음악이 필요한 순간, 멜론");
if ('dic' == type) {
var da = new Date();
var millisecond = da.getMilliseconds();
var url = "/cds/support/mobile2/sns_informNShortenUrl.json?ajax_ts="+millisecond;
var shortUrl = "";
$.ajax({
type : "GET",
url : url,
data : "longUrl=" + encodeURIComponent($.longUrl),
dataType : 'json',
async : false,
success : function(json) {
var jsonObj = eval("(" + json.resultStr + ");");
shortUrl = jsonObj.results[$.longUrl].shortUrl;
}
});
$.linkUrl = shortUrl;
console.log("$.linkUrl == "+$.linkUrl);
} else if ('kpop100' == type) {
$.linkUrl = 'https://into.melon.com/kpop100';
} else {
$.linkUrl = getNShortenUrl({longUrl:$.longUrl, ref:'facebook'});
}
$.caption = encodeURIComponent("www.melon.com");
if(postImg == null || postImg == ""){
postImg = encodeURIComponent("https://cdnimg.melon.co.kr/resource/image/cds/common/mobilempoc/musiclog_melon_150x150.png");
}else{
postImg = encodeURIComponent(postImg);
}
let shareUrl = getShareUrl({title: decodeURIComponent($.adjTitle), desc: decodeURIComponent($.description), imgUrl: decodeURIComponent(postImg), landingUrl: $.linkUrl});
let closeUrl = "https://m2.melon.com" + "/cds/support/mobile2/sns_close.htm?pocId=" + POC_ID; // 페이스북 공유 후 닫기 URL (PA, m.com)
$.facebookURL = 'https://www.facebook.com/dialog/feed?app_id=4022717807957185&display=page&link=' + encodeURIComponent(shareUrl) + "&redirect_uri=" + encodeURIComponent(closeUrl);
if(POC_ID == "AS40" || POC_ID == "IS40" ){
if ('dic' == type) {
postImg = encodeURIComponent("https://cdnimg.melon.co.kr/resource/mobile40/cds/dictionary/image/dictionary_share_img2.png");
$.facebookURL = "https://www.facebook.com/dialog/feed?app_id=4022717807957185&display=popup&link=" + $.linkUrl + "&name=" + $.adjTitle + "&picture=" + postImg + "&caption=" +$.caption+ "&description=" + $.description;
openSns('', $.facebookURL+ "&redirect_uri=" + closeUrl);
} else if ('kpop100' == type) {
openSns('', $.facebookURL);
} else {
window.location.href = $.facebookURL;
}
}
else{
window.open($.facebookURL);
var currUrl = window.document.location.href;
currUrl = currUrl.replace("snsGate=Y", "snsGate=N");
location.href = currUrl;
}
});
var appKey = "4d545a185d172754667d621049004aa1"; //상용 key
// var appKey = "deaa7e074c7cdb9b0071820769aa7df5"; //sandbox key
Kakao.init(appKey);
// kakaotalk v2 설정
$('#kakaotalkSns').on("click", function() {
kakaotalkAppFlg();
if('son'==type) {
Kakao.Link.sendCustom({
templateId : 17141,
templateArgs : {
'THUMB_URL': postImg,
'TITLE': postName,
'ARTIST': artistPostName,
'SONG_ID': postId,
'KMA': isAdult
}
});
} else if ('alb' == type) {
Kakao.Link.sendCustom({
templateId : 17142,
templateArgs : {
'THUMB_URL': postImg,
'TITLE': postName,
'ARTIST': artistPostName,
'ALBUM_ID': postId,
'SONG_COUNT': totSongCnt
}
});
} else if ('ply' == type) {
var songCnt = '';
if(songCnt == 0){
alert('수록곡이 없는 플레이리스트는 카카오톡 공유가 불가합니다.');
return;
}
Kakao.Link.sendCustom({
templateId : 17143,
templateArgs : {
'TITLE': postName,
'SONG_COUNT' : songCnt,
'LIST_THUMB_URL1' : '',
'PLYLSTSEQ' : '38557214'
}
,callback: function(c) {
alert(JSON.stringify(c));
}
});
} else if ('djc' == type) {
var songCnt = '';
if(songCnt == 0){
alert('수록곡이 없는 플레이리스트는 카카오톡 공유가 불가합니다.');
return;
}
Kakao.Link.sendCustom({
templateId : 17144,
templateArgs : {
'TITLE': '',
'SONG_COUNT' : songCnt,
'LIST_THUMB_URL1' : '',
'LIST_THUMB_URL2' : '',
'LIST_THUMB_URL3' : '',
'LIST_THUMB_URL4' : '',
'PLYLSTSEQ' : '38557214',
'CREATOR' : '',
}
,callback: function(c) {
alert(JSON.stringify(c));
}
});
} else if ('dic' == type) {
var themeName = $("#themeName").text();
postName = "Tusk (ft. Yul of End These Days)";
var snsKakaoTitleName = "[친절한 멜론사전] "+postName;
var snsKakaoDescName = themeName;
var outpostingUri = $.longUrl + '&cpId='+cpId+'&ref=kakao&contsType='+contsType+'&cateSeq='+cateSeq+'&offerSeq='+offerSeq;
var outpostingImgUrl = postImg;
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: snsKakaoTitleName,
imageUrl: outpostingImgUrl,
imageWidth: 600,
imageHeight: 300,
description: snsKakaoDescName,
link: {
mobileWebUrl: outpostingUri,
webUrl: outpostingUri
}
}
});
} else if ('kpop100' == type) {
var snsKakaoTitleName = 'K-POP with Melon';
var snsKakaoDescName = postDescription.split(',')[0];
var outpostingUri = 'https://into.melon.com/kpop100';
var outpostingImgUrl = postImg;
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: snsKakaoTitleName,
imageUrl: outpostingImgUrl,
imageWidth: 600,
imageHeight: 300,
description: snsKakaoDescName,
link: {
mobileWebUrl: outpostingUri,
webUrl: outpostingUri
}
}
});
} else {
// 멜론 기본 타입 공유
// 아티스트, 영상, 주간어워드 투표, 매거진
Kakao.Link.sendCustom({
templateId : 6964,
templateArgs : {
'TITLE': postName,
'THUMB_URL' : postImg,
'LINK_URL' : $.longUrl + '&ref=kakao'
}
});
}
});
});
function openSns(webviewType, url){
if(POC_ID == 'AS40'){
if(webviewType == null || webviewType == '' || typeof webviewType == undefined) {
location.href = 'melonapp://webview?url=' + encodeURIComponent(url) + '&type=PA';
} else {
location.href = 'melonapp://webview?url=' + encodeURIComponent(url) + '&type=' + webviewType;
}
}else if(POC_ID == 'IS40'){
if(appVerCompare(4,0,0)) {
if (webviewType == null || webviewType == '' || typeof webviewType == undefined) {
appLaunch('meloniphone://webview?url=' + url + '&type=PA', '', false);
} else {
appLaunch('meloniphone://webview?url=' + url + '&type=' + webviewType, '', false);
}
} else {
location.href = url;
}
}else {
window.open(url);
}
}
// 카카오톡 앱 설치여부 체크
var kakaotalkAndroidStore = "https://play.google.com/store/apps/details?id=com.kakao.talk";
var kakaotalkIosStore = "https://itunes.apple.com/kr/app/id362057947";
function kakaotalkAppFlg(timeoutVal) {
// 현재 톡 웹뷰이면 설치여부 체크하지 않기
var ua = navigator.userAgent.toLocaleLowerCase();
if (ua.indexOf('kakaotalk') > -1) {
return;
}
// 타임아웃 파라미터로 받도록 수정 (default : 1500)
var timeout = 1500;
try {
timeout = parseInt(timeoutVal);
} catch (e) {
timeout = 1500;
}
if (timeout == null || timeout == '' || isNaN(timeout)) {
timeout = 1500;
}
function clearTimers(){ clearInterval(iv); clearTimeout(timer); }
function interv() {
if(document.webkitHidden || document.hidden){ clearTimers(); }
}
iv= setInterval(interv, 200);
timer = setTimeout(function() {
alert('카카오톡 설치 페이지로 이동합니다.');
if (POC_ID == "AS40") {
appLaunch('melonapp://webview?url=' + encodeURIComponent(kakaotalkAndroidStore) + '&type=OA&title=&close=N', false);
} else if (POC_ID == "IS40") {
appLaunch('meloniphone://webview?url=' + encodeURIComponent(kakaotalkIosStore) + '&title=&type=OA&webReload=Y', '', false);
} else if (POC_ID == "AS20") {
location.href = kakaotalkAndroidStore;
} else if (POC_ID == "IS20") {
location.href = kakaotalkIosStore;
}
}, timeout);
}
/////////////////////////////////////////// SNS end....
//헤더 X 표 클릭 시
$("#headerCloseBt").on("click", function(){
history.go(-1);
});
//로그인 체크
fn_login_check = function() {
if(!isMelonLogin()) {
var currentUrl = encodeURIComponent(document.location.href);
location.href = "https://" + phase + "member.melon.com/muid/mobile/login/login_inform.htm?returnPage=" + currentUrl;
return false;
}
return true;
};
$(function(){
//멜론 앱 열기 플로팅 배너 노출 여부 처리
var dsplayYn = getCookie("melon-floating");
if(POC_ID.indexOf("IS") > -1 && dsplayYn == ""){
var expireDate = localStorage.getItem("melon-floating");
if(expireDate != "" && typeof expireDate != "undefined"){
var todayDate = new Date();
if(expireDate < todayDate.getTime()){
localStorage.removeItem("melon-floating");
} else {
dsplayYn = "Y";
}
}
}
if(dsplayYn != "Y"){
$(".melon-floating").show();
}
//멜론 앱 열기
var btnModal = $("[data-button-type='app']");
$(btnModal).each(function() {
$(this).on("click", function() {
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
var urlScheme = "";
if(contsType == "N10001"){ //song
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/song/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=songDetail¶m1=" + contsId;
}
}else if(contsType == "N10002"){ //album
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/album/" + contsId;
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=albumDetail¶m1=" + contsId;
}
}else if(contsType == "N10006"){ //artist
if(contsId == '2727') return;
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/artist/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=artistDetail¶m1=" + contsId;
}
}else if(contsType == "N10003"){ //mv
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/video/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=videoDetail¶m1=" + contsId;
}
}else if(contsType == "N10007") { //musicstory
var path = "/musicstory/detail.htm?mstorySeq=" + contsId;
var url = location.origin + path;
url = encodeURIComponent(url);
var webviewType = convertWebviewType("SA");
if (POC_ID == "AS20") {
urlScheme = "melonapp://webview?url=" + url + "&type=" + webviewType + "&title=&memberkey=";
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://webview?url=" + url + "&title=&memberKey=&type=" + webviewType;
}
}else if(contsType == "N10005"){ //playlist
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/playlist/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "melonapp://details/playlist?cid=" + contsId;
}
}else if(contsType == "N10009"){ //dj playlist
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/djcollection/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "melonapp://details/djcollection?cid=" + contsId;
//urlScheme = "meloniphone://S5002/command=djcollectionDetail¶m1="+contsId + "¶m3=DJ";
}
}
if(typeof urlScheme == "undefined" || urlScheme == null || urlScheme == ""){
alert("이용 중인 기기에서는 지원하지 않습니다.");
return;
}else{
appLaunch(urlScheme, "", true);
}
});
});
// function popupToast() {
// $(".popup-toast").show();
// setTimeout(function() {
// $(".popup-toast").hide();
// }, 4500);
// }
let timeoutId;
function popupToast(time, popup, btn) {
popup.style.display = "block";
btn.disabled = true;
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
popup.style.display = "none";
btn.disabled = false;
}, time);
}
//좋아요 버튼 클릭 시
$("button.btn-like").on("click", function(){
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
var isLike = $btn.hasClass("on");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
if(isLike){
deleteUserAction(contsType, contsId, $btn);
}else{
insertUserAction(contsType, contsId, $btn);
}
});
//팬맺기 버튼 클릭 시
$("button.btn-fan").on("click", function(){
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
var isFan = $btn.hasClass("on");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
if(isFan){
deleteUserAction(contsType, contsId, $btn);
}else{
insertUserAction(contsType, contsId, $btn);
}
});
//좋아요, 팬맺기 액션
var insertUserAction = function(contsType, contsId, $btn){
//로그인 체크
if(!fn_login_check()){
return;
}
var memberKey = getMemberKey();
try{
$.ajax({
async: false,
cache: false,
url: "/m6/useraction/insert.json",
type: "POST",
data: {contsType: contsType, contsId: contsId, memberKey: memberKey},
success: function (data) {
if (data.RESULT == "0") {
$btn.addClass("on");
$btn.find(".txt-btn").text(data.LIKECNT);
if (contsType == "N10006") {
let toastTxt = $(".popup-toast-fan .txt-toast");
let toastFan = document.querySelector(".popup-toast-fan");
let btnFan = document.querySelectorAll(".btn-fan").item(0);
if (aniFan && $.isFunction(aniFan.play)) {
aniFan.play();
}
$('#fanIcon').addClass('on');
setTimeout(function() {
if (aniFan && $.isFunction(aniFan.stop)) {
aniFan.stop();
}
$('#fanIcon').removeClass('on');
}, 1000);
popupToast(3000, toastFan, btnFan);
toastTxt.html("팬이 되었습니다.");
} else {
let toastTxt = $(".popup-toast-like .txt-toast");
let toastLike = document.querySelector(".popup-toast-like");
let btnLike = document.querySelectorAll(".btn-like").item(0);
if (aniLike && $.isFunction(aniLike.play)) {
aniLike.play();
}
$('#likeIcon').addClass('on');
setTimeout(function() {
if (aniLike && $.isFunction(aniLike.stop)) {
aniLike.stop();
}
$('#likeIcon').removeClass('on');
}, 1000);
popupToast(3000, toastLike, btnLike);
toastTxt.html("좋아요 반영되었습니다");
}
} else {
alert(data.MESSAGE);
return;
}
},
error: function (request, status, error) {
alert('처리 중 에러가 발생했습니다.');
}
});
}catch(e){
alert(e);
}
}
//좋아요, 팬맺기 취소 액션
var deleteUserAction = function(contsType, contsId, $btn){
//로그인 체크
if(!fn_login_check()){
return;
}
var memberKey = getMemberKey();
try{
$.ajax({
async : false,
cache : false,
url : "/m6/useraction/delete.json",
type : "POST",
data : {contsType : contsType, contsId : contsId, memberKey : memberKey}
}).done(function(data){
if(data.RESULT == "0"){
$btn.removeClass("on");
$btn.find(".txt-btn").text(data.LIKECNT);
if (contsType == "N10006") {
let fanLottie = document.querySelector("#fanIcon");
let toastTxt = $(".popup-toast-fan .txt-toast");
let toastFan = document.querySelector(".popup-toast-fan");
let btnFan = document.querySelectorAll(".btn-fan").item(0);
fanLottie.classList.remove("on");
popupToast(1000, toastFan, btnFan);
toastTxt.html("이제 팬이 아닙니다.");
} else {
let likeLottie = document.querySelector("#likeIcon");
let toastTxt = $(".popup-toast-like .txt-toast");
let toastLike = document.querySelector(".popup-toast-like");
let btnLike = document.querySelectorAll(".btn-like").item(0);
likeLottie.classList.remove("on");
popupToast(1000, toastLike, btnLike);
toastTxt.html("좋아요 취소되었습니다");
}
}else{
alert(data.MESSAGE);
return;
}
});
}catch(e){
}
}
//멜론 앱열기 플로팅 배너의 x버튼 클릭 시
$("#melonFloatingClose").on("click", function(){
var todayDate = new Date();
var key = "melon-floating";
setCookie(key, "Y", 1, "/", "melon.com");
if(POC_ID.indexOf("IS") > -1){
var noneDpTermDate = new Date();
noneDpTermDate.setDate(todayDate.getDate() + 1);
localStorage.setItem(key, noneDpTermDate.getTime());
}
$(this).hide();
});
});
</script>
<form id="appsActionFrm" name="appsActionFrm" method="post" action="/cds/common/android2/apps_play.json">
<input type="hidden" name="menuId" />
<input type="hidden" name="items" />
<input type="hidden" name="ctype" />
</form>
<!-- pv log script -->
<script type="text/javascript" src="https://static.melon.co.kr/statistics/js/pvlog.def1f9a638696166ad15.js"></script>
<script type="text/javascript" src="/resource/script/cds/common/mobile_svc_tiara.js?_resVer=ce223e3016b1562a51779a000235e909"></script>
<!-- 카카오 픽셀 로그 분석 소스 -->
<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/adfit/static/kp.js"></script>
<script type="text/javascript">
kakaoPixel('7142705976963675270').pageView();
</script>
<!-- 네이버 프리미엄 로그 분석 소스 -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script>
<script type="text/javascript" src="/resource/mobile40/cds/common/js/loganalysis.js?_resVer=506e74444e2a739d90d12e857a320fb4"></script>
<!-- 공통 JS END-->
<!-- 컨텐츠 JS -->
<script>
$(document).ready(function() {
const lyricItemYn = 'Y';
const adultFlg = '0';
const DataView2 = function(part, data, height) {
$(this).part = part;
$(this).data = data;
const dataBox = $(part);
dataBox.each(function (index, item) {
const dataHeight = $(this).find(data).height();
const areaMore = $(this).find(".area-more");
const contHeight = $(this).find(height).height();
if(dataHeight >= contHeight) {
areaMore.css("display", "none");
} else {
areaMore.css("display", "");
$(".txt-lyrics").addClass('txt-clamp');
}
});
}
const viewMore = function(data) {
$(data).each(function (index, item) {
const contentFold = data.hasClass('open-more');
const btnMore = $(this).find(".btn-more-data");
if(contentFold) {
data.removeClass('open-more');
btnMore.removeClass('on');
} else {
data.addClass('open-more');
btnMore.addClass('on');
}
});
}
const clickFold = function() {
const buttonFoldLyric = $(".data-view2").find(".btn-more"); // 가사 더보기 - 15줄 이상 더보기 / 접기
const ViewFold = function(item){
$(item).on("click", function() {
const data = $(this).parent().parent();
const textFold = $(this).find(".txt-g");
textFold.text(textFold.text() == '더보기' ? '접기' : '더보기');
if(data) {
viewMore(data);
}
if(item === buttonFoldLyric) {
$('html, body').animate({scrollTop : 420});
}
});
}
ViewFold(buttonFoldLyric);
}
if(lyricItemYn === 'Y' && adultFlg === '1') {
if(isMelonLogin()) {
var memberInfo = svcMember.checkAgeAuthByKey(getMemberKey(), POC_ID);
if(memberInfo.AUTHYN == 'Y' && memberInfo.ADULTAUTHFLG == '1'){
$.ajax({
type:'get',
url: '/song/lyricInfo.json',
dataType:'json',
async:true,
data: {
songId: '38557214'
},
success:function(obj){
if(obj.lyric) {
$('.lyrics-detail.data-view2').html('<div class="txt-out"><div class="txt-lyrics"></div></div><div class="area-more"><button class="btn-more"><span class="txt-g">더보기</span></button></div>');
$('.txt-lyrics').html(obj.lyric);
DataView2('.data-view2', '.txt-out', '.txt-lyrics');
clickFold();
$('.lyrics-detail.data-view2').prepend('<button class="btn-highlight" data-button-type="highlight" data-conts-id="38557214" data-conts-type="N10001"><span class="ico-sprite ico-common-highlight"></span></button>');
// POC_ID 셋팅
let POC_ID = getCookie("POC");
if(POC_ID == "" || typeof POC_ID == "undefined" || POC_ID == "XXXX" || POC_ID == "STON"){
$.ajax({
async:false,
url: '/common/useragent_info.json',
dataType: 'json',
error: function(request, status, error) {},
success: function(data){
let pocId = data.pocId;
// iOS13 부터 아이패드의경우 UA값이 "Macintosh"으로 넘오기 때문에 pocId가 정상적으로 세팅되지 않음 (MP10으로 넘어옴)
// pocId가 "MP10" 이고 터치포인트 정보가 1보다 크면 패드로 인식하고 pocId를 "IT10"으로 전환해준다.
if(data.pocId == "MP10" && navigator.maxTouchPoints > 1){
pocId = "IT10";
}
setCookie("POC", pocId, 10, "/", ".melon.com");
}
});
POC_ID = getCookie("POC");
}
// 가사 하이라이트 앱으로 이동
const btnModal = $("[data-button-type='highlight']");
$(btnModal).on("click", function() {
const $btn = $(this);
const contsId = $btn.attr("data-conts-id");
const contsType = $btn.attr("data-conts-type");
if (typeof contsType == "undefined" || contsType == null || contsType == "") {
alert("contsType 없습니다.");
return;
}
if (typeof contsId == "undefined" || contsId == null || contsId == "") {
alert("contsId 없습니다.");
return;
}
let urlScheme = "";
if (contsType == "N10001") { //song
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/song/" + contsId;
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=songDetail¶m1=" + contsId;
}
}
if(typeof urlScheme == "undefined" || urlScheme == null || urlScheme == ""){
alert("이용 중인 기기에서는 지원하지 않습니다.");
return;
} else{
appLaunch(urlScheme, "", true);
}
});
} else {
$('.lyrics-detail.data-view2').html('<div class="txt-nodata">등록된 가사가 없습니다.</div>');
}
},
error: function(request,error) {
$('.lyrics-detail.data-view2').html('<div class="txt-nodata">등록된 가사가 없습니다.</div>');
}
});
}
}
}
// 좋아요 수 및 여부, 댓글 조회
$.ajax({
type: 'get',
url: '/song/likeAndCmt.json',
datatype: 'json',
async: true,
data: {
songId: `38557214`,
memberKey: getMemberKey()
},
success: function(obj) {
if(obj.likeYn === 'Y') $('.btn-action.btn-like').attr('class', 'btn-action btn-like on');
if(obj.likeCnt) setCnt(obj.likeCnt, $('#txt-like'));
if(obj.CMTCNT) setCnt(obj.CMTCNT, $('#txt-cmt'));
},
error: function(request, error) {
}
})
const setCnt = (cntStr, $cnt) => {
const limit = 99999;
const cntNum = parseInt(cntStr, 10);
const regExp = /B(?=(d{3})+(?!d))/g;
cntStr = Math.min(limit, cntNum).toString();
let cntStrFormat = cntStr.replace(regExp, ",");
if(cntNum > limit) cntStrFormat += '+';
$cnt.text(cntStrFormat);
}
// 이 곡의 기록 안내 모달 닫기
$("#recordInfoClose").on("click", function(){
$("#alertRecordInfo").hide();
});
$(window).scroll(function() {
const topCurrent = $(document).scrollTop();
const melonHeader = $(".transparent-header");
if (topCurrent > 0) {
melonHeader.removeClass("transparent");
} else {
melonHeader.addClass("transparent");
}
});
$(function() {
$(".user-action .btn-fan").on("click", function() {
$(this).toggleClass("on");
})
});
});
// 이 곡의 스테이션 전체보기로 앱 점프
function goStationList(songId){
// ios
const url = `melonapp://details/songstation?songId=${songId}`;
appLaunch(url,'',true);
}
// 이 곡의 다른 버전, 이 곡의 비디오, 이 곡의 매거진 전체보기 이동
function goItemList(contentType) {
const songId = '38557214';
if(!contentType || !songId) return;
const url = {
'version': `/song/otherVersion.htm?songId=${songId}`,
'video': `/song/video.htm?songId=${songId}`,
'magazine': `/song/magazine.htm?songId=${songId}`
};
if(!(contentType in url)) return;
location.href = url[contentType];
}
$( window ).load( function(){
if('N' == 'Y'){
var pvParam = "ref=&pvmenuid=1000000543&contstype=&contsid=38557214";
var param1 = "38557214";
var isTrackZero = "";
//모바일 앱의 곡상세로 랜딩
if(POC_ID == "AS20"){
appLaunch("melonapp://details/song/" + param1 + "?" + pvParam,"",false);
}else if(POC_ID == "IS20"){
appLaunch("meloniphone://S5002/command=songDetail¶m1=" + param1 + "&" + pvParam,"",false);
}
}
});
</script>
<!-- 컨텐츠 JS END-->
</body>
</html>
Walruses never cry!
@&^%#$$!*@%
Last time there wasn't enough time
@&^%#$$!*@% <BR>I wasn't ready to fight, it's different now<BR> <BR>Between life and death in the open sea <BR>Flashbacks of bitter memories<BR>Don’t know how much time has passed<BR>Getting harder to breathe, fear of death <BR><BR>Your curious embrace saved me<BR>Never felt that relief before<BR>So I devoured you to tell this story, to survive <BR> <BR>Now it’s time to be my companion <BR>Some brandy in your tea will make you forget everything<BR>Be a Tusk<BR><BR>Everything about myself is gone<BR>(Scream out in anger countless times)<BR>My reflection on the water<BR>(Cannot face myself anymore, all hope is gone)<BR> <BR>@&^%#$$!*@% <BR>Last time there wasn't enough time<BR>@&^%#$$!*@% <BR>I wasn't ready to fight, it's different now<BR><BR>I have a sixth sense<BR>I have 11 toes<BR>The endless sea unfolds on the CRT<BR>How many tusks were there?<BR>Hurry up, find me<BR>Hurry up, find me<BR><BR>Swim to survive and eat guts to live<BR>Now I'm all set. I'll give you a chance to fight <BR><BR>Struggle to the death with your tusk<BR><BR>I can't stop if the flesh is torn and bleeding<BR>Kill me now, free me from my guilt<BR><BR>The teeth of my freedom<BR>You're my tusk<BR><BR>Everything about myself is gone<BR>(Scream out in anger countless times)<BR>My reflection on the water<BR>(Cannot face myself anymore, all hope is gone)<BR><BR>Roaring at the gunpoint<BR>What did I fight for<BR>I became a mockery itself, just like the one I used to laugh at <BR><BR>Who am I?
</div>
</div>
<div class="area-more">
<button class="btn-more"><span class="txt-g">더보기</span></button>
</div>
</div>
</div>
</div>
<!-- // 가사 -->
<div class="content-melon content-credit">
<div class="content-head">
<h3 class="tit-content">
<span class="inner-title">
크레딧
</span>
</h3>
</div>
<div class="content-body">
<strong class="tit-g">Tusk (ft. Yul of End These Days)</strong>
<dl class="list-detail-info list-credit">
<div class="item-detail">
<dt>작사</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>작곡</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>편곡</dt>
<dd>
<div class="txt-g">
Eighteen April
</div>
</dd>
</div>
<div class="item-detail">
<dt>장르</dt>
<dd>
<div class="txt-g">
인디음악, 록/메탈
</div>
</dd>
</div>
</dl>
</div>
</div>
<!-- // 크레딧 -->
<!-- // 이 곡의 기록 -->
<!-- // 이 곡의 다른 버전 -->
<!-- // 이 곡의 비디오 -->
<div class="content-melon content-magazine">
<div class="content-head">
<h3 class="tit-content">
<span class="inner-title">
이 곡의 매거진
</span>
</h3>
</div>
<div class="content-body">
<ul class="list-melon list-magazine">
<li>
<div class="box-item box-magazine ">
<div class="inner-item">
<a href="javascript:goDetail('mus','15966')" class="link-detail">
<div class="box-thumb">
<span class="img-thumb" style="background-image:url(//cdnimg.melon.co.kr/resource/image/cds/musicstory/imgUrl20250325044556133.png/melon/resize/200/optimize/90)"></span>
<span class="logo-thumb ico-sprite ico-magazine-logo-02">magazine</span>
</div>
<div class="info-content">
<strong class="tit-content">
<span class="txt-title">3월 추천 신곡</span>
</strong>
<span class="desc-content">
<span class="txt-description">트랙제로</span>
</span>
</div>
</a>
</div>
</div>
</li>
</ul>
</div>
</div>
<!-- // 이 곡의 매거진 -->
<!-- // 이 곡의 스테이션 -->
<script>let INIT_CMT_CNT_BTN=true;</script>
<!-- document.domain -->
<script type="text/javascript">document.domain='melon.com';</script>
<!-- melon comment plugin -->
<div id="d_cmtpgn_list" class="content-melon content-comment"
data-sqwidget="templateType:mobile6-list-page;pageType:summary-page;"
data-sqwidget-settings="cmtPocType:m.web;pocId:;menuId:1000000455;useInWebveiw:false;chnlSeq:103;contsRefValue:38557214;listPageUrl:/m6/comment/list.htm?chnlSeq=103&contsRefValue=38557214;writePageUrl:/m6/comment/write.htm?chnlSeq=103&contsRefValue=38557214;viewPageUrl:/m6/comment/view.htm?chnlSeq=103&contsRefValue=38557214;">
</div>
<script type="text/javascript">
(function ($) {
try {
if (POC_ID == 'AS40' || POC_ID == 'IS40') {
var $cmtpgn = $("#d_cmtpgn_list");
if( $cmtpgn != null ){
cmtDataSqwidgetSettings = $cmtpgn.attr("data-sqwidget-settings") + ";useInWebveiw:true;";
$cmtpgn.attr("data-sqwidget-settings", cmtDataSqwidgetSettings);
}
}
} catch (e) {}
})(jQuery);
</script>
<!-- 댓글플러그인 리소스 -->
<script type="text/javascript" src="//cmt.melon.com/cmt/plugin/release/melonweb_cmtpgn_mobile6_list.js?tm=202207201752"></script>
<!-- //melon comment plugin -->
<script type="text/javascript">
$(document).ready(function () {
let appPocIds = ['AS40', 'IS40'];
// 상단 댓글 버튼 클릭
let $cmtBtn = $(".user-action .btn-comment");
if ($cmtBtn){
$cmtBtn.click(function(event){
let cmtListUrl = "https://m2.melon.com/m6/comment/list.htm"
+ "?pocId=&cmtPocType=m.web&chnlSeq=103&contsRefValue=38557214&returnPage=" + encodeURIComponent(location.href);
if (appPocIds.includes(POC_ID))
commentObj.openWebview({url : cmtListUrl});
else
location.href = cmtListUrl;
});
}
// 상단 댓글 카운트, HOT 세팅
let $cmtCntTxt = $(".user-action .btn-comment .txt-btn").not(".cmtpgn-exclude-set-cnt");
let $cmtHotIcon = $(".user-action .btn-comment .ic-common-hot-24").not(".cmtpgn-exclude-set-hot");
if ($cmtCntTxt.length > 0 || $cmtHotIcon.length > 0) {
getCmtContsSumm('103', '38557214', function (cmtCnt, isHot) {
if ($cmtCntTxt){
var cmtTotCnt = (cmtCnt != null) ? cmtCnt : 0;
var strCmtTotCnt = cmtTotCnt > 9999999 ? "9,999,999+" : cmtTotCnt.toString().replace(/(d)(?=(ddd)+(?!d))/g, "$1,");
$cmtCntTxt.text(strCmtTotCnt);
}
if ($cmtHotIcon && isHot != null)
isHot == true ? $cmtHotIcon.show() : $cmtHotIcon.hide();
});
}
});
function getCmtContsSumm(chnlSeq, contsRefValue, callback){
let cmtContsSummUrl = "https://cmt.melon.com/cmt/api/api_informCmtContsSumm.json"
+ "?pocId=&cmtPocType=m.web&chnlSeq="+chnlSeq+"&contsRefValue="+contsRefValue;
$.getJSON(cmtContsSummUrl, function(data) {
if (data && data.result != undefined) {
let cmtContsSumm = data.result.cmtContsSumm;
if (typeof callback === "function") {
callback(cmtContsSumm.validCmtCnt, cmtContsSumm.hotFlag);
}
}
});
}
</script>
<!-- // 팬톡 -->
</div>
</main>
<footer class="melon-footer simple-footer">
<div class="inner-footer">
<h2 class="screen-out">서비스 이용정보</h2>
<small class="txt-copyright"><a href="javascript:window.open('https://kakaoent.com','POP_POLICY','');" class="link-copyright">© Kakao Entertainment Corp.</a></small>
</div>
</footer>
<div class="popup-toast" style="display:none;">
<span class="txt-toast"></span>
</div>
<div class="melon-modal" id="alertRecordInfo">
<div class="modal-dialog modal-alert">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-body">
<p class="txt-alert">
멜론 차트, 주간 인기상 등의<br>
데이터를 분석하여 이 곡의 명예로운<br>
기록들을 보여줍니다.
</p>
<ul class="list-guide">
</ul>
</div>
<div class="layer-foot">
<button type="button" class="btn-modal btn-submit" id="recordInfoClose">
<span class="txt-btn">확인</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 아티스트 바텀시트 -->
<div class="melon-modal" id="bottomsheetAritst" >
<div class="modal-dialog modal-bottomsheet">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-head">
<strong class="tit-layer">아티스트 선택</strong>
</div>
<div class="layer-body">
<div class="box-bottomsheet bottomsheet-artist">
<div class="inner-box">
<ul class="list-bottomsheet">
<li>
<button type="button" class="btn-bottomsheet " onclick="goDetail('artist','764257')">
<span class="box-thumb">
<span class="img-thumb" style="background-image:url(//cdnimg.melon.co.kr/cm2/artistcrop/images/007/64/257/764257_20250213170148_120.jpg)"></span>
</span>
<span class="txt-btn">Eighteen April</span>
</button>
</li>
</ul>
</div>
</div>
</div>
<button type="button" class="btn-close">
<span class="ico-sprite ico-common-close-30">닫기</span>
</button>
</div>
</div>
</div>
</div>
<!--공유-->
<div class="melon-modal" id="bottomsheetShare">
<div class="modal-dialog modal-bottomsheet">
<div class="modal-layer">
<div class="inner-layer">
<div class="layer-head">
<strong class="tit-layer">공유</strong>
</div>
<div class="layer-body">
<div class="box-bottomsheet bottomsheet-share">
<div class="inner-box">
<ul class="list-bottomsheet">
<li>
<button type="button" class="btn-bottomsheet " id="kakaotalkSns">
<span class="ico-thumb">
<span class="ico-sprite ic-common-kakao-20"></span>
</span>
<span class="txt-btn">카카오톡</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="twitter">
<span class="ico-thumb">
<span class="ico-sprite ic-common-twitter-20"></span>
</span>
<span class="txt-btn">X</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="facebook">
<span class="ico-thumb">
<span class="ico-sprite ic-common-facebook-20"></span>
</span>
<span class="txt-btn">페이스북</span>
</button>
</li>
<li>
<button type="button" class="btn-bottomsheet " id="copyUrl">
<span class="ico-thumb">
<span class="ico-sprite ic-common-url-20"></span>
</span>
<span class="txt-btn">URL 복사</span>
</button>
</li>
</ul>
</div>
</div>
</div>
<button type="button" class="btn-close">
<span class="ico-sprite ico-common-close-30">닫기</span>
</button>
</div>
</div>
</div>
</div>
<!--Bottom MelonApp Floating -->
<div class="melon-floating" style="display: none;">
<div class="inner-floating">
<p class="txt-g">멜론 앱에서 더 많은 콘텐츠를 즐기세요.</p>
<button type="button" class="btn-app" data-button-type="app" data-conts-type="N10001" data-conts-id="38557214">
<span class="txt-btn">앱 열기</span>
</button>
<button type="button" class="btn-close" id="melonFloatingClose">
<span class="ico-sprite ico-web-toolbar-close">닫기</span>
</button>
</div>
</div>
<!-- 좋아요, 팬맺기 토스트 팝업 메시지 -->
<div class="popup-toast popup-toast-fan">
<span class="txt-toast"></span>
<span class="icon-lottie" id="fanIcon"> </span>
</div>
<div class="popup-toast popup-toast-like">
<span class="txt-toast"></span>
<span class="icon-lottie" id="likeIcon"></span>
</div>
<!-- 공통 JS -->
<div id="postName" style="display:none;">Tusk (ft. Yul of End These Days)</div>
<script type="text/javascript" src="//cdnimg.melon.co.kr/services/js/vendor/lottie.min.js"></script>
<script type="text/javascript" src="//cdnimg.melon.co.kr/services/js/vendor/lottie-animation.js"></script>
<script type="text/javascript" src="/resource/script/cds/common/kakao.1.39.9.min.js?_resVer=cb94acdc1c3894b737cb2e3203f1b23f"></script>
<script type="text/javascript">
//2016.04.15 KKJ pvlog에서 POC_ID를 사용하여 선 조회하도록 변경함.
var httpWww = "http://m2.melon.com";
var httpsWww = "https://m2.melon.com";
var POC_ID = getCookie("POC"); //POC_ID 기본값을 쿠키에서 가져와서 세팅 (160721:choiyg)
var UA_TYPE_CODE = "";
var ANDROID_VERSION = "";
var SEARCH_PHASE = 'https://search.melon.com';
$(document).ready(function() {
POC_ID = getCookie("POC");
if(POC_ID == "" || typeof POC_ID == "undefined" || POC_ID == "XXXX" || POC_ID == "STON"){
$.ajax({
async:false,
url: 'https://m2.melon.com/common/useragent_info.json',
dataType: 'json',
error: function(request, status, error) {},
success: function(data){
var pocId = data.pocId;
// iOS13 부터 아이패드의경우 UA값이 "Macintosh"으로 넘오기 때문에 pocId가 정상적으로 세팅되지 않음 (MP10으로 넘어옴)
// pocId가 "MP10" 이고 터치포인트 정보가 1보다 크면 패드로 인식하고 pocId를 "IT10"으로 전환해준다.
if(data.pocId == "MP10" && navigator.maxTouchPoints > 1){
pocId = "IT10";
}
setCookie("POC", pocId, 10, "/", ".melon.com");
}
});
POC_ID = getCookie("POC");
}
//공유하기
$.HOME = "https://m2.melon.com";
var postId = '38557214';
var type ='son';
var postName = $("#postName").text();
var postDescription = "";
var postImg = "https://cdnimg.melon.co.kr/cm2/album/images/117/15/089/11715089_20250213165937_500.jpg/melon/optimize/90";
var artistPostName = "Eighteen April";
var isAdult = ("false" == 'true');
var totSongCnt = "";
var twitterPostUrl = "";
$.longUrl = $.HOME + "/pda/msvc/snsGatePage.jsp?type="+type+"&sId=" + postId;
// 신규 URL 링크 복사 (iOS 18 ~ 지원)
$('#copyUrl').on("click", function() {
// 친절한 멜론 사전 컨텐츠 상세 랜딩 URL :: 파라미터 추가
if('dic' == type) {
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
}
if('gt' == type) {
$.longUrl = $.HOME +"/m6/getTitle/share.htm?memberKey=&type="+gtype+"&code="+code+"&bgImg="+bgImg+"&statFlag="+status;
}
var copyUrl = getNShortenUrl({longUrl:$.longUrl, ref:'copyurl'});
if ('kpop100' == type) {
copyUrl = 'https://into.melon.com/kpop100';
}else if('spotlight' == type){
if(typeof insertSpotlightActionLog == 'function'){
insertSpotlightActionLog('CP', spotlightEventId);
}
// url 복사하기
copyUrl = 'https://into.melon.com/bridge/normal/spotlight/' + spotlightSeq;
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(copyUrl)
.then(() => alert("URL이 복사되었습니다."))
.catch(err => {
fn_sns_url_old(copyUrl);
});
} else {
fn_sns_url_old(copyUrl);
}
});
// 구버전 URL 링크 복사 (~ iOS 17 까지 지원)
function fn_sns_url_old(shareUrl) {
let el = document.createElement('textarea');
el.value = shareUrl;
el.setAttribute('readonly', '');
el.style = {position: 'absolute', left: '-9999px'};
document.body.appendChild(el);
if (navigator.userAgent.match(/ipad|ipod|iphone/i)) {
let editable = el.contentEditable;
let readOnly = el.readOnly;
el.contentEditable = true;
el.readOnly = true;
let range = document.createRange();
range.selectNodeContents(el);
let selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
el.setSelectionRange(0, 999999);
el.contentEditable = editable;
el.readOnly = readOnly;
} else {
el.select();
}
let successful = document.execCommand('copy');
if (successful) {
alert("URL이 복사되었습니다.");
} else {
alert("fail");
}
document.body.removeChild(el);
}
//트위터 클릭(S)
$('#twitter').on("click", function() {
if(artistPostName.length > 30){
artistPostName = artistPostName.substring(0, 30) + "...";
}
if('art'==type){
//artist
$.adjTitle = artistPostName + " - 좋아합니다.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/art/"+postId+".htm"
}else if('son'==type){
//song
var songName = postName;
if(songName != null && songName.length > 60){
songName = songName.substring(0, 60) + "...";
}
$.adjTitle = songName + " - " + artistPostName + " - 들어보세요.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/son/"+postId+".htm"
}else if('alb'==type){
//album
var albumName = postName;
if(albumName != null && albumName.length > 60){
albumName = albumName.substring(0, 60) + "...";
}
$.adjTitle = artistPostName + "의 "+ albumName +" - 추천합니다.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/alb/"+postId+".htm"
}else if('mvd'==type){
//melontv
var mvName = postName;
if(mvName != null && mvName.length > 50){
mvName = mvName.substring(0, 50) + "...";
}
$.adjTitle = artistPostName + "의 " + mvName + " - 감상해보세요.";
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/mvd/"+postId+".htm"
}else if('ntz' == type) {
$.adjTitle = '멜론 주간 어워드 투표 진행중! 빨리 투표에 참여하세요.';
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/ntz/0.htm"
}else if('mus' == type) {
$.adjTitle = postName;
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/mus/"+postId+".htm";
}else if('musc' == type) {
$.adjTitle = postName;
twitterPostUrl = "https://www.melon.com/restful/sns/posting/twitter/musc/"+postId+".htm";
} else if('dic' == type) {
var themeName = $("#themeName").text();
postName = "Tusk (ft. Yul of End These Days)";
$.adjTitle = "[친절한 멜론사전] "+postName+" : "+themeName+" ▶ ";
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
} else if('kpop100' == type) {
$.adjTitle = "["+ postName +"] "+postDescription;
}else{
$.adjTitle = postName;
}
//트위터 이미지 공유 기능 추가
if(twitterPostUrl != ""){
$.cbUrl = getNShortenUrl({longUrl:twitterPostUrl, ref:'twitter', isRef:'N'});
$.encodeUrl = encodeURIComponent($.cbUrl);
$.encodeTitle = encodeURIComponent($.adjTitle);
$.twitURL = "https://twitter.com/intent/tweet?url=" + $.encodeUrl + "&text=" + $.encodeTitle + "&hashtags=Melon";
} else if('kpop100' == type) {
$.cbUrl = 'https://into.melon.com/kpop100';
$.strStatus = encodeURIComponent($.adjTitle + " " + $.cbUrl + " #Melon #kpop");
$.twitURL = "https://twitter.com/intent/tweet?lang=ko&text=" + $.strStatus;
}else{
$.cbUrl = getNShortenUrl({longUrl:$.longUrl, ref:'twitter'});
$.strStatus = encodeURIComponent($.adjTitle + " " + $.cbUrl + " #Melon");
$.twitURL = "https://twitter.com/intent/tweet?lang=ko&text=" + $.strStatus;
}
if(POC_ID == "AS40" || POC_ID == "IS40" ){
$.parantUrl = window.document.location.href;
if ('dic' == type) {
if (POC_ID == "AS40") {
location.href = 'melonapp://webview?url=' + encodeURIComponent($.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl)) + '&type=PA';
} else if (POC_ID == "IS40") {
appLaunch('meloniphone://webview?url=' + $.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl) + '&type=PA', '', false);
}
} else {
window.location.href = $.twitURL + "&source=tweetbutton&original_referer=" + encodeURIComponent($.parantUrl);
}
}
else{
window.open($.twitURL);
var currUrl = window.document.location.href;
currUrl = currUrl.replace("snsGate=Y", "snsGate=N");
location.href = currUrl;
}
});
//페이스북 클릭(S)
$('#facebook').on("click", function() {
//로그인 체크 제거 기획자 요청 김미선M
if('art'==type){
//artist
$.adjTitle = encodeURIComponent(artistPostName);
}else if('son'==type){
//song
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('alb'==type){
//album
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('mvd'==type){
//melontv
$.adjTitle = encodeURIComponent(postName +" - "+artistPostName);
}else if('ntz' == type) {
//주간어워드
$.adjTitle = encodeURIComponent('멜론 주간 어워드 투표 진행중! 빨리 투표에 참여하세요.');
}else if('dic' == type) {
// $.longUrl = "www.melon.com/restful/sns/posting/facebook/dic/"+postId+"/"+contsType+"/"+cpId+"/"+cateSeq+"/"+offerSeq+".htm";
$.longUrl = $.longUrl + "&cpId="+cpId+"&contsType="+contsType+"&cateSeq="+cateSeq+"&offerSeq="+offerSeq;
}else if('kpop100' == type) {
// K-POP 명곡 100
$.adjTitle = encodeURIComponent(postName+'n'+postDescription);
}else{
$.adjTitle = encodeURIComponent(postName);
}
$.description = encodeURIComponent("음악이 필요한 순간, 멜론");
if ('dic' == type) {
var da = new Date();
var millisecond = da.getMilliseconds();
var url = "/cds/support/mobile2/sns_informNShortenUrl.json?ajax_ts="+millisecond;
var shortUrl = "";
$.ajax({
type : "GET",
url : url,
data : "longUrl=" + encodeURIComponent($.longUrl),
dataType : 'json',
async : false,
success : function(json) {
var jsonObj = eval("(" + json.resultStr + ");");
shortUrl = jsonObj.results[$.longUrl].shortUrl;
}
});
$.linkUrl = shortUrl;
console.log("$.linkUrl == "+$.linkUrl);
} else if ('kpop100' == type) {
$.linkUrl = 'https://into.melon.com/kpop100';
} else {
$.linkUrl = getNShortenUrl({longUrl:$.longUrl, ref:'facebook'});
}
$.caption = encodeURIComponent("www.melon.com");
if(postImg == null || postImg == ""){
postImg = encodeURIComponent("https://cdnimg.melon.co.kr/resource/image/cds/common/mobilempoc/musiclog_melon_150x150.png");
}else{
postImg = encodeURIComponent(postImg);
}
let shareUrl = getShareUrl({title: decodeURIComponent($.adjTitle), desc: decodeURIComponent($.description), imgUrl: decodeURIComponent(postImg), landingUrl: $.linkUrl});
let closeUrl = "https://m2.melon.com" + "/cds/support/mobile2/sns_close.htm?pocId=" + POC_ID; // 페이스북 공유 후 닫기 URL (PA, m.com)
$.facebookURL = 'https://www.facebook.com/dialog/feed?app_id=4022717807957185&display=page&link=' + encodeURIComponent(shareUrl) + "&redirect_uri=" + encodeURIComponent(closeUrl);
if(POC_ID == "AS40" || POC_ID == "IS40" ){
if ('dic' == type) {
postImg = encodeURIComponent("https://cdnimg.melon.co.kr/resource/mobile40/cds/dictionary/image/dictionary_share_img2.png");
$.facebookURL = "https://www.facebook.com/dialog/feed?app_id=4022717807957185&display=popup&link=" + $.linkUrl + "&name=" + $.adjTitle + "&picture=" + postImg + "&caption=" +$.caption+ "&description=" + $.description;
openSns('', $.facebookURL+ "&redirect_uri=" + closeUrl);
} else if ('kpop100' == type) {
openSns('', $.facebookURL);
} else {
window.location.href = $.facebookURL;
}
}
else{
window.open($.facebookURL);
var currUrl = window.document.location.href;
currUrl = currUrl.replace("snsGate=Y", "snsGate=N");
location.href = currUrl;
}
});
var appKey = "4d545a185d172754667d621049004aa1"; //상용 key
// var appKey = "deaa7e074c7cdb9b0071820769aa7df5"; //sandbox key
Kakao.init(appKey);
// kakaotalk v2 설정
$('#kakaotalkSns').on("click", function() {
kakaotalkAppFlg();
if('son'==type) {
Kakao.Link.sendCustom({
templateId : 17141,
templateArgs : {
'THUMB_URL': postImg,
'TITLE': postName,
'ARTIST': artistPostName,
'SONG_ID': postId,
'KMA': isAdult
}
});
} else if ('alb' == type) {
Kakao.Link.sendCustom({
templateId : 17142,
templateArgs : {
'THUMB_URL': postImg,
'TITLE': postName,
'ARTIST': artistPostName,
'ALBUM_ID': postId,
'SONG_COUNT': totSongCnt
}
});
} else if ('ply' == type) {
var songCnt = '';
if(songCnt == 0){
alert('수록곡이 없는 플레이리스트는 카카오톡 공유가 불가합니다.');
return;
}
Kakao.Link.sendCustom({
templateId : 17143,
templateArgs : {
'TITLE': postName,
'SONG_COUNT' : songCnt,
'LIST_THUMB_URL1' : '',
'PLYLSTSEQ' : '38557214'
}
,callback: function(c) {
alert(JSON.stringify(c));
}
});
} else if ('djc' == type) {
var songCnt = '';
if(songCnt == 0){
alert('수록곡이 없는 플레이리스트는 카카오톡 공유가 불가합니다.');
return;
}
Kakao.Link.sendCustom({
templateId : 17144,
templateArgs : {
'TITLE': '',
'SONG_COUNT' : songCnt,
'LIST_THUMB_URL1' : '',
'LIST_THUMB_URL2' : '',
'LIST_THUMB_URL3' : '',
'LIST_THUMB_URL4' : '',
'PLYLSTSEQ' : '38557214',
'CREATOR' : '',
}
,callback: function(c) {
alert(JSON.stringify(c));
}
});
} else if ('dic' == type) {
var themeName = $("#themeName").text();
postName = "Tusk (ft. Yul of End These Days)";
var snsKakaoTitleName = "[친절한 멜론사전] "+postName;
var snsKakaoDescName = themeName;
var outpostingUri = $.longUrl + '&cpId='+cpId+'&ref=kakao&contsType='+contsType+'&cateSeq='+cateSeq+'&offerSeq='+offerSeq;
var outpostingImgUrl = postImg;
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: snsKakaoTitleName,
imageUrl: outpostingImgUrl,
imageWidth: 600,
imageHeight: 300,
description: snsKakaoDescName,
link: {
mobileWebUrl: outpostingUri,
webUrl: outpostingUri
}
}
});
} else if ('kpop100' == type) {
var snsKakaoTitleName = 'K-POP with Melon';
var snsKakaoDescName = postDescription.split(',')[0];
var outpostingUri = 'https://into.melon.com/kpop100';
var outpostingImgUrl = postImg;
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: snsKakaoTitleName,
imageUrl: outpostingImgUrl,
imageWidth: 600,
imageHeight: 300,
description: snsKakaoDescName,
link: {
mobileWebUrl: outpostingUri,
webUrl: outpostingUri
}
}
});
} else {
// 멜론 기본 타입 공유
// 아티스트, 영상, 주간어워드 투표, 매거진
Kakao.Link.sendCustom({
templateId : 6964,
templateArgs : {
'TITLE': postName,
'THUMB_URL' : postImg,
'LINK_URL' : $.longUrl + '&ref=kakao'
}
});
}
});
});
function openSns(webviewType, url){
if(POC_ID == 'AS40'){
if(webviewType == null || webviewType == '' || typeof webviewType == undefined) {
location.href = 'melonapp://webview?url=' + encodeURIComponent(url) + '&type=PA';
} else {
location.href = 'melonapp://webview?url=' + encodeURIComponent(url) + '&type=' + webviewType;
}
}else if(POC_ID == 'IS40'){
if(appVerCompare(4,0,0)) {
if (webviewType == null || webviewType == '' || typeof webviewType == undefined) {
appLaunch('meloniphone://webview?url=' + url + '&type=PA', '', false);
} else {
appLaunch('meloniphone://webview?url=' + url + '&type=' + webviewType, '', false);
}
} else {
location.href = url;
}
}else {
window.open(url);
}
}
// 카카오톡 앱 설치여부 체크
var kakaotalkAndroidStore = "https://play.google.com/store/apps/details?id=com.kakao.talk";
var kakaotalkIosStore = "https://itunes.apple.com/kr/app/id362057947";
function kakaotalkAppFlg(timeoutVal) {
// 현재 톡 웹뷰이면 설치여부 체크하지 않기
var ua = navigator.userAgent.toLocaleLowerCase();
if (ua.indexOf('kakaotalk') > -1) {
return;
}
// 타임아웃 파라미터로 받도록 수정 (default : 1500)
var timeout = 1500;
try {
timeout = parseInt(timeoutVal);
} catch (e) {
timeout = 1500;
}
if (timeout == null || timeout == '' || isNaN(timeout)) {
timeout = 1500;
}
function clearTimers(){ clearInterval(iv); clearTimeout(timer); }
function interv() {
if(document.webkitHidden || document.hidden){ clearTimers(); }
}
iv= setInterval(interv, 200);
timer = setTimeout(function() {
alert('카카오톡 설치 페이지로 이동합니다.');
if (POC_ID == "AS40") {
appLaunch('melonapp://webview?url=' + encodeURIComponent(kakaotalkAndroidStore) + '&type=OA&title=&close=N', false);
} else if (POC_ID == "IS40") {
appLaunch('meloniphone://webview?url=' + encodeURIComponent(kakaotalkIosStore) + '&title=&type=OA&webReload=Y', '', false);
} else if (POC_ID == "AS20") {
location.href = kakaotalkAndroidStore;
} else if (POC_ID == "IS20") {
location.href = kakaotalkIosStore;
}
}, timeout);
}
/////////////////////////////////////////// SNS end....
//헤더 X 표 클릭 시
$("#headerCloseBt").on("click", function(){
history.go(-1);
});
//로그인 체크
fn_login_check = function() {
if(!isMelonLogin()) {
var currentUrl = encodeURIComponent(document.location.href);
location.href = "https://" + phase + "member.melon.com/muid/mobile/login/login_inform.htm?returnPage=" + currentUrl;
return false;
}
return true;
};
$(function(){
//멜론 앱 열기 플로팅 배너 노출 여부 처리
var dsplayYn = getCookie("melon-floating");
if(POC_ID.indexOf("IS") > -1 && dsplayYn == ""){
var expireDate = localStorage.getItem("melon-floating");
if(expireDate != "" && typeof expireDate != "undefined"){
var todayDate = new Date();
if(expireDate < todayDate.getTime()){
localStorage.removeItem("melon-floating");
} else {
dsplayYn = "Y";
}
}
}
if(dsplayYn != "Y"){
$(".melon-floating").show();
}
//멜론 앱 열기
var btnModal = $("[data-button-type='app']");
$(btnModal).each(function() {
$(this).on("click", function() {
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
var urlScheme = "";
if(contsType == "N10001"){ //song
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/song/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=songDetail¶m1=" + contsId;
}
}else if(contsType == "N10002"){ //album
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/album/" + contsId;
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=albumDetail¶m1=" + contsId;
}
}else if(contsType == "N10006"){ //artist
if(contsId == '2727') return;
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/artist/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=artistDetail¶m1=" + contsId;
}
}else if(contsType == "N10003"){ //mv
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/video/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=videoDetail¶m1=" + contsId;
}
}else if(contsType == "N10007") { //musicstory
var path = "/musicstory/detail.htm?mstorySeq=" + contsId;
var url = location.origin + path;
url = encodeURIComponent(url);
var webviewType = convertWebviewType("SA");
if (POC_ID == "AS20") {
urlScheme = "melonapp://webview?url=" + url + "&type=" + webviewType + "&title=&memberkey=";
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://webview?url=" + url + "&title=&memberKey=&type=" + webviewType;
}
}else if(contsType == "N10005"){ //playlist
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/playlist/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "melonapp://details/playlist?cid=" + contsId;
}
}else if(contsType == "N10009"){ //dj playlist
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/djcollection/" + contsId;
}else if (POC_ID == "IS20") {
urlScheme = "melonapp://details/djcollection?cid=" + contsId;
//urlScheme = "meloniphone://S5002/command=djcollectionDetail¶m1="+contsId + "¶m3=DJ";
}
}
if(typeof urlScheme == "undefined" || urlScheme == null || urlScheme == ""){
alert("이용 중인 기기에서는 지원하지 않습니다.");
return;
}else{
appLaunch(urlScheme, "", true);
}
});
});
// function popupToast() {
// $(".popup-toast").show();
// setTimeout(function() {
// $(".popup-toast").hide();
// }, 4500);
// }
let timeoutId;
function popupToast(time, popup, btn) {
popup.style.display = "block";
btn.disabled = true;
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
popup.style.display = "none";
btn.disabled = false;
}, time);
}
//좋아요 버튼 클릭 시
$("button.btn-like").on("click", function(){
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
var isLike = $btn.hasClass("on");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
if(isLike){
deleteUserAction(contsType, contsId, $btn);
}else{
insertUserAction(contsType, contsId, $btn);
}
});
//팬맺기 버튼 클릭 시
$("button.btn-fan").on("click", function(){
var $btn = $(this);
var contsId = $btn.attr("data-conts-id");
var contsType = $btn.attr("data-conts-type");
var isFan = $btn.hasClass("on");
if(typeof contsType == "undefined" || contsType == null || contsType == ""){
alert("contsType 없습니다.");
return;
}
if(typeof contsId == "undefined" || contsId == null || contsId == ""){
alert("contsId 없습니다.");
return;
}
if(isFan){
deleteUserAction(contsType, contsId, $btn);
}else{
insertUserAction(contsType, contsId, $btn);
}
});
//좋아요, 팬맺기 액션
var insertUserAction = function(contsType, contsId, $btn){
//로그인 체크
if(!fn_login_check()){
return;
}
var memberKey = getMemberKey();
try{
$.ajax({
async: false,
cache: false,
url: "/m6/useraction/insert.json",
type: "POST",
data: {contsType: contsType, contsId: contsId, memberKey: memberKey},
success: function (data) {
if (data.RESULT == "0") {
$btn.addClass("on");
$btn.find(".txt-btn").text(data.LIKECNT);
if (contsType == "N10006") {
let toastTxt = $(".popup-toast-fan .txt-toast");
let toastFan = document.querySelector(".popup-toast-fan");
let btnFan = document.querySelectorAll(".btn-fan").item(0);
if (aniFan && $.isFunction(aniFan.play)) {
aniFan.play();
}
$('#fanIcon').addClass('on');
setTimeout(function() {
if (aniFan && $.isFunction(aniFan.stop)) {
aniFan.stop();
}
$('#fanIcon').removeClass('on');
}, 1000);
popupToast(3000, toastFan, btnFan);
toastTxt.html("팬이 되었습니다.");
} else {
let toastTxt = $(".popup-toast-like .txt-toast");
let toastLike = document.querySelector(".popup-toast-like");
let btnLike = document.querySelectorAll(".btn-like").item(0);
if (aniLike && $.isFunction(aniLike.play)) {
aniLike.play();
}
$('#likeIcon').addClass('on');
setTimeout(function() {
if (aniLike && $.isFunction(aniLike.stop)) {
aniLike.stop();
}
$('#likeIcon').removeClass('on');
}, 1000);
popupToast(3000, toastLike, btnLike);
toastTxt.html("좋아요 반영되었습니다");
}
} else {
alert(data.MESSAGE);
return;
}
},
error: function (request, status, error) {
alert('처리 중 에러가 발생했습니다.');
}
});
}catch(e){
alert(e);
}
}
//좋아요, 팬맺기 취소 액션
var deleteUserAction = function(contsType, contsId, $btn){
//로그인 체크
if(!fn_login_check()){
return;
}
var memberKey = getMemberKey();
try{
$.ajax({
async : false,
cache : false,
url : "/m6/useraction/delete.json",
type : "POST",
data : {contsType : contsType, contsId : contsId, memberKey : memberKey}
}).done(function(data){
if(data.RESULT == "0"){
$btn.removeClass("on");
$btn.find(".txt-btn").text(data.LIKECNT);
if (contsType == "N10006") {
let fanLottie = document.querySelector("#fanIcon");
let toastTxt = $(".popup-toast-fan .txt-toast");
let toastFan = document.querySelector(".popup-toast-fan");
let btnFan = document.querySelectorAll(".btn-fan").item(0);
fanLottie.classList.remove("on");
popupToast(1000, toastFan, btnFan);
toastTxt.html("이제 팬이 아닙니다.");
} else {
let likeLottie = document.querySelector("#likeIcon");
let toastTxt = $(".popup-toast-like .txt-toast");
let toastLike = document.querySelector(".popup-toast-like");
let btnLike = document.querySelectorAll(".btn-like").item(0);
likeLottie.classList.remove("on");
popupToast(1000, toastLike, btnLike);
toastTxt.html("좋아요 취소되었습니다");
}
}else{
alert(data.MESSAGE);
return;
}
});
}catch(e){
}
}
//멜론 앱열기 플로팅 배너의 x버튼 클릭 시
$("#melonFloatingClose").on("click", function(){
var todayDate = new Date();
var key = "melon-floating";
setCookie(key, "Y", 1, "/", "melon.com");
if(POC_ID.indexOf("IS") > -1){
var noneDpTermDate = new Date();
noneDpTermDate.setDate(todayDate.getDate() + 1);
localStorage.setItem(key, noneDpTermDate.getTime());
}
$(this).hide();
});
});
</script>
<form id="appsActionFrm" name="appsActionFrm" method="post" action="/cds/common/android2/apps_play.json">
<input type="hidden" name="menuId" />
<input type="hidden" name="items" />
<input type="hidden" name="ctype" />
</form>
<!-- pv log script -->
<script type="text/javascript" src="https://static.melon.co.kr/statistics/js/pvlog.def1f9a638696166ad15.js"></script>
<script type="text/javascript" src="/resource/script/cds/common/mobile_svc_tiara.js?_resVer=ce223e3016b1562a51779a000235e909"></script>
<!-- 카카오 픽셀 로그 분석 소스 -->
<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/adfit/static/kp.js"></script>
<script type="text/javascript">
kakaoPixel('7142705976963675270').pageView();
</script>
<!-- 네이버 프리미엄 로그 분석 소스 -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script>
<script type="text/javascript" src="/resource/mobile40/cds/common/js/loganalysis.js?_resVer=506e74444e2a739d90d12e857a320fb4"></script>
<!-- 공통 JS END-->
<!-- 컨텐츠 JS -->
<script>
$(document).ready(function() {
const lyricItemYn = 'Y';
const adultFlg = '0';
const DataView2 = function(part, data, height) {
$(this).part = part;
$(this).data = data;
const dataBox = $(part);
dataBox.each(function (index, item) {
const dataHeight = $(this).find(data).height();
const areaMore = $(this).find(".area-more");
const contHeight = $(this).find(height).height();
if(dataHeight >= contHeight) {
areaMore.css("display", "none");
} else {
areaMore.css("display", "");
$(".txt-lyrics").addClass('txt-clamp');
}
});
}
const viewMore = function(data) {
$(data).each(function (index, item) {
const contentFold = data.hasClass('open-more');
const btnMore = $(this).find(".btn-more-data");
if(contentFold) {
data.removeClass('open-more');
btnMore.removeClass('on');
} else {
data.addClass('open-more');
btnMore.addClass('on');
}
});
}
const clickFold = function() {
const buttonFoldLyric = $(".data-view2").find(".btn-more"); // 가사 더보기 - 15줄 이상 더보기 / 접기
const ViewFold = function(item){
$(item).on("click", function() {
const data = $(this).parent().parent();
const textFold = $(this).find(".txt-g");
textFold.text(textFold.text() == '더보기' ? '접기' : '더보기');
if(data) {
viewMore(data);
}
if(item === buttonFoldLyric) {
$('html, body').animate({scrollTop : 420});
}
});
}
ViewFold(buttonFoldLyric);
}
if(lyricItemYn === 'Y' && adultFlg === '1') {
if(isMelonLogin()) {
var memberInfo = svcMember.checkAgeAuthByKey(getMemberKey(), POC_ID);
if(memberInfo.AUTHYN == 'Y' && memberInfo.ADULTAUTHFLG == '1'){
$.ajax({
type:'get',
url: '/song/lyricInfo.json',
dataType:'json',
async:true,
data: {
songId: '38557214'
},
success:function(obj){
if(obj.lyric) {
$('.lyrics-detail.data-view2').html('<div class="txt-out"><div class="txt-lyrics"></div></div><div class="area-more"><button class="btn-more"><span class="txt-g">더보기</span></button></div>');
$('.txt-lyrics').html(obj.lyric);
DataView2('.data-view2', '.txt-out', '.txt-lyrics');
clickFold();
$('.lyrics-detail.data-view2').prepend('<button class="btn-highlight" data-button-type="highlight" data-conts-id="38557214" data-conts-type="N10001"><span class="ico-sprite ico-common-highlight"></span></button>');
// POC_ID 셋팅
let POC_ID = getCookie("POC");
if(POC_ID == "" || typeof POC_ID == "undefined" || POC_ID == "XXXX" || POC_ID == "STON"){
$.ajax({
async:false,
url: '/common/useragent_info.json',
dataType: 'json',
error: function(request, status, error) {},
success: function(data){
let pocId = data.pocId;
// iOS13 부터 아이패드의경우 UA값이 "Macintosh"으로 넘오기 때문에 pocId가 정상적으로 세팅되지 않음 (MP10으로 넘어옴)
// pocId가 "MP10" 이고 터치포인트 정보가 1보다 크면 패드로 인식하고 pocId를 "IT10"으로 전환해준다.
if(data.pocId == "MP10" && navigator.maxTouchPoints > 1){
pocId = "IT10";
}
setCookie("POC", pocId, 10, "/", ".melon.com");
}
});
POC_ID = getCookie("POC");
}
// 가사 하이라이트 앱으로 이동
const btnModal = $("[data-button-type='highlight']");
$(btnModal).on("click", function() {
const $btn = $(this);
const contsId = $btn.attr("data-conts-id");
const contsType = $btn.attr("data-conts-type");
if (typeof contsType == "undefined" || contsType == null || contsType == "") {
alert("contsType 없습니다.");
return;
}
if (typeof contsId == "undefined" || contsId == null || contsId == "") {
alert("contsId 없습니다.");
return;
}
let urlScheme = "";
if (contsType == "N10001") { //song
if (POC_ID == "AS20") {
urlScheme = "melonapp://details/song/" + contsId;
} else if (POC_ID == "IS20") {
urlScheme = "meloniphone://S5002/command=songDetail¶m1=" + contsId;
}
}
if(typeof urlScheme == "undefined" || urlScheme == null || urlScheme == ""){
alert("이용 중인 기기에서는 지원하지 않습니다.");
return;
} else{
appLaunch(urlScheme, "", true);
}
});
} else {
$('.lyrics-detail.data-view2').html('<div class="txt-nodata">등록된 가사가 없습니다.</div>');
}
},
error: function(request,error) {
$('.lyrics-detail.data-view2').html('<div class="txt-nodata">등록된 가사가 없습니다.</div>');
}
});
}
}
}
// 좋아요 수 및 여부, 댓글 조회
$.ajax({
type: 'get',
url: '/song/likeAndCmt.json',
datatype: 'json',
async: true,
data: {
songId: `38557214`,
memberKey: getMemberKey()
},
success: function(obj) {
if(obj.likeYn === 'Y') $('.btn-action.btn-like').attr('class', 'btn-action btn-like on');
if(obj.likeCnt) setCnt(obj.likeCnt, $('#txt-like'));
if(obj.CMTCNT) setCnt(obj.CMTCNT, $('#txt-cmt'));
},
error: function(request, error) {
}
})
const setCnt = (cntStr, $cnt) => {
const limit = 99999;
const cntNum = parseInt(cntStr, 10);
const regExp = /B(?=(d{3})+(?!d))/g;
cntStr = Math.min(limit, cntNum).toString();
let cntStrFormat = cntStr.replace(regExp, ",");
if(cntNum > limit) cntStrFormat += '+';
$cnt.text(cntStrFormat);
}
// 이 곡의 기록 안내 모달 닫기
$("#recordInfoClose").on("click", function(){
$("#alertRecordInfo").hide();
});
$(window).scroll(function() {
const topCurrent = $(document).scrollTop();
const melonHeader = $(".transparent-header");
if (topCurrent > 0) {
melonHeader.removeClass("transparent");
} else {
melonHeader.addClass("transparent");
}
});
$(function() {
$(".user-action .btn-fan").on("click", function() {
$(this).toggleClass("on");
})
});
});
// 이 곡의 스테이션 전체보기로 앱 점프
function goStationList(songId){
// ios
const url = `melonapp://details/songstation?songId=${songId}`;
appLaunch(url,'',true);
}
// 이 곡의 다른 버전, 이 곡의 비디오, 이 곡의 매거진 전체보기 이동
function goItemList(contentType) {
const songId = '38557214';
if(!contentType || !songId) return;
const url = {
'version': `/song/otherVersion.htm?songId=${songId}`,
'video': `/song/video.htm?songId=${songId}`,
'magazine': `/song/magazine.htm?songId=${songId}`
};
if(!(contentType in url)) return;
location.href = url[contentType];
}
$( window ).load( function(){
if('N' == 'Y'){
var pvParam = "ref=&pvmenuid=1000000543&contstype=&contsid=38557214";
var param1 = "38557214";
var isTrackZero = "";
//모바일 앱의 곡상세로 랜딩
if(POC_ID == "AS20"){
appLaunch("melonapp://details/song/" + param1 + "?" + pvParam,"",false);
}else if(POC_ID == "IS20"){
appLaunch("meloniphone://S5002/command=songDetail¶m1=" + param1 + "&" + pvParam,"",false);
}
}
});
</script>
<!-- 컨텐츠 JS END-->
</body>
</html>