
var dropdownEvent = false;
var dropdownEventIgnored = false;

var htmlClickHandlerForDropdown = function(event) {
  if (($(event.target).hasClass('jScrollPaneDrag')) || ($(event.target).hasClass('jScrollPaneTrack')) || ($(event.target).hasClass('jScrollArrowUp')) || ($(event.target).hasClass('jScrollArrowDown')) || ($(event.target).hasClass('jScrollPaneContainer')) || ($(event.target).hasClass('dropdown_menu')) || ($(event.target).parent().hasClass('jScrollPaneContainer'))){
		return false;
  }
  dropdownEventIgnored = false;
  if (!dropdownEvent) {
    closeAllDropdowns();
  } else {
    dropdownEventIgnored = true;
  }
  dropdownEvent = false;
  event.stopPropagation();
}

// Open dropdown
var openDropDown = function($elem) {
  dropdownEvent = true;
  if ($elem.parent().hasClass('dropdown_content')){
		var $moduleContainer = $elem.parents('.dropdown_content').eq(0);
  } else {
		var $moduleContainer = $elem.parents('.moduleContainer').eq(0);
  }
  $moduleContainer.css('position','relative');
  $elem.parents('.dropdown_content').eq(0).css('z-index', '99999');
  $elem.parents('.moduleContainer').eq(0).css('z-index', '99999');

  $elem.find('.dropdown_menu').css('position', 'absolute').css('left','2000px').css('display', 'block');
  $ul = $elem.find('ul');

  var liElHeight = 0;
  $ul.find('li').each(function(){
		liElHeight = liElHeight + $(this).height();
  }); 

  if (liElHeight < 200){  
		$ul.height(liElHeight);
		$elem.find('.dropdown_menu').height(liElHeight+20); 
  } else {
		$elem.find('.dropdown_menu').height(220); 
  }

  $elem.find('.dropdown_menu').css('position', '').css('left','').css('display', 'none');  
  $elem.addClass('active');  
  $elem.find('.dropdown_menu').slideDown('slow', function(){});
  $ul.jScrollPane({showArrows:true, scrollbarWidth:18});
  
  /* IE7-Bug: Set the footer z-index to -1 to get the dropdowns in front of it */
  $('#footer').css('z-index', '-1');
	
  return false;
}


// Close dropdown
var closeDropDown = function($elem) {
  var $moduleContainer = $elem.parents('.moduleContainer').eq(0);

  $elem.find('.dropdown_menu').slideUp('slow', function(){
    $ul = $elem.find('ul');
    //$ul.jScrollPaneRemove();
    $elem.removeClass('active');
    $moduleContainer.css('position','');
    $elem.parents('.dropdown_content').eq(0).css('z-index', '');
	if($('.tab_faqs.tabs.floatbox')){
		// we're on the faq page. Do not reset z-index
	}else{
		$elem.parents('.moduleContainer').eq(0).css('z-index', '');
	}
    
  });
  
  /* IE7-Bug: Reset z-index */
  $('#footer').css('z-index', '');
}

// Close all dropdowns
var closeAllDropdowns = function() {
  $('.dropdown').each(function(index, elem){
    if ($(elem).hasClass('active')) closeDropDown($(elem));
  });
}

var dropdownClickHandler = function() {
  $this = $(this).parent();
  
  // Close all dropdowns, before reopen another one
  closeAllDropdowns();
  
  if ($this.hasClass('active')){
    closeDropDown($this);
  } else {
    openDropDown($this);
  }
}

var initDropdowns = function() {
  $('.moduleContainer .dropdown p').unbind("click", dropdownClickHandler);
  $('.moduleContainer .dropdown p').click(dropdownClickHandler);
}

$(document).ready(function() {
  initDropdowns();
  $('html').click(htmlClickHandlerForDropdown);
});

