// Web Player Object ¸¦ ´ãÀ» °ø°£ ¼³Á¤
document.write("<div id='nice_juke_load_obj' style='display:none'></div>");

function NiceJuke()
{
	//this.log_server = "logsvr.rsrs.co.kr;logsvr.rsrs.co.kr";
	//this.log_server = "statsvr.rsrs.co.kr;statsvr.rsrs.co.kr";
	this.log_server = "statsvr.rsrs.co.kr;statsvr.rsrs.co.kr";
	//this.log_server = "211.115.84.30;211.115.84.30";

	//this.log_server = "211.115.64.146;211.115.64.146";
	//this.lbs_server = "lbs.rsrs.co.kr;lbs.rsrs.co.kr";
	//this.lbs_server = "211.115.85.64;211.115.85.64";
	//this.lbs_server = "211.115.64.211;211.115.64.211";
	//this.fds_server = "211.115.64.157";
	this.lbs_server = "lbsaod.rsrs.co.kr;lbsaod.rsrs.co.kr";
	//this.lbs_server = "211.115.84.131;211.115.84.131";

	//this.fds_server = "fds.rsrs.co.kr";
	//this.fds_server = "211.115.85.65";
	this.fds_server = "fds1bgm.rsrs.co.kr";
	//this.fds_server = "211.115.84.127";

	//this.nj_codebase = "/_web/music/p3ed.cab#version=0,19,0,0";
	this.nj_codebase = "/_web/music/p3ed.cab#version=0,28,0,0";
	this.is_init = false;
	this.oNJID = null;

	this.oTimer = null;
	this.isDemo = false;
	this.demoLimitSec = 60;
	this.pausePosition = -1;
	this.auto_next = true;

	this.total_list = 0;
	this.cur_list_idx = 0;
	this.list_media_id = new Array();
	this.list_track_title = new Array();

	this.PLAYSTATE_STOP = 1;
	this.PLAYSTATE_PAUSE = 2;
	this.PLAYSTATE_PLAY = 3;

	// µð½ºÇÃ·¹ÀÌ ¼³Á¤
	this.disp_curtime = false;
	this.disp_totaltime = false;
	this.disp_title = false;
	this.disp_progess = false;

	// µð½ºÇÃ·¹ÀÌ Object
	this.obj_curtime = null;
	this.obj_totaltime = null;
	this.obj_title = null;
	this.obj_progess = null;

	// METHOD.
	this.Add = NJ_Add;
	this.Remove = NJ_Remove;
	this.Clear = NJ_Clear;
	this.Init = NJ_Init;
	this.Play = NJ_Play;
	this.Stop = NJ_Stop;
	this.Pause = NJ_Pause;
	this.Next = NJ_Next;
	this.Prev = NJ_Prev;
	this.PlayCheck = NJ_PlayCheck;
	this.DispPlayTime = NJ_DispPlayTime;
	this.TimeToString = NJ_TimeToString;
	this.EventHandler = NJ_EventHandler;
	this.DisplayTitle = NJ_DisplayTitle;
	this.SetTimer = NJ_SetTimer;
	this.UnsetTimer = NJ_UnsetTimer;
}

// Web Player Object ÃÊ±âÈ­
function NJ_Init()
{
	if (this.is_init)
	{
		return;
	}

	document.getElementById("nice_juke_load_obj").innerHTML = ""
	+"<OBJECT classid='CLSID:8DE79080-8535-4f7b-A2A0-5492A89EC18E' CODEBASE='"+this.nj_codebase+"' id='p3aodsvr' VIEWASTEXT></OBJECT>"
	//+"<OBJECT classid='CLSID:814F8226-7A77-4651-8026-B56F4DF13D2C' id='nicejuke' width='0' height='0' VIEWASTEXT>"
	// classid changed on 2006. 04. 19. by whynot.
	+"<OBJECT classid='CLSID:04670ED5-3464-4a83-BE1F-24E6FFA41928' id='nicejuke' width='0' height='0' VIEWASTEXT>"
    +"<PARAM NAME='SetLBS' VALUE='"+this.lbs_server+"'>"
	+"<PARAM NAME='LogSvr' VALUE='"+this.log_server+"'>"
    +"<PARAM NAME='userID'      VALUE='0'>"
    +"<PARAM NAME='ServiceID'   VALUE='MBM'>"
    +"<PARAM NAME='ChargedUser' VALUE=''>"
    +"<PARAM NAME='UserMsg1'    VALUE=''>"
    +"<PARAM NAME='UserMsg2'    VALUE=''>"
    +"<PARAM NAME='UserMsg3'    VALUE=''>"
    +"<PARAM NAME='ServerAdd'   VALUE='"+this.fds_server+"'>"
    +"<PARAM NAME='Gender'      VALUE=''>"
    +"<PARAM NAME='Age'         VALUE=''>"
    +"<PARAM NAME='Area'        VALUE=''>"
    +"<PARAM NAME='MediaSort'   VALUE='1'>"
    +"<PARAM NAME='autoStart'   VALUE='-1'>"
    +"</OBJECT>";

	this.oNJID = document.getElementById("nicejuke");
	var oP3aodsvr = document.getElementById("p3aodsvr");

	//alert(typeof(this.oNJID.controls));
	if (typeof(this.oNJID.controls) == "undefined")
	{
		alert('¹è°æÀ½¾Ç ÇÃ·¹ÀÌ¾î°¡ ¼³Ä¡µÇÁö ¾Ê¾Ò½À´Ï´Ù.\nÀ½¾ÇÀ» µè±â À§ÇØ¼­´Â ¹Ýµå½Ã ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù.\n¼³Ä¡ ¾È³» Ã¢ÀÌ ¶ß¸é [¿¹]¸¦ ´­·¯ ¼³Ä¡ÇÏ½Ã°í\n»õ·Î°íÄ§ ÈÄ ´Ù½Ã ÀÌ¿ëÇØÁÖ¼¼¿ä.\n\nÀ©µµ¿ì XP ¼­ºñ½ºÆÑ 2¸¦ ¼³Ä¡ÇÏ½Å ºÐÀº\nÃ¢ »ó´ÜÀÇ ³ë¶õ»ö ºÎºÐÀ» Å¬¸¯ ÈÄ ¼³Ä¡ÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.');

		return;
	}

	this.is_init = true;
	this.oNJID.settings.volume = 100;
}

// Àç»ý °ü·Ã ¸Þ¼Òµå
function NJ_Play(idx)
{
	if (!this.is_init)
	{
		this.Init();
	}

	if (!this.is_init)
	{
		return;
	}

	if (idx != null)
	{
		this.cur_list_idx = idx;
	}

	/*
	else if (this.oNJID.playstate == this.PLAYSTATE_PAUSE)
	{
		this.oNJID.controls.play();
		this.oNJID.controls.play();
		alert('continue');
		return;
	}
	*/

	if (this.total_list < 1)
	{
		return;
	}

	var thisMediaID = this.list_media_id[this.cur_list_idx];
	if (thisMediaID == null)
	{
		//alert('err');
		return;
	}

	/*
	 * ¾ÆÀÎ½º¹ÂÁ÷ FDS ¼­¹ö Áõ¼³·Î º¯°æ.
	 * 2007/07/02 by whynot.
	if (parseInt(thisMediaID) % 2 == 1)
	{
		//this.fds_server  = "211.115.85.65";
		//this.oNJID.ServerAdd  = "211.115.85.65";
		this.oNJID.ServerAdd  = "fds1bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.127";
	}
	else
	{
		//this.fds_server  = "211.115.85.66";
		//this.oNJID.ServerAdd  = "211.115.85.66";
		this.oNJID.ServerAdd  = "fds2bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.128";
	}
	*/

	if (parseInt(thisMediaID) % 4 == 1)
	{
		//this.fds_server  = "211.115.85.65";
		//this.oNJID.ServerAdd  = "211.115.85.65";
		this.oNJID.ServerAdd  = "fds1bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.127";
	}
	else if (parseInt(thisMediaID) % 4 == 2)
	{
		//this.fds_server  = "211.115.85.66";
		//this.oNJID.ServerAdd  = "211.115.85.66";
		this.oNJID.ServerAdd  = "fds2bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.128";
	}
	else if (parseInt(thisMediaID) % 4 == 3)
	{
		//this.fds_server  = "211.115.85.66";
		//this.oNJID.ServerAdd  = "211.115.85.66";
		this.oNJID.ServerAdd  = "fds3bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.128";
	}
	else
	{
		//this.fds_server  = "211.115.85.66";
		//this.oNJID.ServerAdd  = "211.115.85.66";
		this.oNJID.ServerAdd  = "fds4bgm.rsrs.co.kr";
		//this.oNJID.ServerAdd  = "211.115.84.128";
	}

	//this.Init();

	this.oNJID.MediaID = thisMediaID;
	//alert(this.oNJID.MediaID);

	/*
	alert(this.oNJID.ServerAdd);

	this.oNJID.controls.stop();
	this.oNJID.controls.stop();
	this.oNJID.controls.play();
	//this.oNJID.controls.play();
	*/

	//alert('a');
	this.DisplayTitle();
	this.PlayCheck();
}

function NJ_Stop()
{
	if (!this.is_init)
	{
		return;
	}

	if (!this.is_init)
	{
		return;
	}

	this.UnsetTimer();
	this.pausePosition = -1;
	this.oNJID.controls.stop();
	this.oNJID.controls.stop();
	this.DispPlayTime(0);
}

function NJ_Pause()
{
	if (!this.is_init)
	{
		return;
	}

	if (!this.is_init)
	{
		return;
	}

	//alert(this.oNJID.playstate);
	if (this.oNJID.playstate == this.PLAYSTATE_PLAY)
	{
		//alert('pause');
		this.pausePosition = this.oNJID.controls.currentPosition;
		this.oNJID.controls.pause();
	}
	else
	{
		//this.Play();
		//alert(this.pausePosition);
		if (this.pausePosition >= 0)
		{
			this.oNJID.controls.currentPosition = this.pausePosition;
			this.oNJID.controls.play();
			this.oNJID.controls.currentPosition = this.pausePosition;
			this.oNJID.controls.play();
		}
	}
}

function NJ_Next()
{
	if (!this.is_init)
	{
		return;
	}

	if (!this.is_init)
	{
		return;
	}

	var thisIdx = this.cur_list_idx + 1;

	if (thisIdx >= this.total_list)
	{
		if (this.auto_next)
		{
			thisIdx = 0;
		}
		else
		{
			/*
			alert('´ÙÀ½°î ¾øÀ½.'+thisIdx+"/"+this.total_list);
			return;
			*/

			this.Stop();
			return;
		}
	}

	this.Play(thisIdx);
}

function NJ_Prev()
{
	if (!this.is_init)
	{
		return;
	}

	if (!this.is_init)
	{
		return;
	}

	var thisIdx = this.cur_list_idx - 1;

	if (thisIdx < 0)
	{
		if (this.auto_next)
		{
			thisIdx = this.total_list - 1;
		}
		else
		{
			/*
			alert('ÀÌÀü°î ¾øÀ½.');
			return;
			*/

			this.Stop();
			return;
		}
	}

	this.Play(thisIdx);
}

function NJ_Add(media_id, title)
{
	this.list_media_id[this.total_list] = media_id;
	this.list_track_title[this.total_list] = title;
	this.total_list++;
}

function NJ_Remove(idx)
{
	for (i=idx; i<this.total_list; i++)
	{
		this.list_media_id[i] = this.list_media_id[i+1];
		this.list_track_title[i] = this.list_track_title[i+1];
	}

	this.total_list--;
}

function NJ_Clear()
{
	this.total_list = 0;
	this.cur_list_idx = 0;
	this.list_media_id = new Array();
	this.list_track_title = new Array();
}

function NJ_PlayCheck()
{
	if (this.oNJID.playstate == this.PLAYSTATE_PLAY)
	{
		if (this.isDemo && this.oNJID.controls.currentPosition > this.demoLimitSec)
		{
			this.oNJID.controls.currentPosition = this.oNJID.currentMedia.duration;
			this.oNJID.controls.play();
			this.oNJID.controls.currentPosition = this.oNJID.currentMedia.duration;
			this.oNJID.controls.play();

			return;
		}
	}

	this.DispPlayTime();
	this.SetTimer();
}

function NJ_SetTimer()
{
	if (this.oTimer == null)
	{
		this.oTimer = setInterval("oNJ.PlayCheck()", 100);
	}
}

function NJ_UnsetTimer()
{
	if (this.oTimer != null)
	{
		clearInterval(this.oTimer);
		this.oTimer = null;
	}
}

function NJ_DisplayTitle()
{
	if (this.disp_title && this.obj_title != null)
	{
		document.getElementById(this.obj_title).innerHTML = "<marquee scrollamount=2 id=hompy2_title>"+this.list_track_title[this.cur_list_idx]+"</marquee>";
	}
}

function NJ_DispPlayTime(init)
{
	if (this.oNJID.playstate != this.PLAYSTATE_PLAY)
	{
		return;
	}

	if (this.disp_curtime && this.obj_curtime != null)
	{
		if (init == null)
		{
			var curPlayTime = this.oNJID.controls.currentPosition;
		}
		else
		{
			var curPlayTime = 0;
		}

		document.getElementById(this.obj_curtime).innerHTML = this.TimeToString(curPlayTime);
	}

	if (this.disp_totaltime && this.obj_totaltime != null)
	{
		var totalPlayTime = 0;

		if (this.isDemo)
		{
			totalPlayTime = this.demoLimitSec;
		}
		/*
		else if (init != null)
		{
			totalPlayTime = 0;
		}
		*/
		else
		{
			totalPlayTime = this.oNJID.currentMedia.duration;
		}

		document.getElementById(this.obj_totaltime).innerHTML = this.TimeToString(totalPlayTime);
	}
}

function NJ_TimeToString(sec)
{
	//var intSec = sec;//Math.round(sec);

	var min = Math.floor(sec / 60);
	var sec = Math.round(sec % 60);

	if (sec < 10)
	{
		sec = "0"+sec;
	}

	return min+":"+sec;
}

function NJ_EventHandler(state)
{
	state = parseInt(state);

	switch(state)
	{
		// ¸ØÃã
		case(1):
			break;

		// ÀÏ½Ã Á¤Áö
		case(2):
			break;

		// ÇÃ·¹ÀÌ
		case(3):
			break;

		// ³ë·¡ ³¡³²
		case(8):
			//alert('end');
			this.Next();
			break;
	}
}


document.write("<SCRIPT LANGUAGE='JavaScript' for='nicejuke' event='playStateChange(newState)'>\noNJ.EventHandler(newState);\n</script>");
document.onkeydown = KeyEventHandler;

function KeyEventHandler()
{
	if (event.keyCode == 27)
	{
		var onj = document.getElementById("nicejuke");

		if (onj != null && onj != "null")
		{
			onj.Stop();
		}
	}
}
