var activefeed = false;
var activetimeline=false;
var activemetionline=false;
var activedmline=false;
var activemeline=false;
var selectedTab = -1;
var friendNames;
var friendIds;
var alreadyLoadedFavs=false;
var limitPerTab=new Array();
var fbloggedIn=false;
var isList=false;
limitPerTab[0]=360;
limitPerTab[1]=180;
limitPerTab[2]=120;
limitPerTab[3]=60;
limitPerTab[4]=360;
limitPerTab[5]=200;
var currentList="";
var clr=null;
var clrs=null;
var twimgloaded=false;
var tweetLat="";
var tweetLong="";
var reloading=false;
/* for keeping track of what's "open" */
var showingDropdown, showingMenu, showingParent;


function myalert(te){
	if (!reloading){
		reloading=true;
		alert(te);
	}
}
function setCookie(szName, szValue, szExpires)
{
 	var domn=document.domain;
 	if (domn.indexOf("www.")==0){
 		domn=domn.substring(4);
 	}
	if (domn=="localhost")
		domn='';
	var szCookieText = 	   escape(szName) + '=' + escape(szValue);
	szCookieText +=	 	   (szExpires ? '; EXPIRES=' + szExpires.toGMTString() : '');
	szCookieText += '; PATH=';
	szCookieText += '; DOMAIN='+domn;
	
	document.cookie = szCookieText;
}

function getCookie(szName)
{
 	var szValue =	  null;
	if(document.cookie)	   //only if exists
	{
       	var arr = 		  document.cookie.split((escape(szName) + '=')); 
       	if(2 <= arr.length)
       	{
           	var arr2 = 	   arr[1].split(';');
       		szValue  = 	   unescape(arr2[0]);
       	}
	}
	return szValue;
}


function decimalToHex(d, padding) {
    var hex = Number(d).toString(16);
    padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;

    while (hex.length < padding) {
        hex = "0" + hex;
    }

    return hex;
}

function hexColor(cssColor){
	if (cssColor.indexOf("rgb")!=0)
		return cssColor;
	var s=cssColor.substr(4);
	s=s.substr(0,s.length-1);
	var clrs=s.split(',');
	var hex=decimalToHex(clrs[0])+decimalToHex(clrs[1])+decimalToHex(clrs[2]);
	return hex;
}


String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}


BitlyCB.shortenResponse = function(data) {
    var s = '';
    var first_result;
    // Results are keyed by longUrl, so we need to grab the first one.
    for     (var r in data.results) {
            first_result = data.results[r]; break;
    }
    var old=$('textarea[name=text]').val();
    $('textarea[name=text]').val(old+" "+first_result["shortUrl"].toString());
	updateCharCounter();
    $('textarea[name=link]').val("");
    $("#accordion").accordion( 'activate' , false) ;
}

BitlyCB.shortenReplace = function(data) {
    var s = '';
    var first_result,longUrl;
    // Results are keyed by longUrl, so we need to grab the first one.
    for (var r in data.results) {
    	longUrl=r;
        first_result = data.results[r]; break;
    }
    var old=$('textarea[name=text]').val();
    old=old.replace(longUrl, data.results[longUrl]['shortUrl']);
    $('textarea[name=text]').val(old);
	updateCharCounter();
 }


/* hides the current menu */
var hideMenu = function() {
	if(showingDropdown) {
		showingDropdown.removeClass('dropdown-active');
		showingMenu.hide();
	}
};

function limitRootNodes(sts,stab, len) {
	var length=sts.children().size() ;
	while (length > len){
        $('li:last-child', sts).remove(); 
        length--;
    }   
	
	var selctor="#more"+stab;
	
	if (length>= len){
		if ($(selctor).is(':visible'))
			$(selctor).hide();
	}
	else {
		if (!$(selctor).is(':visible'))
			$(selctor).show();
	}
}

function getLiElem(tab,stid){
	if(tab<0 || tab>5)
		return;
	var i=tab+1;
	if (tab==4)
		i=6;
	if (tab==5)
		i=5;
	
	var e = $("div.wrapper div.tweetsbox");
	var sts=$('.statuses',e);
	if (i>1){
		var s="div.wrapper"+i+" div.tweetsbox"+i;
		e = $(s);
		sts=$('.statuses'+i,e);
	}
	return $("li[status_id='"+stid+"']",sts);
}

function limitCurrentRootNodes(){
	if(selectedTab==-1)
		return;
	var e = $("div.wrapper div.tweetsbox");
	var sts=$('.statuses',e);
	if (selectedTab!=0){
		if (selectedTab==1){
			e = $("div.wrapper2 div.tweetsbox2");
			sts=$('.statuses2',e);
		}
		else{
			if (selectedTab==2){
				e = $("div.wrapper3 div.tweetsbox3");
				sts=$('.statuses3',e);
			}
			else {
				if (selectedTab==3){
					e = $("div.wrapper4 div.tweetsbox4");
					sts=$('.statuses4',e);
				}
				else if (selectedTab==4){
					e = $("div.wrapper6 div.tweetsbox6");
					sts=$('.statuses5',e);
				}
				else if(selectedTab==5){
					e = $("div.wrapper5 div.tweetsbox5");
					sts=$('.statuses5',e);
				}
			}
		}
	}
	limitRootNodes(sts,selectedTab,limitPerTab[selectedTab]);
}

function deleteTweet(elem){
	var tweetId=$(elem).attr('strplyid');
	$(elem).removeClass("delete");
	$.ajax({
		type: "POST",
		url : '/dtw',
		data : {'tid':tweetId}, 
		success : function (data){
			if (data.length>0)
			{
				if (data.substr(0,7)=="expired"){
					myalert("Your session expired, please sign in again.");
					location.reload();
				}
				else if (data.substr(0,7)=="success"){
					var li = getLiElem(0,tweetId);
					li.remove();
					li = getLiElem(1,tweetId);
					li.remove();
					li = getLiElem(2,tweetId);
					li.remove();
					li = getLiElem(4,tweetId);
					li.remove();
					li = getLiElem(5,tweetId);
					li.remove();
				}
				else {
					alert(data);
				}
			}		
		}});
}

function favTweet(elem){
	if ($(elem).attr('class')=="unfav")
		return;
	var tweetId=$(elem).attr('favid');
	$(elem).unbind('click');
	$(elem).removeClass("fav");
	$.ajax({
		type: "POST",
		url : '/fvt',
		data : {'action':'create',favid:tweetId}, 
		error: function(){
			$(elem).addClass("fav");
			$(e).unbind('click');
			$(elem).click(function(event){
				 event.preventDefault();
				 favTweet(this);
			 });
		},
		success : function (data){
			if (data.length>0)
			{
				if (data.substr(0,7)=="expired"){
					myalert("Your session expired, please sign in again.");
					location.reload();
				}
				else if (data.substr(0,7)=="success"){
					var li = getLiElem(0,tweetId);
					var e=$('a[href=#fav]',li);
					$(e).removeClass("fav");
					$(e).addClass("unfav");
					$(e).attr('title','UnFavorite this tweet');
					$(e).unbind('click');
					$(e).click(function(event){
						 event.preventDefault();
						 unFavTweet(this);
					 });
					if (selectedTab==0){
						$('.statuses5',"div.wrapper5 div.tweetsbox5").prepend(li.clone(true));
					}
					li = getLiElem(1,tweetId);
					e=$('a[href=#fav]',li);
					$(e).unbind('click');
					$(e).removeClass("fav");
					$(e).addClass("unfav");
					$(e).attr('title','UnFavorite this tweet');
					$(e).click(function(event){
						 event.preventDefault();
						 unFavTweet(this);
					 });
					if (selectedTab==1){
						$('.statuses5',"div.wrapper5 div.tweetsbox5").prepend(li.clone(true));
					}
					li = getLiElem(2,tweetId);
					e=$('a[href=#fav]',li);
					$(e).unbind('click');
					$(e).removeClass("fav");
					$(e).addClass("unfav");
					$(e).attr('title','UnFavorite this tweet');
					$(e).click(function(event){
						 event.preventDefault();
						 unFavTweet(this);
					 });
					if (selectedTab==2){
						$('.statuses5',"div.wrapper5 div.tweetsbox5").prepend(li.clone(true));
					}
					
					li = getLiElem(4,tweetId);
					e=$('a[href=#fav]',li);
					$(e).unbind('click');
					$(e).removeClass("fav");
					$(e).addClass("unfav");
					$(e).attr('title','UnFavorite this tweet');
					$(e).click(function(event){
						 event.preventDefault();
						 unFavTweet(this);
					 });
					if (selectedTab==4){
						$('.statuses5',"div.wrapper5 div.tweetsbox5").prepend(li.clone(true));
					}
					
				}
				else {
					$(elem).addClass("fav");
					$(elem).unbind('click');
					$(elem).click(function(event){
						 event.preventDefault();
						 favTweet(this);
					 });
					alert(data);
				}
			}
		}});
}

function deleteDm(delid,elem){
	$.ajax({
		type: "POST",
		url : '/ddm',
		data : {'delid':delid }, 
		success : function (data){
			if (data.length>0){
				if (data.substr(0,7)=="success"){
					var e = $("div.wrapper4 div.tweetsbox4");
					var sts=$('.statuses4',e);				
					var li= $("li[status_id='"+delid+"']",sts);
					li.remove();
					
				}
				else if (data.substr(0,7)=="expired"){
					myalert("Your session expired, please sign in again.");
				}
				else alert(data);
			}
			
		}
	});
}

function unFavTweet(elem){
	if ($(elem).attr('class')=="fav")
		return;
	var tweetId=$(elem).attr('favid');
	$(elem).removeClass("unfav");
	$(elem).unbind('click');
	$.ajax({
		type: "POST",
		url : '/fvt',
		data : {'action':'delete',favid:tweetId }, 
		error: function(){
					$(elem).addClass("unfav");
					$(e).unbind('click');
					$(elem).click(function(event){
						 event.preventDefault();
						 unFavTweet(this);
					 });
				},
		success : function (data){
					if (data.length>0)
					{
						if (data.substr(0,7)=="expired"){
							myalert("Your session expired, please sign in again.");
							location.reload();
						}
						else if (data.substr(0,7)=="success"){
							var li = getLiElem(0,tweetId);
							var e=$('a[href=#fav]',li);
							$(e).unbind('click');
							$(e).removeClass("unfav");
							$(e).addClass("fav");
							$(e).attr('title','Favorite this tweet');
							$(e).click(function(event){
								 event.preventDefault();
								 favTweet(this);
							 });
							li = getLiElem(1,tweetId);
							e=$('a[href=#fav]',li);
							$(e).unbind('click');
							$(e).removeClass("unfav");
							$(e).addClass("fav");
							$(e).attr('title','Favorite this tweet');
							$(e).click(function(event){
								 event.preventDefault();
								 favTweet(this);
							 });
							li = getLiElem(2,tweetId);
							e=$('a[href=#fav]',li);
							$(e).unbind('click');
							$(e).removeClass("unfav");
							$(e).addClass("fav");
							$(e).attr('title','Favorite this tweet');
							$(e).click(function(event){
								 event.preventDefault();
								 favTweet(this);
							 });

							li = getLiElem(4,tweetId);
							e=$('a[href=#fav]',li);
							$(e).unbind('click');
							$(e).removeClass("unfav");
							$(e).addClass("fav");
							$(e).attr('title','Favorite this tweet');
							$(e).click(function(event){
								 event.preventDefault();
								 favTweet(this);
							 });
							
							
							li = getLiElem(5,tweetId);
							li.remove();
						}
						else {
							$(elem).addClass("unfav");
							$(e).unbind('click');
							$(elem).click(function(event){
								 event.preventDefault();
								 unFavTweet(this);
							 });
							alert(data);
						}
					}
				}});
}
function addStats(elem){
	$('a', elem).each(function(){
		var l=$(this).attr("href");
		if (l.match(/^http\:\/\/bit\.ly/)){
			var a=$(this);
			var hash = BitlyClient.extractBitlyHash(l);
			var url='http://api.bit.ly/stats?version=2.0.1&shortUrl='+l+'&login=sami1&apiKey=R_a0141c5d5efe07196b6ef3e84f66bd84&callback=?';
			$.getJSON(url, function (data){	
				if (data.errorCode==0){
					var c=data.results.clicks;
					c="<a style=\"font-size:9px\" href=\"http://bit.ly/info/"+hash+"\" target=\"_blank\">["+c+" clicks]</a>"
					var sp = BitlyClient.createElement('span', {'text': ''});
					$(sp).html(c);
					a.parent().append(sp);
				}
			});
			
		}
	});
}

function updateratelimit(){
	 $.getJSON('/rtlmt?callback=?',function (data){
		 if (typeof data.error=='undefined'){
			 var remHits=data.remaining_hits;
			 var limit=data.hourly_limit;
			 var secs=data.reset_time_in_seconds;
			 $('#api').html(remHits+"/"+limit);
			 var diff=secs*1000-(new Date()).getTime();
			 if (diff<0) diff=0;
			 diff=Math.round(diff/1000/60);
			 $('#apitime').html(diff+" mn");
		 }
	 });
}

function switchuser(newaccount){
	$.ajax({
		type: "POST",
		url : '/switchuser',
		data : {'nusr':newaccount}, 
		success : function (data){
			if (data.length>0)
			{
				if (data.substr(0,7)=="expired"){
					myalert("Your session expired, please sign in again.");
					location.reload();
				}
				else if (data.substr(0,7)=="success"){
					
				}
				else {
					alert(data);
				}
			}		
		}});
}

function handleIncomingTweets(elem,ttipclass,sts, animTime,append,selTab){
			elem.hide();
			if (append)
				sts.append(elem);
			else
				sts.prepend(elem);
			
			var oldhtml=$('.entry-meta',elem).html();
			var rttext=$('a.rt',elem).attr('strt');
			if (typeof rttext!='undefined' ){
				var qrUrl="http://chart.apis.google.com/chart?cht=qr&chs=350x350&chl="+rttext.substr(5);
				var newqr="<a title='Get Tweet QR Code' target='_blank' href='"+qrUrl+"'><img width=10 height=10 src='images/qr.jpg'></a>";
				$('.entry-meta',elem).html(oldhtml+"&nbsp;"+newqr);
			}
			

			$('.entry-content a',elem).css('color',clrs);
			$('a.screen-name',elem).css('color',clrs);
			 $('a.l').css('color',clrs);

			$(ttipclass,elem).tooltip({
				extraClass : "imgtooltip",
				delay: 0,
				bodyHandler: function() {
				var st = $(this).attr("av");
				st=st.replace(/-b-/g,'<b>');
				st=st.replace(/-bb-/g,'</b>');
				st=st.replace(/,-,/g,'<br>');
					return st;
				},
				showURL: false
			});
			$("#ld", elem).tooltip({
				extraClass : "lnktooltip",
				delay: 0,
				bodyHandler: function() {
				var link=$(this).attr("lnk");
				var desc = $(this).attr("desc");
				var titl = $(this).attr("titl");
				var result=titl;
				if (result!=null && result.length>0)
					result="link="+link+"<br/><b>"+titl+"</b><br/>";
				else result="";
				if (desc!=null)
					result=result+desc;
				return result;										},
				showURL: false
			});

			if (animTime==0)
				elem.show();
			else
				elem.show(animTime);
			
			if ($("#previewimg").html()=="off")
				$("center",elem).parent().hide();
			
			elem.css('visibility','visible');
		
			$('img[thread]', elem).each(function(){
				$(this).qtip({
					position: { corner: { tooltip: 'topLeft' } },
					show: { when: { event: 'click' } },
					hide: { when: { event: 'unfocus' }},
					style: { width: { max: 562, min : 562 } , tip: { corner: 'topLeft' } },
					content: {	text : 'loading thread...', 
								url : '/thread',
								data: { id: $(this).attr('thread') },
								method : 'GET'}
					});
			});
			
			$('img[title="location"]', elem).each(function(){
				var imgElem=this;
				$(this).qtip({
					position: { corner: { tooltip: 'topLeft' } },
					show: { when: { event: 'click' } , effect: { type : 'grow' , length: 150 }},
					hide: { when: { event: 'unfocus' } , effect: { type : 'fade' , length: 150 }},
					style: { width: 320, height:200 , tip: { corner: 'topLeft' } },
					api: {
						onShow: function(){
								var selmap="#map_canvas[stid='"+$(imgElem).attr('stid')+"']";
								var lat=$(imgElem).attr('lat');
								var long=$(imgElem).attr('long');
								$(selmap).googleMaps({
						        	latitude: lat,
						            longitude: long,
						            markers: {
						                latitude: lat,
						                longitude: long
						            },
						            depth : 12
						        }); 
						}
					},
					content: {	text : '<div id="map_canvas" stid="'+$(imgElem).attr('stid')+'" style="width: 300px; height: 200px"></div>'} 
					});
			});
			
			$('.delete',elem).each(function(){
			 	$(this).click(function(event){
				 event.preventDefault();
				 if ($("#statusupdt").length > 0 && $(this).attr('strplyid')!=undefined ) {
					 deleteTweet(this);
				}
			 	});
			 });
			
			$('.fav',elem).each(function(){
			 	$(this).click(function(event){
				 event.preventDefault();
				 if ($("#statusupdt").length > 0 && $(this).attr('favid')!=undefined ) {
					 favTweet(this);
				}
			 	});
			 });
			
			$('.unfav',elem).each(function(){
			 	$(this).click(function(event){
				 event.preventDefault();
				 if ($("#statusupdt").length > 0 && $(this).attr('favid')!=undefined ) {
					 unFavTweet(this);
				}
			 	});
			 });
			
			$('.reply',elem).each(function(){
			 	$(this).click(function(event){
				 if ($("#statusupdt").length > 0 && $(this).attr('strplyto')!=undefined ) {
					 event.preventDefault();
					 $("input[name=in_reply_to_status_id]").val($(this).attr('strplyid'));
					 $("input[name=in_reply_to]").val($(this).attr('strplyto'));
					 newText="@"+$(this).attr('strplyto')+" "+$("textarea[name=text]").val();
					 $("textarea[name=text]").val(newText);
					 ScrollToTweetBox();
					 updateCharCounter();
				}
			 	});
			 });
			
			$('.replyall',elem).each(function(){
			 	$(this).click(function(event){
				 if ($("#statusupdt").length > 0 && $(this).attr('strplyto')!=undefined ) {
					 event.preventDefault();
					 $("input[name=in_reply_to_status_id]").val($(this).attr('strplyid'));
					 $("input[name=in_reply_to]").val($(this).attr('strplyto'));
					 newText=$(this).attr('strplytoall').replace(/%20/g," ")+" "+$("textarea[name=text]").val();
					 $("textarea[name=text]").val(newText);
					 ScrollToTweetBox();
					 updateCharCounter();
				}
			 	});
			 });

			$('.replydm',elem).each(function(){
			 	$(this).click(function(event){
				 if ($("#statusupdt").length > 0 && $(this).attr('replyto')!=undefined ) {
					 event.preventDefault();
					 var mid=$(this).attr('replyto');
					 $("#dm_user_id [value="+mid+"]").attr("selected", "selected");
					 $("textarea[name=text]").val("");
					 ScrollToTweetBox();
					 updateCharCounter();
				}
			 	});
			 });
			
			$('.deletedm',elem).each(function(){
			 	$(this).click(function(event){
				 if ($("#statusupdt").length > 0 && $(this).attr('delid')!=undefined ) {
					 event.preventDefault();
					 var mid=$(this).attr('delid');
					 deleteDm(mid,this);
				}
			 	});
			 });

			$('.rt',elem).each(function(){
			 	$(this).click(function(event){
				 if ($("#statusupdt").length > 0 && $(this).attr('strt')!=undefined ) {
					 event.preventDefault();
					 $("input[name=in_reply_to_status_id]").val("");
					 $("input[name=in_reply_to]").val("");
					 newText= URLDecode($(this).attr('strt'));
					 $("textarea[name=text]").val(newText);
					 ScrollToTweetBox();
					 updateCharCounter();
				}
			 	});
			 });
			 
			 $('.twrt',elem).each(function(){
			 	$(this).click(function(event){
			 		 if ($("#statusupdt").length > 0 && $(this).attr('stid')!=undefined ) {
			 		 	event.preventDefault();
			 		 	confirmRetweet($(this),$(this).attr('stid'));
			 		 }
				 });
			 });

			
			$('#follow',elem).each(function(){
				$(this).click(function(event){
					 if ($("#statusupdt").length > 0 && $(this).attr('flw')!=undefined ) {
						 event.preventDefault();
						 follow( $(this).attr('flw'));
					}
				 });
			});
			
			$('#unfollow',elem).each(function(){
				$(this).click(function(event){
					 if ($("#statusupdt").length > 0 && $(this).attr('unflw')!=undefined ) {
						 event.preventDefault();
						 unfollow( $(this).attr('unflw'));
					}
				 });
			});
			
			$('#info',elem).each(function(){
				$(this).click(function(event){
					 event.preventDefault();
					 info( $(this).attr('info'));
				 });
			});
			
			/* recurse through dropdown menus */
			$('.dropdown', elem).each(function() {
				/* track elements: menu, parent */
				var dropdown = $(this);
				var menu = dropdown.next('div.dropdown-menu'), parent = dropdown.parent();
				/* function that shows THIS menu */
				var showMenu = function() {
					hideMenu();
					showingDropdown = dropdown.addClass('dropdown-active');
					showingMenu = menu.show();
					showingParent = parent;
				};
				/* function to show menu when clicked */
				dropdown.bind('click',function(e) {
					if(e) e.stopPropagation();
					if(e) e.preventDefault();
					showMenu();
				});
				/* function to show menu when someone tabs to the box */
				dropdown.bind('focus',function() {
					showMenu();
				});
				
				$(this).hover(
						 function () {
							 showMenu();
						  },
						  function () {
							 
						  }
						);						
			});
			
			 if (selTab!=0){
				 elem.longurlplease({lengthenShortUrl: 'text-and-title'});
			 }
			 else {
				 //addStats(elem);
			 }
			 
			 $(elem).hover(
					  function () {
						  	//$('.dropdown', $(this)).each(function() {$(this).focus(); });
						  },
						  function () {
							  hideMenu();
						  }
						);

			 setTimeout('limitCurrentRootNodes()',600);
			 
			 //checkMoreButton(sts,selTab);

		}
	
		function SetCursorPosition(obj)
		{
			//FOR IE
			if(obj.setSelectionRange)
			{
				obj.focus();
				obj.setSelectionRange(obj.value.length,obj.value.length);
			}
			
			// For Firefox
			else if (obj.createTextRange)
			{
				var range = obj.createTextRange();
				range.collapse(true);
				range.moveEnd('character', obj.value.length);
				range.moveStart('character', obj.value.length);
				range.select();
			}
		}
		function ScrollToTweetBox(){
			 var theElement=document.getElementById("tweet_box");
			  var selectedPosX = theElement.offsetLeft;
			  var selectedPosY = theElement.offsetTop;
			  window.scrollTo(selectedPosX,0);
			  SetCursorPosition(theElement);	
		}

		function URLDecode(psEncodeString)
		{
			// Create a regular expression to search all +s in the string
		  var lsRegExp = /\+/g;
		  // Return the decoded string
		  return decodeURIComponent(psEncodeString).replace(lsRegExp, " ");
		}
			
		function updateCharCounter(){
			 if ( $("#statusupdt").length > 0 ) {
					elem=$('textarea[name=text]');
						if ($(elem).val().length==0){
							$('input[name=post]').attr('disabled','disabled');
							$('input[name=post]').addClass('tweetbtndsbl');
							$("input[name=in_reply_to_status_id]").val("");
							$("input[name=in_reply_to]").val("");
						}
				        var max = 140;
				        var diff=max - $(elem).val().length;	
				        counter= $(elem).parent().find('.char-counter');
				        $(counter).html(diff);
				        if (diff<0 ||  diff==140){
				        	 $('input[name=post]').attr('disabled','disabled');
				        	 $('input[name=post]').addClass('tweetbtndsbl');
				        	if(diff<0)
				        		$(counter).css('color','red');
				        	else
				        		$(counter).css('color','rgb(204, 204, 204)');
				        }
				        else {
				        	 $('input[name=post]').removeAttr('disabled');
				        	 $('input[name=post]').removeClass('tweetbtndsbl');
				        	 $(counter).css('color','rgb(204, 204, 204)');
				        }
				   
				 }			
		}
			
		function initFeed(elemSelectorParent,firstTime){
			if (selectedTab==0)
				$('#tab1Num').html("&nbsp;&nbsp;&nbsp;");

			var time=$('.statuses li:first',elemSelectorParent).attr("time");
			$.ajax({
					type: "GET",
					url : '/feed',
					data : {'time':time}, 
					beforeSend:function(){	$("#load1").show();stopUpdates();},
					error : function(){$("#load1").hide();(selectedTab==0)?resumeUpdates():resumeHiddenUpdates()},
					success : function (data){
					$('.hiddenlist').empty();
					$('.hiddenlist').html(data);
					var ct=0;
					var sts=$('.statuses',elemSelectorParent);
					var ttipclass=".url";
					$('.hiddenlist li').each(function(){
						ct++;
						if (firstTime || time==null)
							handleIncomingTweets($(this),ttipclass,sts, 0,true,0);
						else 
							handleIncomingTweets($(this),ttipclass,sts, 500,false,0);
					});
					if ((selectedTab!=0) && ct>0){
						$.growlUI(ct + ' New tweet(s)', 'Tn Tweets Tab')
						var x=$('#tab1Num').html();
						if (x!="&nbsp;&nbsp;&nbsp;"){
							ct=parseInt(x)+ct;
						}
						if (ct<100)
							$('#tab1Num').html(ct+"&nbsp;");
						else
							$('#tab1Num').html(ct);
					}
					if(!firstTime){
						var oldtotal=parseInt($('#totaltweets').html());
						$('#totaltweets').html(oldtotal+ct);
						var oldday=parseInt($('#last24').html());
						$('#last24').html(oldday+ct);
					}
					lastdate= $('.statuses li:last',elemSelectorParent).attr("time");	
					$("#load1").hide();
					(selectedTab==0)?resumeUpdates():resumeHiddenUpdates();
					 updateratelimit();	 

				}});
		}

		function initTimeLine(elemSelectorParent,firstTime){
			if (selectedTab==1)
				$('#tab2Num').html("&nbsp;&nbsp;&nbsp;");
			if (firstTime){
				$('.statuses2',elemSelectorParent).empty();
				$('#tab2Num').html("&nbsp;&nbsp;&nbsp;");
			}
			var idst=$('.statuses2 li:first',elemSelectorParent).attr("status_id");
				$.ajax({
						url : '/feedtimeline',
						type: 'POST',
						datatype :'html',
						data : {'since_id':idst}, 
						beforeSend:function(){	$("#load2").show();stoptimeline();},
						error : function(){$("#load2").hide();(selectedTab==1)?resumetimeline():resumehiddentimeline()},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								
								$('.hiddenlisttimeline').empty();
								$('.hiddenlisttimeline').html(data);
								var sts=$('.statuses2',elemSelectorParent);
								var ttipclass=".url";
								var ct=0;
								$('.hiddenlisttimeline li').each(function(){
									ct++;
									if(firstTime || idst==null)
										handleIncomingTweets($(this),ttipclass,sts,0,false,1);	
									else
										handleIncomingTweets($(this),ttipclass,sts,500,false,1);	
									
								});
								if ((selectedTab!=1) && ct>0){
									$.growlUI(ct + ' New tweet(s)', 'Timeline Tab')
									var x=$('#tab2Num').html();
									if (x!="&nbsp;&nbsp;&nbsp;"){
										ct=parseInt(x)+ct;
									}
									if (ct<100)
										$('#tab2Num').html(ct+"&nbsp;");
									else
										$('#tab2Num').html(ct);		
								}
							}
							$("#load2").hide();
							(selectedTab==1)?resumetimeline():resumehiddentimeline();
							 updateratelimit();	 
						}
				});
		}

		function initDM(elemSelectorParent,firstTime){			
			if (selectedTab==3)
				$('#tab4Num').html("&nbsp;&nbsp;&nbsp;");
			if (firstTime){
				$('.statuses4',elemSelectorParent).empty();
				$('#tab4Num').html("&nbsp;&nbsp;&nbsp;");
			}
			
			var idst=$('.statuses4 li:first',elemSelectorParent).attr("status_id");
				$.ajax({
						url : '/feedDM',
						type: 'POST',
						datatype :'html',
						data : {'since_id':idst}, 
						error:function(){$("#load4").hide();(selectedTab==3)?resumeDMline():resumehiddenDMline();},
						beforeSend:function(){$("#load4").show(); stopDMline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								
								$('.hiddenlistDMline').empty();
								$('.hiddenlistDMline').html(data);
								var sts=$('.statuses4',elemSelectorParent);
								var ttipclass=".url";
								var ct=0;
								$('.hiddenlistDMline li').each(function(){
									ct++;
									if(firstTime || idst==null)
										handleIncomingTweets($(this),ttipclass,sts,0,false,3);	
									else
										handleIncomingTweets($(this),ttipclass,sts,500,false,3);							
								});
								if ((selectedTab!=3) && ct>0){
									$.growlUI(ct + ' New DM(s)', 'DM Tab')
									var x=$('#tab4Num').html();
									if (x!="&nbsp;&nbsp;&nbsp;"){
										ct=parseInt(x)+ct;
									}
									if (ct<100)
										$('#tab4Num').html(ct+"&nbsp;");
									else
										$('#tab4Num').html(ct);			
								}
							}
							$("#load4").hide(); 
							(selectedTab==3)?resumeDMline():resumehiddenDMline();
							 updateratelimit();	 
						}});
		}
		
		function initMentions(elemSelectorParent,firstTime){
			if (selectedTab==2)
				$('#tab3Num').html("&nbsp;&nbsp;&nbsp;");
			if (firstTime){
				$('.statuses3',elemSelectorParent).empty();
				$('#tab3Num').html("&nbsp;&nbsp;&nbsp;");
			}
		
			var idst=$('.statuses3 li:first',elemSelectorParent).attr("status_id");
				$.ajax({
						url : '/feedmentions',
						type: 'POST',
						datatype :'html',
						data : {'since_id':idst}, 
						error:function(){$("#load3").hide();(selectedTab==2)?resumementionline():resumehiddenmentionline();},
						beforeSend:function(){$("#load3").show(); stopmentionline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								
								$('.hiddenlistmentionline').empty();
								$('.hiddenlistmentionline').html(data);
								var sts=$('.statuses3',elemSelectorParent);
								var ttipclass=".url";
								var ct=0;
								$('.hiddenlistmentionline li').each(function(){
									ct++;
									if(firstTime ||idst==null)
										handleIncomingTweets($(this),ttipclass,sts,0,false,2);	
									else
										handleIncomingTweets($(this),ttipclass,sts,500,false,2);				
								});
								if ((selectedTab!=2) && ct>0){
									$.growlUI(ct + ' New Tweet(s)', 'Mentions Tab')
									var x=$('#tab3Num').html();
									if (x!="&nbsp;&nbsp;&nbsp;"){
										ct=parseInt(x)+ct;
									}
									if (ct<100)
										$('#tab3Num').html(ct+"&nbsp;");
									else
										$('#tab3Num').html(ct);									
								}								
							}
							(selectedTab==2)?resumementionline():resumehiddenmentionline();
							$("#load3").hide();
							 updateratelimit();	 
						}});
		}
		
		function initMe(elemSelectorParent,firstTime){
			if (selectedTab==4)
				$('#tab6Num').html("&nbsp;&nbsp;&nbsp;");
			if (firstTime){
				$('.statuses6',elemSelectorParent).empty();
				$('#tab6Num').html("&nbsp;&nbsp;&nbsp;");
			}
		
			var idst=$('.statuses6 li:first',elemSelectorParent).attr("status_id");
				$.ajax({
						url : '/mefeed',
						type: 'POST',
						datatype :'html',
						data : {'since_id':idst}, 
						error:function(){$("#load5").hide();(selectedTab==4)?resumemeline():resumehiddenmeline();},
						beforeSend:function(){$("#load5").show(); stopmeline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								
								$('.hiddenlistmeline').empty();
								$('.hiddenlistmeline').html(data);
								var sts=$('.statuses6',elemSelectorParent);
								var ttipclass=".url";
								var ct=0;
								$('.hiddenlistmeline li').each(function(){
									ct++;
									if(firstTime ||idst==null)
										handleIncomingTweets($(this),ttipclass,sts,0,false,2);	
									else
										handleIncomingTweets($(this),ttipclass,sts,500,false,2);				
								});
								if ((selectedTab!=4) && ct>0){
									var x=$('#tab6Num').html();
									if (x!="&nbsp;&nbsp;&nbsp;"){
										ct=parseInt(x)+ct;
									}
									if (ct<100)
										$('#tab6Num').html(ct+"&nbsp;");
									else
										$('#tab6Num').html(ct);		
								}								
							}
							(selectedTab==4)?resumemeline():resumehiddenmeline();
							$("#load5").hide();
							 updateratelimit();	 
						}});
		}
		
		function initFavs(elemSelectorParent,firstTime){
			$.ajax({
					url : '/fvline',
					type: 'POST',
					datatype :'html',
					error:function(){$("#load6").hide();  },
					beforeSend:function(){$("#load6").show();},
					success : function (data){
						alreadyLoadedFavs=true;
						if (data.substr(0,7)=="expired"){
							myalert("Your session expired, please sign in again.");
							location.reload();
						}
						else {
							$('.statuses5',elemSelectorParent).empty();
							$('.hiddenlistFavline').empty();
							$('.hiddenlistFavline').html(data);
							var sts=$('.statuses5',elemSelectorParent);
							var ttipclass=".url";
							$('.hiddenlistFavline li').each(function(){
								handleIncomingTweets($(this),ttipclass,sts,0,false,2);				
							});
						}
						$("#load6").hide();
						 updateratelimit();	 
					}});
		}
		
		function initTwitterList(elemSelectorParent,firstTime){	
			var idst=$('.statuses li:first',elemSelectorParent).attr("status_id");
			var listName=$('input[name="list"]').val();
			$('#followlist').html("");
			$.ajax({
						url : '/lsts',
						type: 'POST',
						datatype :'html',
						data : {'since_id':idst,'lname': listName}, 
						error:function(){resumeUpdates();},
						beforeSend:function(){ stopUpdates();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else if (data.indexOf("error")==0 ){
								alert(data);
							}
							else {
								currentList=listName;
								$('.hiddenlist').empty();
								$('.hiddenlist').html(data);
								var sts=$('.statuses',elemSelectorParent);
								var ttipclass=".url";
								$('.hiddenlist li').each(function(){
									if(firstTime ||idst==null)
										handleIncomingTweets($(this),ttipclass,sts,0,false,2);	
									else
										handleIncomingTweets($(this),ttipclass,sts,500,false,2);				
								});
							}
							resumeUpdates();
							updateratelimit();
							$('#followlist').html("follow "+currentList);
						}});
		}

			
		var initialDay = new Date().getUTCDate();
		function startTime()
		{
			var today=new Date();
			var h=today.getUTCHours();
			var m=today.getUTCMinutes();
			var s=today.getUTCSeconds();
			$("#dategmt").html(today.toGMTString());
			var newDay=today.getUTCDate();
			if (initialDay!=newDay){
				initialDay=newDay;
				$('#last24').html("0");
			}
			t=setTimeout('startTime()',500);
		}
		
		function showfewUsers(){
			var i=0;
			$("#topuserlist table tbody tr").each(function(){
				i++;
				if (i>5){
					$(this).hide();
				}
			});
			
			$("#showalltopusers").html('<br/><a rel="all"  id="shlessusr" href="#" style="border-top:1px solid;border-bottom: 1px solid;font-size:9px;">'+"View All.."+"</a>");
			$("#shlessusr").click(function(event){
				event.preventDefault();
				showallUsers();
			});
		}
		function showallUsers(){
			var i=0;
			$("#topuserlist table tbody tr").each(function(){
				$(this).show();
			});
			$("#showalltopusers").html('<br/><a rel="all"  id="shmoreusr" href="#" style="border-top:1px solid;border-bottom: 1px solid;font-size:9px;">'+"View Less.."+"</a>");
			$("#shmoreusr").click(function(event){
				event.preventDefault();
				showfewUsers();
			});			
		}
		
		function showfewSources(){
			var i=0;
			$("#sourcelist table tbody tr").each(function(){
				i++;
				if (i>5){
					$(this).hide();
				}
			});
			
			$("#showallsources").html('<br/><a rel="all"  id="shlesssrc" href="#" style="border-top:1px solid;border-bottom: 1px solid;font-size:9px;">'+"View All.."+"</a>");
			$("#shlesssrc").click(function(event){
				event.preventDefault();
				showallSources();
			});
		}
		
		function showallSources(){
			var i=0;
			$("#sourcelist table tbody tr").each(function(){
				$(this).show();
			});
			$("#showallsources").html('<br/><a rel="all"  id="shmoresrc" href="#" style="border-top:1px solid;border-bottom: 1px solid;font-size:9px;">'+"View Less.."+"</a>");
			$("#shmoresrc").click(function(event){
				event.preventDefault();
				showfewSources();
			});			
		}
		
		function showfewTweeples(){
			var i=0;
			$("#twpimages a").each(function(){
				i++;
				if (i>24){
					$(this).hide();
				}
			});
			
			$("#showallimages").html('<a rel="all"  id="shless" href="#">'+"View All.."+"</a>");
			$("#shless").click(function(event){
				event.preventDefault();
				showallTweeples();
			});
		}
		
		
		function showallTweeples(){
			var i=0;
			$("#twpimages a").each(function(){
				$(this).show();
			});
			$("#showallimages").html('<a rel="all"  id="shmore" href="#">'+"View Less.."+"</a>");
			$("#shmore").click(function(event){
				event.preventDefault();
				showfewTweeples();
			});			
		}
		
		function updateTimes(parentElem){
			var t = new Date().getTime();
			$(parentElem).each(function(){
				var oldTime = $(this).attr("time");
				var diff=(t-oldTime)/1000;	//in seconds
				var resultTime;
				if (diff<24*60*60){//same day

					var hours = Math.floor(diff /3600);
					var mins = Math.floor((diff % 3600)/60) ;
					if (hours>0)
						resultTime = (hours==1)?"one hour ago ":hours+" hours ago ";
					else{
						if (mins == 0)
							resultTime = Math.floor(((diff % 3600)%60))+" secs ago ";
						else if (mins==1)
							resultTime = "1 minute ago ";
						else
							resultTime = mins+ " minutes ago ";
					}
				}
				else{//many days
					var days=Math.floor(diff/(24*60*60));
					if (days==1)
						resultTime = "about 1 day ago ";
					else
						resultTime = days +" days ago";
				}
				$(this).find('span.published').text(resultTime);
			});		
		}
				
		function stopUpdates(){
			var demos = $("div.wrapper div.tweetsbox");
			activefeed=false;
			 $('.statuses',demos).stopTime('controlled');
		}
		
		function resumeUpdates(){
			if (!activefeed  && selectedTab==0){
				activefeed=true;
				if (isList)
					doTimer(300000);
				else
					doTimer(15000);
			}
		}
		
		function resumeHiddenUpdates(){
			if (isList)
				doTimer(300000);
			else
				doTimer(30000);
		}
		
	
		function doTimer(interval){
			$(function() { 	
			var demos = $("div.wrapper div.tweetsbox");
			$('.statuses',demos).everyTime(interval, 'controlled', function() {
				if (isList)
					initTwitterList(demos,false);
				else
					initFeed(demos,false);
			});});
		}
			
				
		function stoptimeline(){
			var demostimeline = $("div.wrapper2 div.tweetsbox2");
			 activetimeline=false;
			 $('.statuses2',demostimeline).stopTime('controlled');
		}
		
		function resumetimeline(){
			if (!activetimeline && selectedTab==1){
				activetimeline=true;
				doTimelineTimer(/*49000*/60000);
			}
		}
		
		function resumehiddentimeline(){
			doTimelineTimer(/*49000*/60000);
		}
			

		function doTimelineTimer(interval){
			$(function() { 	
				var demostimeline = $("div.wrapper2 div.tweetsbox2");
				$('.statuses2',demostimeline).everyTime(interval, 'controlled', function() {
					initTimeLine(demostimeline, false);
			});});
		}
			
			
		function stopmentionline(){
			var demosmentions = $("div.wrapper3 div.tweetsbox3");
			 activemetionline=false;
			 $('.statuses3',demosmentions).stopTime('controlled');
		}
		
		function resumementionline(){
			if (!activemetionline && selectedTab==2){
				activemetionline=true;
				doMentionlineTimer(/*87000*/120000);
			}
		}
			
		function doMentionlineTimer(interval){
			$(function() { 	
				var demosmentionline = $("div.wrapper3 div.tweetsbox3");
				$('.statuses3',demosmentionline).everyTime(interval, 'controlled', function() {
					initMentions(demosmentionline, false);
				});});
		}


		function resumehiddenmentionline(){
			doMentionlineTimer(/*87000*/120000);
		}
		
		function stopmeline(){
			var demosme = $("div.wrapper6 div.tweetsbox6");
			 activemeline=false;
			 $('.statuses6',demosme).stopTime('controlled');
		}
		
		function resumemeline(){
			if (!activemeline && selectedTab==4){
				activemeline=true;
				doMelineTimer(/*103000*/140000);
			}
		}
		
		function doMelineTimer(interval){
			$(function() { 	
				var demosMeline = $("div.wrapper6 div.tweetsbox6");
				$('.statuses6',demosMeline).everyTime(interval, 'controlled', function() {
					initMe(demosMeline, false);
				});
			});
		}
		
		function resumehiddenmeline(){
			doMelineTimer(/*103000*/140000);
		}
		
			
		function doDMlineTimer(interval){
			$(function() { 	
				var demosDMline = $("div.wrapper4 div.tweetsbox4");
				$('.statuses4',demosDMline).everyTime(interval, 'controlled', function() {
					initDM(demosDMline,false);
				});});
		}
		
		
		function stopDMline(){
			var demosDMline = $("div.wrapper4 div.tweetsbox4");
			activedmline=false;
			$('.statuses4',demosDMline).stopTime('controlled');
		}
			
		function resumeDMline(){
			if (!activedmline && selectedTab==3){
				activedmline=true;
				doDMlineTimer(119000);
			}
		}

		function resumehiddenDMline(){
			doDMlineTimer(119000);
		}

		function loadFavs(){
			var fablTime =  $("div.wrapper5 div.tweetsbox5");
		}
		
		function loadTab(tab,firstTime){
			if (tab==0){
				activefeed=true;
				$('#tab1Num').html("&nbsp;&nbsp;&nbsp;");
				if ($('.statuses li').length == 0)
					initFeed( $("div.wrapper div.tweetsbox") , firstTime);
				else 
					$("#load1").hide();
				updateTimes('.statuses li');
				startUpdateFeedTime();
			}
			else if (tab==1){
				activetimeline=true;
				$('#tab2Num').html("&nbsp;&nbsp;&nbsp;");
				if ($('.statuses2 li').length == 0)
					initTimeLine( $("div.wrapper2 div.tweetsbox2"), firstTime);
				else 
					$("#load2").hide();

				updateTimes('.statuses2 li');
				startUpdateTimeLineTime();
			}
			else if (tab==2){
				activemetionline=true;
				$('#tab3Num').html("&nbsp;&nbsp;&nbsp;");
				if ($('.statuses3 li').length == 0)
					initMentions( $("div.wrapper3 div.tweetsbox3"), firstTime);
				else 
					$("#load3").hide();

				updateTimes('.statuses3 li');
				startUpdateMentionLineTime();
			}
			else if (tab==3){
				$('#tab4Num').html("&nbsp;&nbsp;&nbsp;");
				//$("input[name=post]").val("Send")
				 if ($("#dm_user_id option:selected").val().length==0){
					 $('input[name=post]').attr('disabled','disabled'); 
					 $('input[name=post]').addClass('tweetbtndsbl');
				 }
				activedmline=true;
				if ($('.statuses4 li').length == 0)
					initDM($("div.wrapper4 div.tweetsbox4"), firstTime);
				else 
					$("#load4").hide();

				updateTimes('.statuses4 li');
				startUpdateDMLineTime();
				$("#dmp").show();
			}
			else if (tab==4){
				activemeline=true;
				$('#tab6Num').html("&nbsp;&nbsp;&nbsp;");
				if ($('.statuses6 li').length == 0)
					initMe( $("div.wrapper6 div.tweetsbox6"), firstTime);
				else 
					$("#load5").hide();

				updateTimes('.statuses6 li');
				startUpdateMeLineTime();
			}
			else if (tab==5){
				if (!alreadyLoadedFavs){
					initFavs( $("div.wrapper5 div.tweetsbox5"), firstTime);
				}
				else $("#load6").hide();
				updateTimes('.statuses5 li');
				startUpdateFavLineTime();
			}
			else if (tab==6){
				if (!twimgloaded){
					loadTweepleImages()
					twimgloaded=true;
				}
			}
			if (tab!=3){
				var tlen=$('textarea[name=text]').val().length;
				if (tlen>0 && tlen<=140){
					 $('input[name=post]').removeAttr('disabled');
					 $('input[name=post]').removeClass('tweetbtndsbl');
				}
			}
		}
			
			function stopTab(tab){
				if (tab==0){
					stopUpdateFeedTime();
					stopUpdates();
					resumeHiddenUpdates();
				}
				else if (tab==1){
					stopUpdateTimeLineTime();
					stoptimeline();
					resumehiddentimeline();
				}
				else if (tab==2){
					stopUpdateMentionLineTime();
					stopmentionline();
					resumehiddenmentionline();
				}
				else if (tab==3){
					//$("input[name=post]").val("Tweet")
					stopUpdateDMLineTime();
					stopDMline();
					$("#dmp").hide();
					resumehiddenDMline();
				}
				else if (tab==4){
					stopUpdateMeLineTime();
					stopmeline();
					resumehiddenmeline();
				}
				else if (tab==5){
					stopUpdateFavLineTime();
				}
			}
			
			
			function startUpdateFeedTime(){
				var parent = $("div.wrapper div.tweetsbox");
				$('.statuses',parent).everyTime(90000, 'feed', function() {
					updateTimes('.statuses li');
				});
			}
			function stopUpdateFeedTime(){
				var parent = $("div.wrapper div.tweetsbox");
				$('.statuses',parent).stopTime('feed');
			}
			
			function startUpdateTimeLineTime(){
				var parent = $("div.wrapper2 div.tweetsbox2");
				$('.statuses2',parent).everyTime(90000, 'timeline', function() {
					updateTimes('.statuses2 li');
				});
			}
			function stopUpdateTimeLineTime(){
				var parent = $("div.wrapper2 div.tweetsbox2");
				$('.statuses2',parent).stopTime('timeline');
			}
			
			function startUpdateMentionLineTime(){
				var parent = $("div.wrapper3 div.tweetsbox3");
				$('.statuses3',parent).everyTime(90000, 'mentions', function() {
					updateTimes('.statuses3 li');
				});
			}
			
			
			function stopUpdateMentionLineTime(){
				var parent = $("div.wrapper3 div.tweetsbox3");
				$('.statuses3',parent).stopTime('mentions');
			}	
			
			function startUpdateDMLineTime(){
				var parent = $("div.wrapper4 div.tweetsbox4");
				$('.statuses4',parent).everyTime(90000, 'dm', function() {
					updateTimes('.statuses4 li');
				});
			}
			
			function startUpdateMeLineTime(){
				var parent = $("div.wrapper6 div.tweetsbox6");
				$('.statuses6',parent).everyTime(90000, 'me', function() {
					updateTimes('.statuses6 li');
				});
			}
			
			function stopUpdateMeLineTime(){
				var parent = $("div.wrapper6 div.tweetsbox6");
				$('.statuses6',parent).stopTime('me');
			}	
			
			function stopUpdateDMLineTime(){
				var parent = $("div.wrapper4 div.tweetsbox4");
				$('.statuses4',parent).stopTime('dm');
			}	
			
			function startUpdateFavLineTime(){
				var parent = $("div.wrapper5 div.tweetsbox5");
				$('.statuses5',parent).everyTime(90000, 'fav', function() {
					updateTimes('.statuses5 li');
				});
			}
			
			function stopUpdateFavLineTime(){
				var parent = $("div.wrapper5 div.tweetsbox5");
				$('.statuses5',parent).stopTime('fav');
			}	
			
			function loadFriends(){
				 if ( $("#statusupdt").length > 0 ) {
						$.ajax({
							url : '/twfriends',
							type: 'GET',
							datatype :'html',
							success : function (data){
								var output=data.split(";");
								friendNames=output[0].split(",");
								friendIds=output[1].split(",");
								$("#headercounttw").html(friendNames.length);								
								 $("#dm_user_id").html(output[2]);
								 var autocompOpts={
										 width: 300 ,
										 multiple : true ,
										 multipleSeparator : " ",
										 formatItem: function(data, i, max,term) {
							            	return data[0].substring(1).replace("~"," ");
								 		},
								 		formatMatch: function(data, i, max,term) {
							            	return data[0].split("~")[0];
								 		}
								 };
								 $("#tweet_box").autocomplete(friendNames,autocompOpts);
							}
						});
				 }
			}
			
			function checkDMSelect(){
				if (selectedTab==3 && $("#dm_user_id option:selected").val().length==0)
					return true;
				return false;
			}
			
			function autoShort(){
				if ($("#autoshort").html()=="on"){
					var newtext=$('textarea[name=text]').val();
					var urlRegExp = new RegExp(/(https?:\/\/\S+)/igm);							
					var urlMatches = newtext.match(urlRegExp);
					if (!(!urlMatches)){
						for (var i=0; i < urlMatches.length; i++) {  
							var url = urlMatches[i].trim();
							if (url.length>30){
								BitlyClient.shorten(url, 'BitlyCB.shortenReplace');
							}
						}
					}
				}
			}
	
			function confirmRetweet(elem,retId){
				confirm("Retweet this status without comment?", function () {
					Retweet(retId);
				});


			}		
			
			function Retweet(retId){
				 $.ajax({
						url:'/twrt',
						type: "POST",
						cache:false,
						data :{'twrtid':retId},
						error : function (){
									$('#tweeting').attr('src','none.gif');
								alert('unexpected error while trying to submit your DM.\n The server may be down.');
							},
						beforeSend:function(){ScrollToTweetBox();$("#tweeting").attr("src","ajax.gif")},
						success : function (data){
							if (data.length>0)
							{
								if (data.substr(0,7)!="success"){
									if(data.substr(0,7)=="expired"){
										myalert("Your session expired, please sign in again.");
										location.reload();
									}
									else{
										alert(data);
									}
								}
							}
							$("#tweeting").attr("src","none.gif");
						}
				});
			}
			
			function tweet(){
				 if (selectedTab==3){
					 $.ajax({
							url:'/dmsend',
							type: "POST",
							cache:false,
							data : {'text': $("textarea[name=text]").val() , 
									'send_to_id': $("#dm_user_id option:selected").val(),
									}, 
							error : function (){
										$('#tweeting').attr('src','none.gif');
									alert('unexpected error while trying to submit your DM.\n The server may be down.');
								},
							beforeSend:function(){$("#tweeting").attr("src","ajax.gif")},
							success : function (data){
							if (data.length>0)
							{
								if (data.substr(0,7)!="success"){
									if(data.substr(0,7)=="expired"){
										myalert("Your session expired, please sign in again.");
										location.reload();
									}
									else{
										alert(data);
									}
									$("#tweeting").attr("src","none.gif");
								}
								else {
									 $('#dm_user_id [value=""]').attr("selected", "selected");
									$('input[name=post]').attr('disabled','disabled');
									$('input[name=post]').addClass('tweetbtndsbl');
									$("input[name=in_reply_to_status_id]").val("");
									$("input[name=in_reply_to]").val("");									
									$("textarea[name=text]").val("");		
									updateCharCounter();
									setTimeout('$("#tweeting").attr("src","none.gif")',2000);
									initDM($("div.wrapper4 div.tweetsbox4"),false);
								}
							}
						}
					});
				}
				 else {
					 $.ajax({
							url:'/tweet',
							type: "POST",
							cache:false,
							data : {'text': $("textarea[name=text]").val() , 
									'in_reply_to_status_id': $("input[name=in_reply_to_status_id]").val(),
									'in_reply_to': $("input[name=in_reply_to]").val(),
									'lat' : tweetLat,
									'long' : tweetLong
									}, 
							error : function (){$("#tweeting").attr("src","none.gif");alert("unexpected error while trying to submit your tweet.\n The server may be down.")},
							beforeSend:function(){$("#tweeting").attr("src","ajax.gif")},
							success : function (data){
							if (data.length>0)
							{
								if (data.substr(0,7)=="expired"){
									myalert("Your session expired, please sign in again.");
									location.reload();
									$("#tweeting").attr("src","none.gif");
								}
								else if (data.substr(0,7)=="success"){
									$('input[name=post]').attr('disabled','disabled');
									$('input[name=post]').addClass('tweetbtndsbl');
									$("input[name=in_reply_to_status_id]").val("");
									$("input[name=in_reply_to]").val("");									
									$("textarea[name=text]").val("");		
									updateCharCounter();
									setTimeout('$("#tweeting").attr("src","none.gif")',(selectedTab==0)?8000:2000);
									if (selectedTab==1){
										initTimeLine($("div.wrapper2 div.tweetsbox2"),false);
									}
									if (selectedTab==2){
										initMentions($("div.wrapper3 div.tweetsbox3"),false);
									}
									if (selectedTab==4){
										initMe($("div.wrapper6 div.tweetsbox6"),false);
									}
								}
								else {
									alert(data);
									$("#tweeting").attr("src","none.gif");
								}
							}
						}
					});
				 }

			}
			
			function follow(screenName){
				$.ajax({
					url : '/flw',
					type: 'POST',
					data : {'op':'follow', 'p': screenName} , 
					datatype :'html',
					success : function (data){
						if (data.substr(0,7)=="expired"){
							myalert("Your session expired, please sign in again.");
							location.reload();
						}
						else {
							modal("follow : "+screenName,data);
						}
					}});
			}
			
			function unfollow(screenName){
				$.ajax({
					url : '/flw',
					type: 'POST',
					data : {'op':'unfollow', 'p': screenName} , 
					datatype :'html',
					success : function (data){
						if (data.substr(0,7)=="expired"){
							myalert("Your session expired, please sign in again.");
							location.reload();
						}
						else {
							modal("unfollow : "+screenName,data);
						}
					}});
			}
			
			function info(screenName){
				$.ajax({
					url : '/flw',
					type: 'POST',
					data : {'op':'info', 'p': screenName} , 
					datatype :'html',
					success : function (data){
						if (data.substr(0,7)=="expired"){
							myalert("Your session expired, please sign in again.");
							location.reload();
						}
						else {
							modal("Info : "+screenName,data);
						}
					}});
			}
			
			function doList(){
				if ($('input[name="list"]').val().length>0){
					var ltoget=$('input[name="list"]').val();
					if (ltoget.indexOf("@")!=0 || ltoget.indexOf("/")<0){
						myalert("lists are specifed as '@user/list-name'");
					}
					else{
						$("#timeline").empty();
						initTwitterList($("div.wrapper div.tweetsbox"),false);					
					}
				}
			}
			
			function followCurrentlist(){
				$.getJSON('/mlst?op=f&id='+currentList, function (data){
					 if (typeof data.error=='undefined'){
						 $("#myfollowlists").empty();
						 loadMyfollowLists($("#myfollowlists"));
					 }					 
				 });
			}
			
			function unfollowList(list){
				$.getJSON('/mlst?op=u&id='+list, function (data){
					 if (typeof data.error=='undefined'){
						 $("#myfollowlists").empty();
						 loadMyfollowLists($("#myfollowlists"));
					 }					 
				 });
			}			
			function loadMyLists(elem){
				if ($("#screenid").length>0){
					var user=$("#screenid").text();
					 $.getJSON('/mlst?op=l&callback=?', function (data){
						 if (typeof data.error=='undefined'){
							 if (data.lists.length>0){	
								 $.each(data.lists, function(i,l){
									 var stts='<span style="float:right">['+l.member_count+':'+l.subscriber_count+']</span>'
										elem.append("<a class=\"l\" href=\"list/"+l.full_name+"\">"+l.full_name+"</a>"+stts+"<br/>");
								 });
								 $('a.l',elem).click(function(event){
										event.preventDefault();
										var list=$(this).html();
										$('input[name="list"]').val(list);
										$("#timeline").empty();
										initTwitterList($("div.wrapper div.tweetsbox"),false);											
								});
								 $('a.l').css('color',clrs);
							 }
						 }
						 
					 });
				}
			}
			
			function loadMyListed(elem){
				if ($("#screenid").length>0){
					var user=$("#screenid").text();
					 $.getJSON('/mlst?op=m&callback=?', function (data){
						 if (typeof data.error=='undefined'){
							 if (data.lists.length>0){	
								 $.each(data.lists, function(i,l){
									 var stts='<span style="float:right">['+l.member_count+':'+l.subscriber_count+']</span>'
										elem.append("<a class=\"l\" href=\"list/"+l.full_name+"\">"+l.full_name+"</a>"+stts+"<br/>");
								});
								 $('a.l',elem).click(function(event){
										event.preventDefault();
										var list=$(this).html();
										$('input[name="list"]').val(list);
										$("#timeline").empty();
										initTwitterList($("div.wrapper div.tweetsbox"),false);											
								});
								 $('a.l').css('color',clrs);
							 }
						 }
						 
					 });
				}
			}
			
			function loadMyfollowLists(elem){
				if ($("#screenid").length>0){
					var user=$("#screenid").text();
					 $.getJSON('/mlst?op=s&callback=?', function (data){
						 if (typeof data.error=='undefined'){
							 if (data.lists.length>0){	
								 $.each(data.lists, function(i,l){
									 var ufl='<a id="unfollowalist" title="unfollow" href="#" lst="'+l.full_name+'"><img style="width: 10px; height: 10px;" src="images/rmv.png"/></a>';
									 var stts='<span style="float:right">['+l.member_count+':'+l.subscriber_count+']'+ufl+'</span>';
									elem.append("<a class=\"l\" href=\"list/"+l.full_name+"\">"+l.full_name+"</a>"+stts+"<br/>");
								 });
								 $('a.l',elem).click(function(event){
										event.preventDefault();
										var list=$(this).html();
										$('input[name="list"]').val(list);
										$("#timeline").empty();
										initTwitterList($("div.wrapper div.tweetsbox"),false);											
								});
								 $('a.l').css('color',clrs);
								 $('#unfollowalist',elem).click(function(event){
										event.preventDefault();
										var list=$(this).attr('lst');
										unfollowList(list);										
								});
							 }
						 }
						 
					 });
				}
			}
			
			function loadTweepleImages(){
				if ($("#sidebar").width()>0 && $("#twpimagescontainer").length > 0) {				
					$.ajax({
						url:'/tweepleimage',
						success : function (data){
						if (data.length>2)
						{
							var indexsc=data.indexOf(";");
							var indexcr=data.indexOf("\r");
							var count=data.substring(0,indexsc);
							var rdata=data.substring(indexsc+1,indexcr);
							$("#twpimages").html(rdata);
							$("#headimageText").html(" "+count+" Tn Tweeple.");
							$("#twpimages a").tooltip({
								track: true,
								extraClass : "imgtooltip",
								delay: 0,
								bodyHandler: function() {
								var st = $(this).attr("av");
								st=st.replace(/-b-/g,'<b>');
								st=st.replace(/-bb-/g,'</b>');
								st=st.replace(/,-,/g,'<br>');
									return st;
								},
								showURL: false
							});
							showfewTweeples();
						}
						}
					});
				}
				
			}
			
			function confirm(message, callback) {
				$('#confirm').modal({
					closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
					position: ["20%",],
					overlayId: 'confirm-overlay',
					containerId: 'confirm-container', 
					onShow: function (dialog) {
						$('.message', dialog.data[0]).append(message);

						// if the user clicks "yes"
						$('.yes', dialog.data[0]).click(function () {
							// call the callback
							if ($.isFunction(callback)) {
								callback.apply();
							}
							// close the dialog
							$.modal.close();
						});
					}
				});
			}
			
			function updateSrcUsers(){
				$.ajax({
					beforeSend:function(){ $("#refreshsrc").addClass("loading");$("#imgfrshsrc").attr("src", "ajax.gif")},
					error:function(){$("#refreshsrc").removeClass("loading");$("#imgfrshsrc").attr("src", "refresh.png");},
					url:'/twittersource',
					success : function (data){
					if (data.length>2)
					{
						var results =data.split("&~~^^~~!");
						var indexsc=results[0].indexOf(";");
						var count=results[0].substring(0,indexsc);
						var rdata=results[0].substring(indexsc+1);
						$('#sourcelist').html(rdata);
						$('#sourcelist a').css('color', clrs);
						$("#headsourceText").html("Top 25 Twitter Clients");
						
						var indexu=results[1].indexOf(";");
						var countu=results[1].substring(0,indexu);
						var rdatau=results[1].substring(indexu+1);
						$('#topuserlist').html(rdatau);
						$('#topuserlist a').css('color', clrs);
						$("#headuserText").html("Top 25 TnLabs Users");
						
						showfewSources();
						showfewUsers();
					}
					$("#refreshsrc").removeClass("loading");
					$("#imgfrshsrc").attr("src", "refresh.png");
					}
				});
			}
			
			var count=40;
			var lastdate=0;
			
			$(document).ready(function(){

				 clr=getCookie('hlink');
				 if (clr==null)
					 clr= '#a52a2a';

				 clrs=getCookie('nlink');
				 if (clrs==null)
					 clrs= "#224499";
	
				
				$("#nav").corner("keep");
				$("#headimage").corner("keep");
				$("#headclouds").corner("keep");
				$("#headsource").corner("keep");
				$("#headuser").corner("keep");
				$("#fbfan").corner("keep");
				$("#dayphotos").corner("keep");
				
				$("#dmp").hide();
				$("#load1").hide();
				startTime();
				
				$('#addaccount').click(function (event){
					event.preventDefault();
					var newUrl=window.location.protocol+"//"+window.location.host+window.location.pathname+"signin?target=m";
					window.location=newUrl;
				});
				
				$("input[name='accountname']").change(function(){
					var newaccount=($("input[@name='accountname']:checked")).val();
					$("#acctNameLabel").html(newaccount);
					$("a[href='#tabs-2']").attr('title',newaccount+" Timeline");
					$("a[href='#tabs-3']").attr('title',newaccount+" Mentions");
					$("a[href='#tabs-4']").attr('title',newaccount+" Direct Messages");
					$("a[href='#tabs-6']").attr('title',newaccount+" Tweets");
					$("a[href='#tabs-5']").attr('title',newaccount+" Favorites");
					switchuser(newaccount);
					updateratelimit();
					initTimeLine($("div.wrapper2 div.tweetsbox2"), true);
					initMentions($("div.wrapper3 div.tweetsbox3"), true);
					initMe($("div.wrapper6 div.tweetsbox6"), true);
					initDM( $("div.wrapper4 div.tweetsbox4"),true);
				});
				
				$('img[id="myloc"]').each(function(){
					var imgElem=this;
					$(this).qtip({
						position: { corner: { tooltip: 'topLeft' } },
						show: { when: { event: 'click' } , effect: { type : 'grow' , length: 150 }},
						hide: { when: { event: 'unfocus' } , effect: { type : 'fade' , length: 150 }},
						style: { width: 320, height:200 , tip: { corner: 'topLeft' } },
						api: {
							onShow: function(){
									var selmap="#map_canvas[stid=myLoc]";
									var lat=$(imgElem).attr('lat');
									var long=$(imgElem).attr('long');
									$(selmap).googleMaps({
							        	latitude:lat,
							            longitude:long,
							            markers: {
							                latitude: lat,
							                longitude:  long,
							            },
							            depth : 12
							        }); 
							}
						},
						content: {	
							text : '<div id="map_canvas" stid="myLoc" style="width: 300px; height: 200px"></div>'
							}
						});
				});
				
				$('img[id="mylocg"]').each(function(){
					var imgElem=this;
					$(this).qtip({
						position: { corner: { tooltip: 'topLeft' } },
						show: { when: { event: 'click' } , effect: { type : 'grow' , length: 150 }},
						hide: { when: { event: 'unfocus' } , effect: { type : 'fade' , length: 150 }},
						style: { width: 320, height:200 , tip: { corner: 'topLeft' } },
						api: {
							onShow: function(){
									var selmap="#map_canvas[stid=myLocg]";
									var lat=$(imgElem).attr('lat');
									var long=$(imgElem).attr('long');
									$(selmap).googleMaps({
							        	latitude:lat,
							            longitude:long,
							            markers: {
							                latitude: lat,
							                longitude:  long,
							            },
							            depth : 12
							        }); 
							}
						},
						content: {	
							text : '<div id="map_canvas" stid="myLocg" style="width: 300px; height: 200px"></div>'
							}
						});
				});
				
				isList=$("#listpage").length>0;
				
				var demos = $("div.wrapper div.tweetsbox");
				var demosTimeLine = $("div.wrapper2 div.tweetsbox2");
				var demosMentionsLine =  $("div.wrapper3 div.tweetsbox3");
				var demosDMTimeLine=$("div.wrapper4 div.tweetsbox4");

				if ( $("#statusupdt").length > 0 && !isList){
					 $("#load2").hide();
					 $("#load3").hide();
					 $("#load4").hide();
					 $("#load5").hide();
					 $("#load6").hide();
						
					 $("#tabs").tabs({
		               		select: function(event, ui) {
						 		var iLoad=ui.index+1;
						 		$("#load"+iLoad).show();
								var oldTab=selectedTab;
								if (oldTab!=ui.index && oldTab!=-1)
									stopTab(oldTab);
		               			selectedTab=ui.index;
		               			loadTab(selectedTab,oldTab==-1);
		               		}
				 	});
					 selectedTab=0;
					 loadTab(0,true);
					 if ( $("#statusupdt").length > 0 ){
						initTimeLine($("div.wrapper2 div.tweetsbox2"), true);
						initMentions($("div.wrapper3 div.tweetsbox3"), true);
						initMe($("div.wrapper6 div.tweetsbox6"), true);
						initDM( $("div.wrapper4 div.tweetsbox4"),true);

						 resumehiddentimeline();
						 resumehiddenmentionline();
						 resumehiddenDMline();
						 resumehiddenmeline();
					 }
					 
					 $("#dm_user_id").change(function () {
						 var tlen=$('textarea[name=text]').val().length;
						 if ($("#dm_user_id option:selected").val().length==0){
							 $('input[name=post]').attr('disabled','disabled');
							 $('input[name=post]').addClass('tweetbtndsbl');
						 }
						 else {
							 if (tlen>0 && tlen<=140){
								 $('input[name=post]').removeAttr('disabled');
								 $('input[name=post]').removeClass('tweetbtndsbl');
						 		}
						 }
				        });	
					 
					 $(function() {
							$("#accordion").accordion({
								collapsible: true,
								active: false,
								animated:false
							});
						});
					 
					if ($("#autoshort").html()=="on")
							$("#accordion").hide();

				}
				else{
					selectedTab=0;
					if (isList){
						if ($("#statusupdt").length > 0 )
							$("#so").html($("#ho").html());
						else
							$("#si").html($("#hl").html());

						 $(function() {
								$("#accordion").accordion({
									collapsible: true,
									active: false,
									animated:false
								});
							});
						 
						if ($("#autoshort").html()=="on")
								$("#accordion").hide();

						var qindex=window.location.href.indexOf("?");
						 if (qindex>0){
							 var q=window.location.href.substr(qindex+1);
							 q=q.substr(q.indexOf('=')+1);
							 if (q.indexOf('#')>0){
								 q=q.substr(0,q.length-1);
							 }
							 $('input[name="list"]').val(q);
						 }
						initTwitterList(demos,true);
						$('#followlist').click(function (event){
							followCurrentlist();
						});
					}
					else {
						initFeed(demos,true);
					}
					startUpdateFeedTime();
				}
				
				$("#refreshfav").click(function(event){
					event.preventDefault();
					initFavs( $("div.wrapper5 div.tweetsbox5"), false);
				});
				
				if ($("#sidebar").width()>0 || $("#cloudscontainer").length > 0) {
					$("#refresh").click(function(event){
						event.preventDefault();
						$.ajax({
							url:'/hashcloud',
							beforeSend:function(){$("#refresh").addClass("loading");$("#imgfrshtag").attr("src", "ajax.gif")},
							error:function(){$("#refresh").removeClass("loading");$("#imgfrshtag").attr("src", "refresh.png");},
							success : function (data){
							if (data.length>0)
							{
								$("#cloudlist").html(data);
								$('#cloudlist a').css('color', clrs);									
								$("#headcloudText").html("Hash Tag cloud.");
								
							}
							$("#refresh").removeClass("loading");
							$("#imgfrshtag").attr("src", "refresh.png");
						}
						});
					});
				}
				
				if ($("#sidebar").width()>0 || $("#sourcecontainer").length > 0) {
					$("#refreshsrc").click(function(event){
						event.preventDefault();
						updateSrcUsers();
					});
					$("#refreshusr").click(function(event){
						event.preventDefault();
						updateSrcUsers();
					});
				}
				
				if ($("#sidebar").width()>0 || $("#twpimagescontainer").length > 0) {				
					$("#refreshimg").click(function(event){
						event.preventDefault();
						$.ajax({
							url:'/tweepleimage',
							beforeSend:function(){ $("#refreshimg").addClass("loading");$("#imgfrshimg").attr("src", "ajax.gif")},
							error:function(){$("#refreshimg").removeClass("loading");$("#imgfrshimg").attr("src", "refresh.png");},
							success : function (data){
							if (data.length>2)
							{
								var indexsc=data.indexOf(";");
								var indexcr=data.indexOf("\r");
								var count=data.substring(0,indexsc);
								var rdata=data.substring(indexsc+1,indexcr);
								$("#twpimages").html(rdata);
								$("#headimageText").html("Aggregating "+count+" Tn Tweeple");
								$("#twpimages a").tooltip({
									track: true,
									extraClass : "imgtooltip",
									delay: 0,
									bodyHandler: function() {
									var st = $(this).attr("av");
									st=st.replace(/-b-/g,'<b>');
									st=st.replace(/-bb-/g,'</b>');
									st=st.replace(/,-,/g,'<br>');
										return st;
									},
									showURL: false
								});
								showfewTweeples();
							}
							$("#refreshimg").removeClass("loading");
							$("#imgfrshimg").attr("src", "refresh.png");
							}
						});
					});
				}
				
			    $("#more0").click(function(event){
			    	event.preventDefault();
			    	$.ajax({
						url:'/feedpage'+'?date='+lastdate+'&count='+count,
						type : 'GET',
						datatype :'html',
						beforeSend:function(){stopUpdates();$("#more0").addClass("loading").html("")},
						error:function(){$("#more0").removeClass("loading").html("Older Tweets");$("#more0").blur(); resumeUpdates();},
						success : function (data){
							var sts=$('.statuses',demos);
							var ttipclass=".url";
							$('.hiddenlist1').empty();
							$('.hiddenlist1').html(data);
							$('.hiddenlist1 li').each(function(){
								handleIncomingTweets($(this),ttipclass,sts, 0,true,0);
							});
							lastdate= $('.statuses li:last',demos).attr("time");
							$("#more0").removeClass("loading").html("Older Tweets");$("#more0").blur(); resumeUpdates();
							 updateratelimit();	 
						}
					});
			    });
	
			    
			 	
			    $("#more2").click(function(event){
			    	event.preventDefault();
					var demosmention = $("div.wrapper3 div.tweetsbox3");
					var idst=$('.statuses3 li:last',demosmention).attr("status_id");
			    	$.ajax({
						url:'/feedmentions',
						type : 'POST',
						datatype :'html',
						data : {'max_id':idst}, 
						beforeSend:function(){stopmentionline();$("#more2").addClass("loading").html("")},
						error:function(){$("#more2").removeClass("loading").html("Older Tweets");$("#more2").blur(); resumementionline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								var i=0;
								$('.hiddenlistmentionline').empty();
								$('.hiddenlistmentionline').html(data);
								var sts=$('.statuses3',demosmention);
								var ttipclass=".url";
								$('.hiddenlistmentionline li').each(function(){
									i++;
									if (i!=1 || $('.statuses3 li:last',demosmention).attr("status_id")!=$(this).attr("status_id"))
										handleIncomingTweets($(this),ttipclass,sts,0,true,2);								
								});
							}
							$("#more2").removeClass("loading").html("Older Tweets");$("#more2").blur(); 
							resumementionline();
							updateratelimit();	 
						}
					});
			    });
		 	
		 	
			    $("#more1").click(function(event){
			    	event.preventDefault();
					var demostimeline = $("div.wrapper2 div.tweetsbox2");
					var idst=$('.statuses2 li:last',demostimeline).attr("status_id");
			    	$.ajax({
						url:'/feedtimeline',
						type : 'POST',
						datatype :'html',
						data : {'max_id':idst}, 
						beforeSend:function(){stoptimeline();$("#more1").addClass("loading").html("")},
						error:function(){$("#more1").removeClass("loading").html("Older Tweets");$("#more1").blur(); resumetimeline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								
								$('.hiddenlisttimeline').empty();
								$('.hiddenlisttimeline').html(data);
								var sts=$('.statuses2',demostimeline);
								var ttipclass=".url";
								var i=0;
								$('.hiddenlisttimeline li').each(function(){
									i++;
									if (i!=1 || $('.statuses2 li:last',demostimeline).attr("status_id")!=$(this).attr("status_id"))
										handleIncomingTweets($(this),ttipclass,sts,0,true,1);								
																
								});
							}
							$("#more1").removeClass("loading").html("Older Tweets");$("#more1").blur(); 
						 	resumetimeline();
						 	updateratelimit();	 
						}
					});
			    });
	
			    $("#more3").click(function(event){
			    	event.preventDefault();
					var demosDm = $("div.wrapper4 div.tweetsbox4");
					var idst=$('.statuses4 li:last',demosDm).attr("status_id");
			    	$.ajax({
						url:'/feedDM',
						type : 'POST',
						datatype :'html',
						data : {'max_id':idst}, 
						beforeSend:function(){stopDMline();$("#more3").addClass("loading").html("")},
						error:function(){$("#more3").removeClass("loading").html("Older Tweets");$("#more3").blur(); resumeDMline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								var i=0;
								$('.hiddenlistDMline').empty();
								$('.hiddenlistDMline').html(data);
								var sts=$('.statuses4',demosDm);
								var ttipclass=".url";
								$('.hiddenlistDMline li').each(function(){
									i++;
									if (i!=1 || $('.statuses4 li:last',demosDm).attr("status_id")!=$(this).attr("status_id"))
										handleIncomingTweets($(this),ttipclass,sts,0,true,3);								
								});
							}
							$("#more3").removeClass("loading").html("Older Tweets");$("#more3").blur(); 
							resumeDMline();
							updateratelimit();	 
						}
					});
			    });
			    
			    $("#more5").click(function(event){
			    	event.preventDefault();
					var demosme = $("div.wrapper6 div.tweetsbox6");
					var idst=$('.statuses6 li:last',demosme).attr("status_id");
			    	$.ajax({
						url:'/mefeed',
						type : 'POST',
						datatype :'html',
						data : {'max_id':idst}, 
						beforeSend:function(){stopmeline();$("#more5").addClass("loading").html("")},
						error:function(){$("#more5").removeClass("loading").html("Older Tweets");$("#more5").blur(); resumemeline();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								var i=0;
								$('.hiddenlistmeline').empty();
								$('.hiddenlistmeline').html(data);
								var sts=$('.statuses6',demosme);
								var ttipclass=".url";
								$('.hiddenlistmeline li').each(function(){
									i++;
									if (i!=1 || $('.statuses6 li:last',demosme).attr("status_id")!=$(this).attr("status_id"))
										handleIncomingTweets($(this),ttipclass,sts,0,true,2);								
								});
							}
							$("#more5").removeClass("loading").html("Older Tweets");$("#more5").blur(); 
							resumemeline();
							 updateratelimit();	 
						}
					});
			    });
			    
			    $("#morelist").click(function(event){
			    	event.preventDefault();
					var demosl = $("div.wrapper div.tweetsbox");
					var idst=$('.statuses li:last',demosl).attr("status_id");
					var listName=$('input[name="list"]').val();
			    	$.ajax({
						url:'/lsts',
						type : 'POST',
						datatype :'html',
						data : {'max_id':idst,'lname': listName}, 
						beforeSend:function(){stopUpdates();$("#morelist").addClass("loading").html("")},
						error:function(){$("#morelist").removeClass("loading").html("Older Tweets");$("#morelist").blur(); resumeUpdates();},
						success : function (data){
							if (data.substr(0,7)=="expired"){
								myalert("Your session expired, please sign in again.");
								location.reload();
							}
							else {
								$('.hiddenlist').empty();
								$('.hiddenlist').html(data);
								var sts=$('.statuses',demosl);
								var ttipclass=".url";
								var i=0;
								$('.hiddenlist li').each(function(){
									i++;
									if (i!=1 || $('.statuses li:last',demosl).attr("status_id")!=$(this).attr("status_id"))
										handleIncomingTweets($(this),ttipclass,sts,0,true,1);								
																
								});
							}
							$("#morelist").removeClass("loading").html("Older Tweets");$("#morelist").blur(); 
							resumeUpdates();
						 	updateratelimit();	 
						}
					});
			    });
			    
			    $('input[name="list"]').keypress( function(e){
					 if (e.which == 10 || e.which == 13)
						 doList();
				
				});
				
				 $("#golist").click(function(event){
					doList();
				 });
			    
				 $("#pause").click(function(event){
					 if (activefeed){
						 $("#pause").html("resume");
						stopUpdates();
					 }
					 else{
						 resumeUpdates();
						$("#pause").html("pause");
								
					 }
				 });
				 
				loadFriends();

				
				if ($("#sidebar").width()>0 && $("#sourcecontainer").length > 0) {
					$.ajax({
						url:'/twittersource',
						success : function (data){
							if (data.length>2)
							{
								var results =data.split("&~~^^~~!");
								var indexsc=results[0].indexOf(";");
								var count=results[0].substring(0,indexsc);
								var rdata=results[0].substring(indexsc+1);
								$('#sourcelist').html(rdata);
								$('#sourcelist a').css('color', clrs);
								$("#headsourceText").html("Top 25 Twitter Clients");
								
								var indexu=results[1].indexOf(";");
								var countu=results[1].substring(0,indexu);
								var rdatau=results[1].substring(indexu+1);
								$('#topuserlist').html(rdatau);
								$('#topuserlist a').css('color', clrs);
								$("#headuserText").html("Top 25 TnLabs Users");
								
								showfewSources();
								showfewUsers();
							}
						}
					});
				}
				
				if ($("#sidebar").width()>0 && $("#cloudscontainer").length > 0) {
					$.ajax({
						url:'/hashcloud',
						success : function (data){
							if (data.length>0)
							{
								$("#cloudlist").html(data);
								$("#headcloudText").html("Hash Tag cloud.");
								$('#cloudlist a').css('color', clrs);									
							}
						}
					});
				}
				
				 if ( $("#statusupdt").length > 0 ) {
					 $("input[name=post]").click(function(event){
						 event.preventDefault();
						 tweet();
				 	});
				 }
				 if ( $("#statusupdt").length > 0 && isList) {
					 loadMyLists( $("#mylists"));
					 loadMyListed($("#mylisted"));
					 loadMyfollowLists($("#myfollowlists"));
				 }
				 
				 $("#about").qtip({
						position: { corner: { tooltip: 'topMiddle' } },
						show: { when: { event: 'click' } , effect: { type : 'grow' , length: 150 }},
						hide: { when: { event: 'unfocus' } , effect: { type : 'grow' , length: 150 }},
						style: { width: { max: 500, min : 500 }, border: { color: '#0084b4' , width : 5,radius: 5} ,tip: { corner: 'topMiddle' }},
						content: {	text : 'About..', 
									url : '/about.html',
									method : 'GET'}
						});
					
				 if ( $("#statusupdt").length > 0 ) {
						 
						$('textarea[name=text]').keyup(function(e){
					        counter= $(this).parent().find('.char-counter');
							if ($(this).val().length==0){
								$('input[name=post]').attr('disabled','disabled');
								 $('input[name=post]').addClass('tweetbtndsbl');
								$("input[name=in_reply_to_status_id]").val("");
								$("input[name=in_reply_to]").val("");
					        	 $(counter).css('color','rgb(204, 204, 204)');
							}
							else {
								autoShort();
								/*if (e.keyCode == 13){
									//e.preventDefault();
									//tweet();
								}*/
							}
					        var max = 140;
					        var diff=max - $(this).val().length;	
					        $(counter).html(diff);
					        if (diff<0 ||  diff==140 ||(checkDMSelect()) ){
					        	 $('input[name=post]').attr('disabled','disabled');
					        	 $('input[name=post]').addClass('tweetbtndsbl');
					        	 if (diff<0 )
					        		 $(counter).css('color','red');
					        }
					        else {
					        	 $('input[name=post]').removeAttr('disabled');
					        	 $('input[name=post]').removeClass('tweetbtndsbl');
					        	 $(counter).css('color','rgb(204, 204, 204)');
					        }
					   });
					 
					 $('input[name=shorten]').click(function(event){
						 event.preventDefault();
						 var link=$('textarea[name=link]').val();
						 if (link.length>0 && (link.indexOf("http:")==0 || link.indexOf("https:")==0)){
					        BitlyClient.shorten(link, 'BitlyCB.shortenResponse');
						}
					});
					 
					 $('input[name=fb]').click(function(event){
						 event.preventDefault();
						 if ($(this).is('checked')){
							 $(this).attr('checked',false);
							 fbloggedIn=false;
						 }
						 else{
								FB.ensureInit(function() {
									 FB.Connect.get_status().waitUntilReady( function( status ) { 
										 switch ( status ) 
										 { 
										 	case FB.ConnectState.connected:
										 		fbloggedIn = true; 
										 		 $('input[name=fb]').attr('checked',true);
										 		break; 
										 	case FB.ConnectState.appNotAuthorized: 
										 	case FB.ConnectState.userNotLoggedIn: 
										 		FB.Connect.requireSession(); 
										 		 $('input[name=fb]').attr('checked',false);
										 		fbloggedIn = false; 
										 	} 
										 }); 
									}); 
						 }
					 });
				}
					
			 updateratelimit();	 
			 
			 $("#automyloc").click(function(event){
				 event.preventDefault();
				 if ($(this).html()=="Add to my Tweets"){
					 $(this).html("Dont' add to my Tweets");
					 $("#automylocg").html("Add to my Tweets");
					 tweetLat=$("#myloc").attr('lat');
					 tweetLong=$("#myloc").attr('long');
				 }
				 else {
					 $(this).html("Add to my Tweets");
					 tweetLat="";
					 tweetLong="";
				 }
			 });
			 
			 $("#automylocg").click(function(event){
				 event.preventDefault();
				 if ($(this).html()=="Add to my Tweets"){
					 $(this).html("Dont' add to my Tweets");
					 $("#automyloc").html("Add to my Tweets");
					 tweetLat=$("#mylocg").attr('lat');
					 tweetLong=$("#mylocg").attr('long');
				 }
				 else {
					 $(this).html("Add to my Tweets");
					 tweetLat="";
					 tweetLong="";
				 }
			 });
			 
			 $("#previewimg").click(function(event){
				 event.preventDefault();
				 if ($(this).html()=="off"){
					 $(this).html("on");
					 $("li.hentry center").parent().show();
					 
				 }
				 else {
					 $(this).html("off");
					 $("li.hentry center").parent().hide();
				 }
			 });
			 
			 $("#autoshort").click(function(event){
				 event.preventDefault();
				 if ($(this).html()=="off"){
					 $(this).html("on");
					 $("#accordion").hide();
					 autoShort();
				 }
				 else {
					 $("#accordion").show();
					 $(this).html("off");
				 }
			 });
			 
			 $("#yaml").click(function(event){
				 event.preventDefault();
				 if ($(this).html()=="off"){
					 $(this).attr('dir','rtl');
					 $(this).html("on");
					 Yamli.yamlify('tweet_box',{
	        				uiLanguage:'en',
	        				settingsPlacement:'hide',
	        				startMode:'on',
	        				uiFontFamily:'"Lucida Grande",sans-serif',
	        				settingsLinkColor:'#0084b4'}
			        	);

				 }
				 else {
					 Yamli.deyamlify('tweet_box');
					 $(this).html("off");
					 $(this).attr('dir','ltr');
				 }
			 });
			 
			 $('input[name=colortry]').click(function(event){
				 if ($('input[name=colortry]').is(':checked')){
					 $('#chclr').show();
				 }
				 else{
					 $('#chclr').hide();
				 }
			 });
			 
			 if ($('input[name=colortry]').is(':checked')){
				 $('#chclr').show();
			 }
			 else{
				 $('#chclr').hide();
			 }


			$('ul.nav li a').css('color', clr);
			$('#headimageText').css('color',clr);
			$('#headcloudText').css('color', clr);
			$('#headsourceText').css('color', clr);
			$('#fbfan').css('color', clr);
			$('#dayphotos').css('color', clr);
			
			$('#yaml').css('color',clr);
			$('#autoshort').css('color', clr);
			$('ul.ui-tabs-nav li.ui-state-default a').css('color', clr);
			$('ul.ui-tabs-selected li.ui-state-focus  a').css('color',clr);
			$('ul.ui-tabs-selected li.ui-state-hover  a').css('color',clr);
			$('ul.ui-tabs-nav li.ui-state-active a').css('color',clr);
			 $('.brown').css('color',clr);
			 $('#colorSelector').css('background-color',clr);
			 $('#colorSelector').ColorPickerSetColor(hexColor(clr));
			 
			 $('#colorSelector').ColorPicker({
					 onBeforeShow: function () {
						$(this).ColorPickerSetColor(hexColor(clr));
					},
					onShow: function (colpkr) {
						$(colpkr).fadeIn(500);
						return false;
					},
					onHide: function (colpkr) {
						$(colpkr).fadeOut(500);
						return false;
					},
					onChange: function (hsb, hex, rgb) {
						clr= '#' + hex;;
						$('ul.nav li a').css('color', clr);
						$('#headimageText').css('color', clr);
						$('#headcloudText').css('color', clr);
						$('#headsourceText').css('color', clr);
						$('#fbfan').css('color', clr);
						$('#dayphotos').css('color', clr);
						
						$('#yaml').css('color', clr);
						$('#autoshort').css('color', clr);
							$('#colorSelector').css('background-color',clr);
						$('ul.ui-tabs-nav li.ui-state-default a').css('color', clr);
						$('ul.ui-tabs-selected li.ui-state-focus  a').css('color',clr);
						$('ul.ui-tabs-selected li.ui-state-hover  a').css('color',clr);
						$('ul.ui-tabs-nav li.ui-state-active a').css('color',clr);
						setCookie('hlink',clr,  new Date(2020, 1, 1));
					}
				});
			 
			 
			 $('#colorLinkSelector').css('background-color',clrs);
			 $('#colorLinkSelector').ColorPickerSetColor(hexColor(clrs));
		 
			 $('#colorLinkSelector').ColorPicker({
				 onBeforeShow: function () {
					$(this).ColorPickerSetColor(hexColor(clrs));
				},
				onShow: function (colpkr) {
					$(colpkr).fadeIn(500);
					return false;
				},
				onHide: function (colpkr) {
					$(colpkr).fadeOut(500);
					return false;
				},
				onChange: function (hsb, hex, rgb) {
					clrs='#' + hex;
					$('a.screen-name').css('color', clrs);
					$('#colorLinkSelector').css('background-color',clrs);
					$('.entry-content a').css('color', clrs);
					$('#sourcelist a').css('color',clrs);
					$('#cloudlist a').css('color',clrs);
					setCookie('nlink',clrs,  new Date(2020, 1, 1))
				}
			});
			 
			 $("#resetlc").click(function(event){
				 	event.preventDefault();
					clr= '#a52a2a';
					$('ul.nav li a').css('color', clr);
					$('#headimageText').css('color', clr);
					$('#headcloudText').css('color', clr);
					$('#headsourceText').css('color', clr);
					$('#fbfan').css('color', clr);
					$('#dayphotos').css('color', clr);
					
					$('#yaml').css('color', clr);
					$('#autoshort').css('color', clr);
						$('#colorSelector').css('background-color',clr);
					$('ul.ui-tabs-nav li.ui-state-default a').css('color', clr);
					$('ul.ui-tabs-selected li.ui-state-focus  a').css('color',clr);
					$('ul.ui-tabs-selected li.ui-state-hover  a').css('color',clr);
					$('ul.ui-tabs-nav li.ui-state-active a').css('color',clr);
					setCookie('hlink',clr,  new Date(2020, 1, 1));
					
					clrs= "#224499";			
					$('a.screen-name').css('color', clrs);
					$('#colorLinkSelector').css('background-color',clrs);
					$('.entry-content a').css('color', clrs);
					$('#sourcelist a').css('color',clrs);
					$('#cloudlist a').css('color',clrs);
					setCookie('nlink',clrs,  new Date(2020, 1, 1))
			});
			 
			 
			 if ( $("#statusupdt").length > 0 ) {
				 var difft=140 - $('input[name=post]').val().length;	
		        $(this).parent().find('.char-counter').html(difft);
		        if (difft<0 ||  difft==140 ||(checkDMSelect()) ){
		        	 $('input[name=post]').attr('disabled','disabled');
		        	 $('input[name=post]').addClass('tweetbtndsbl');
		        	 if (difft<0 )
		        		 $(this).parent().find('.char-counter').css('color','red');
		        }
		        else {
		        	 $('input[name=post]').removeAttr('disabled');
		        	 $('input[name=post]').removeClass('tweetbtndsbl');
		        	 $(this).parent().find('.char-counter').css('color','rgb(204, 204, 204)');
		        }
			 }
			 
			 	twttr.anywhere(function (T) {
				    T(".username").hovercards({
				    	username: function(node) {
				        return "@"+node.text;
				      }
				    });
				    T(".screen-name").hovercards({
				    	expanded: true,
				    	username: function(node) {
				        return "@"+node.text;
				      }
				    });
				    
				   /* T(".photo").hovercards({
				    	username: function(node) {
				        return "@"+$(node).attr('user')	;
				      }
				    });*/
				  });
			 	
			 	$('#overall').click(function(event){
			 		event.preventDefault();
			 		//$(this).qtip("show");
			 	});
			 	
				$('#overall').qtip({
					position: { corner: { tooltip: 'topRight' } },
					show: { when: { event: 'click' }},
					hide: { when: { event: 'unfocus' }},
					style: { width: { max: 180, min :180  } , tip: { corner: 'topRight' },name: 'light' },
					content: {	
								url : 'top25.html'
						}
					});
				
				
				/* hide when clicked outside */
				$(document.body).bind('click',function(e) {
					if(showingParent) {
						var parentElement = showingParent[0];
						if(!$.contains(parentElement,e.target) || !parentElement == e.target) {
							hideMenu();
						}
					}
				});	
			 $("a[rel^='prettyPhoto']").prettyPhoto();
			 FB.init("844f8d24e68f0346f78c6af9ea04dfa7","xd_receiver.htm");
			 $("#fanboxtnlabs").attr('src','http://www.facebook.com/plugins/fan.php?id=152328187916&width=292&connections=10&header=true');
		});