var tweet = "";
var str;
var getTweetFlag = -1; /* -1:読み込み中、0：実行中、1：新規ツイート実行可能 */
(function ($) {
	$.fn.twitter = function (){
		getTweet();
		var nowCount = 0;
		var waitCount = 0;
		var waitCountNum = 10000;
		var tweetChars = new Array();
		
		var twitterTimer = setInterval(function() {
			
			if (getTweetFlag == -1 || waitCount < 30) {
				//window.alert("読み込み中" + getTweetFlag);
				waitCount++;
			}
			else if (getTweetFlag == 0 && parseInt(nowCount) < parseInt(str.length)) {
				tweetChars[nowCount] = new tweetChar(str[nowCount]);
				//window.alert("実行中" + getTweetFlag);
				nowCount++;
			}
			else if (getTweetFlag == 1) {
				//clearInterval(twitterTimer);
				
				waitCount = 0;
				nowCount = 0;
				getTweet();
			}
		}, 500);
	}
})(jQuery);

var tweetNum = 0;
function getTweet() {
	$("footer div#outsideLinks p").remove();
	var tmpTweet = "";
	getTweetFlag = -1;
	
	tweet = "ツイート読み込み中です。少々お待ちください。";
	str = tweet.split('');
	getTweetFlag = 0;
	
	$.getJSON("http://twitter.com/statuses/user_timeline/Lexues_recruit.json?callback=?", function (json) {													
		var i = 0;
		for(i in json){            
			$("#twitter").append("<p>" + json[i].text + "</p>");
			tmpTweet = json[0].text;
			//window.alert(json[0].text);
		}
		//window.alert("json.length, " + json.length);
		tmpTweet = json[tweetNum % json.length].text;
		tweet = tmpTweet;
		str = tweet.split('');
		getTweetFlag = 0;
		tweetNum++;
	});
}

var completeCharNum = 0;
var tweetChar = function(inChar){
	var random0 = Math.random() * 1;
	var random1 = Math.random() * 3;
	var random2 = Math.random() * 5;
	
	var firstX = -30;
	var bgnX = -80;
	var endX = -120;
	
	var firstY = 0;
	var bgnY = 10;
	var endY = -700;
	
	var maxCountNum = 400;
	
	var element = document.createElement('p');
	element.innerHTML = inChar;	
	var parent = $("footer div#outsideLinks"); 
	parent.append(element);
	
	
	if (jQuery.support.noCloneEvent) {
		var twitterIconCount = 0;
		var twitterIconMaxCountNum = 4;
		
		var tmpScale = 1 + (0.2 * Math.random());
		var tmpRotate = 30 * (Math.random() - 0.5);
		
		var twitterIconTimer = setInterval(function() {
			if (twitterIconCount < twitterIconMaxCountNum) {
				twitterIconCount++;
				var nowNum = getNum(twitterIconCount, twitterIconMaxCountNum, "icon");
				
				$("footer div#outsideLinks li").eq(1).css("-moz-transform", "scale(" + tmpScale * nowNum + ") rotate(" + tmpRotate * nowNum +"deg)");
				$("footer div#outsideLinks li").eq(1).css("-webkit-transform", "scale(" + tmpScale * nowNum + ") rotate(" + tmpRotate * nowNum +"deg)");
				$("footer div#outsideLinks li").eq(1).css("-ms-transform", "scale(" + tmpScale * nowNum + ") rotate(" + tmpRotate * nowNum +"deg)");
				$("footer div#outsideLinks li").eq(1).css("-o-transform", "scale(" + tmpScale * nowNum + ") rotate(" + tmpRotate * nowNum +"deg)");
				$("footer div#outsideLinks li").eq(1).css("transform", "scale(" + tmpScale * nowNum + ") rotate(" + tmpRotate * nowNum +"deg)");
			}
			else {
				$("footer div#outsideLinks li").eq(1).css("-moz-transform", "scale(1.0) rotate(0.0deg)" );
				$("footer div#outsideLinks li").eq(1).css("-webkit-transform", "scale(1.0) rotate(0.0deg)" );
				$("footer div#outsideLinks li").eq(1).css("-ms-transform", "scale(1.0) rotate(0.0deg)" );
				$("footer div#outsideLinks li").eq(1).css("-o-transform", "scale(1.0) rotate(0.0deg)" );
				$("footer div#outsideLinks li").eq(1).css("transform", "scale(1.0) rotate(0.0deg)" );
				clearInterval(twitterIconTimer);
				twitterIconCount = 0
			}
		}, 5);
	}
	var charCount = 0;
	var firstCountNum = 80;
	
	charTimer();
	function charTimer() {
		if (charCount < firstCountNum) {
			$(element).css("right", firstX - (firstX - bgnX) * getNum(charCount, firstCountNum, "firstX") + "px");
			$(element).css("top", firstY - (firstY - bgnY) * getNum(charCount, firstCountNum, "firstY") + "px");
			charCount += 5;
			setTimeout(charTimer, 20);
		}
		else if (charCount - firstCountNum < maxCountNum) {
			$(element).css("right", bgnX - (bgnX - endX) * getNum(charCount - firstCountNum, maxCountNum, "x") + "px");
			$(element).css("top", bgnY - (bgnY - endY) * getNum(charCount - firstCountNum, maxCountNum, "y") + "px");
			
			if(jQuery.support.opacity == true) {
				var tmpScale = parseInt(1.0) + 2 * parseFloat(getNum(charCount - firstCountNum, maxCountNum, 0));
				$(element).css("-moz-transform", "scale(" + tmpScale + ")");
				$(element).css("-webkit-transform", "scale(" + tmpScale + ")");
				$(element).css("-o-transform", "scale(" + tmpScale + ")");
				$(element).css("-ms-transform", "scale(" + tmpScale + ")");
				$(element).css("transform", "scale(" + tmpScale + ")");
				$(element).css("opacity", 1 - getNum(charCount - firstCountNum, maxCountNum, "y"));
			}
			
			charCount += 5;
			setTimeout(charTimer, 20);
			
getTweetFlag = 0; //けずりたい
		}
		else {
			clearTimeout(charTimer);
			$(element).remove();
			
			completeCharNum += 1;
			
			if (completeCharNum >= tweet.length - 1) {
getTweetFlag = 1; //けずりたい
completeCharNum = 0;
			}
		}
	}
	
	function getNum(inNowCount, inMaxCount, type) {
		var nowNum = parseFloat(parseInt(inNowCount) / parseInt(inMaxCount));
		
		if (type == "x") {
			var sinNum0 = Math.sin(2 * (nowNum * Math.PI) * random0);
			var sinNum1 = Math.sin(2 * (nowNum * Math.PI) * random1);
			var sinNum2 = Math.sin(2 * (nowNum * Math.PI) * random2);
			
			return ((sinNum0 + sinNum1 + sinNum2) / 3 * nowNum);
		}
		else if (type == "y") {
			return (Math.pow(nowNum, 2));
		}
		else if (type == "firstX") {
			return (1 - Math.pow((1 - nowNum), 2));
		}
		else if (type == "firstY") {
			return (1 - Math.pow((1 - nowNum), 4));
		}
		else if (type == "icon") {
			return (1 + (0.2 * Math.sin(nowNum * Math.PI)));
		}
		return (nowNum);
	}
}
