// JavaScript Document
//
var isJA = location.pathname.substr(1,2) == 'ja';

$(document).ready(onReady);
$(window).resize(onResize);
setTimeout(fixFooterPos,500); 

function onResize(){
	fixFooterPos();
} 


function onReady(){
	setUpEntryFoldings();
	setUpEmbossList();
	getTweet();
	//renderMap();
	fixFooterItems();
	fixFooterPos();
	backspaceCategories();
	getMapInfo();
	checkFlickr();
	tweetBtnFix();
}


//BEGIN set entry foldings
function setUpEntryFoldings(){
	$('.postBodyAfter').hide();
	$('.btnFold').hide();
	//
	$('.btnUnfold').click(unfoldPost);
	$('.btnFold').click(foldPost);
}

//scope becomes the clicked btn
function unfoldPost() {
	$(this).hide();
	$(this).parent().siblings('.postBodyAfter').slideDown(500);
	$(this).siblings('.btnFold').show(300);
}

function foldPost() {
	$(this).hide();
	$(this).parent().siblings('.postBodyAfter').slideUp(700);
	$(this).siblings('.btnUnfold').show(300);
}
//END

//BEGIN set embosslist modification
function setUpEmbossList() {
	var liLocations = $('.embossList > li.location');
	for(var i=0; i<liLocations.length; i++) {
		if($(liLocations[i]).find('a').length == 0) {
			$(liLocations[i]).remove();
		}	
	}
	
	
	var li = $('.embossList > li');
	for(var i=0; i<li.length; i++) {
		var newItem = document.createElement('li');
		var hr = document.createElement('hr');
		$(newItem).append(hr);
		$(newItem).addClass('embossborder');
		$(newItem).insertAfter(li[i]);
	}
}
//END



//Google Map
function getMapInfo() {
	
	$.ajax({
		url:'/index.php/fcb/currentPlaceXML',
		dataType:'xml',
		success:renderMap
	});
}

function renderMap(data){
	var mapInfo = {
		mapLat:		Number($(data).find('mapLat').text()),
		mapLng:		Number($(data).find('mapLng').text()),
		markerLat:	Number($(data).find('markerLat').text()),
		markerLng:	Number($(data).find('markerLng').text()),
		zoom:		Number($(data).find('zoom').text()),
		cityName:	$(data).find(isJA ? 'title_ja' : 'title').text()	
	}

	var canvas = document.getElementById("mapCanvas");
	if(canvas){
		var mapCenter = new google.maps.LatLng(mapInfo.mapLat, mapInfo.mapLng);
		var myOptions = {
			zoom: mapInfo.zoom,
			center: mapCenter,
			mapTypeId: google.maps.MapTypeId.ROADMAP,
			disableDefaultUI: true
		};
		var map = new google.maps.Map(canvas, myOptions);
		var markerPosition = new google.maps.LatLng(mapInfo.markerLat, mapInfo.markerLng);
		var marker = new google.maps.Marker({
			position: markerPosition, 
			map: map, 
			title:mapInfo.cityName
		});
	}
}
//END

//footer modification
function fixFooterItems() {
	//var footer = $('#footerWrapper');
	var footerList = $(".footerItemBody ul");
	for(var i=0; i<2; i++) {
		var aTag = document.createElement("a");
		var liTag = document.createElement("li");
		$(aTag).text("more...").attr("href","index.php/fcb/archives/");
		$(liTag).append(aTag).addClass('linkMore');
		$(footerList[i]).append(liTag);
	}
	
	var footerItems = $(".footerItemBody");
	
	var comp = function(a,b){
		return  $(b).height() - $(a).height();
	}
	
	footerItems.sort(comp);
	
	var maxHeight = $(footerItems[0]).height();
	for(var i = 0; i < footerItems.length; i++) {
		$(footerItems[i]).height(maxHeight);
	}
	//
	
}

function fixFooterPos() {
	
	var footer = $('#footerWrapper');
	var main = $('#mainWrapper')
	main.css('height', null);
	
	if(footer.offset().top + footer.innerHeight()+16 < window.innerHeight) {var newHeight = main.height() + window.innerHeight - (footer.offset().top + footer.innerHeight()+16);
		main.css('height', newHeight);
	}
}

//END

//category modification
function backspaceCategories() {
	$.each($('li.location'), process);
	$.each($('li.tag'),process);
	//
	function process() {
		var lastChild = $(this).children('a:last-child');
		var t = $(lastChild).text()
		$(lastChild).text(t.slice(0,-1));
	}
}
//END

//Twitter
function getTweet() {
	var name_j = 'satoshionoda';
	var name_e = 'satoshionoda_e';
	//
	var name = (isJA ? name_j : name_e);
	var twitterAPI = "http://search.twitter.com/search.json?callback=?&rpp=1&q=from:" + name;

	$.getJSON(twitterAPI,'',onLoadTweet,'json');
}

function onLoadTweet(data) {
	var myTweet = data['results'][0]['text'];
	myTweet = myTweet.replace(/(http:\/\/[\x21-\x7e]+)/gi, "<a href='$1'>$1</a>");
	$("#twitterArea").html(myTweet);	
}
//END

// Get Flickr Photo set
function checkFlickr() {
	//var setArea = $('#flickrSetArea')[0];
	//setArea ? collectSets(setArea) : '';
	var setAreas = $('.flickrSetArea');
	for(var i = 0; i < setAreas.length; i++) {
		collectSets(setAreas[i]);
	}
}

function collectSets(setArea) {
	//console.log($(setArea).text());
	//*
	var scope =  this;
	var photoset_id = $(setArea).text();
	var api_key = 'e4dd272abd63447b5dfac791da9e4ff9';
	var flickrREST = 'http://api.flickr.com/services/rest/?&jsoncallback=?';
	
	var param = {
				method:'flickr.photosets.getPhotos',
				api_key:api_key,
				photoset_id:photoset_id,
				format:'json'
	}
	
	var prepareLoading = function() {
		var node_h3 = document.createElement('h3');
		var h3JA = "このエピソードの写真をFlickrから";
		var h3EN = 'More Photos of this Episode from Flickr'
		$(node_h3).text(isJA ? h3JA : h3EN);
		
		$(setArea).empty().append(node_h3);
	}
	
	var processPhotos = function(data) {
		var node_ul = document.createElement('ul');
		$(node_ul).addClass('squareList').addClass('clearfix').addClass('setPhotos');
		
		var owner = data.photoset.owner;
		var setID = data.photoset.id;
		var photos = data.photoset.photo;
		for(var i=0; i< photos.length; i++) {
			var photo = photos[i];
			var thURL = 'http://static.flickr.com' + "/" + photo.server + "/" + photo.id + '_' + photo.secret + '_s.jpg';
			var linkURL = 'http://www.flickr.com/photos/' + owner + "/" + photo.id + "/in/set-" + setID + "/";
			var node_li = document.createElement('li');
			var node_a = document.createElement('a');
			var node_img = document.createElement('img');
			$(node_img).attr('src', thURL).attr('alt', photo.title).attr('width','75').attr('height','75').addClass('thBorder');
			$(node_a).attr('href', linkURL).attr('title', photo.title).attr('target', '_blank').append(node_img);
			$(node_li).append(node_a).appendTo(node_ul);
		}
		
		var node_a = document.createElement('a');
		var node_p = document.createElement('p');
		$(node_p).addClass("flickrSetLinkArea").addClass('clearfix').append(node_a);
		var aJA = 'Flickrのセットページへ';
		var aEN = 'Go to page of this set on Flickr';
		var setURL = 'http://www.flickr.com/photos/' + owner + "/sets/" + setID + "/";
		$(node_a).text(isJA? aJA : aEN).attr('href', setURL).attr('title', isJA? aJA : aEN).attr('target', '_blank');
		
		$(setArea).append(node_ul).append(node_p);
		
	}
	prepareLoading();
	$.getJSON(flickrREST, param, processPhotos,'json');
}
// END

//Tweek Tweet Btn's height
function tweetBtnFix() {
	var tweetBtnIframe = $('.twitter-share-button');
	setTimeout(function(){$(tweetBtnIframe).height('21px');console.log(tweetBtnIframe);},5000);
}
// END