
jQuery(document).ready(function () {

  InitMenu('articles', 'open');
});

function InitMenu(menuID, openClass) {

  var itemSelector = '#' + menuID + ' a';

  jQuery(itemSelector).click(function () {

    if (!jQuery(this).parent().hasClass('all') && !jQuery(itemSelector).is(':animated') && 
        (jQuery(this).attr("href") == undefined || jQuery(this).attr("href") == '')) {

      if (!jQuery(this).parent().hasClass(openClass)) {

        SetItemClasses(this, menuID, openClass);
        SetActiveMenuItem(jQuery(this).parent(), openClass);
      }
      else {

        jQuery(this).parent().removeClass(openClass);
        jQuery(jQuery(this).parent().find('ul')).slideUp(0, function () {

          jQuery(this).removeClass(openClass);
        });
      }
    }
  });

  return false;
}

function SetItemClasses(item, menuID, openClass) {

  if (jQuery(item).attr('id') != menuID) {

    jQuery.each(jQuery(item).siblings().not('.all'), function () {

      if (jQuery(jQuery(this).find('a').get(0)).attr("href") == undefined) {

        jQuery(jQuery(this).find('ul')).slideUp(0, function () {

          jQuery(this).removeClass(openClass);
        });
        jQuery(this).removeClass(openClass);
      }
    });

    var parentItem = jQuery(item).parent();
    SetItemClasses(parentItem, menuID, openClass);
  }
}

function GetCurrentMenuItem(itemSelector, openClass) {

  return jQuery(itemSelector + '.' + openClass)[0];
}

function SetActiveMenuItem(item, openClass) {

  jQuery(jQuery(item).children()).slideDown(0, function () {

    jQuery(item).addClass(openClass);
  });
}
