
	
	
	$j.scf.behavior.add('sml_twitter_Behavior', {
	autoAttach: null,
	
	attach: function(el, settings, jQ){
		settings = Object.extend({
			delay: false,
			interval: 0,
			rowInterval: 5,
			startWith: 3,
			guid: "twitter",
			loadingText: "Loading...."
		}, settings);
		
		var sml = $j.scf.smartlet.get(el), tmr, tmr2, dict = {};
		var caption = jQ.parents(".sml_box").find(".smlboxcapt");
		var origCaption = caption.html();
		
		var cookieAge = parseInt(sml.get('cookieAge'));
		if(cookieAge != 0){
			if($j.cookie){
				var cookieName =  settings.guid + '.id';
				var lastTweet = $j.cookie(cookieName);
				$j(window).bind("unload", function(){
					$j.cookie(cookieName, lastTweet, {expires: cookieAge });
				});
			}
			else
				throw new Error("To use cookies, please make sure jQuery.cookie is installed.");
		}
		
		function setupInterval(){
			if(settings.interval > 0 || settings.delay){
				if(tmr) clearInterval(tmr);
				if(settings.delay)
					tmr = setTimeout(refresh, 100);
				else
					tmr = setInterval(refresh, settings.interval * 1000);
			}
		}
		
		function refresh(resetInterval, force){
			var firstTime = settings.delay;
			sml.set('bypassCache', force);
			sml.ajax({
				busy: function(on){
					if(on==undefined)on=true;
					if(on)
						//caption.html(settings.loadingText);
						caption.html(origCaption + " <p class='tweetupdate'>" + settings.loadingText +  "</p>");
				},
				error: function(e){
					window.status = e.lastError;
					$j(el).scf.busy(false);
				},
				ready: function(x){
					clearInterval(tmr2);
					var s = sml.get('data');
					
					caption.html(origCaption + sml.get("lastUpdate"));
					//caption.html(origCaption + " <p class='tweetupdate'>" + sml.get("lastUpdate") +  "</p>");


					jQ.hide().html(s);
					var all = jQ.find('li').hide(); 
					jQ.show();
					for(var j in dict)
						$j('#'+j).show();
						
					var list = [];
					jQ.find("li:hidden").each(function(){
						list.push($j(this).attr('id'));
					});
					
					var count = list.length;
					
					var displayRow = function(i, animate){
						if(animate==undefined)animate=true;
						var e = $j('#'+list[i]);
						lastTweet = e.attr("id");
						if(animate)
							e.slideDown("fast");
						else
							e.show();
							
						dict[lastTweet]=1;
						index--;
					}
					var index = count-1;
					
					if(firstTime){
						if(lastTweet){
							for(var i=0; i != list.length; i++){
								var t = list[index];
								dict[t]=1;
								$j('#'+t).slideDown("fast");
								if(t==lastTweet)
									break;
								index--;
							}
						}
						else{
							for(var i=0; i != settings.startWith; i++)
								displayRow(index, false);
						}
					}
					
					tmr2 = setInterval(function(){displayRow(index)}, settings.rowInterval * 1000);
						
					if(firstTime)
						setupInterval();
				}
			});
			
			settings.delay = null;
		}
		
		jQ.parent("form").submit(function(){
			refresh(true, true); return false;
		});
		
		setupInterval();
	}
});


