
YAHOO.namespace("Mag");YAHOO.Mag.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")?YAHOO.util.Dom.get(oArgs.button):YAHOO.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();
};
YAHOO.Mag.PromoModule.prototype={
	initPromo:function(){
		var itemList=YAHOO.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;YAHOO.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=YAHOO.util.Dom.getElementsByClassName(this.sContentClass,'div',YAHOO.util.Dom.get(this.elContent));len=itemContent.length;var menuHeight=YAHOO.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];YAHOO.util.Event.addListener(itemContent[pos],'mouseover',this.pauseCycle,this);YAHOO.util.Event.addListener(itemContent[pos],'mouseout',this.resumeCycle,this);
	if(this.iMinHeight){YAHOO.util.Dom.setStyle(itemContent[pos],"height",minHeight+"px");
	}
if(this.bFfMac&&this.aElOvf[pos]){
	var elOvf=YAHOO.util.Dom.get(this.aElOvf[pos]);
	var ovf=YAHOO.util.Dom.getStyle(elOvf,"overflow");if(ovf=="auto"||ovf=="scroll"){
		this.aElOvf[pos]={ovf:ovf,el:this.aElOvf[pos]};YAHOO.util.Dom.setStyle(elOvf,"overflow","hidden");
		}
		}
		}
if(this.elBtn){
	YAHOO.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 YAHOO.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 YAHOO.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;YAHOO.util.Dom.setStyle(el,"height",elP.offsetHeight+(elP.style.borderWidth*2)+"px");});oAnimIn.animate();var elOvf;if(this.iLastItem!=-1){var oAnimOutContent=new YAHOO.util.Anim(this.aElItems[this.iLastItem].elContent,{
														  opacity:{
															  to:0
															  }
															  }
															  ,this.iFadeRate);if(this.bFfMac&&this.aElOvf[this.iLastItem]){elOvf=YAHOO.util.Dom.get(this.aElOvf[this.iLastItem].el);oAnimOutContent.onStart.subscribe(function(){YAHOO.util.Dom.setStyle(elOvf,'overflow','hidden');
															  }
															  );
}
oAnimOutContent.onComplete.subscribe(function(){
											  this.getEl().style.visibility="hidden";
											  }
											  );oAnimOutContent.animate();
}
var oAnimInContent=new YAHOO.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=YAHOO.util.Dom.get(this.aElOvf[itemNum].el);
	var ovf=this.aElOvf[itemNum].ovf;oAnimInContent.onComplete.subscribe(function(){
	YAHOO.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();YAHOO.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();YAHOO.util.Event.preventDefault(e);if(oPromo.bCycleStopped){
						oPromo.bItemClicked=false;oPromo.cycleItems();
						}
						else{
							oPromo.stopCycle();
							}
							}
							}
							;
