
pic1=new Image;pic1.src="/images/bubble/up-left-combo.png";pic2=new Image;pic2.src="/images/bubble/lower-left-combo.png";pic3=new Image;pic3.src="/images/bubble/bubblebg_top.png";pic4=new Image;pic4.src="/images/bubble/bubblebg_mid.png";pic5=new Image;pic5.src="/images/bubble/bubblebg_bottom.png";pic6=new Image;pic6.src="/images/bubble/up-right-combo.png";pic7=new Image;pic7.src="/images/bubble/lower-right-combo.png";var Bubble={delay:.2,delayTimer:null,bubbleLoading:false,contentLoaded:false,mouseIsOver:false,contentCache:new Array(),popLeftOnColumn:3,loadProduct:function(el,colNum,productUrl){Bubble.load(el,'/products/ajax_bubble/',colNum,productUrl);},loadRoaster:function(el,colNum,roasterUrl){Bubble.load(el,'/roaster/ajax_bubble/',colNum,roasterUrl);},load:function(el,url,colNum,itemUrl){el=$(el);$(el).observe('mouseover',function(e){var el=Event.element(e);var id=el.getAttribute('id');if(Bubble.delayTimer!=null){Bubble.closeBubble();}
Bubble.mouseIsOver=true;Bubble.delayTimer=setTimeout(function(){Bubble.getBubbleContent(id,url,colNum)},Bubble.delay*1000);});$(el).observe('mouseout',function(evt){Bubble.closeBubble();});$(el).observe('click',function(evt){Bubble.closeBubble();window.location=itemUrl;});},closeBubble:function(){Bubble.mouseIsOver=false;if(Bubble.delayTimer!=null){clearTimeout(Bubble.delayTimer);Bubble.delayTimer=null;}
Bubble.invisible();},posittionAndShowBubble:function(id,colNum){var icon=$(id);var bubble=$('bubble_popup');var arrow=$('bubble_arrow');var iconDimensions=icon.getDimensions();var iconPosition=icon.cumulativeOffset();var bubbleDimensions=bubble.getDimensions();var bubblePosition=bubble.cumulativeOffset();var arrowDimensions=arrow.getDimensions();var vp=Bubble.getVpInfo();var iconMiddle=Bubble.getMiddle(icon);var bubbleMiddle=Bubble.getMiddle(bubble);var bubbleTop=iconMiddle-bubbleDimensions.height/2;if(colNum>=Bubble.popLeftOnColumn){var arrowDirection='right';var arrowleft=(iconPosition.left-arrowDimensions.width);var bubbleLeft=(arrowleft-bubbleDimensions.width+20);}else{var bubbleLeft=(iconPosition.left+iconDimensions.width+arrowDimensions.width)-20;var arrowDirection='left';var arrowleft=bubbleLeft-35;}
bubble.style.top=bubbleTop+"px";bubble.style.left=bubbleLeft+"px";bubble.style.display="block";arrow.style.top=iconMiddle+"px";arrow.style.left=arrowleft+'px';arrow.down('img').setAttribute('src','/images/bubble/up-'+arrowDirection+'-combo.png');arrow.style.display="block";var bubbleBottom=bubbleTop+bubble.getHeight();if(bubbleTop<vp.top){bubble.style.top=(vp.top-10)+'px';if(iconMiddle<vp.top){arrow.style.top=(vp.top-1)+'px';}}else if(bubbleBottom>vp.bottom){bubbleTop=(vp.bottom-bubble.getHeight())+10;bubble.style.top=bubbleTop+'px';if(iconMiddle>vp.bottom){arrow.style.top=((vp.bottom-iconDimensions.height)-1)+'px';}else{arrow.style.top=(iconMiddle-arrowDimensions.height)-30+'px';}
arrow.down('img').setAttribute('src','/images/bubble/lower-'+arrowDirection+'-combo.png');}},getMiddle:function(element){var position=element.cumulativeOffset();var dimensions=element.getDimensions();return parseInt(position.top+dimensions.height/2);},getVpInfo:function(){var vpPos=document.viewport.getScrollOffsets();var vpDem=document.viewport.getDimensions();return{top:vpPos.top,left:vpPos.left,bottom:vpPos.top+vpDem.height,width:vpDem.width,height:vpDem.height};},invisible:function(){$('bubble_popup').hide();$('bubble_arrow').hide();},visible:function(){$('bubble_popup').show();$('bubble_arrow').show();},getBubbleContent:function(id,url,colNum){var pid=id.split('-')[0];Bubble.contentLoaded=false;Bubble.bubbleLoading=true;if(!Bubble.contentCache.arrayKeyExists(pid)){new Ajax.Request(url+pid,{method:'get',asynchronous:false,onSuccess:function(req){$('bubble_popup_content').update(req.responseText);Bubble.contentCache[pid]=req.responseText;if(Bubble.mouseIsOver){Bubble.posittionAndShowBubble(id,colNum);}
Bubble.contentLoaded=true;Bubble.bubbleLoading=false;}});}else{$('bubble_popup_content').update(Bubble.contentCache[pid]);if(Bubble.mouseIsOver){Bubble.posittionAndShowBubble(id,colNum);}
Bubble.contentLoaded=true;}}};
