// berkelhammer.js

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_preloadImagesInImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImagesInImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src="images/"+a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function displayImageInCell(cell, srcURL, altText, width, height, hspace, vspace) {
  //alert(srcURL);
  //var displayAreaHTML = document.getElementById('displayImageArea').innerHTML;
  var textContent = '<img src="' + srcURL + 
                    '" alt="' + altText + 
                    '" width="' + width +
                    '" height="' + height +
                    '" hspace="' + hspace + 
                    '" vspace="' + vspace +
                    '" border="0" align="middle">'; 
  alert(textContent);
  alert(cell);
  cell.innerHTML = textContent;
  return true;
}
  
function displayGalleryLabel(galleryLabelText) {
  galleryLabel.innerHTML = galleryLabelText;
  return true;
}

function displayImageInDisplayAreaOriginal(srcURL, linkTo, altText, width, height, hspace, vspace) {
  //alert("displayImageInDisplayArea() called.");
  //var displayAreaHTML = document.getElementById('displayImageArea').innerHTML;
  var displayImageArea = document.getElementById('displayImageArea');
  var textContent = "";
  if (linkTo !== "") { textContent += '<a href="' + linkTo +'">'; }
  //alert(textContent);
  textContent += '<img src="' + srcURL + 
                    '" alt="' + altText + 
                    '" title="' + altText + 
                    '" width="' + width +
                    '" height="' + height +
                    '" hspace="' + hspace + 
                    '" vspace="' + vspace +
                    '" border="0" align="middle">'; 
  if (linkTo) { textContent += '</a>'; }
  //alert(textContent);
  //alert(displayImageArea);
  displayImageArea.innerHTML = textContent;
  return true;
  }

function displayImageInDisplayArea(srcURL, altText, width, height) {
  //alert("displayImageInDisplayArea() called.");
  //var displayAreaHTML = document.getElementById('displayImageArea').innerHTML;
  var vspace = "0";
  var vspaceAsInt = 0;
  var maxPortraitHeight = 560;
  var maxLandscapeHeight = 460;
  var widthAsInt = parseInt(width);
  var heightAsInt = parseInt(height);
  var portraitOrientation = heightAsInt > widthAsInt;
  var landscapeOrientation = !portraitOrientation;
  if (portraitOrientation) vspaceAsReal = (maxPortraitHeight - height) / 2;
  else vspaceAsReal = (maxLandscapeHeight - height) / 2;
  vspaceCeilAsInt = Math.ceil(vspaceAsReal);
  vspaceFloorAsInt = Math.floor(vspaceAsReal);
  vspace = String(vspaceAsReal);
  //alert("height="+height+" width="+width+((portraitOrientation)?" portrait":" landscape")+"<br>");
  var displayImageArea = document.getElementById('displayImageArea');
  var textContent = "";
	textContent += '<div style="padding-top:' + String(vspaceFloorAsInt) + 'px"><img src="../images/_decoration/dotClear.gif" alt="" vspace="0" hspace="0" width="1" height="1"></div>';
  textContent += '<img src="' + srcURL + 
                    '" alt="' + altText + 
                    '" title="' + altText + 
                    '" width="' + width +
                    '" height="' + height +
                    '" hspace="0' + // hspace + 
                    '" vspace="0' + // vspace +
                    '" border="0" align="middle">';
	textContent += '<br><div class="galleryCaptionText">' + altText + '</div>';
	textContent += '<div style="padding-top:' + String(vspaceCeilAsInt)  + 'px"><img src="../images/_decoration/dotClear.gif" alt="" vspace="0" hspace="0" width="1" height="1"></div>';
  //alert(textContent);
  //alert(displayImageArea);
  //textContent += '<a name="imageArea"></a>';
  displayImageArea.innerHTML = textContent;
  return true;
  }

  function galleryImage(srcURL, altText, width, height) {
	  this.srcURL = srcURL;
		this.altText = altText;
		this.width = width;
		this.height = height;
  }

  var galleryImageIndex = 0;
  var galleryImages = new Array();
	
  function addGalleryImages() {
  	galleryImages.push(new galleryImage("images/UrbanForest-PICT99.jpg", "Boulder&rsquo;s urban forest as viewed from War Memorial Park on East Arapahoe", 560, 315));
  	galleryImages.push(new galleryImage("images/WeepingMulberry-PICT08.jpg", "Weeping Mulberry, Asbury Park, NJ", 560, 315));
  	galleryImages.push(new galleryImage("images/KezarLakeOutletMaine-80.jpg", "Kezar Lake Outlet, Maine", 560, 420));
  	galleryImages.push(new galleryImage("images/JamesFred-PICT0179_0135.jpg", "Fred with rope", 560, 420));
  	galleryImages.push(new galleryImage("images/Thinning-PICT0115.jpg", "Thinning & cleaning the sacred grove", 560, 418));

    galleryImages.push(new galleryImage("images/RecClimb-PICT0189_0143.jpg", "Packing up gear after a rec climb", 560, 416));
  	galleryImages.push(new galleryImage("images/JeffDownInTree-IMG_3602.jpg", "Looking down on Jeff high in a tree", 560, 420));
  	galleryImages.push(new galleryImage("images/OutInSpace-MVC-009S.jpg", " ", 560, 420));
  	galleryImages.push(new galleryImage("images/DustinJamesFred-IMG_3605.jpg", "Dustin, James &amp; Fred", 560, 460));
  	galleryImages.push(new galleryImage("images/FredWithGiantLogLgOriginal.jpg", "Fred with giant log", 360, 331));
  	
		galleryImages.push(new galleryImage("images/Maine2005-167.jpg", "Maine", 420, 560));
  	galleryImages.push(new galleryImage("images/SilhoutteInTreeOriginal.jpg", "Climber in Silhouette", 150, 396));
  	galleryImages.push(new galleryImage("images/JamesMelton+SamBerkelhammer-121.jpg", "James Melton (above) &amp; Sam Berkelhammer (climbing)", 284, 560));
  	galleryImages.push(new galleryImage("images/JeffFloating-IMG_3386_2.jpg", "Jeff in the Floating Pruning Position Know Only To the First Buddha", 420, 560));
  	galleryImages.push(new galleryImage("images/FredInTheWild-Scan2-Sm.jpg", "Fred in the Wild", 278, 396));

    MM_preloadImagesInImages('KezarLakeOutletMaine-80.jpg', 'WeepingMulberry-PICT08.jpg', 'UrbanForest-PICT99.jpg', 'JamesFred-PICT0179_0135.jpg', 'Thinning-PICT0115.jpg',
                             'RecClimb-PICT0189_0143.jpg', 'JeffDownInTree-IMG_3602.jpg', 'OutInSpace-MVC-009S.jpg', 'DustinJamesFred-IMG_3605.jpg', 'FredWithGiantLog.jpg',
                             'Maine2005-167.jpg', 'SilhoutteInTreeOriginal.jpg', 'JamesMelton+SamBerkelhammer-121.jpg', 'JeffFloating-IMG_3386_2.jpg', 'FredInTheWild-Scan2-Sm.jpg');
	}
	
  // Side-effects galleryImageIndex
	function displayGalleryImage(index) {
		// force initialization if it hasn't ocurred.
		if (galleryImages.length == 0) addGalleryImages();
		galleryImageIndex = index;
		var image = galleryImages[galleryImageIndex];
		displayImageInDisplayArea(image.srcURL, image.altText, image.width, image.height);
	}

  // Side-effects galleryImageIndex
  function advanceGalleryImageIndex() {
		galleryImageIndex = (galleryImageIndex + 1) % galleryImages.length;
		return galleryImageIndex;
	}
	
  // Side-effects galleryImageIndex
	function recedeGalleryImageIndex() {
		var index;
		index = (galleryImageIndex - 1);
		if (index < 0) index = galleryImages.length - 1;
		galleryImageIndex = index;
    return galleryImageIndex;
	}
