/** * 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); } } ); }); });