/*
 * Menu Link, Location Map, Menu Code 관리
 * @author HJin
*/

var xmlURL = "/company_html/swf/xml/navi_info.asp";
var xml = parseXML(xmlURL); // xml 파싱
var depth = 3; // 현재 사이트의 Depth

// 페이지 링크
function menu_link(pmenucode) {
	//alert(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;

	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 = "http://"+ arrTemp[2];		//2010-07-01:http링크로 추가	
	strCompare = strDomain+strCompareOrigin.split(strSplit)[0];	
	strCompareQueryString = strCompareOrigin.split(strSplit)[1];

	$(xml).find("uLink").each(function(){		
		if(typeof($(this).attr("compareQueryString")) == "undefined") {			
			if(strCompare == $(this).attr("gUrl")) {
				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 == $(this).attr("gUrl")) {
					strMenuCode = $(this).attr("menucode");

					return false;
				}
			}
			else {
				if(strCompare == $(this).attr("gUrl")) {
					strMenuCode = $(this).attr("menucode");

					return false;
				}
			}
		}

		strCompare = strDomain+strCompareOrigin.split(strSplit)[0];
	});
	
	for(var i=0; i<=depth; i++) {		
		$(xml).find("depth"+i).each(function(){
			if(typeof($(this).attr("compareQueryString")) == "undefined") {				
				if(strCompare == $(this).attr("gUrl")) {
					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 == $(this).attr("gUrl")) {
						strMenuCode = $(this).attr("menucode");

						return false;
					}
				}
				else {
					if(strCompare == $(this).attr("gUrl")) {
					strMenuCode = $(this).attr("menucode");

					return false;
				}
				}
			}

			strCompare = strDomain+strCompareOrigin.split(strSplit)[0];
		});
	}

	return strMenuCode;
}

// Location Map 출력
function callLocationMap(pULClass, pSelectClass) {
	var strTemp = "";
	var strMenuCode = getMenuCode();	
	var arrTemp = new Array();

	for(var i=0; i<strMenuCode.length/2; i++) {
		arrTemp[i] = strMenuCode.substr(0, (i+1)*2);
	}

	if (pULClass != "") {
		strTemp += "<p class=\""+pULClass+"\">\n";
	} else {
		strTemp += "<p>\n";		
	}
	strTemp += "<a href=\"javascript:menu_link(1);\">Home</a>\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 += " &gt; <a href=\"javascript:menu_link(\'"+arrTemp[i]+"\');\">" + getNameAsmenucode(arrTemp[i]) + "</a>\n";
		}
		else {
			if (pSelectClass != "") {
				strTemp += "<li class=\""+pSelectClass+"\">" + getNameAsmenucode(arrTemp[i]) + "</li>\n";
			} else {
				strTemp += " &gt; " + getNameAsmenucode(arrTemp[i]) + "\n";
			}				
		}
		
	}
	strTemp += "</p>";
	
	
	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;
}
