//###########################################################################################################
//                 ¸®´ÏÁöII(http://www.lineage2.co.kr/) ³»ºñ°ÔÀÌ¼Ç ±¸ÃàÀ» À§ÇÑ °´Ã¼
//###########################################################################################################
//                                                                                            version : 0.0.2
//                                                                                  first scripted : 04. 7.7
//                                                            programmed by NaraZzang(NCsoft GPU Design Team)
//###########################################################################################################


//############################################################################################################
//ÇÊ¿äÇÑ »ó¼ö
//############################################################################################################

//¸Þ´ºÀÇ Ã³¸® ÇüÅÂ¿¡ °üÇÑ ¼Ó¼º°ª 
nzCmdTypeNone =																	0;
nzCmdTypeUrl = 																	1;
nzCmdTypeFunction = 															2;


//############################################################################################################
//¸Þ´ºset °´Ã¼ prototype
//############################################################################################################
function nzMenuSet() {
	var args = nzMenuSet.arguments;
	
	//property
	this.id = args[0];														//¸Þ´º¼Â Å×ÀÌºíÀÇ id
	this.initialMenu = args[1];										//ÃÖÃÊ¿¡ ¼±ÅÃµÈ ¸Þ´ºÀÇ ÀÎµ¦½º
	this.selectedMenu = args[1];									//ÇöÀç ¼±ÅÃµÈ ¸Þ´ºÀÇ ÀÎµ¦½º(Åä±Û ±â´ÉÀ» À§ÇÑ ¼Ó¼º)
	this.selectedSubMenu = args[2];								//¼±ÅÃµÈ ¼­ºê¸Þ´ºÀÇ ÀÎµ¦½º(·Ñ¿À¹ö¸¦ À§ÇÑ ¼Ó¼º)

	//method
	this.displayMenu = nzMenuSet_displayMenu;			//¸Þ´º¼ÂÀ» displayÇØÁÖ´Â ÇÔ¼ö
	
	//sub object
	this.menu = new Array();											//º» °´Ã¼¾È¿¡ Æ÷ÇÔµÉ ¸Þ´ºµéÀÇ ¹è¿­
	this.menu.append = nzMenuSet_menu_append;			//nzMenu ÀÎ½ºÅÏ½º¸¦ ÇÒ´çÇÏ´Â ¸Þ¼Òµå
}

/***********************************************************************************************************
 nzMenuSet.displayMenu() : ¼­ºê¸Þ´º °´Ã¼¸¦ »ý¼ºÇÏ´Â ¸Þ¼Òµå
						 strObj´Â ½ÇÁ¦ »ý¼ºÇÑ nzMenuSet°´Ã¼ÀÇ º¯¼ö¸í
***********************************************************************************************************/
function nzMenuSet_displayMenu(strObj) {
	result = "<table id='" + this.id + "' cellpadding='0' cellspacing='0' border='0'>";

	for(i = 0; i < this.menu.length; i++) {
		//¸Þ´ºÀÇ Æ÷Ä¿½Ì ¿©ºÎ¿¡ µû¸¥ ºÐ·ù
		if(this.selectedMenu == i) {
			switch(this.menu[i].cmdType) {
				case nzCmdTypeNone :
					result += "<tr><td><img src='" + this.menu[i].focusImg + "' id='" + this.menu[i].imgId + "' border='0'></td></tr>";
					break;
				case nzCmdTypeUrl :
					result += "<tr><td><img src='" + this.menu[i].focusImg + "' id='" + this.menu[i].imgId + "' border='0' onClick='location.href=\"" + this.menu[i].cmdText + "\";' style='cursor:hand;'></td></tr>";
					break;
				case nzCmdTypeFunction :
					result += "<tr><td><img src='" + this.menu[i].focusImg + "' id='" + this.menu[i].imgId + "' border='0' onClick='" + this.menu[i].cmdText + "' param='" + i + "' style='cursor:hand;'></td></tr>";
					break;
				default : return false;
			}
		}
		else {
			switch(this.menu[i].cmdType) {
				case nzCmdTypeNone :
					result += "<tr><td><img src='" + this.menu[i].offImg + "' id='" + this.menu[i].imgId + "' onMouseOver='this.src=\"" + this.menu[i].onImg + "\";' onMouseOut='this.src=\"" + this.menu[i].offImg + "\";' border='0'></td></tr>";
					break;
				case nzCmdTypeUrl :
					result += "<tr><td><img src='" + this.menu[i].offImg + "' id='" + this.menu[i].imgId + "' onMouseOver='this.src=\"" + this.menu[i].onImg + "\";' onMouseOut='this.src=\"" + this.menu[i].offImg + "\";' border='0' onClick='location.href=\"" + this.menu[i].cmdText + "\";' style='cursor:hand;'></td></tr>";
					break;
				case nzCmdTypeFunction :
					result += "<tr><td><img src='" + this.menu[i].offImg + "' id='" + this.menu[i].imgId + "' onMouseOver='rollOverMenu(" + strObj + ", this, \"" + this.menu[i].onImg + "\");' onMouseOut='rollOverMenu(" + strObj + ", this, \"" + this.menu[i].offImg + "\");' border='0' onClick='" + this.menu[i].cmdText + "' param='" + i + "' style='cursor:hand;'></td></tr>";
					break;
				default : return false;
			}
		}
		
		//¼±ÅÃµÈ ¼­ºê¸Þ´º ¸ñ·ÏÀÇ display Ã³¸®
		if(this.menu[i].subMenu.length > 0) {
			result += "<tr><td>";
			result += "<table id='" + this.menu[i].id + "' cellpadding='0' cellspacing='0' border='0'>";
			
			for(j = 0; j < this.menu[i].subMenu.length; j++) {
				if(this.selectedMenu == i && this.selectedSubMenu == j)	
					result += "<tr><td><img src='" + this.menu[i].subMenu[j].focusImg + "' id='" + this.menu[i].subMenu[j].id + "' border='0'";

				else {
					result += "<tr><td><img src='" + this.menu[i].subMenu[j].offImg + "' id='" + this.menu[i].subMenu[j].id + "' onMouseOver='this.src=\"" + this.menu[i].subMenu[j].onImg + "\";' onMouseOut='this.src=\"" + this.menu[i].subMenu[j].offImg + "\";' border='0'";
			
				}
	
				switch(this.menu[i].subMenu[j].cmdType) {
					case	nzCmdTypeNone :
						result += ">";
						break;
					case	nzCmdTypeUrl :
						result += " onClick='location.href=\"" + this.menu[i].subMenu[j].cmdText + "\";' style='cursor:hand;'>";
						break;
					case	nzCmdTypeFunction :
						result += " onClick='" + this.menu[i].subMenu[j].cmdText + "' style='cursor:hand;'>";
				}
	
				result += "</td></tr>";
			}
				
			result += "</table></td></tr>";
		}
		else {
			result += "";
		}
			
	}

	result += "</table>";
	
	document.write(result);
}

/***********************************************************************************************************
 nzMenuSet.menu.append() : ¸Þ´ºÄÃ·¢¼Ç¿¡ nzMenu ÀÎ½ºÅÏ½º¸¦ ÇÒ´çÇÏ´Â ¸Þ¼Òµå
***********************************************************************************************************/
function nzMenuSet_menu_append(obj) {
	if(obj.constructor != nzMenu)	return false;
	
	this[this.length] = obj;
	return this.length - 1;
}


//############################################################################################################
//¸Þ´º °´Ã¼ prototype
//############################################################################################################
function nzMenu() {
	var args = nzMenu.arguments;
	
	//property
	this.id = args[0];														//id
	this.imgId = args[1];
	this.offImg = args[2];													//mouseOutÀÏ¶§ÀÇ ÀÌ¹ÌÁö
	this.onImg = args[3];													//mouseOnÀÏ¶§ÀÇ ÀÌ¹ÌÁö
	this.focusImg = args[4];
	this.layerId = args[5];													//ÇÏÀ§ ¸Þ´ºµéÀ» Æ÷ÇÔÇÒ ·¹ÀÌ¾îÀÇ id
	this.cmdType = args[6];													//Ã³¸®µÉ ÇüÅÂ
	this.cmdText = args[7];													//Ã³¸®µÉ ¹®±¸
	
	//method
	this.createSubMenu = nzMenu_createSubMenu;
	
	//sub object
	this.subMenu = new Array();												//º» ¸Þ´º¿¡ Æ÷ÇÔµÉ ¼­ºê¸Þ´ºÀÇ ¹è¿­
	this.subMenu.append = nzMenu_subMenu_append;							//¼­ºê ¸Þ´º¸¦ Ãß°¡ÇÏ´Â ÇÔ¼ö

}

/***********************************************************************************************************
 nzMenu.createSubMenu() : ¼­ºê¸Þ´º °´Ã¼¸¦ »ý¼ºÇÏ´Â ¸Þ¼Òµå
***********************************************************************************************************/
function nzMenu_createSubMenu() {
	var args = nzMenu_createSubMenu.arguments;
	
	//°´Ã¼ ¹ÝÈ¯
	return new nzSubMenu(args[0], args[1], args[2], args[3], args[4], args[5]);
}

/***********************************************************************************************************
 nzMenu.subMenu.append() : ¼­ºê¸Þ´º ÄÃ·º¼Ç¿¡ nzSubMenuÅ¬·¡½ºÀÇ ÀÎ½ºÅÏ½º¸¦ Ãß°¡ÇÏ´Â ÇÔ¼ö
                           ¼º°øÀûÀ¸·Î ÇÒ´çµÈ °æ¿ì Ãß°¡µÈ nzSubMenu°´Ã¼ÀÇ ÀÎµ¦½º¸¦ ¹ÝÈ¯
***********************************************************************************************************/
function nzMenu_subMenu_append(obj) {
	//ÀÎ¼ö°¡ nzSubMenuÅ¸ÀÔÀÇ ÀÎ½ºÅÏ½ºÀÎÁö ¿©ºÎ È®ÀÎ
	if(obj.constructor != nzSubMenu)	return false;
	
	this[this.length] = obj;
	return this.length - 1;
}


//############################################################################################################
//¼­ºê¸Þ´º °´Ã¼ prototype
//############################################################################################################
function nzSubMenu() {
	var args = nzSubMenu.arguments;
	
	this.id = args[0];														//id
	this.offImg = args[1];													//mouseOutÀÏ¶§ÀÇ ÀÌ¹ÌÁö
	this.onImg = args[2];													//mouseOnÀÏ¶§ÀÇ ÀÌ¹ÌÁö
	this.focusImg = args[3];												//Æ÷Ä¿½ÌÀÏ¶§ÀÇ ÀÌ¹ÌÁö
	this.cmdType = args[4];													//Ã³¸®µÉ ÇüÅÂ
	this.cmdText = args[5];													//Ã³¸®µÉ ¹®±¸(ÇÔ¼ö or URL)
}

//############################################################################################################
//nzMenuSet °´Ã¼¿¡¼­ ¸Þ´º Åä±ÛÀ» À§ÇÑ Àü¿ëÇÔ¼ö
//############################################################################################################
function rollOverMenu(obj, img, src) {
	//ÇöÀç ¼±ÅÃµÇÁö ¾ÊÀº »óÈ²ÀÏ¶§¸¸ ·Ñ¿À¹ö°¡ Àû¿ëµÇµµ·Ï ÇÑ´Ù.
	if(obj.selectedMenu != img.param)	img.src = src;
}

//############################################################################################################
//nzMenuSet °´Ã¼¿¡¼­ ¸Þ´º Åä±ÛÀ» À§ÇÑ Àü¿ëÇÔ¼ö
//############################################################################################################
function toggleMenu() {
	var args = toggleMenu.arguments;

	var obj = args[0];
	var mIndex = args[1];
	var url = args[2];

	if(obj.constructor != nzMenuSet)	return false;
	
	//urlÀÌ ÀÖ´Â °æ¿ì
	if(args.length == 3) {
		if(obj.selectedMenu != mIndex)	location.href = url;
	}
	
	if(obj.selectedMenu == mIndex) {
		//¼­ºê ¸Þ´º Á¢±â
		document.all[obj.menu[mIndex].layerId].style.display = nzDispNone;

		//¸Þ´º ÀÌ¹ÌÁö º¯°æ
		document.all[obj.menu[mIndex].imgId].src = obj.menu[mIndex].onImg;	
		
		obj.selectedMenu = -1;
	}
	else {
		//±âÁ¸ÀÇ È°¼ºÈ­µÈ ¸Þ´º °¨Ãß±â
		if(obj.selectedMenu > -1) {
			if(obj.menu[obj.selectedMenu].subMenu.length > 0)	document.all[obj.menu[obj.selectedMenu].layerId].style.display = nzDispNone;
			
			//±âÁ¸¿¡ ¼±ÅÃµÈ ¸Þ´º°¡
			//ÃÖÃÊ¿¡ ¼±ÅÃµÇ¾îÁø ¸Þ´º°¡ ¾Æ´Ï°Å³ª
			//¼­ºê¸Þ´º°¡ ÇÒ´çµÈ ¸Þ´ºÀÎ °æ¿ì¿¡¸¸
			//ÀÌ¹ÌÁö¸¦ ¿ø·¡ ÀÌ¹ÌÁö·Î µ¹·ÁÁØ´Ù.
			if(obj.initialMenu != obj.selectedMenu || obj.menu[obj.selectedMenu].subMenu.length > 0)
				document.all[obj.menu[obj.selectedMenu].imgId].src = obj.menu[obj.selectedMenu].offImg;
			
		}		
			
		//»õ·Î ¼±ÅÃµÈ ¸Þ´º Æ÷Ä¿½Ì
		document.all[obj.menu[mIndex].imgId].src = obj.menu[mIndex].focusImg;
		//»õ·Î ¼±ÅÃµÈ ¸Þ´º º¸ÀÌ±â
		document.all[obj.menu[mIndex].layerId].style.display = nzDispBlock;
		
		//¼±ÅÃµÈ ¸Þ´ºÀÇ ÀÎµ¦½º º¯°æ
		obj.selectedMenu = mIndex;
	}

}

