function WrtieGuildMemberOnlineCount( oidRealUser_Group, strLabelID )
{
	var strGuildKey = NXUtil.Dec2Hex( oidRealUser_Group );
	GuildCommunicator.Guild.Monitor( strGuildKey );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	document.all[ strLabelID ].innerHTML = ( guild_info == null ) ? 0 : guild_info.aOnlineGuildMembers.GetSize();
}

function WrtieGuildMemberOnlineCount_Handler( subcode, oidRealUser_Group, strLabelID )
{
	WrtieGuildMemberOnlineCount( oidRealUser_Group, strLabelID );
}

function WrtieGuildMemberOnlineCount_Handler_Login( oidRealUser_Group, strLabelID )
{
	WrtieGuildMemberOnlineCount( oidRealUser_Group, strLabelID );
}

function GetGuildMemberOnlineCount( nSubCode, oidRealUser_Group )
{
	var strGuildKey = NXUtil.Dec2Hex( oidRealUser_Group );

	GuildCommunicator.Guild.Monitor( strGuildKey );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	return ( guild_info == null ) ? 0 : guild_info.aOnlineGuildMembers.GetSize();
}

function IsOnLineGuildMember( oidRealUser_Group, oidUser )
{
	var strGuildKey = NXUtil.Dec2Hex( oidRealUser_Group );

	var isOnLine = false;
	GuildCommunicator.Guild.Monitor( strGuildKey );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info != null )
	{
		var members = _Col2Array( guild_info.aOnlineGuildMembers );
		for( var i in members )
		{
			if( members[i].GetOID() == oidUser )
			{
				isOnLine = true;
				break;
			}
		}
	}
	return isOnLine;
}

function IsOnLineGuildMember2( oidRealUser_Group, strNickName )
{
	var strGuildKey = NXUtil.Dec2Hex( oidRealUser_Group );
	var nGameCode = GameCode.FromGuildKey( strGuildKey );

	GuildCommunicator.Guild.Monitor( strGuildKey );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info != null )
	{
		var members = _Col2Array( guild_info.aOnlineGuildMembers );
		for( var i in members )
		{
			var tempNickName = ( nGameCode == GameCode.NxCom ) ? members[i].szLoginId : members[i].szNickName;
			if( strNickName == tempNickName )
			{
				return true;
				break;
			}
		}
	}
	
	return false;
}

function GuildOnlineMember_List( maskGameCode_Group, oidRealUser_Group, nPrintOption, strMyVirtualUser )
{		
	var strGuildKey = GuildActiveX.oidRealUser_Group;
	this.maskGameCode_Group = maskGameCode_Group;
	this.oidRealUser_Group = oidRealUser_Group;
	this.printOption = +nPrintOption;	
	
	var strRealUser_Group = NXUtil.Dec2Hex( oidRealUser_Group );
	var strUser_Group = strRealUser_Group.substr( strRealUser_Group.length - 8 );
	

	this.oidUser_Group = GuildCommunicator.Util.ConvertRadix( strUser_Group, 16, 10, 0 );

	this.GetGuildMemberOnLineCount = GuildOnlineMember_GetGuildMemberOnLineCount;
	this.Write = GuildOnlineMember_Write;
	this.GameOnlineWrite = GameOnlineMember_Write;
	this.GetString = GuildOnlineMember_GetString;
	this.GetGameOnline = GameOnlineMember_GetString;
	
	this.GetGameItem = GameOnlineMember_GetItem_Common;
	this.GetItem = GuildOnlineMember_GetItem_Common;
	this.GetHeader = GuildOnlineMember_GetHeader_Common;
	this.GetFooter = GuildOnlineMember_GetFooter_Common;
	this.strMyVirtualUser = strMyVirtualUser;
}

// nPrintOption ( 0: don't print my info, 1: print my info )
// modify by you46(2005.12.09)
function GuildOnlineMember( maskGameCode_Group, oidRealUser_Group, nPrintOption, strMyVirtualUser )
{

	var strGuildKey = GuildActiveX.oidRealUser_Group;
	this.maskGameCode_Group = maskGameCode_Group;
	this.oidRealUser_Group = oidRealUser_Group;
	this.printOption = +nPrintOption;
	
	var strRealUser_Group = NXUtil.Dec2Hex( oidRealUser_Group );
	var strUser_Group = strRealUser_Group.substr( strRealUser_Group.length - 8 );
	

	this.oidUser_Group = GuildCommunicator.Util.ConvertRadix( strUser_Group, 16, 10, 0 );

	this.GetGuildMemberOnLineCount = GuildOnlineMember_GetGuildMemberOnLineCount;
	this.Write = GuildOnlineMember_Write;
	this.GameOnlineWrite = GameOnlineMember_Write;
	this.GetString = GuildOnlineMember_GetString;
	this.GetGameOnline = GameOnlineMember_GetString;
	

	if ( maskGameCode_Group == GameCode.WarrockGuild )
	{
		this.GetItem = GuildOnlineMember_GetItem_ClanChat;
		this.GetHeader = GuildOnlineMember_GetHeader_ClanChat;
		this.GetFooter = GuildOnlineMember_GetFooter_ClanChat;
	}
	else if ( maskGameCode_Group == GameCode.KartGuild )
	{
		this.GetItem = GuildOnlineMember_GetItem_KartGuild;
		this.GetHeader = GuildOnlineMember_GetHeader_KartGuild;
		this.GetFooter = GuildOnlineMember_GetFooter_KartGuild;
	}
	else if ( maskGameCode_Group != GameCode.ZeraGuild )
	{
		this.GetItem = GuildOnlineMember_GetItem_GuildChat;
		this.GetHeader = GuildOnlineMember_GetHeader_GuildChat;
		this.GetFooter = GuildOnlineMember_GetFooter_GuildChat;
	}
	else
	{
		this.GetItem = GuildOnlineMember_GetItem_Common;
		this.GetHeader = GuildOnlineMember_GetHeader_Common;
		this.GetFooter = GuildOnlineMember_GetFooter_Common;
	}
	this.strMyVirtualUser = strMyVirtualUser;
}

function GuildOnlineMember_GetGuildMemberOnLineCount()
{
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );

	GuildCommunicator.Guild.Monitor( strGuildKey );
	
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	return ( guild_info == null ) ? 0 : guild_info.aOnlineGuildMembers.GetSize();
}

function GuildOnlineMember_GetString()
{
	var strValue = "";
	var GuildMember_GetLoginID;
	var GuildMember_GetIDCode;
	var GuildMember_GetNickName;
	var GuildMember_GetOidUser;
	
	var n4GuildMemberOnLineCount = this.GetGuildMemberOnLineCount();
	strValue += this.GetHeader();
	for( var i = 0; i < n4GuildMemberOnLineCount ; i++ )
	{
		strValue += this.GetItem( i, n4GuildMemberOnLineCount );
	}
	strValue += this.GetFooter();
	
	return strValue;
}

function GameOnlineMember_GetString()
{
	var strValue = "";
	var GuildMember_GetLoginID;
	var GuildMember_GetIDCode;
	var GuildMember_GetNickName;
	var GuildMember_GetOidUser;

	var n4GuildMemberOnLineCount = this.GetGuildMemberOnLineCount();
	strValue += this.GetHeader();
	for( var i = 0; i < n4GuildMemberOnLineCount ; i++ )
	{
		
		strValue += this.GetGameItem( i, n4GuildMemberOnLineCount );
	}
	strValue += this.GetFooter();
	
	return strValue;
}

function GuildOnlineMember_Write( strLabelID )
{	
	var objLabel = eval( "document.all." + strLabelID );
	objLabel.innerHTML = this.GetString();
}

function GameOnlineMember_Write( strLabelID )
{
	var objLabel = eval( "document.all." + strLabelID );
	objLabel.innerHTML = this.GetGameOnline();
}

function GuildOnlineMember_GetHeader_WarRockClan()
{
	return "";
}

function GuildOnlineMember_GetItem_WarRockClan( i, n4GuildMemberOnLineCount )
{
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";

	var member_info = guild_info.aOnlineGuildMembers.GetAt(i);
	
	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetIDCode = member_info.uIdCode;
	GuildMember_GetNickName = member_info.szNickName;
	GuildMember_GetOidUser = member_info.GetOID();
	
	GuildMember_GetLoginID = "";

	var nUserType = 3;
	var strValue = "";
	
	if ( this.printOption == 0 )
	{
		if ( GuildCommunicator.MyInfo.GetUserInfo().szLoginID != GuildMember_GetLoginID )
		{
			strValue += "<b style='cursor:hand;' onclick=\"F_WarrockMenuDiff( " + GuildMember_GetOidUser + ", '" + GuildMember_GetLoginID + "', '" + GuildMember_GetNickName + "' );\">" + GuildMember_GetNickName + "</b>";
			if( i < n4GuildMemberOnLineCount - 1 )
				strValue += " | ";
		}
	}
	else
	{
		strValue += "<b style='cursor:hand;' onclick=\"F_WarrockMenuDiff( " + GuildMember_GetOidUser + ", '" + GuildMember_GetLoginID + "', '" + GuildMember_GetNickName + "' );\">" + GuildMember_GetNickName + "</b>";
		if( i < n4GuildMemberOnLineCount - 1 )
			strValue += " | ";
	}
	
	return strValue;
}

function GuildOnlineMember_GetFooter_WarRockClan()
{
	return "";
}

// ***** added by you46 ( 2005.11.15 ) | Start
function GuildOnlineMember_GetHeader_GuildChat()
{
	return "";
}

function GuildOnlineMember_GetItem_GuildChat( i, n4GuildMemberOnLineCount )
{
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";

	var member_info = guild_info.aOnlineGuildMembers.GetAt(i);

	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetIDCode = member_info.uIdCode;
	GuildMember_GetNickName = member_info.szNickName;
	GuildMember_GetOidUser = member_info.GetOID();

	var nUserType = 3;
	var strValue = "";

	if ( this.printOption == 0 )
	{
		if ( GuildCommunicator.MyInfo.GetUserInfo().szLoginID != GuildMember_GetLoginID )
		{
			if ( this.maskGameCode_Group == GameCode.NxcomGuild )
			{
				strValue += "<input type='checkbox' id='chkID' value='" + GuildMember_GetLoginID + "'>" + GuildMember_GetNickName + "<br>";
			} else {
				strValue += "<input type='checkbox' id='chkID' value='" + GuildMember_GetNickName + "'>" + GuildMember_GetNickName + "<br>";
			}
		}
	}
	else
	{
		//strValue += "<input type='checkbox' id='chkID' value='" + GuildMember_GetLoginID + "'>" + GuildMember_GetNickName + "<br>";

		if ( this.maskGameCode_Group == GameCode.NxcomGuild )
		{
			strValue += "<input type='checkbox' id='chkID' value='" + GuildMember_GetLoginID + "'>" + GuildMember_GetNickName + "<br>";
		} else {
			strValue += "<input type='checkbox' id='chkID' value='" + GuildMember_GetNickName + "'>" + GuildMember_GetNickName + "<br>";
		}
	}
	return strValue;
}

function GuildOnlineMember_GetFooter_GuildChat()
{
	return "";
}
// ***** added by you46 ( 2005.11.15 ) | End

// ***** added by you46 ( 2005.11.21 ) | Start
function GuildOnlineMember_GetHeader_ClanChat()
{
	return "";
}

function GuildOnlineMember_GetItem_ClanChat( i, n4GuildMemberOnLineCount )
{
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";

	var member_info = guild_info.aOnlineGuildMembers.GetAt(i);

	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetNickName = member_info.szNickName;

	var nUserType = 3;
	var strValue = "";
	if ( this.printOption == 0 )
	{
		if ( GuildCommunicator.MyInfo.GetUserInfo().szLoginID != GuildMember_GetLoginID )
		{
			strValue += GuildMember_GetNickName;

			if( i < n4GuildMemberOnLineCount - 1 )
				strValue += ", ";
		}
	}
	else
	{
		strValue += GuildMember_GetNickName;

		if( i < n4GuildMemberOnLineCount - 1 )
			strValue += ", ";
	}
	return strValue;
}

function GuildOnlineMember_GetFooter_ClanChat()
{
	return "";
}
// ***** added by you46 ( 2005.11.21 ) | End

function GuildOnlineMember_GetHeader_KartGuild()
{
	return "<table border='0' cellpadding='0' cellspacing='0' width='148'> \
			<col width='112'> \
			<col width='36' align='right'>";
}

function GuildOnlineMember_GetItem_KartGuild( i, n4GuildMemberOnLineCount )
{
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";

	var member_info = guild_info.aOnlineGuildMembers.GetAt(i);

	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetIDCode = member_info.uIdCode;
	GuildMember_GetNickName = member_info.szNickName;
	GuildMember_GetOidUser = member_info.GetOID();

	var n1ImgIndex = (i % 6) + 1;
	var strValue = "";
	
	if ( GuildCommunicator.MyInfo.GetUserInfo().szLoginID == GuildMember_GetLoginID )
	{
		strValue += "<tr height='19'> \
					<td class='fc-bl03'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/char_s_0" + n1ImgIndex + ".gif' width='13' height='14' align='absmiddle'> " + GuildMember_GetNickName + "</td> \
					<td> \
					<a href='#'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_info.gif' width='5' height='13' alt='³»Â÷°í' onclick='GnxKartUserPopupExecute(this); return false;' nType='1' strGameID='" + GuildMember_GetNickName + "'></a> \
					<img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_letter.gif' width='11' height='13' alt='ÂÊÁö'> \
					<img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_messenger.gif' width='12' height='13' alt='´ëÈ­'> \
					</td> \
				</tr>";
	}
	else
	{
		strValue += "<tr height='19'> \
						<td class='fc-bl03'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/char_s_0" + n1ImgIndex + ".gif' width='13' height='14' align='absmiddle'> " + GuildMember_GetNickName + "</td> \
						<td> \
						<a href='#'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_info.gif' width='5' height='13' alt='³»Â÷°í' onclick='GnxKartUserPopupExecute(this); return false;' nType='1' strGameID='" + GuildMember_GetNickName + "'></a> \
						<a href='#'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_letter.gif' width='11' height='13' alt='ÂÊÁö' onclick='GnxKartUserPopupExecute(this); return false;' nType='6'></a> \
						<a href='#'><img src='http://s.nx.com/s2/game/kart/kart/image/icon/ico_profile_messenger.gif' width='12' height='13' alt='´ëÈ­' onclick='GnxKartUserPopupExecute(this); return false;' nType='7'></a> \
						</td> \
					</tr>";
	}
	
	return strValue;
}

function GuildOnlineMember_GetFooter_KartGuild()
{
	return "<tr> \
				<td height='3'></td> \
			</tr> \
			</table>";
}

function GuildOnlineMember_GetHeader_Common()
{
	//var strValue = "<table cellpadding='1' cellspacing='0' border='0' width='135'>";
	var strValue = "";
	return strValue;
}

function GuildOnlineMember_GetItem_Common( i, n4GuildMemberOnLineCount )
{
	var maskGameCode = "";
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";
	
	var member_info = guild_info.aOnlineGuildMembers.GetAt(i);
	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetIDCode = member_info.uIdCode;
	GuildMember_GetNickName = member_info.szNickName;
	GuildMember_GetOidUser = member_info.GetOID();
	GuildMember_GetGameLevel = member_info.uGameLevel;
	GuildMember_GetLoginID = "";		
	var strValue = "";
	strValue += "<tr><td class='fc-gr02'>";
	if( this.maskGameCode_Group == GameCode.KartGuild )
		strValue += "<img src='http://s.nx.com/s2/game/kart/kart/hands/hand_" + ( ( ( GuildMember_GetGameLevel + "" ).length == 1 ) ? "0" + GuildMember_GetGameLevel : GuildMember_GetGameLevel ) + "_23.gif' width='23' height='23' align='absmiddle'>";
	
	var strCharacterName = GuildMember_GetNickName;
	var strServerName = '';
	if ( this.maskGameCode_Group == GameCode.KartGuild )
		maskGameCode = GameCode.Kart;
	else if ( this.maskGameCode_Group == GameCode.WarrockGuild )
		maskGameCode = GameCode.Warrock;
	else if ( this.maskGameCode_Group == GameCode.CombatGuild )
		maskGameCode = GameCode.Combat;
	else if ( this.maskGameCode_Group == GameCode.SlapshotGuild )
		maskGameCode = GameCode.Slapshot;
	else if ( this.maskGameCode_Group == GameCode.CSOGuild )
		maskGameCode = GameCode.CSO;	
	else if ( this.maskGameCode_Group == GameCode.BFGuild )
		maskGameCode = GameCode.BF;
	else if ( this.maskGameCode_Group == GameCode.HeroesGuild )	
	{
		maskGameCode = 1;		
		strCharacterName = GuildMember_GetNickName.split(']')[1];
		strServerName = GuildMember_GetNickName.split(']')[0].split('[')[1];		
	}
	else	
		maskGameCode = GameCode.NxCom;
	
	strValue = "<li class='OnlineGMember'>";
	//strValue += "<a href='#' onclick=\"GnxUserMenu.setEvent(event);GnxUserMenu.Show( '" + GuildMember_GetOidUser + "', '" +GuildMember_GetLoginID +"', '" +maskGameCode + "', '" +trimAll( strCharacterName ) + "', '" +this.maskGameCode_Group + "', '" +this.oidUser_Group + "', '" +this.oidRealUser_Group +"', '" +strServerName +"', '" +GuildMember_GetNickName +"' ); return false;\">" + GuildMember_GetNickName + "</a>"; //</td></tr>";
	strValue += "<a href='#' onclick=\"GnxUserMenu.setEvent(event);GnxUserMenu.Show( '" + GuildMember_GetOidUser + "', '" +GuildMember_GetLoginID +"', '" +maskGameCode + "', '" +trimAll( strCharacterName ) + "', '" +this.maskGameCode_Group + "', '" +this.oidUser_Group + "', '" +this.oidRealUser_Group +"', '" +strServerName +"', '" +this.strMyVirtualUser+"' ); return false;\">" + GuildMember_GetNickName + "</a>"; //</td></tr>";
	strValue += "</li>";	
	return strValue;
}

function GameOnlineMember_GetItem_Common( i, n4GuildMemberOnLineCount )
{
	var maskGameCode = "";
	var strGuildKey = NXUtil.Dec2Hex( this.oidRealUser_Group );
	var guild_info = GuildCommunicator.Guild.GetOnlineInfo( strGuildKey );
	
	if ( guild_info == null ) return "";

	var member_info = guild_info.aOnlineGuildMembers.GetCopyAt(i);
	if ( !member_info.bIsGameOnline )
		return "";

	GuildMember_GetLoginID = member_info.szLoginId;
	GuildMember_GetIDCode = member_info.uIdCode;
	GuildMember_GetNickName = member_info.szNickName;
	GuildMember_GetOidUser = member_info.GetOID();
	GuildMember_GetGameLevel = member_info.uGameLevel;
	GuildMember_GetLoginID = "";
	var strValue = "";
	strValue += "<tr><td class='fc-gr02'>";
	if( this.maskGameCode_Group == GameCode.KartGuild )
		strValue += "<img src='http://s.nx.com/s2/game/kart/kart/hands/hand_" + ( ( ( GuildMember_GetGameLevel + "" ).length == 1 ) ? "0" + GuildMember_GetGameLevel : GuildMember_GetGameLevel ) + "_23.gif' width='23' height='23' align='absmiddle'>";

	if ( this.maskGameCode_Group == GameCode.KartGuild )
		maskGameCode = GameCode.Kart;
	else if ( this.maskGameCode_Group == GameCode.WarrockGuild )
		maskGameCode = GameCode.Warrock;
	else if ( this.maskGameCode_Group == GameCode.CSOGuild )
		maskGameCode = GameCode.CSO;		
	else if ( this.maskGameCode_Group == GameCode.HeroesGuild )
		maskGameCode = 1	
	else
		maskGameCode = GameCode.NxCom;	
		
	strValue = "<li class='OnlineGMember'>";
	strValue += "<a href='#' onclick=\"GnxUserMenu.setEvent(event);GnxUserMenu.Show( '" + GuildMember_GetOidUser + "', '', '" +maskGameCode + "', '" +GuildMember_GetNickName + "', '" +this.maskGameCode_Group + "', '" +this.oidUser_Group + "', '" +this.oidRealUser_Group +"', '', '' ); return false;\">" + GuildMember_GetNickName + "</a>"; //</td></tr>";
	strValue += "</li>";

	return strValue;
}


function GuildOnlineMember_GetFooter_Common()
{
	//var strValue = "</table>";
	var strValue = "";
	return strValue;
}
