/*
 * Menu Link, Location Map, Menu Code 관리
 * @author HJin
*/

var xmlURL = "/swf/xml/navi_info.asp";
var xml = parseXML(xmlURL); // xml 파싱
var depth = 4; // 현재 사이트의 Depth

// 페이지 링크
function menu_link(pmenucode) {
	var isMove = false;

	if(pmenucode != "") {
		$(xml).find("uLink").each(function(){
			if(pmenucode == $(this).attr("menucode")) {
				if($(this).attr("gUrl") != "") {
					if($(this).attr("gTarget") == "_blank") {
						if(typeof($(this).attr("width")) != "undefined" && typeof($(this).attr("height")) != "undefined") {
							window.open($(this).attr("gUrl"), 'popup', 'width='+$(this).attr("width")+',height='+$(this).attr("height")+',top=150,left=250,toolbar=no,menubar=no,location=no,scrollbars=no,status=no');
						}
						else {
							window.open($(this).attr("gUrl"));
						}

						isMove = true;
						return;
					}
					else {
						location.href = $(this).attr("gUrl");
						isMove = true;
						return;
					}
				}
				else {
					alert("준비중입니다.");
					isMove = true;
					return;
				}
			}
		});

		if(isMove) return;

		for(var i=0; i<=depth; i++) {
			$(xml).find("depth"+i).each(function(){
				if(pmenucode == $(this).attr("menucode")) {
					if($(this).attr("gUrl") != "") {
						if($(this).attr("gTarget") == "_blank") {
							if(typeof($(this).attr("width")) != "undefined" && typeof($(this).attr("height")) != "undefined") {
								window.open($(this).attr("gUrl"), 'popup', 'width='+$(this).attr("width")+',height='+$(this).attr("height")+',top=150,left=250,toolbar=no,menubar=no,location=no,scrollbars=no,status=no');
							}
							else {
								window.open($(this).attr("gUrl"));
							}
							return false;
						}
						else {
							location.href = $(this).attr("gUrl");
							return false;
						}
					}
					else {
						alert("준비중입니다.");
						return false;
					}
				}
			});
		}
	}
	else {
		alert("올바른 링크가 아닙니다.");
	}
}

//현재페이지 메뉴코드 리턴
function getMenuCode(){

	var linkType = "/";
	var arrTemp, strCompareOrigin, strCompare, strCompareQueryString, strMenuCode, strDomain, strSslDomain;

	arrTemp = location.href.split("/");
	strCompare = arrTemp[3];
	for(var i=4; i<arrTemp.length; i++) {
		strCompare = strCompare + "/" + arrTemp[i];
	}
	strCompareOrigin = linkType + strCompare;
	if (strCompareOrigin.indexOf("?") != -1) {
		strSplit = "?";
	} else {
		strSplit = "#";
	}
	//strDomain = arrTemp[0] +"//"+ arrTemp[2];		//2010-07-01:http링크로 추가
	strDomain		= arrTemp[2];	// By HJu 2010-12-21 : 도메인
	strSslDomain	= "";			// By HJu 2010-12-21 : SSL 기본포트 미사용시
	strCompare = strCompareOrigin.split(strSplit)[0];
	strCompareQueryString = strCompareOrigin.split(strSplit)[1];


	var xmlNodeUrl = "";
	$(xml).find("uLink").each(function(){
		xmlNodeUrl = $(this).attr("gUrl");		// By HJu 2010-12-21 : 도메인 제외 처리
		xmlNodeUrl = xmlNodeUrl.replace(strDomain, "");
		xmlNodeUrl = xmlNodeUrl.replace(strSslDomain, "");
		xmlNodeUrl = xmlNodeUrl.replace("http://", "");
		xmlNodeUrl = xmlNodeUrl.replace("https://", "");
		if(typeof($(this).attr("compareQueryString")) == "undefined") {
			if(strCompare == xmlNodeUrl) {
				strMenuCode = $(this).attr("menucode");
				return false;
			}
		}
		else {
			if(strCompareQueryString != null || typeof(strCompareQueryString) != "undefined") {
				strCompare += strSplit;

				var startQueryString = 0;
				if(typeof($(this).attr("excludeQueryString")) != "undefined") {
					startQueryString = $(this).attr("excludeQueryString");
				}

				for(var j=startQueryString; j<Number(startQueryString) + Number($(this).attr("compareQueryString")); j++) {
					strCompare += strCompareQueryString.split("&")[j];

					if(j != Number(startQueryString) + Number($(this).attr("compareQueryString"))-1) {
						strCompare += "&";
					}
				}

				if(strCompare == xmlNodeUrl) {
					strMenuCode = $(this).attr("menucode");

					return false;
				}
			}
			else {
				if(strCompare == xmlNodeUrl) {
					strMenuCode = $(this).attr("menucode");

					return false;
				}
			}
		}

		//strCompare = strDomain+strCompareOrigin.split(strSplit)[0];
		strCompare = strCompareOrigin.split(strSplit)[0];
	});

	for(var i=0; i<=depth; i++) {
		$(xml).find("depth"+i).each(function(){
			xmlNodeUrl = $(this).attr("gUrl");		// By HJu 2010-12-21 : 도메인 제외 처리
			xmlNodeUrl = xmlNodeUrl.replace(strDomain, "");
			xmlNodeUrl = xmlNodeUrl.replace(strSslDomain, "");
			xmlNodeUrl = xmlNodeUrl.replace("http://", "");
			xmlNodeUrl = xmlNodeUrl.replace("https://", "");
			if(typeof($(this).attr("compareQueryString")) == "undefined") {
				if(strCompare == xmlNodeUrl) {
					strMenuCode = $(this).attr("menucode");
					return false;
				}
			}
			else {
				if(strCompareQueryString != null || typeof(strCompareQueryString) != "undefined") {
					strCompare += strSplit;

					for(var j=0; j<$(this).attr("compareQueryString"); j++) {
						strCompare += strCompareQueryString.split("&")[j];

						if(j != $(this).attr("compareQueryString")-1) {
							strCompare += "&";
						}
					}

					if(strCompare == xmlNodeUrl) {
						strMenuCode = $(this).attr("menucode");
						return false;
					}
				}
				else {
					if(strCompare == xmlNodeUrl) {
						strMenuCode = $(this).attr("menucode");
						return false;
					}
				}
			}

			//strCompare = strDomain+strCompareOrigin.split(strSplit)[0];
			strCompare = strCompareOrigin.split(strSplit)[0];
		});
	}

	return strMenuCode;
}

// Location Map 출력
function callLocationMap(pULClass, pSelectClass) {
	var strTemp = "";
	var strMenuCode = getMenuCode();
	var arrTemp = new Array();

	if (strMenuCode == undefined) { return; }		// By HJu (2011-03-02)

	for(var i=0; i<strMenuCode.length/2; i++) {
		arrTemp[i] = strMenuCode.substr(0, (i+1)*2);
	}

	if (pULClass != "") {
		strTemp += "<ul class=\""+pULClass+"\">\n";
	} else {
		strTemp += "<ul>\n";
	}
	strTemp += "<li><a href=\"javascript:menu_link(\'1\');\"><img src=\"/images/common/icon/bl_home.gif\" alt=\"home\" /></a>&nbsp;&gt;&nbsp;</li>\n";

	for(var i=0; i<arrTemp.length; i++) {
		tmpMenuCode = arrTemp[i];

		if (tmpMenuCode.substr(arrTemp[i].length-2,2) == "00") { break; }
		if (parseInt(arrTemp.length) == 5 && parseInt(i) == parseInt(arrTemp.length-1)) { break; }

		if(i != arrTemp.length-1) {
			strTemp += "<li><a href=\"javascript:menu_link(\'"+arrTemp[i]+"\');\">" + getNameAsmenucode(arrTemp[i]) + "</a>&nbsp;&gt;&nbsp;</li>\n";
		}
		else {
			if (pSelectClass != "") {
				strTemp += "<li class=\""+pSelectClass+"\">" + getNameAsmenucode(arrTemp[i]) + "</li>\n";
			} else {
				strTemp += "<li><strong>" + getNameAsmenucode(arrTemp[i]) + "</strong></li>\n";
			}
		}
	}
	strTemp += "</ul>";

	document.write(strTemp);
}

// menucode에 맞는 name 리턴
function getNameAsmenucode(pmenucode) {
	var strName;
	for(var i=0; i<=depth; i++) {
		$(xml).find("depth"+i).each(function(){
			if(pmenucode == $(this).attr("menucode")) {
				strName = $(this).attr("name");
				return false;
			}
		});
	}
	if (strName == null || strName == "undefined") {
		$(xml).find("uLink").each(function(){
			if(pmenucode == $(this).attr("menucode")) {
				strName = $(this).attr("name");
				return false;
			}
		});
	}

	return strName;
}
