// JavaScript Document


/* init
----------------------------------------*/
var d = document;
var arrCode = new Array();// ig_syntax_hilite
d.createElement("header");
d.createElement("nav");
d.createElement("section");
d.createElement("article");
d.createElement("time");
d.createElement("aside");
d.createElement("footer");

jQuery.easing.quart = function (x, t, b, c, d) {
    return -c * ((t=t/d-1)*t*t*t - 1) + b;
};

$(d).ready(function(){
	init();
	jsonQuery();
	snav();
	$("p a[rel*='prettyPhoto'], p a[rel^='lightbox']").affordex();
	prettyPhotoCustom();
	comments();
	commentsPost();
	backtotop();
	camera();
	$("#tweenel").tweenel();
});

function init() {
	if(!$.support.objectAll){
		var divParent = document.createElement("div");
		$(divParent).css({"width":"100%", "backgroundColor":"#404040", "textAlign":"center", "position":"absolute", "top":0, "left":0, "paddingTop":4, "paddingBottom":4});
		$("body").prepend(divParent);
		var divChild = document.createElement("div");
		$(divChild).css({"width":820, "textAlign":"left", "margin":"auto", "position":"relative"});
		$(divParent).append(divChild);
		var p = document.createElement("p");
		$(p).css("color","#ffffff");
		$(divChild).append(p);
		$(p).append("このサイトでは標準規格に従わないブラウザをサポートしません。<br />標準規格に沿った最新のより高速なブラウザを推奨します。");
		var ul = document.createElement("ul");
		$(ul).css({"position":"absolute", "top":0, "right":0});
		$(divChild).append(ul);
		$(ul).append('<li><a href="http://mozilla.jp/firefox/"><img src="/blog/wp-content/themes/t2d2009v2/_common/img/browser_firefox.gif" width="84" height="35" alt="Firefox" /></a></li><li><a href="http://www.google.com/chrome/"><img src="/blog/wp-content/themes/t2d2009v2/_common/img/browser_chrome.gif" width="137" height="35" alt="Google Chrome" /></a></li><li><a href="http://www.apple.com/jp/safari/"><img src="/blog/wp-content/themes/t2d2009v2/_common/img/browser_safari.gif" width="76" height="35" alt="Safari" /></a></li>');
		$(ul).find("li").css({"float":"left", "marginLeft":8, "marginTop":3});
	}
	
	$("#container").append('<img id="tweenel" src="/blog/wp-content/themes/t2d2009v2/_common/img/tweenel_open_01.png" width="100" height="26" alt="tweenel" />');
	$("#tweenel").css({"position":"absolute", "top":0, "right":0});
	
	var imageOver = {
		gnav0: 'gnav_01_on.png',
		gnav1: 'gnav_02_on.png',
		gnav2: 'gnav_03_on.png'
	};
	var imageObj = {};
	$.each(imageOver,
		function(i)
		{
			imageObj[i] = new Image();
			imageObj[i].src = "/blog/wp-content/themes/t2d2009v2/_common/img/" + this;
		}
	);
	
	var count = 0;
	var imageNormal = {};
	$("nav img").each(
		function(i)
		{
			$(this).mouseover(
				function()
				{
					imageNormal[i] = new Image();
					imageNormal[i].src = this.src;
					this.src = imageObj['gnav'+i].src;
				}
			);
		}
	);
	$("nav img").each(
		function(i)
		{
			$(this).mouseout(
				function()
				{
					this.src = imageNormal[i].src;
				}
			);
		}
	);
}

function getHrefID(t) {
	var to = t.href.length;
	var from = t.href.indexOf("#", 0) + 1;
	var id = t.href.substring(from, to);
	return id;
}

function prettyPhotoCustom() {
	$("a[rel*='prettyPhoto'], a[rel^='lightbox']").prettyPhoto(
		{
			padding: 36,
			opacity: 0.6,
			showTitle: false,
			theme: 'dark_square'
		}
	);
}



/* functions
----------------------------------------*/

// web camera
function camera() {
	var html ='<div id="webcamera"></div>';
	$("section+section").append(html);
	
	var att = {
			data:"/blog/wp-content/themes/t2d2009v2/_common/swf/cameraReceive.swf",
			width:"160",
			height:"120"
		};
	var param = {
			wmode: "transparent",
			scale: "noscale",
			menu: false
		};
	swfobject.createSWF(att, param, "webcamera");
	$("#webcamera").css({"margin":16, "marginBottom":0});
}

// panoramip API
function jsonQuery() {
	var total = 0;
	var split = 8;
	var from = 0;
	var to = split;
	var target = 59909;
	var size = "small";
	$.getJSON("http://www.panoramio.com/map/get_panoramas.php?order=upload_date&from=" + from + "&to=" + to + "&set=" + target + "&size=" + size + "&minx=-180&miny=-90&maxx=180&maxy=90&callback=?",
	function(obj) {
		var html = '<ul id="panoramio">';
		total = obj.count;
		$.each(obj.photos, function() {
			html += '<li><a rel="prettyPhoto" href="' + this.photo_url + '?iframe=true&amp;width=100%&amp;height=100%)"><img src="' + this.photo_file_url + '" width="' + this.width + '" height="' + this.height + '" alt="' + this.photo_title + '" /></a></li>';
		});
		html += "</ul>";
		$("section+section").append(html);
		
		prettyPhotoCustom();
	});
}



// aside toggle
function comments() {
	$("aside > p > a[href^='#']").click(
		function()
		{
			var t = $(this).parent().next();
			$(t).slideToggle('slow');
			if(!this.onLoad) commentsReqest(this);
			return false;
		}
	);
}



// ajax comments
function commentsReqest(target) {
	var id = getHrefID($(target).get(0)).replace("aside_", "");
	var url = "/blog/wp-content/themes/t2d2009v2/query.php";
	$.get(url, {tid:id},
		function(d)
		{
			var item = $(d).find("item");
			if(item.length != 0) {
				commentDraw(item, id);
			}
			target.onLoad = true;
		}
	);
}

function commentDraw(item, id) {
	if($("#aside_" + id + " dl.comments").get(0) != undefined) $("#aside_" + id + " dl.comments").remove();
	var html = '<dl class="comments">';
	var url = "";
	item.each(
		function()
		{
			html += '<dt>' + $(this).find("comment_date").text().substring(0,10) + '</dt>';
			url = $(this).find("comment_author_url").text();
			html += '<dd>';
			if(url != "") html += '<a href="' + url + '">';
			html += $(this).find("comment_author").text();
			if(url != "") html += '</a>';
			html += '</dd>';
			html += '<dd>' + $(this).find("comment_content").text() + '</dd>';
		}
	);
	html += '</dl>';
	var form = $("#aside_" + id + " form");
	form.prepend(html);
	$("dl.comments", form).slideDown('quart');
}


function commentsPost() {
	$("aside input[type='image']").click(
		function()
		{
			var form = $(this).parent().parent().get(0);
			var aside = $(form).parent().get(0);
			var id = aside.id.replace("aside_", "");
			var formData = $(form).serialize();
			var url = "/blog/wp-comments-post.php";
			var target = "";
			var error = "";
			$.ajax(
			{
				type: 'post',
				cache: false,
				url: url,
				data: formData,
				success: function(d)
				{
					target = $("aside[id='aside_" + id + "'] > p > a[href^='#']");
					commentsReqest(target);
					if($("#error_" + id).get(0) != undefined) $("#error_" + id).remove()
				},
				error: function(d)
				{
					error = d.responseText.replace(/(.|\n)+<p>(.+)<\/p>(.|\n)+/, '$2');
					if($("#error_" + id).get(0) == undefined) {
						$(form).children("dl:last").before('<p id="error_' + id + '">' + error + '</p>');
					} else {
						$("#error_" + id).text(error);
					}
				}
			}
			)
			return false;
		}
	);
}



// sidenav
function snav() {
	var target = $("section + section > ul:first > li > a");
	target.click(
		function()
		{
			var img = $(this).children();
			var elem = snavSelector(this);
			
			_snavClickHandler(img, elem);
			return false;
		}
	);
	$(d).click(
		function()
		{
			$("#categories, #tags, #archives").css({"display":"none","opacity":0});
		}
	);
}

function snavSelector(t) {
	var id = getHrefID(t);
	var elem = $("#"+id).get(0);
	return $(elem);
}

function _snavClickHandler(img, elem) {
	var position = $(img).position();
	var alpha = 0;
	if(elem.css('height') != "auto") {
		alpha = 0
	} else {
		alpha = 1
	}
	elem.animate(
		{
			height: 'toggle',
			opacity: alpha
		},
		600,
		'quart'
	);
}



// back to top
function backtotop() {
	$("footer > ul a[href^='#container']").click(function() {
		$("html,body").animate({
			scrollTop:0
		},600, 'quart');
		return false;
	});
}




// tweenel alpha
/*
	Plugin Name: tweenel
	Plugin URI: http://www.t2-designing.com/blog/hogefugahage
	Version: 0.0.5
	Licence: MIT License
	Author: Takashi Toyoshima
	Author URI: http://www.t2-designing.com/
*/

(function($) {
	$.tweenel = {version: '0.0.5'}
	$.fn.tweenel = function(ini)
	{
		ini = jQuery.extend({
			user: 'toyotter',
			count: 15,
			duration: 1000,
			easing: 'quart',
			zindex:9000,
			dir:"/blog/wp-content/themes/t2d2009v2/_common/img/"
		}, ini);
		
		var button = this;
		var vx = 16;
		var imgAry = new Array();
		
		$(button).css("cursor","pointer");
		$(button).click(function(){return false;});
		
		$.getJSON("http://twitter.com/statuses/user_timeline.json?screen_name=" +ini.user+ "&count=" +ini.count+ "&callback=?",
			function(d)
			{
				$(button).click(function(){$.tweenel.rendering(d);return false;});
				$.tweenel.cache();
			}
		);
		
		
		$.tweenel.rendering = function(d)
		{
			$("body").append('<div id="twit"></div>');
			$("#twit").css({"display":"none", "position":"absolute", "top":0, "width":"100%", "minHeight":$(document).height(), "backgroundImage":"url("+ini.dir+"tweenel_bg_01.png)", "backgroundPosition":"34px 74px", "zIndex":ini.zindex});
			
			$("#twit").append('<div></div>');
			$("#twit > div").css({"marginTop":40, "padding":35, "overflow":"auto"});
			
			$("#twit").fadeIn("normal");
			
			$("#twit").prepend('<p id="teenelid"><img src="' +ini.dir+ 'tweenel_id_01.png" width="154" height="28" alt="tweenel" /></p>');
			$("#teenelid").css({"position":"absolute", "top":22, "left":43});
			
			$("#twit").append('<p id="twitClose"><a href="#"><img src="' +ini.dir+ 'tweenel_close_01.png" width="29" height="27" alt="Close" /></a></p>');
			$("#twitClose").css({"position":"absolute", "top":23, "left":208});
			$("#twitClose a").click(
				function()
				{
					$("#twit").fadeOut("normal",
						function()
						{
							$(this).remove();
						}
					);
					return false;
				}
			);
			
			var count = 0;
			var text = "";
			var localDate = "";
			
			$(d).each(function()
			{
				var div = document.createElement("div");
				$("#twit > div").append(div);
				$(div).css({"float":"left", "marginRight":0, "marginBottom":0, "position":"relative", "left":0, "opacity":1, "padding":10, "width":312, "height":212, "overflow":"hidden"});
				
				var date = new Date(this.created_at);
				var local = new Date(date.getTime());
				localDate = $.tweenel.setday(local.getDay()) +" "+ $.tweenel.setmonth(local.getMonth()) +" "+ $.tweenel.setbytes(local.getDate()) +" "+ local.getFullYear() +" "+ $.tweenel.setbytes(local.getHours()) +":"+ $.tweenel.setbytes(local.getMinutes());
				
				text = this.text.replace(/(https?:\/\/\S+)/gi, '<a href="$1">$1</a>');
				
				var ul = document.createElement("ul");
				var liImg = document.createElement("li");
				var liName = document.createElement("li");
				var liDate = document.createElement("li");
				var pText = document.createElement("p");
				var pSource = document.createElement("p");
				
				$(div).append(ul);
				$(ul).append(liImg);
				$(ul).append(liName);
				$(ul).append(liDate);
				$(div).append(pText);
				$(div).append(pSource);
				
				$(liImg).append('<img src="' +this.user.profile_image_url+ '" width="48" height="48" alt="' +this.user.name+ '" />');
				$(liName).append(this.user.name);
				$(liDate).append(localDate);
				$(pText).append(text);
				$(pSource).append(this.source);
				
				$(ul).css({"height":48, "overflow":"hidden", "marginBottom":6, "background":"url("+ini.dir+"tweenel_link_01.png) no-repeat 56px 0"});
				$(liImg).css({"float":"left", "paddingRight":15, "display":"none"});
				$(liName).css({"position":"relative", "left":-vx, "opacity":0, "paddingTop":4, "color":"#ffffff"});
				$(liDate).css({"position":"relative", "left":-vx, "opacity":0});
				$(pText).css({"position":"relative", "left":-vx, "opacity":0});
				$(pSource).css({"position":"absolute", "left":-vx, "bottom":4, "textAlign":"right", "width":312, "paddingLeft":10, "opacity":0});
				$(pSource).children().css({"background":"url("+ini.dir+"tweenel_editor_01.png) no-repeat 0 50%", "paddingLeft":27});
				
				$("#twit li").css("cursor","pointer");
				var userName = this.user.name;
				$(ul).click(
					function()
					{
						location.href = "http://www.twitter.com/" + userName;
					}
				);
				
				
				var delay = 80*count++;
				var timeImg = setTimeout(function()
					{
						$(liImg).fadeIn("slow");
						clearTimeout(timeImg);
					},
					delay);
				var timeName = setTimeout(function()
					{
						$.tweenel.setdelay(liName);
						clearTimeout(timeName);
					},
					delay+250);
				var timeDate = setTimeout(function()
					{
						$.tweenel.setdelay(liDate);
						clearTimeout(timeDate);
					},
					delay+500);
				var timeText = setTimeout(function()
					{
						$.tweenel.setdelay(pText);
						clearTimeout(timeText);
					},
					delay+750);
				var timeSource = setTimeout(function()
					{
						$.tweenel.setdelay(pSource);
						clearTimeout(timeSource);
					},
					delay+1000);
			});
			
			$("#twit a").css("color", "#ffffff");
			
		};
		
		$.tweenel.setday = function(n)
		{
			var d = "";
			switch(n) {
				case 0:
					d = "Sun";
					break;
				case 1:
					d = "Mon";
					break;
				case 2:
					d = "Tue";
					break;
				case 3:
					d = "Wed";
					break;
				case 4:
					d = "Thu";
					break;
				case 5:
					d = "Fri";
					break;
				case 6:
					d = "Sat";
					break;
			}
			return d;
		};
		
		$.tweenel.setmonth = function(n)
		{
			var m = "";
			if(n < 6) {
				switch(n) {
					case 0:
						m = "Jan";
						break;
					case 1:
						m = "Feb";
						break;
					case 2:
						m = "Mar";
						break;
					case 3:
						m = "Apr";
						break;
					case 4:
						m = "May";
						break;
					case 5:
						m = "Jun";
						break;
				}
			} else {
				switch(n) {
					case 6:
						m = "Jul";
						break;
					case 7:
						m = "Aug";
						break;
					case 8:
						m = "Sep";
						break;
					case 9:
						m = "Oct";
						break;
					case 10:
						m = "Nov";
						break;
					case 11:
						m = "Dec";
						break;
				}
			}
			return m;
		};
		
		$.tweenel.setbytes = function(n)
		{
			if(n < 10) n = "0" + n;
			return n;
		};
		
		$.tweenel.setdelay = function(t)
		{
			$(t).animate(
				{left:"+="+vx, opacity:1},
				{duration:ini.duration, easing:ini.easing}
			);
		};
		
		$.tweenel.cache = function() {
			imgAry = [
				"tweenel_bg_01.png",
				"tweenel_close_01.png",
				"tweenel_editor_01.png",
				"tweenel_id_01.png",
				"tweenel_link_01.png",
				"tweenel_open_01.png"
			];
		};
		
	}
})(jQuery);
