var failover = null;
var p2pserver = null;   
var aba_ready = false;	
var old_mediaport = null;	//¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ®¿Í Åë½ÅÇÑ ¹Ìµð¾îÆ÷Æ®
var g_fs_do_unicast = false;  //failover Ã³¸®µÇ¸é true

var tmo_checkAbaState = null; //»õ·Î¿î ½ºÆ®¸²À» È£ÃâÇÒ ¶§ Å¸ÀÌ¸Ó ÁßÁö
var tmo_checkAbaPlayState = null; //»õ·Î¿î ½ºÆ®¸²À» È£ÃâÇÒ ¶§ Å¸ÀÌ¸Ó ÁßÁö
var tmo_checkRetryState = null; //»õ·Î¿î ½ºÆ®¸²À» È£ÃâÇÒ ¶§ Å¸ÀÌ¸Ó ÁßÁö

function futurestream_start_abacast(
name, // ½ºÆ®¸² ÀÌ¸§
p2pserver_url, // p2p ¼­¹ö url
failover_url // p2p »ç¿ë ºÒ°¡½Ã Á¢¼ÓÇÒ ½ºÆ®¸²¼­¹ö url
)
{
	if(tmo_checkAbaState != null)
	{
		clearTimeout(tmo_checkAbaState);
		
	}
	if(tmo_checkAbaPlayState != null)
	{
		clearTimeout(tmo_checkAbaPlayState);
	}
	if(tmo_checkRetryState != null)
	{
		clearTimeout(tmo_checkRetryState);
		
	}
	failover = failover_url;
	p2pserver = p2pserver_url;
	aba_ready = aba_IsClientReady('futurestream');  //¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® ¼³Ä¡ È®ÀÎ. true¸é ¼³Ä¡µÈ °ÍÀÓ.
	if (aba_ready)
	{
		if(aba_is_ie){
  			g_abci_rc.InstanceQualifier = name;
  		}
  		g_use_wmp7 = true;  //WMP 7 »ç¿ë
  		g_using_wmp7 = true;
  		//aba_EmbedPlayer(false,false, 320, 240+50);  //¹Ìµð¾î ÇÃ·¹ÀÌ¾î »ý¼º. (showcontrol, showstatus, player_width, player_height)
  		//aba_MediaPlayer.EnableContextMenu = true; //¹Ìµð¾î ÇÃ·¹ÀÌ¾î ¼Ó¼º ¼³Á¤
  		//aba_MediaPlayer.uiMode = "mini";
  		//aba_MediaPlayer.stretchtofit = true;
  		
		GoAbacast(p2pserver_url, '', true); //¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® ½ÇÇà, ¹Ìµð¾î ÇÃ·¹ÀÌ¾î ¿¬°á
  		tmo_checkAbaState = setTimeout('_checkAbaState()', 15000);  //¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® »óÅÂ È®ÀÎ  
	}
}

g_b_end_retry = false; // trueÀÌ¸é ´õÀÌ»ó Àç½ÃµµÇÏÁö ¾Ê´Â´Ù.
//¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® »óÅÂ°¡ ÇÃ·¹ÀÌ °¡´ÉÇÏÁö ¾ÊÀ¸¸é failover Ã³¸®
function _checkAbaState()
{
	var state = g_abci_rc.ClientState;
	if(!(state == 3 || state == 4)) //ÇÃ·¹ÀÌ ÁØºñ ¾ÈµÊ
	{ 
		if(g_b_end_retry)
		{
			// 15ÃÊ°¡ Áö³µ´Âµ¥µµ ÇÃ·¹ÀÌ °¡´ÉÇÑ »óÅÂ°¡ ¾Æ´Ñ °æ¿ì´Â source·Î ¿¬°áÇÏµµ·Ï ¼ÂÆÃ
			//alert('DEBUG: failover url·Î ¿¬°áÇÏµµ·Ï ¼ÂÆÃ');
			g_fs_do_unicast = true;
			aba_MediaPlayer.url = failover;
			aba_MediaPlayer.Controls.Play();
		}
		else
		{
			g_b_end_retry = true; 
			GoAbacast(p2pserver, '', true);
			tmo_checkAbaState = setTimeout ('_checkAbaState()', 8000);
		}
	}
	else
	{
		//alert('¾Æ¹Ù¼­¹ö¿¡ ¿¬°á');
		old_mediaport = g_abci_rc.MediaPort;
		tmo_checkAbaPlayState = setTimeout('_checkAbaPlayState()', 3000);
	}
}

//ÇÃ·¹ÀÌÁß ¼­¹ö ¿¬°á ²÷±æ °æ¿ì ¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® ´Ù½Ã ½ÇÇà
function _checkAbaPlayState()
{
	if(g_fs_do_unicast)
	{
		return;
	}

	if(old_mediaport != g_abci_rc.MediaPort)  //¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ®°¡ ¼­¹ö¿¡ Àç¿¬°á Áß
	{
		_checkRetryState();
	}
	else
	{
		tmo_checkAbaPlayState = setTimeout('_checkAbaPlayState()', 3000);
	}
}

function futurestream_terminate_abacast()
{
	if(tmo_checkAbaState != null)
	{
		clearTimeout(tmo_checkAbaState);
	}
	if(tmo_checkAbaPlayState != null)
	{
		clearTimeout(tmo_checkAbaPlayState);
	}
	if(tmo_checkRetryState != null)
	{
		clearTimeout(tmo_checkRetryState);		
	}
	
	if (aba_ready)
	{
		GoAbacast('210.122.109.133:80/futurestream-mnet-300-stop', '', true); //¾Æ¹ÙÅ¬¶óÀÌ¾ðÆ® Á¾·á
	}
}

g_retry_count=0;
function _checkRetryState()
{
	var state = g_abci_rc.ClientState;
	if(state == 3 || state == 4)  //¼­¹ö Àç¿¬°á ¼º°ø
	{
	  aba_MediaPlayer.url = 'http://127.0.0.1:'+g_abci_rc.MediaPort;
	  aba_MediaPlayer.Controls.Play();
	  old_mediaport = g_abci_rc.MediaPort;
	  tmo_checkAbaPlayState = setTimeout('_checkAbaPlayState()', 3000);
	  g_retry_count=0;
	}
	else
	{
		if(g_retry_count<8)
		{
		  tmo_checkRetryState = setTimeout('_checkRetryState()', 1000);
		  g_retry_count++;
		}
		else  //¼­¹ö Àç¿¬°á ½ÇÆÐ, failover Ã³¸®
		{
		  g_fs_do_unicast = true;
		  aba_MediaPlayer.url = failover;
		  aba_MediaPlayer.Controls.Play();
		  g_retry_count=0;
		}
	}
}

function _waitForUpdate() 
{
	if (aba_IsClientInstalled())
	{
		if (aba_is_ie)
		{
	  		g_dirty_version = true;
		}
	}
  
	if (aba_IsClientReady('futurestream')) 
	{
	  version = g_version.substring(5, g_version.length);
	  if(version >= 8)
	  {
  		document.location.reload();
	  	return;
	  }
	}
	
	setTimeout ("_waitForUpdate() ", 3000);
}

function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}