// global namespace for symantec javascript
var symantec = symantec || {};

// shared library functions
symantec.lib = symantec.lib || {};

// menus object
symantec.menus = {
  menu_mouseout_timer: null, // for use with community menu behavior
  community_menu_mouseover_class: 'community_over',
  community_menu_item_mouseover_class: 'community_item_over'
};

// comments object
symantec.comments = {
  default_comment_subject: ''
};

// omniture object
symantec.omniture = {};

/**
 * Sets up the tool tips for product and community list items
 */
symantec.lib.setup_tooltips = function() {
  if (!($.browser.msie && ($.browser.version < 7))) {
    $('.filter-tooltip a').tooltip({
      delay: 1250,
      positionCallback: symantec.lib.tooltip_position_handler,
      showURL: false,
      sticky: 500,
      fade: 250,
      bodyHandler: function() {
      var $tooltip_stub = $('#tooltip-stub div.tooltip').clone();
      $('h1.tooltip-title', $tooltip_stub).text($(this).html());
      $('p.tooltip-body', $tooltip_stub).html($(this).parent().next().html());
      return $tooltip_stub;
      }
    });
  }
}

/**
 * Custom position handler callback for use with tooltip plugin
 */
symantec.lib.tooltip_position_handler = function($target) {
  position = {
    top: 0,
    left: 0
  }
  var target_offset = $target.offset();
  var $target_parent = $target.parents('span');
  position.top = target_offset.top + ($target.height() / 2) + 15;
  position.left = target_offset.left + $target_parent.width() + 25;

  return position;
}

/**
 * Tracking for the links popular areas
 */
symantec.omniture.track_popular = function() {
  $('.utility-featured-list a').click(function() { 
     if (connect_track_popular) {
       connect_track_popular($(this));
     }
  });
}

/**
 * Setup dropdown behavior for the community menu
 */
symantec.menus.setup_menus = function() {
  
  $('#community').mouseover(function() {
    $('#community ul.menu li').show();
    $('#community-name ul.menu, #community-ul').addClass(symantec.menus.community_menu_mouseover_class).addClass(symantec.menus.community_menu_item_mouseover_class);
  });

  $('#community-name').mouseout(function() {
    $('#community-name ul.menu, #community-ul').removeClass(symantec.menus.community_menu_item_mouseover_class);    
    if (!symantec.menus.menu_mouseout_timer) {
      symantec.menus.menu_mouseout_timer = setTimeout("symantec.menus.check_community_mouseout()", 50);
    }
  });
  
  $('#community-menu ul.menu li').mouseover(function() {
    $(this).addClass(symantec.menus.community_menu_item_mouseover_class);
  });
  
  $('#community-menu ul.menu li').mouseout(function() {
    $(this).removeClass(symantec.menus.community_menu_item_mouseover_class);
  });
    
}

/**
 * Check for community menu mouseout
 */
symantec.menus.check_community_mouseout = function() {
  if ($('.' + symantec.menus.community_menu_item_mouseover_class).length) {
    symantec.menus.menu_mouseout_timer = setTimeout("symantec.menus.check_community_mouseout()", 500);
  } else {
    $('#community ul.menu li').hide();
    $('#community-name ul.menu, #community-ul').removeClass(symantec.menus.community_menu_mouseover_class);
    symantec.menus.menu_mouseout_timer = null;
  }
}

/**
 * Removes default comment subject line if comment form is submitted without changing it
 */
symantec.comments.setup_comment_form = function() {
  symantec.comments.default_comment_subject = (Drupal.settings.symantec) ? Drupal.settings.symantec.default_comment_subject : '';
  
  $('#edit-subject').focus(function() {
    if ($(this).val() == symantec.comments.default_comment_subject) {
      $(this).val('');
    }
  });
  
  $('#edit-subject').blur(function() {
    if ($(this).val() == '') {
      $(this).val(symantec.comments.default_comment_subject);
    }
  });
  
  $('#comment-form').submit(function() {
    if ($('#edit-subject').val() == symantec.comments.default_comment_subject) {
      $('#edit-subject').val('');
    }
    return true;
  });
}

Drupal.behaviors.setup_menus = symantec.menus.setup_menus;
Drupal.behaviors.setup_comment_form = symantec.comments.setup_comment_form
Drupal.behaviors.track_popular = symantec.omniture.track_popular