/*
 * Menu Link, Location Map, Menu Code 관리
 * @author HJin
*/

var xmlURL = "/swf/xml/navi_info.xml";
var xml = parseXML(xmlURL); // xml 파싱
var depth = 3; // 현재 사이트의 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") {
								if(typeof($(this).attr("useScroll")) != "undefined") {
									var strScroll = $(this).attr("useScroll");
								} else {
									var strScroll = "no";
								}
								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='+strScroll+',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 : 도메인 제외 처리
            if (xmlNodeUrl != null || typeof(xmlNodeUrl) != "undefined") {
                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;
}

// Menu Gnb 출력. By HJu (2011-06-28)
function callMenuGnb() {
	var strTemp = "";
	var strTemp2 = "";
	var strTempDDM = "";
	var strMenuCode = getMenuCode();
	var arrTemp = new Array();
	var tmpMenuCode = "";
	var strTopMenuCode = "";

	if (strMenuCode == undefined) {
	    arrTemp[0] = "";
    }
    else {
    	for(var i=0; i<strMenuCode.length/2; i++) {
    		arrTemp[i] = strMenuCode.substr(0, (i+1)*2);
    	}
      if ((strMenuCode.length/2) > 1 ) { tmpMenuCode = arrTemp[1]; }
    }

	strTemp += "<ul id=\"gnb\">\n";
    $(xml).find("depth1").each(function() {
        if ($(this).attr("visible") != "false") {
            strTemp += "<li class=\"gnb_1d\">\n<a href=\"javascript:menu_link(\'"+$(this).attr("menucode")+"\');\" target=\""+ $(this).attr("gTarget") +"\">"
            if ($(this).attr("imageOn") != undefined && $(this).attr("imageOff") != undefined) {
                if (arrTemp[0] == $(this).attr("menucode")) {
                    strTemp += "<img class=\"gnb_1d\" src=\""+$(this).attr("imageOn")+"\" alt=\""+$(this).attr("name")+"\" imageOn=\""+$(this).attr("imageOn")+"\" imageOff=\""+$(this).attr("imageOn")+"\" />";
                }
                else {
                    strTemp += "<img class=\"gnb_1d\" src=\""+$(this).attr("imageOff")+"\" alt=\""+$(this).attr("name")+"\" imageOn=\""+$(this).attr("imageOn")+"\" imageOff=\""+$(this).attr("imageOff")+"\" />";
                }
            }
            strTemp += "</a>";
            strTopMenuCode = $(this).attr("menucode");

            //strTemp2 = "";
            strTempDDM = "";
            $(this).children("depth2").each(function(){
            	// Selected
    			if(arrTemp[0] == $(this).attr("menucode").substr(0,2) && $(this).attr("visible") != "false") {
    				if ($(this).attr("imageOn") != undefined && $(this).attr("imageOff") != undefined) {
                    	strTemp2 += "<li><a href=\"javascript:menu_link(\'"+$(this).attr("menucode")+"\');\" target=\""+ $(this).attr("gTarget") +"\">"
                        if (tmpMenuCode.substr(2,2) == $(this).attr("menucode").substr(2,2)) {
                            strTemp2 += "<img src=\""+$(this).attr("imageOn")+"\" alt=\""+$(this).attr("name")+"\" imageOn=\""+$(this).attr("imageOn")+"\" imageOff=\""+$(this).attr("imageOn")+"\" />";
                        }
                        else {
                            strTemp2 += "<img src=\""+$(this).attr("imageOff")+"\" alt=\""+$(this).attr("name")+"\" imageOn=\""+$(this).attr("imageOn")+"\" imageOff=\""+$(this).attr("imageOff")+"\" />";
                        }
                        strTemp2 += "</a></li>\n";
                    }
    			}
    			// Drop Down Menu
    			if(strTopMenuCode == $(this).attr("menucode").substr(0,2) && $(this).attr("visible") != "false") {
                    if ($(this).attr("imageOnDDM") != undefined && $(this).attr("imageOffDDM") != undefined) {
						if ($(this).attr("classDDM") != undefined) {
							strTempDDM += "<li class=\"end\">";
                    	} else {
                    		strTempDDM += "<li>";
                    	}
                    	strTempDDM += "<a href=\"javascript:menu_link(\'"+$(this).attr("menucode")+"\');\" target=\""+ $(this).attr("gTarget") +"\">"
                        strTempDDM += "<img src=\""+$(this).attr("imageOffDDM")+"\" alt=\""+$(this).attr("name")+"\" imageOn=\""+$(this).attr("imageOnDDM")+"\" imageOff=\""+$(this).attr("imageOffDDM")+"\" />";
                        strTempDDM += "</a></li>\n";
                    }
    			}
    		});
    		/*
    		if (strTemp2 != "") {
    		    strTemp2 = "\n<ul class=\"gnb_2d\">"+ strTemp2 + "</ul>\n";
    		}
    		*/
    		if (strTempDDM != "") {
    		    strTempDDM = "\n<ul class=\"gnb_ddm "+ strTopMenuCode.toLowerCase() +"_p\">\n"+ strTempDDM + "</ul>\n";
    		}
    		//strTemp += strTemp2;
    		strTemp += strTempDDM;

            strTemp += "</li>\n";
        }
    });
	strTemp += "</ul>";

	arrTemp = location.href.split("/");
	var strCompare = arrTemp[3];
	if (strTemp2 != "" && !(strCompare == "" || strCompare == "index.asp")) {
	    strTemp += "\n<ul class=\"gnb_2d\">\n"+ strTemp2 + "</ul>\n";
	}

	document.write(strTemp);
	//document.write("<textarea rows='10' cols='100'>"+strTemp+"</textarea>");
	$(".gnb ul li.gnb_1d").eq($(".gnb ul li.gnb_1d").length-1).attr("class","right");
	$(".gnb img").bind({
		mouseover: function() {
			$(this).attr("src", $(this).attr("imageOn"));
		},
		mouseout: function() {
			$(this).attr("src", $(this).attr("imageOff"));
		}
	});
	$("#gnb > li").bind("mouseover", jsddm_open);
	$("#gnb > li").bind("mouseout",  jsddm_timer);

	document.onclick = jsddm_close;
}

// GNB : Drop Down Menu . By HJu (2011-09-27)
// 참고 : http://javascript-array.com/scripts/jquery_simple_drop_down_menu/
var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open() {
	jsddm_canceltimer();
	jsddm_close();
	ddmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function jsddm_close() {
	if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');
}

function jsddm_timer() {
	closetimer = window.setTimeout(jsddm_close, timeout);
}

function jsddm_canceltimer() {
	if(closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}


