friendfeedCommentHoverReveal

By Micah Wittman Last update Apr 29, 2009 — Installed 130 times. Daily Installs: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0

There are 3 previous versions of this script.

// ==UserScript==
// @name           friendfeedCommentHoverReveal
// @namespace      http://userscripts.org/scripts/show/47724
// @description    On mouse hover, long comments are revealed (avoids needing to click the "more..." link) on FriendFeed posts
// @author         Micah Wittman
// @include        http://friendfeed.com/*
// @version        0.11
// ==/UserScript==

/* 	

	Author: Micah Wittman | http://wittman.org/ | http://friendfeed.com/micahwittman
	
	Versions:
        * 2009-04-29 - version 0.11 - 1) FF beta cut over to live, so URL include was adjusted.
                       2) Google Chrome browser compatibility added. The only difference between use on Firefox and Chrome is
                       the "auto update-notification script" component is disabled on Chrome because of GreaseMonkey API dependencies.
        * 2009-04-28 - version 0.1 - initial release
*/

function GM_wait()
{
	if(typeof unsafeWindow != 'undefined')
	{
		if(typeof unsafeWindow.jQuery != 'undefined')
		{
			jQuery = unsafeWindow.jQuery;
		}
	}
	if(typeof jQuery == 'undefined')
	{
		window.setTimeout(GM_wait,251);
	}
	else
	{
		$ = jQuery; letsJQuery();
	}

}
GM_wait();

var realtime;
var lastSuccessPrev;

function RevealComment_wait(){
	if(lastSuccessPrev == realtime.lastSuccess)
	{
		window.setTimeout(RevealComment_wait,50);
	}
	else
	{
		lastSuccessPrev = realtime.lastSuccess; //sync variables
		letsJQuery();
	}
}

function RevealCommentOnDemand_wait(){
	window.setTimeout(RevealComment,2000);
}


function letsJQuery()
{
	if(realtime == null){
		realtime = unsafeWindow.realtime;
		lastSuccessPrev = realtime.lastSuccess;
	}
	RevealComment();	
	RevealComment_wait();
}

function RevealComment(){	
	$('.comment').each(function(){
		$(this).hover(function(){
			var lComment = $(this).find('.l_morecomment');
			if(lComment.length > 0){
				lComment.trigger('click');
				if(lComment.parent().find('.commentRevealed').length == 0){			
					$(this).fadeOut(100,function(){
						$(this).fadeIn(100).css('background-color','rgb(245,245,245)').fadeIn(100);
					});
				}
				lComment.addClass('commentRevealed');
			}
		});
	});
}

$('.l_expandcomments').click(function(){
	RevealCommentOnDemand_wait();
});


if(typeof unsafeWindow != 'undefined')
{
	// ========= ADD FROM HERE ONWARDS TO YOUR SCRIPT =========
	// This auto update-notification script was made by Seifer
	// You can find it at http://userscripts.org/scripts/show/12193
	// ========================================================
	// === Edit the next four lines to suit your script. ===
	scriptName='friendfeedCommentHoverReveal';
	scriptId='47724';
	scriptVersion=0.11;
	scriptUpdateText="[v0.11]: FF beta cut over to live, so URL include was adjusted.";
	// === Stop editing here. ===

	var lastCheck = GM_getValue('lastCheck', 0);
	var lastVersion = GM_getValue('lastVersion', 0);
	var d = new Date();
	var currentTime = Math.round(d.getTime() / 1000); // Unix time in seconds
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName=="Netscape") {
			winW = window.innerWidth;
			winH = window.innerHeight;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			winW = document.body.offsetWidth;
			winH = document.body.offsetHeight;
		}
	}
	if (currentTime > (lastCheck + 86400)) { //24 hours after last check
		GM_xmlhttpRequest({
			method: 'GET',
			url: 'http://userscripts.org/scripts/review/'+scriptId+'?format=txt',
			headers: {'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey','Accept': 'text/plain',},
			onload: function(responseDetails) {
				var text = responseDetails.responseText;
	   	 		var onSiteVersion = text.substring(text.indexOf("scriptVersion=")+14,text.indexOf("\n",text.indexOf("scriptVersion="))-2);
		    		var onSiteUpdateText = text.substring(text.indexOf("scriptUpdateText=")+18,text.indexOf("\n",text.indexOf("scriptUpdateText="))-3);
		    		if(onSiteVersion > scriptVersion && onSiteVersion > lastVersion) {
			    		GM_addStyle('#gm_update_alert {'
					+'	position: fixed;'
					+'	z-index:100000;'
					+'	top: '+((winH/2)-60)+'px;'
					+'	left: '+((winW/2)-275)+'px;'
					+'	width: 550px;'
					+'	background-color: yellow;'
					+'	text-align: center;'
					+'	font-size: 11px;'
					+'	font-family: Tahoma;'
					+'}'
					+'#gm_update_alert_buttons {'
					+'	position: relative;'
					+'	top: -5px;'
					+'	margin: 7px;'
					+'}'
					+'#gm_update_alert_button_close {'
					+'	position: absolute;'
					+'	right: 0px;'
					+'	top: 0px;'
					+'	padding: 3px 5px 3px 5px;'
					+'	border-style: outset;'
					+'	border-width: thin;'
					+'	z-index: inherit;'
					+'	background-color: #FF0000;'
					+'	color: #FFFFFF;'
					+'	cursor:pointer'
					+'}'
					+'#gm_update_alert_buttons span, #gm_update_alert_buttons span a  {'
					+'	text-decoration:underline;'
					+'	color: #003399;'
					+'	font-weight: bold;'
					+'	cursor:pointer'
					+'}'
					+'#gm_update_alert_buttons span a:hover  {'
					+'	text-decoration:underline;'
					+'	color: #990033;'
					+'	font-weight: bold;'
					+'	cursor:pointer'
					+'}');
			    		newversion = document.createElement("div");
			    		newversion.setAttribute('id', 'gm_update_alert');
			    		newversion.innerHTML = ''
					+'	<b>GreaseMonkey UserScript Update Notification</b><br>'
					+'	There is an update available for &quot;'+scriptName+'&quot; <br>'
					+'	You are currently running version '+scriptVersion+'. The newest version is '+onSiteVersion+'.<br>'
					+'	<br>'
					+'	<div id="gm_update_alert_button_close">'
					+'		Close</div>'
					+'	<b>What do you want to do?</b><br>'
					+'	<div id="gm_update_alert_buttons">'
					+'		<span id="gm_update_alert_button_showinfo"><a href="#">Show&nbsp;Update&nbsp;Info</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_scripthome"><a target="_blank" href="http://userscripts.org/scripts/show/'+scriptId+'">Go&nbsp;To&nbsp;Script&nbsp;Homepage</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_upgrade"><a href="http://userscripts.org/scripts/source/'+scriptId+'.user.js">Upgrade&nbsp;to&nbsp;version&nbsp;'+onSiteVersion+'</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_wait"><a href="#">Don&#39;t&nbsp;remind&nbsp;me&nbsp;again&nbsp;until&nbsp;tomorrow</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_waitnextversion"><a href="#">Don&#39;t&nbsp;remind&nbsp;me&nbsp;again&nbsp;until&nbsp;the&nbsp;next&nbsp;new&nbsp;version</a></span> </div>';
					document.body.insertBefore(newversion, document.body.firstChild);
					document.getElementById('gm_update_alert_button_showinfo').addEventListener('click', function(event) {alert(onSiteUpdateText);}, true);
					document.getElementById('gm_update_alert_button_wait').addEventListener('click', function(event) {GM_setValue('lastCheck', currentTime);alert("You will not be reminded again until tomorrow.");document.body.removeChild(document.getElementById('gm_update_alert'));}, true);
			          		document.getElementById('gm_update_alert_button_waitnextversion').addEventListener('click', function(event) {GM_setValue('lastVersion', onSiteVersion);alert("You will not be reminded again until the next new version is released.");document.body.removeChild(document.getElementById('gm_update_alert'));}, true);
					document.getElementById('gm_update_alert_button_close').addEventListener('click', function(event) {document.body.removeChild(document.getElementById('gm_update_alert'));}, true);
			    	}
	    		}
		});
	}
}