/*
 * @author      Dieter Raber <dieter@dieterraber.net>
 * @copyright   2004-12-27
 * @version     1.0
 * @license     http://www.gnu.org/copyleft/lesser.html
*/

/* updated by Jesse Berman on May 10, 2007       */
/* for use with the Boston Ironsides RFC website */
/* http://www.bostonironsidesrfc.org/gallery     */

/* updated by Kevin Wong on June 29, 2007         */
/* http://photos.talynkevin.com				     */

/***************/
/* CSS Classes */
/***************/
/* .picasa - <ul> container for list of Picasa Web albums    */
/* .pw_album_list - <li> items for each album in the gallery */
/* .pw_photo_list - <img> element for each photo in an album */
/* .pw_image - <img> element for viewing large-sized photo   */

var _GET = readGet();
var username;
if(!username) $("Username not provided");

// General settings
var photosize, page_title, image_folder;
if(!photosize)		photosize		= 800;
if(!page_title)		page_title		= "";
if(!image_folder)	image_folder		= "http://www.lobosdapiedade.com/portal/themes/colourise/js";

// Slideshow settings
var slideshow_width, slideshow_height, slideshow_bgcolor;
if(!slideshow_width)	slideshow_width		= 850;
if(!slideshow_height)	slideshow_height	= 650;
if(!slideshow_bgcolor)	slideshow_bgcolor	= "FFFFFF";


/**********************/
/* Display album list */
/**********************/
function picasaweb(j){

	$("<h1>" + page_title + "</h1>");	
	if(j.feed.entry!=null) {
		
		$("<ul class='picasa'>");	
		
		/* Display each album */
		for(i=0;i<j.feed.entry.length;i++){
			
			var id_begin = j.feed.entry[i].id.$t.indexOf('albumid/')+8;
			var id_end = j.feed.entry[i].id.$t.indexOf('?');
			var id_base = j.feed.entry[i].id.$t.slice(id_begin, id_end);
  
			var album_name = j.feed.entry[i].title.$t;
			var album_name_picasa = getPicasaAlbumName(album_name);
			var image = j.feed.entry[i].media$group.media$content[0].url;
			var summary = j.feed.entry[i].media$group.media$description.$t;
			var published = j.feed.entry[i].published.$t.slice(0,10);			// only get the date, not the time
			
			$("<li class='pw_album_list' style='list-style-image: none; list-style-type: none;'><a href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&albumid="+ id_base + "'><img border='0' src='" + image + "?imgmax=160&crop=1' /><br>");
			$("<span style='font-variant: small-caps; line-height: 2em;'>" + album_name + "</span><br>");
			if(summary) $("<span style='font-size: 10px; font-weight: normal;'>" + summary + "</span><br>");
			$("<span style='font-size: 9px; line-height: 2em;'>" + published + "</span></a></li>");
			
		}
		
		$("</ul>");
		
	} else $("(none)");
	
} // end function picasaweb


/**********************************/
/* Display all photos in an album */
/**********************************/
function albums(j){

	var photoids = new Array();
	
	var album_name = j.feed.title.$t;
	var album_name_url = encodeUrl(album_name);
	var album_name_picasa = getPicasaAlbumName(album_name);
	var description = j.feed.subtitle.$t;

	$("<h1>"+ album_name +"<br><br>");
	$(" <a style='text-decoration: none;' href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&action=slideshow&albumid=" + _GET['albumid'] + "&album_name=" + album_name_url + "'><span style='font-size: x-small; font-weight: normal;'>[ver slides]</span></a>");
	$("<span style='font-size: small;'><a href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&' accesskey='u'>Voltar</a></span></h1>");
	$("<h3>" + description + "</h3>");

	// Get photoids
	for(i=0;i<j.feed.entry.length;i++){
		var id_begin = j.feed.entry[i].id.$t.indexOf('photoid/')+8;
		var id_end = j.feed.entry[i].id.$t.indexOf('?');
		var id_base = j.feed.entry[i].id.$t.slice(id_begin, id_end);
		photoids[i] = id_base;
	}

	/* Display each photo */
	for(i=0;i<j.feed.entry.length;i++){

		var image = j.feed.entry[i].media$group.media$content[0].url;		
		var title = j.feed.entry[i].title.$t;
		
		$("<a href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&albumid=" + _GET['albumid'] + "&album_name=" + album_name_url + "&photoid=" + photoids[i] + "&index=" + i + "&photoids=" + photoids + "'><img border='0' class='pw_photo_list' src='" + image + "?imgmax=160&crop=1' alt='" + title + "' title='" + title + "' /></a>");
		
	}

} // end function albums



/*******************/
/* Display a photo */
/*******************/
function photo(j){
	
	var title = j.entry.media$group.media$title.$t;
	var description = j.entry.media$group.media$description.$t;
	
	var image = j.entry.media$group.media$content[0].url;
	var photo_id = _GET['photoid'];
	
	var album_name = decodeUrl(_GET['album_name']);
	var album_name_url = encodeUrl(_GET['album_name']);
	var album_name_picasa = getPicasaAlbumName(album_name);

	var photoids = _GET['photoids'];
	var photos = photoids.split(",");
	
	var index = parseInt(_GET['index']);
	var current_photo = index + 1;
	var album_total = photos.length;
	
	var album_base_path = window.location.protocol + "//" + window.location.hostname+window.location.pathname +"?albumid="+ _GET['albumid'];
		
	/* Title */
	$("<h1>"+ album_name +"<br>");
	//$(" : " + title);
	$(" <a style='text-decoration: none;' href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&action=slideshow&albumid="+ _GET['albumid'] + "&album_name=" + album_name_url + "'><span style='font-size: x-small; font-weight: normal;'>[ver slides]</span></a>");
	$("<span style='font-size: small;'><a href='" + album_base_path + "' accesskey='u'> Voltar Album</a></span></h1>");
	
	
	/* Navigation - first, previous, next, last */
	var first = album_base_path + "&album_name=" + album_name_url + "&photoid=" + photos[0] + "&index=" + 0 + "&photoids=" + photoids;
	var prev = album_base_path;
	if(index>0) prev += "&album_name=" + album_name_url + "&photoid=" + photos[index-1] + "&index=" + (index-1) + "&photoids=" + photoids;
	var next = album_base_path;
	if(index<(album_total-1)) next += "&album_name=" + album_name_url + "&photoid=" + photos[index+1] + "&index=" + (index+1) + "&photoids=" + photoids;
	var last = album_base_path + "&album_name=" + album_name_url + "&photoid=" + photos[album_total-1] + "&index=" + (album_total-1) + "&photoids=" + photoids;

	$("<div style='text-align: center;'>");
	$("<a href='" + first + "'><img border='0' src='" + image_folder + "/first.png' alt='Primeira' title='Primeira Foto'></a> ");
	$("<a href='" + prev + "'><img border='0' src='" + image_folder + "/left.png' alt='Anterior' title='Foto Anterior'></a> ");
	$("<span style='font-weight: bold;'>"+current_photo+" de "+album_total+"</span> ");
	$("<a href='" + next + "'><img border='0' src='" + image_folder + "/right.png' alt='Próxima' title='Próxima Foto'></a> ");
	$("<a href='" + last + "'><img border='0' src='" + image_folder + "/last.png' alt='Última' title='Última Foto'></a>");
	$("</div>");	
	
	
	/* Display image and caption */
	$("<div style='text-align: center;'><img border='0' id='picture' src='" + image + "?imgmax=" + photosize + "' class='pw_image' /></div>");
	//$("<div style='text-align: center;'><a href='" + image.replace(/\s+/g,'') + "' target='_blank'>Foto no tamanho original</a></div>");
	//$("<h3 style='text-align: center;'>" + description + "</h3>");

} // end function photo



/***********************/
/* Display a slideshow */
/***********************/
function slideshow(album, album_name) {
	album_name = decodeUrl(album_name);
	$("<h1>"+ album_name +"<br><br><span style='font-size: small;'><a href='?pg=9810caf1-6f93-4d1c-bcc9-6af2f3b31e99&album=" + album + "' accesskey='u'> Voltar para Galeria</a></span></h1>");
	$("<div style='text-align: center;'><embed type='application/x-shockwave-flash' src='http://picasaweb.google.com/s/c/bin/slideshow.swf' width='" + slideshow_width + "' height='" + slideshow_height + "' flashvars='host=picasaweb.google.com&captions=1&RGB=0x" + slideshow_bgcolor + "&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F" + username + "%2Falbum%2F" + album + "%3Fkind%3Dphoto%26alt%3Drss' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></div>");	
}


/*************************/
/* Get feeds from Picasa */
/*************************/
if(_GET['photoid']&&_GET['album']){
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/entry/base/user/'+username+'/album/'+_GET['album']+'/photoid/'+_GET['photoid']+'?alt=json&callback=photo"></scr'+'ipt>');//photo by album name
} else if(_GET['photoid']&&_GET['albumid']){
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/entry/base/user/'+username+'/albumid/'+_GET['albumid']+'/photoid/'+_GET['photoid']+'?alt=json&callback=photo"></scr'+'ipt>');//photo by albumid
} else if(_GET['album']&&_GET['action']=="slideshow"){
	slideshow(_GET['album'],_GET['album_name']);//slideshow
} else if(_GET['album']&&!_GET['photoid']){
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/feed/base/user/'+username+'/album/'+_GET['album']+'?category=photo&alt=json&callback=albums"></scr'+'ipt>');//albums by album name
} else if(_GET['albumid']&&!_GET['photoid']){
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/feed/base/user/'+username+'/albumid/'+_GET['albumid']+'?category=photo&alt=json&callback=albums"></scr'+'ipt>');//albums by albumid
} else{
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/feed/base/user/'+username+'?category=album&alt=json&callback=picasaweb&access=public&hl=pt_BR"></scr'+'ipt>');//picasaweb
}


/**************************************/
/* Replace special characters for url */
/**************************************/
function encodeUrl(string) {
	string = encodeURIComponent(string);
	string = string.replace(/'/g,"%27");
	return string;
}


/***************************************/
/* Replace special characters from url */
/***************************************/
function decodeUrl(string) {
	string = decodeURIComponent(string);
	string = string.replace(/%27/g,"'");
	return string;
}

/*********************************************/
/* Remove special characters from album name */
/*********************************************/
function getPicasaAlbumName(album) {

   //var Acentos = "©|¬|‘|µ|·|»|¼|¾|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|Ø|Ù|Ú|Û|Ü|Ý|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|ø|ù|ú|û|ü|ý|ÿ";
   var deletableCharacters = /,|\$| |©|¬|‘|µ|·|»|¼|¾|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|Ø|Ù|Ú|Û|Ü|Ý|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|ø|ù|ú|û|ü|ý|ÿ|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\-|\[|\]|\{|\}|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\./gi;
   return album.replace(deletableCharacters, "");

}

/*********************/
/* Retrieve GET vars */
/*********************/
function readGet(){
	var _GET = new Array();
	var uriStr  = window.location.href.replace(/&amp;/g, '&');
	var paraArr, paraSplit;
	if(uriStr.indexOf('?') > -1) {
		var uriArr  = uriStr.split('?');
		var paraStr = uriArr[1];
	} else {
		return _GET;
	}
	if(paraStr.indexOf('&') > -1) {
		paraArr = paraStr.split('&');
	} else {
		paraArr = new Array(paraStr);
	}
	for(var i = 0; i < paraArr.length; i++) {
		paraArr[i] = paraArr[i].indexOf('=') > -1 ? paraArr[i] : paraArr[i] + '=';
		paraSplit  = paraArr[i].split('=');
		_GET[paraSplit[0]] = decodeURI(paraSplit[1].replace(/\+/g, ' '));
	}
	return _GET;
}

function $(a){document.writeln(a);}
