/*
 * @author      Dieter Raber <dieter@dieterraber.net>
 * @copyright   2004-12-27
 * @version     1.0
 * @license     http://www.gnu.org/copyleft/lesser.html
*/


var _GET = readGet();
var username;
if(!username) $("Username not provided"); 

var albumname;
if(!albumname) $("AlbumName not provided");

// General settings
var photosize, page_title, image_folder;
if(!photosize)		photosize		= 800;
if(!page_title)		page_title		= "TheBeerHouse Photos";
if(!image_folder)	image_folder	= "http://www.thebeerhouse.com/images";



/**********************************/
/* Display all photos in an album */
/**********************************/
function albums(j){


	var album_begin = j.feed.entry[0].summary.$t.indexOf('href="')+6;
	var album_end = j.feed.entry[0].summary.$t.indexOf('/photo#');
	var album_link = j.feed.entry[0].summary.$t.slice(album_begin, album_end);
	
	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);
	

	for(i=0;i<j.feed.entry.length;i++){
		// get the list of all photos referenced in the album and display;
		// also stored in an array (photoids) for navigation in the photo view (passed via the URL)
		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; //must be pre-loaded before the URLs are generated. That's why we need to run the loop twice.
	}
	

	/* Generate random number between 1 and the lenght of the feed */
    var ran_number=Math.floor(Math.random()*j.feed.entry.length); 
 
	/* Use the random number to display the photo from the album */
	var albumid = "";

		var img_base = j.feed.entry[ran_number].media$group.media$content[0].url;
		var img_width = j.feed.entry[ran_number].media$group.media$content[0].width
		var img_height = j.feed.entry[ran_number].media$group.media$content[0].height
		
		var title = j.feed.entry[ran_number].title.$t;
		
		var id_begin = j.feed.entry[ran_number].id.$t.indexOf('photoid/')+8;
		var id_end = j.feed.entry[ran_number].id.$t.indexOf('?');
		var id_base = j.feed.entry[ran_number].id.$t.slice(id_begin, id_end);
		photoids[i]=id_base;
		
		// get album id from URL (if album was accessed by album name) - note: photos must be accessed by albumid
		if(albumid=="") {
			var albumid_begin = j.feed.entry[ran_number].id.$t.indexOf('albumid/')+8;
			var albumid_end = j.feed.entry[ran_number].id.$t.indexOf('photoid/')-1;
			var albumid = j.feed.entry[ran_number].id.$t.slice(albumid_begin, albumid_end);
		}
	  
		if (ran_number>0) {
			var prev_begin = j.feed.entry[ran_number-1].id.$t.indexOf('photoid/')+8;
			var prev_end = j.feed.entry[ran_number-1].id.$t.indexOf('?');
			var prev = j.feed.entry[ran_number-1].id.$t.slice(id_begin, id_end);
		}
		if (ran_number<j.feed.entry.length-1) {
			var next_begin = j.feed.entry[ran_number+1].id.$t.indexOf('photoid/')+8;
			var next_end = j.feed.entry[ran_number+1].id.$t.indexOf('?');
			var next = j.feed.entry[ran_number+1].id.$t.slice(id_begin, id_end);
		}
	
		$("<a href='http://thebeerhouse.com/album.htm?albumid="+albumid+"&album_name="+album_name_url+"&photoid="+id_base+"&prev="+prev+"&next="+next+"&photoids="+photoids+"'><img width=400 border='0' class='pw_photo_list' src='"+img_base+"?imgmax=800&crop=0' alt='"+title+"' title='"+title+"' /></a>");
		
		

} // end function albums



/*************************/
/* Get feeds from Picasa */
/*************************/

$('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/feed/base/user/'+username+'/album/'+ albumname +'?category=photo&alt=json&callback=albums"></scr'+'ipt>');//albums by album name
// $('<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



/**************************************/
/* 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;
}


/**********************************/
/* Return image filename from url */
/**********************************/
function getImageFilename(img_base) {
	var lastSlash = 0;
	for(i=0;i<img_base.length-1;i++){
		if (img_base.charAt(i)=="/") lastSlash = i;
	}
	if (lastSlash != 0) img_filename = img_base.slice(lastSlash+1, img_base.length);	
	var img_filename = decodeUrl(img_filename);	
	return img_filename;
}

/*********************************************/
/* Remove special characters from album name */
/*********************************************/
function getPicasaAlbumName(album) {
	var deletableCharacters = / |\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\-|\[|\]|\{|\}|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\./g;
	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.write(a);}

