var twitterUser = 'albertobastos';
var twitterCount = 6;
var twitterUrl = 'http://twitter.com/statuses/user_timeline/' + twitterUser + '.json?count=' + twitterCount + '&callback=parseTwitter';
var defaultText = 'alberto bastos :: página personal';

function init() {
	boxOut();
	initBoxes();
	initTwitter();
}

function boxOver(text) {
	document.getElementById('boxesText').innerHTML = text;
}

function boxOut() {
	document.getElementById('boxesText').innerHTML = defaultText;
}

function initBoxes() {
	var i = 0;
	var boxes1 = new Array();
	boxes1[i++] = {img:'i_cv.jpg', text:'currículum vitae', url:'cv'};
	boxes1[i++] = {img:'i_flickr.jpg', text:'imágenes en Flickr', url:'http://www.flickr.com/photos/albertobastos/'};
	boxes1[i++] = {img:'i_youtube.jpg', text:'vídeos en YouTube', url:'http://www.youtube.com/user/albertobastos'};
	boxes1[i++] = {img:'i_tumblr.jpg', text:'aportaciones en Tumblr', url:'http://live.albertobastos.info'};
	
	i = 0;
	var boxes2 = new Array();
	boxes2[i++] = {img:'i_paris.jpg', text:'parís 2007 (álbum)', url:'paris2007'};
	boxes2[i++] = {img:'i_nya.jpg', text:'nueva york 2008 (álbum)', url:'nuevayork2008/album'};
	boxes2[i++] = {img:'i_nyd.jpg', text:'nueva york 2008 (diario)', url:'nuevayork2008/diario'};
	boxes2[i++] = {img:'i_eeuua.jpg', text:'estados unidos 2009 (álbum)', url:'eeuu2009/album'};
	boxes2[i++] = {img:'i_eeuud.jpg', text:'estados unidos 2009 (diario)', url:'eeuu2009/diario'};
	boxes2[i++] = {img:'i_salamanca.jpg', text:'salamanca 2009 (álbum)', url:'salamanca2009'};
	boxes2[i++] = {img:'i_rma.jpg', text:'riviera maya 2010 (álbum)', url:'rivieramaya2010/album'};
	
	parseBoxes('boxes1', boxes1);
	parseBoxes('boxes2', boxes2);
}

function parseBoxes(id, boxes) {
	var div = document.getElementById(id);
	for(var i in boxes) {
		var box = boxes[i];
		var a = document.createElement('a');
		a.setAttribute('title', box.text);
		a.setAttribute('href', box.url);
		a.onmouseover = function() { boxOver(this.title); };
		a.onmouseout = function() { boxOut(); };
		var img = document.createElement('img');
		img.setAttribute('src', box.img);
		img.setAttribute('alt', box.text);
		img.setAttribute('title', box.text);
		a.appendChild(img);
		div.appendChild(a);
	}
}

function initTwitter() {
	var script = document.createElement('script');
	script.setAttribute('src', twitterUrl);
	document.body.appendChild(script);
}

function parseTwitter(tweets) {
	var div = document.getElementById('twitter');
	var html = '';
	var linkifiedTweet;
	for(var i=0;i<twitterCount && i<=tweets.length;i++) {
		// Transformación a enlaces con expresiones regulares
		// basado en: http://www.bitacoradewebmaster.com/2010/01/06/expresiones-regulares-para-dar-formato-a-un-tweet/
		linkifiedTweet = tweets[i].text;
		linkifiedTweet = linkifiedTweet.replace(/(https?:\/\/\S+)/gi,'<a href="$1">$1</a>'); // links
		linkifiedTweet = linkifiedTweet.replace(/(^|\s)@(\w+)/g,'$1<a href="http://twitter.com/$2">@$2</a>'); // mentions
		linkifiedTweet = linkifiedTweet.replace(/(^|\s)#(\w+)/g,'$1#<a href="http://search.twitter.com/search?q=%23$2">$2</a>'); // tags
		html += '<div class="tweet">' + linkifiedTweet + '</div>';
	}
	div.innerHTML = html;
}