$(document).ready(function() {

	createAssets();
	$(window).bind("resize", resizeContainer);
	resizeContainer();

	SyntaxHighlighter.all();



});



var commentIconSets = new Array();

function init(){


	$("#gnavi a[href*='#']").easingScroll({
					easing: "easeInOutQuad",
					duration: 700
				});



	var scX;
	scX = (2914 - 800)/2 - ($(window).width()-800)/2;

	window.scroll(scX,0);


	
	//Blog Image 
	$("#areaBlog #blogMain .section p img").parent().addClass("blogImgContainer");

	
	//Comment Icon
	$(".blogCommentIconSet").each(function(){
		
		commentIconSets.push($(this));

		
		var id = $(this).attr("id");
		id = id.split("blogCommentIconSet")[1];
		var numComment = $("#blogComment"+id +" li.commentContainer").length;

		for(k=0;k<numComment;k++){
			var str = '<a href="javascript:toggleOneComment(\'blogComment' + id + '_' + k +'\')">';
			str += '<img src="img/commenticon.png" width="29" height="41" class="commentIcon" id="commentIcon' + id + '_' + k + '" />';
			str += '</a>';
			var com = $("#blogComment"+id+" li div.info").eq(k).text().split(" ")[1];
			str += '<em><div>'+com+'</div></em>';

			$(this).append(str);
		}
		for(k=0;k<numComment;k++){
			var icon = $("#commentIcon" + id + "_" + k);
			icon.css("position","absolute");
			icon.css("top",icon.position().top + Math.random()*20-10);
			icon.css("left",icon.position().left + k * 40);
			icon.css("z-index",200);
			var d = document["iconData_"+ id + "_" + k] = new IconData(icon.position().left,icon.position().top);
			d.container = $("#blogComment"+id + " .commentContainer").eq(k);

			var popup = $("#commentIcon" + id + "_" + k).parent("a").next("em");
			popup.css("display","none");
		}

	})

	//popup

	$("img.commentIcon").hover(

		function() {


			var popup =  $(this).closest("a").next("em");
			popup.css("top",$(this).position().top-100);
			popup.css("left",$(this).position().left-60);
			popup.fadeIn(300);
	
		},
		function() {

			var popup =  $(this).closest("a").next("em");
			popup.fadeOut(300);
	
		}
	);



	//works
	$("#areaWorks li").each(
		function(a){
		
			
			$(this).css("position","absolute");
			$(this).css("z-index",8);
			$(this).css("top",190*Math.floor(a/3) + 70 + (Math.random()*20-10));
			$(this).css("left",240*Math.floor(a%3) + 80 + (Math.random()*20-10));

/*
			this.css("position","absolute");
			this.css("top",2000);
*/

		}
	)
	
	//rollover
	var postfix = '_on';
	$('.blogCommentButtonSet img').not('[src*="'+ postfix +'."]').each(function() {
		var img = $(this);
		var src = img.attr('src');
		var src_on = src.substr(0, src.lastIndexOf('.'))
		           + postfix
		           + src.substring(src.lastIndexOf('.'));
		$('<img>').attr('src', src_on);
		img.hover(
			function() {
				img.attr('src', src_on);
			},
			function() {
				img.attr('src', src);
			}
		);
	});


	
	//Boochang
	initBooChang();
	
	//hideCover
	$("#pageCover").fadeOut(500);
	
	initTwitter();


}




function createAssets(){

	var str = ""+
	"<div id=\"pageCover\"></div>"+
	"<div id=\"line1\"></div>"+
	"<div id=\"line2\"></div>"+
	
	"<div id=\"areaLeft\"></div>"+
	
	"<div id=\"areaLeftTop\"></div>"+
	"<div id=\"areaTwitter\"></div>"+
	"<div id=\"areaPhoto\"></div>"+
	"<div id=\"areaProfile\"></div>"+

	"<div id=\"obj_drop\"></div>"+
	"<div id=\"obj_mejar\"></div>"+
	"<div id=\"obj_tool\"></div>"+
	"<div id=\"obj_kusakusa\"></div>";
	
	$("#page").append(str);

}


/***************************************************************/
function refreshSite(){

	$("#pageCover").fadeIn(500,function(){
		location.href = "/";
	});

}

/***************************************************************/
	//twitter
var numTweet = 6;
	
function initTwitter(){

	//icon
	var area = $("#areaTwitter");
	
	var str = "<div id=\"twitterImg\"><a href=\"http://twitter.com/#!/nishina\" target=\"_blank\"><img src=\"img/obj_twitter.png\" alt=\"twitter\" width=\"194\" height=\"97\"/></a></div>"
	area.append(str);


	var tweeturl="http://api.twitter.com/1/statuses/user_timeline.json";
	$.getJSON(
		"http://api.twitter.com/1/statuses/user_timeline.json?callback=?",
		{
			id:'nishina',
			count :numTweet
		},
		function(json){

		  $.each(json,
		  	function(i){
		  		createOneTweetForest(i,this.created_at,this.text.substr(0,16));

		  	}
		  )

		});
}

function createOneTweetForest(num,date,tweet){

	//date
	var dateArr = date.split(" ");
	date = "";
	for(var i=0;i<4;i++){
		date+=dateArr[i]+" ";
		if(i==2){
			date+="<br />";
		}
	}
	var dateStr = "<div class=\"date\">"+date+"</div>";
	$("#areaTwitter").append(dateStr);
	$("#areaTwitter .date").eq(num).css("top",105+num*120);

	//typos 
	var id = "tweetForest"+num;
	var str = "<div id=\""+ id +"\">";

	for(var i=0;i<tweet.length;i++){
		str += "<div class=\"shadow\">";
		str += tweet.substr(i,1);
		str += "</div>";
		str += "<div class=\"tree\">";
		str += tweet.substr(i,1);
		str += "</div>";
	}
	str += "</div>";

	$("#areaTwitter").append(str);


	for(i=0;i<tweet.length;i++){

		var typo = $("div#"+id + " div.tree").eq(i);

		var styleId = Math.ceil(Math.random()*3);
		
		var ofY = Math.floor(i/8);
		var ofX = 600 * Math.floor(i/8);

		var tY = 100+num*120+ (ofY*60)+Math.random()*20-10;
		var tX = 100+ i*80+Math.random()*30-15 - ofX;
		
		typo.addClass("tweetStyleType"+styleId)
			.css("top",tY)
			.css("left",tX);
			
		var shadow = $("div#"+id + " div.shadow").eq(i);
		shadow.css("top",tY)
			.css("left",tX + 14);
	}




//	$("#"+id + " div").css("left",a*70+Math.random()*20);

}



/***************************************************************/
	//comment

function toggleAllComment(id,b){ // ex) id = blogComment123

	var prevHeight = $("#blogMain").height();


	var numComment = $("#"+id + " .commentContainer").length;
	for(i = 0;i<numComment;i++){
		if(b){
			$("#"+id + " .commentContainer").eq(i).show();
			

			
		} else {
			$("#"+id + " .commentContainer").eq(i).hide();
		}
	}
	if(b){
		moveCommentIcon("commentIcon"+id.split("blogComment")[1]+"_999","SHOW");
	} else {
	
	
	
		moveCommentIcon("commentIcon"+id.split("blogComment")[1]+"_999","HIDE");
	}

	//resize
	resizeContainer();
	
	
	var currentHeight = $("#blogMain").height();
	var changeDis = currentHeight - prevHeight;
	var iconSet = $("#blogCommentIconSet"+id.split("blogComment")[1]);
	
	var cid = ("blogCommentIconSet"+id.split("blogComment")[1]);
	var startIndex;
	for(i=0;i<commentIconSets.length;i++){
		if(commentIconSets[i].attr("id")==cid){
			startIndex = i+1;
			break;
		}
	}

	fixCommentIconPosi(startIndex,changeDis);

	
}

function fixCommentIconPosi(index,dis){

	for(var i=index;i<commentIconSets.length;i++){
		var iconSet = commentIconSets[i];
		$("#"+iconSet.attr("id")+" img").each(
			function(a){
			
				var dY = $(this).position().top;
				var tY = dY + dis;

				$(this).css("top",tY);
			
				var iconData = document["iconData_"+iconSet.attr("id").split("blogCommentIconSet")[1]+"_"+a];
				iconData.defaultY += dis;
			
			}
		)
	}

}


function toggleOneComment(id){ // ex) id = blogComment123_1

	var prevHeight = $("#blogMain").height();


	var commentSetId = "#"+id.split("_")[0];

	//コンテナを表示・非表示
	var commentContainer = $(commentSetId+" .commentContainer").eq(id.split("_")[1]);
	if(commentContainer.css("display")=="none"){
		commentContainer.fadeIn(500);
	} else {
		commentContainer.hide();
	}
	
	//iconを移動
	moveCommentIcon("commentIcon" + id.split("blogComment")[1]);
	
	//resize
	resizeContainer();
	
	//その他のコメントアイコン調整
	var currentHeight = $("#blogMain").height();
	var changeDis = currentHeight - prevHeight;
	var iconSet = $("#blogCommentIconSet"+id.split("blogComment")[1]);
	
	var cid = ("blogCommentIconSet"+id.split("blogComment")[1].split("_")[0]);
	var startIndex;
	
	console.log(cid);
	for(i=0;i<commentIconSets.length;i++){
		if(commentIconSets[i].attr("id")==cid){
			startIndex = i+1;
			break;
		}
	}

	fixCommentIconPosi(startIndex,changeDis);

	
}

function moveCommentIcon(id,all){ //ex)id = commentIcon123_1
	
	var commentSetId = id.split("_")[0].split("commentIcon")[1];
	var movId = id.split("_")[1];
	var numIcon = $("#blogComment"+id.split("_")[0].split("commentIcon")[1] + " .commentContainer").length;


	for(var i=0;i<numIcon;i++){
		
		var icon = $("#commentIcon"+commentSetId+"_"+i);
		var iconData = document["iconData_"+commentSetId+"_"+i];

		if(i==movId||all=="SHOW"||all=="HIDE"){		
		
			if((iconData.isOpen && !all)||all=="HIDE"){
				iconData.isOpen = false;
				icon.animate({
					top:iconData.defaultY,
					left:iconData.defaultX
				},600);
			} else {
			
				iconData.isOpen = true;
		//		alert("#blogComment"+id.split("_")[0].split("commentIcon")[1]);
		
				icon.animate({
					left:72,
					top: iconData.container.position().top - 8
				},600);
				
			}
		} else if (iconData.isOpen==true){
			

			$("#commentIcon"+commentSetId+"_"+i).animate({
				left:72,
				top: iconData.container.position().top - 8
			},600);

		
		}
		
	}
	
}

function resizeContainer(e) {

	var containerHeight = $("#blogMain").height()+ 500;
	containerHeight = Math.max(containerHeight,2400);

	(function(jq) {
		for(var i = 0; i < jq.length; i++) {
			jq[i].css("height", containerHeight);
			jq[i].css("overflow-y", "auto");
			jq[i].css("overflow-x", "hidden");
		}
	})(new Array($("#line1"), $("#line2"), $("#areaLeft")));
	

}


function togglePostComment(id) {
	var com = $("#"+id);
	if(com.css("display")=="none"){
		com.fadeIn(500);
	} else {
		com.fadeOut(500);
	}
	
	var sectionId = id.split("comment")[1];
	$("#section"+sectionId + " img.iconWrite1").toggle();
	$("#section"+sectionId + " img.iconWrite2").toggle();

	//resize
	resizeContainer();
	
}


function IconData(dX,dY){
	this.defaultX = dX;
	this.defaultY = dY;
	this.isOpen = false;
	this.container;
}

var boochang;

function initBooChang(){

	var str = '<div id="boochang"><img src="img/boochang.png" /></div>';
	$("body").append(str);
	var graphic = $("#boochang");

	boochang = new BooChang(graphic);
	bootime = 0;

	startBooChang();
	
}

function startBooChang(){

		var rad = Math.atan2(boochang.accY,boochang.accX);
		var rot = rad * 180 / Math.PI;
//		$("#boochang img").rotateAnimation(rot);
		$("#boochang img").animate({rotate:rot+'deg'});

	setInterval(updateBooChang,50);

}
function updateBooChang(){
	
	bootime++;
	
	boochang.pX += boochang.accX;
	boochang.pY += boochang.accY;
	boochang.graphic.css("left",boochang.pX);
	boochang.graphic.css("top",boochang.pY);

	if(bootime%boochang.nextUpdate==0){

		bootime = 0;
		boochang.accX = Math.random()*3 - 1.5;
		boochang.accY = Math.random()*3 - 1.5;
		boochang.nextUpdate = Math.round(Math.random()*100+50);

		if(Math.random()<0.08){
			boochang.accX = boochang.accY = 0;
			//shit
			var shitId = "booshit"+Math.round(Math.random()*100);
			var str = '<div id="'+shitId+'"><img src="img/booshit.png" /></div>';


			$("body").append(str);
			var shit = $("#"+shitId);

			shit.css("position","absolute");
			shit.css("z-index",8887);
			shit.css("top",boochang.pY + 50 + Math.random()*10-5);
			shit.css("left",boochang.pX+ 50 + Math.random()*10-5);

		}
		
		var rad = Math.atan2(boochang.accY,boochang.accX);
		var rot = rad * (180 / Math.PI);

//		$("#boochang img").rotateAnimation(rot);
		$("#boochang img").animate({rotate:rot+'deg'})
		
		
		
	}
}



function BooChang(gra){

	
	this.pX = 1000;
	this.pY = 1000;
	this.cX = this.pX;
	this.cY = this.pY;
	this.spdX;
	this.spdY;
	this.accX = 2;
	this.accY = -1;
	this.nextUpdate = 150;

	this.graphic = gra;

	this.graphic.css("position","absolute");

	this.graphic.css("z-index",8888);

	this.graphic.css("top",this.pX);
	this.graphic.css("left",this.pY);


}


