
function init_yobo_main(){
    try{
	   menuFix();
	}catch(e){
	};
	var menuButton = document.getElementById("yobo_nav_right_button");
	var menuList = document.getElementById("nav_sub_list");
	if(menuButton){
    	attachEventListener(menuButton, "mouseover", openNavMenu, true);
    	attachEventListener(menuButton, "mouseout", closeNavMenu);
   }
   if(menuList){
    	attachEventListener(menuList, "mouseover", openNavMenu, true);
    	attachEventListener(menuList, "mouseout", closeNavMenu);
    }

	var searchInput = document.getElementById("search_text");
    if(searchInput){
    	attachEventListener(searchInput, "click", onFocusSearchInput);
    	attachEventListener(searchInput, "blur", onBlurSearchInput);
    }
}
function menuFix() {
	var sfEls = document.getElementById("header_nav_bar").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
		this.className+=(this.className.length>0? " ": "") + "fix_hover";
		}
		sfEls[i].onMouseDown=function() {
		this.className+=(this.className.length>0? " ": "") + "fix_hover";
		}
		sfEls[i].onMouseUp=function() {
		this.className+=(this.className.length>0? " ": "") + "fix_hover";
		}
		sfEls[i].onmouseout=function() {
		this.className=this.className.replace(new RegExp("( ?|^)fix_hover\\b"),"");
		}
	}
}

function openNavMenu(event){
	if(typeof event == "undefined"){
		event = window.event;
	}
	clearNavMenuTimeId();
	var menu = document.getElementById("nav_sub_list");
	if (menu == null) return;
	menu.style.display = "block";
	stopDefaultAction(event);
	return false;
}

function closeNavMenu(){
	document.CloseNavMenuTimeId = setTimeout("closeNavMenuCallback()", 500);
}

function clearNavMenuTimeId(){
	clearTimeout(document.CloseNavMenuTimeId);
}

function closeNavMenuCallback(){
	var menu = document.getElementById("nav_sub_list");
	if (menu == null) return;
	menu.style.display = "none";
}

function onFocusSearchInput(event) {
	if(typeof event == "undefined"){
		event = window.event;
	}
	var oInput = getEventTarget(event);
	if(oInput.value == CHAOJISOU){
		oInput.value = "";
	}
	oInput.select();
}

function onBlurSearchInput(event) {
	if(typeof event == "undefined"){
		event = window.event;
	}
	var oInput = getEventTarget(event);
	if(oInput.value.length <= 0){
		oInput.value = CHAOJISOU;
	}
}

function subListToButton(listID){
	var oList = document.getElementById(listID);
	if(!oList) return false;
	if(oList.style.display == "block"){
	   oList.style.display = "none";
	}else{
	   oList.style.display = "block";
	}
}

function listMouseover(){
    try{
        clearTimeout(document.listMenuTimeId);
    }catch(e){
    }
}

function listMouseout(listID){
    document.listMenuTimeId = setTimeout("hideSubList('"+ listID+"')",500);
}

function hideSubList(listID){
    var oList = document.getElementById(listID);
   oList.style.display = "none";
}

function attachEventListener(target, eventType, functionRef, capture)
{
  if (typeof target.addEventListener != "undefined")
  {
    target.addEventListener(eventType, functionRef, capture);
  }
  else if (typeof target.attachEvent != "undefined")
  {
    target.attachEvent("on" + eventType, functionRef);
  }
  else
  {
    eventType = "on" + eventType;

    if (typeof target[eventType] == "function")
    {
      var oldListener = target[eventType];

      target[eventType] = function()
      {
        oldListener();

        return functionRef();
      }
    }
    else
    {
      target[eventType] = functionRef;
    }
  }

  return true;
}

function stopDefaultAction(event)
{
  event.returnValue = false;

  if (typeof event.preventDefault != "undefined")
  {
    event.preventDefault();
  }
}
function getEventTarget(event)
{
  if (typeof event == "undefined")
  {
    event = window.event;
  }
	
  var targetElement = null;

  if (typeof event.target != "undefined")
  {
    targetElement = event.target;
  }
  else
  {
    targetElement = event.srcElement;
  }

  while (targetElement.nodeType == 3 && targetElement.parentNode != null)
  {
    targetElement = targetElement.parentNode;
  }

  return targetElement;
}
