function searchTwitter ( query, placeholder, callback, error ) {
	if ( !placeholder ) placeholder = "#twitter";
	if ( typeof placeholder == "string" ) placeholder = document.getElementById(placeholder);
	if ( !placeholder ) return;
	var cb = "__"+(""+Math.random()).substr(2);
	//var type = "atom";
	var type = "json";
	window[cb] = function ( q ) {
		clearTimeout ( errTimeout );
		delete window[cb];
		if ( script.parentNode ) script.parentNode.removeChild ( script );
		var results = document.createElement("ul");
		results.className = "twitter";
		var resultCount = 0;
		//console.log ( q );
		if ( type == "atom" ) {
			for ( var i = 0; i < q.entries.length; i ++ ) {
				( function ( result, i ) {
					//console.log ( result );
					var item = document.createElement("li");
					var user = document.createElement("a");
					user.href = result.author_detail.href;
					var img = document.createElement("img");
					img.src = result.links[1].href;
					user.appendChild ( img );
					item.appendChild ( user );
					var msg = document.createElement("a");
					msg.href = result.link;
					var text = document.createTextNode(result.title);
					msg.appendChild ( text );
					item.appendChild ( msg );
					results.appendChild ( item );
					resultCount ++;
				} ) ( q.entries[i], i );
			}
		} else if ( type == "json" ) {
			for ( var i = 0; i < q.results.length; i ++ ) {
				( function ( result, i ) {
					var item = document.createElement("li");
					results.appendChild ( item );
					var user = document.createElement("a");
					user.href = "http://twitter.com/" + result.from_user;
					item.appendChild ( user );
					var img = document.createElement("img");
					img.src = result.profile_image_url;
					user.appendChild ( img );
					var msg = document.createElement("a");
					msg.href = user.href + "/statuses/" + result.id;
					var text = document.createTextNode(result.text);
					msg.appendChild ( text );
					item.appendChild ( msg );
					//console.log ( result );
					resultCount ++;
				} ) ( q.results[i], i );
			}
		}
		if ( resultCount )
			placeholder.appendChild ( results );
		if ( typeof callback == "function" ) callback(query);
	}
	var script = document.createElement("script");
	script.type = "text/javascript";
	if ( type == "json" ) {
		script.src = "http://search.twitter.com/search.json?callback=" + cb + "&q=" + escape ( query );
	} else if ( type == "atom" ) {
		var search = "http://search.twitter.com/search.atom?q=" + escape ( query );
		script.src = "http://rsstojson.appspot.com/json?rss=" + escape ( search ) + "&callback=" + cb;
	}
	//console.log ( script.src );
	document.getElementsByTagName("head")[0].appendChild ( script );
	var errTimeout = setTimeout ( function ( ) {
		if ( typeof error == "function" ) error(query);
		//window[cb](eval('({"results":[{"text":"@beatriceEmp #somewhere #italy - i was lost midway in our life, but then virgil helped me out","to_user_id":6827045,"to_user":"beatriceEmp","from_user":"dante1300","id":1313772164,"from_user_id":6827044,"iso_language_code":"en","source":"&lt;a href=&quot;http:\/\/twitter.com\/&quot;&gt;web&lt;\/a&gt;","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/93451559\/dantealighieri_normal.jpg","created_at":"Thu, 12 Mar 2009 01:17:00 +0000"},{"text":"oder das Original ?? http:\/\/www.youtube.com\/watch?v=D68ymfjpw98 #Somewhere over the rainbow","to_user_id":null,"from_user":"laTuya","id":1287651505,"from_user_id":540203,"iso_language_code":"en","source":"&lt;a href=&quot;http:\/\/www.twhirl.org\/&quot;&gt;twhirl&lt;\/a&gt;","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/54678432\/ichalsBild_normal.png","created_at":"Fri, 06 Mar 2009 09:46:20 +0000"},{"text":"We have a standard for places on twitter #somewhere and we have a standard for people @someone why don\'t we have a standard for apps?","to_user_id":null,"from_user":"prayingmantis","id":1241106236,"from_user_id":854632,"iso_language_code":"en","source":"&lt;a href=&quot;http:\/\/twitter.com\/&quot;&gt;web&lt;\/a&gt;","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/42980542\/Photo_69_normal.jpg","created_at":"Mon, 23 Feb 2009 15:27:56 +0000"},{"text":"#What #happens #when #every #word #means #something #more #to #someone, #somewhere, #somehow #on #Twitter?","to_user_id":null,"from_user":"bradjward","id":1217409086,"from_user_id":85891,"iso_language_code":"en","source":"&lt;a href=&quot;http:\/\/www.atebits.com\/software\/tweetie\/&quot;&gt;Tweetie&lt;\/a&gt;","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/79787770\/Picture_6_normal.png","created_at":"Tue, 17 Feb 2009 01:44:03 +0000"}],"since_id":0,"max_id":1323302434,"refresh_url":"?since_id=1323302434&q=%23somewhere","results_per_page":15,"total":4,"completed_in":0.451077,"page":1,"query":"%23somewhere"})'));
	}, 2500 );
} 

