jQuery.fn.reverse=Array.prototype.reverse;String.prototype.linkify=function(){
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g,function(m){
																		return m.link(m);
																		}
	);
};
String.prototype.linkuser=function(){
	return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){
												var username=u.replace("@","")
												return u.link("http://twitter.com/"+username);
											}
	);
};

String.prototype.linktag=function(){
	return this.replace(/[#]+[A-Za-z0-9-_]+/,function(t){
												var tag=t.replace("#","%23")
												return t.link("http://search.twitter.com/search?q="+tag);
											}
	);
};

function get_theme(){
	var bound = new Array(4);
	return bound;
}

function GetMonth(intMonth){
	var MonthArray = new Array("January", "February", "March","April", "May", "June","July", "August", "September","October", "November", "December");
	return MonthArray[intMonth];
}

function getDateStr(){

	var today = new Date();
	var hours = today.getHours();
	var minutes = today.getMinutes();
	var todayStr = GetMonth(today.getMonth()) + ". " + today.getDate();
    todayStr += ' at ' + hours+':' + minutes ;

    return todayStr;
}

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function createSerchWords()
{
	var para = getUrlVars()['r'];
	var keywords;

	switch(para){
	case '1088':
		keywords =URLencode('#fx_on_com')+'+OR+USD/JPY+OR+ドル円+OR+USDJPY';
		break;
	case '1090':
		keywords =URLencode('#fx_on_com')+'+OR+GBP/JPY+OR+ポンド円+OR+GBPJPY';
		break;
	case '1091':
		keywords =URLencode('#fx_on_com')+'+OR+EUR/JPY+OR+ユーロ円+OR+EURJPY+OR+ユロエン';
		break;
	case '1092':
		keywords =URLencode('#fx_on_com')+'+OR+AUD/JPY+OR+豪ドル円+OR+AUDJPY';
		break;
	case '1093':
		keywords =URLencode('#fx_on_com')+'+OR+CHF/JPY+OR+フラン円+OR+CHFJPY';
		break;
	case '1094':
		keywords =URLencode('#fx_on_com')+'+OR+CAD/JPY+OR+カナダドル円+OR+CADJPY';
		break;
	case '1095':
		keywords =URLencode('#fx_on_com')+'+OR+NZD/JPY+OR+NZドル円+OR+NZDJPY';
		break;
	case '1097':
		keywords =URLencode('#fx_on_com')+'+OR+ユーロドル+OR+EURUSD';
		break;
	case '1098':
		keywords =URLencode('#fx_on_com')+'+OR+ポンドドル+OR+GBPUSD+OR+ボンド米ドル';
		break;
	case '1099':
		keywords =URLencode('#fx_on_com')+'+OR+NZD/USD+OR+NZドルドル+OR+NZDUSD+OR+NZドル米ドル';
		break;
	case '1100':
		keywords =URLencode('#fx_on_com')+'+OR+AUD/USD+OR+豪ドルドル+OR+AUDUSD+OR+豪ドル米ドル';
		break;
	case '1105':
		keywords =URLencode('#fx_on_com')+'+OR+USD/CHF+OR+フランドル+OR+USDCHF';
		break;
	case '1103':
		keywords =URLencode('#fx_on_com')+'+OR+USD/CAD+OR+ドルカナダドル+OR+USDCAD';
		break;
	case '1101':
		keywords =URLencode('#fx_on_com')+'+OR+EUR/GBP+OR+ユーロポンド+OR+EURGBP';
		break;
	case '1102':
		keywords =URLencode('#fx_on_com')+'+OR+EUR/AUD+OR+ユーロ豪ドル+OR+EURAUD';
		break;
	case '1107':
		keywords =URLencode('#fx_on_com')+'+OR+EUR/CHF+OR+ユーロフラン+OR+EURCHF';
		break;
	case '1104':
		keywords =URLencode('#fx_on_com')+'+OR+AUD/CAD+OR+豪ドルカナダドル+OR+AUDCAD';
		break;
	case '1106':
		keywords =URLencode('#fx_on_com')+'+OR+GBP/CHF+OR+ポンドフラン+OR+GBPCHF';
		break;
	case '1096':
		keywords =URLencode('#fx_on_com')+'+OR+ZAR/JPY+OR+ZARJPY+OR+ランド円';
		break;
	default:
		keywords =URLencode('#fx_on_com')+'+OR+USD/JPY+OR+ドル円+OR+USDJPY+OR+GBP/JPY+OR+ポンド円+OR+GBPJPY+OR+EUR/JPY+OR+ユーロ円+OR+EURJPY+OR+AUD/JPY+OR+豪ドル円+OR+AUDJPY+OR+CHF/JPY+OR+フラン円+OR+CHFJPY+OR+CAD/JPY+OR+カナダドル円+OR+CADJPY+OR+NZD/JPY+OR+NZドル円+OR+NZDJPY+OR+EUR/USD+OR+ユーロドル+OR+EURUSD+OR+GBP/USD+OR+ポンドドル+OR+GBPUSD+OR+ボンド米ドル+OR+NZD/USD+OR+NZドルドル+OR+NZDUSD+OR+NZドル米ドル+OR+AUD/USD+OR+豪ドルドル+OR+AUDUSD+OR+豪ドル米ドル+OR+USD/CHF+OR+フランドル+OR+USDCHF+OR+USD/CAD+OR+ドルカナダドル+OR+USDCAD+OR+EUR/GBP+OR+ユーロポンド+OR+EURGBP+OR+EUR/AUD+OR+ユーロ豪ドル+OR+EURAUD+OR+EUR/CHF+OR+ユーロフラン+OR+EURCHF+OR+AUD/CAD+OR+豪ドルカナダドル+OR+AUDCAD+OR+GBP/CHF+OR+ポンドフラン+OR+GBPCHF+OR+ZAR/JPY+OR+ZARJPY+OR+ランド円+外為+OR+為替+OR+ユロエン+OR+日経２２５+OR+日経225+OR+日経先物';
		break;
	}

    return keywords;
}

function fetch_tweets(elem)
{
	elem=jQuery(elem);
	input='1';

	if(input!=window.tweet_erea['text-'+input]){
		window.tweet_erea['last_id'+input]=0;
		window.tweet_erea['text-'+input]=input;
		window.tweet_erea['count-'+input]=5;
		;
	}

	var keywords = createSerchWords();
	var url="http://search.twitter.com/search.json?q="+keywords+"&lang=ja"+"&rpp="+rrp+"&callback=?";
	jQuery.getJSON(url,function(json){
		jQuery(json.results).reverse().each(function(){
											if(jQuery('#tw'+this.id,elem).length==0){
												window.tweet_erea['count-'+input]++;
												var thedatestr=getDateStr();
												var divstr='<div class ="waku"><div id="tw'+this.id+'" class="tweet"><img width="48" height="48" src="'+this.profile_image_url+'" /><p class="user"><a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a></p><p class="text">'+this.text.linkify().linkuser().linktag()+'<br />&nbsp;</p></div><div class="timetwe">'+thedatestr+'</div></div>';
												window.tweet_erea['last_id'+input]=this.id;
												elem.prepend(divstr);

												jQuery('#tw'+this.id,elem).hide();
												jQuery('#tw'+this.id+' img',elem).hide();
												jQuery('#tw'+this.id+' img',elem).fadeIn(4000);
												jQuery('#tw'+this.id,elem).fadeIn('slow');
											}
		});

		input=escape(input);
		rrp=1;
		setTimeout(function(){
			fetch_tweets(elem)
			},
			2000);
	});
	return(false);
}

jQuery(document).ready(function(){
	window.tweet_erea={};

	jQuery('.tweet_erea').each(function(e){
		rrp=6;
		fetch_tweets(this);
	});



});






function URLencode(str){
	 var i, encoded_str, char_code, padded_str;
	         encoded_str = "";
	         for (i = 0; i < str.length; i++){
	             char_code = str.charCodeAt(i);
	             if (char_code == 0x20){
	                encoded_str += "+";}
	             else {
	                  if (((0x30 <= char_code) && (char_code <= 0x39)) || ((0x41 <= char_code) && (char_code <= 0x5a)) || ((0x61 <= char_code) && (char_code <= 0x7a))){
	                	  encoded_str += str.charAt(i);
	                  }
			  else if ((char_code == 0x2a) || (char_code == 0x2e) || (char_code == 0x2d) || (char_code == 0x5f)) {
	                     encoded_str += str.charAt(i);
			  }
	                  else {
	                       if ( char_code > 0xffff ) {
	                          encoded_str += "%" + ((char_code >> 18) | 0xf0).toString(16).toUpperCase();
	                          encoded_str += "%" + (((char_code >> 12) & 0x3f) | 0x80).toString(16).toUpperCase();
				  encoded_str += "%" + (((char_code >> 6) & 0x3f) | 0x80).toString(16).toUpperCase();
				  encoded_str += "%" + ((char_code & 0x3f) | 0x80).toString(16).toUpperCase();
			       }
	                       else if ( char_code > 0x7ff ) {
	                          encoded_str += "%" + ((char_code >> 12) | 0xe0).toString(16).toUpperCase();
				  encoded_str += "%" + (((char_code >> 6) & 0x3f) | 0x80).toString(16).toUpperCase();
				  encoded_str += "%" + ((char_code & 0x3f) | 0x80).toString(16).toUpperCase();
	                       }
	                       else if ( char_code > 0x7f ) {
			          encoded_str += "%" + (((char_code >> 6) & 0x1f) | 0xc0).toString(16).toUpperCase();
				  encoded_str += "%" + ((char_code & 0x3f) | 0x80).toString(16).toUpperCase();
	                       }
	                       else {
	                          padded_str = "0" + char_code.toString(16).toUpperCase();
	                          encoded_str += "%" + padded_str.substr(padded_str.length - 2, 2);
	                       }
	                    }
	                }
	        }
	        return encoded_str;
	}







