SU CSS Themer

By Onyxstone Last update Jan 31, 2009 — Installed 254 times. Daily Installs: 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 3, 1, 0, 5, 1, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0
// ==UserScript==// @name           SU CSS Themer// @namespace      http://onyxstone.stumbleupon.com/// @description    SU CSS Themer// @include        http://*.stumbleupon.com/*// @version        0.0.1// ==/UserScript==var stylelink = document.getElementsByClassName( 'stylelink')[0];var prefsForm1 = document.getElementById( 'prefsForm1' );var listThemes = document.getElementById( 'listThemes' );var input;//About textareavar textarea;var about_prev;var stumbler = window.wrappedJSObject.stumbler;//On owner pageif( stumbler ) {  var s = GM_getValue( 'stylelink_' + stumbler );    if( s && checkCSS( s ) ) injectStyle( s );      }else if( stylelink ) {  injectStyle( stylelink.href );}//On preferences pageif( listThemes ) {  var div = document.createElement( 'div' );  div.textContent = 'Link to a custom stylesheet:'  div.style.paddingTop = '20px';  div.style.border = '1px dashed gray';  input = document.createElement( 'input' );  input.style.display = 'block';  input.type = 'text';  input.style.width = '400px';  var btn = document.createElement( 'button' );  btn.textContent = 'Submit';  btn.style.display = 'inline';  btn.type = 'button';  btn.addEventListener( 'click' , setStyleSheet , false );    var rem = document.createElement( 'button' );  rem.textContent = 'Remove style';  rem.style.display = 'inline';  rem.type = 'button';  rem.addEventListener( 'click' , removeStyleSheet , false );    div.appendChild( input );   div.appendChild( btn );  div.appendChild( rem );    prefsForm1.childNodes[1].appendChild( div );      var txt = xpath("//textarea[@name='description']", document);  textarea = txt.snapshotItem(0);      about_prev = document.createElement( 'div' );  insert( textarea , about_prev );  about_prev.innerHTML = textarea.value;}function checkCSS( href ) {  var a = href.match( /^http:\/\/.*\.css$/ );  return a;}function injectStyle( href ) {   var link = document.createElement( 'link' );   checkCSS( href ); if( checkCSS( href ) ) link.href = href; link.type = "text/css"; link.rel ="stylesheet";  document.getElementsByTagName('head')[0].appendChild(link);}function setStyleSheet( e )  {  setHREF( input.value );}function removeStyleSheet( e ) {  setHREF( "" );}function setHREF( href ) {  about_prev.innerHTML = textarea.value;    var stylelink2 =   document.getElementsByClassName( 'stylelink' )[0];  if( stylelink2 ) {        stylelink2.setAttribute('href' , href );    textarea.value = about_prev.innerHTML;  }  else {    textarea.value = textarea.value + "<a class=\"stylelink\" href=\"" + href + "\">*</a>";    about_prev.innerHTML = textarea.value;  }    GM_setValue( 'stylelink_' + stumbler, href );}function xpath (exp, node ){	var result = 		document.evaluate(exp, node, null, 		XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); 		return result;}function insert( rel_node , node ) {rel_node.parentNode.insertBefore( node, rel_node );}