/**
* All functions have been moved to product.functions.js
* This is because this file was used in the control panel as well as the front end, but the
* below initialization code is only meant for the frontend.
*/
$(document).ready(function() {
initiateImageCarousel();
initiateImageZoomer();
if(typeof(HideProductTabs) != 'undefined' && HideProductTabs == 0) {
GenerateProductTabs();
if (CurrentProdTab && CurrentProdTab != "") {
ActiveProductTab(CurrentProdTab);
document.location.href = '#ProductTabs';
}
} else {
$('.ProductSectionSeparator').show();
}
// are there any videos in the middle column?
if($('.videoRow').size() > 0) {
$('.videoRow').bind('click', function () {
var videoId = $(this).attr('id').replace('video_', '');
$('#FeaturedVideo').html(''
);
selectCurrentVideo(videoId);
});
}
// are there any videos in the left or right columns?
if($('.sideVideoRow').size() > 0) {
$('.sideVideoRow a').bind('click', function () {
// grab the video id out of the tag id
var videoId = $(this).attr('id').replace('sidevideo_', '');
if(config.ProductImageMode == 'lightbox') {
// we need to hide any objects on the page as they appear onto of our modal window
$('#VideoContainer object').css('visibility', 'hidden');
$.iModal({
data: '',
title: $(this).find('img').attr('title'),
width: 510,
buttons: '',
onBeforeClose: function() {
// reshow any objects that were hidden
$('#VideoContainer object').css('visibility', 'visible');
}
});
} else {
showVideoPopup(videoId);
}
return false;
});
}
// disable all but the first variation box
$(".VariationSelect:gt(0)").attr('disabled', 'disabled');
$(".VariationSelect").change(function() {
// get the index of this select
var index = $('.VariationSelect').index($(this));
// deselected an option, disable all select's greater than this and reset their selected option
if (this.selectedIndex == 0) {
$('.VariationSelect:gt(' + index + ')')
.attr('disabled', 'disabled')
.attr('selectedIndex', 0);
updateSelectedVariation($('body'));
return;
}
else {
// disable selects greater than the next and reset their selected option
$('.VariationSelect:gt(' + (index + 1) + ')')
.attr('disabled', 'disabled')
.attr('selectedIndex', 0);
}
//serialize the options of the variation selects
var optionIds = '';
$('.VariationSelect:lt(' + (index + 1) + ')').each(function() {
if (optionIds != '') {
optionIds += ',';
}
optionIds += $(this).val();
});
// request values for this option
$.getJSON(
config.AppPath + '/remote.php?w=GetVariationOptions&productId=' + productId + '&options=' + optionIds,
function(data) {
// were options returned?
if (data.hasOptions) {
// load options into the next select, disable and focus it
$('.VariationSelect:eq(' + (index + 1) + ') option:gt(0)').remove();
$('.VariationSelect:eq(' + (index + 1) + ')').append(data.options).attr('disabled', '').focus();
}
else if (data.comboFound) { // was a combination found instead?
// display price, image etc
updateSelectedVariation($('body'), data, data.combinationid);
}
}
);
});
//radio button variations
$('.ProductOptionList input[type=radio]').click(function() {
//current selected option id
var optionId = $(this).val();
// request values for this option
$.getJSON(
config.AppPath + '/remote.php?w=GetVariationOptions&productId=' + productId + '&options=' + optionId,
function(data) {
if (data.comboFound) { // was a combination found instead?
// display price, image etc
updateSelectedVariation($('body'), data, data.combinationid);
}
}
);
});
});