MySpace - Seifer's Auto Update!

By Seifer Last update Jul 9, 2008 — Installed 855 times.
// ==UserScript==
// @name          MySpace - Seifer's Auto Update!
// @version       1
// @namespace     Seifer - http://userscripts.org/users/33118
// @description   Have your MySpace home page always up-to-date without refreshing it! Author: Seifer.
// @include       http://home.myspace.com/index.cfm*fuseaction=user*
// @exclude       *fuseaction=user.*
// @exclude       *noupdate*
// ==/UserScript==


	// ========= 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='Myspace - Seifer's Auto Update!';
	scriptId='29786';
	scriptVersion=1;
	scriptUpdateText='The initial release.';
	// === 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;'
					+'	height: 120px;'
					+'	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 Update Info</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_scripthome"><a target="_blank" href="http://userscripts.org/scripts/show/'+scriptId+'">Go To Script Homepage</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_upgrade"><a href="http://userscripts.org/scripts/source/'+scriptId+'.user.js">Upgrade to version '+onSiteVersion+'</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_wait"><a href="#">Don&#39;t remind me again until tomorrow</a></span>&nbsp;&nbsp;'
					+'		<span id="gm_update_alert_button_waitnextversion"><a href="#">Don&#39;t remind me again until the next new 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_getValue('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);
			    	}
	    		}
		});
	}


// Re-Create missing updates block (THANKS InsaneNinja!)
if (!$('updates') && $('userdisplay'))
	{
	updates_div = document.createElement('div');
	updates_div.setAttribute('id','updates')
	updates_div.setAttribute('class','module')
	updates_div.setAttribute('style','display: none;');
	$('userdisplay').parentNode.insertBefore(updates_div, $('userdisplay').nextSibling);
}

myframe = document.createElement('iframe');
myframe.setAttribute('name','GM_updateframe');
myframe.setAttribute('id','GM_updateframe');
myframe.setAttribute('style','display:none;');
document.body.appendChild(myframe);
document.getElementById('GM_updateframe').src = 'http://home.myspace.com/index.cfm?noupdate&fuseaction=user';

window.gm_UpdatePage = function(cycles) {
	document.getElementById('friendStatuses').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('friendStatuses').innerHTML;
	document.getElementById('bulletins').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('bulletins').innerHTML;
	document.getElementById('friendUpdate').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('friendUpdate').innerHTML;
	document.getElementById('userdisplay').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('userdisplay').innerHTML;
	document.getElementById('friendspace').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('friendspace').innerHTML;
	if(document.getElementById('GM_updateframe').contentDocument.getElementById('updates'))
		{
		document.getElementById('updates').innerHTML = document.getElementById('GM_updateframe').contentDocument.getElementById('updates').innerHTML;
		var a =document.getElementById('updates').innerHTML;
		if(a.indexOf('New') > -1)
			{
			document.getElementById('updates').setAttribute('style','display: block;');
			a = a.match(/New [A-z\s]+!/g).join().replace(/(New |[^A-Z,])/g,'') + '!'; document.title = 'MySpace - ' + a;
			} else {
			document.getElementById('updates').setAttribute('style','display: none;');
			document.title = 'MySpace Home';
		}
		} else {
		document.getElementById('updates').innerHTML = '';
		document.getElementById('updates').setAttribute('style','display: none;'); document.title = 'MySpace Home'; 
	}

	document.getElementById('GM_updateframe').src = 'about:blank';
	document.getElementById('GM_updateframe').src = 'http://home.myspace.com/index.cfm?noupdate&fuseaction=user';
}

window.cycles=0;
window.gm_UpdateTimer = function() { setTimeout(gm_UpdateTimer, 60000); window.gm_UpdatePage(window.cycles++);}
setTimeout(gm_UpdateTimer, 60000);

	////////////////////////////////
	// Create script link-back (Concept by InsaneNinja)
	//
	if (!$('GM_Script_Links')) { var gsl = document.createElement('p'); gsl.setAttribute('id','GM_Script_Links');
	if ($('col1')) $('col1').appendChild(gsl); GM_addStyle('#GM_Script_Links a {display:block;color:#CCC!important;}') }
	GM_addStyle('#GM_Script_Links { text-align: center }');
	$('GM_Script_Links').innerHTML += '<a href="http://userscripts.org/scripts/show/29786">GM - Seifer&#39;s Auto Update!</a>';
	//
	// To check for this script use.....
	// if ($('GM_Script_Links') && $('GM_Script_Links').innerHTML.match('scripts/show/29786">GM')) { }
	////////////////////////////////

function getAtt(elementId,att) { if(document.getElementById(elementId)) { return document.getElementById(elementId).getAttribute(att); } else { return false; } }
function removeElement(elementId) { if(document.getElementById(elementId )) { document.getElementById(elementId).setAttribute('style','display:none'); return true; } else { return false; } }
function $(elementId) { return document.getElementById(elementId); } // shortcut from "Prototype Javascript Framework"
function $$(elementName) { return document.getElementsByName(elementName); }