
YAHOO.namespace("TI");

YAHOO.namespace("TI.widget");

TI=YAHOO.TI;
$D=YAHOO.util.Dom;

$E=YAHOO.util.Event;

$U=YAHOO.util;

$=YAHOO.util.Dom.get;
$LANG=YAHOO.lang;

TI.widget.TI_L_Scroll=new function(){
	var A=YAHOO.util;var B={delay:2,speed:20,startDelay:2,scrollItemCount:1};
	this.decorate=function(E,F){ E=$(E);
	
	F=TI.applyIf(F||{},B);var G={};
	var D=null,H=false;var J=new $U.CustomEvent("onScroll",G,false,$U.CustomEvent.FLAT);
	if(F.onScroll){J.subscribe(F.onScroll)}
	else{J.subscribe(function(){for(var K=0;K<F.scrollItemCount;K++){E.appendChild(E.getElementsByTagName("li")[0])}})}
	var C=function(){if(H){return }E.scrollTop+=2;
	var K=F.lineHeight||E.getElementsByTagName("li")[0].offsetHeight;
	if(E.scrollTop%K<=1){clearInterval(D);
	J.fire();
	E.scrollTop=0;setTimeout(I,F.delay*1000)}};
	var I=function(){var K=F.lineHeight||E.getElementsByTagName("li")[0].offsetHeight;
	if(E.scrollHeight-E.offsetHeight>=K){D=setInterval(C,F.speed)}};
	$E.on(E,"mouseover",function(){H=true});
	$E.on(E,"mouseout",function(){H=false});
	setTimeout(I,F.startDelay*1000);
	TI.apply(G,{subscribeOnScroll:function(L,K){if(K===true&&J.subscribers.length>0){J.unsubscribeAll()}J.subscribe(L)}});G.onScroll=G.subscribeOnScroll;return G}};
	TI.apply=function(C,A){if(C&&A&&typeof A=="object"){for(var B in A){C[B]=A[B]}}return C};
	TI.applyIf=function(C,A){if(C&&A&&typeof A=="object"){for(var B in A){if(!YAHOO.lang.hasOwnProperty(C,B)){C[B]=A[B]}}}return C};
	TI.cpAttribute=function(C,A){if(C&&A&&typeof A=="object"){for(var B in A){if(!YAHOO.lang.hasOwnProperty(C,B)){C[B]=A[B]}}}return C};
