jQuery.preloadImages = function(){
  for (var i = 0; i < arguments.length; i++) {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

$(document).ready(function(){
  // Sets up Note
  var tooltip_text = "Processing time does not include transit time for shipping.  Please select the appropriate shipping method and note your event date during checkout to ensure your products arrive on time.";
  $("span.tooltip").hover(function(){
    $('div#product_page_tooltip').remove();
    var x_offset = $(this).position().left - ($(this).width() / 2) - 200;
    var y_offset = $(this).position().top + $(this).height() / 2;
    $(this).append('<div id="product_page_tooltip">' + tooltip_text + '</div>');
    $('div#product_page_tooltip').css({
      'top': y_offset,
      'left': x_offset
    });
  }, function(){
    $(this).children('div').remove();
  });
  
  // Sets up Fancy Boxes
  $("div#product_left_images").children("a").fancybox({
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 500,
    frameHeight: 500,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  $("div#product_left_images_enlarge a, div#product_left_images_caption div a, div.product_left_general a").fancybox({
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 500,
    frameHeight: 500,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  $("div.product_right_info_buttons_left a").fancybox({
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 555,
    frameHeight: 285,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  $("div#product_left_images_get_this_look a").fancybox({
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 525,
    frameHeight: 275,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  $("div#product_left_options_tabs div:not(.product_left_options_div_slider) a, div#product_left_options_tabs_slide a").not(".iframe").fancybox({
    imageScale: false,
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 700,
    frameHeight: 500,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  $("div#product_left_options_tabs a.iframe").fancybox({
    hideOnContentClick: true,
    zoomSpeedIn: 500,
    zoomSpeedOut: 500,
    frameWidth: 700,
    frameHeight: 450,
    overlayShow: false,
    overlayOpacity: 0.4,
    padding: 0,
    zoomOpacity: true,
    centerOnScroll: false,
    itemLoadCallback: null
  });
  
  // Overrides Clicking on Thumbnails
  $("div#product_left_images_mini a").click(function(){
    return false;
  });
  
  // Preload 250 Images
  $("div#product_left_images_mini img").each(function(){
    $.preloadImages($(this).attr('src').replace("75.jpg", "250.jpg"));
    $.preloadImages($(this).attr('src').replace("75.jpg", "500.jpg"));
  });
  
  // Controls Thumbnail Behavior
  if ($("div#product_left_images_mini img").size() > 1) {
    $("div#product_left_images_mini img").click(function(){
      var imgHref = $(this).attr('src');
      var diffCaption = $(this).parent().next("span.pp_caption").html();
      if (imgHref != $('img#product_left_big_image').attr('src')) {
        $("div#product_left_images_mini img").css('border-color', 'white');
        $(this).css('border-color', '#ec316e');
        var imgLink = $(this).parent().attr('href');
        $.preloadImages(imgLink);
        var imgText = $(this).attr('alt');
        $('div#product_left_images_enlarge a, div#product_left_images_caption a').attr('href', imgLink);
        $('div#product_left_images_get_this_look a').attr('href', 'product-page-2_3-temp-look-popup.htm?p=' + imgHref);
        if ($(this).attr('class') == 'get_this_look') {
          $("div#product_left_images_caption").css({
            'visibility': 'hidden',
            'height': '0'
          });
          $("div#product_left_images_enlarge, div#product_left_images_get_this_look").css({
            'visibility': 'visible',
            'height': 'auto'
          });
        }
        else {
          $("div#product_left_images_caption").css({
            'visibility': 'visible',
            'height': 'auto'
          });
          $("div#product_left_images_enlarge, div#product_left_images_get_this_look").css({
            'visibility': 'hidden',
            'height': '0'
          });
          if (diffCaption != "") $('div#product_left_images_caption strong').html(diffCaption);
          else $('div#product_left_images_caption strong').html(imgText);
        }
        $("img#product_left_big_image").stop().fadeTo(400, 0, function(){
          $('img#product_left_big_image').attr('src', imgHref.replace("75.jpg", "250.jpg"));
          $('img#product_left_big_image').attr('alt', imgText);
          $('div#product_left_images a:first').attr('href', imgLink);
        }).fadeTo("slow", 1);
      }
    });
  }
  
  // Sets Initial Thumbnail State
  $.preloadImages($("img#product_left_big_image").parent().attr('href'));
  $("div#product_left_images_mini img:first").css('border-color', '#ec316e');
  
  // Controls the Behavior of the Tabs
  $("div#product_right_tabs_buttons_1").click(function(){
    if ($('div#product_right_tabs_1').is(':hidden')) {
      mainSelectTab(this);
      $('div#product_right_tabs_1').fadeIn();
    }
  })
  $("div#product_right_tabs_buttons_2").click(function(){
    if ($('div#product_right_tabs_2').is(':hidden')) {
      mainSelectTab(this);
      $('div#product_right_tabs_2').fadeIn();
    }
  })
  $("div#product_right_tabs_buttons_3").click(function(){
    if ($('div#product_right_tabs_3').is(':hidden')) {
      mainSelectTab(this);
      $('div#product_right_tabs_3').fadeIn();
    }
  })
  
  $("div#product_right_tabs_buttons_4").click(function(){
    if ($('div#product_right_tabs_4').is(':hidden')) {
      // Load Why Beau-coup
      $("div#product_right_tabs_4").load("/pp/include/tab_beaucoup.php");
      mainSelectTab(this);
      $('div#product_right_tabs_4').fadeIn();
    }
  })
  $("div#product_right_tabs_buttons_review").click(function(){
    if ($('div#product_right_summary').is(':hidden')) {
      mainSelectTab(this);
      $("div#product_right_tabs").hide();
      $('div#product_right_summary').fadeIn();
    }
  })
  
  // Snippet Tab
  $("div#product_right_header_review").click(function(){
    $("div#product_right_tabs_buttons_review").trigger("click");
  })
  
  // Tab Setup
  if (($("div#product_left_options_tabs_buttons").children().size() < 2) && ($("div#product_left_options_tabs_buttons_row_2").children().size() < 1)) $('div#product_left_options_tabs_buttons_1').css('cursor', 'default');
  $('div#product_left_options_tabs_1, div#product_left_options_tabs_2, div#product_left_options_tabs_3, div#product_left_options_tabs_4, div#product_left_options_tabs_5, div#product_left_options_tabs_6').css('padding-top', '0px');
  // Controls the Behavior of the Tabs
  $("div#product_left_options_tabs_buttons_1").click(function(){
    if ($('div#product_left_options_tabs_1').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_1').fadeIn();
      $("img#product_left_more_options_button").show();
      optionText('span#product_left_options_text_1');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_2").click(function(){
    if ($('div#product_left_options_tabs_2').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_2').fadeIn();
      optionText('span#product_left_options_text_2');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_3").click(function(){
    if ($('div#product_left_options_tabs_3').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_3').fadeIn();
      optionText('span#product_left_options_text_3');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_4").click(function(){
    if ($('div#product_left_options_tabs_4').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_4').fadeIn();
      optionText('span#product_left_options_text_4');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_5").click(function(){
    if ($('div#product_left_options_tabs_5').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_5').fadeIn();
      optionText('span#product_left_options_text_5');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_6").click(function(){
    if ($('div#product_left_options_tabs_6').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_6').fadeIn();
      optionText('span#product_left_options_text_6');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_7").click(function(){
    if ($('div#product_left_options_tabs_7').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_7').fadeIn();
      optionText('span#product_left_options_text_7');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_8").click(function(){
    if ($('div#product_left_options_tabs_8').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_8').fadeIn();
      optionText('span#product_left_options_text_8');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  $("div#product_left_options_tabs_buttons_9").click(function(){
    if ($('div#product_left_options_tabs_9').is(':hidden')) {
      selectTab(this);
      $('div#product_left_options_tabs_9').fadeIn();
      optionText('span#product_left_options_text_9');
      $("div#product_left_options_tabs_container div div").removeClass("clicked");
      $(this).addClass("clicked");
    }
  })
  
  
  
  // Slider Implementation
  // IE6 Fix for input boxes appearing over z-index slider
  if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
    $('div#product_left_options_tabs_slide').bgiframe();
  }
  
  // Slider Tab Setup
  $("div.product_left_options_div_slider table tr td a").click(function(){
    $(this).parent("td").parent("tr").siblings("tr").children("td").children("a").children("img").removeClass("clicked");
    $(this).children("img").addClass("clicked");
  })
  $("img#product_left_options_tabs_slide_close_button").click(function(){
    hideSlider();
    $("div#product_left_options_tabs a img").removeClass("clicked");
  });
  
  if (!$.browser.msie && jQuery.browser.version != "6.0") {
    $("div#product_left_options_tabs_slide").hide().css({
      opacity: 0
    });
  }
  $("div#product_left_options_tabs_slide_container div").hide();
  $("div#product_left_options_tabs_slide").fadeOut(0);
  
  $("div.product_left_options_div_slider img").hover(function(){
    $(this).addClass("selected");
  }, function(){
    $(this).removeClass("selected");
  });
  
  // Javascript/Hide Show
  $("div#product_left_options_tabs_2, div#product_left_options_tabs_3, div#product_left_options_tabs_4, div#product_left_options_tabs_5, div#product_left_options_tabs_6, div#product_left_options_tabs_7, div#product_left_options_tabs_8, div#product_left_options_tabs_9, div#product_right_tabs_4, div#product_right_summary, div#product_left_options_tabs_slide").css("height", "auto");
  $("form#form_2, form#form_3").css({
    "height": "auto",
    "overflow": "visible"
  });
});
