/* All iTweet.net code is copyright Colby Palmer, 2010. Please do not copy or re-use this code without express permission. */

if (navigator.userAgent.indexOf('iPhone') !== -1) {
document.location = "http://itweet.net";
}

else if (screen.width <= 481) {
document.location = "http://itweet.net";
}

    /* Overriding Javascript's Alert Dialog */

	function alert(msg) {
	  $('#alert')
		.jqmShow()
		.find('div.jqmContent')
		  .html(msg);
	}
	
	$(document).ready(function(){
	
		$.hotkeys.add('s', function(){
				$("#searchInputMain").focus();
			});
	
		$('#alert').jqm({overlay: 50, modal: true, trigger: false});
	
		String.prototype.linkify = function() {
			return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=\+]+/, function(m) {
			return m.link(m);
			  }).replace(/@[A-Za-z0-9_]+/g, function(m) {
					return '<a href="#" class="twUser" rel="' + m.substr(1) + '">' + m + '</a>';
				}).replace(/#[a-zA-Z0-9\d\_\-\.\+]+/g, function(m) {
					var tagPref = $.cookie("tagPref");
					if(tagPref == 'pretty') {
						return '<a href="#" class="twTagLink" rel="' + m + '">' + m.substr(1) + '</a>';
					} else if(tagPref == 'killWord') {
						return '';
					} else if(tagPref == 'killAll') {
						return '<a href="#" class="twTagKill" rel="' + m + '">' + m + '</a>';
					} else {
						return '<a href="#" class="twTagLink" rel="' + m + '">' + m + '</a>';
					}
			 	});
			 }
			 
		  function relative_time(time_value) {
			  var values = time_value.split(" ");
			  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
			  var parsed_date = Date.parse(time_value);
			  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
			  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
			  delta = delta + (relative_to.getTimezoneOffset() * 60);
			  
			  var r = '';
			  if (delta < 60) {
				r = (parseInt(delta / 1)).toString() + ' seconds ago';
			  } else if(delta < 120) {
				r = 'a minute ago';
			  } else if(delta < (45*60)) {
				r = (parseInt(delta / 60)).toString() + ' minutes ago';
			  } else if(delta < (90*60)) {
				r = 'an hour ago';
			  } else if(delta < (24*60*60)) {
				r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
			  } else if(delta < (48*60*60)) {
				r = '1 day ago';
			  } else {
				r = (parseInt(delta / 86400)).toString() + ' days ago';
			  }

			  return r;
			}
			
		function relative_time2(time_value) {
			  var values = time_value.split(" ");
			  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
			  var parsed_date = Date.parse(time_value);
			  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
			  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
			  delta = delta + (relative_to.getTimezoneOffset() * 60);

			  var r = '';
				r = (parseInt(delta / -60)).toString() + ' minutes';

			  return r;
			}
		
		$(".jsWarning").remove();

		$(".postField").focus(function() {
			var postPref = $.cookie("postPref");
			if(postPref == "speedOff") {
				return false;
			} else {
			$.hotkeys.add('return', function(){
				var isRegPost = $(".postField").attr("id");
					if(isRegPost == "twMessage") {
						$(this).twPost();
					} else if(isRegPost == "twDirectMessage") {
						var directTo = $("#directID").val();
							if(directTo == "") {
								alert("Please enter the username of the person you'd like to DM!");
								$("#directID").focus();
								return false;
							} else {
							$(this).twDirectPost();
							}
					}
				});
			}
		});
		
		$(".postField").blur(function() {
			$.hotkeys.remove('return');
		});
		
		$("input").focus(function() {
			$.hotkeys.remove('s');
		});
		
		$("textarea").focus(function() {
			$.hotkeys.remove('s');
		});
		
		$("input").blur(function() {
			$.hotkeys.add('s', function(){
				$("#searchInputMain").focus();
			});
		});
		
		$("textarea").blur(function() {
			$.hotkeys.add('s', function(){
				$("#searchInputMain").focus();
			});
		});
		
		$("#shortenUrlBtn").click(function(){
			var tweet = $("#shortenUrlInput").val();
			tweet.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-,_]+\.[A-Za-z0-9-_,:%&\?\/.=\+]+/, function(m) {
				$.get("bitly.php",
					{ url: m },
					function(data){
						//alert(data);
						var newLink = data;
						$("#shortenUrlInput").val(newLink).select();
					});
				});
		});
		
		$("#expandUrlBtn").click(function(){
			var tweet = $("#expandUrlInput").val();
			$.get("bitly_expand.php",
				{ url: tweet },
				function(data){
					//alert(data);
					var newLink = data;
					$("#expandUrlInput").val(newLink).select();
				});
		});
		
		$("#statsUrlBtn").click(function(){
			$("#bitlyResults").remove();
			var tweet = $("#statsUrlInput").val();
			$.get("bitly_stats.php",
				{ url: tweet },
				function(data){
					//alert(data);
					$.get("bitly_expand.php",
					{ url: tweet },
					function(data1){
						var longUrl = data1;
						$("#statsUrlInput").after("<div id='bitlyResults'><span id='bitlyResultsClose'>close</span><div id='bitlyResultsTitle'><a href='"+longUrl+"' target='_blank'>"+longUrl+"</a></div><br /></div>");
						$("#bitlyResults").append(data);
						var el = $('#bitlyResults');
						el.html(el.html().replace(/_empty_/ig, ""));
						//el.html(el.html().replace(/http:\/\/direct<\/a>\/_ig, "<strong>Direct Link</strong>"));

					});
				});
		});
		
		jQuery.listen("click", "#bitlyResultsClose", function(){
			$("#bitlyResults").remove();
		});
		
		$("#urlTools").click(function(){
			$("#charsTools").removeClass("toolsSelect");
			$("#twitPicTools").removeClass("toolsSelect");
			$("#profileTools").removeClass("toolsSelect");
			$(this).toggleClass("toolsSelect");
			$("#charsToolsBox").slideUp();
			$("#twitPicBox").slideUp();
			$("#profileToolsBox").slideUp();
			$("#urlToolsBox").slideToggle();
		});
		
		$("#charsTools").click(function(){
			$("#urlTools").removeClass("toolsSelect");
			$("#twitPicTools").removeClass("toolsSelect");
			$("#profileTools").removeClass("toolsSelect");
			$(this).toggleClass("toolsSelect");
			$("#urlToolsBox").slideUp();
			$("#twitPicBox").slideUp();
			$("#profileToolsBox").slideUp();
			$("#charsToolsBox").slideToggle();
		});
		
		$("#twitPicTools").click(function(){
			$("#urlTools").removeClass("toolsSelect");
			$("#charsTools").removeClass("toolsSelect");
			$("#profileTools").removeClass("toolsSelect");
			$(this).toggleClass("toolsSelect");
			$("#urlToolsBox").slideUp();
			$("#charsToolsBox").slideUp();
			$("#profileToolsBox").slideUp();
			$("#twitPicBox").slideToggle();
		});
		
		$("#profileTools").click(function(){
			$("#urlTools").removeClass("toolsSelect");
			$("#charsTools").removeClass("toolsSelect");
			$("#twitPicTools").removeClass("toolsSelect");
			$(this).toggleClass("toolsSelect");
			$("#urlToolsBox").slideUp();
			$("#charsToolsBox").slideUp();
			$("#twitPicBox").slideUp();
			$("#profileToolsBox").slideToggle();
		});
		
		$(".specialChar").click(function(){
			$(this).select();
		});
			
		var twitPicMessage = $("#twitPicMessage").val();
		
		var twitPicUpload = $("#twitPicUploadBtn").upload({
			name: 'media',
			method: 'post',
			enctype: 'multipart/form-data',
			action: 'twitpic.php',
			params: { message: $("#twitPicMessage").val() },
			autoSubmit: false,
			onSelect: function() {
				var twitPicMessage = $("#twitPicMessage").val();
				twitPicUpload.set({
					params: {message: twitPicMessage}
				});
			},
			onSubmit: function() {
				var twitPicMessage = $("#twitPicMessage").val();
				$('#twitPicInfo').text("Uploading...please wait!");
			},
			onComplete: function(response) {
				//data contains the response from the action url
				if(response == "error"){
					alert("There was an error. Please make sure that you are uploading a valid jpg, gif or png image that is less than 4MB in size and try again.");
					$('#twitPicInfo').empty();
					return false;
				} else {
					$('#twitPicInfo').text('Picture uploaded!');
					var twitPicMessage = $("#twitPicMessage").val();
					if(twitPicMessage == ""){
						var twitPicMessage2 = "";
					} else {
						var twitPicMessage2 = " - "+twitPicMessage;
					}
					var twitPicTweet = response+twitPicMessage2;
					var token = $("#sessionToken").val();
					$.post("post.php",
						{ message: twitPicTweet, token: token },
						function(data){
							$(".counter").text("114 characters remaining");
							$("#twitPicMessage").attr("value","");
							$(".profileUpdatesNum").plusOne();
							$(".counter2").text("140 characters remaining");
							$("#twitPicBox").slideUp();
							$("#twitPicTools").removeClass("toolsSelect");
							if($.cookie("page") == 'friends'){
								$("#tweets").friendRefresh();
								}
							$('#twitPicInfo').empty();
							$(".postField").focus();
						});
				}
			}
		});
		
		jQuery.fn.twitPicCounter = function() {
		  $(this).each(function() {
			var max = '114';
			var val = $(this).attr('value');
			var cur = '0';
			if(val) {
			  cur = val.length;
			 }
			var left = max-cur;
			$("#twitPicCaption").append("<span class='counter2'>"+ left.toString()+"</span>");
			var c = $(".counter2");
			//c.css("float","right");
			c.css("font-size","10px");
			c.append(" characters remaining");
		 
			$(this).keyup(function(i) {
			  var max = '114';
			  var val = $(this).attr('value');
			  var cur = 0;
			  if(val) {
				cur = val.length;
				}
			  var left = max-cur;
			  $(".counter2").text(left.toString());
			  $(".counter2").append(" characters remaining");
			  if(left < 0){
			  	$(".postField").css("color","#a00");
			  	} else {
			  	$(".postField").css("color","black");
			  	}
			  return this;
			});
		  });
		  return this;
		}
		
		$("#twitPicMessage").twitPicCounter();
		
		jQuery.fn.setLocation = function() {
			var location = $("#locInputMain").val();
			var token = $("#sessionToken").val();
			$.post("location.php",
			 { location: location, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				  }
				alert("Location Updated: " + location);
			}, "json");
		}
		
		$("#locBtnGo").click(function(){
			var location = $("#locInputMain").val();
			if(location == "") {
				alert("Please enter your location.");
				return false;
			}
			$(this).setLocation();
			$("#locInputMain").attr("value","");
			$("#currentLoc").html(location);
			$(".profileLocation").html(location);
			return false;
			});
		
		jQuery.listen("click", "#locContainer", function(){
			$.getJSON("login.php",
				  function(data){
				  	if(data.error){
				  	alert(data.error);
				  	return false;
				    }
				  	$("#currentLoc").html(data.location);
				  });
			return false;
		});
		
		$("#locInputMain").focus(function() {
			$.hotkeys.add('return', function(){
				var location = $("#locInputMain").val();
				if(location == "") {
					alert("Please enter your location.");
					return false;
				}
				$(this).setLocation();
				$("#locInputMain").attr("value","");
				$("#currentLoc").html(location);
				$(".profileLocation").html(location);
				return false;
			});
		});
		
		$("#locInputMain").blur(function() {
			$.hotkeys.remove('return');
		});
		
		jQuery.fn.setName = function() {
			var name = $("#nameInputMain").val();
			var token = $("#sessionToken").val();
			$.post("profile_update.php",
			 { name: name, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				  }
				alert("Name Updated: " + name);
			}, "json");
		}
		
		$("#nameBtnGo").click(function(){
			var name = $("#nameInputMain").val();
			if(name == "") {
				alert("Please enter your name.");
				return false;
			}
			$(this).setName();
			$("#nameInputMain").attr("value","");
			$(".profileFullName").html(name);
			return false;
			});
			
		$("#nameInputMain").focus(function() {
			$.hotkeys.add('return', function(){
				var name = $("#nameInputMain").val();
				if(name == "") {
					alert("Please enter your name.");
					return false;
				}
				$(this).setName();
				$("#nameInputMain").attr("value","");
				$(".profileFullName").html(name);
				return false;
			});
		});
		
		$("#nameInputMain").blur(function() {
			$.hotkeys.remove('return');
		});
		
		jQuery.fn.setUrl = function() {
			var url = $("#urlInputMain").val();
			var token = $("#sessionToken").val();
			$.post("profile_update.php",
			 { url: url, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				  }
				alert("URL Updated: " + url);
			}, "json");
		}
		
		$("#urlBtnGo").click(function(){
			var url = $("#urlInputMain").val();
			if(url == "") {
				alert("Please enter your URL.");
				return false;
			}
			$(this).setUrl();
			$("#urlInputMain").attr("value","");
			$(".profileUrl").html("<strong>Web: </strong>"+url.linkify());
			return false;
			});
			
		$("#urlInputMain").focus(function() {
			$.hotkeys.add('return', function(){
				var url = $("#urlInputMain").val();
				if(url == "") {
					alert("Please enter your URL.");
					return false;
				}
				$(this).setUrl();
				$("#urlInputMain").attr("value","");
				$(".profileUrl").html("<strong>Web: </strong>"+url.linkify());
				return false;
			});
		});
		
		$("#urlInputMain").blur(function() {
			$.hotkeys.remove('return');
		});
		
		jQuery.fn.setBio = function() {
			var bio = $("#bioInputMain").val();
			var token = $("#sessionToken").val();
			$.post("profile_update.php",
			 { description: bio, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				  }
			alert("Bio Updated: " + bio);
			}, "json");
		}
		
		$("#bioBtnGo").click(function(){
			var bio = $("#bioInputMain").val();
			if(bio == "") {
				alert("Please enter your bio description.");
				return false;
			}profile_update.php
			$(this).setBio();
			$("#bioInputMain").attr("value","");
			$(".profileBio").html("<strong>Bio: </strong>"+bio.linkify());
			return false;
			});
			
		$("#bioInputMain").focus(function() {
			$.hotkeys.add('return', function(){
				var bio = $("#bioInputMain").val();
				if(bio == "") {
					alert("Please enter your bio description.");
					return false;
				}
				$(this).setBio();
				$("#bioInputMain").attr("value","");
				$(".profileBio").html("<strong>Bio: </strong>"+bio.linkify());
				return false;
			});
		});
		
		$("#bioInputMain").blur(function() {
			$.hotkeys.remove('return');
		});
		
		$(".downLink").click(function(){
			$.scrollTo('#footer', "slow");
			return false;
		});
		
		$(".upLink").click(function(){
			$.scrollTo('#twitterContainer', "slow");
			return false;
		});
		
		$("#notLoggedIn").click(function(){
			$("#twLoginForm").slideDown("slow");
			return false;
		});
		
		$("#clearReplies").click(function(){
			$("#replyCatcher > .row").slideUp("slow").remove();
			$("#replyNum").html("0");
		});
		
		jQuery.listen("click", ".twFriends", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$("#twitterNav > li > a:first").addClass("navSelected");
			$("#pageNumber").html("1");
			$("#tweets").friendLoad();
			$(".postField").focus();
			return false;
		});
		
		$("#emailColby").click(function(){
			var messageVal = $("#emailColbyMsg").val();
			var usernameVal = $("#profileScreenName").html();
			var token = $("#sessionToken").val();
			if(messageVal == ""){
				alert("Please enter a message!");
				return false;
			}
			$.post("contactForm.php",
				{ username: usernameVal, message: messageVal, token: token },
					function(data){
						$("#emailColbyMsg").fadeOut("normal", function() {				   
							$("#emailColbyMsg").attr("value","");
							$("#emailColbyMsg").fadeIn("normal");
							alert("Message sent! Thanks!");
						});
					});
					return false;
			  });
			  
		$(".colRToggle").click(function(){
			var myContainer = $(this).parent();
			var imgState = $(this).attr("src");
			$(myContainer).children(".colRcontainer").slideToggle();
			if(imgState == "images/show_pane.png"){
				$(this).attr("src", "images/hide_pane.png");
			}
			if(imgState == "images/hide_pane.png"){
				$(this).attr("src", "images/show_pane.png");
			}
			return false;
		});
		
		$(".colRSubTitle").click(function(){
			var myContainer = $(this).parent();
			var imgState = $(myContainer).children(".colRToggle").attr("src");
			$(myContainer).children(".colRcontainer").slideToggle();
			if(imgState == "images/show_pane.png"){
				$(myContainer).children(".colRToggle").attr("src", "images/hide_pane.png");
			}
			if(imgState == "images/hide_pane.png"){
				$(myContainer).children(".colRToggle").attr("src", "images/show_pane.png");
			}
			return false;
		});
		
		jQuery.listen( "click", ".rtBtn", function(){
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$("#twPostBtn").val("post");
						var isRegPost = $(".postField").attr("id");
						if(isRegPost == "twDirectMessage") {
							$("#directTo").slideUp("slow");
							$("#directID").val("");
							$(".regPost").attr("src", "images/sendDirect.png");
							$(".regPost").attr("class", "directPost");
							$("#twDirectMessage").attr("id", "twMessage");
							$("#twDirectPostBtn").attr("id", "twPostBtn").val("post");
						}
						var rtText = $(this).parent().children(".twText").text();
						var retweet = "RT @"+$(this).attr('rel')+": "+rtText;
						$("#twMessage").val(retweet);
						var max = '140';
						var charcount = retweet.length;
						  if(charcount > max){
							$(".postField").css("color","#a00");
							} else {
							$(".postField").css("color","black");
							}
						var left = max-charcount;
						$(".counter").text(left.toString());
			  			$(".counter").append(" characters remaining");
						$(".postField").focus();
						return false;
						});
						
        jQuery.listen( "click", ".rtAdBtn", function(){
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$("#twPostBtn").val("post");
						var isRegPost = $(".postField").attr("id");
						if(isRegPost == "twDirectMessage") {
							$("#directTo").slideUp("slow");
							$("#directID").val("");
							$(".regPost").attr("src", "images/sendDirect.png");
							$(".regPost").attr("class", "directPost");
							$("#twDirectMessage").attr("id", "twMessage");
							$("#twDirectPostBtn").attr("id", "twPostBtn").val("post");
						}
						var rtText = $(this).parent().children(".twText").text();
						var retweet = "RT @"+$(this).attr('rel')+": "+rtText;
						$("#twMessage").val(retweet);
						var max = '140';
						var charcount = retweet.length;
						  if(charcount > max){
							$(".postField").css("color","#a00");
							} else {
							$(".postField").css("color","black");
							}
						var left = max-charcount;
						$(".counter").text(left.toString());
			  			$(".counter").append(" characters remaining");
						$(".postField").focus();
						return false;
						});
		
		jQuery.listen( "click", ".replyBtn", function(){
						var page = $.cookie("page");
						var isRegPost = $(".postField").attr("id");
						if(isRegPost == "twDirectMessage") {
							$("#directTo").hide();
							$("#directID").val("");
							$(".regPost").attr("src", "images/sendDirect.png");
							$(".regPost").attr("class", "directPost");
							$("#twDirectMessage").attr("id", "twMessage");
							$("#twDirectPostBtn").attr("id", "twPostBtn").val("post");
						}
						var replyTo = "@"+$(this).attr('id')+" ";
						var replyToId = $(this).attr('title');
						var replyTweet = $(this).parent(".row").children(".twText").html();
						if((page !== "profile") && (page !== "direct") && (page !== "followers") && (page !== "following") && (page !== "directSent")){
							$("#inReplyName").html(replyTo);
							$("#inReplyTweet").html(replyTweet);
							$("#inReplyToId").val(replyToId);
							$("#inReplyBox").slideDown();
							$("#twPostBtn").val("reply");
						}
						$("#twMessage").val(replyTo);
						$(".postField").focus();
						return false;
						});
						
					$("#inReplyCancel").click(function(){
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$("#twPostBtn").val("post");
					});
					
		jQuery.listen( "click", ".replyAdBtn", function(){
						var page = $.cookie("page");
						var isRegPost = $(".postField").attr("id");
						if(isRegPost == "twDirectMessage") {
							$("#directTo").hide();
							$("#directID").val("");
							$(".regPost").attr("src", "images/sendDirect.png");
							$(".regPost").attr("class", "directPost");
							$("#twDirectMessage").attr("id", "twMessage");
							$("#twDirectPostBtn").attr("id", "twPostBtn").val("post");
						}
						var replyTo = "@"+$(this).attr('id')+" ";
						var replyToId = $(this).attr('title');
						var replyTweet = $(this).parent(".row").children(".twText").html();
						if((page !== "profile") && (page !== "direct") && (page !== "followers") && (page !== "following") && (page !== "directSent")){
							$("#inReplyName").html(replyTo);
							$("#inReplyTweet").html(replyTweet);
							$("#inReplyToId").val(replyToId);
							$("#inReplyBox").slideDown();
							$("#twPostBtn").val("reply");
						}
						$("#twMessage").val(replyTo);
						$(".postField").focus();
						return false;
						});

					$("#inReplyCancel").click(function(){
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$("#twPostBtn").val("post");
					});
						
		jQuery.listen( "click", ".favBtn", function(){
						$(this).favPost();
						return false;
						});
						
    	jQuery.listen( "click", ".favAdBtn", function(){
    					$(this).favAdPost();
    					return false;
    					});
						
		jQuery.listen( "click", ".favUnstar", function(){
						$(this).favDestroy();
						return false;
						});
						
		jQuery.listen( "click", ".destroyBtn", function(){
						$(this).destroyTweet();
						return false;
						});
						
		jQuery.listen( "click", ".destroyReply", function(){
						$(this).parent().fadeOut("slow").remove();
						$("#replyNum").minusOne();
						var replyNum = $("#replyNum").html();
						if(replyNum == ""){
							$("#replyNum").html("0");
						}
						return false;
						});
						
		jQuery.listen( "click", ".destroyDirect", function(){
						$(this).destroyDirect();
						return false;
						});
		
		jQuery.listen( "click", ".twNotsOn", function(){
						$(this).notsOn();
						return false;
						});
		
		jQuery.listen( "click", ".twNotsOff", function(){
						$(this).notsOff();
						return false;
						});
						
		jQuery.listen( "click", ".followOn", function(){
						$(this).followOn();
						return false;
						});
		
		jQuery.listen( "click", ".followOff", function(){
						$(this).followOff();
						return false;
						});
						
		jQuery.listen( "click", ".blockOn", function(){
						$(this).blockOn();
						return false;
						});
		
		jQuery.listen( "click", ".blockOff", function(){
						$(this).blockOff();
						return false;
						});
						
		jQuery.listen( "click", "#followCheck", function(){
						var them = $(this).parent().attr("rel");
						var you = $("#profileScreenName").html();
						$.getJSON("friendship_exists.php",
							{ user_a: them, user_b: you },
							function(data){
								if(data.error){
								alert(data.error);
								return false;
							  	}
							  if(data == "true") {
							  	$("#followCheck").html(them+" is following you!");
							  	$("#followCheck").attr("id", "followChecked");
							  }
							  if(data == "false") {
							  	$("#followCheck").html(them+" is not following you!");
							  	$("#followCheck").attr("id", "followChecked");
							  }
							  if(data == true) {
							  	$("#followCheck").html(them+" is following you!");
							  	$("#followCheck").attr("id", "followChecked");
							  }
							  if(data == false) {
							  	$("#followCheck").html(them+" is not following you!");
							  	$("#followCheck").attr("id", "followChecked");
							  }
							  return false;
							  });
						return false;
						});
						
		jQuery.listen( "click", ".twSttgNots", function(){
						$(".twSttgNots").removeClass("optSelect");
						$(this).addClass("optSelect");
						$(this).setDevice();
						return false;
						});
						
		jQuery.listen( "click", "#twSttgSkinCP", function(){
						$.cookie('skin', 'default', { expires: 60 });
						$(".twSttgSkin").removeClass("optSelect");
						$(this).addClass("optSelect");
						$("#styleInfo").remove();
						if ($.browser.safari) {
							document.location = "http://itweet.net/web/";
						}
						if ($.browser.msie) {
							document.location = "http://itweet.net/web/";
						}
						return false;
						});
		
		jQuery.listen( "click", "#twSttgSkinTw", function(){
						$.cookie('skin', 'twitter', { expires: 60 });
						$(".twSttgSkin").removeClass("optSelect");
						$(this).addClass("optSelect");
						$(this).getTwSkin();
						return false;
						});
						
		jQuery.listen( "click", ".twSttgTags", function(){
						$(".twSttgTags").removeClass("optSelect");
						$(this).addClass("optSelect");
						var tagPref = $(this).attr("rel");
						$.cookie('tagPref', tagPref, { expires: 60 });
						if(tagPref == "killAll") {
							alert("You will no longer see any tweets with hashtags!");
						} else if(tagPref == "killWord") {
							alert("You will no longer see any hashtagged words!");
						}
						return false;
						});
						
		jQuery.listen( "click", ".twSttgPost", function(){
						$(".twSttgPost").removeClass("optSelect");
						$(this).addClass("optSelect");
						var postPref = $(this).attr("rel");
						$.cookie('postPref', postPref, { expires: 60 });
						if(postPref == "speedOn") {
							alert("Speed Tweet enabled! Return key will now post tweets and D messages.");
						} else if(postPref == "speedOff") {
							alert("You must now click the &quot;post&quot; or &quot;send dm&quot; button to post messages.");
						}
						return false;
						});
						
		jQuery.listen( "click", ".twSttgAuto", function(){
						$(".twSttgAuto").removeClass("optSelect");
						$(this).addClass("optSelect");
						var autoPref = $(this).attr("rel");
						$.cookie('autoPref', autoPref, { expires: 60 });
						var page = $.cookie("page");
						if((autoPref == 'auto_on') && (page == 'friends')){
							$(".colLSubTitle").remove();
							$("#colLRefresh").remove();
						}
						if((autoPref == 'auto_off') && (page == 'friends')){
        			$("<img src='images/refresh_up.png' id='colLRefresh' class='twFriends' /><h2 class='colLSubTitle'>Autorefresh is off!</h2>").prependTo("#tweets");
        			}
						return false;
						});
						
		jQuery.listen( "click", ".twTest", function(){
						$.getJSON("http://twitter.com/help/test.json?callback=?",
							function(data){
								if(data.error){
								alert(data.error);
								return false;
							  	}
							  if(data == "ok") {
							  	alert("Test ping to Twitter returned successfully!");
							  } else {
							  	alert("Oh noes! Test ping to Twitter = FAIL");
							  }
							  });
						});
						
		jQuery.listen( "click", ".twMaintCheck", function(){
						$.getJSON("http://twitter.com/help/downtime_schedule.json?callback=?",
							function(data){
							  if(data.error == null){
								alert("There is no scheduled maintenance posted.");
								} else {
								alert(data.error);
								return false;
							  	}
							});
						});
						
		jQuery.fn.rateCount = function() {
			$.getJSON("rateCount.php",
				function(data){
					if(data.error){
						alert(data.error);
						return false;
					}
					if(data == "no_session"){
				  	    document.location = "http://itweet.net/web/";
				  	}
					$("#rateCount").html(data.remaining_hits);
					$("#rateTotal").html(data.hourly_limit);
					var rateTimeLeft = relative_time2(data.reset_time);
					$("#rateTimeRemaining").html(rateTimeLeft);
					return false;
				});
		}
						
		$("#twRateCheck").click(function(){
			$.getJSON("rateCount.php",
				function(data){
					if(data.error){
						alert(data.error);
						return false;
						}
					var rateLeft = data.remaining_hits;
					var rateTotal = data.hourly_limit;
					var rateTimeLeft = relative_time2(data.reset_time);
					alert(rateLeft + " of " + rateTotal + " hits remaining. Counter will reset in "+ rateTimeLeft);
					return false;
				});
		});
						
		jQuery.listen( "click", ".twAvatar", function(){
						var myRow = $(this).parent();
						$(myRow).children(".tweetBio").slideToggle();
						return false;
						});
						
		jQuery.listen( "click", ".twUser", function(){
						$("#pageNumber").html("1");
						$("#pagination").show();
						$(this).getUser();
						return false;
						});
						
		jQuery.listen( "click", ".profileScreenName", function(){
						$("#pageNumber").html("1");
						$(this).getUser();
						return false;
						});
						
		jQuery.listen( "click", ".twProfile", function(){
						$(this).getProfile();
						return false;
						});
						
		jQuery.listen( "click", ".twProfileSolo", function(){
						$(this).getProfile();
						return false;
						});
						
		jQuery.listen( "click", ".twName", function(){
						$("#pageNumber").html("1");
						$("#pagination").show();
						$(this).getUser();
						return false;
						});
						
		jQuery.listen( "click", "#twPostBtn", function(){
						$(this).twPost();
						return false;
						});
		
		jQuery.listen( "click", "#twDirectPostBtn", function(){
						$(this).twDirectPost();
						return false;
						});
						
		jQuery.listen( "click", "#colRRefresh", function(){
						$(".profile").slideUp()
						.after('<img src="images/loading.gif" alt="Loading" id="loadingR" />')
						.remove();
						$(this).setProfile();
						return false;
						});
		
		jQuery.listen( "click", ".directPost", function(){
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$("#twPostBtn").val("post");
						$(".postField").val("");
						$("#directTo").slideDown("slow", function(){
							$("#directID").focus();
						});
						$(this).attr("src", "images/sendDirect_down.png");
						$(this).attr("class", "regPost");
						$("#twMessage").attr("id", "twDirectMessage");
						$("#twPostBtn").attr("id", "twDirectPostBtn").val("send dm");
						});
		
		jQuery.listen( "click", ".regPost", function(){
						$("#directID").val("");
						$(".postField").val("");
						$(this).attr("src", "images/sendDirect.png");
						$(this).attr("class", "directPost");
						$("#twDirectMessage").attr("id", "twMessage");
						$("#twDirectPostBtn").attr("id", "twPostBtn").val("post");
						$("#directTo").hide();
						$(".postField").focus();
						});
						
		jQuery.listen("click", ".sendDirect", function(){
		                $("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						var directTo = $(this).attr("title");
						var isRegPost = $(".postField").attr("id");
						$(".postField").val("");
						if(isRegPost == "twMessage") {
							$("#directTo").slideDown("slow", function(){
								$("#directID").val(directTo);
								$(".postField").focus();
							});
							$(".directPost").attr("src", "images/sendDirect_down.png");
							$(".directPost").attr("class", "regPost");
							$("#twMessage").attr("id", "twDirectMessage");
							$("#twPostBtn").attr("id", "twDirectPostBtn").val("send dm");
						} else {
							$("#directID").val(directTo);
							$(".postField").focus();
						} 
		});
		
		jQuery.listen("click", ".searchFrom", function(){
			$("#searchInputMain").val("from:");
			$("#searchInputMain").focus();
			return false;
		});
		
		jQuery.listen("click", ".searchTo", function(){
			$("#searchInputMain").val("to:");
			$("#searchInputMain").focus();
			return false;
		});
		
		jQuery.listen("click", ".searchRefs", function(){
			$("#searchInputMain").val("@");
			$("#searchInputMain").focus();
			return false;
		});
		
		jQuery.listen("click", ".searchTag", function(){
			$("#searchInputMain").val("#");
			$("#searchInputMain").focus();
			return false;
		});
		
		jQuery.listen("click", ".inReplyTo", function(){
			var tweetId = $(this).attr("id");
			var tweetRow = $(this).parent();
			var replyBtn = $(this);
			var replyVar = "status.php?status="+tweetId;
			$.get(replyVar,
				 function(data){
				 	$(replyBtn).hide();
				  	$(tweetRow).after(data);
			});
		});
			
		jQuery.listen("click", ".twPublic", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pagination").hide();
			$(this).twPublic();
			return false;
			});
		
		jQuery.fn.twPublic = function() {
			$.cookie('page', 'public');
			$("#pagination").hide();
			$("#tweets").empty();
			$("#tweets").html('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			$.get("public.php",
				function(data){
    				$("#loading").remove();
    				$(".row").remove();
    				$(".colLSubTitle").remove();
    				$("#colLRefresh").remove();
    				$(".colLSubTitleLink").remove();
    				$("<h2 class='colLSubTitle' id='publicTitle'>Public Timeline</h2><img src='images/refresh_up.png' id='colLRefresh' class='twPublic' />").appendTo("#tweets");
    				$("#tweets").append(data);
        		});
		return false;
		}
		
		jQuery.listen("click", ".twReplies", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twReplies();
			return false;
			});
		
		jQuery.fn.twReplies = function() {
			$.cookie('page', 'replies');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").html('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("replies.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
			  	if(data == "no_session"){
			  	    document.location = "http://itweet.net/web/";
			  	}
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='directTitle'>Replies</h2><img src='images/refresh_up.png' id='colLRefresh' class='twReplies' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen( "click", ".twDirect", function(){
			$("#twitterNav > li > *").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twDirect();
			return false;
			});
		
		jQuery.fn.twDirect = function(){
			$.cookie('page', 'direct');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("direct.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='directTitle'>Direct Messages</h2><img src='images/refresh_up.png' id='colLRefresh' class='twDirect' /><span class='colLSubTitleLink twDirectSent'>view sent messages</span>").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen( "click", ".twDirectSent", function(){
			$("#pageNumber").html("1");
			$(this).twDirectSent();
			return false;
			});
		
		jQuery.fn.twDirectSent = function(){
			$.cookie('page', 'directSent');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("directSent.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='directTitle'>Direct Messages - Sent</h2><img src='images/refresh_up.png' id='colLRefresh' class='twDirectSent' /><span class='colLSubTitleLink twDirect'>view direct message inbox</span>").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen( "click", ".twFavs", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twFavs();
			return false;
			});
		
		jQuery.fn.twFavs = function(){
			$.cookie('page', 'favs');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("favs.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle'>Favorites</h2><img src='images/refresh_up.png' id='colLRefresh' class='twFavs' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen( "click", ".twFollowing", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twFollowing();
			return false;
			});
		
		jQuery.fn.twFollowing = function(){
			$.cookie('page', 'following');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("following.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle'>Following</h2><img src='images/refresh_up.png' id='colLRefresh' class='twFollowing' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen( "click", ".twFollowers", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twFollowers();
			return false;
			});
		
		jQuery.fn.twFollowers = function(){
			$.cookie('page', 'followers');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("followers.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle'>Followers</h2><img src='images/refresh_up.png' id='colLRefresh' class='twFollowers' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen("click", ".twArchive", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).addClass("navSelected");
			$("#pageNumber").html("1");
			$(this).twArchive();
			return false;
			});
		
		jQuery.fn.twArchive = function() {
			$.cookie('page', 'archive');
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("archive.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='archiveTitle'>Archive</h2><img src='images/refresh_up.png' id='colLRefresh' class='twArchive' />").appendTo("#tweets");
				$("#tweets").append(data);
				  $("#pagination").paginate();
				});
		return false;
		}
		
		jQuery.fn.twAd = function() {
		    var un = $("#profileScreenName").html();
			$.get("140proof.php",
			    { "u": un },
    			function(data){
    			    if(data == "no-ads"){
    			        return false;
    			    }
                    // var tweetad = '<div class="row ad_row"><a href="'+json.ads[0].action_urls.click_url+'" target="_blank"><img src="'+json.ads[0].image_url+'" class="twAvatar"></a><div class="twName" rel="'+json.ads[0].user.screen_name+'"><a href="'+json.ads[0].action_urls.click_url+'" target="_blank">'+json.ads[0].user.name+'</a></div><div class="twTime">'+json.ads[0].byline+'</div><div class="twText">'+json.ads[0].text.linkify()+'</div></div>';
    			    $("#tweets").prepend(data);
    			    return false;
    			});
            return false;
		}
		
		jQuery.listen("click", ".twTagLink", function(){
			var searchTerm = $(this).attr("rel");
			if(searchTerm == "#") {
				alert("Doh! Invalid hashtag!");
				return false;
			}
			$("#searchInputMain").val(searchTerm);
			$("#pageNumber").html("1");
			$("#pageNumber").attr("rel", null);
			$("#pageNumber").attr("title", null);
			$("#pageOlder").attr("rel", "1");
			$("#pageNewer").attr("rel", "2");
			$(this).twSearch();
			return false;
			});
		
		$("#searchBtnGo").click(function(){
			var searchTerm = $("#searchInputMain").val();
			if(searchTerm == "") {
				alert("Please enter a search term.");
				return false;
			}
			$("#pageNumber").html("1");
			$("#pageNumber").attr("rel", null);
			$("#pageNumber").attr("title", null);
			$("#pageOlder").attr("rel", "1");
			$("#pageNewer").attr("rel", "2");
			$(this).twSearch();
			return false;
			});
			
		$("#searchInputMain").focus(function() {
			$.hotkeys.add('return', function(){
				var searchTerm = $("#searchInputMain").val();
				if(searchTerm == "") {
					alert("Please enter a search term.");
					return false;
				}
				$("#pageNumber").html("1");
				$("#pageNumber").attr("rel", null);
				$("#pageNumber").attr("title", null);
				$("#pageOlder").attr("rel", "1");
				$("#pageNewer").attr("rel", "2");
				$(this).twSearch();
				return false;
			});
		});
		
		$("#searchInputMain").blur(function() {
			$.hotkeys.remove('return');
		});
		
		jQuery.listen("click", ".searchTrends", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$.cookie('page', 'search');
			$("#tweets").empty();
			$("#pagination").hide();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			$.getJSON("http://search.twitter.com/trends.json?callback=?",
				function(data){
					$("#loading").remove();
					$(".row").remove();
					$(".colLSubTitle").remove();
					$("#colLRefresh").remove();
					$(".colLSubTitleLink").remove();
					$("<h2 class='colLSubTitle'>Twitter Trends</h2><img src='images/refresh_up.png' id='colLRefresh' class='searchTrends' /><span class='colLSubTitleLink'>as of "+data.as_of+"</span>").appendTo("#tweets");
					$.each(data.trends, function(i,item){
						$("<div class='trendLink'>"+item.name+"</div>").appendTo("#tweets");
					});
				});
			return false;
		});
		
		jQuery.listen("click", ".trendLink", function(){
			var searchTerm = $(this).html();
			if(searchTerm == "") {
				alert("D'oh! Invalid search term!");
				return false;
			}
			$("#searchInputMain").val(searchTerm);
			$("#pageNumber").html("1");
			$("#pageNumber").attr("rel", null);
			$("#pageNumber").attr("title", null);
			$("#pageOlder").attr("rel", "1");
			$("#pageNewer").attr("rel", "2");
			$(this).twSearch();
			return false;
			});
		
		jQuery.fn.twSearch = function() {
			$.cookie('page', 'search');
			$("#twitterNav > li > a").removeClass("navSelected");
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			var searchTerm = $("#searchInputMain").val();
			$.get("search.php",
				{ q: searchTerm, page: pageNum },
				function(data){
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='searchTitle'>Twitter Search: </h2>").appendTo("#tweets");
				$("#searchTitle").append(searchTerm);
				$("#pageOlder").attr("rel", (parseInt(pageNum) + 1));
				$("#pageNewer").attr("rel", (parseInt(pageNum) - 1));
				$("#pageNumber").attr("rel", searchTerm);
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
		return false;
		}
		
		jQuery.fn.getUser = function() {
			$.cookie('page', 'user');
			var userRequested = $(this).attr("rel");
			if(userRequested == undefined) {
				var userRequested = $("#colLRefresh").attr("rel");
			}
			$("#twitterNav > li > a").removeClass("navSelected");
			$("#tweets").empty();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("user.php",
				{ userRequested: userRequested, page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle'>User Timeline - @"+userRequested+"</h2><img src='images/refresh_up.png' id='colLRefresh' class='twUser' rel='"+userRequested+"' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.fn.getProfile = function() {
			var userRequested = $(this).attr("rel");
			$.cookie('page', 'profile');
			$("#twitterNav > li > a").removeClass("navSelected");
			$("#tweets").empty();
			$("#pagination").hide();
			$("#tweets").html('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			$.ajax({
				type: "GET",
				url: "show.php",
				data: "userRequested=" + userRequested,
				cache: false,
				success: function(data){
				$(".row").remove();
				$(".colLSubTitle").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' rel='"+userRequested+"'>User Profile: @"+userRequested+"</h2>").appendTo("#tweets");
				$("#tweets").append(data);
				}
				});
				var pageNum = 1;
		    $.get("user.php",
				{ userRequested: userRequested, page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#tweets").append(data);
				}
			);
            // $("#rateCount").rateCount();
		return false;
		}
		
		$(".postField").focus();
		
		jQuery.fn.counter = function() {
		  $(this).each(function() {
			var max = '140';
			var val = $(this).attr('value');
			var cur = '0';
			if(val) // value="", or no value at all will cause an error
			  cur = val.length;
			var left = max-cur;
			$(this).after("<div class='counter'>"
			  + left.toString()+"</div>");
			var c = $(this).next(".counter");
			c.css("float","left");
			c.css("margin","3px 0 0 5px");
			c.append(" characters remaining");
		 
			$(this).keyup(function(i) {
			  var max = '140';
			  var val = $(this).attr('value');
			  var cur = 0;
			  if(val) {
				cur = val.length;
				}
			  var left = max-cur;
			  $(this).next(".counter").text(left.toString());
			  $(".counter").append(" characters remaining");
			  if(left < 0){
			  	$(".postField").css("color","#a00");
			  	} else {
			  	$(".postField").css("color","black");
			  	}
			  return this;
			});
		  });
		  return this;
		}
		
		$("#twPost textarea").counter();
		
		jQuery.fn.friendRefresh = function() {
			$(".errorMessage").remove();
			var since_id = $(".favBtn:first").attr("id");
			var lastRow = $(".row:first");
			$.get("friends_since.php",
				{ since_id: since_id },
				function(data){
					if(data.error){
				  	// alert(data.error);
				  	alert("iTweet.net has just installed a security upgrade! Please log out and then log back in.");
					$("#tweets").html("<div id='iTweetHome'><h3>Welcome to the new</h3><div id='homeSubtitle'>interface for Twitter</div><ul id='homeList'><li>Built-in auto-refresh, search and hashtags</li><li>Full follow, block, notifications features</li><li>View user bio, location, URL inline with tweets</li><li>Watch conversations with \"in reply to\" links</li></ul></div>");
					$(this).hide();
					$("#pagination").hide();
					$("#twHelp").hide();
					$("#twSettings").hide();
					$("#twHowTo").hide();
					$("#twAbout").hide();
					$("#twSearch").hide();
					$("#twRecentReplies").hide();
					$(".profile").hide();
					$("#twPost").slideUp();
					$("#twitterNav").hide();
					$.cookie('itweet2User', null);
					$.cookie('itweet2Password', null);
					$.cookie('itweet2UserID', null);
				    $.cookie('page', null);
					$("#notLoggedIn").show();
					$("#loginNote").show();
					$("#twLoginForm").slideDown("slow");
					$(".upLink").hide();
					return false;
				  	}
				  	if(data == "no_session"){
				  	    document.location = "http://itweet.net/web/";
				  	}
					$(lastRow).before(data);
					$(data).selfCheck();
					$(data).replyCheck();
				});
			    $(".twTimeNum").each(function (i) {
					var correctTime = $(this).attr("rel");
					try{
					    $(this).html(relative_time(correctTime));
					} catch(err){
					    return false;
					}
				});
			$.cookie('page', 'friends');
			$(".row:gt(19)").remove();
			$(".row:last").nextAll(".replyTweet").remove();
            // $("#rateCount").rateCount();
		}
		
		jQuery.fn.selfCheck = function() {
			var myID = $("#profileScreenName").html();
			$(".twName").each(function(){
			var tweetID = $(this).attr("rel");
			if(tweetID == myID) {
				var tweetText = $(this).parent().children(".twText").html();
				var tweetTime = $(this).parent().children(".twTime").children(".twTimeNum").html();
				var tweetTimeStamp = $(this).parent().children(".twTime").children(".twTimeNum").attr("rel");
				$(".profileLastTweet").html(tweetText);
				$(".profileTweetTime > .twTimeNum").html(tweetTime);
				$(".profileTweetTime > .twTimeNum").attr("rel", tweetTimeStamp);
				return false;
				}
			});
		}
		
		jQuery.fn.replyCheck = function() {
			var myID = $.cookie("itweet2UserID");
			$(".inReplyTo").each(function(){
			var replyID = $(this).attr("rel");
			if(replyID == myID) {
				$(this).parent().css({background: "url(images/stripeBlue.png) repeat", border: "1px solid #0056AE" });
				// $(this).attr("rel", "0");
				// $(this).parent().clone().appendTo("#replyCatcher");
				// $("#replyNum").plusOne();
				}
			});
		}

		$("#tweets").everyTime("60s", function(){
			var page = $.cookie("page");
			var autoPref = $.cookie("autoPref");
			var pageNum = $("#pageNumber").html();
			if((page == 'friends') && (pageNum == "1") && (autoPref !== "auto_off")) {
			    $(this).friendRefresh();
			}
		});
		
		$("#tweets").everyTime("120s", function(){
		    $("#rateCount").rateCount();
		});
		
	    $("#tweets").everyTime("1200s", function(){
			var page = $.cookie("page");
			if(page == 'friends') {
		        var has_ad = $("div.ad_row").length;
		        if(has_ad <= 0){
		            $(this).twAd();
		        }
		        var has_note = $("div#140note").length;
		        if(has_note > 0){
		            $("div#140note").fadeOut().remove();
		        }
			}
		});
				
		jQuery.fn.plusOne = function() {
			var numString = $(this).html();
			var oldNum = parseInt(numString);
			var newNum = (oldNum + 1);
			$(this).html(newNum);
		}
		
		jQuery.fn.minusOne = function() {
			var numString = $(this).html();
			var oldNum = parseInt(numString);
			var newNum = (oldNum - 1);
			$(this).html(newNum);
		}
		
		jQuery.fn.twPost = function() {
			var messageVal = $("#twMessage").val();
			var token = $("#sessionToken").val();
			var inReplyTo = $("#inReplyToId").val();
			var adUrl = $("#140proof_url").val();
			$.post("post.php",
			{ message: messageVal, token: token, version: "oauth", in_reply_to_status_id: inReplyTo, ad_url: adUrl },
				function(data){
					$("#twMessage").fadeOut("normal", function() {
						if(data == "csrf"){
							alert("iTweet has installed some new security features. Please close this browser window, clear your cache and reload iTweet.net in a new window.");
							return false;
						}
						if(data == "upgrade"){
							// alert("iTweet has installed a sweet new upgrade since you opened this page. Please close this browser window, clear your cache and reload iTweet.net in a new window.");
							// document.location = "http://itweet.net/web/";
						}
						$("#twMessage").attr("value","");
						$("#twMessage").fadeIn("normal");
						$("#inReplyToId").val("null");
						$("#inReplyTweet").empty();
						$("#inReplyName").empty();
						$("#inReplyBox").slideUp();
						$(".profileUpdatesNum").plusOne();
						$(".postField").focus();
						$(".counter").text("140 characters remaining");
						if($.cookie("page") == 'friends'){
							$("#tweets").friendRefresh();
							}
					});
				}
			);
			return false;
		}
		
		jQuery.fn.twDirectPost = function() {
			var messageVal = $("#twDirectMessage").val();
			var directTo = $("#directID").val();
			var token = $("#sessionToken").val();
			if(directTo == "") {
				alert('Please enter the username of the person you want to DM!');
				$('#directID').focus();
				return false;
				
			} else if(messageVal == "") {
				alert("Please enter a message!");
				$("#twDirectMessage").focus();
				return false;
			} else {
				$.post("directPost.php",
				{ directTo: directTo, message: messageVal, token: token },
					function(data){
						if(data.error) {
							alert(data.error);
							return false;
							}
                        // alert("dm dm!");
						$("#twDirectMessage").fadeOut(function() {
                            // alert("dm!");
							$("#directTo").fadeOut("fast");
							$("#twDirectMessage").attr("value","");
							$("#directID").attr("value","");
							$("#directTo").fadeIn("fast");
							$("#twDirectMessage").fadeIn("normal");
							$("#twDirectMessage").focus();
							$(".counter").text("140 characters remaining");
							if($.cookie("page") == 'friends'){
								$("#tweets").friendRefresh();
								}
						});
					}
				);
				return false;
			}
		}
		
		jQuery.fn.favPost = function() {
			var favId = $(this).attr('id');
			var token = $("#sessionToken").val();
			$.post("fav_post.php",
			{ status_id: favId, token: token },
			 function(data){
				if(data.error){
				  	alert(data.error);
				  }
				return false;
			}, "json");
			var favStar = "images/btn_fav_on.png";
			$(this).attr("src",favStar);
			$(this).attr("class","favUnstar");
			$(".profileFavNum").plusOne();
			return false;
		}
		
		jQuery.fn.favAdPost = function() {
			var favId = $(this).attr('id');
			var fav_url = $(this).attr('rel');
			var token = $("#sessionToken").val();
			$.post("fav_post_140p.php",
			{ status_id: favId, fav_url: fav_url, token: token },
			 function(data){
				if(data.error){
				  	alert(data.error);
				  }
				return false;
			}, "json");
			var favStar = "images/btn_fav_on.png";
			$(this).attr("src",favStar);
			$(this).attr("class","favUnstar");
			$(".profileFavNum").plusOne();
			return false;
		}
		
		jQuery.fn.favDestroy = function() {
			var favId = $(this).attr('id');
			var token = $("#sessionToken").val();
			$.post("fav_destroy.php",
			{ status_id: favId, token: token },
			 function(data){
				if(data.error){
				  	alert(data.error);
				  }
				return false;
			}, "json");
			var favStar = "images/btn_fav_up.png";
			$(this).attr("src",favStar);
			$(this).attr("class","favBtn");
			$(".profileFavNum").minusOne();
			return false;
		}
		
		jQuery.fn.destroyTweet = function() {
			var verify = confirm("Are you sure you want to delete this tweet? There is no undo.");
			if(verify){
				var destroyID = $(this).attr("title");
				var DestroyRow = $(this).parent();
				var token = $("#sessionToken").val();
				$.post("destroy.php",
				{ status_id: destroyID, token: token },
					function(data){
						if(data.error){
						alert(data.error);
						return false;
						}
						return false;
					}, "json");
				$(DestroyRow).fadeOut("slow").remove();
				$(".profileUpdatesNum").minusOne();
				$(".profileLastTweet").empty();
				$(".profileTweetTime").children().empty();
				return false;
			}
		}
		
		jQuery.fn.destroyDirect = function() {
			var verify = confirm("Are you sure you want to delete this DM? There is no undo.");
			if(verify){
				var destroyID = $(this).attr("title");
				var DestroyRow = $(this).parent();
				var token = $("#sessionToken").val();
				$.post("destroyDirect.php",
				{ status_id: destroyID, token: token },
					function(data){
						if(data.error){
						alert(data.error);
						return false;
						}
						return false;
					}, "json");
					$(DestroyRow).fadeOut("slow").remove();
					return false;
			}
		}
		
		jQuery.fn.notsOn = function() {
			var notsId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			$.post("notifications_on.php",
			 { user_id: notsId, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  }
				return false;
			}, "json");
			$(this).attr("class", "twNotsOff");
			$("#notsStatus").html("ON");
			$(this).html("Turn notifications off?");
			alert("Notifications on!");
		}
		
		jQuery.fn.notsOff = function() {
			var notsId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			$.post("notifications_off.php",
			 { user_id: notsId, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  }
				 return false;
			}, "json");
			$(this).attr("class", "twNotsOn");
			$("#notsStatus").html("OFF");
			$(this).html("Turn notifications on?");
			alert("Notifications off!");
		}
		
		jQuery.fn.followOn = function() {
			var followUser = $(this).attr("rel");
			var followUserId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			$.post("follow_on.php",
			 { user_id: followUserId, token: token },
				function(data){
				if(data.error){
					alert(data.error);
					return false;
				  }
				// alert("You are now following @" + followUser);
				return false;
			}, "json");
			$(this).attr("class", "followOff");
			$("#followStatus").empty();
			$(this).html("Stop following?");
			$(".profileFollowingNum").plusOne();
			$("#notsBox").show();
		}
		
		jQuery.fn.followOff = function() {
			var followUser = $(this).attr("rel");
			var followUserId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			$.post("follow_off.php",
			 { user_id: followUserId, token: token },
				function(data){
				if(data.error){
					alert(data.error);
					return false;
				  }
				// alert("You are no longer following @" + followUser);
				return false;
			}, "json");
			$(this).attr("class", "followOn");
			$("#followStatus").html("not");
			$(this).html("Follow?");
			$(".profileFollowingNum").minusOne();
			$("#notsBox").hide();
		}
		
		jQuery.fn.blockOn = function() {
			var blockUser = $(this).parent().attr('rel');
			var blockUserId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			var verify = confirm("Are you sure you want to block this person?");
			if(verify){
				$.post("block_on.php",
				 { user_id: blockUserId, token: token },
					function(data){
					if(data.error){
						alert(data.error);
						return false;
					  }
					alert("You have blocked @" + blockUser);
					return false;
				}, "json");
				$(this).attr("class", "blockOff");
				$(this).html("Unblock?");
			}
		}
		
		jQuery.fn.blockOff = function() {
			var blockUser = $(this).parent().attr('rel');
			var blockUserId = $(this).parent().attr('rel');
			var token = $("#sessionToken").val();
			var verify = confirm("Are you sure you want to unblock this person?");
			if(verify){
			$.post("block_off.php",
				 { user_id: blockUserId, token: token },
					function(data){
					if(data.error){
						alert(data.error);
						return false;
					  }
					alert("You have unblocked @" + blockUser);
					return false;
				}, "json");
				$(this).attr("class", "blockOn");
				$(this).html("Block?");
			}
		}
		
		jQuery.fn.setDevice = function() {
			var device = $(this).attr("rel");
			var token = $("#sessionToken").val();
			$.post("device.php",
			 { device: device, token: token },
			 	function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				  }
				$.cookie('device', device, { expires: 60 });
				alert("Notification device is now: " + device);
			}, "json");
		}
		
		jQuery.fn.paginate = function() {
			var pageNum = $("#pageNumber").html();
			var numRows = $('.row').size();
			var thisPage = $.cookie('page');
			if(thisPage == "followers") {
				var pageAmount = 100;
			} else if(thisPage == "followers") {
				var pageAmount = 100;
			} else {
				var pageAmount = 17;
				}
			if((pageNum == "1") && (numRows < pageAmount)){
				$("#pagination").css({ visibility: "hidden" });
				}
			if((pageNum == "1") && (numRows >= pageAmount)){
				$("#pagination").css({ visibility: "visible" });
				$("#pageNewer").css({ visibility: "hidden" });
				$("#pageOlder").css({ visibility: "visible" });
				}
			if((pageNum > "1") && (numRows >= pageAmount)){
					$("#pagination").css({ visibility: "visible" });
					$("#pageNewer").css({ visibility: "visible" });
					$("#pageOlder").css({ visibility: "visible" });
				}
			if((pageNum > "1") && (numRows < pageAmount)){
					$("#pagination").css({ visibility: "visible" });
					$("#pageNewer").css({ visibility: "visible" });
					$("#pageOlder").css({ visibility: "hidden" });
				}
			}
			
		$("#pageNewer").click(function(){
			$("#pageNumber").minusOne();
			$("#pagination").paginate();
			var thisPage = $.cookie('page');
			if(thisPage == "replies") {
				$("#tweets").twReplies();
			} else if(thisPage == "direct") {
				$("#tweets").twDirect();
			} else if(thisPage == "directSent") {
				$("#tweets").twDirectSent();
			} else if(thisPage == "favs") {
				$("#tweets").twFavs();
			} else if(thisPage == "following") {
				$("#tweets").twFollowing();
			} else if(thisPage == "followers") {
				$("#tweets").twFollowers();
			} else if(thisPage == "archive") {
				$("#tweets").twArchive();
			} else if(thisPage == "search") {
				$("#tweets").twSearch();
			} else if(thisPage == "user") {
				$("#tweets").getUser();
			} else if(thisPage == "friends") {
				$("#tweets").friendLoad();
			} else if(thisPage == "list_statuses") {
				$("#tweets").getListStatuses();
			}
		});
		
		$("#pageOlder").click(function(){
			$("#pageNumber").plusOne();
			$("#pagination").paginate();
			var thisPage = $.cookie('page');
			if(thisPage == "replies") {
				$("#tweets").twReplies();
			} else if(thisPage == "direct") {
				$("#tweets").twDirect();
			} else if(thisPage == "directSent") {
				$("#tweets").twDirectSent();
			} else if(thisPage == "favs") {
				$("#tweets").twFavs();
			} else if(thisPage == "following") {
				$("#tweets").twFollowing();
			} else if(thisPage == "followers") {
				$("#tweets").twFollowers();
			} else if(thisPage == "archive") {
				$("#tweets").twArchive();
			} else if(thisPage == "search") {
				$("#tweets").twSearch();
			} else if(thisPage == "user") {
				$("#tweets").getUser();
			} else if(thisPage == "friends") {
				$("#tweets").friendLoad();
			} else if(thisPage == "list_statuses") {
				$("#tweets").getListStatuses();
			}
		});
			
		jQuery.fn.friendLoad = function() {
			$("#tweets").empty();
			$("#pagination").show();
			$("#tweets").html('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("friends.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	//alert(data.error);
				  	alert("iTweet.net has just installed a security upgrade! Please log out and then log back in.");
				  	$("#tweets").html("<div id='iTweetHome'><h3>Welcome to the new</h3><div id='homeSubtitle'>interface for Twitter</div><ul id='homeList'><li>Built-in auto-refresh, search and hashtags</li><li>Full follow, block, notifications features</li><li>View user bio, location, URL inline with tweets</li><li>Watch conversations with \"in reply to\" links</li></ul></div>");
					$(this).hide();
					$("#pagination").hide();
					$("#twHelp").hide();
					$("#twSettings").hide();
					$("#twHowTo").hide();
					$("#twAbout").hide();
					$("#twSearch").hide();
					$("#twRecentReplies").hide();
					$(".profile").hide();
					$("#twPost").slideUp();
					$("#twitterNav").hide();
					$.cookie('itweet2User', null);
					$.cookie('itweet2Password', null);
					$.cookie('itweet2UserID', null);
				    $.cookie('page', null);
					$("#notLoggedIn").show();
					$("#loginNote").show();
					$("#twLoginForm").slideDown("slow");
					$(".upLink").hide();
					return false;

				    }
				    if(data == "no_session"){
				  	    document.location = "http://itweet.net/web/";
				  	}
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				if(autoPref == 'auto_off'){
        			$("<h2 class='colLSubTitle'>Autorefresh is off!</h2><img src='images/refresh_up.png' id='colLRefresh' class='twFriends' />").appendTo("#tweets");
        			}
				$("#tweets").append(data);
				$(data).selfCheck();
				$(data).replyCheck();
				$("#pagination").paginate();
        		});
        	var autoPref = $.cookie("autoPref");
        	$.cookie('page', 'friends');
        	$("#tweets").selfCheck();
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.fn.setProfile = function() {
		    var token = $("#sessionToken").val();
			$.get("setProfile.php",
			    { token: token },
				  function(data){
				  $(".profile").remove();
				  $("#loadingR").remove();
				  $(data).appendTo("#loginInner");
				  $("#rateCount").rateCount();
					$("a:not([href*=http://itweet.net])").not("[href^=#]").not("[href^=/]")
					  .addClass("external")
					  .attr({ target: "_blank" });
					var device = $.cookie('device');
					$(".twSttgNots").removeClass("optSelect");
					if(device == "im") {
						$("#twSttgNotsIM").addClass("optSelect");
					} else if(device == "sms") {
						$("#twSttgNotsSMS").addClass("optSelect");
					} else if(device == "none") {
						$("#twSttgNotsNone").addClass("optSelect");
					}
					var skinPref = $.cookie('skin');
					if(skinPref == "default") {
						$("#twSttgSkinCP").addClass("optSelect");
						$("#styleInfo").remove();
					} else if(skinPref == "twitter") {
						$("#twSttgSkinTw").addClass("optSelect");
						$(this).getTwSkin();
					} else {
						$("#twSttgSkinCP").addClass("optSelect");
					}
					var tagPref = $.cookie('tagPref');
					if(tagPref == "default") {
						$("#twSttgLinkTags").addClass("optSelect");
					} else if(tagPref == "pretty") {
						$("#twSttgPrettyTags").addClass("optSelect");
					} else if(tagPref == "killWord") {
						$("#twSttgRemoveWord").addClass("optSelect");
					} else if(tagPref == "killAll") {
						$("#twSttgRemoveTweet").addClass("optSelect");
					} else {
						$("#twSttgLinkTags").addClass("optSelect");
					}
					var postPref = $.cookie('postPref');
					if(postPref == "speedOff") {
						$("#twSttgSpeedOff").addClass("optSelect");
					} else {
						$("#twSttgSpeedOn").addClass("optSelect");
					}
					var autoPref = $.cookie('autoPref');
					if(autoPref == "auto_off") {
						$("#twSttgAutoOff").addClass("optSelect");
					} else {
						$("#twSttgAutoOn").addClass("optSelect");
					}
					});
		}
		
		jQuery.listen("click", ".twMyLists", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).twMyLists();
			return false;
			});
		
		jQuery.fn.twMyLists = function() {
			$.cookie('page', 'lists_myLists');
			$("#tweets").empty();
			$("#pagination").hide();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("lists_myLists.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='listsTitle'>My Lists</h2><img src='images/refresh_up.png' id='colLRefresh' class='twMyLists' />").appendTo("#tweets");
				$("#tweets").append(data);
				});
		return false;
		}
		
		jQuery.listen("click", ".twListSubs", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).twListSubs();
			return false;
			});
		
		jQuery.fn.twListSubs = function() {
			$.cookie('page', 'lists_subs');
			$("#tweets").empty();
			$("#pagination").hide();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("lists_subscriptions.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' id='listsTitle'>My List Subscriptions</h2><img src='images/refresh_up.png' id='colLRefresh' class='twListSubs' />").appendTo("#tweets");
				$("#tweets").append(data);
				});
		return false;
		}

		jQuery.listen("click", ".twListMems", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).twListMems();
			return false;
			});
		
		jQuery.fn.twListMems = function() {
		    var page = $.cookie("page");
		    var pageNum = $("#pagination_new").attr("rel");
			if((pageNum == undefined) || (page != "lists_mems")){
			    var pageNum = '-1';
			}
		    if((page != "lists_mems") || (pageNum == '-1')){
			    $("#tweets").empty();
    			$("#pagination").hide();
    			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			}
			$.get("lists_memberships.php",
				{ page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				    }
			    if((page != "lists_mems") || (pageNum == '-1')){
                    $("#loading").remove();
    				$(".row").remove();
    				$(".colLSubTitle").remove();
    				$("#colLRefresh").remove();
    				$(".colLSubTitleLink").remove();
    				$("<h2 class='colLSubTitle' id='listsTitle'>My List Memberships</h2><img src='images/refresh_up.png' id='colLRefresh' class='twListMems' />").appendTo("#tweets");
    				$("#tweets").append(data);
				} else {
                    $("#pagination_new").remove();
				    $("#tweets").append(data);
				}
				$.cookie('page', 'lists_mems');
				});
		return false;
		}
		
		$(".listTitle").live("click", function(){
		    $("#pageNumber").html("1");
			$("#pagination").show();
			$(this).getListStatuses();
			return false;
		});
		
		jQuery.fn.getListStatuses = function() {
			$.cookie('page', 'list_statuses');
			var list_id = $(this).parent().attr("rel");
			if(list_id == undefined) {
				var list_id = $(".colLSubTitle").attr("rel");
			}
			var list_title = $(this).attr("name");
			if(list_title == undefined) {
				var list_title = $("#colLRefresh").attr("name");
			}
			var list_username = $(this).attr("rel");
			if(list_username == undefined) {
				var list_username = $("#colLRefresh").attr("rel");
			}
			$("#twitterNav > li > a").removeClass("navSelected");
			$("#tweets").empty();
			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			var pageNum = $("#pageNumber").html();
			$.get("lists_statuses.php",
				{ list_id: list_id, list_username: list_username, page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				    }
				$("#loading").remove();
				$(".row").remove();
				$(".colLSubTitle").remove();
				$("#colLRefresh").remove();
				$(".colLSubTitleLink").remove();
				$("<h2 class='colLSubTitle' rel='"+list_id+"'>List - @"+list_username+"/"+list_title+"</h2><img src='images/refresh_up.png' id='colLRefresh' class='listTitle' rel='"+list_username+"' name='"+list_title+"' />").appendTo("#tweets");
				$("#tweets").append(data);
				$("#pagination").paginate();
				});
            // $("#rateCount").rateCount();
		return false;
		}
		
		jQuery.listen("click", ".listMembers", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).twListGetMembers();
			return false;
			});
			
		jQuery.fn.twListGetMembers = function() {
		    var page = $.cookie("page");
		    var list_id = $(this).parent().attr("rel");
			if(list_id == undefined) {
				var list_id = $(".colLSubTitle").attr("rel");
			}
			var list_title = $(this).attr("name");
			if(list_title == undefined) {
				var list_title = $("#colLRefresh").attr("name");
			}
			var list_username = $(this).attr("rel");
			if(list_username == undefined) {
				var list_username = $("#colLRefresh").attr("rel");
			}
			var pageNum = $("#pagination_new").attr("rel");
			if((pageNum == undefined) || (page != "lists_getmembers")){
			    var pageNum = '-1';
			}
		    if((page != "lists_getmembers") || (pageNum == '-1')){
			    $("#tweets").empty();
    			$("#pagination").hide();
    			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			}
			$.get("lists_getMembers.php",
				{ list_id: list_id, list_username: list_username, page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				    }
			    if((page != "lists_getmembers") || (pageNum == '-1')){
                    $("#loading").remove();
    				$(".row").remove();
    				$(".colLSubTitle").remove();
    				$("#colLRefresh").remove();
    				$(".colLSubTitleLink").remove();
    				$("<h2 class='colLSubTitle' id='listsTitle' rel='"+list_id+"'>Members of List @"+list_username+"/"+list_title+"</h2><img src='images/refresh_up.png' id='colLRefresh' class='listMembers' rel='"+list_username+"' name='"+list_title+"' />").appendTo("#tweets");
    				$("#tweets").append(data);
				} else {
                    $("#pagination_new").remove();
				    $("#tweets").append(data);
				}
				$.cookie('page', 'lists_getmembers');
				});
		return false;
		}
		
		jQuery.listen("click", ".listSubscribers", function(){
			$("#twitterNav > li > a").removeClass("navSelected");
			$(this).twListGetSubscribers();
			return false;
			});
			
		jQuery.fn.twListGetSubscribers = function() {
		    var page = $.cookie("page");
		    var list_id = $(this).parent().attr("rel");
			if(list_id == undefined) {
				var list_id = $(".colLSubTitle").attr("rel");
			}
			var list_title = $(this).attr("name");
			if(list_title == undefined) {
				var list_title = $("#colLRefresh").attr("name");
			}
			var list_username = $(this).attr("rel");
			if(list_username == undefined) {
				var list_username = $("#colLRefresh").attr("rel");
			}
			var pageNum = $("#pagination_new").attr("rel");
			if((pageNum == undefined) || (page != "lists_getsubscribers")){
			    var pageNum = '-1';
			}
		    if((page != "lists_getsubscribers") || (pageNum == '-1')){
			    $("#tweets").empty();
    			$("#pagination").hide();
    			$("#tweets").append('<div class="row"><img src="images/loading.gif" alt="Loading" id="loading" /></div>');
			}
			$.get("lists_getSubscribers.php",
				{ list_id: list_id, list_username: list_username, page: pageNum },
				function(data){
				if(data.error){
				  	alert(data.error);
				  	return false;
				    }
			    if((page != "lists_getsubscribers") || (pageNum == '-1')){
                    $("#loading").remove();
    				$(".row").remove();
    				$(".colLSubTitle").remove();
    				$("#colLRefresh").remove();
    				$(".colLSubTitleLink").remove();
    				$("<h2 class='colLSubTitle' id='listsTitle' rel='"+list_id+"'>Subscribers to List @"+list_username+"/"+list_title+"</h2><img src='images/refresh_up.png' id='colLRefresh' class='listSubscribers' rel='"+list_username+"' name='"+list_title+"' />").appendTo("#tweets");
    				$("#tweets").append(data);
				} else {
                    $("#pagination_new").remove();
				    $("#tweets").append(data);
				}
				$.cookie('page', 'lists_getsubscribers');
				});
		return false;
		}
		
		$(".twListCreate").click(function(){
		    $("#listCreateForm").slideToggle();
		});
		
		$("#listBtnGo").click(function(){
		    var token = $("#sessionToken").val();
		    var listName = $("#listInputMain").val();
		    var listDesc = $("#listInputDesc").val();
		    if($("#listPrivateMain").is(":checked")){
		        var listPrivate = "private";
            } else {
                var listPrivate = "public";
            }
		    if(listName == ""){
		        alert("Please enter a name for your list.");
		        return false;
		    }
		    $.post("lists_create.php",
			{ list_title: listName, list_description: listDesc, list_private: listPrivate, token: token },
			 function(data){
				if(data.error){
				    alert(data.error);
				    return false;
				}
				$("#listInputMain").val("");
				$("#listInputDesc").val("");
				$("#listCreateForm").slideUp();
				$("#tweets").twMyLists();
				return false;
			}, "json");
		});
		
		$(".listDeleteBtn").live("click", function(){
		    $(this).destroyList();
			return false;
		});
		
		jQuery.fn.destroyList = function() {
			var verify = confirm("Are you sure you want to delete this list? There is no undo.");
			if(verify){
				var destroyID = $(this).attr("rel");
				var DestroyRow = $(this).parent().parent();
				var token = $("#sessionToken").val();
				$.post("lists_destroy.php",
				{ list_id: destroyID },
					function(data){
						if(data.error){
						alert(data.error);
						return false;
						}
						return false;
					}, "json");
				$(DestroyRow).fadeOut("slow").remove();
				return false;
			}
			return false;
		}
		
		$(".listEditBtn").live("click", function(){
		   $(this).parent().next().slideToggle(); 
		   return false;
		});
		
		$(".editListBtnGo").live("click", function(){
		    var token = $("#sessionToken").val();
		    var listName = $(this).prev().prev().val();
		    var listDesc = $(this).next().val();
		    if($(this).prev().prev().is(":checked")){
		        var listPrivate = "private";
            } else {
                var listPrivate = "public";
            }
		    if(listName == ""){
		        alert("Please enter a name for your list.");
		        return false;
		    }
		    var list_id = $(this).attr("rel");
            $.post("lists_edit.php",
            { list_id: list_id, list_title: listName, list_description: listDesc, list_private: listPrivate, token: token },
            function(data){
                 if(data.error){
                     alert(data.error);
                     return false;
                 }
                 // $("#tweets").twMyLists();
                 return false;
            }, "json");
            $("#tweets").twMyLists();
		});
		
		$(".pagination_new").live("click", function(){
		    var cursor = $(this).attr("rel");
		    $(this).removeClass("pagination_new").html("<em>Loading...</em>").removeAttr("href");
		    var thisPage = $.cookie('page');
			if(thisPage == "lists_mems") {
				$("#tweets").twListMems();
			} else if(thisPage == "lists_getmembers") {
				$("#tweets").twListGetMembers();
			} else if(thisPage == "lists_getsubscribers") {
				$("#tweets").twListGetSubscribers();
			}
			return false;
		});
		
		jQuery.fn.getTwSkin = function() {
			$.get("setSkin.php",
			  function(data){
				$(data).appendTo("#twPost");
			  });
		 }
			
	});