//requestVars start
/*
 * @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 again 6-27-2007 to work with new Picasa XML format */
/* check also googlified.com */

/* NOTE: This version does not have links to Picasa */


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;}var _GET = readGet();
//requestVars end

function resize(which, max) {
// not used anymore! was scaling photos after they were loaded. using browser-native inline scaling instead,
// until google fixes their image size request to work with any imgmax, rather than just 800 :-(
  var elem = document.getElementById(which);
  if (elem == undefined || elem == null) return false;
  if (max == undefined) max = 658;
  if (elem.width > elem.height) {
    if (elem.width > max) elem.width = max;
  } else {
    if (elem.height > max) elem.height = max;
  }
}

//$Update: May 10, 2007$

function $(a){document.write(a);}
var photosize;
if(!photosize){photosize = 400;}




function picasaweb(j){ //returns the list of all albums for the user
 $("<div style='margin-left:3px'><h2>Indice foto</h2></div><div style='text-align:right; margin-right:5px; margin-top:-14px'>&nbsp;<!--<a target=PICASA class='standard' href='http://picasaweb.google.com/Ironsides.Pictures/'>View this gallery in Picasa</a>--></div><br>");
 $("<table class='foto_table' border=0><tr>");

 for(i=0;i<j.feed.entry.length;i++){

 // for each of the albums in the feed, grab its album cover thumbnail and the link to that album,
 // then display them in a table with 4 columns (along with the album title)

//  var img_begin = j.feed.entry[i].summary.$t.indexOf('src="')+5;
//  var img_end = j.feed.entry[i].summary.$t.indexOf('?imgmax');
//  var img_base = j.feed.entry[i].summary.$t.slice(img_begin, img_end);
var img_base = j.feed.entry[i].media$group.media$content[0].url;

  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);

  $("<td valign=top><a class='foto_menu' href='?albumid="+id_base+"'><img src='"+img_base+"?imgmax=160&crop=1' class='pwimages' /></a>");
  $("<br><table class='foto_table' border=0><tr><td></td></tr></table><center><a class='foto_menu' href='?albumid="+id_base+"'>"+ j.feed.entry[i].title.$t +"</a></center></td>");
  if (i % 3 == 2) {
    $("</tr><tr><td><br></td></tr> <tr><td></td></tr> <tr>");
  }
 }
 $("</tr></table>");
}



function albums(j){  //returns all photos in a specific album

 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();

 $("<div style='margin-left:3px'><a class='standard' href='" + window.location.protocol + "//" + window.location.hostname+window.location.pathname+"'><h2>Indice foto</a> &gt; "+ j.feed.title.$t +"</h2></div><div style='text-align:right; margin-right:5px; margin-top:-14px'>&nbsp;<!--<a target=PICASA class='standard' href='"+album_link+"'>View this album in Picasa</a>--></div><br>");
 $("<table class='foto_table' border=0><tr>");

 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.
 }

 for(i=0;i<j.feed.entry.length;i++){

//  var img_begin = j.feed.entry[i].summary.$t.indexOf('src="')+5;
//  var img_end = j.feed.entry[i].summary.$t.indexOf('?imgmax');
//  var img_base = j.feed.entry[i].summary.$t.slice(img_begin, img_end);
var img_base = j.feed.entry[i].media$group.media$content[0].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;
  
  if (i>0)
  {
    var prev_begin = j.feed.entry[i-1].id.$t.indexOf('photoid/')+8;
    var prev_end = j.feed.entry[i-1].id.$t.indexOf('?');
    var prev = j.feed.entry[i-1].id.$t.slice(id_begin, id_end);
  }
  if (i<j.feed.entry.length-1)
  {
    var next_begin = j.feed.entry[i+1].id.$t.indexOf('photoid/')+8;
    var next_end = j.feed.entry[i+1].id.$t.indexOf('?');
    var next = j.feed.entry[i+1].id.$t.slice(id_begin, id_end);
  }

  // display the thumbnail (in a table) and make sure the link to the photo page, including the gallery name so it can be displayed
  // (apparently the gallery name isn't in the photo feed from the Picasa API, so we need to pass it as an argument in the URL)
  $("<td valign=top><a class='foto_menu' href='?albumid="+_GET['albumid']+"&photoid="+id_base+"&galleryname={"+j.feed.title.$t+"}&prev="+prev+"&next="+next+"&photoids="+photoids+"'><img src='"+img_base+"?imgmax=160&crop=1' class='pwimages' /></a></td>");

  if (i % 3 == 2) {
    $("</tr><tr><td><br></td></tr><tr>");
  }
 }
 $("</tr></table>");


}
function photo(j){//returns exactly one photo


 var album_begin = j.entry.summary.$t.indexOf('href="')+6;
 var album_end = j.entry.summary.$t.indexOf('/photo#');
 var album_link = j.entry.summary.$t.slice(album_begin, album_end);

 var img_title = j.entry.title.$t;

 //get the dimensions of the photo we're grabbing; if it's smaller than our max width, there's no need to scale it up.
 var img_width = j.entry.media$group.media$content[0].width;
 var img_height = j.entry.media$group.media$content[0].height;

// var img_begin = j.entry.summary.$t.indexOf('src="')+5;
// var img_end = j.entry.summary.$t.indexOf('?imgmax');
// var img_base = j.entry.summary.$t.slice(img_begin, img_end);
var img_base = j.entry.media$group.media$content[0].url;
 
 var photo_begin = j.entry.summary.$t.indexOf('href="')+6;
 var photo_end = j.entry.summary.$t.indexOf('"><img');
 var photo_link = j.entry.summary.$t.slice(photo_begin, photo_end);
 var photo_id = _GET['photoid'];

 var album_name_begin = j.entry.summary.$t.indexOf(username)+username.length+1;
 var album_name_end = j.entry.summary.$t.indexOf('/photo#');
 var album_name = j.entry.summary.$t.slice(album_name_begin, album_name_end);

 var album_id = _GET['albumid'];
 var my_next = _GET['next'];
 var my_prev = _GET['prev'];
 var my_photoids = _GET['photoids'];

 var my_galleryname = _GET['galleryname'];
 var my_fixed_galleryname = my_galleryname.slice(1, my_galleryname.length-1);
 var album_base_path = window.location.protocol + "//" + window.location.hostname+window.location.pathname +"?albumid="+ _GET['albumid'];

 // Get the filename for display in the breadcrumbs
 var LastSlash = 0;
 var img_filename = img_title;
 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);
 }
 // replace some commonly-used URL characters like %20
 img_filename = img_filename.replace("%20"," ");
 img_filename = img_filename.replace("%22","\"");
 img_filename = img_filename.replace("%27","\'");
 
 $("<div style='margin-left:3px'><a class='standard' href='"+ window.location.protocol + "//" + window.location.hostname+window.location.pathname+"'><h2>Indice foto</a> &gt; <a class='standard' href='" + album_base_path + "'>" + my_fixed_galleryname + "</a> &gt; " + img_filename + "</h2></div><div style='text-align:right; margin-right:3px; margin-top:-14px'>&nbsp;<!--<a target=PICASA class='standard' href='"+photo_link+"'>View this image in Picasa</a>--></div><br>");

var photo_array = my_photoids.split(",");

//find preceding two and following two pictures in the array; used for the navigation arrows.
//the arrows are already linked to the previous and next pics, which were passed in with the URL.
//however, we need the ones that are two behind and two ahead so that we can pass that info along when we link to another photo.
//"pretty sneaky, sis."
 for(i=0;i<photo_array.length;i++){
  if (photo_array[i]==photo_id)
  {
	  var p2 = photo_array[i-2]; //ID of the picture two behind this one
	  var p1 = photo_array[i-1]; //ID of the picture one behind this one; if null, we're at the beginning of the album
	  var n1 = photo_array[i+1]; //ID of the picture one ahead of this one; if null, we're at the end of the album
	  var n2 = photo_array[i+2]; //ID of the picture two ahead of this one
  }
 }
 //these will be passed along if we move to the next or previous photo
 var prev = album_base_path + "&photoid=" + p1 + "&galleryname=" + my_galleryname + "&next="+photo_id+ "&prev="+p2+"&photoids="+my_photoids;
 var next = album_base_path + "&photoid=" + n1 + "&galleryname=" + my_galleryname + "&prev="+photo_id+ "&next="+n2+"&photoids="+my_photoids;

if (p1 == null) //we're at the first picture in the album; going back takes us to the album index
  { var prev = album_base_path }

if (n1 == null) //we're at the last picture in the album; going forward takes us to the album index
  { var next = album_base_path }

 //the navigation panel: back, home, and next.
 $("<center><table class='foto_table' border=0><tr valign=top><td><a class='foto_menu' href='"+prev+"'>&lt;&lt; precedente</a> </td><td></td><td> <a class='foto_menu' href='"+album_base_path+"'>| torna all'album |</a> </td><td></td><td> <a class='foto_menu' href='"+next+"'>prossima &gt;&gt;</a></td></tr></table></center><br>");

 var max_width = 658; //max width for our photos
 var display_width = max_width;
 if (img_width < display_width)
   { display_width = img_width; } //don't scale up photos that are narrower than our max width; disable this to set all photos to max width

 //at long last, display the image and its description. photos larger than max_width are scaled down; smaller ones are left alone
 $("<center><!--<a border=0 target=PICASA href='"+photo_link+"'>--><img id='picture' width="+display_width+" src='"+img_base+"?imgmax="+photosize+"' class='pwimages' /><!--</a>--></center>");
 $("<br><center><div style='margin-left:2px'>"+j.entry.media$group.media$description.$t+"</div></center></p>");


 // an attempt at resampling the photo, rather than relying on the browser's internal resize function. doesn't work, unfortunately.
 //
 //$("<?php $filename='"+img_base+"?imgmax="+photosize+"'; $width = 658; $height = 1600; list($width_orig, $height_orig) = getimagesize($filename); ");
 //$("$ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } ");
 //$("$image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); ");
 //$("imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); imagejpeg($image_p, null, 100); ?>");

}

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&galleryname='+_GET['galleryname']+'"></scr'+'ipt>');//photo
}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
}else{
 $('<scr'+'ipt type="text/javascript" src="http://picasaweb.google.com/data/feed/base/user/'+username+'?category=album&alt=json&callback=picasaweb&access=public"></scr'+'ipt>');//picasaweb
}

//$Update: May 10, 2007$