// Hangame Avatar Display Function
// 2004-02-04, CSH
// 2004-08-02, CSH Version2

// global variable for avatar item
// be careful not to duplicate
var _avShowItem;

// layer info
var av_garrLayerStructure;
var av_gnLayerStructure;
var av_gnLayerCount = 31;

// basic avatar id
var av_gsInitBasicAvIDM;
var av_gsInitBasicAvIDF;
var av_gsBasicAvCodeList;

// initialized flag
var av_gbInit = false;

// to store all the avitems
var av_garrAvItem = new Array();

// user's avatar id 
var av_avatarId;

// init function
function av_initVariables()
{
	// same level of layers are not compatible.
	// ( layer no,  layer header,
	// not compatible layer headers other than self when wearing on (only in master layer),
	// layer headers to be restored other than self when wearing off (only in master layer),
	// is master, 
	// has image, 
	// default code

	av_garrLayerStructure = new Array (
		new av_LSItem(0,"A4","D?"),
		new av_LSItem(1,"B1","D?"),
		new av_LSItem(2,"B2","D?"),
		new av_LSItem(3,"B3","D?"),
		new av_LSItem(4,"B4","D?"),
		new av_LSItem(5,"A3b","","",false),
		new av_LSItem(6,"PNb","","",false),
		new av_LSItem(6,"PAb","","",false),
		new av_LSItem(6,"PBb","","",false),
		new av_LSItem(6,"PCb","","",false),
		new av_LSItem(6,"PDb","","",false),
		new av_LSItem(6,"PEb","","",false),
		new av_LSItem(6,"P1b","","",false),
		new av_LSItem(6,"SAc","","",false),
		new av_LSItem(7,"LC","OC@S?@D?","",true,true,"LC?001"),
		new av_LSItem(8,"HC","OC@S?@D?","",true,true,"HC?001"),
		new av_LSItem(9,"OC","LC@HC@S?@D?","LC@HC"),
		new av_LSItem(9,"SAb","","",false),
		new av_LSItem(10,"FN","SB@SC@D?","",true,true,"FN?001A"),
		new av_LSItem(10,"FA","SB@SC@D?","",true,true,"FN?001A"),
		new av_LSItem(10,"FB","SB@SC@D?","",true,true,"FN?001A"),
		new av_LSItem(11,"PNa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"PAa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"PBa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"PCa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"PDa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"PEa","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"P1a","S?@D?","",true,true,"PN?001"),
		new av_LSItem(11,"SAa","","",false),
		new av_LSItem(12,"H1","D?"),
		new av_LSItem(13,"J1","D?"),
		new av_LSItem(14,"J2","D?"),
		new av_LSItem(15,"J3","D?"),
		new av_LSItem(16,"J4","D?"),
		new av_LSItem(17,"SA","LC@HC@OC@P?@S?@D?","LC@HC@PN",true,false),
		new av_LSItem(17,"SB","LC@HC@OC@F?@P?@H1@J?@S?@D?","LC@HC@FN@PN"),
		new av_LSItem(17,"SC","LC@HC@OC@F?@P?@H1@J?@S?@D?","LC@HC@FN@PN"),
		new av_LSItem(18,"A3a","D?"),
		new av_LSItem(19,"M1","D?"),
		new av_LSItem(20,"A2","D?"),
		new av_LSItem(21,"A1","D?"),
		new av_LSItem(22,"K1","D?"),
		new av_LSItem(23,"K2","D?"),
		new av_LSItem(24,"K3","D?"),
		new av_LSItem(25,"K4","D?"),
		new av_LSItem(26,"K5","D?"),
		new av_LSItem(27,"K6","D?"),
		new av_LSItem(28,"D1","A?@B?@P?@F?@LC@HC@OC@J?@S?@M?@K?","LC@HC@FN@PN"),
		new av_LSItem(29,"T1"),
		new av_LSItem(30,"T2")
	);
	av_gnLayerStructure = av_garrLayerStructure.length;

	av_gsInitBasicAvIDM = "LCM001_HCM001_FNM001A_PNM001";
	av_gsInitBasicAvIDF = "LCF001_HCF001_FNF001A_PNF001";

	av_gsBasicAvCodeList = "LCM001_HCM001_FNM001_PNM001_LCF001_HCF001_FNF001_PNF001";
	
	// to call only one time
	av_gbInit = true;
	
}

function av_LSItem(nLayerNo,sLayerHeader,sLayerHeadersNotCompatible,sLayerHeadersToBeRestored, bIsMaster,bHasImage, sDefaultCodeWild)
{
	// LSItem »ý¼ºÀÚ
	
	this.layerNo = nLayerNo;
	this.layerHeader = sLayerHeader;
	this.layerHeadersNotCompatible = (sLayerHeadersNotCompatible == null) ? "" : sLayerHeadersNotCompatible;
	this.layerHeadersToBeRestored = (sLayerHeadersToBeRestored == null) ? "" : sLayerHeadersToBeRestored;
	this.isMaster = (bIsMaster == null) ? true : bIsMaster;
	this.hasImage = (bHasImage == null) ? true : bHasImage;
	this.defaultCode = (sDefaultCodeWild == null) ? "" : sDefaultCodeWild;
}


/////////////////////////////////////////
// Wearing Related Functions
/////////////////////////////////////////



// bCheckCompatibility : wear off incompatible layers when true
function av_insertLayer(sAvCode,bCheckCompatibility,uaiCode)
{
	var arrLayerInfo = this.arrLayerInfo;
	
	if ( bCheckCompatibility )
		this.removeNotCompatibleLayerWearing(sAvCode);

	for ( var i = 0 ; i < av_gnLayerStructure ; i++ )
	{
		if ( av_isEqualHeader(av_garrLayerStructure[i].layerHeader,sAvCode)  )
		{
			arrLayerInfo[av_garrLayerStructure[i].layerNo].avCode = sAvCode;
			arrLayerInfo[av_garrLayerStructure[i].layerNo].suffix = av_garrLayerStructure[i].layerHeader.substring(2,3);
			arrLayerInfo[av_garrLayerStructure[i].layerNo].isMaster = av_garrLayerStructure[i].isMaster;
			arrLayerInfo[av_garrLayerStructure[i].layerNo].hasImage = av_garrLayerStructure[i].hasImage;
			arrLayerInfo[av_garrLayerStructure[i].layerNo].uaiCode = (uaiCode==null) ? "" : uaiCode;
		}
	}
}

// wear off incompatible layers
function av_removeNotCompatibleLayerWearing(sAvCode)
{
	for ( var i = 0 ; i < av_gnLayerStructure ; i++ )
	{
		// sAvCodeÀÇ ¸¶½ºÅÍ ·¹ÀÌ¾î¸¦ Ã£°í, ºñÈ£È¯ ·¹ÀÌ¾î Á¤º¸°¡ ÀÖÀ¸¸é enter
		if ( av_isEqualHeader(av_garrLayerStructure[i].layerHeader,sAvCode) && av_garrLayerStructure[i].isMaster && av_garrLayerStructure[i].layerHeadersNotCompatible.length > 0)
		{
			// ºñÈ£È¯ ·¹ÀÌ¾î Áß¿¡¼­, ÇöÀç Âø¿ëÇÏ°í ÀÖ´Â ·¹ÀÌ¾î¸¦ Ã£¾Æ¼­, ±× ¾ÆÀÌÅÛÀ» ¹þ´Â´Ù.
			var layerHeaders = av_garrLayerStructure[i].layerHeadersNotCompatible.split("@");
			for ( var j = 0 ; j < layerHeaders.length ; j++ )
				this.removeOccupyingLayer(layerHeaders[j],sAvCode);
		}
	}
}

function av_removeOccupyingLayer(sLayerHeader, sAvCodePreparing)
{
	var n;
	var arrLayerInfo = this.arrLayerInfo;
	
	for ( var i = 0 ; i < av_gnLayerStructure ; i++ )
	{
		// layer header ·Î °Ë»ö
		if ( av_garrLayerStructure[i].isMaster && av_isEqualHeader(sLayerHeader,av_garrLayerStructure[i].layerHeader) )
		{
			n = av_garrLayerStructure[i].layerNo;

			// Âø¿ëÇÏ°í ÀÖ´Â °æ¿ì, ¹þ±è
			if ( n >= 0 && arrLayerInfo[n].avCode.length >  0 && av_isEqualHeader(sLayerHeader,arrLayerInfo[n].avCode) )
			{
				// È¸º¹ÇØ¾ß ÇÒ ·¹ÀÌ¾î°¡ ÀÖ´ÂÁö Ã¼Å©
				if ( av_garrLayerStructure[i].layerHeadersToBeRestored.length > 0 )
				{
					var layerHeadersNotBeRestored = av_getLayerHeadersNotCompatible(sAvCodePreparing);
					this.removeLayer(arrLayerInfo[n].avCode,true,layerHeadersNotBeRestored );
				}
				else
				{
					this.removeLayer(arrLayerInfo[n].avCode,false);
				}
			}
		}
	}
}


// ¾ÆÀÌÅÛ »èÁ¦
// »èÁ¦ÇÒ ¾ÆÀÌÅÛ ÄÚµå, ·¹ÀÌ¾îº¯¼ö, ±âº» ¾ÆÀÌÅÛÀ» ÀÔÈú °ÍÀÎÁöÀÇ ¿©ºÎ, »õ·Î ÀÔÈ÷°íÀÚ ÇÏ´Â ¾ÆÀÌÅÛÀÌ Ä¿¹öÇÏ´Â ¾ÆÀÌÅÛ ¸®½ºÆ®
function av_removeLayer(sAvCode,bWearBasic,sLayerHeadersNotBeRestored)
{
	var arrLayerInfo = this.arrLayerInfo;
	
	for ( var i = 0 ; i < av_gnLayerStructure ; i++ )
	{
		if ( av_isEqualHeader(av_garrLayerStructure[i].layerHeader, sAvCode) )
		{
			// ÇØ´ç ·¹ÀÌ¾î Á¤º¸ »èÁ¦
			av_clearOneLayerInfo(av_garrLayerStructure[i].layerNo,arrLayerInfo);

			// ¹þ°ÜÁø ¾Æ¹ÙÅ¸¿¡ ±âº» ¾Æ¹ÙÅ¸¸¦ ÀÔÈúÁö Ã¼Å©ÇÑ´Ù.
			if ( bWearBasic && av_garrLayerStructure[i].isMaster )
			{
				this.prepareLayer(sAvCode,sLayerHeadersNotBeRestored);
			}
		}
	}
}


// ±âº» ¾ÆÀÌÅÛÀ» ÀÔÈù´Ù
// ±âº» ¾ÆÀÌÅÛÀÌ ÇÊ¿äÇÑ ¾ÆÀÌÅÛ ÄÚµå, ·¹ÀÌ¾îº¯¼ö, »õ·Î ÀÔÈ÷°íÀÚ ÇÏ´Â ¾ÆÀÌÅÛÀÌ Ä¿¹öÇÏ´Â ¾ÆÀÌÅÛ ¸®½ºÆ®
function av_prepareLayer(sAvCode,sLayerHeadersNotBeRestored)
{
	var arrLayerInfo = this.arrLayerInfo;
	
	for ( var n = 0 ; n < av_gnLayerStructure ; n++ )
	{
		if ( av_isEqualHeader(sAvCode,av_garrLayerStructure[n].layerHeader) &&  av_garrLayerStructure[n].isMaster)
		{
			if ( av_garrLayerStructure[n].defaultCode.length > 0 )
			{
				// ±âº» ¾ÆÀÌÅÛÀÌ ÀÖ´Ù¸é ±×°É ÀÔÈù´Ù.
				
				var sCode;
				sCode = av_garrLayerStructure[n].defaultCode;
				sCode = (sCode.substring(0,2) + (this.sex == null ? "F" : this.sex) + sCode.substring(3,7));
				this.insertLayer(sCode);
			}
			else
			{
				// ±âº» ¾ÆÀÌÅÛÀÌ ¾ø´Ù¸é, È¸º¹ÇØ¾ß ÇÒ ·¹ÀÌ¾î ¸®½ºÆ®¸¦ µ¹¸é¼­ ±âº» ¾ÆÀÌÅÛÀ» ÀÔÈù´Ù.
				if ( av_garrLayerStructure[n].layerHeadersToBeRestored.length > 0 )
				{
					var layerHeaders = av_garrLayerStructure[n].layerHeadersToBeRestored.split("@");
			
					for ( var i = 0 ; i < layerHeaders.length ; i++ )
					{
						if ( !av_isInTheList(sLayerHeadersNotBeRestored,layerHeaders[i]) && ! av_isEqualHeader(sAvCode,layerHeaders[i])  )
							this.prepareLayer(layerHeaders[i],sLayerHeadersNotBeRestored);
					}
				}
			}
		}
	}
}


function av_getLayerHeadersNotCompatible(layerHeader)
{
	for ( var i = 0 ; i < av_gnLayerStructure ; i++ )
	{
		if ( av_isEqualHeader(layerHeader,av_garrLayerStructure[i].layerHeader) && av_garrLayerStructure[i].isMaster )
			return (av_garrLayerStructure[i].layerHeadersNotCompatible);
	}
	return "";
}


/////////////////////////////////////////
// Helper Functions
/////////////////////////////////////////

function av_isInTheList(sList, sCode)
{
	if ( sList && sList.length > 0 )
	{
		var arrList = sList.split("@");
		for ( var i = 0 ; i < arrList.length ; i++ )
			if ( av_isEqualHeader(arrList[i],sCode) )
				return true;
	}

	return false;
}

function av_isCodeInTheAvatarID(sAvatarID,sCode)
{
	if ( sAvatarID && sAvatarID.length > 0 )
	{
		var arrList = sAvatarID.split("_");
		for ( var i = 0 ; i < arrList.length ; i++ )
			if ( arrList[i].substr(0,6) == sCode.substr(0,6) )
				return true;
	}
	return false;	
}

function av_isEqualHeader(hWild,hDest)
{
	if ( hWild == null || hDest == null || hWild.length < 2 || hDest.length < 2)
		return;
		
	if ( hWild.substring(1,2) == "?" ) 
		return ( hWild.substring(0,1) == hDest.substring(0,1) );
	else
		return ( hWild.substring(0,2) == hDest.substring(0,2) );
}




/////////////////////////////////////////
// Constructors
/////////////////////////////////////////

function av_LayerInfo(sAvCode, sSuffix, uaiCode )
{
	// LayerInfo »ý¼ºÀÚ
	
	this.avCode = sAvCode;
	this.suffix = sSuffix;
	this.isMaster = true;
	this.hasImage = true;
	this.uaiCode = (uaiCode == null) ? "" : uaiCode;
}


function av_AVItem(sAvID,sSex,oAvDispArea, bSetCookie, bShowMenu, oMenu, bDebug, oDebugArea)
{
	// ÃÊ±âÈ­ ¿©ºÎ Á¶»ç
	if ( !av_gbInit )
		av_initVariables();
	
	// AVItem »ý¼ºÀÚ
	this.objectName = "AVItem";
	
	this.sex = (sSex) ? sSex : "F";
	this.avatarID = (sAvID) ? sAvID : ( (this.sex=="M") ? av_gsInitBasicAvIDM : av_gsInitBasicAvIDF);
	
	// normalize, %5F -> _ , to upper case
	this.avatarID = av_normalizeAvatarID(this.avatarID);
	
	this.bSetCookie = (bSetCookie!=null) ? bSetCookie : false;
	
	this.oAvDispArea = oAvDispArea;
	this.bShowMenu = (bShowMenu!=null) ? bShowMenu : false;
	this.oMenu = oMenu;
	
	// cross-reference
	if (oMenu)
		oMenu.oAvItem = this;
	
	this.bDebug = (bDebug!=null) ? bDebug : false;
	this.oDebugArea = oDebugArea;
	

	/////////////////
	// methods - internal logic
	/////////////////

	// insert one layer
	this.insertLayer = av_insertLayer;
	
	// wear off incompatible layers
	this.removeNotCompatibleLayerWearing = av_removeNotCompatibleLayerWearing;
	
	this.removeOccupyingLayer = av_removeOccupyingLayer;
	
	// remove one layer
	this.removeLayer = av_removeLayer;
	
	// wear basic avatar
	this.prepareLayer = av_prepareLayer;


	/////////////////
	// methods
	/////////////////
	
	// showAvatar Method
	this.showAvatar = av_showAvatar;
	
	// refresh avatar, ex) try on of take off
	this.refreshAvatar = av_refreshAvatar;
	
	// insert layer from avatarid
	this.clearAndResolveAvID = av_clearAndResolveAvID;
	
	// set avatarid from layer info
	this.syncAvID = av_syncAvID;
		
	// check whether to wear or not
	this.isWearingCode = av_isWearingCode;

	// try on or take off
	this.clickItem = av_clickItem;
	
	// try avatar item on
	this.tryItem = av_tryItem;
	
	// take avatar item off
	this.takeoffItem = av_takeoffItem;
	
	// toggle sex for trying on or taking off
	this.toggleSex = av_toggleSex;
	
	// setting sex for trying on or taking off
	this.setSex = av_setSex;
	
	// for saving tried items when bSetCookie is true
	this.setAvatarCookie = av_setAvatarCookie;

	// back to initial avatar id
	this.initAvID = av_initAvID;
	
	// set initial avatar id after save to db
	this.afterSaveAvID = av_afterSaveAvID;
	
	// back to initial avatar id in the chest
	this.initChestAvID = av_initChestAvID;
	
	// change to basic avatar id according to current sex
	this.initBasicAvID = av_initBasicAvID
	
	// set avatar id and call showAvatar method
	this.setAvID = av_setAvID;

	// change face
	this.changeFace = av_changeFace;
	
	// get face code (A,B,C,D,E,"")
	this.getFace = av_getFace;
	
	// test whether can change face or not
	this.canChangeFace = av_canChangeFace;

	// return uaicode list in the chest
	this.getUsingUaiCode = av_getUsingUaiCode;
	
	// return avcode list in the chest
	this.getUsingAvCode = av_getUsingAvCode;

	// get html
	this.getAllLayerHTML = av_getAllLayerHTML;
	
	
	///////////////////////////////
	// for clipping, 2004/07/27
	///////////////////////////////
	this.top = 0;
	this.left = 0;
	this.right = 100;
	this.bottom = 120;
	
	/////////////////
	// for floating menu
	/////////////////
	
	
	// onclick event handler
	this.onClick = av_AvDispArea_OnClick;

	// º¸¿©Áö´Â ¿µ¿ª¿¡ ¸¶Å·
	this.oAvDispArea.hgobject = "avDisplay";

	// º¸¿©Áö´Â ¿µ¿ª¿¡ onclick ÀÌº¥Æ® ÇÚµé·¯ Ã¼Å©
	if (!oAvDispArea.onclick)
		oAvDispArea.onclick = av_AvDispArea_OnClick;
		
	// º¸¿©Áö´Â ¿µ¿ªÀÇ border °ª ÀúÀå
	this.oAvDispArea_StyleInit_Border = oAvDispArea.style.border;

	// º¸¿©Áö´Â ¿µ¿ª¿¡ onmouseover ÀÌº¥Æ® ÇÚµé·¯ Ãß°¡
	if (!oAvDispArea.onmouseover)
		 oAvDispArea.onmouseover = av_AvDispArea_OnMouseOver;
		 
	// º¸¿©Áö´Â ¿µ¿ª¿¡ onmouseout ÀÌº¥Æ® ÇÚµé·¯ Ãß°¡
	if (!oAvDispArea.onmouseout)
		 oAvDispArea.onmouseout = av_AvDispArea_OnMouseOut

	// º¸¿©Áö´Â ¿µ¿ª¿¡ cursor style Ãß°¡
	if (!oAvDispArea.style.cursor && bShowMenu )
		 oAvDispArea.style.cursor = "hand";

	// °´Ã¼ µî·Ï
	av_registerAvItem(this);
		
	this.avatarIDInit = this.avatarID;
	this.avatarIDTempM = "";
	this.avatarIDTempF = "";
	
	this.sexInit = sSex;
	
	// ¾Æ¹ÙÅ¸ ¿ÊÀå¿¡¼­ÀÇ »ç¿ë ¿©ºÎ, ¿ÊÀå¿¡¼­ÀÇ ±âº» ¾Æ¹ÙÅ¸
	// °´Ã¼ »ý¼ºÈÄ property¸¦ ¹Ù²Ù½Ã¿À.
	this.bChest = false;
	this.avatarIDChestInit = this.avatarID;


	
	this.arrLayerInfo = new Array(av_gnLayerCount);
	
	// initialize and newly create layer info
	this.initLayerInfo = av_initLayerInfo;
	this.initLayerInfo();
	
}


////////////////////////
//
////////////////////////


function av_syncAvID()
{
	var arrLayerInfo = this.arrLayerInfo;
	
	var s = "";
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster ) 
			s += arrLayerInfo[i].avCode + "_";
	}
	
	if ( s.length > 0 )
		s = s.substring(0,s.length-1);

	this.avatarID = s;
}


function av_getUsingAvCode()
{
	var arrLayerInfo = this.arrLayerInfo;
	
	var s = "";
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster && arrLayerInfo[i].uaiCode.length > 0 ) 
			s += arrLayerInfo[i].avCode + "_";
	}	
	
	if ( s.length > 0 )
		s = s.substring(0,s.length-1);
	
	return s;	
}

function av_getUsingUaiCode()
{
	var arrLayerInfo = this.arrLayerInfo;
	
	var s = "";
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster && arrLayerInfo[i].uaiCode.length > 0 ) 
			s += arrLayerInfo[i].uaiCode + "_";
	}	
	
	if ( s.length > 0 )
		s = s.substring(0,s.length-1);
	
	return s;
}


function av_initLayerInfo()
{
	var arrLayerInfo = this.arrLayerInfo;
	
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
		arrLayerInfo[i] = new av_LayerInfo("","","");
}


function av_getAllLayerHTML()
{
	var arrLayerInfo = this.arrLayerInfo;
	
	var s = "";
	
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].hasImage ) {
			s += av_getOneLayerHTML(av_normalizeAvCode(arrLayerInfo[i].avCode),arrLayerInfo[i].suffix,this.top,this.left);
		}
	}

	return s;
}

function av_getNewlyAddedAvCodeFromAvID(sSrcID,sDestID)
{
	var srcList;
	var destList;
	var sDiffList = "";
	var dest;
	
	if ( sSrcID.length > 0 && sDestID.length > 0 )
	{
		srcList = sSrcID.split("_");
		destList = sDestID.split("_");
		
		for ( var i = 0 ; i < destList.length ; i++ )
		{
			dest = destList[i].substr(0,6);
			if ( sSrcID.indexOf(dest) < 0 )
			{
				if ( sDiffList.length > 0 )
					sDiffList += "_" + dest;
				else
					sDiffList = dest;
			}
		}		
	}
	
	return sDiffList;
}

function av_isWearingCode(sAvCode, uaiCode)
{
	var arrLayerInfo;
	
	if ( uaiCode == null ) {
		if ( this.avatarID.indexOf(sAvCode) >= 0 )
			return true;
		else
			return false;
	} else {
		arrLayerInfo = this.arrLayerInfo;
		for ( var i = 0 ; i < arrLayerInfo.length ; i++ ) {
			if ( (arrLayerInfo[i].avCode.substr(0,6) == sAvCode.substr(0,6)) && arrLayerInfo[i].uaiCode == uaiCode )
				return true;
		}
		return false;
	}
}


function av_clickItem(sAvCode,uaiCode,bForce)
{
	sAvCode = av_normalizeAvCode(sAvCode,this.sex);
	if ( sAvCode.length > 0 )
	{
		if ( bForce ) { 
			this.tryItem(sAvCode,uaiCode);
		} else if ( this.isWearingCode(sAvCode,uaiCode) ) {
			this.takeoffItem(sAvCode);
		} else {
			this.tryItem(sAvCode,uaiCode);
		}
	}
}

function av_tryItem(sAvCode,uaiCode)
{
	this.insertLayer(sAvCode,true,uaiCode);
	this.syncAvID();
	this.refreshAvatar();
	this.setAvatarCookie();
}


function av_takeoffItem(sAvCode)
{
	this.removeLayer(sAvCode,true);
	this.syncAvID();
	this.refreshAvatar();
	this.setAvatarCookie();
}


// ¾Æ¹ÙÅ¸ID¸¦ ÀÌ¿ëÇØ¼­ ¾Æ¹ÙÅ¸¸¦ Ç¥½ÃÇÔ
// ¿ÊÀå¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾øÀ½ (uaicode ¶§¹®¿¡)
function av_showAvatar()
{
	// ¾Æ¹ÙÅ¸ID¸¦ ÀÌ¿ëÇØ¼­ ·¹ÀÌ¾î »ðÀÔ
	this.clearAndResolveAvID();
	
	var oDispArea = this.oAvDispArea;
	var arrLayerInfo = this.arrLayerInfo;
	
	if ( oDispArea )
		oDispArea.innerHTML = this.getAllLayerHTML();
		
	if ( this.bDebug )
	{
		var s = "";
		for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
		{
			if ( arrLayerInfo[i].avCode.length > 0 &&  arrLayerInfo[i].hasImage )
				s += arrLayerInfo[i].avCode.toLowerCase() + arrLayerInfo[i].suffix + ".gif<br>";
		}
		this.oDebugArea.innerHTML = "<b>" + this.avatarID + "</b><br>" + s;
	}
}

// insert layers according to the given avatar id
// do not use in the chest
function av_clearAndResolveAvID()
{
	sAvID = this.avatarID;
	arrLayerInfo = this.arrLayerInfo;

	// clear layer info
	av_clearAllLayerInfo(arrLayerInfo);
	
	if ( sAvID && sAvID.length > 0 )
	{
		var arrAvCode = sAvID.split("_");
		for ( var i = 0 ; i < arrAvCode.length ; i++ )
			this.insertLayer(arrAvCode[i]);
	}
	else
		alert("¾Æ¹ÙÅ¸ID°¡ ¾øÀ¸¹Ç·Î ¾Æ¹ÙÅ¸¸¦ Ç¥½ÃÇÒ ¼ö ¾ø½À´Ï´Ù");
}



// ¿ÊÀ» ÀÔ°í ¹þ¾úÀ» ¶§ refreshÇÔ
function av_refreshAvatar()
{
	var oDispArea = this.oAvDispArea;
	var arrLayerInfo = this.arrLayerInfo;
	
	if ( oDispArea )
		oDispArea.innerHTML = this.getAllLayerHTML();

	if ( this.bDebug )
	{
		var s = "";
		for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
		{
			if ( arrLayerInfo[i].avCode.length > 0 &&  arrLayerInfo[i].hasImage )
				s += arrLayerInfo[i].avCode.toLowerCase() + arrLayerInfo[i].suffix + ".gif<br>";
		}
		this.oDebugArea.innerHTML = "<b>" + this.avatarID + "</b><br>" + s;
	}
}



function av_setAvatarCookie()
{
	/*
	var memberid;
	
	if ( this.bSetCookie )
	{
		memberid = av_getCookie(0);

		av_setStrCookie("hgavatar_" + memberid + "_showSex",(this.sex) ? this.sex : "");
		av_setStrCookie("hgavatar_" + memberid + "_avatarID",(this.avatarID) ? this.avatarID : "");
		av_setStrCookie("hgavatar_" + memberid + "_avatarIDM",(this.avatarIDTempM) ? this.avatarIDTempM : "");
		av_setStrCookie("hgavatar_" + memberid + "_avatarIDF",(this.avatarIDTempF) ? this.avatarIDTempF : "");
	}
	*/
}




function av_toggleSex(bShow)
{
	var sex = this.sex;
	
	if ( sex == "M" )
	{
		this.avatarIDTempM = this.avatarID;

		if ( this.avatarIDTempF.length > 0 )
			this.avatarID = this.avatarIDTempF;
		else
			this.avatarID = av_gsInitBasicAvIDF;
			
		this.sex = "F";
	}
	else
	{
		this.avatarIDTempF = this.avatarID;

		if ( this.avatarIDTempM.length > 0 )
			this.avatarID = this.avatarIDTempM;
		else
			this.avatarID = av_gsInitBasicAvIDM;
			
		this.sex = "M";
	}
	
	if ( bShow )
	{
		this.showAvatar();
		this.setAvatarCookie();
	}
}

function av_setSex(toSex, bShow)
{
	var sex = this.sex;
	
	if ( sex == toSex )
		return;
	else
		this.toggleSex(bShow);
}


function av_changeFace(sFace,bSave)
{
	var arrLayerInfo = this.arrLayerInfo;
	if ( bSave == null )
		bSave = true;
		
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster ) 
		{
			if ( av_haveOtherFaces(arrLayerInfo[i].avCode) )
			{
				// Ç¥Á¤ÀÇ °æ¿ì ¹«Á¶°Ç ÀÔÈû
				this.clickItem(arrLayerInfo[i].avCode.substring(0,6) + sFace.toUpperCase(), arrLayerInfo[i].uaiCode, true);
				
				this.syncAvID();
				
				if ( bSave && av_isCodeInTheAvatarID(this.avatarIDInit,arrLayerInfo[i].avCode ) )
				{
					// ÀúÀå¿É¼ÇÀÌ trueÀÌ°í, ±¸¸ÅÇÑ ¾Æ¹ÙÅ¸ÀÎ °æ¿ì¿¡¸¸ Ç¥Á¤À» ¹Ù²Ù¾î¼­ ÀúÀåÇÔ
					avdb_setAvatarFace(sFace);
				}

				return;
			}
		}
	}
}

function av_getFace()
{
	var arrLayerInfo = this.arrLayerInfo;
		
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster ) 
		{
			if ( av_haveOtherFaces(arrLayerInfo[i].avCode) )
			{
				return arrLayerInfo[i].avCode.substr(6,1);
			}
		}
	}	
	return "";
}

function av_canChangeFace()
{
	var arrLayerInfo = this.arrLayerInfo;
	var bFlag = false;
	
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
	{
		if ( arrLayerInfo[i].avCode.length > 0 && arrLayerInfo[i].isMaster ) 
			if ( av_haveOtherFaces(arrLayerInfo[i].avCode) )
				bFlag = true;
	}
	return bFlag;
}

function av_canChangeFaceInAvatarid(avatarid)
{
	var bFlag = false;
	var avarray = avatarid.split("_");
	for ( var i = 0 ; i < avarray.length ; i++ )
	{
		if ( av_haveOtherFaces(avarray[i].substring(0,6)) )
				bFlag = true;
	}
	return bFlag;
}

function av_initAvID()
{
	this.avatarID = this.avatarIDInit;
	this.sex = this.sexInit;
	this.showAvatar();
	this.setAvatarCookie();
}

function av_afterSaveAvID(newAvatarID)
{
	this.avatarID = newAvatarID;
	this.avatarIDInit = newAvatarID;
	this.setAvatarCookie();
}

function av_initChestAvID(sex,sAvCodeList,sUaiCodeList,avatarID)
{
	this.sex = sex;
	
	var listAvCode;
	var nAvCode = 0;
	var listUaiCode;
	var nUaiCode = 0;

	if ( sAvCodeList == null || sAvCodeList == "" ) {
		nAvCode = 0;
	} else {
		listAvCode = sAvCodeList.split("_");
		nAvCode = listAvCode.length;	
	}
		
	if ( sUaiCodeList == null || sUaiCodeList == "" ) {
		nUaiCode = 0;
	} else {
		listUaiCode = sUaiCodeList.split("_");
		nUaiCode = listUaiCode.length;
	}

	if ( nAvCode != nUaiCode ) {
		alert("¾Æ¹ÙÅ¸ ÄÚµå¿Í UAICODE ÀÇ °¹¼ö°¡ ´Ù¸¨´Ï´Ù");		
		return;
	}
	

	// ¼ºº°¿¡ µû¸¥ ÃÊ±âÈ­
	// ·¹ÀÌ¾î Á¤º¸¸¦ clear ÇÏ°í ¾Æ¹ÙÅ¸ ÀÓ½Ã·Î º¸¿©ÁÜ
	this.initBasicAvID();

	
	// ¿ÊÀå¿¡¼­ Âø¿ë»óÅÂ°¡ UÀÎ ¾Æ¹ÙÅ¸ ÀÔÀ½
	n = 0;	
	for ( var i = 0 ; i < nAvCode ; i++ ) {
		this.tryItem(av_normalizeAvCode(listAvCode[i],sex),listUaiCode[i],"");
	}
	
	// ³Ñ¾î¿Â ¾Æ¹ÙÅ¸¾ÆÀÌµð¿¡¼­ FNÀÌ Ç¥Á¤ÀÌ ÀÖÀ» °æ¿ì Ç¥Á¤À» ÀÔÈû
	/*
	var avlist;
	var sFace;
	if ( avatarID.length > 0 )
	{
		avatarID = av_normalizeAvatarID(avatarID);
		avlist = avatarID.split("_");
		for ( var i = 0 ; i < avlist.length ; i++ )
		{
			if ( av_isEqualHeader("FN",avlist[i]) )
			{
				if ( avlist[i].length == 7 )
					this.tryItem(av_normalizeAvCode(avlist[i],sex));
			}
		}
	}
	*/
	
	// ¾Æ¹ÙÅ¸ ID ½ÌÅ©ÈÄ ¾Æ¹ÙÅ¸ ´Ù½Ã º¸¿©ÁÜ 
	this.syncAvID();
	this.refreshAvatar();
	this.setAvatarCookie();
}


function av_initBasicAvID()
{
	this.avatarID = (this.sex == "M" ? av_gsInitBasicAvIDM	: av_gsInitBasicAvIDF );
	this.showAvatar();
	this.setAvatarCookie();
}

function av_setAvID(sAvID)
{
	var sex = "";
	var sex0 = "";

	if ( sAvID && sAvID.length > 0 )
	{
		sAvID = av_normalizeAvatarID(sAvID);
		
		var arrList = sAvID.split("_");
		for ( var i = 0 ; i < arrList.length ; i++ )
		{
			sex = av_getSexFromAvCode(arrList[i]);
			if ( sex != "U" )
			{
				if ( sex0 == "" )
					sex0 = sex;
				else if ( sex0 != sex )
				{
					alert("Àß¸øµÈ ¾Æ¹ÙÅ¸ ¾ÆÀÌµðÀÔ´Ï´Ù(1).");
					return;
				}
			}
		}
	}
	else
	{
		//alert("Àß¸øµÈ ¾Æ¹ÙÅ¸ ¾ÆÀÌµðÀÔ´Ï´Ù(2).");
		return;
	}
	
	if ( sex0 != "" && this.sex != sex0 ) {
		this.toggleSex(false);	
	}
	
	this.avatarID = sAvID;
	this.showAvatar();
	this.setAvatarCookie();
}


////////////////////////////////
// global methods
////////////////////////////////
function av_getOneLayerHTML(sAvCode, sSuffix, top, left)
{
	var sCode;
	var sFileName;
	var sFolderName;
	
	sCode = sAvCode.toLowerCase();
	var sFolderName = sCode.substring(0,2);
	sFileName = sCode + (sSuffix == null ? "" : sSuffix) + ".gif";
	
	var s = "";
	
	s = "<div id='layer' style='position:absolute; top:" + top + "px; left:" + left + "px; width:100px; height:120px;'>\n";
	s += "<img src='http://avimages.hangame.co.kr/avgif/" + sFolderName + "/" + sFileName + "' width='100' height='120' border='0'>\n";
	s += "</div>\n";
	
	return s;
}


function av_getAvItem(oAvDispArea)
{
	var avItem;
	for ( var i = 0 ; i < av_garrAvItem.length ; i++ )
	{
		avItem = av_garrAvItem[i];
		if (avItem.oAvDispArea == oAvDispArea)
			return (avItem);
	}
	return null;
}

function av_clearAllLayerInfo(arrLayerInfo)
{
	for ( var i = 0 ; i < arrLayerInfo.length ; i++ )
		av_clearOneLayerInfo(i,arrLayerInfo);
}

function av_clearOneLayerInfo(n,arrLayerInfo)
{
	arrLayerInfo[n].avCode = "";
	arrLayerInfo[n].suffix = "";
	//arrLayerInfo[n].isMaster = true;
	//arrLayerInfo[n].hasImage = true;
	arrLayerInfo[n].uaiCode = "";
}


function av_registerAvItem(oAVItem)
{
	av_garrAvItem[av_garrAvItem.length] = oAVItem;
}

function av_haveOtherFaces(avCode)
{
	if ( av_isEqualHeader("FN",avCode) || av_isEqualHeader("SB",avCode) )
		return true;
	else
		return false;
}

function av_normalizeAvatarID(avatarID)
{
	var sTemp;
	var re = /%5F/g;
	sTemp = avatarID.toUpperCase();
	sTemp = sTemp.replace(re,"_");
	
	return sTemp;
}

function av_normalizeAvCode(sAvCode, sex)
{
	sAvCode = sAvCode.toUpperCase();
	
	if ( typeof(sex)!="undefined" && av_getSexFromAvCode(sAvCode) != "U" && av_getSexFromAvCode(sAvCode) != sex )
	{
		alert("¼ºº°ÀÌ ´Ù¸¥ ¿ÊÀº ÀÔ¾îº¼ ¼ö ¾ø½À´Ï´Ù.");
		return ("");
	}

	// SBÄÚµåÀÇ Á¢¹Ì»ç°¡ ¾ø´Â °æ¿ì
	if ( sAvCode.substring(0,2) == "SB" && sAvCode.length == 6 )
		sAvCode += "A";
	else if ( sAvCode.substring(0,2) == "FN" && sAvCode.length == 6 )
		sAvCode += "A";
	
	return sAvCode.toUpperCase();
}

function av_getSexFromAvCode(sAvCode)
{
	return sAvCode.substring(2,3);
}

function av_isMusicAvatar(sAvCode)
{
	if ( sAvCode.substr(0,2) == "M1" )
		return true;
	else
		return false;	
}


function av_clearAvatarCookie()
{
	/*
	var memberid;
	memberid = av_getCookie(0);
	
	av_setStrCookie("hgavatar_" + memberid + "_showSex","");
	av_setStrCookie("hgavatar_" + memberid + "_avatarID","");
	av_setStrCookie("hgavatar_" + memberid + "_avatarIDM","");
	av_setStrCookie("hgavatar_" + memberid + "_avatarIDF","");
	*/
}


/////////////////////////////////////////
// Event Hanlders
/////////////////////////////////////////

function av_AvDispArea_OnClick()
{
	var avItem;
	if (event == null) return;
	var oElem = event.srcElement;

	while ( oElem )
	{
		if ( oElem.hgobject == "avDisplay" )	
		{
			avItem = av_getAvItem(oElem);
			break;
		}
		oElem = oElem.parentElement;
	}
	
	if (avItem && avItem.bShowMenu && avItem.oMenu )
	{
		event.cancelBubble = true;
		var x,y;
		
		if ( avItem.oMenu.eventWindowName == "self" )
		{ // ¼Óµµ¹®Á¦
			x = event.screenX - self.screenLeft + document.body.scrollLeft;
			y = event.screenY - self.screenTop + document.body.scrollTop;
		}
		else if ( avItem.oMenu.eventWindowName == "parent" )
		{
			x = event.screenX - parent.screenLeft + document.body.scrollLeft;
			y = event.screenY - parent.screenTop + document.body.scrollTop;
		}
		else
		{
			x = event.screenX - eval(avItem.oMenu.eventWindowName).screenLeft + document.body.scrollLeft;
			y = event.screenY - eval(avItem.oMenu.eventWindowName).screenTop + document.body.scrollTop;
		}
		
		
		// check whether can change face
		if ( avItem.canChangeFace() )
		{
			avItem.oMenu.arrActions[0].enabled = true;
			avItem.oMenu.updateShowHTML(x,y);
		}
		else
		{
			//avItem.oMenu.arrActions[0].enabled = false;
			avItem.oMenu.updateShowHTML(x,y);
		}
	}
	
}

function av_AvDispArea_OnMouseOver()
{
	return;
	
	var bFound = false;
	var oElem = event.srcElement;

	while ( oElem )
	{
		if ( oElem.hgobject == "avDisplay" )	
		{
			bFound = true;
			break;
		}
		oElem = oElem.parentElement;
	}	
	
	if ( bFound )
		oElem.style.border = "2px dotted yellow";
}

function av_AvDispArea_OnMouseOut()
{
	return ;
	
	var bFound = false;
	var oElem = event.srcElement;
	var avItem;

	while ( oElem )
	{
		if ( oElem.hgobject == "avDisplay" )	
		{
			bFound = true;
			avItem = av_getAvItem(oElem);
			break;
		}
		oElem = oElem.parentElement;
	}	
	
	if ( bFound )
		oElem.style.border = avItem.oAvDispArea_StyleInit_Border;
}


/////////////////////////////////////////
// DB Related Functions
/////////////////////////////////////////

function avdb_setAvatarFace(sFace)
{
	if ( typeof(__iframeSetAvatarID) == "object" )
	{
		__iframeSetAvatarID.location.href=getServiceHost(SERVICE_AVATAR)+"/service.nhn?m=setFace&newFace=" + sFace;
	/*	
		if ( location.host.search(/local|dev/g)>=0 )
			__iframeSetAvatarID.location.href="http://dev-avatar.hangame.com/service.nhn?m=setFace&newFace=" + sFace;
		else if ( location.host.search(/alpha/g)>=0 )
			__iframeSetAvatarID.location.href="http://alpha-avatar.hangame.com/service.nhn?m=setFace&newFace=" + sFace;
		else if ( location.host.search(/beta|prejsp|prewww/g)>=0 )
			__iframeSetAvatarID.location.href="http://beta-avatar.hangame.com/service.nhn?m=setFace&newFace=" + sFace;
		else
			__iframeSetAvatarID.location.href="http://avatar.hangame.com/service.nhn?m=setFace&newFace=" + sFace;
			*/
	}
	else
		alert("¾Æ¹ÙÅ¸ º¯°æ ³»¿ëÀ» ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù.\n\nÆäÀÌÁö¸¦ ¸®ÇÁ·¹½¬ ÇØ º¸½Ã±â ¹Ù¶ø´Ï´Ù.");
}


////////////////////////////////////
// Hangame Avatar
// Helper Functions
////////////////////////////////////

function av_getDispUrl(avCode,suffix)
{
	var s = "";
	var suffixTmp = avCode.substr(6,1);
	if (avCode.length == 7 )
	{
		if (suffixTmp == "A" || suffixTmp == "B" || suffixTmp == "C" || suffixTmp == "D" || suffixTmp == "E" )
			suffix = "";
		else
		{
			avCode = avCode.substr(0,6);
			suffix = "a";
		}
	}
	else if ( suffix == null )
		suffix = "a";

	if ( avCode && avCode.length > 0 )
		if ( avCode.toLowerCase().substr(0,2) == "sb" || avCode.toLowerCase().substr(0,2) == "fn" )
			s = "http://avimages.hangame.co.kr/avdisplay/" + avCode.toLowerCase().substr(0,2) + "/" + avCode.toLowerCase() + suffix + ".gif";
		else
			s = "http://avimages.hangame.co.kr/avdisplay/" + avCode.toLowerCase().substr(0,2) + "/" + avCode.toLowerCase() + ".gif";

	return s;
}
function av_getWearUrl(avCode,suffix)
{
	var s = "";
	var suffixTmp = avCode.substr(6,1);
	if (avCode.length == 7 )
	{
		if (suffixTmp == "A" || suffixTmp == "B" || suffixTmp == "C" || suffixTmp == "D" || suffixTmp == "E" )
			suffix = "";
		else
		{
			avCode = avCode.substr(0,6);
			suffix = "a";
		}
	}
	else if ( suffix == null )
		suffix = "a";

	if ( avCode && avCode.length > 0 )
		if ( avCode.toLowerCase().substr(0,2) == "sb" || avCode.toLowerCase().substr(0,2) == "fn" )
			s = "http://avimages.hangame.co.kr/avgif/" + avCode.toLowerCase().substr(0,2) + "/" + avCode.toLowerCase() + suffix + ".gif";
		else
			s = "http://avimages.hangame.co.kr/avgif/" + avCode.toLowerCase().substr(0,2) + "/" + avCode.toLowerCase() + ".gif";

	return s;
}

function av_getDispUrlHair(avCode)
{
	var s = "";

	if ( avCode && avCode.length > 0 )
		s = "http://avimages.hangame.co.kr/avdisplay/" + avCode.toLowerCase().substr(0,2) + "/" + avCode.toLowerCase() + "p.gif";

	return s;
}


function av_getDispImageTag(avCode,suffix,title)
{
	if ( title == null )
		title = "";
	var s = "<img src='" + av_getDispUrl(avCode,suffix) + "' width='70' height='85' border='0' title='" + title +"'>";
	return s;
}

// Á¶°¢ ÀÌ¹ÌÁö url ¾ò±â
function av_getSrcImgUrl(avCode,suffix)
{
	if ( suffix == null )
		suffix = "";
	var s = avCode.substr(0,6) + suffix.substr(0,1);
	s = s.toLowerCase();
	s = "http://avimages.hangame.co.kr/avgif/" + s.substr(0,2) + "/" + s + ".gif";

	return s;
}


function av_isPureHairItem(avCode) {
	if ( avCode && avCode.substr(0,1).toUpperCase() == "P" && avCode.substr(0,2).toUpperCase()!="P1" )
		return true;
	else
		return false;	
}

// 70*85 ÀÌ¹ÌÁö·Î º¸¿©Áà¾ß ÇÏ´Â °æ¿ì
function av_isDisplayImageLayer(avCode) {
	var layerindex = avCode.substr(0,1).toUpperCase();
	var layer	   = avCode.substr(0,2).toUpperCase();
	if ( avCode && (layerindex == "F" || layerindex == "P" ) )
		return true;
	if ( avCode && (layer == "LC" || layer == "HC" ) )
		return true;
	else
		return false;	
}

// ¹è°æ ÄÚµå »©±â
function av_removeBackground(avatarId) {
	var res = "";
	if ( avatarId && avatarId.length > 0 ) {
		var arrList = avatarId.split("_");
		for ( var i = 0 ; i < arrList.length ; i++ ) {
			if ( arrList[i].substr(0,2) != "A4" ) {
				if ( res.length > 0 ) {
					res += "_" + arrList[i];
				} else {
					res += arrList[i];
				}
			}
		}
	}
	return res;
}

////////////////////////////////////
// avatar code related functions
////////////////////////////////////

function av_getNormalizedBuyCode(avCode) {
	return avCode.substr(0,6);
}




/////////////////////////////////////////
// Floating Menu 
// 2004.02.09. CSH
/////////////////////////////////////////


// to store all the menu items
var menu_garrMenuItem = new Array();

// browser version
var menu_browser_ie6up = null;
var menu_browser_ie55up = null;


/////////////////////////////////////////
// Constructors
/////////////////////////////////////////

function menu_FloatMenu(arrActions, nShowMethod, oParentMenuItem, nConnectedParentAction, sCreateHTML, nFading, placeDocument, selfWindowName, eventWindowName )
{
	// global event handler
	if ( placeDocument ) 
	{
		placeDocument.detachEvent("onclick",menu_hideAllMenu);
		placeDocument.attachEvent("onclick",menu_hideAllMenu);
		document.detachEvent("onclick",menu_hideAllMenu);
		document.attachEvent("onclick",menu_hideAllMenu);
	}
	else
	{
		document.detachEvent("onclick",menu_hideAllMenu);
		document.attachEvent("onclick",menu_hideAllMenu);
	}
	
	// show method, relative to the point mouse clicked
	// 1=upper left, 2=upper middle, 3=upper right
	// 4=mid left, 5=center, 6=mid right
	// 7=lower left, 8=lower middle, 9=lower right
	this.objectName = "FloatMenu";
	
	this.nShowMethod = (nShowMethod) ? nShowMethod : 9;
	
	this.oParentMenuItem = oParentMenuItem;
	
	// to store related avItem (only in root menu)
	this.oAvItem = null;

	// milli-second of fade out
	this.nFading = nFading ? nFading : 0.3;
	

	// ¸Þ´º µð½ºÇÃ·¹ÀÌ DHTML °´Ã¼°¡ »ý¼ºµÉ document
	this.placeDocument = placeDocument;
	// ¸Þ´º µð½ºÇÃ·¹ÀÌ DHTML °´Ã¼°¡ »ý¼ºµÈ À©µµ¿ì¿¡¼­, menu_FloatMenu°¡ »ý¼ºµÈ À©µµ¿ì·Î Á¢±ÙÇÏ´Â ¹æ¹ý
	// for example) "self", iframe name
	this.selfWinodwName = ( selfWindowName == null ) ? "self" : selfWindowName;
	// ¸Þ´º µð½ºÇÃ·¹ÀÌ DHTML ÀÌº¥Æ®°¡ ¹ß»ýÇÏ´Â À©µµ¿ì ÀÌ¸§
	this.eventWindowName = ( eventWindowName == null ) ? "self" : eventWindowName;

	// ¸Þ´º°¡ Ç¥½ÃµÉ DHTML °´Ã¼
	this.oMainMenu = null;
	
	
	if ( arrActions )
		this.arrActions = arrActions;
	else if ( this.oParentMenuItem == null )
		this.arrActions = menu_createActions_AvatarMain(this);
	else
		this.arrActions = menu_createActions_AvatarFace(this);
	
	this.defaultCreateHTML = sCreateHTML;

	
	// ¸Þ´º ·¹ÀÌ¾Æ¿ô »ý¼º
	this.updateShowHTML = menu_updateShowHTML;
	
	this.showMenu = menu_showMenu;
	this.hideMenu = menu_hideMenu;
	this.keepShow = menu_keepShow;
	this.bShowing = false;
	
	this.timerHideAll = null;
	
	this.gIndex = menu_registerMenuItem(this);
	
	
	this.addSubMenuItem = menu_addSubMenuItem;
	// parentMenuItem ¿¡ µî·Ï	
	if ( this.oParentMenuItem )
		this.oParentMenuItem.addSubMenuItem(nConnectedParentAction,this);
		

	// ¸Þ´º DHTML Object »ý¼º
	// createElement¸¦ documentÀÇ readyState ÀÌ complete ÀÏ ¶§ ÇÏµµ·Ï ÇÔ
	// timer¸¦ ÀÌ¿ëÇØ¼­ documentÀÇ »óÅÂº¯È­¸¦ ±â´Ù¸°´Ù.
	menu_safeCreateMenu(this.gIndex);
		
	// ºê¶ó¿ìÀú ¹öÀü Ã¼Å©
	if ( menu_browser_ie55up == null )
		menu_checkBrowser();
		
}


function menu_safeCreateMenu(nIndex)
{
	var menu = menu_getMenuItemByIndex(nIndex);
	if ( menu == null )
		return;

	if ( typeof(this.placeDocument)=="object" && this.placeDocument ) {
		if ( this.placeDocument.readyState == "complete") {
			menu_safeCreateMenuObject(nIndex);
			menu_safeCreateMenuHTML(nIndex);
		} else {
			setTimeout("menu_safeCreateMenu(" + nIndex + ");",500);
		}
	} else {
		if ( document.readyState == "complete") {
			menu_safeCreateMenuObject(nIndex);
			menu_safeCreateMenuHTML(nIndex);
		} else {
			setTimeout("menu_safeCreateMenu(" + nIndex + ");",500);
		}
	}
}

function menu_safeCreateMenuObject(nIndex)
{
	var menu = menu_getMenuItemByIndex(nIndex);
	if ( menu==null) 
		return;
		
	var o;
	if ( menu.placeDocument ) {
		o = menu.placeDocument.createElement("<div hgobject='menu' style=''>");
		menu.placeDocument.body.appendChild(o);
	} else {
		o = document.createElement("<div hgobject='menu' style=''>");
		document.body.appendChild(o);
	}
	menu.oMainMenu = o;
}


function menu_safeCreateMenuHTML(nIndex) {
	var menu = menu_getMenuItemByIndex(nIndex);
	if ( menu==null) 
		return;	

	if ( typeof(menu.oMainMenu) == "object" && menu.oMainMenu && (menu.oMainMenu.readyState=="complete") ) {
		if ( menu.defaultCreateHTML ) {
			var func = eval(menu.defaultCreateHTML);
			func(menu);
		} else {
			menu_createHTML_AvatarDefault(menu);
		}
	} else {
		setTimeout("menu_safeCreateMenuHTML(" + nIndex + ");",500);
	}
}

function menu_updateShowHTML(x,y) {
	menu_safeCreateMenuHTML(this.gIndex);
	menu_safeShow(this.gIndex,x,y);	
}

function menu_safeShow(nIndex,x,y) {
	var menu = menu_getMenuItemByIndex(nIndex);
	if ( menu==null) 
		return;	

	if ( typeof(menu.oMainMenu) == "object" && menu.oMainMenu && (menu.oMainMenu.readyState=="complete") ) {
		menu.showMenu(x,y);		
	} else {
		setTimeout("menu_safeShow(" + nIndex + "," + x + "," + y + ");",500);
	}
}

// register instance of menuItem
function menu_registerMenuItem(menuItem)
{
	menu_garrMenuItem[menu_garrMenuItem.length] = menuItem;
	return (menu_garrMenuItem.length-1);
}

// helper function
function menu_getMenuItem(oMainMenu)
{
	var menuItem;
	for ( var i = 0 ; i < menu_garrMenuItem.length ; i++ )
	{
		menuItem = menu_garrMenuItem[i];
		if (menuItem.oMainMenu == oMainMenu)
			return (menuItem);
	}
	return null;
}

function menu_getMenuItemByIndex(n)
{
	for ( var i = 0 ; i < menu_garrMenuItem.length ; i++ )
	{
		if (menu_garrMenuItem[i].gIndex == n)
			return (menu_garrMenuItem[i]);
	}
	return null;

}


// Constructor for Items in the menu

function menu_Action(sType, sTitle, sOnClick, bExpand, oSubMenuItem, bEnable, bSelected, urlBulletImgTag, urlSelectedBulletImg, urlBarImg, urlExpandImgTag, urlDisabledExpandImgTag, styleTDDefault, styleTDHover, styleTDSelected, styleTDDisabled, styleTRDefault, styleTRHover, styleTRSelected, styleTRDisabled )
{
	// sType: menu, bar
	this.type = sType;
	this.title = sTitle;

	// Å¬¸¯½Ã ½ÇÇàÇÒ ÇÔ¼ö µî·Ï
	this.onclick = sOnClick;

	this.expand = (bExpand != null) ? bExpand : false;
	this.oSubMenuItem = oSubMenuItem;
	
	this.enabled = (bEnable != null) ? bEnable : true;

	this.selected = (bSelected != null) ? bSelected : false;
	
	this.urlBulletImgTag = urlBulletImgTag ? urlBulletImgTag : "";
	this.urlBarImg = (urlBarImg) ? urlBarImg : "http://images.hangame.co.kr/nhn/avatarmenu/line_shortcut041.gif";
	this.urlExpandImgTag = (urlExpandImgTag) ? urlExpandImgTag : "<img src='http://images.hangame.co.kr/nhn/hangame/ps/images/bubble_arrow.gif' width='4' height='7'>";
	this.urlDisabledExpandImgTag = (urlDisabledExpandImgTag) ? urlDisabledExpandImgTag : urlExpandImgTag;
	
	this.styleTDDefault = (styleTDDefault != null) ? styleTDDefault : "font:normal 9pt µ¸¿ò; color:#666666; cursor:hand; padding:4px 0px 2px 7px;";
	this.styleTDHover = (styleTDHover != null) ? styleTDHover : "font:normal 9pt µ¸¿ò; color:#333333; cursor:hand; padding:4px 0px 2px 7px;";
	this.styleTDSelected = styleTDSelected;
	this.styleTDDisabled = (styleTDDisabled != null) ? styleTDDisabled : "font:normal 9pt µ¸¿ò; color:gray; cursor:hand; padding:4px 0px 2px 7px;";

	this.styleTRDefault = (styleTRDefault != null) ? styleTRDefault : "background-color:transparent;";
	this.styleTRHover = (styleTRHover != null) ? styleTRHover : "background-color:#D2F1D5;";
	this.styleTRSelected = styleTRSelected;
	this.styleTRDDisabled = (styleTRDisabled != null) ? styleDisabled : "background-color:transparent;";

}


// default action set create
function menu_createActions_AvatarMain(menuItem)
{

	var arrActions ;
	if(av_canChangeFaceInAvatarid(av_avatarId)) {
		arrActions = new Array(
			new menu_Action("menu","Ç¥Á¤¹Ù²Ù±â","",true),
			new menu_Action("menu","¾Æ¹ÙÅ¸²Ù¹Ì±â","avmenu_goAvatar();"),
			new menu_Action("menu","È¸¿øÁ¦ Ç¥½Ã","avmenu_goMembershipMark();"),
			new menu_Action("bar"),
			new menu_Action("menu","³» ¿ÊÀå°¡±â","avmenu_goAvatarBox();"),
			new menu_Action("menu","³» ±æµå°¡±â","avmenu_goGuild();"),
			new menu_Action("menu","Ä£±¸Ã£±â","avmenu_goFindFriend();"),
			new menu_Action("bar"),
			new menu_Action("menu","ÇÑÄÚÀÎ ÃæÀü","avmenu_goHancoinRecharge();") // , --
		);	
	} else {
		arrActions = new Array(			
			new menu_Action("menu","¾Æ¹ÙÅ¸²Ù¹Ì±â","avmenu_goAvatar();"),
			new menu_Action("menu","È¸¿øÁ¦ Ç¥½Ã","avmenu_goMembershipMark();"),
			new menu_Action("bar"),
			new menu_Action("menu","³» ¿ÊÀå°¡±â","avmenu_goAvatarBox();"),
			new menu_Action("menu","³» ±æµå°¡±â","avmenu_goGuild();"),
			new menu_Action("menu","Ä£±¸Ã£±â","avmenu_goFindFriend();"),
			new menu_Action("bar"),
			new menu_Action("menu","ÇÑÄÚÀÎ ÃæÀü","avmenu_goHancoinRecharge();") // , --
			//new menu_Action("menu","µð¹ö±×","avmenu_debug('" + menuItem.eventWindowName + "');")
		);
	}
	
	// È¸¿øÁ¦ Ç¥½Ã ³ëÃâ. 19¼¼ÀÌ»óÈ¸¿ø¿¡°Ô¸¸ ³ëÃâ. 2009.04.09 joajoau 
	var menuArrary = new Array();
	var menuidx=0;
	for(var i=0;i<arrActions.length;i++){
		if(arrActions[i].title=="È¸¿øÁ¦ Ç¥½Ã") {			
			if(getJsCookie(JS_AGE)>=19){
				menuArrary[menuidx] = arrActions[i]; menuidx++;
			}
		}else {
			menuArrary[menuidx] = arrActions[i]; menuidx++;
		}
	}
	
	return (menuArrary);
}

function menu_createActions_AvatarFace(menuItem)
{
	var arrActions = new Array();
	arrActions[0] = new menu_Action("menu","±âº»Ç¥Á¤","avmenu_changeAvatarFace('A','" + menuItem.eventWindowName + "');",false,null,true,null,"","");
	arrActions[1] = new menu_Action("menu","¿ô´ÂÇ¥Á¤","avmenu_changeAvatarFace('B','" + menuItem.eventWindowName + "');",false,null,true,null,"","");
	arrActions[2] = new menu_Action("menu","¿ì´ÂÇ¥Á¤","avmenu_changeAvatarFace('C','" + menuItem.eventWindowName + "');",false,null,true,null,"","");
	arrActions[3] = new menu_Action("menu","È­³­Ç¥Á¤","avmenu_changeAvatarFace('D','" + menuItem.eventWindowName + "');",false,null,true,null,"","");
	arrActions[4] = new menu_Action("menu","È²´çÇÑÇ¥Á¤","avmenu_changeAvatarFace('E','" + menuItem.eventWindowName + "');",false,null,true,null,"","");
	
	return (arrActions);
}

function menu_addSubMenuItem(n,oSubMenuItem)
{
	if ( this.arrActions )
	{
		this.arrActions[n].bExpand = true;
		this.arrActions[n].oSubMenuItem = oSubMenuItem;
	}
}

// basic functions

function menu_getEventWindow(obj)
{
	return obj.ownerDocument.parentWindow;
}



function menu_showSubMenu(sSrcWindowName,oTD,nIndex)
{
	var menuItem;
	var oElem;
	
	if ( sSrcWindowName )
	{
		if ( sSrcWindowName == "parent" ) 
			oElem = parent.event.srcElement; //for speed
		else
			oElem = eval(sSrcWindowName).event.srcElement;
	}
	else
		oElem = event.srcElement;
	
	while ( oElem ) 
	{
		if ( oElem.hgobject == "menu" )
			menuItem = menu_getMenuItem(oElem);
		oElem = oElem.parentElement;
	}
	
	if ( menuItem )
	{
		var t = oTD.offsetTop;
		var l = oTD.offsetLeft;
		var oSubMenuItem = menuItem.arrActions[nIndex].oSubMenuItem;
		
		if ( oSubMenuItem )
		{
			var pos = menu_getSubMenuPos(oSubMenuItem,oTD);
			x = pos[0];
			y = pos[1];
			oSubMenuItem.showMenu(x,y);
		}
		else
			menu_hideAllSubMenus(sSrcWindowName,oTD);
	}
}

function menu_hideAllSubMenus(sSrcWindowName, oTD)
{
	var menuItem;
	
	var oElem;
	if ( sSrcWindowName )
	{
		if ( sSrcWindowName == "parent" ) 
			oElem = parent.event.srcElement; //for speed
		else
			oElem = eval(sSrcWindowName).event.srcElement;
	}
	else
		oElem = event.srcElement;
			
	while ( oElem ) 
	{
		if ( oElem.hgobject == "menu" )
			menuItem = menu_getMenuItem(oElem);
		oElem = oElem.parentElement;
	}
	
	if ( menuItem )
	{
		for ( var i = 0 ; i < menuItem.arrActions.length; i++ )
			if ( menuItem.arrActions[i].expand && menuItem.arrActions[i].oSubMenuItem )	
				menuItem.arrActions[i].oSubMenuItem.hideMenu(true, false);
	}	
}


function menu_getSubMenuPos(subMenuItem,oTD)
{
	var pos = new Array();

	var x = oTD.offsetLeft;
	var y = oTD.offsetTop;
	var w = oTD.offsetWidth;
	var h = oTD.offsetHeight;

	var p = oTD.parentElement;
	
	var xSubMenuMargin = 5;
	
	while ( p )
	{
		if ( oTD.tagName == "TD" && p.tagName != "TR" )
		{
			x += p.offsetLeft;
			y += p.offsetTop;
		}

		if ( p.hgobject == "menu" )
		{
			pos[2] = x;
			pos[3] = y;
			pos[4] = w;
			pos[5] = h;
			pos[6] = p.offsetLeft;
			pos[7] = p.offsetTop;
			pos[8] = p.offsetWidth;
			pos[9] = p.offsetHeight;
			
			var n = subMenuItem.nShowMethod;
			
			if ( n==1 || n==4 || n==7 )
				pos[0] = pos[6] - subMenuItem.oMainMenu.offsetWidth - xSubMenuMargin;
			
			if ( n==3 || n==6 || n==9 )
				pos[0] = pos[6] + pos[8] + xSubMenuMargin;
			
			if ( n==2 || n==5 || n==8 )
				pos[0] = pos[6] + pos[8]; // not properly defined
				
			if ( n==1 || n==2 || n==3 )
				pos[1] = y + h - subMenuItem.oMainMenu.offsetHeight;
			
			if ( n==4 || n==5 || n==6 )
				pos[1] = y + h/2 - subMenuItem.oMainMenu.offsetHeight/2;
				
			if ( n==7 || n==8 || n==9 )
				pos[1] = y;

			return pos;
		}
		p = p.parentElement;	
	}
	
	return pos;
	
}


function menu_showMenu(x,y)
{
	var o = this.oMainMenu;

	// clear existing timer
	this.keepShow();
	
	o.style.pixelLeft = menu_calcX(this,x);
	o.style.pixelTop = menu_calcY(this,y);
	
	if ( menu_browser_ie55up && this.nFading > 0 )
	{
		o.filters[0].Apply();
		o.style.visibility = "visible";
		o.filters[0].Play();
	}
	else
		o.style.visibility = "visible";
	
	this.bShowing = true;
}

function menu_calcX(menuItem,eventX)
{
	var n = menuItem.nShowMethod;
	
	if ( menuItem.oParentMenuItem )
		return eventX;
	
	if ( n==1 || n==4 || n==7 )
		return (eventX-menuItem.oMainMenu.offsetWidth);
	
	if ( n==2 || n==5 || n==8 )
		return (eventX-menuItem.oMainMenu.offsetWidth/2);
	
	if ( n==3 || n==6 || n==9 )
		return (eventX);
	
}

function menu_calcY(menuItem,eventY)
{
	var n = menuItem.nShowMethod;

	if ( menuItem.oParentMenuItem )
		return eventY;

	if ( n==1 || n==2 || n == 3 )
		return (eventY-menuItem.oMainMenu.offsetHeight);

	if ( n==4 || n==5 || n == 6 )
		return (eventY-menuItem.oMainMenu.offsetHeight/2);

	if ( n==7 || n==8 || n == 9 )
		return (eventY);
	
}


function menu_hideMenu(bFading,bCascade)
{
	var menuItem = this;

	while ( menuItem )
	{
		if ( !menuItem.timerHideAll && bFading )
			menuItem.timerHideAll = setTimeout("menu_hideMenuReal(" + menuItem.gIndex + ");",500);
		else
			menu_hideMenuRealImmediately(menuItem);	
		
		if ( bCascade )
			menuItem = menuItem.oParentMenuItem;
		else
			menuItem = null;
	}
	
	if ( bCascade )
	{
		var arrActions = this.arrActions;
		
		for ( var i = 0 ; i < arrActions.length ; i++ )
		{
			if ( arrActions[i].expand && arrActions[i].oSubMenuItem )
				arrActions[i].oSubMenuItem.hideMenu(bFading,false);
		}
	}
	
}

function menu_hideMenuReal(menuItemIndex)
{
	var menuItem = menu_getMenuItemByIndex(menuItemIndex);
		
	if ( menuItem && menuItem.oMainMenu )
	{
		menuItem.bShowing = false;
		
		if ( menuItem.timerHideAll )
			clearTimeout(menuItem.timerHideAll);
		menuItem.timerHideAll = null;	

		if ( menu_browser_ie55up && menuItem.nFading > 0 )
		{
			menuItem.oMainMenu.filters[0].Apply();
			menuItem.oMainMenu.style.visibility = "hidden";
			menuItem.oMainMenu.filters[0].Play();
		}
		else
			menuItem.oMainMenu.style.visibility = "hidden";
	}
}

function menu_hideMenuRealImmediately(menuItem)
{
	if ( menuItem && menuItem.oMainMenu )
		menuItem.oMainMenu.style.visibility = "hidden";
}

function menu_keepShow()
{
	var menuItem = this;

	while ( menuItem )
	{
		if ( menuItem.timerHideAll )
		{
			clearTimeout(menuItem.timerHideAll);
			menuItem.timerHideAll = null;
		}
		menuItem = menuItem.oParentMenuItem;
	}	
}

function menu_hideAllMenu()
{
	var menuItem;
	for ( var i = 0 ; i < menu_garrMenuItem.length ; i++ )
		menu_hideMenuRealImmediately(menu_garrMenuItem[i]);
}


// event handler
function menu_ShowArea_OnMouseLeave()
{
	var menuItem;
	var oElem;
	
	if ( this.eventWindowName )
	{
		if ( this.eventWindowName == "parent" ) 
			oElem = parent.event.srcElement; //for speed
		else
			oElem = eval(this.eventWindowName).event.srcElement;
	}
	else
		oElem = event.srcElement;
	
	if ( oElem.hgobject == "menu" )
		menuItem = menu_getMenuItem(oElem);
	
	menuItem = menu_getMenuItem(this);

	if ( menuItem )
		menuItem.hideMenu(true,true);		
}



function menu_ShowArea_OnMouseEnter()
{
	var menuItem;
	var oElem;
	
	if ( this.eventWindowName )
	{
		if ( this.eventWindowName == "parent" ) 
			oElem = parent.event.srcElement; //for speed
		else
			oElem = eval(this.eventWindowName).event.srcElement;
	}
	else
		oElem = event.srcElement;
	
	if ( oElem.hgobject == "menu" )
		menuItem = menu_getMenuItem(oElem);

	menuItem = menu_getMenuItem(this);

	if ( menuItem )
		menuItem.keepShow();	
}


function menu_clickDummy(eventWindowName)
{
	if ( eventWindowName )
		eval(eventWindowName).event.cancelBubble = true;
	else
		event.cancelBubble = true;
}


/////////////////////////////////////////
// Customizable
/////////////////////////////////////////



function menu_createHTML_AvatarDefault(menuItem)
{
	var s = "";
	var arrActions;
	var action;
	var tdmouseenter, tdmouseleave, tdmouseover, tdmouseclick;
	var trmouseenter, trmouseleave;

	arrActions = menuItem.arrActions;
	
	var selfWindowNameDot = (menuItem.selfWinodwName=="self") ? "" : (menuItem.selfWinodwName+".");
	var onClickFunc;
	var re = /'/g;
	
	if ( !menuItem.oParentMenuItem ) {
		//s += "		<div style='width:128px; height:143px;'>\n";
		s += "		 <table width='128' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		  <tr> \n";
		s += "		   <td  background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' style='padding:0 0 0 15' colspan='3'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		  </tr>\n";
		s += "		  <tr> \n";
		s += "		   <td width='1' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		   <td width='100%' align='center'>\n";
		s += "		    <table width='84%' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		     <tr> \n";
		s += "		      <td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_zeroblink.gif' width='7' height='7'></td>\n";
		s += "		     </tr>\n";
	} else {
		//s += "		<div style='width:100px; height:79;'>\n";
		s += "		 <table width='100' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		  <tr> \n";
		s += "		   <td  background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' style='padding:0 0 0 15' colspan='3'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		  </tr>\n";
		s += "		  <tr> \n";
		s += "		   <td width='1' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		   <td width='100%' align='center'>\n";
		s += "		    <table width='80%' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		     <tr> \n";
		s += "		      <td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_zeroblink.gif' width='7' height='7'></td>\n";
		s += "		     </tr>\n";		
	}
	
	for ( var i = 0 ; i < arrActions.length ; i++ )
	{
		action = arrActions[i];
		tdmouseenter = " onmouseenter='this.style.cssText=\"" + (action.enabled ? action.styleTDHover : action.styleTDDisabled) + "\";' ";
		tdmouseleave = " onmouseleave='this.style.cssText=\"" + (action.enabled ? action.styleTDDefault : action.styleTDDisabled) + "\";' ";
		trmouseenter = " onmouseenter='this.style.cssText=\"" + (action.enabled ? action.styleTRHover : action.styleTRDisabled) + "\";' ";
		trmouseleave = " onmouseleave='this.style.cssText=\"" + (action.enabled ? action.styleTRDefault : action.styleTRDisabled) + "\";' ";
		tdmouseover = (action.expand && action.enabled) ? (" onmouseover='" + selfWindowNameDot + "menu_showSubMenu(\"" + menuItem.eventWindowName + "\",this," + i + ");this.style.textDecoration=\"underline\";' ") : (" onmouseover='" + selfWindowNameDot + "menu_hideAllSubMenus(\"" + menuItem.eventWindowName + "\",this);this.style.textDecoration=\"underline\";' ");
		tdmouseout = " onmouseout='this.style.textDecoration=\"none\";' ";
		onClickFunc = (action.onclick == null) ? "" : action.onclick;
		onClickFunc = onClickFunc.replace(re,"\"");
		tdmouseclick = action.onclick ? " onclick='" + selfWindowNameDot + onClickFunc + ";' " : " onclick='" + selfWindowNameDot + "menu_clickDummy(\"" + menuItem.eventWindowName + "\");' ";

		if ( action.type == "menu" )
		{
			//s += "<tr " + trmouseenter + trmouseleave + "><td style=\"" + ((action.enabled) ? action.styleTDDefault : action.styleTDDisabled) + "\"" + tdmouseenter + tdmouseleave + tdmouseover + tdmouseclick + ">" + action.urlBulletImgTag + " " + action.title + "</td><td width='9' height='7'>" + ( (action.expand) ? " " + action.urlExpandImgTag : "" ) + "</td></tr>\n";
			s += "     <tr> \n";
			s += "      <td style='font-family:µ¸¿ò; font-size:12px; margin:0px; color:#464646; letter-spacing:-1px; cursor:hand; padding:5 4 3 4' " + tdmouseclick + tdmouseover + tdmouseout + "><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_bullet.gif' width='3' height='3' align='absmiddle'> " + action.title + "</td>\n";
			if ( action.expand ) 
				s += "<td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_subgo.gif' width='6' height='7'></td>\n";
			else
				s += "<td>&nbsp;</td>\n";
			s += "     </tr>			\n";
		}
		else if ( action.type == "bar" )
		{
			//s += "<tr><td height='1' colspan='2' background='http://images.hangame.co.kr/nhn/hangame/ps/images/bubble_dotline.gif'></td></tr>\n";
			s += "     <tr> \n";
			s += "      <td colspan='2' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_lineblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_lineblink.gif' width='1' height='1'></td>\n";
				
			s += "     </tr>\n";
		}
	}

	s += "     <tr> \n";
	s += "      <td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_zeroblink.gif' width='7' height='7'></td>\n";
	s += "     </tr>\n";
	s += "    </table>\n";
	s += "   </td>\n";
	s += "   <td width='1' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
	s += "  </tr>\n";
	s += "  <tr> \n";
	s += "   <td colspan='3' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
	s += "  </tr>\n";
	s += " </table>\n";
	//s += "</div>\n";

	
	oDiv = menuItem.oMainMenu;
	
	oDiv.style.position = "absolute";
	oDiv.style.left = "0px";
	oDiv.style.top = "0px";
	oDiv.style.visibility = "hidden";
	oDiv.style.backgroundColor = "white";
	oDiv.style.border = "0px";
	oDiv.style.padding = "0px 0px 0px 0px";
	if ( menuItem.nFading > 0 )
		oDiv.style.filter ="progid:DXImageTransform.Microsoft.Fade(duration=" + menuItem.nFading + ")";
	
	oDiv.onmouseleave = menu_ShowArea_OnMouseLeave;
	oDiv.onmouseenter = menu_ShowArea_OnMouseEnter;
	// ÀÌº¥Æ® ÇÚµé·¯¿¡¼­ event °´Ã¼¸¦ ¹Ù¸£°Ô ¾ò¾î¿À±â À§ÇØ¼­..
	oDiv.eventWindowName = menuItem.eventWindowName;
	
	
	oDiv.innerHTML = s;

}


/////////////////////////////////////////
// Default Avatar-Menu Implemetation
/////////////////////////////////////////
var SERVICE_AVATAR 	= "avatar";
var SERVICE_MEMBER 	= "member";
var SERVICE_ITEM 	= "item";

function getServiceHost(ServiceName) {
	var hostName = location.host;
	if ( hostName.search(/local/g) >= 0 )
		return "http://local-"+ServiceName+".hangame.com";
	else if ( hostName.search(/dev/g) >= 0 )
		return "http://dev-"+ServiceName+".hangame.com";
	else if ( hostName.search(/alpha/g) >= 0 )
		return "http://alpha-"+ServiceName+".hangame.com";
	else if ( hostName.search(/beta/g) >= 0 )
		return "http://beta-"+ServiceName+".hangame.com";
	else
		return "http://"+ServiceName+".hangame.com";
}

function avmenu_goHancoinRecharge()
{
	var rurl = location.href;
	var chargeUrl = getServiceHost(SERVICE_AVATAR)+"/charge.nhn?RURL="+escape(rurl);
	/*
	if ( location.host.search(/local|dev/g)>=0 )
		chargeUrl = "http://dev-avatar.hangame.com/charge.nhn?RURL="+rurl;
	else if ( location.host.search(/alpha/g)>=0 )
		chargeUrl = "http://alpha-avatar.hangame.com/charge.nhn?RURL="+rurl;
	else
		chargeUrl = "http://avatar.hangame.com/charge.nhn?RURL="+rurl;
		*/
	var win = openWin(chargeUrl,'hancoin_input', 540, 540);
}

function avmenu_goFindFriend()
{
	top.location.href = getServiceHost(SERVICE_MEMBER)+"/myinfo/friendfind.nhn";
	/*
	if ( location.host.search(/local|dev/g)>=0 )
		top.location.href = "http://dev-member.hangame.com/myinfo/friendfind.nhn";
	else if ( location.host.search(/alpha/g)>=0 )
		top.location.href = "http://alpha-member.hangame.com/myinfo/friendfind.nhn";
	else if ( location.host.search(/beta|prejsp|prewww/g)>=0 )
		top.location.href = "http://beta-member.hangame.com/myinfo/friendfind.nhn";
	else
		top.location.href = "http://member.hangame.com/myinfo/friendfind.nhn";
		*/
}

function avmenu_goSMS()
{
	var win = openWin("http://mobile.hangame.com/smscenter/mobile_sms_index.php", "sms", 710,600);
}


function avmenu_goMobileDownload()
{
	var sUrl = "";
	var hostName = location.host;
	if ( hostName.search(/local|dev|alpha/g) >= 0  )
		sUrl = "http://han880.hangame.com/han2/payment/forwardingAvatar.jsp";
	else
		sUrl = "http://mobile.hangame.com/payment/forwardingAvatar.jsp";
	var win = openWin(sUrl,"Mobile",420,520,"no");
}	

function avmenu_goMembershipMark()
{
	var sUrl = getServiceHost(SERVICE_AVATAR,location.host)+"/plus/membershipMark.nhn";
	/*
	if ( location.host.search(/alpha|fkiller|dev/g) >= 0 )
		sUrl = "http://alpha-avatar.hangame.com/membershipMark.nhn";
	else if ( location.host.search(/beta|prejsp|prewww/g) >= 0 )
		sUrl = "http://beta-avatar.hangame.com/membershipMark.nhn";
	else
		sUrl = "http://avatar.hangame.com/membershipMark.nhn";
		*/
	var win = openWin(sUrl,"membership",420,620,"no");
}

function avmenu_goAvatar()
{
	top.location.href = getServiceHost(SERVICE_AVATAR)+"/main.nhn";
	/*
	if ( location.host.search(/alpha|fkiller|dev/g) >= 0 )
		top.location.href = "http://alpha-avatar.hangame.com/main.nhn";
	else if ( location.host.search(/beta|prejsp|prewww/g) >= 0 )
		top.location.href = "http://beta-avatar.hangame.com/main.nhn";
	else
		top.location.href = "http://avatar.hangame.com/main.nhn";
		*/
}

function avmenu_goAvatarBox()
{
	top.location.href = getServiceHost(SERVICE_MEMBER)+"/myinfo/myavatar.nhn?group=avatar";
	/*
	if ( location.host.search(/alpha|fkiller|dev/g) >= 0 )
		top.location.href = "http://alpha-member.hangame.com/myinfo/myavatar.nhn?group=avatar";
	else if ( location.host.search(/beta|prejsp|prewww/g) >= 0 )
		top.location.href = "http://beta-member.hangame.com/myinfo/myavatar.nhn?group=avatar";
	else
		top.location.href = "http://member.hangame.com/myinfo/myavatar.nhn?group=avatar";
		*/
}

function avmenu_goGuild()
{
	top.location.href="http://guild.hangame.com/index.nhn";
}

function avmenu_debug(sEventWindowName)
{
	var menuItem;
	var oElem;
	
	if ( sEventWindowName == null || sEventWindowName == "self" || sEventWindowName == "")
		oElem = event.srcElement;
	else if ( sEventWindowName == "parent" )
		oElem = parent.event.srcElement;
	else
		oElem = eval(sEventWindowName).event.srcElement;

	while ( oElem )
	{
		if ( oElem.hgobject == "menu" )
		{
			menuItem = menu_getMenuItem(oElem);
			break;
		}
		oElem = oElem.parentElement;
	}

	while ( menuItem )
	{
		if ( !menuItem.oParentMenuItem )
			break;
		menuItem = menuItem.oParentMenuItem;
	}
	
	if ( menuItem && menuItem.oAvItem )
	{
		alert(menuItem.oAvItem.avatarID);
	}	
	
}

function avmenu_changeAvatarFace(sFace,sEventWindowName)
{
	var menuItem;
	var oElem;
	
	if ( sEventWindowName == null || sEventWindowName == "self" || sEventWindowName == "")
		oElem = event.srcElement;
	else if ( sEventWindowName == "parent" )
		oElem = parent.event.srcElement;
	else
		oElem = eval(sEventWindowName).event.srcElement;
		
	while ( oElem )
	{
		if ( oElem.hgobject == "menu" )
		{
			menuItem = menu_getMenuItem(oElem);
			break;
		}
		oElem = oElem.parentElement;
	}

	while ( menuItem )
	{
		if ( !menuItem.oParentMenuItem )
			break;
		menuItem = menuItem.oParentMenuItem;
	}
	
	if ( menuItem && menuItem.oAvItem )
	{
		menuItem.oAvItem.changeFace(sFace,true);
	}

}

/////////////////////////////////////////////////////////
////  06.09.14 ¸®´º¾ó½Ã »ç¿ë. a ÅÂ±×³» css ¸¦ style·Î ¼ÂÆÃÇÏ±â À§ÇÑ ÇÔ¼öµé  joajoau
/////////////////////////////////////////////////////////
function setStyleOn(name) {
	document.getElementById(name).style.textDecoration = "underline";
}
function setStyleOff(name) {
	document.getElementById(name).style.textDecoration = "none";
}
function setImageOn(name) {
	document.getElementById(name).style.borderColor = "#D2D2D2";
}
function setImageOff(name) {
	document.getElementById(name).style.borderColor = "#EBEBEB";
}


/////////////////////////////////////////
// Browser Version Check
/////////////////////////////////////////

function menu_checkBrowser()
{
	var agt=navigator.userAgent.toLowerCase();

	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);

	// *** BROWSER VERSION ***
	// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
	var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	
	var is_ie3    = (is_ie && (is_major < 4));
	var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
	var is_ie4up  = (is_ie && (is_major >= 4));
	var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
	var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
	var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
	var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
	var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
	var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);
	
	menu_browser_ie6up = is_ie6 && is_ie6up;
	menu_browser_ie55up = is_ie5_5 || is_ie5_5up || is_ie6 || is_ie6up;

}


/////////////////////////////////////////
// Cookie 
/////////////////////////////////////////

function av_getCookie(n)
{
	var ckLogin = av_getStrCookie("login");
	if (ckLogin=="" || ckLogin=="undefined" || ckLogin==null) return "";

	var sList = ckLogin.split("%2C");
	if (n < sList.length) return sList[n];

	return "";
}

function av_getStrCookie(sName)
{
	var aRec, aCook = document.cookie.split("; ");

	for (var i = 0; i<aCook.length; i++) {
		aRec = aCook[i].split("=");
		if (sName.toLowerCase()==unescape(aRec[0].toLowerCase())) return aRec[1];
	}
	return "";
}

function av_setStrCookie(sName, sValue)
{
	document.cookie = sName + "=" + sValue + ";path=/avatar/;"; //domain=" + av_getFixDomain();
	return "";
}


function av_getFixDomain()
{
	var s = document.domain;
	if ( s.indexOf("naver.com") >= 0 ) {
		return "naver.com";
	}
	else if ( s.indexOf("hangame.com") >= 0 ) {
		return "hangame.com";
	}
	else {
		//var n = s.indexOf(".");
		//return s.substring(n + 1, s.length);
		return "";
	}
}

/////////////////////////////////////////
// Default Implmentations
/////////////////////////////////////////

function getAvShowItemObj() {
	return _avShowItem;
}

// 2004.07.29
// this function assumes that a div element with id "_avatarShow" exists in this document
// this function assumes that a global variable "_avShowItem" exists
//  when a global variable "_avShowItem" is absent, this makes a global variable "_avShowItem".
// this function displays basic avatar when cookies are absent

function av_defaultShowSelfAvatar(nPosition, sIFrame, avatarId) {

	av_avatarId = avatarId;
	var oShowElement = document.all._avatarShow;
	var pos = 7;
	if ( typeof(nPosition) == "number" && nPosition >= 0 )
		pos = nPosition;

	if ( typeof(oShowElement) == "object" ) {
		var avMenu;
		var avSubMenu;
		if ( sIFrame == "iframe" ) {
			avMenu = new menu_FloatMenu(null,pos,null,-1,"",0.3,parent.document,window.name,"parent");
			avSubMenu = new menu_FloatMenu(null,pos,avMenu,0,"",0.3,parent.document,window.name,"parent");
		} else {
			avMenu = new menu_FloatMenu(null,pos,null);
			avSubMenu = new menu_FloatMenu(null,pos,avMenu,0);
		}
		/*
		if ( typeof(avatarId)=="undefined" || avatarId==null ) {
			avatarId = getCookie(CK_AVATARID);
		}*/
		//var sex = getCookie(CK_SEX);
		var sex = getJsCookie(JS_SEX);
		
		if ( avatarId && avatarId.length > 0 && avatarId.length != 26 && sex && sex.length == 1 ) 
			_avShowItem = new av_AVItem(avatarId,sex,oShowElement,false,true,avMenu);
		else
			_avShowItem = new av_AVItem("",sex,oShowElement,false,true,avMenu);
	
		_avShowItem.showAvatar();
		
	} else {
		setTimeout("av_defaultShowSelfAvatar(" + pos + ",'" + sIFrame + "','" + avatarId + "');",500);	
	}
}

function av_LogoutShowSelfAvatar(avatarId) {

	var oShowElement = document.all._avatarShow;

	if ( typeof(oShowElement) == "object" ) {
		_avShowItem = new av_AVItem(avatarId,"F",oShowElement);
		_avShowItem.showAvatar();
	} else {
		setTimeout("av_LogoutShowSelfAvatar('" + avatarId + "');",500);	
	}
}


//////////////////////////////////
// Å¸ÀÎ ¾ÆÀÌµð Å¬¸¯
//////////////////////////////////

// global variable
// be careful not to duplicate
var avmenu_PersonalMenuTargetId = "";
var avmenu_PersonalMenuSelfId = "";
var avPersonalMenu; // menu object



function avpersonalmenu_showMenu(showMemberId, selfMemberId, nPos)
{
	// do not show in case of self 
	//if ( selfMemberId != null && showMemberId == selfMemberId )
	//	return;

	var nMenuPosition = 9; //9=right down, 7=left down
	if ( typeof(nPos)=="number" )
		nMenuPosition = nPos;
		
	// check menu object
	if ( typeof(avPersonalMenu) != "object" )
		 avPersonalMenu = new menu_FloatMenu(menu_createActions_PersonalMenu(),nMenuPosition,null,null,"menu_createHTML_PersonalMenu");
		 
	event.cancelBubble = true;
	var x,y;

	// doctype »ç¿ëÀ¸·Î ÀÎÇØ document.body.scrollLeft ÀÌ ¾È¸Ô´Â °æ¿ì¿¡ ´ëÇÑ º¯°æ
	x = event.clientX + (document.documentElement.scrollLeft + document.body.scrollLeft);
	y = event.clientY + (document.documentElement.scrollTop + document.body.scrollTop);
	//¹ÙµÏ ¶§¹®¿¡... event.y »ç¿ë ¾ÈÇÔ. 060117 ¿µ³²
	//x = event.screenX - self.screenLeft + document.body.scrollLeft;
	//y = event.screenY - self.screenTop + document.body.scrollTop;
	//x = event.x + document.body.scrollLeft;
	//y = event.y + document.body.scrollTop;
	
	avmenu_PersonalMenuTargetId = showMemberId;
	avmenu_PersonalMenuSelfId = selfMemberId;
	
	// safe show
	//avPersonalMenu.showMenu(x,y);
	menu_safeShow(avPersonalMenu.gIndex,x,y)
	
}


// menu item
function menu_createActions_PersonalMenu(menuItem)
{
	var arrActions;
	//var isRealName = getCookie(CK_IDVALID)=="Y";
	var isRealName = getJsCookie(JS_IDVALID)=="Y";
	
	if ( typeof(hw_core_checkLogin)=="function" && hw_core_checkLogin() == true ) {
		if ( isRealName ) {
				arrActions = new Array(
				//new menu_Action("menu","È¨ÇÇº¸±â","avpersonalmenu_goHompy();"),
				//new menu_Action("bar"),
				new menu_Action("menu","ÂÊÁöº¸³»±â","avpersonalmenu_goSendNote();"),
				new menu_Action("bar"),
				//new menu_Action("menu","1:1 ´ëÈ­","avpersonalmenu_goOneToOneChat();"),
				//new menu_Action("bar"),
				new menu_Action("menu","Ä£±¸½ÅÃ»","avpersonalmenu_goMakeFriend();")
				//new menu_Action("bar"),
				//new menu_Action("menu","°ÔÀÓ½ÅÃ»","avpersonalmenu_goInviteGame();")
				);
		} else {
				arrActions = new Array(
				//new menu_Action("menu","È¨ÇÇº¸±â","avpersonalmenu_goHompy();"),
				//new menu_Action("bar"),
				new menu_Action("menu","ÂÊÁöº¸³»±â","avpersonalmenu_goSendNote();")
				//new menu_Action("bar"),
				//new menu_Action("menu","1:1 ´ëÈ­","avpersonalmenu_goOneToOneChat();")
				//new menu_Action("bar"),
				//new menu_Action("menu","°ÔÀÓ½ÅÃ»","avpersonalmenu_goInviteGame();")
				);				
		}
	} else {
		if ( isRealName ) {
			arrActions = new Array(
			//new menu_Action("menu","È¨ÇÇº¸±â","avpersonalmenu_goHompy();"),
			//new menu_Action("bar"),
			new menu_Action("menu","ÂÊÁöº¸³»±â","avpersonalmenu_goSendNote();"),
			new menu_Action("bar"),
			new menu_Action("menu","Ä£±¸½ÅÃ»","avpersonalmenu_goMakeFriend();")
			);
		} else {
			arrActions = new Array(
			//new menu_Action("menu","È¨ÇÇº¸±â","avpersonalmenu_goHompy();"),
			//new menu_Action("bar"),
			new menu_Action("menu","ÂÊÁöº¸³»±â","avpersonalmenu_goSendNote();")
			);
		}
	}
	
	return (arrActions);
}

// menu-implementations
function avpersonalmenu_goHompy()
{
	/*
	var svrBlog = "";
	if ( location.host.search(/alpha|fkiller|dev/g) >= 0 )
		svrBlog = "http://alpha-hompy.hangame.com";
	else 
		svrBlog = "http://hompy.hangame.com";
	window.open(svrBlog + "/index.nhn?userid=" + avmenu_PersonalMenuTargetId + "&msg=hangame", "hompy", "width=920, height=620, resizable=yes, status=yes");
	*/
} 	
	

function avpersonalmenu_goSendNote()
{
	hw_func_sendMemo(avmenu_PersonalMenuTargetId);
}

function avpersonalmenu_goOneToOneChat()
{
	hw_func_inviteUser(avmenu_PersonalMenuTargetId);
}

function avpersonalmenu_goMakeFriend()
{
	hw_func_addBuddy(avmenu_PersonalMenuTargetId);
}

// °ÔÀÓ½ÅÃ»
function avpersonalmenu_goInviteGame() 
{
	hw_func_inviteGame(avmenu_PersonalMenuTargetId);
}

function menu_createHTML_PersonalMenu(menuItem)
{
	var s = "";
	var arrActions;
	var action;
	var tdmouseenter, tdmouseleave, tdmouseover, tdmouseclick;
	var trmouseenter, trmouseleave;

	arrActions = menuItem.arrActions;
	
	var selfWindowNameDot = (menuItem.selfWinodwName=="self") ? "" : (menuItem.selfWinodwName+".");
	var onClickFunc;
	var re = /'/g;
	
		s += "		 <table width='100' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		  <tr> \n";
		s += "		   <td  background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' style='padding:0 0 0 15' colspan='3'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		  </tr>\n";
		s += "		  <tr> \n";
		s += "		   <td width='1' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
		s += "		   <td width='100%' align='center'>\n";
		s += "		    <table width='84%' border='0' cellspacing='0' cellpadding='0'>\n";
		s += "		     <tr> \n";
		s += "		      <td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_zeroblink.gif' width='7' height='7'></td>\n";
		s += "		     </tr>\n";
	
	for ( var i = 0 ; i < arrActions.length ; i++ )
	{
		action = arrActions[i];
		tdmouseenter = " onmouseenter='this.style.cssText=\"" + (action.enabled ? action.styleTDHover : action.styleTDDisabled) + "\";' ";
		tdmouseleave = " onmouseleave='this.style.cssText=\"" + (action.enabled ? action.styleTDDefault : action.styleTDDisabled) + "\";' ";
		trmouseenter = " onmouseenter='this.style.cssText=\"" + (action.enabled ? action.styleTRHover : action.styleTRDisabled) + "\";' ";
		trmouseleave = " onmouseleave='this.style.cssText=\"" + (action.enabled ? action.styleTRDefault : action.styleTRDisabled) + "\";' ";
		tdmouseover = (action.expand && action.enabled) ? (" onmouseover='" + selfWindowNameDot + "menu_showSubMenu(\"" + menuItem.eventWindowName + "\",this," + i + ");this.style.textDecoration=\"underline\";' ") : (" onmouseover='" + selfWindowNameDot + "menu_hideAllSubMenus(\"" + menuItem.eventWindowName + "\",this);this.style.textDecoration=\"underline\";' ");
		tdmouseout = " onmouseout='this.style.textDecoration=\"none\";' ";
		onClickFunc = (action.onclick == null) ? "" : action.onclick;
		onClickFunc = onClickFunc.replace(re,"\"");
		tdmouseclick = action.onclick ? " onclick='" + selfWindowNameDot + onClickFunc + ";' " : " onclick='" + selfWindowNameDot + "menu_clickDummy(\"" + menuItem.eventWindowName + "\");' ";

		if ( action.type == "menu" )
		{
			//s += "<tr " + trmouseenter + trmouseleave + "><td style=\"" + ((action.enabled) ? action.styleTDDefault : action.styleTDDisabled) + "\"" + tdmouseenter + tdmouseleave + tdmouseover + tdmouseclick + ">" + action.urlBulletImgTag + " " + action.title + "</td><td width='9' height='7'>" + ( (action.expand) ? " " + action.urlExpandImgTag : "" ) + "</td></tr>\n";
			s += "     <tr> \n";
			s += "      <td align='left' style='font-family:µ¸¿ò; font-size:12px; margin:0px; color:#464646; letter-spacing:-1px; cursor:hand; padding:5 4 3 4' " + tdmouseclick + tdmouseover + tdmouseout + "><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_bullet.gif' width='3' height='3' align='absmiddle'> " + action.title + "</td>\n";
			if ( action.expand ) 
				s += "<td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_subgo.gif' width='6' height='7'></td>\n";
			else
				s += "<td>&nbsp;</td>\n";
			s += "     </tr>			\n";
		}
		else if ( action.type == "bar" )
		{
			//s += "<tr><td height='1' colspan='2' background='http://images.hangame.co.kr/nhn/hangame/ps/images/bubble_dotline.gif'></td></tr>\n";
			s += "     <tr> \n";
			s += "      <td colspan='2' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_lineblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_lineblink.gif' width='1' height='1'></td>\n";
				
			s += "     </tr>\n";
		}
	}

	s += "     <tr> \n";
	s += "      <td><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_zeroblink.gif' width='7' height='7'></td>\n";
	s += "     </tr>\n";
	s += "    </table>\n";
	s += "   </td>\n";
	s += "   <td width='1' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
	s += "  </tr>\n";
	s += "  <tr> \n";
	s += "   <td colspan='3' background='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif'><img src='http://images.hangame.co.kr/nhn/hangame/avatar/menu/drop_frameblink.gif' width='1' height='1'></td>\n";
	s += "  </tr>\n";
	s += " </table>\n";
	//s += "</div>\n";

	
	oDiv = menuItem.oMainMenu;
	
	oDiv.style.position = "absolute";
	oDiv.style.left = "0px";
	oDiv.style.top = "0px";
	oDiv.style.visibility = "hidden";
	oDiv.style.backgroundColor = "white";
	oDiv.style.border = "0px";
	oDiv.style.padding = "0px 0px 0px 0px";
	if ( menuItem.nFading > 0 )
		oDiv.style.filter ="progid:DXImageTransform.Microsoft.Fade(duration=" + menuItem.nFading + ")";
	
	oDiv.onmouseleave = menu_ShowArea_OnMouseLeave;
	oDiv.onmouseenter = menu_ShowArea_OnMouseEnter;
	// ÀÌº¥Æ® ÇÚµé·¯¿¡¼­ event °´Ã¼¸¦ ¹Ù¸£°Ô ¾ò¾î¿À±â À§ÇØ¼­..
	oDiv.eventWindowName = menuItem.eventWindowName;
	
	
	oDiv.innerHTML = s;

}
