var m_bTimeServerConnected = false;
var CONNECT_MODE_SOCKET = 0;
var CONNECT_MODE_WEB    = 1;
var m_bEnableDebug      = false;
var m_nConnectMode = CONNECT_MODE_SOCKET;
var m_arrObjectList = new Array();
function GetServerObject()	          { var hCtrl = document["TimeServer"]; return hCtrl; }
function GetTimerObject( strName)	  { var hCtrl = document["TimeCounter"+strName]; return hCtrl; }
function CreateServerObject( strPath ){ document.write( "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" width=\"0\" height=\"0\" id=\"TimeServer\" align=\"middle\">	<param name=\"allowScriptAccess\" value=\"sameDomain\" />	<param name=\"allowFullScreen\" value=\"false\" />	<param name=\"movie\" value=\"" + strPath+ "\" /><param name=\"quality\" value=\"high\" /><param name=\"bgcolor\" value=\"#ffffff\" />	<embed src=\""+strPath+"\" quality=\"high\" bgcolor=\"#ffffff\" width=\"0\" height=\"0\" id=\"TimeServer\"  name=\"TimeServer\" align=\"middle\" allowScriptAccess=\"sameDomain\" allowFullScreen=\"false\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />	</object>" );  }
function CreateTimerObject( strPath, strName, strBidSeq, bMini )
{
	var nWidth = 128;
	var nHeight =35;
	if( bMini == "ty1" ) { nWidth = 115; nHeight=26; }
	else if( bMini == "ty2") { nWidth = 70;  nHeight=17; }
	else if( bMini == true) { nWidth = 111;  nHeight=23; }
	else		{ nWidth = 155; nHeight=31; }
	var strObj = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\" width=\""+nWidth+"\" height=\""+nHeight+"\" id=\"TimeCounter"+strName+"\" align=\"middle\">	<param name=\"allowScriptAccess\" value=\"sameDomain\" />	<param name=\"wmode\" value=\"transparent\" /><param name=\"allowFullScreen\" value=\"false\" />	<param name=\"movie\" value=\"" + strPath+ "?FV_SEQ=" + strName + "&FV_BIDSEQ=" + strBidSeq + "\" /><param name=\"quality\" value=\"high\" /><param name=\"bgcolor\" value=\"#ffffff\" />	<embed src=\""+ strPath+ "?FV_SEQ=" + strName + "&FV_BIDSEQ=" + strBidSeq +"\" quality=\"high\" bgcolor=\"#ffffff\" width=\""+nWidth+"\" height=\""+nHeight+"\" id=\"TimeCounter"+strName+"\" name=\"TimeCounter"+strName+"\" align=\"middle\" allowScriptAccess=\"sameDomain\" allowFullScreen=\"false\" wmode=\"transparent\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />	</object>";
	document.write( strObj );

}
// ·ÎÄÃ ¼­¹ö ÃÊ±âÈ­
function OnInitTimerServer()	{ GetServerObject().Connect(); }
// ¼­¹ö Á¢¼Ó ÀÌº¥Æ®
function OnConnectTimerServer() 
{ 
	m_bTimeServerConnected = true; 	
	this.EVENT_OnSocketError		= null;
	this.EVENT_OnSecurityError		= null;
	EVENT_OnConnectTimerServer(); 
	// ¸¸¾à À¥À¸·Î Á¢¼ÓÁßÀÌ¶ó¸é ¸ðµå ÀüÈ¯
	if( m_nConnectMode == CONNECT_MODE_WEB )
	{
		ChangeConnectMode( CONNECT_MODE_SOCKET );
	}
//	this.onbeforeunload = OnChangePage;
}

function OnChangePage()
{
//	GetServerObject().Close();
//	StopTimers();
}

// Á¢¼Ó ÇÚµé·¯
function EVENT_OnConnectTimerServer() {}
// ¼­¹ö Á¢¼Ó ÇØÁ¦ ÀÌº¥Æ® 
function OnCloseTimerServer()   { m_bTimeServerConnected = false; EVENT_OnCloseTimerServer();  }
// ÇØÁ¦ ÇÚµé·¯
function EVENT_OnCloseTimerServer() {}
// µ¥ÀÌÅÍ ¿äÃ»
function CLIENT_GetTimeInformation( nBidSeq, nPrice )
{	
	if( !m_bTimeServerConnected ) return;
	GetServerObject().GetTimeInformation( nBidSeq , nPrice );
}
// µ¥ÀÌÅÍ ¹ÝÈ¯
function OnTimeInformation( nBidSeq, nExpireTime, nCurrentTime, nFinalPrice, nMicroSec )
{
	var nLen = m_arrObjectList.length;
	
	for( var i = 0; i < nLen; i++ )
	{
		var strCurSeq  = m_arrObjectList[i][1];
		var strCurName = m_arrObjectList[i][0];
		if(  strCurSeq == nBidSeq ) GetTimerObject( strCurName ).OnLoadTimeData( nBidSeq, nExpireTime, nCurrentTime, nFinalPrice, nMicroSec );
	}
}

// ¸®½ºÆ® µ¥ÀÌÅÍ
function OnBidderList(  nSeq, nIndex, m_nPrice, m_strID,  m_strIP )
{
	var nLen = m_arrObjectList.length;
	EVENT_OnBidderData(  nSeq, nIndex, m_nPrice, m_strID,  m_strIP );
}

function EVENT_OnBidderData(  nBidSeq, nIndex, nPrice, strID,  strIP ) {}


function ENABLE_DEBUG()
{
	m_bEnableDebug = true;
}

// µð¹ö±ë
function SetDebug( strText )
{
	if( m_bEnableDebug )
	{
		document.getElementById("wndTest1").value += (strText);
		document.getElementById("wndTest1").value += "\n";
	}
}

// °³º° Å¸ÀÌ¸Ó ÃÊ±âÈ­½Ã ¹è¿­ Á¤¸®
function OnInitTimer( strID, strSeq )
{	
	var hArray = Array( strID, strSeq );
	m_arrObjectList.push( hArray );
	EVENT_OnInitTimerCounter( strID );
	GetTimerObject( strID ).StartTimer();
}

// ÃÊ±âÈ­ ÀÌº¥Æ® ÇÚµé·¯
function EVENT_OnInitTimerCounter( strID ) { }

// ½Ã°£ º¯°æ½Ã ÀÌº¥Æ®
function OnChangeTimerStatus( strFV, strBidSeq, nUnique, nConnectMode ){ 	EVENT_OnChangeTimerStatus(strFV, strBidSeq, nUnique, nConnectMode );  }
// ½Ã°£ º¯°æ½Ã ÀÌº¥Æ® ÇÚµé·¯
function EVENT_OnChangeTimerStatus( strFV, strBidSeq, nUnique, nConnectMode  ) {}
function OnExpireTime( strID, strBidSeq, nPrice   )			{  EVENT_OnExpireTime( strID, strBidSeq, nPrice   ); }
function EVENT_OnExpireTime( strID, strBidSeq, nPrice   )	{ }

// ¿¡·¯Ã³¸®
function OnSocketError()		{ ChangeConnectMode( CONNECT_MODE_WEB ); EVENT_OnSocketError(); }
function EVENT_OnSocketError()	{ }
function OnSecurityError()		{ ChangeConnectMode( CONNECT_MODE_WEB ); EVENT_OnSecurityError(); }
function EVENT_OnSecurityError(){ }
function OnConnectRetryFail()		{ ChangeConnectMode( CONNECT_MODE_WEB );  EVENT_OnConnectRetryFail(); }
function EVENT_OnConnectRetryFail() { }

function ChangeConnectMode( nMode )
{
	m_nConnectMode = nMode;
//	SetDebug( "Mode Change : " + m_nConnectMode );
	var nLen = m_arrObjectList.length;
	for( var i = 0; i < nLen; i++ )
	{
		var strCurSeq  = m_arrObjectList[i][1];
		var strCurName = m_arrObjectList[i][0];
		GetTimerObject( strCurName ).ChangeConnectMode( nMode );
	}
}


// ¿¡·¯ ÀÌº¥Æ® ¼±ÇàÃ³¸®
function PreTranslateErrorEvent()
{
	this.EVENT_OnCloseTimerServer   = null;
	this.EVENT_OnSocketError		= null;
	this.EVENT_OnSecurityError		= null;
	StopTimers();
}

// Á¾·á
function StopTimers()
{
	var nLen = m_arrObjectList.length;
	for( var i = 0; i < nLen; i++ )
	{
		var strCurSeq  = m_arrObjectList[i][1];
		var strCurName = m_arrObjectList[i][0];
		GetTimerObject( strCurName ).StopTimer();
	}
}


