/**
 * Manages "color variant" behavior.
 * @author Adam J. McIntyre
 */

ColorVariantManager=function(){var currentEl=selectedEl=originalVariantId='';var variants=templates=[];return{categoryClick:function(el){var els=YAHOO.util.Dom.getElementsByClassName('color','div',el.parentNode,function(o){if(o==el){YAHOO.util.Dom.addClass(o,'selected');var dataEl=YAHOO.util.Dom.getLastChild(el);var flyoutId=dataEl.getAttribute('data-parentId');var variantId=dataEl.id.substr(dataEl.id.lastIndexOf('_')+1);document.getElementById('item_'+flyoutId+'_img').src='/static/images/icons/blank.gif';var im=new Image();im.onload=function(){document.getElementById('item_'+flyoutId+'_img').src=im.src;};im.src=dataEl.getAttribute('data-image');document.getElementById('data_price_'+flyoutId).innerHTML=dataEl.getAttribute('data-price');document.getElementById('data_color_'+flyoutId).innerHTML=dataEl.getAttribute('data-label');document.getElementById('data_url_'+flyoutId).href=dataEl.getAttribute('data-href');document.getElementById('data_url_ft_'+flyoutId).href=dataEl.getAttribute('data-href');}
else{YAHOO.util.Dom.removeClass(o,'selected');}});},detailClick:function(el){YAHOO.util.Dom.removeClass(currentEl,'selected');YAHOO.util.Dom.addClass(el,'selected');currentEl=el;var v=this.getVariant(el.id.substr(el.id.lastIndexOf('_')+1));var fo=new YAHOO.util.Anim('swapTarget',{opacity:{to:0}},0.10);fo.onStart.subscribe(function(){YAHOO.util.Dom.setStyle('loader','opacity','0.99')});fo.animate();var idx=Carousels.highlighted.id.substr(Carousels.highlighted.id.lastIndexOf('-')+1);idx--;var currentPv=v.representativeView;var enlargeEls=YAHOO.util.Dom.getElementsByClassName('enlargeImg','a','hero');var mbEls=YAHOO.util.Dom.getElementsByClassName('ProductViews','li','mediaBar');var count=0;var grp=aClient.getGroup('Product Views');for(var i in v.productViews){enlargeEls[count].href=v.productViews[i].large;grp[v.productViews[i].large]=count;grp.items[count]=enlargeEls[count];var mbEl=YAHOO.util.Dom.getFirstChild(mbEls[count]);mbEl.href=v.productViews[i].view;YAHOO.util.Dom.getFirstChild(mbEl).src=v.productViews[i].thumb;if(count==idx){currentPv=v.productViews[i].view;}
count++;}
var im=new Image();im.onload=function(){var tg=document.getElementById('swapTarget');tg.src=currentPv;var fi=new YAHOO.util.Anim('swapTarget',{opacity:{to:0.99}},0.10);fi.onStart.subscribe(function(){YAHOO.util.Dom.setStyle('loader','opacity','0')});fi.animate();}
im.src=currentPv;if(document.getElementById('label_price'))
document.getElementById('label_price').innerHTML=v.price;document.getElementById('label_productNumber').innerHTML=nikonLabel.productNumber+' '+v.productNumber;if(v.nikonMall){document.getElementById('buttons_wtb').innerHTML=this.processTemplate('mall',v);}
else{document.getElementById('buttons_wtb').innerHTML=this.processTemplate('wtb',v);}},detailMouseover:function(el){var v=this.getVariant(el.id.substr(el.id.lastIndexOf('_')+1));document.getElementById('color_label').innerHTML=v.name;document.getElementById('lg_swatch').innerHTML='<img src="'+v.swatchUrl+'" alt="'+v.name+'">';},detailMouseout:function(el){var v=this.getVariant(el.id.substr(el.id.lastIndexOf('_')+1));document.getElementById('color_label').innerHTML="";document.getElementById('lg_swatch').innerHTML="";},lightboxClick:function(variantId){var v=this.getVariant(variantId);this.swapEnlargeImg(v);var els=YAHOO.util.Dom.getElementsByClassName('color','div','container_lbVariants');for(var i=0;i<els.length;i++){if(els[i].id.indexOf(variantId)>-1){YAHOO.util.Dom.addClass(els[i],'selected');}
else{YAHOO.util.Dom.removeClass(els[i],'selected');}}
document.getElementById('aImg').src=selectedEl.href;document.getElementById('label_colorName').innerHTML=v.name;document.getElementById('variant_label').innerHTML=v.name+'&nbsp;';},swapEnlargeImg:function(variant){if(typeof variant!='object')variant=this.getVariant(variant);var enlargeEls=YAHOO.util.Dom.getElementsByClassName('enlargeImg','a','hero');var count=0;var grp=aClient.getGroup('Product Views');for(var i in variant.productViews){enlargeEls[count].href=variant.productViews[i].large;grp[variant.productViews[i].large]=count;grp.items[count]=enlargeEls[count];count++;}},resetEnlargeImg:function(){this.swapEnlargeImg(originalVariantId);},setOriginalColor:function(id){originalVariantId=id;},setSelectedEl:function(el){selectedEl=el;},addVariant:function(id,o){variants[id]=o;return this;},getVariant:function(id){return variants[id]||null;},getAllVariants:function(){return variants;},setCurrentEl:function(id){currentEl=id;},addTemplate:function(id,html){templates[id]=html;},getTemplate:function(id){return templates[id];},processTemplate:function(tId,variant){var html=this.getTemplate(tId);for(var i in variant){html=html.replace('['+i+']',variant[i]).replace('&amp;','&');}
return html;}}}();