
var a = new Array();
if(a.push==null)
{
	Array.prototype.push = function(new_item)
	{
		this[this.length] = new_item;
	}
}



function addEvent(obj, evType, fn)
{ 
	if (obj.addEventListener){  obj.addEventListener(evType, fn, false);  return true; }
	else if (obj.attachEvent){   
	var r = obj.attachEvent("on"+evType, fn);   	
	EventCache.add(obj, evType, fn);
	return r; }
	else { return false; } 
}


var EventCache = function()
{
	var listEvents = [];
	
	return {
		listEvents : listEvents,
	
		add : function(node, sEventName, fHandler, bCapture){
			listEvents.push(arguments);
		},
	
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				
				/* From this point on we need the event names to be prefixed with 'on" */
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				
				item[0][item[1]] = null;
			};
		}
	};
}();


function promotion_rotator_init()
{
	var pr = document.getElementById("promotion_rotator");
	var delay = 3;
	if(pr.getAttribute("delay"))
	{
		if(	!isNaN( pr.getAttribute("delay")	 ) )
		{
			delay =  parseInt( pr.getAttribute("delay") );
			delay =	Math.max(0,delay);
		}
	}

	if(!pr){return;}
	
	var dl = pr.getElementsByTagName("dl");	
	
	if(dl.length==0){ return;}
	if(dl[0].parentNode!=pr){return;};
	
	dl = dl[0];
	
	var dds ;
	function setDDZindex()
	{
		dds = new Array();
		var dd = dl.getElementsByTagName("dd");	
		for(var i=0;i<dd.length;i++)
		{
		if(dd[i].parentNode==dl)
			{
				dd[i].style.left = 0;
				dd[i].style.zIndex = 9999 - dds.length ;
				dds[dds.length] =dd[i];
				dd[i].style.position="absolute";				
			}
		}
	}
	setDDZindex();
	

	if( dds.length <= 1 ){return;};
	pr.transition = function()
	{	
		
			var opac = 100;
			function applyOpacity(isClear)
			{
				if(isClear==true)
				{
					dds[0].style.zIndex = 10;
					if(dds[0].runtimeStyle && document.namespaces ){dds[0].runtimeStyle.filter=""; }
					else{dds[0].style.top = 0;}
				}
				else
				{
					if(dds[0].runtimeStyle && document.namespaces){dds[0].runtimeStyle.filter="alpha(opacity:"+opac+")"; }
					else
					{
						var py = parseInt(dds[0].style.left);
						py = pr.offsetHeight * (100-opac)/100;
						dds[0].style.top = py + "px";
					}					
				}
			}
			
			var fader = function()
			{
				if(opac>0)
				{
					var rspeed = (document.body.getBoundingClientRect!=null && document.namespaces)?20:5;
		
					opac = Math.floor( (0-opac/rspeed) + opac );					
					applyOpacity();
					setTimeout(fader,25);
				}
				else
				{
					opac= 100;			
					
					dds[0].style.zIndex=0;
					applyOpacity(true);	
				
					var top_dd = dds[0];
					dds = dds.slice(1,dds.length);
					dds.push(top_dd);
				

					for(var i=0;i<dds.length;i++)
					{
						dds[i].style.zIndex = 9999 - i ;						
					}					
							
					setTimeout(fader,delay * 1000);
				}
			}
			setTimeout(fader,delay * 1000);


		
	}
	pr.transition();
	
}



addEvent(window,"unload",EventCache.flush);
addEvent(window,"load",promotion_rotator_init);