function getElementByClass(cName,tag,p) {
    if (!cName) {
	return false;
    }
   
    if (!tag) tag = "*";
    if (!p) p = document;
    var i;
    var cRegEx=new RegExp("^"+cName+"$");
    var ra=[];
    var a=p.getElementsByTagName(tag);
    for(i=0;i<a.length;i++){
	if(cRegEx.test(a[i].className)){
	    ra.push(a[i]);
	}
    }
    return ra;
}

var menu_allCatLevel1=[];
var menu_allCatLevel2=[];
var menu_allCatLevel3=[];
var menu_allCatLevel4=[];

var cRegExPlus=new RegExp("plus.png$");
var cRegExMoins=new RegExp("moins.png$");

function bikeo_plusMenuLevel(level, menu_id) {
  var i;
  var a=[];
  var id;
  var img;

  if (level == 2) {
    if (menu_allCatLevel2.length == 0) {
      menu_allCatLevel2 = getElementByClass("cat-menu-2", "div", document);
    }
    a = menu_allCatLevel2;
  } else if (level == 3) {
    if (menu_allCatLevel3.length == 0) {
      menu_allCatLevel3 = getElementByClass("cat-menu-3", "div", document);
    }
    a = menu_allCatLevel3;
  } else if (level == 1) {
    if (menu_allCatLevel1.length == 0) {
      menu_allCatLevel1 = getElementByClass("cat-menu-1", "div", document);
    }
    a = menu_allCatLevel1;
  } else {
    return;
  }

  for (i=0;i<a.length;i++) {
    id = a[i].id.substr(8);
    img = document.getElementById('menu_plus_'+id);
    if (img && id != menu_id) {
      if (cRegExMoins.test(img.src)) {
	img.src="/images/submenu_plus.png";
      }
    }
  }
}

function bikeo_toggleMenuIcon(menu_id, level) {
  // change the icon + <-> -
  var img;
  img = document.getElementById('menu_plus_'+menu_id);

  if (cRegExMoins.test(img.src)) {
    img.src="/images/submenu_plus.png";
  } else if (cRegExPlus.test(img.src)) {
    img.src="/images/submenu_moins.png";

    a = getElementByClass("cat-menu-"+level,
			  "div",
			  document.getElementById("menu_id_"+menu_id));
    for (i=0;i<a.length;i++) {
      a[i].style.display = "";
    }
  }
}

function bikeo_clickSubMenu(level, menu_id) {
    var a=[];
    var i;
    var id;

    if (level == 1) {
      bikeo_plusMenuLevel(1, menu_id);
      bikeo_plusMenuLevel(2, menu_id);
      bikeo_plusMenuLevel(3, menu_id);

      // hide all menus level 2 and more
      a = menu_allCatLevel2;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      a = menu_allCatLevel3;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      a = menu_allCatLevel4;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      bikeo_toggleMenuIcon(menu_id, 2);
    }

    if (level == 2) {
      bikeo_plusMenuLevel(2, menu_id);
      bikeo_plusMenuLevel(3, menu_id);

      // hide all menus level 3 and more
      a = menu_allCatLevel3;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      a = menu_allCatLevel4;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      bikeo_toggleMenuIcon(menu_id, 3);
    }

    if (level == 3) {
      bikeo_plusMenuLevel(3, menu_id);
      
      // hide all menus level 4
      if (menu_allCatLevel4.length == 0) {
	menu_allCatLevel4 = getElementByClass("cat-menu-4", "div", document);
      }
      a = menu_allCatLevel4;
      for (i=0;i<a.length;i++) { a[i].style.display = "none"; }

      bikeo_toggleMenuIcon(menu_id, 4);
    }
}

