//=====================================Menu Function=============================================
var menuTime;
var hideSub = null; 
var closetype; 

function isMenuItem(obj) {
    while (obj.nodeType==1 && obj.tagName.toLowerCase() != "ul") {
        if (obj.tagName.toLowerCase() == "li") return obj;
        obj = (obj.parentElement) ? obj.parentElement : obj.parentNode;
    }
    return false;
}

function addStyle(obj, class_name) {
    var cn = obj.className;
    var re = new RegExp("(^| )" + class_name + "($| )");
    var re1 = new RegExp("(^| )"  + "*cust" + class_name + "($| )");
    var re2 = new RegExp("cust");
    if (re.test(cn)) return false;
    if (re1.test(cn)) return false;
    if ((re2.test(cn)) && ((class_name == "sub") || (class_name == "sub over"))) {
    cn = cn.replace(re2, "cust" + class_name);
  } else {
      if (cn != "" && cn.charAt(cn.length - 1) != " ") cn += " ";
      cn += class_name;
  }
    obj.className = cn;
}
function removeStyle(obj, class_name) {

    if (!obj) return;
    var re = new RegExp(" " + class_name + " ");
    var re1 = new RegExp("(^" + class_name + " )|( " + class_name + "$)|(^"
                           + class_name + "$)");
    var re2 = new RegExp("cust" + class_name + "($| )");
    if ( closetype == 'all' )
    {
      while (obj && (obj != document) && (obj.className != "menu") && (obj.className != "menu1")) {
          if (obj.tagName.toLowerCase() == "li")
    {
        var cn = obj.className;
        cn = cn.replace(re, " ");
        cn = cn.replace(re1, "");
        cn = cn.replace(re2, "cust");
        obj.className = cn;
    }

          obj = (obj.parentElement) ? obj.parentElement : obj.parentNode;
      }
  hideSub = null;
    }
    else
    {
      var cn = obj.className;
      cn = cn.replace(re, " ");
      cn = cn.replace(re1, "");
      cn = cn.replace(re2, "cust");
      obj.className = cn;
    }
}

function parentUL(obj) {
  parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode);
  return parentul;
}

function parentLI(obj) {
  parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode);
  if ((parentul.className == "menu") || (parentul.className == "menu1")) return null;
  parentli = ((parentul.parentElement) ? parentul.parentElement : parentul.parentNode);
  return parentli;
}

function doubleParentUL(obj) {
  parentul = ((obj.parentElement) ? obj.parentElement : obj.parentNode);
  if ((parentul.className == "menu") || (parentul.className == "menu1")) return null;
  doubleparentul = ((parentul.parentElement) ? parentul.parentElement.parentElement : parentul.parentNode.parentNode);
  return doubleparentul;
}

function handleMouseOver(e) {
    var el = (e) ? e.target : event.srcElement;
    var menuitem = isMenuItem(el);
    if (menuitem) {
  var vParentUL = null;
  var vParentLI = null;
  var vDoubleParentUL = null;
  var vHideParentUL = null;
  var vHideParentLI = null;
  var vHideDoubleParentUL = null;

  vParentUL = parentUL(menuitem);
  vParentLI = parentLI(menuitem);
  vDoubleParentUL = doubleParentUL(menuitem);
  if (hideSub != null)
  {
    vHideParentUL = parentUL(hideSub);
    vHideParentLI = parentLI(hideSub);
    vHideDoubleParentUL = doubleParentUL(hideSub);
  }

  if (menuitem == hideSub)
  {
    clearTimeout(menuTime);
    addStyle(menuitem, "over");
    hideSub = menuitem;
  }
  else if (hideSub == null)
  {
    addStyle(menuitem, "sub over");
  }

  else if (vParentUL == vHideParentUL)
  {
    clearTimeout(menuTime);
    closetype = 'current';
    removeStyle(hideSub, "sub");
    addStyle(menuitem, "sub over");
    hideSub = menuitem;
  }
  else if ((vParentLI != null) && (vParentLI == hideSub))
  {
    clearTimeout(menuTime);
    addStyle(menuitem, "sub over");
    hideSub = menuitem;
  }
  else if ((vHideParentLI != null) && (vHideParentLI == menuitem))
  {
    clearTimeout(menuTime);
    closetype = 'current';
    removeStyle(hideSub, "sub");
    addStyle(menuitem, "over");
    hideSub = menuitem;
  }
  else if ((vHideDoubleParentUL != null) && (vHideDoubleParentUL == vParentUL))
  {
    clearTimeout(menuTime);
    closetype = 'current';
    removeStyle(hideSub, "sub");
    removeStyle(vHideParentLI, "sub");
    addStyle(menuitem, "sub over");
    hideSub = menuitem;
  }
  else
  {
    clearTimeout(menuTime);
    closetype = 'all';
    removeStyle(hideSub, "sub");
  } 


    }
}

function handleMouseOut(e) {
    var el = (e) ? e.target : event.srcElement;
    var menuitem = isMenuItem(el);
    if (menuitem) {
        removeStyle(menuitem, "over");
        hideSub = menuitem;
		closetype = 'all';
        menuTime = setTimeout('removeStyle(hideSub, "sub")', 200);
    }
}

function handleClick(e) {
    var el = (e) ? e.target : event.srcElement;
    var menuitem = isMenuItem(el);
    if (menuitem && el.tagName.toLowerCase() != "a") {
    neededA = menuitem.getElementsByTagName("a");
    if ( neededA.length != 0 ) {
      neededLink = neededA[0].getAttribute('href',2);
      neededLocation = neededA[0].getAttribute('target',2);
      if (neededLocation && neededLocation == "_blank")
      {
        window.open(neededLink,"","");
      } else {
        location.assign(neededLink);
      }
    }
  }
}

function menuInit(){
	try{document.getElementById('site_menu').onmouseover = handleMouseOver;}
	catch(err){alert('over: no menu');};
	
	try{document.getElementById('site_menu').onmouseout = handleMouseOut;}
	catch(err){alert('out: no menu');};
	
	try{document.getElementById('site_menu').onclick = handleClick;}
	catch(err){alert('click: no menu');};
}


/*function margin()
{
	var m=document.getElementById('site_menu').elements("li").offsetWidth;
	alert(m);
}*/
