// JavaScript Document
GF.namespace("Promo");
GF.Promo.PromoModule=function(oArgs){oArgs=oArgs||{};
if(!oArgs.prefix&&(!oArgs.menu&&!oArgs.content)){return false;}
this.elMenu=oArgs.menu||oArgs.prefix+"-menu";
this.elContent=oArgs.content||oArgs.prefix+"-content";
this.sContentClass=oArgs.slideClass||"promoCard";
this.elBtn=(typeof oArgs.button!="undefined")?GF.util.Dom.get(oArgs.button):GF.util.Dom.get(oArgs.prefix+"-btn");
this.iInterval=oArgs.interval||7;this.iFadeRate=oArgs.fadeRate||1;this.bFadeOnClick=oArgs.fadeOnClick||false;
this.aElOvf=oArgs.overflow||false;
this.iMinHeight=oArgs.minHeight||false;
this.aElItems=[];
this.iCurItem=-1;
this.iLastItem=-1;
this.bItemClicked=false;
this.bCycleStopped=false;
this.bCyclePaused=false;
var opacitySupp;if(document.all){opacitySupp=document.getElementsByTagName("body")[0].style.filter;}
else{opacitySupp=document.getElementsByTagName("body")[0].style.opacity;}
if(opacitySupp===undefined){this.iFadeRate=0.01;}
if(navigator.userAgent.indexOf("Firefox")!=-1&&navigator.userAgent.indexOf("Mac")!=-1){this.bFfMac=true;}
else{this.bFfMac=false;}
this.initPromo();};
GF.Promo.PromoModule.prototype={initPromo:function(){var itemList=GF.util.Dom.get(this.elMenu).getElementsByTagName('li');
var len=itemList.length;
for(var pos=0;pos<len;pos++){this.aElItems[pos]={};
var itemLink=itemList[pos].getElementsByTagName('a')[0];
itemLink.num=pos;GF.util.Event.addListener(itemLink,'click',this.selectItem,this);this.aElItems[pos].elMenuItem=document.createElement("div");
itemList[pos].insertBefore(this.aElItems[pos].elMenuItem,itemLink);}
this.iTotItems=pos;
var itemContent=GF.util.Dom.getElementsByClassName(this.sContentClass,'div',GF.util.Dom.get(this.elContent));len=itemContent.length;
var menuHeight=GF.util.Dom.get(this.elMenu).offsetHeight;
var minHeight=(this.iMinHeight&&this.iMinHeight>menuHeight)?this.iMinHeight:menuHeight;
for(pos=0;pos<len;pos++){this.aElItems[pos].elContent=itemContent[pos];
GF.util.Event.addListener(itemContent[pos],'mouseover',this.pauseCycle,this);
GF.util.Event.addListener(itemContent[pos],'mouseout',this.resumeCycle,this);
if(this.iMinHeight){GF.util.Dom.setStyle(itemContent[pos],"height",minHeight+"px");}
if(this.bFfMac&&this.aElOvf[pos]){var elOvf=GF.util.Dom.get(this.aElOvf[pos]);
var ovf=GF.util.Dom.getStyle(elOvf,"overflow");
if(ovf=="auto"||ovf=="scroll"){this.aElOvf[pos]={ovf:ovf,el:this.aElOvf[pos]};
GF.util.Dom.setStyle(elOvf,"overflow","hidden");}}}
if(this.elBtn){GF.util.Event.addListener(this.elBtn,'click',this.toggleCycle,this);}
this.cycleItems();},changeItem:function(itemNum,clicked){if(this.aElItems[itemNum].elMenuItem.style.visibility=="visible"&&this.iLastItem!=-1){return false;}
if(clicked&&this.bFadeOnClick===false){this.iTmpRate=this.iFadeRate;this.iFadeRate=0.001;}
if(this.iLastItem!=-1){var oAnimOut=new GF.util.Anim(this.aElItems[this.iLastItem].elMenuItem,{opacity:{to:0}},this.iFadeRate);oAnimOut.onStart.subscribe(function(){this.getEl().nextSibling.className="";});oAnimOut.onComplete.subscribe(function(){this.getEl().style.visibility="hidden";});
oAnimOut.animate();}
var oAnimIn=new GF.util.Anim(this.aElItems[itemNum].elMenuItem,{opacity:{to:0.99}},this.iFadeRate);oAnimIn.onStart.subscribe(function(){var el=this.getEl();el.style.visibility="visible";
el.nextSibling.className="selected";
var elP=el.parentNode;GF.util.Dom.setStyle(el,"height",elP.offsetHeight+(elP.style.borderWidth*2)+"px");});
oAnimIn.animate();var elOvf;if(this.iLastItem!=-1){var oAnimOutContent=new GF.util.Anim(this.aElItems[this.iLastItem].elContent,{opacity:{to:0}},this.iFadeRate);
if(this.bFfMac&&this.aElOvf[this.iLastItem]){elOvf=GF.util.Dom.get(this.aElOvf[this.iLastItem].el);
oAnimOutContent.onStart.subscribe(function(){GF.util.Dom.setStyle(elOvf,'overflow','hidden');});}
oAnimOutContent.onComplete.subscribe(function(){this.getEl().style.visibility="hidden";});
oAnimOutContent.animate();}
var oAnimInContent=new GF.util.Anim(this.aElItems[itemNum].elContent,{opacity:{to:0.99}},this.iFadeRate);oAnimInContent.onStart.subscribe(function(){this.getEl().style.visibility="visible";});
if(this.bFfMac&&this.aElOvf[itemNum]){elOvf=GF.util.Dom.get(this.aElOvf[itemNum].el);
var ovf=this.aElOvf[itemNum].ovf;oAnimInContent.onComplete.subscribe(function(){GF.util.Dom.setStyle(elOvf,'overflow',ovf);});}
oAnimInContent.animate();
this.iCurItem=this.iLastItem=itemNum;if(clicked){this.bItemClicked=true;this.stopCycle();
if(this.bFadeOnClick===false){this.iFadeRate=this.iTmpRate;}}},selectItem:function(e,oPromo){this.blur();GF.util.Event.preventDefault(e);
if(oPromo.iLastItem!=this.num){oPromo.changeItem(this.num,true);}},cycleItems:function(){this.stopCycle(true);
if(this.bItemClicked){this.bItemClicked=false;}else{if(!this.bCyclePaused){if(++this.iCurItem>=this.iTotItems){this.iCurItem=0;}
this.changeItem(this.iCurItem,false);}
this.startCycle();}},startCycle:function(auto){var f=function(self){return function(){self.cycleItems();};};this.tCycle=setTimeout(f(this),this.iInterval*1000);
if(this.elBtn&&!this.bCyclePaused){this.elBtn.className='stop';}
this.bCycleStopped=false;},stopCycle:function(auto){if(typeof(this.tCycle)=="number"){clearTimeout(this.tCycle);}
if(this.elBtn&&!auto){this.elBtn.className='start';}
this.bCycleStopped=true;},pauseCycle:function(e,oPromo){oPromo.bCyclePaused=true;
if(oPromo.elBtn){oPromo.elBtn.className='start';}},resumeCycle:function(e,oPromo){oPromo.bCyclePaused=false;
if(oPromo.elBtn&&!oPromo.bCycleStopped){oPromo.elBtn.className='stop';}},toggleCycle:function(e,oPromo){this.blur();GF.util.Event.preventDefault(e);
if(oPromo.bCycleStopped){oPromo.bItemClicked=false;oPromo.cycleItems();}else{oPromo.stopCycle();}}};
