var menuAjaxControl = function (strName)
{
	if (window.asadalAjaxConrol == null) { window.asadalAjaxConrol = []; }
	this.name							= strName || window.asadalAjaxConrol.length;
	window.asadalAjaxConrol[this.name]	= this;
	this.divIdName						= strName;
	this.debug							= false;

	this.paramKey						= [];
	this.paramVal						= [];

	this.type							= 'POST';
	this.dataType						= 'XML';
	this.host							= null;
	//this.action							= null;
	this.path							= null;
	//this.topimgpath						= null;
	//this.debugImg						= [];
}

menuAjaxControl.prototype.setParam = function (key, val)
{
	this.paramKey.push(key);
	this.paramVal.push(val);
}

menuAjaxControl.prototype.getDisplayRequest = function (debug)
{
	var ajaxObj		= new asadalAjax();

	this.changeState(ajaxObj);
	this.onLoad(ajaxObj);

	this.setAjaxFlag(ajaxObj);
	this.setAjaxParam(ajaxObj);

	ajaxObj.debug	= debug;
	this.debug		= debug;
	ajaxObj.ajaxSubmit();
}

menuAjaxControl.prototype.changeState = function (obj)
{
	var divIdName	= this.divIdName;
	var names		= '<center><img src="/image/design/listlayerimg/loading.gif"></center>';

	obj.onchange	= function (state)
	{
		//document.getElementById(divIdName).innerHTML = names;
	}
}

menuAjaxControl.prototype.onLoad = function (obj)
{
	var xmlDoc		= '';
	var objs		= this;
	var divIdName	= this.divIdName;

	obj.onload		= function (data)
	{
		if (data.xml != '')
		{
			document.getElementById(divIdName).innerHTML = objs.loadData(data);
		}
	}
}

menuAjaxControl.prototype.loadData = function (xmlDoc)
{
	if (this.debug == true) { this.debugToolOpenWin(xmlDoc, "풀다운 메뉴 디버그"); }
	return this.getBegin(xmlDoc);
}

menuAjaxControl.prototype.setAjaxFlag = function (obj)
{
	obj.type		= this.type;
	obj.dataType	= this.dataType;
	obj.host		= this.host;
	obj.path		= this.path;
}

menuAjaxControl.prototype.setAjaxParam = function (obj)
{
	var cnt	= this.paramKey.length;
	for (var i=0; i<cnt; i++) { obj.setParam(this.paramKey[i], this.paramVal[i]); }
}

menuAjaxControl.prototype.getBegin = function (xmlDoc)
{
	var obj		= xmlDoc.getElementsByTagName('top_menu');
	var cnt		= obj.length;

	var menus	=	'<table cellpadding="0" cellspacing="0" border="0">'
				+	'<tr>';
	for (var i=0; i<cnt; i++)
	{
		menus	+= this.getDivMenu(obj[i]);
	}
	menus		+	'</tr></table>';


	return menus;
}

menuAjaxControl.prototype.getDivMenu = function (TopMenuObj)
{
	var img			= decodeURIComponent(TopMenuObj.getAttribute('img'));
	var menu_link	= decodeURIComponent(TopMenuObj.getAttribute('link'));
	var usemenu		= decodeURIComponent(TopMenuObj.getAttribute('usemenu'));
	var area_id		= TopMenuObj.getAttribute('id') + "_area";
	var div_area_id	= area_id + "_menu_div";

	/*if (this.debug == true)			//디버그모드 작업중
	{
		this.debugImg[this.debugImg.length]		= img;
	}*/
	if (usemenu == 'false')
	{
		var div_menu	=	'<td id="' + area_id + '">';
	}
	else
	{
		var div_menu	=	'<td id="' + area_id + '" onmouseover="_MenuOn('+div_area_id+', '+area_id+')" onmouseout="_MenuOut()">'
	}
	if (menu_link != '')
	{
		div_menu		+=		'<a href="' + menu_link + '"><img src="' + img + '" border="0"></a>';
	}
	else
	{
		div_menu		+=		'<img src="' + img + '" border="0">';
	}

		div_menu		+= '<div id="' + div_area_id + '" class="divcate1">'
						+ '<table class="table_menucate1" style="text-align:left;">'
						+ '<tr>'
						+ '<td>'
						+'<table class="table_menucate2" border=0>'
						+ this.getMidMenu(TopMenuObj, area_id)
						+ '</table></td></tr></table></div></td>';
					
						
						
	return div_menu;
}

menuAjaxControl.prototype.getMidMenu = function (TopMenuObj, area_id)
{
	var obj		= TopMenuObj.getElementsByTagName('mid_menu');
	var cnt		= obj.length;
	var mid_menu= '';
	for (var i=0; i<cnt; i++)
	{
		var menulink	= decodeURIComponent(obj[i].getAttribute('link'));
		var menutxt		= decodeURIComponent(obj[i].getAttribute('txt'));
		var menucount	= decodeURIComponent(obj[i].getAttribute('count'));
		var menustyle	= decodeURIComponent(obj[i].getAttribute('styleClass'));
		menucount		= (menucount != 'null') ? " (" + menucount + ")" : "";
		menustyle		= (menustyle != "null") ? menustyle : "c2title";
		mid_menu		+=	'<tr>'
						+	'<td class="' + menustyle + '"><a href="' + menulink + '">' + menutxt + menucount + '</a></td></tr>\n'
						+	this.getSubMenu(obj[i], area_id, i);
	}

	return mid_menu;
}

menuAjaxControl.prototype.getSubMenu = function (MidMenuObj, area_id, cnf)
{
	var obj		= MidMenuObj.getElementsByTagName('sub_menu');
	var cnt		= obj.length;
	var menu_id	= area_id + "_sub_menu" + cnf;
	var div_id	= area_id + "_sub_menu_div" + cnf;
	

	var sub_menu= '';
	for (var i=0; i<cnt; i++)
	{
		var menulink	= decodeURIComponent(obj[i].getAttribute('link'));
		var menutxt		= decodeURIComponent(obj[i].getAttribute('txt'));
		var menucount	= decodeURIComponent(obj[i].getAttribute('count'));
		var menustyle	= decodeURIComponent(obj[i].getAttribute('styleClass'));
		var subMenuId	= menu_id + i;
		var subDivId	= div_id + i;
		var detailMenu	= this.getDetailMenu(obj[i]);
		var divMenuEvent= '';
		var divMenuDiv	= '';

		if (detailMenu)
		{
			divMenuEvent	= ' id="' + subMenuId + '"'
							+ ' onmouseout="javascript:_categoryout(2)"'
							+ ' onmouseover="javascript:_categoryon(\''+ subDivId +'\',\''+ subMenuId +'\', 2)"';
			divMenuDiv		= '<div id="'+subDivId+'" style="POSITION: absolute; visibility: hidden; Z-INDEX: 1;">'
							+ '<table class="table_menucate1">'
							+ '<tr>'
							+ '<td>'
							+ '<table class="table_menucate3">'
							+ detailMenu
							+ '</table></td></tr></table></div>';
		}

		menucount		= (menucount != "null") ? " (" + menucount + ")" : "";
		menustyle		= (menustyle != "null") ? menustyle : "c2normal";
		
		sub_menu		+=	'<tr'+ divMenuEvent +'>'
						+	'<td class="' + menustyle + '"><a href="' + menulink + '">ㆍ' + menutxt + menucount + '</a>'
						+			divMenuDiv
						+	'</td></tr>\n';
						
	}

	return sub_menu;
}
/*menuAjaxControl.prototype.getSubMenu = function (MidMenuObj)
{
	var obj		= MidMenuObj.getElementsByTagName('sub_menu');
	var cnt		= obj.length;

	var sub_menu= '';
	for (var i=0; i<cnt; i++)
	{
		var menulink	= decodeURIComponent(obj[i].getAttribute('link'));
		var menutxt		= decodeURIComponent(obj[i].getAttribute('txt'));
		var menucount	= decodeURIComponent(obj[i].getAttribute('count'));
		var menustyle	= decodeURIComponent(obj[i].getAttribute('styleClass'));
		menucount		= (menucount != "null") ? " (" + menucount + ")" : "";
		menustyle		= (menustyle != "null") ? menustyle : "c2normal";
		
		sub_menu		+=	'<tr>' + '\n'
						+	'	<td class="' + menustyle + '"><a href="' + menulink + '">ㆍ' + menutxt + menucount + '</a></td>\n'
						+	'</tr>';
	}

	return sub_menu;
}
*/
menuAjaxControl.prototype.getDetailMenu = function (SubMenuObj)
{
	var obj		= SubMenuObj.getElementsByTagName('detail_menu');
	var cnt		= obj.length;
	var detail_menu= '';
	for (var i=0; i<cnt; i++)
	{
		var menulink	= decodeURIComponent(obj[i].getAttribute('link'));
		var menutxt		= decodeURIComponent(obj[i].getAttribute('txt'));
		var menucount	= decodeURIComponent(obj[i].getAttribute('count'));
		var menustyle	= decodeURIComponent(obj[i].getAttribute('styleClass'));
		menustyle		= (menustyle != "null") ? menustyle : "c3normal";
		menucount		= (menucount != "null") ? " (" + menucount + ")" : "";
		
		detail_menu		+=	'<tr onmouseout="menuout()" onmouseover="menuon()">' + '\n'
						+	'<td class="' + menustyle + '"><a href="' + menulink + '">ㆍ' + menutxt + menucount + '</a></td></tr>\n';
						
	}
	return detail_menu;
}

menuAjaxControl.prototype.getParamDebug = function ()
{
	var string	= [];
	var cnt			= this.paramKey.length;
	for (var i=0; i<cnt; i++)
	{
		string[i]	= '<tr>' + "\n"
					+ '	<td width="65%" bgcolor="#E4E4E4">&nbsp;<span style="color: blue">' + this.paramKey[i] + '</span></td>' + "\n"
					+ '	<td width="35%" bgcolor="#FFFFFF">&nbsp;<span style="color: green">' + this.paramVal[i] + '</span></td></tr>\n';
					
	}
	return string.join("\n");
}

menuAjaxControl.prototype.debugToolOpenWin = function (xmlDoc, debugName)
{
	var size		= "width=" + 600 + ", height=" + 700 + ", scrollbars=yes";
	var NFW			= window.open("", "_blank", size);
	var string		= [];
		string[0]	= '<html>';
		string[1]	= '<head>';
		string[2]	= '<title>풀다운 메뉴 디버깅</title>';
		string[3]	= '</head>';
		string[4]	= '<body style="margin: 5px;">';
		string[5]	= '<table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="#868686">';
		string[6]	= '<tr>';
		string[7]	= '	<td height="50" align="center" colspan="2" bgcolor="#FFFFFF">&nbsp;<span style="color: blue; size: 12pt;"><b>넘겨주는 값</b></span></td>';
		string[8]	= '</tr>';
		string[9]	= '<tr>';
		string[10]	= this.getParamDebug();
		string[11]	= '</tr>';
		string[12]	= '</table>';
		string[13]	= '</body>';
		string[14]	= '</html>';
	NFW.window.focus();
	NFW.document.write(string.join("\n"));

}