jQuery(function($) {
	$(document).keyup(function (e) {
		if(e.keyCode > 90 || 48 > e.keyCode && e.keyCode != 27) return;
		
		if($.browser.msie) {
			var target = e.srcElement;
			var nodeName = target.tagName;
		}
		else {
			var target = e.target;
			var nodeName = target.nodeName;
		}

		var contentEditable = typeof($(target).attr('contenteditable'))!='undefined' ? $(target).attr('contenteditable'):false;
		
		if(nodeName == 'INPUT' || nodeName == 'TEXTAREA' || e.ctrlKey ||  e.altKey || contentEditable=='true') return;
		if(48 <= e.keyCode && e.keyCode <= 90 || e.keyCode == 27) fastMenu.keyup(e.keyCode);
	});
	
	window.fastMenu = {
		start_key : 'F',
		menu_list : new Array(),
		current_menu_srl : -1,
		cureent_time_id : null,
		Show : function(node_srl) {
			$('#fastMenu > ul > li').each(function() {
				var item = $(this).attr('id').split('_');
				if(item[1] == node_srl) $(this).css({display:'block'});
				else $(this).css({display:'none'});
			});
			$('#fastMenu').css({'margin-left':$(window).scrollLeft(), 'margin-top':$(window).scrollTop(), 'zIndex':9999}).fadeIn(300);
			this.setCureentMenu(node_srl);
			this.setTimeout(2000);
		},
		setTimeout : function(d) {
			if(this.cureent_time_id != null) clearTimeout(this.cureent_time_id);
			this.cureent_time_id = setTimeout("fastMenu.Hide();", d);
		},
		Hide : function() {
			this.setCureentMenu(-1);
			this.cureent_time_id = null;
			$('#fastMenu').fadeOut(300);
		},
		Setup : function() {
			$('#fastMenu > ul > li').each(function() {
				fastMenu.addMenu($(this).attr('id'));
			});
		},
		addMenu : function(node) {
			var node = node.split('_');
			if(typeof(this.menu_list[node[1]])=='undefined') this.menu_list[node[1]] = new Array();
			if(!node[3]) node[3] = 'nokey';
			this.menu_list[node[1]][node[3].toUpperCase()] = node[2];
		},
		getSelectMenu : function(keyCode) {
			var findKey = String.fromCharCode(keyCode);
			
			if(this.current_menu_srl >= 0) { 
				for(var key in this.menu_list[this.current_menu_srl]) {
					if(key == findKey) return this.menu_list[this.current_menu_srl][key]; 
				}
			} else {
				if(findKey == this.start_key) return 0;
			}
			return null;
		},
		keyup : function(keyCode) {
			if(typeof(aMemberFastMenuList)=='object' && aMemberFastMenuList.length>0) {
				if(typeof(aMemberFastMenuList[keyCode]) != 'undefined')
					location.href = aMemberFastMenuList[keyCode];
			} else {
				if(keyCode == 27) {
					this.Hide();
				} else {
					var no = this.getSelectMenu(keyCode);
					if(no!=null) {
						if(typeof(this.menu_list[no]) == 'undefined') {
							this.click(no, keyCode);
						} else {
							this.Show(no);
						}
					}
				}
			}
		},
		setCureentMenu : function(menu_srl) {
			this.current_menu_srl = menu_srl;
		},
		click : function(menu_srl, keyCode) {
			var a = '#fastMenuLi_'+this.current_menu_srl+'_'+menu_srl+'_'+String.fromCharCode(keyCode)+' > a';
			location.href = $(a).attr('href');
		},
		debugPrint : function() {
			var str = '';
			for(var key in this.menu_list) {
				for(var key2 in this.menu_list[key]) {
					str += key+': '+key2+'= '+this.menu_list[key][key2]+"\n";
				}
			}
			alert(str);
		}
	}
	fastMenu.Setup();
	//fastMenu.debugPrint();
});

function member_fastmenu_setup(node_srl) {
	if(!node_srl) return;

    var params = new Array();
    params['node_srl'] = node_srl;
    params['key'] = jQuery("#cart_"+node_srl).val();

    var response_tags = new Array('error','message');
    exec_xml('bgm_fastmenu','procBgm_fastmenuMemberMenuSetup', params, filterAlertMessage, response_tags);
}
