function forcePaddingLeft($menus) {
	var children = $menus.children();
	var parentWidth = $menus.outerWidth();
	var totalWidth=0;
	$j.each(children, function(idx,child) {
		if($j(this).hasClass("pc_hide")) {
		} else {
		totalWidth +=$j(this).outerWidth();
		}
	});
	var diff = parentWidth-totalWidth;
	if(diff>0) {
		$menus.css("padding-left",(parentWidth-totalWidth)/2 + "px");
	}
}

function menuHideAll(e) {
	var hide = true;
	if(e && !$j("#usm_top_menu_bg").is(":visible")) {
		hide = false;
	}
	if(hide) {
		$j("#usm_top_menu_bg").hide();
		$j(".depth2").hide();
		$j("#usm-menu-wrap-id  > ul > li").removeClass("active");
	}
}

function menuHide(e) {
	var $self = $j(this);
	var $2depth = $self.parents(".depth2");
	var $1depth;
	var $1depthAll;
	var $2depthAll;
	if($2depth.length) {
		$1depth = $2depth.parent();
		$1depthAll = $1depth.parent().find(">li");
		$2depthAll = $1depthAll.find(".depth2");
	} else {
		$1depth = $self.parent();
		$1depthAll = $1depth.parent().find(">li");
		$2depthAll = $1depthAll.find(".depth2");
		$2depth = $1depth.find(".depth2");
	}
	
	$j("#usm_top_menu_bg").hide();
	$2depthAll.hide();
	
	$1depthAll.removeClass("active");
	$2depthAll.removeClass("active");
}
function menuShow(e) {
	$j("#usm_top_menu_bg").show();
	var $self = $j(this);
	var $2depth = $self.parents(".depth2");
	var $1depth;
	var $1depthAll;
	var $2depthAll;
	if($2depth.length) {
		$1depth = $2depth.parent();
		$1depthAll = $1depth.parent().find(">li");
		$2depthAll = $1depthAll.find(".depth2");
	} else {
		$1depth = $self.parent();
		$1depthAll = $1depth.parent().find(">li");
		$2depthAll = $1depthAll.find(".depth2");
		$2depth = $1depth.find(".depth2");
	}
	
	$2depthAll.show();
	
	var _2depthHeight = 0;
	for(var i=0;i<$2depthAll.length;i++) {
		var $el = $j($2depthAll[i]);
		$el.width($el.parent().outerWidth()-1);
		var h = $el.height();
		if( _2depthHeight < h) {
			_2depthHeight = h;
		}
	}
	
	$j("#usm_top_menu_bg").css("height", _2depthHeight +"px");
	$j("#usm_top_menu_bg").css("top", $2depthAll.offset().top +"px");
	$2depthAll.css("height", _2depthHeight+"px");

	$1depthAll.removeClass("active");
	$2depthAll.removeClass("active");
	
	$1depth.addClass("active");
	$2depth.addClass("active");
}

function menuAction() {
	$j("#pseudoQuick").remove();
	menuHideAll();
	
	var $1depth = $j("#usm-menu-wrap-id  > ul > li");
	
	forcePaddingLeft($1depth.parent());
	
	$j("a").focusin(menuHideAll);
	
	var $atag =  $1depth.find("a");
	$atag.unbind("focusin");
	$atag.mouseover(menuShow);
	$atag.focusin(menuShow);
	$atag.mouseout(menuHide);
	
	var $div = $1depth.find(".depth2");
	//$div.hide();
	$div.mouseover(menuShow);
	$div.mouseout(menuHide);
	
	$jmenuTrigger = $j('.has-submenu > a');
	$jmenuTrigger.unbind("click");
	$jmenuTrigger.bind("click");
}

function mobileAction() {
	var $1depth = $j("#usm-menu-wrap-id  > ul > li");
	var $2depth = $1depth.children(".depth2");
	
	$j("a").unbind("focusin");
	
	var $atag =  $1depth.find("a");
	$atag.unbind("focusin");
	$atag.unbind("mouseover");
	$atag.unbind("mouseout");
	
	$2depth.unbind("mouseover");
	$2depth.unbind("mouseout");
	
	$2depth.attr("style", "");
	$2depth.show();
	
	var $jmenu = $j('#usm-menu-wrap-id > ul'), $jmenulink = $j('#spinner-form'), $jmenuTrigger = $j('.has-submenu > a');
	$j("#usm-menu-id li").attr("style","");
	$j("#usm-menu-id .sub-menu").attr("style","");
	
	$jmenu.css("padding-left", "0px");
	$jmenu.unbind("click");
	$jmenulink.unbind("click");
	$jmenuTrigger.unbind("click");
	
	$jmenulink.click(function (e) {
	    $jmenulink.toggleClass('active');
	    $jmenu.toggleClass('active');
	});

	$jmenuTrigger.click(function (e) {
	    e.preventDefault();
	    var $self = $j(this);
	    $self.toggleClass('active');
	    var $next = $self.next(".depth2");
	    if($next.length != 0 ) {
	    	$next = $next.children("ul");
	    } else {
	    	$next = $self.next("ul");
	    }
	    $next.toggleClass('active');
	});

	$j(function () {
		var $quick = $j("#quickMenu > li > ul");
		if( $quick.children().length > 0 ) {
			var menuWrap = $j("#usm-menu-wrap-id > ul");
			var $qLi = $j("#pseudoQuick");
			if($qLi.length == 0 ) {
				var $qLi = $j("<li id='pseudoQuick' class='has-submenu'><a href='#quickMenu'>퀵메뉴</a></li>");
				var $qDiv = $j("<div class='depth2'/>");
				$qLi.append($qDiv);
				menuWrap.append($qLi);
				$quick.clone().appendTo($qDiv);
				
				$qLi.on('click', 'a[href="#quickMenu"]', function(e) {
					e.preventDefault();
				    var $self = $j(this);
				    $self.toggleClass('active');
				    var $next = $self.next(".depth2");
				    if($next.length != 0 ) {
				    	$next = $next.children("ul");
				    } else {
				    	$next = $self.next("ul");
				    }
				    $next.toggleClass('active');
				});
			} else {
				$qLi.show();
			}
		}
	    var e = $j(document).scrollTop();
	    var t = $j('#usm-menu-id').outerHeight();
	    $j(window).scroll(function () {
	        var n = $j(document).scrollTop();
	        if (n > t) {
	            $j('#usm-menu-id').addClass('scroll');
	        } else {
	            $j('#usm-menu-id').removeClass('scroll');
	        }
	        if (n > e) {
	            $j('#usm-menu-id').removeClass('no-scroll');
	        } else {
	            $j('#usm-menu-id').addClass('no-scroll');
	        }
	        e = $j(document).scrollTop();
	    });
	});
}

$j(document).ready(function(a){
	$j('#usm-menu-wrap-id ul li:has(ul)').addClass('has-submenu');
	$j('#usm-menu-wrap-id ul li div ul').addClass('sub-menu');
	$j("#usm-menu-id").append('<div id="usm_top_menu_bg"/>');
	(function (window, document, undefined) {
		
	    var mediaQuery = window.matchMedia("screen and (min-width: 1023px)");
	    mediaQuery.addListener(doSomething);
	    function doSomething(mediaQuery) {
	        if (mediaQuery.matches) {
	            menuAction();
	        } else {
	            mobileAction();
	        }
	    }
	    doSomething(mediaQuery);
	}(window, document));
});