<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel rdf:about="https://let.hatelabo.jp/ultraist/rss">
    <link>https://let.hatelabo.jp/ultraist/rss</link>
    <description></description>
    <title>Bookmarklets from ultraist</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/ultraist/let/gYC-yPWuxbL7YA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/ultraist/let/gYC-yM6riL2sXw"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/ultraist/let/gYC-yPWuxbL7YA">
    <link>https://let.hatelabo.jp/ultraist/let/gYC-yPWuxbL7YA</link>
    <dc:date>2012-03-11T09:18:50Z</dc:date>
    <description>Add a select-box for the hl parameter on google result pages.</description>
    <dc:creator>ultraist</dc:creator>
    <title>[Let] Google Language Code Changer JaEn</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fultraist%2Flet%2FgYC-yPWuxbL7YA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Google Language Code Changer JaEn&lt;/a&gt;&lt;pre&gt;// ==UserScript==
// @title          Google Language Code Changer JaEn
// @name           Google Language Code Changer JaEn
// @namespace      http://brainroom.ae35.de
// @description    Add a select-box for the hl parameter on google result pages.
// @version        1.8
// @copyright      2010+, kleingeist (http://github.com/kleingeist/userscripts), id:ultraist(specialize for ja/en)
// @licence        GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// @include        http://www.google.*/search?*
// @include        http://www.google*/#*q=*
// @include        http://www.google.*/
// @include        http://www.google.*/webhp*
// @include        http://www.google.*/images?*
// @include        http://www.google.*/imghp*
// @exclude        http://www.google.*/s?*
// @include        https://www.google.*/search?*
// @include        https://www.google*/#*q=*
// @include        https://www.google.*/
// @include        https://www.google.*/webhp*
// @include        https://www.google.*/images?*
// @include        https://www.google.*/imghp*
// @exclude        https://www.google.*/s?*
// ==/UserScript==

// Initial list
var list = [];

// Check if Greasemonkey specific functions are available (for Cross-Browser support)
var GM_functions = !((typeof GM_getValue == 'undefined') || (GM_getValue('a', 'b') == undefined));
if (GM_functions) {
	list = GM_getValue(&amp;quot;selectedLangs&amp;quot;, &amp;quot;&amp;quot;).split(&amp;quot; &amp;quot;);
}


// If we are on a NOT on a start page and the ajax isn't enabled, we can insert the selector instantly...
if (!(window.location.hash.match(/q\=/) || window.location.pathname == '/' || window.location.pathname == '/webhp' || window.location.pathname == '/imghp')) {
	insertSelector(list);
}

//... but to be on the safe site we always add the listener
document.addEventListener('DOMAttrModified', DOMAttrModifiedListener, true);

function DOMAttrModifiedListener(e) {
	// thanks to http://www.amirharel.com/2009/07/19/manipulating-google-results-ajax-version/ for the #foot hint
	if (e.target.id == 'foot' &amp;amp;&amp;amp; !document.getElementById('glccHl')) {
		insertSelector(list);
	}
}

	
if (GM_functions) {
	GM_registerMenuCommand('Select Language Codes', function() { 
		GM_setValue('selectedLangs'
			, window.prompt('Languages shown in the selection (ex. de for german see http://sites.google.com/site/tomihasa/google-language-codes for full list)'
				  , GM_getValue('selectedLangs', &amp;quot;&amp;quot;)
			)
		);
	}, '', 's');
}

function insertSelector(list) {	

	// Thanks to http://sites.google.com/site/tomihasa/google-language-codes for the list
	var codes = 
	[&amp;quot;ja&amp;quot;, &amp;quot;en&amp;quot;];
	
	var names =
	[&amp;quot;Japanese&amp;quot;, &amp;quot;English&amp;quot;]

	if (!list || !list.length || list.length == 0 || (list.length == 1 &amp;amp;&amp;amp; list[0] == &amp;quot;&amp;quot;)) {
		list = codes;
	}

	var hl = document.getElementsByName('hl');
	var current = list[0]; // default
	if (hl.length &amp;gt; 0) {
		current = hl[0].value;
	}
	
	function generateOption(k) {
		var index = codes.indexOf(k);
		return '&amp;lt;option value=&amp;quot;' + k + '&amp;quot;' + ((k == current)? ' selected=&amp;quot;selected&amp;quot;' : '') + '&amp;gt;' + ((index == -1) ? k : names[index]) + '&amp;lt;/option&amp;gt;';
	};
	
	var container = document.createElement('span');
	container.style.lineHeight = &amp;quot;30px&amp;quot;;
	
	var sel = document.createElement('select');
	sel.setAttribute('id','glccHl');
	sel.style.margin = &amp;quot;0 2px&amp;quot;;
	sel.innerHTML = list.map(generateOption).join(&amp;quot;\n&amp;quot;);
	container.appendChild(sel);
	
	var button = document.getElementsByName('btnG')[0];
	button.parentNode.style.whiteSpace = &amp;quot;nowrap&amp;quot;;
	button.parentNode.appendChild(container);
	
	sel.addEventListener(&amp;quot;change&amp;quot;, function (event) {
		document.getElementsByName('hl')[0].value = this.options[this.selectedIndex].value;
		document.getElementsByName('btnG')[0].click();
	}, true);
}
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/ultraist/let/gYC-yM6riL2sXw">
    <link>https://let.hatelabo.jp/ultraist/let/gYC-yM6riL2sXw</link>
    <dc:date>2011-09-23T23:56:31Z</dc:date>
    <description>favstarのユーザーアイコンをクリックしたときにrecentに飛ぶようにします。</description>
    <dc:creator>ultraist</dc:creator>
    <title>[Let] favstar_recent_link</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Fultraist%2Flet%2FgYC-yM6riL2sXw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;favstar_recent_link&lt;/a&gt;&lt;pre&gt;// ==UserScript==
// @title          favstar_recent_link
// @name           favstar_recent_link
// @description    favstarのユーザーアイコンをクリックしたときにrecentに飛ぶようにします。
// @namespace      http://www.udp.jp
// @include        http://favstar.fm/*
// @license        MIT License
// ==/UserScript==
(function() {
    function replace_avatar_link() {
	var links = document.getElementsByTagName(&amp;quot;a&amp;quot;);
	for (var i = 0; i &amp;lt; links.length; ++i) {
	    if (links[i].href.indexOf('recent') &amp;lt; 0) {
		if (links[i].className.indexOf('avatar') &amp;gt;= 0) {
		    links[i].href += '/recent';
		} else if (links[i].parentNode 
			   &amp;amp;&amp;amp; links[i].parentNode.className.indexOf('mainAvatar') &amp;gt;= 0) 
		  {
		      links[i].href += '/recent';
		  }
	    }
	}
    }
    var win = typeof unsafeWindow != &amp;quot;undefined&amp;quot; ? unsafeWindow : window;
    var view_other_avatars_old = win.view_other_avatars;
    if (typeof view_other_avatars_old == &amp;quot;function&amp;quot;) {
	win.view_other_avatars = function(a, b, c) {
	    view_other_avatars_old(a, b, c);
	    setTimeout(replace_avatar_link, 1000);
	};
    }
    replace_avatar_link();
})();
&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
