(function($){$.extend($.fn,{productInPack:function(options){var productInPack=$.data(this[0],'productInPack');if(productInPack){return productInPack;}
productInPack=new $.fn.productInPack.prototype(options,this[0]);$.data(this[0],'productInPack',productInPack);return productInPack;}});$.fn.productInPack.prototype=function(options,element){this.settings=$.extend(true,{},$.fn.productInPack.prototype.defaults,options);this.element=element;this.init();}
$.extend($.fn.productInPack.prototype,{defaults:{data:{},startDisabled:true,id:null,title:'',currency:'AUD',onInitialized:function(){},onComplete:function(){}},prototype:{mask:null,pointer:null,sizeSelects:[],colourSelects:[],colourSelect:[],completed:false,init:function()
{this.sizeSelects=$('#related-product-'+this.settings.id).find('select.size-select');this.colourSelects=$('#related-product-'+this.settings.id).find('select.colour-selector');this.colourSelect=this.colourSelects[0];var $this=this;this.createMask();this.createPointer();if(!this.settings.startDisabled){this.enable();this.point(1);}
this.resetSizes();this.colourSelects.change(function(idx){if(this.selectedIndex==0){$this.resetSizes();}else{var selectedIndex=this.selectedIndex;$this.sizeSelects.each(function(idx){if(idx==(selectedIndex-1)){$(this).show();$(this).removeAttr('disabled');}else{this.options[0].selected=true;$(this).hide();$(this).attr('disabled','disabled');}});}
$this.trackProgress();});this.sizeSelects.change(function(idx){$this.trackProgress();$this.validate();});this.settings.onInitialized();},trackProgress:function()
{if(this.isSizeSelected()){this.hidePointer();if(this.validate()){this.completed=true;this.settings.onComplete();}}else if(this.isColourSelected()){this.point(2);}else{this.point(1);}},disable:function()
{this.hidePointer();this.mask.fadeIn(300);},enable:function()
{this.mask.fadeOut(400);},createMask:function()
{this.mask=$('<div />')
.css({position:'absolute',zIndex:1,width:$(this.element).width(),height:$(this.element).height(),opacity:0.6,backgroundColor:'#e7e7e7',top:0,left:0})
.appendTo(this.element);},createPointer:function()
{this.pointer=$('<div />')
.addClass('pointer')
.css({position:'absolute',zIndex:2,display:'none'})
.appendTo(this.element);},point:function(level)
{if(this.completed)return;this.pointer.show();if(level==1){this.pointer.css({top:55,left:282});}else{this.pointer.css({top:87,left:282});}},hidePointer:function()
{this.pointer.hide();},resetSizes:function()
{var $this=this;this.sizeSelects.each(function(idx){$this.sizeSelects[idx].options[0].selected=true;if(idx>0){$(this).hide();}else{$(this).show();}
this.disabled=true;});},validate:function()
{var $this=this,valid=true;if(!this.isColourSelected()){$(this.colourSelect).addClass('invalid');valid=false;}else{$(this.colourSelect).removeClass('invalid');}
var sizeSelect;if(!this.isSizeSelected()){sizeSelect=this.getActiveSizeSelect();sizeSelect.addClass('invalid')
valid=false;}else{sizeSelect=this.getActiveSizeSelect();if(sizeSelect)sizeSelect.removeClass('invalid');}
if(valid){productSummary=''+this.settings.title+', ';var count=0;var selectedId=$($this.sizeSelects[$this.colourSelects[0].selectedIndex-1]).val();$.each(this.settings.data,function(idx){count++;if($this.colourSelects[0].selectedIndex==count){productSummary+=this.label+', ';$.each(this.Sizes,function(){if(this.id==selectedId){if(this.stock===0){valid=false;productSummary+=this.label;$j("#feedback-modal").modal({closeHTML:'<a href="javascript:void(0)" title="Close" class="generic-modal-close"></a>',containerId:"generic-modal-container",position:["25%"],onShow:function(){$j('#feedback-modal .modal-content').html('<br /><span class="strong">'+productSummary+'<br /> is currently out of stock.</span><br /><br />');}});}else{}}});}});$j('.selected-product').html(productSummary);if(!valid){sizeSelect.addClass('invalid')}}
return valid;},isSizeSelected:function()
{return $(this.sizeSelects[this.colourSelect.selectedIndex-1]).val()==''?false:true;},isColourSelected:function()
{return $(this.colourSelect).val()==''?false:true;},isValid:function()
{return this.validate();},getSelectedColor:function()
{var color=this.colourSelects[0];return color.options[color.selectedIndex].text;},getSelectedSize:function()
{var size=this.sizeSelects[this.colourSelects[0].selectedIndex-1];return size.options[size.selectedIndex].text;},getActiveSizeSelect:function()
{return(this.colourSelect.selectedIndex>0)?$(this.sizeSelects[this.colourSelect.selectedIndex-1]):false;},getRelatedId:function()
{return $(this.sizeSelects[this.colourSelect.selectedIndex-1]).val();},getTitle:function()
{return this.settings.title;},getCurrency:function()
{return this.settings.currency;}}});})(jQuery);
