<!--

YAHOO.namespace("myMenuSetting");
Event.observe(window, "load", myMenuSettingInit);

var myMenuDataCount = 0;
var favoriteMenuDataCount = 0;

// myMenu 초기화 함수
function myMenuSettingInit() {
	YAHOO.myMenuSetting.myMenuSettingDialog = new YAHOO.widget.Dialog("myMenuSettingDialog", 
		{
			width : "540px",
			height : "1px",
			zIndex : 10000,
			close : false,
			draggable : false,
			modal : true,
			constraintoviewport : true,
			visible : false
		}
	);
	
	YAHOO.myMenuSetting.myMenuSettingDialog.moveTo(0, 0);
	YAHOO.myMenuSetting.myMenuSettingDialog.render(document.body);
	
	YAHOO.myMenuSetting.myMenuWait =  new YAHOO.widget.Dialog("myMenuWait",  
		{
			width : "80px",
			zIndex : 10001,
			fixedcenter : true,
			close : false,
			draggable : false,
			modal : true,
			constraintoviewport : true,
			visible : false
		} 
	);
	
	YAHOO.myMenuSetting.myMenuWait.render();
}

// 내가 등록한 Menu 영역으로 변경하는 함수
function changeMyMenuStage() {
	if ($("myMenuDiv").style.display == "none") {
		$("myMenuButtonImage").src = "/images/myMenu/i_mymenu_on.gif";
		$("favoriteMenuButtonImage").src = "/images/myMenu/i_service_off.gif";

		$("myMenuDiv").style.display = "";
		$("favoriteMenuDiv").style.display = "none";
	}
}

// 자주 찾는 Menu 영역을 변경하는 함수
function changeFavoriteStage() {
	if ($("favoriteMenuDiv").style.display == "none") {
		$("myMenuButtonImage").src = "/images/myMenu/i_mymenu_off.gif";
		$("favoriteMenuButtonImage").src = "/images/myMenu/i_service_on.gif";

		$("myMenuDiv").style.display = "none";
		$("favoriteMenuDiv").style.display = "";
	}}

// myMenuSetting 화면을 보여주는 함수
function showMyMenuSettingDialog() {
	resetMyMenu();
	resetFavoriteMenu();
	
	YAHOO.myMenuSetting.myMenuSettingDialog.show();
	
	// 로딩 처리
	YAHOO.myMenuSetting.myMenuWait.show();
	
	var attributes = {
		height : { from : 0, to : 560 }
	};
	var anim = new YAHOO.util.Anim("myMenuSettingDialog", attributes, 1, YAHOO.util.Easing.easeOut);
	
	anim.onComplete.subscribe(function() {
		loadMyMenu();
	});
	
	Event.observe(document, "keypress", escKeyEvent);
	
	anim.animate();
}

// esc 키를 눌렀을 떄 화면 감추는 함수
function escKeyEvent(e) {
	if (e.keyCode == 27) {
		hideMyMenuSettingDialog();
	}
}

// myMenuSetting 화면을 감추는 함수
function hideMyMenuSettingDialog() {
	var attributes = {
		height : { from : 560, to : 0 }
	};
	var anim = new YAHOO.util.Anim("myMenuSettingDialog", attributes, 1, YAHOO.util.Easing.easeOut);
	
	anim.onComplete.subscribe(function() {
		YAHOO.myMenuSetting.myMenuSettingDialog.hide();
	});
	
	Event.stopObserving(document, "keypress", escKeyEvent);
	
	anim.animate();
}

// My Menu에 대한 것들을 초기화 시키는 함수
function resetMyMenu() {
	deleteAllData($("myMenuDataDiv"));
	myMenuDataCount = 0;
}

// Favorite Menu에 대한 것들을 초기화 시키는 함수
function resetFavoriteMenu() {
	deleteAllData($("favoriteMenuDataDiv"));
	favoriteMenuDataCount = 0;
}

// ajax를 이용해 서버로부터 My Menu를 가져온다.
function loadMyMenu() {
	// 로딩 처리
	YAHOO.myMenuSetting.myMenuWait.show();
	
	var myMenuAjax = new Ajax.Request(
		"/pages/myMenu/myMenuSettingList.jsp", 
		{
			method : "post", 
			onComplete : completeMyMenu, 
			onFailure : failureMyMenu
		}
	);
}

// My Menu List를 가져오는데 성공
function completeMyMenu(request) {
	try {
		var xml = null;
		
		try {
			var text = request.responseText;
			xml = (new DOMParser()).parseFromString(text, "text/xml");
		} catch(e) {
			xml = request.responseXML;
		}

		var myMenuNode = null;
		var favoriteMenuNode = null;

		if (xml.getElementsByTagName("my-menu").length > 0) {
			myMenuNode = xml.getElementsByTagName("my-menu")[0];
		}

		if (xml.getElementsByTagName("favorite-service").length > 0) {
			favoriteMenuNode = xml.getElementsByTagName("favorite-service")[0];
		}
		
		processAjaxMyMenuList(myMenuNode);
		processAjaxFavoriteMenuList(favoriteMenuNode);
	} catch (e) {
		alert("MyMenu 데이터를 가져왔으나, 보여주는데 문제가 발생하였습니다.");
	}
	
	// 로딩 안보이게 처리
	YAHOO.myMenuSetting.myMenuWait.hide();
}

// My Menu List를 가져오는데 성공
function failureMyMenu(request) {
	alert("페이지가 응답이 없습니다.\n\n다시 시도해주세요.");
}

// My Menu List를 뿌려준다.
function processAjaxMyMenuList(root) {
	var myMenuDataDiv = $("myMenuDataDiv");
	
	// all clear
	deleteAllData(myMenuDataDiv);

	var myTopMenuGroupDiv, myTopMenuDiv, myMenuGroupDiv, myMenuDiv;
	var menuIdx, menuTopIdx, menuTitle, tempStr;
	var menuLink, menuLinkType, menuTarget;
	
	if (root != null) {
		var myTopMenuNodes = root.getElementsByTagName("top-menu");
	
		if (myTopMenuNodes != null && myTopMenuNodes.length > 0) {
			for (var i = 0; i < myTopMenuNodes.length; i++) {
				menuTopIdx = myTopMenuNodes[i].getAttribute("idx");
				menuTitle = myTopMenuNodes[i].getAttribute("title");
				
				myTopMenuGroupDiv = document.createElement("div");
				myTopMenuGroupDiv.id = "myTopMenuGroupDiv" + menuTopIdx;
				
				myMenuDataDiv.appendChild(myTopMenuGroupDiv);
				
				myTopMenuDiv = document.createElement("div");
				myTopMenuDiv.id = "myTopMenuDiv" + menuTopIdx;
				myTopMenuDiv.className = "myMenuStitle";
				myTopMenuDiv.innerHTML = menuTitle;
				
				myTopMenuGroupDiv.appendChild(myTopMenuDiv);
				
				var myMenuNodes = myTopMenuNodes[i].getElementsByTagName("menu");
				
				myMenuGroupDiv = document.createElement("div");
				myMenuGroupDiv.id = "myMenuGroupDiv" + menuTopIdx;
				
				myTopMenuGroupDiv.appendChild(myMenuGroupDiv);
				
				for (var j = 0; j < myMenuNodes.length; j++) {
					menuIdx = myMenuNodes[j].getAttribute("idx");
					menuTopIdx = myMenuNodes[j].getAttribute("topIdx");
					menuTitle = myMenuNodes[j].getAttribute("title");
					menuLink = myMenuNodes[j].getAttribute("link");
					menuLinkType = myMenuNodes[j].getAttribute("linkType");
					menuTarget = myMenuNodes[j].getAttribute("target");
					
					myMenuDiv = document.createElement("div");
					myMenuDiv.id = "myMenuDiv" + menuIdx;
					myMenuDiv.className = "myMenu";
					
					myMenuGroupDiv.appendChild(myMenuDiv);
					
					tempStr = "";
					tempStr += "<div class=\"list\">";
					tempStr += "<a href=\"" + menuLink + "\" class=\"basic\" title=\"" + menuTitle + " 페이지로 이동합니다.\">" + menuTitle + "</a>";
					tempStr += "</div>";
					tempStr += "<div class=\"goDelete\">";
					tempStr += "<a href=\"" + menuLink + "\" title=\"" + menuTitle + " 페이지로 이동합니다.\"><img src=\"/images/myMenu/btn_mymenu_go.gif\" alt=\"" + menuTitle + " 바로가기\" width=\"48\" height=\"15\" class=\"vatop\" /></a>";
					tempStr += "<a href=\"javascript:deleteMyMenu('" + menuIdx + "', '" + menuTopIdx + "');\" title=\"" + menuTitle + " 삭제\"><img src=\"/images/myMenu/btn_mymenu_delete.gif\" alt=\"" + menuTitle + " 삭제\" width=\"30\" height=\"15\" class=\"vatop mar_l5\" /></a>";
					tempStr += "</div>";
					tempStr += "<input type=\"hidden\" id=\"myMenuTitle" + menuIdx + "\" name=\"myMenuTitle" + menuIdx + "\" value=\"" + menuTitle + "\" /> ";
					tempStr += "<input type=\"hidden\" id=\"myMenuLink" + menuIdx + "\" name=\"myMenuLink" + menuIdx + "\" value=\"" + menuLink + "\" /> ";
					
					myMenuDiv.innerHTML = tempStr;
					
					myMenuDataCount++;
				}
			}
		}
	}
	
	myMenuDataZero();
}

// Favorite Menu List를 뿌려준다.
function processAjaxFavoriteMenuList(root) {
	var favoriteMenuDataDiv = $("favoriteMenuDataDiv");
	
	// all clear
	deleteAllData(favoriteMenuDataDiv);

	var favoriteTopMenuGroupDiv, favoriteTopMenuDiv, favoriteMenuGroupDiv, favoriteMenuDiv;
	var menuIdx, menuTopIdx, menuTitle, tempStr;
	var menuLink, menuLinkType, menuTarget;
	
	if (root != null) {
		var favoriteTopMenuNodes = root.getElementsByTagName("top-menu");
	
		if (favoriteTopMenuNodes != null && favoriteTopMenuNodes.length > 0) {
			for (var i = 0; i < favoriteTopMenuNodes.length; i++) {
				menuTopIdx = favoriteTopMenuNodes[i].getAttribute("idx");
				menuTitle = favoriteTopMenuNodes[i].getAttribute("title");
				
				favoriteTopMenuGroupDiv = document.createElement("div");
				favoriteTopMenuGroupDiv.id = "favoriteTopMenuGroupDiv" + menuTopIdx;
				
				favoriteMenuDataDiv.appendChild(favoriteTopMenuGroupDiv);
				
				favoriteTopMenuDiv = document.createElement("div");
				favoriteTopMenuDiv.id = "favoriteTopMenuDiv" + menuTopIdx;
				favoriteTopMenuDiv.className = "myMenuStitle";
				favoriteTopMenuDiv.innerHTML = menuTitle;
				
				favoriteTopMenuGroupDiv.appendChild(favoriteTopMenuDiv);
				
				var favoriteMenuNodes = favoriteTopMenuNodes[i].getElementsByTagName("menu");
				
				favoriteMenuGroupDiv = document.createElement("div");
				favoriteMenuGroupDiv.id = "favoriteMenuGroupDiv" + menuTopIdx;
				
				favoriteTopMenuGroupDiv.appendChild(favoriteMenuGroupDiv);
				
				for (var j = 0; j < favoriteMenuNodes.length; j++) {
					menuIdx = favoriteMenuNodes[j].getAttribute("idx");
					menuTopIdx = favoriteMenuNodes[j].getAttribute("topIdx");
					menuTitle = favoriteMenuNodes[j].getAttribute("title");
					menuLink = favoriteMenuNodes[j].getAttribute("link");
					menuLinkType = favoriteMenuNodes[j].getAttribute("linkType");
					menuTarget = favoriteMenuNodes[j].getAttribute("target");
					
					favoriteMenuDiv = document.createElement("div");
					favoriteMenuDiv.id = "favoriteMenuDiv" + menuIdx;
					favoriteMenuDiv.className = "service";
					
					favoriteMenuGroupDiv.appendChild(favoriteMenuDiv);
					
					tempStr = "";
					tempStr += "<div class=\"list\">";
					tempStr += "<a href=\"" + menuLink + "\" class=\"basic\" title=\"" + menuTitle + " 페이지로 이동합니다.\">" + menuTitle + "</a>";
					tempStr += "</div>";
					tempStr += "<div class=\"go\">";
					tempStr += "<a href=\"" + menuLink + "\" title=\"" + menuTitle + " 페이지로 이동합니다.\"><img src=\"/images/myMenu/btn_mymenu_go.gif\" alt=\"" + menuTitle + " 바로가기\" width=\"48\" height=\"15\" class=\"vatop\" /></a>";
					tempStr += "</div>";
					
					favoriteMenuDiv.innerHTML = tempStr;
					
					favoriteMenuDataCount++;
				}
			}
		}
	}
	
	favoriteMenuDataZero();
}

// 인자로 받은 obj의 모든 data를 삭제하는 함수
function deleteAllData(obj) {
	obj.innerHTML = "";
}

// MyMenu에 데이터가 없을 때 처리 함수
function myMenuDataZero() {
	var myMenuDataDiv = $("myMenuDataDiv");
	
	if (myMenuDataCount <= 0) {
		myMenuDataDiv.innerHTML = "<div class=\"mar_t10 tacenter bold\">등록된 MyMenu가 없습니다.</div>";
	}
}

// FavoriteMenu에 데이터가 없을 때 처리 함수
function favoriteMenuDataZero() {
	var favoriteMenuDataDiv = $("favoriteMenuDataDiv");
	
	if (favoriteMenuDataCount <= 0) {
		favoriteMenuDataDiv.innerHTML = "<div class=\"mar_t10 tacenter bold\">등록된 자주찾는서비스가 없습니다.</div>";
	}
}

// 해당 MyMenu를 삭제하는 함수
function deleteMyMenu(menuIdx, menuTopIdx) {
	var myMenuDataDiv = $("myMenuDataDiv");
	var myTopMenuGroupDiv = $("myTopMenuGroupDiv" + menuTopIdx);
	var myMenuGroupDiv = $("myMenuGroupDiv" + menuTopIdx);
	var myMenuDiv = $("myMenuDiv" + menuIdx);
	var myMenuSettingForm = $("myMenuSettingForm");
	var deleteMyMenuIdxInput = document.createElement("input");
	deleteMyMenuIdxInput.type = "hidden";
	deleteMyMenuIdxInput.id = "deleteMyMenuIdx" + menuIdx;
	deleteMyMenuIdxInput.name = "deleteMyMenuIdx";
	deleteMyMenuIdxInput.value = menuIdx;
	
	// 같은 대메뉴에 메뉴가 존재할 경우
	if (myMenuGroupDiv.childNodes.length > 1) {
		myMenuGroupDiv.removeChild(myMenuDiv);
	}
	// 한개만 남은 경우는 대메뉴까지 안	보이게 한다.
	else {
		myMenuDataDiv.removeChild(myTopMenuGroupDiv);
	}
	
	// 삭제한 메뉴를 form에 저장
	myMenuSettingForm.appendChild(deleteMyMenuIdxInput);
	myMenuDataCount--;
	
	myMenuDataZero();
}

// 데이터를 서버로 전송하는 함수
function updateMyMenuSetting() {
	var url = "/pages/myMenu/myMenuSettingUpdate.jsp";
	var pars = Form.serialize("myMenuSettingForm");

	var myMenuSettingAjax = new Ajax.Request(
		url, 
		{
			method : "post", 
			parameters : pars, 
			onComplete : completeMyMenuSetting, 
			onFailure : failureMyMenuSetting
		}
	);
}

// My Menu 정보를 저장하는데 성공
function completeMyMenuSetting(request) {
	var xml = null;
	
	try {
		var text = request.responseText;
		xml = (new DOMParser()).parseFromString(text, "text/xml");
	} catch(e) {
		xml = request.responseXML;
	}
	
	var success = xml.getElementsByTagName("success")[0].firstChild.nodeValue;
	
	// 실패시 alert
	if (success == "0") {
		var message = xml.getElementsByTagName("message")[0].firstChild.nodeValue;
		alert(message);
	}
	// 성공시 alert 후 창 닫음
	else {
		alert("My Menu에 대한 정보를 저장하였습니다.");
		hideMyMenuSettingDialog();
	}
}

// My Menu 정보를 저장하는데 실패
function failureMyMenuSetting(request) {
	alert("페이지가 응답이 없습니다.\n\n다시 시도해주세요.");
}

// My Menu에 추가하는 함수
function addMyMenu(menuIdx) {
	var addMyMenuAjax = new Ajax.Request(
		"/pages/myMenu/myMenuWrite.jsp", 
		{
			method : "post", 
			parameters : "menuIdx=" + menuIdx, 
			onComplete : completeAddMyMenu, 
			onFailure : failureAddMyMenu
		}
	);
}

// MyMenu 추가 성공시
function completeAddMyMenu(request) {
	var xml = null;
	
	try {
		var text = request.responseText;
		xml = (new DOMParser()).parseFromString(text, "text/xml");
	} catch(e) {
		xml = request.responseXML;
	}

	var success = xml.getElementsByTagName("success")[0].firstChild.nodeValue;
	
	if (success == "1") {
		if (confirm("현재 페이지를 My Menu에 등록하였습니다.\n\nMy Menu 관리화면을 보시겠습니까??")) {
			showMyMenuSettingDialog();
		}
	} else {
		var message = xml.getElementsByTagName("message")[0].firstChild.nodeValue;
		
		alert(message);
	}
}

// MyMenu 추가 실패시
function failureAddMyMenu(request) {
	alert("페이지가 응답이 없습니다.\n\n다시 시도해주세요.");
}

//-->