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");
    }
  })
  
  // Controls the More Options Button Behavior
  var inheritHeightTabbed = $('div#product_left_options_tabs_1').height() + 10;
  var imgHeight = $('div#product_left_options_tabs_1 img:last').height();
  if (imgHeight < 20) imgHeight = 100;
  var moreOptionsHeight = 0;
  var totalImages = 0;
  var toolbarHeight = 0;
  if (window.optionOverride === undefined) {
    if (inheritHeightTabbed > 10) {
      moreOptionsHeight = Math.round(850 + (imgHeight / 2) -
      ($('div#product_left_images').height() + $('div#product_left_images_mini ').height() + $('div#product_left_options_tabs_buttons').height()));
      if (moreOptionsHeight == 0) moreOptionsHeight = inheritHeightTabbed / 4.5;
      if (moreOptionsHeight < inheritHeightTabbed) $('img#product_left_more_options_button').css('visibility', 'visible');
      if (moreOptionsHeight < inheritHeightTabbed) {
        $("img#product_left_more_options_button").click(function(){
          optionsButton(inheritHeightTabbed, moreOptionsHeight);
        });
        $('div#product_left_options_tabs_1').height(moreOptionsHeight);
      }
      else $('img#product_left_more_options_button').remove();
    }
  }
  else {
    if (optionOverride == 0) $('img#product_left_more_options_button').remove();
    else {
      if (optionOverride < inheritHeightTabbed) $('img#product_left_more_options_button').css('visibility', 'visible');
      if (optionOverride < inheritHeightTabbed) {
        $("img#product_left_more_options_button").click(function(){
          optionsButton(inheritHeightTabbed, optionOverride);
        });
        $('div#product_left_options_tabs_1').height(optionOverride);
      }
    }
  }
  
  // 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"
  });
});

function hideSlider(){
  if ($.browser.msie && jQuery.browser.version == "6.0") {
    $("div#product_left_options_tabs_slide").animate({
      width: 0
    }, 500);
  }
  else {
    $("div#product_left_options_tabs_slide").animate({
      width: 0,
      opacity: 0
    }, 500);
  }
  $("div#product_left_options_tabs_slide").fadeOut();
  $("div#product_left_options_tabs_slide_container div").fadeOut();
}

function showSlider(selector){
  if ($("div#product_left_options_tabs_slide:visible").length > 0) hideSlider();
  setTimeout(function(){
    $(selector).show();
    if ($.browser.msie && jQuery.browser.version == "6.0") {
      $("div#product_left_options_tabs_slide").animate({
        width: "695px"
      }, 500);
    }
    else {
      $("div#product_left_options_tabs_slide").animate({
        width: "695px",
        opacity: 1
      }, 500);
    }
  }, 500);
}

function optionsButton(fullHeight, hiddenHeight){
  if ($("div#product_left_options_tabs_1").height() == (hiddenHeight)) {
    $("div#product_left_options_tabs_1").animate({
      "height": fullHeight
    }, "slow");
    $("img#product_left_more_options_button").fadeOut('slow', function(){
      $(this).attr('src', "/pp/img/button-options-arrow-close.png").attr('height', 21).attr('width', 106).fadeIn('slow');
    });
  }
  else {
    $("div#product_left_options_tabs_1").animate({
      "height": hiddenHeight
    }, "slow");
    $("img#product_left_more_options_button").fadeOut('slow', function(){
      $(this).attr('src', "/pp/img/button-options-arrow-more.png").attr('height', 21).attr('width', 106).fadeIn('slow');
    });
  }
}

function selectTab(selection){
  $('img#product_left_more_options_button').hide();
  $("div#product_left_options_tabs").children().hide();
  $("div#product_left_additional_options_buttons").show();
  $("div#product_left_options_tabs_buttons").children().css('background-position', "0 0");
  $("div#product_left_options_tabs_buttons div").children().css('background-position', "right 0");
  $("div#product_left_options_tabs_buttons_row_2").children().css('background-position', "0 0");
  $("div#product_left_options_tabs_buttons_row_2 div").children().css('background-position', "right 0");
  $("div#product_left_options_tabs_buttons_row_3").children().css('background-position', "0 0");
  $("div#product_left_options_tabs_buttons_row_3 div").children().css('background-position', "right 0");
  $(selection).css('background-position', "0 -36px");
  $(selection).children().css('background-position', "right -36px");
  
}

function optionText(selection){
  $("div#product_left_additional_options_buttons_left span:not(.product_left_options_text_hide)").addClass("product_left_options_text_hide");
  $(selection).removeClass('product_left_options_text_hide');
  if ($(selection).html() == '') $('img#product_left_options_zoom').hide();
  else $('img#product_left_options_zoom').show();
}

function mainSelectTab(selection){
  $("div#product_right_summary").hide();
  $("div#product_right_tabs").show();
  $("div#product_right_tabs").children("div").hide();
  $("div#product_right_tabs_buttons").children().css('background-position', "0 0");
  $("div#product_right_tabs_buttons div").children().css('background-position', "right 0");
  $(selection).css('background-position', "0 -18px");
  $(selection).children().css('background-position', "right -18px");
}

function hideProductForm(changeSelection, hideSelection){
  $(hideSelection).hide();
  $(changeSelection).change(function(){
    $(hideSelection).slideDown();
  });
}
