                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=window.__MT;window.__noTrace=false;}



if(typeof(vp)=="undefined")
{
var vp={};
}

if(typeof vp.controls=="undefined")
{
vp.controls={};
}




vp.controls.ColorSelector=function $vpfn_70Voj3PKR1ZWxACgNC8CZg18$28(sId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.id=sId;


this.clickHandlers=new Array();

this.selectedColorId;







this.setHandler=function $vpfn_eahq7wgHi1qcy4RPqYrYug33$22(sSwatchBoxId,iColor,fnHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
this.clickHandlers[sSwatchBoxId]=fnHandler;
};





this.updatePresentation=function $vpfn_4rzGIeRJoUgy9NkZqUHcvQ42$30(sSwatchBoxId,iColor)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return;
};






this.click=function $vpfn_6GOSYowaLYFpcROzJ6Z_sg52$17(sSwatchBoxId,iColor,sContainerId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(this.selectedColorId==iColor)
{

return;
}

this.updatePresentation(sSwatchBoxId,iColor);


var f=this.clickHandlers[sSwatchBoxId];
if(f!=undefined)
{
f(iColor,sId);
}

this.selectedColorId=iColor;

var jOldColor=$(".active-state");

if(jOldColor)
{
jOldColor.removeClass("active-state");
jOldColor.find(".SubstrateColorName").css("visibility","hidden");
jOldColor.find(".SubstrateProductPrice").css("visibility","hidden");
}

var jNewColor=$(".hover-state");
if(jNewColor)
{
jNewColor.removeClass("hover-state");
jNewColor.addClass("active-state");
}
};

this.mouseover=function $vpfn_VFzE_ji_39TcBm8FQ9u4Uw88$21(sContainerId,iColor)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(this.selectedColorId==iColor)
{

return;
}

var jContainer=$("#"+sContainerId);

jContainer.removeClass("normal-state");
jContainer.addClass("hover-state");
jContainer.find(".SubstrateColorName").css("visibility","visible");
jContainer.find(".SubstrateProductPrice").css("visibility","visible");
};

this.mouseout=function $vpfn_VmranjkXyzuULliMEj$yHQ104$20(sContainerId,iColor)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(this.selectedColorId==iColor)
{

return;
}

var jContainer=$("#"+sContainerId);

jContainer.removeClass("hover-state");
jContainer.addClass("normal-state");
jContainer.find(".SubstrateColorName").css("visibility","hidden");
jContainer.find(".SubstrateProductPrice").css("visibility","hidden");
};

};




vp.controls.ColorSelectorManager=new(function $vpfn_58Yjm2SgsZdtrOrwp8zkCw125$40()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

this.selectors=new Array();





this.registerSelector=function $vpfn_5EGdfa5FvkeMIfDfA8ZdFg134$25(sId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(this.selectors[sId]==undefined)
{
this.selectors[sId]=new vp.controls.ColorSelector(sId);
}
return this.selectors[sId];
};







this.registerSwatch=function $vpfn_MsWMlkCEuqoGVBeUNpIZ9A149$23(sId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(this.selectors[sId]==undefined)
{
this.selectors[sId]=new vp.controls.ColorSelectorSwatch(sId);
}
return this.selectors[sId];
};






this.getSelector=function $vpfn_CJe$P0$Ddg16Nl$peM_WtA163$20(sId)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return this.selectors[sId];
};
})();














vp.controls.SubstrateColorMultiMenu=function $vpfn_i8MjSxlfZOzMEDZ2MuL5ug182$38(productOptionColorMapping,currentProductOptions,changeHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var me=this;





this.selectProductOptionValue=function $vpfn_kxRNgHsol_eYa5KIBSiJWA190$36(iProductOptionType,iProductOptionValue)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}

if(currentProductOptions[iProductOptionType]==iProductOptionValue)
{
return;
}

currentProductOptions[iProductOptionType]=iProductOptionValue;

if(changeHandler)
{
changeHandler(me.getSubstrateColor());
}
};




this.getSubstrateColor=function $vpfn_buJdjHjicYIQWa6LIkB5dA209$29()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var aFinalColors=null;

for(var type in currentProductOptions)
{
var pov=currentProductOptions[type];



if(aFinalColors===null)
{
aFinalColors=productOptionColorMapping[pov];
}



else
{
var aColors=productOptionColorMapping[pov];
var aIntersectingColors=[];
for(var i=0,l=aColors.length;i<l;i++)
{
if(aFinalColors.contains(aColors[i]))
{
aIntersectingColors.push(aColors[i]);
}
}
aFinalColors=aIntersectingColors;
}
}


if(aFinalColors===null)
{
throw new Error("There are no selected options - cannot determine substrate color");
}


if(aFinalColors.length!==1)
{
throw new Error("Invalid combination of product options - no substrate color found");
}

return aFinalColors[0];
};
};

