
$(function() {

  // Tabs
  $('.tab_control').each(function (i, elmnt) {
    // ignore already created tabs 
    if (!$(elmnt).hasClass('ui-tabs')) {

      $(elmnt).tabs({
        select: function () {

          if ($('.drop_down_select').length > 0) {
            $('.drop_down_select').dropdown('closeAll');
          }
        }
      });
    }
    
    // to prevent content 'flicker' where user can see un-styled tab contents
    // initial tab state is 'hidden'
    if ($(elmnt).css('visibility') === 'hidden') {
      $(elmnt).css('visibility', 'visible');
    }
  });
  
  // Dialog boxes opened by a link
  createLinkDialog('.legal_disclaimer');
  createLinkDialog('.more_info');
  createLinkDialog('.user_agreement');
  
  /**
   * Creates dialog and attaches click event to passed element.
   * 
   * If there are two classes assumes second class is also assigned to
   * dialog element.
   * 
   * In case of one class assumes dialog element is either located next to
   * passed element or next to element's parent.
   */
  function createLinkDialog(id) {
    var elmnts = $(id);
    
    for (var i = 0, length = elmnts.length; i < length; i++) {
      var $elmnt = $(elmnts[i]);
      var classParts = $elmnt.attr('class').split(' ');
      
      if (classParts.length > 1) {
        var dialogElmnt = $('.dialog_box.' + classParts[1]);
        dialogElmnt = (dialogElmnt.hasClass('ui-dialog-content')) ? dialogElmnt : createDialogBox(dialogElmnt);
        $elmnt.data('linkDialog', dialogElmnt);
      } else {
        var dialogElmnt = $elmnt.next('.dialog_box');
  
        if (dialogElmnt.length == 0) {
          dialogElmnt = $elmnt.parent().next('.dialog_box');
        }
        
        $elmnt.data('linkDialog', createDialogBox(dialogElmnt));
      }
      
      $elmnt.click(function () {
        $(this).data('linkDialog').dialog('open');
        return false;
      });
    }
  }
  
  // Tooltips
  try {
    BT_setOptions({ openWait: 100, closeWait: 100, enableCache: false });
  } catch (e) {
    // ignore error when tooltip framework is not included
  }
  
  /*
   * Following handles user click on a badge.
   */
  var badgeContainers = $('.two_col, .three_col, .four_col');
  
  for (var i = 0, length = badgeContainers.length; i < length; i++) {
    var $elmnt = $(badgeContainers[i]);
    var badges = $elmnt.find('> div');
    var links = $elmnt.find('> span');
    
    for (var j = 0, jlength = links.length; j < jlength; j++) {
      attachBadgeEvent($(links[j]), $(links[j]).find('a'));
      attachBadgeEvent($(badges[j]), $(links[j]).find('a'));
    }
    
    // for IE6 we need to explicitly define badge styling classes 
    if ($.browser.msie && $.browser.version == 6) {
      updateBadgeStyling($elmnt, badges, links);
    }
  }  
  
  var singleBadges = $('.single_link');
  
  for (var i = 0, length = singleBadges.length; i < length; i++) {
    var badge = $(singleBadges[i]);
    
    attachBadgeEvent($(badge), badge.find('a'));
  }
  
  function attachBadgeEvent(badge, link) {
    if (link.length == 1 && link.attr('href') != '' && link.attr('href') != '#') {
      badge.data('href', link.attr('href'));
      badge.css('cursor', 'pointer');
      
      badge.click(function () {
        window.location = $(this).data('href');
      });
    }
    
    if ($.browser.msie && $.browser.version == 6) {
      badgeHover(badge);
    }
  }
  
  
  /********************************************************************
   * Internet Explorer section.
   ********************************************************************/
  
  function updateBadgeStyling(container, badges, links) {
    $(badges[1]).addClass('second_badge');
    
    if (badges.length == 4) {
      $(badges[2]).addClass('third_badge');
    }
    
    $(badges[badges.length - 1]).addClass('last_badge');
    
    $(links[0]).addClass('first_link');
    $(links[1]).addClass('second_link');
    
    if (links.length == 4) {
      $(links[2]).addClass('third_link');
      $(links[3]).addClass('fourth_link');
    }
    
    $(links[links.length - 1]).addClass('last_link');
  
    for (var j = 0, jlength = links.length; j < jlength; j++) {
      var $lelmnt = $(links[j]);
      
      $lelmnt.css('height', container.height());
      $lelmnt.css('visibility', 'visible');
    }
  }
  
  function badgeHover(badge) {
    badge.hover(
      function over() {
        $(this).next('span').find('a').addClass('link_hover');
      }, 
      function out() {
        $(this).next('span').find('a').removeClass('link_hover');
      }
    );
  }
    
  //SCRIPT TO BOLD THE OL NUMBERS 
  $('.dialog_box')
  	.find("ol:first")
	  	.addClass("dialog_box-1st-ol")
  	.children("li")
	  	.wrapInner("<span class='dialog_box-1st-ol-li'>");

});
