/*=========================*/
/*== SLIDE SHOW          ==*/
/*== version 0.56        ==*/
/*== Updated 03 May 2006 ==*/
/*=========================*/
var SLIDE_SHOW = 0;
var RANDOM_PHOTO = 1;
var slideshowContainer;
var sSlide;
var sCaption;
var ssSlides;
var ssSlideTotal;
var ssSlideTimer;
var ssOldSlide;
var ssFadeTimer;
var ssFade;
var ssTimerId;
var blank;


function PrepSlideEnvironment()
{
  tmpCookie = getCookie("Template");

  blank = new Image();
  blank.src = "/img/spacer.gif";

  if (typeof(slideshowType) == "undefined" || (slideshowType != SLIDE_SHOW && slideshowType != RANDOM_PHOTO))
    slideshowType = SLIDE_SHOW;

  if (slideshowType == RANDOM_PHOTO)
    randomSlides = true;

  if (typeof(slideshowContainerId) == "undefined")
    return false
  else if (typeof(slideshowContainerId) == "string")
    slideshowContainer = document.getElementById(slideshowContainerId);

  if (!slideshowContainer)
    return false;

  if (typeof(slideshowUrl) == "undefined" || typeof(slideshowUrl) != "string")
    return false;
  else
    slideshowUrl =  /(?:http:\/\/[^\/]+)?(\/\S+)/.exec(slideshowUrl)[1];

  if (/\/gallery\/[0-9]+/.test(slideshowUrl))
    slideSourceIsGallery = true;
  else
    slideSourceIsGallery = false;

  if (typeof(slideHeight) == "undefined" || isNaN(slideHeight))
    slideHeight = "200";

  if (typeof(slideWidth) == "undefined" || isNaN(slideWidth))
    slideWidth = "300";

  if (typeof(photoHeight) == "undefined" || isNaN(photoHeight))
    photoHeight = slideHeight;

  if (typeof(photoWidth) == "undefined" || isNaN(photoWidth))
    photoWidth = slideWidth;

  if (typeof(slideDuration) == "undefined" || isNaN(slideDuration))
    slideDuration = 3;

  if (typeof(firstSlideUrl) == "undefined" || typeof(firstSlideUrl) != "string")
    firstSlideUrl = blank.src;

  if (typeof(showSlideTransition) == "undefined" || typeof(showSlideTransition) != "boolean")
    showSlideTransition = true;
   
  if (typeof(resizeToPhoto) == "undefined" || typeof(resizeToPhoto) != "boolean")
    resizeToPhoto = true;

  if (typeof(quickStart) == "undefined" || typeof(quickStart) != "boolean")
    quickStart = true;

  if (typeof(randomSlides) == "undefined" || typeof(randomSlides) != "boolean")
    randomSlides = false;

  if (typeof(slideControls) == "undefined" || typeof(slideControls) != "boolean")
    slideControls = false;

  if (typeof(slideCaptions) == "undefined" || typeof(slideCaptions) != "boolean")
    slideCaptions = false;

  if (typeof(slidesClickable) == "undefined" || typeof(slidesClickable) != "boolean")
    slidesClickable = false;

  return true;
}


function loadSlideshow()
{
  if (!PrepSlideEnvironment())
    return false;

  slideshowContainer.innerHTML = '<img src="http://www.smugmug.com/img/spacer.gif" alt="" id="ssSlide" height="' + slideHeight + '" width="' + slideWidth + '" style="opacity: .99; background-image: url(' + firstSlideUrl + '); background-repeat: no-repeat; background-position: center;" />';

  if (slideCaptions)
    slideshowContainer.innerHTML += '<div id="ssCaption"></div>';

  if (slideControls)
    slideshowContainer.innerHTML += '<div id="ssControl"><a title="Previous Slide" id="ssPrev" class="ssBtn" href="javascript: void(0);" onclick="prevSlide();"><img src="/img/spacer.gif" border="0" /></a><a title="Next Slide" id="ssNext" class="ssBtn" href="javascript: void(0);" onclick="nextSlide();"><img src="/img/spacer.gif" border="0" /></a><a title="Pause Slideshow" id="ssPause" class="ssBtn" href="javascript: void(0);" onclick="pauseSlideshow();"><img src="/img/spacer.gif" border="0" /></a><a title="Resume Slideshow" id="ssPlay" class="ssBtn" href="javascript: void(0);" onclick="resumeSlideshow();"><img src="/img/spacer.gif" border="0" /></a></div>';

  sSlide = document.getElementById('ssSlide');
  sCaption = document.getElementById('ssCaption');

  if (slidesClickable) {
    sSlide.style.cursor = 'pointer';
  
    if (firstSlideUrl != blank.src)
      ssAddSlideClick(slideshowUrl);
  }

  ssSlides = new Array(null);
  ssSlideTotal = 0;
  ssSlideTimer = 0;
  ssOldSlide = 0;
  ssFadeTimer = 100;
  ssFade = "out";  

  if (slideSourceIsGallery)
    ajax_query(slideshowHandler, '/photos/sspopup.mg?AlbumID=' + /\/gallery\/([0-9]+)/.exec(slideshowUrl)[1], null, true);
  else {
    var postArray = new Array();
    postArray['TemplateID'] = '8';
    postArray['origin'] = slideshowUrl;
    ajax_query(slideshowHandler, '/homepage/templatechange.mg', postArray, true);
  }
}


function slideshowHandler(response)
{
  if (!slideSourceIsGallery) {
    if (tmpCookie && tmpCookie != "") {
      var postArray = new Array();
      postArray['TemplateID'] = tmpCookie;
      postArray['origin'] = slideshowUrl;
      ajax_query(function(){}, '/homepage/templatechange.mg', postArray, true);
    }
    else
      deleteCookie("Template", "/", "smugmug.com");
  }

  var re = /imageID\[\d+\] = "\d+";/g;
  var re2 = /width\[\d+\] = "\d+";/g;
  var re3 = /height\[\d+\] = "\d+";/g;
  var re4 = /caption\[\d+\] = ".*";/g;

  s = response.match(re); 
  w = response.match(re2);
  h = response.match(re3);
  c = response.match(re4);

  var oSlide;

  for (i = 0; i < s.length; i++)
  {
    oSlide = new Object;

    temp = s[i].split(/"/);
    oSlide.ImageId = temp[1];
    oSlide.File = 'http://upload.smugmug.com/photos/toolthumbs.mg?ImageID=' + temp[1] + '&tool=slideshowXL&winHeight=' + photoHeight + '&winWidth=' + photoWidth;
    oSlide.Gallery = slideshowUrl + '/1/' + oSlide.ImageId;

    temp = h[i].split(/"/);
    oSlide.Height = temp[1];

    temp = w[i].split(/"/);
    oSlide.Width = temp[1];

    temp = c[i].split(/"/);
    oSlide.Caption = temp[1];

    oSlide.Loaded = false;
 
    if ((oSlide.Width > photoWidth) || (oSlide.Height > photoHeight))
    {
      if (oSlide.Width >= oSlide.Height)
      {
         oSlide.Height = Math.round((oSlide.Height / oSlide.Width) * photoWidth);
         oSlide.Width = photoWidth;
      }
      else
      {
        oSlide.Width = Math.round((oSlide.Width / oSlide.Height) * photoHeight);
        oSlide.Height = photoHeight;
      }
    }

    ssSlideTotal = ssSlides.push(oSlide);
  }

  ssSlideTotal -= 1;

  if (randomSlides)
  {
    ssSlides.shift();
    ssSlides.shuffle();
    ssSlides.unshift(0);
  }

  if (quickStart)
    ssSlideTimer = (slideDuration * 1000);

  ssPrepSlide(1);
  window.setTimeout("ssPrepSlide(2);", 0);
  window.setTimeout("ssPrepSlide(ssSlideTotal);", 0);

  if (slideshowType == SLIDE_SHOW)
    ssPlaySlideshow();
  else
    ssSlideSwap(1);
}


function ssPauseSlideshow()
{
  window.clearTimeout(ssTimerId);
  ssTimerId = null;
}


function ssResumeSlideshow()
{
  if (!ssTimerId)
    ssTimerId = window.setTimeout("ssPlaySlideshow()", 10);
}


function ssPrepSlide(prep)
{
  if (ssSlides[prep].Loaded == false)
  {
    ssSlides[prep].Image = new Image();
    ssSlides[prep].Image.src = ssSlides[prep].File;
    ssSlides[prep].Loaded = true;
  }   
}


function ssMoveSlide(i) {
  ssSlideTimer = 0;
  ssFadeTimer = 100;
  ssTransition(ssFadeTimer);
  ssFade = "out";
  ssSlideSwap(i);                       
}


function ssPlaySlideshow()
{
  if (ssSlideTimer >= (slideDuration * 1000))
  {                
    if (ssFade == 'out')
      ssTransition(ssFadeTimer -= 10);                   
 
    if (ssFadeTimer == 0)
    {
      ssSlideSwap(1);
      ssFade = 'in';
    }
 
    if (ssFade == 'in')
      ssTransition(ssFadeTimer += 10);
 
    if (ssFadeTimer == 100)
    {
      ssSlideTimer = 0;
      ssFade = 'out';
    }
  }
  else
    ssSlideTimer += 10;
 
  ssTimerId = window.setTimeout("ssPlaySlideshow()", 10);
}


function ssTransition(opacity)
{
  if (showSlideTransition)
  {
    if (opacity != 100)
      sSlide.style.opacity = (opacity / 100);   
 
    // one case where mozilla sucks: the image will flash if you turn opacity up to 1 suddenly
    else
      sSlide.style.opacity = (.99);
 
    // only affects Win IE
    sSlide.style.filter = 'alpha(opacity=' + opacity + ')';

    if (sCaption) {
      sCaption.style.opacity = sSlide.style.opacity;
      sCaption.style.filter = sSlide.style.filter;
    }
  }
}


function ssSlideSwap(i)
{
  var newSlide = ssOldSlide + i;
 
  if (newSlide > ssSlideTotal)
    newSlide = 1;
 
  if (newSlide < 1)
    newSlide = ssSlideTotal;
 
  if (ssSlides[newSlide].Loaded != false)
  {
    document.images['ssSlide'].src = blank.src;
    sSlide.style.backgroundImage = 'url(' + ssSlides[newSlide].File + ')';
    if (resizeToPhoto)
    {
      document.images['ssSlide'].height = ssSlides[newSlide].Height;
      document.images['ssSlide'].width = ssSlides[newSlide].Width;
    }

    if (slidesClickable)
      ssAddSlideClick(ssSlides[newSlide].Gallery);
    
    if (slideCaptions)
      document.getElementById('ssCaption').innerHTML = ssSlides[newSlide].Caption;

    ssPrepSlide(newSlide < ssSlideTotal ? newSlide + i : 1);
    ssOldSlide = newSlide;
  }
  else
  {
    ssPrepSlide(newSlide);
    ssSlideSwap(i);
  }
}


function ssAddSlideClick(sUrl) {
  addEvent(sSlide, 'click', function(){location.href=sUrl;});
}


Array.prototype.shuffle = function()
{
  var len = this.length;
  var rand, temp, i;

  for (i = 0; i < len; i++)
  {
    rand = Math.floor(Math.random()*len);
    temp = this[i];
    this[i] = this[rand];
    this[rand] = temp;
  }
}


function pauseSlideshow()
{
  document.getElementById('ssPause').style.display = "none";
  document.getElementById('ssPlay').style.display = "inline";
  ssPauseSlideshow();
}


function resumeSlideshow()
{
  document.getElementById('ssPause').style.display = "inline";
  document.getElementById('ssPlay').style.display = "none";
  ssResumeSlideshow();
}


function prevSlide()
{
  pauseSlideshow();
  ssMoveSlide(-1);
}


function nextSlide()
{
  pauseSlideshow();
  ssMoveSlide(1);
}


function getCookie(name) {
  var start = document.cookie.indexOf(name + "=");
  var len = start + name.length + 1;
  
  if ((!start) && (name != document.cookie.substring(0, name.length)))
    return null;

  if (start == -1)
    return null;

  var end = document.cookie.indexOf(";", len);

  if (end == -1)
    end = document.cookie.length;

  return unescape(document.cookie.substring(len, end));
}


function deleteCookie(name, path, domain) {
  if (getCookie(name))
    document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}



if (hasPath("featured"))
  YAHOO.util.Dom.addClass(document.body, "featured");


function hasPath(sPath)
{
  re = new RegExp("\/" + sPath + "(\/|$)");
  return re.test(window.location)
}

/*==============================*/
/*== Bulk Zoom thumbnail v3.1 ==*/
/*==============================*/
var thumbnailArray = new Array();
var thumbnailCount;
var thumbnailItem;
var thumbnailEXIFArray = new Array();
var reqIncrement = 0;

YE.on(window, "load", addBulkThumbnail);

function addBulkThumbnail() {
  if (YD.hasClass(document.body,"galleryPage") && YD.hasClass(document.body,"loggedIn")) {
    if (YD.hasClass(document.body,"traditional") || YD.hasClass(document.body,"allthumbs") ||  YD.hasClass(document.body,"smugmug")) {
      onStartBulk();

      var divTag = YD.get("photoTools");

      YD.get("bulkSave").disabled = true;

      var objSpan = document.createElement("span");
      objSpan.className = "foreground";
      divTag.appendChild(objSpan);

      var objButton = document.createElement("input");
      objButton.type = "checkbox";
      objButton.id = "bulkzoom";
      objSpan.appendChild(objButton);
      YE.on(objButton, "click", toggleBulkZoom);

      var objText = document.createTextNode(' bzt');
      objSpan.appendChild(objText);
    }
  }
}

function toggleBulkZoom() {
  if (YD.get('bulkzoom').checked)
    processThumbnails();
  else
    window.location.reload();
}

function processThumbnails() {
  var re = /\/photos\/(\d+)_(\w+)\-(Ti|Th)/;

  YD.get("ajaxWorking").innerHTML = "<strong><strong>Loading...</strong></strong>"
  toggleDIV('ajaxWorking','','block');

  YD.get("bulkzoom_toolbox").style.display = "";

  var divTag = YD.get("thumbnails") ? YD.get("thumbnails") : YD.get("photos");

  if (divTag) {
    var divTags = YD.getElementsByClassName("photo", "div", divTag);
    for (var i = 0, len = divTags.length; i < len; i++) {
      if (re.test(divTags[i].innerHTML)) {
        re.exec(divTags[i].innerHTML);
        thumbnailEXIFArray.push({"id": RegExp.$1, "key": RegExp.$2});
      }
    }
  }
  getThumbnailEXIF();
}

function maskThumbnails(objThumbnail, j) {
  var re1 = /\/gallery\/\d+_\w+\/\d+\/(\d+)_(\w+)/;
  var re2 = /javascript\:openLB\(([0-9]+),/;
  var re3 = /#(\d+)(_(\w+))?/;

  var divTag = YD.get("thumbnails") ? YD.get("thumbnails") : YD.get("photos");

  if (divTag) {
    divTags = YD.getElementsByClassName("photo", "div", divTag);

    for (var i = 0, len = divTags.length; i < len; i++) {
      if (re1.test(divTags[i].innerHTML))
        re1.exec(divTags[i].innerHTML);
      else
      {
        if (re2.test(divTags[i].innerHTML))
          re2.exec(divTags[i].innerHTML);
        else {
          if (re3.test(divTags[i].innerHTML))
            re3.exec(divTags[i].innerHTML);
          else
            continue;
        }
          
      }

      var thumbnailId = RegExp.$1;
      var thumbnailKey = RegExp.$2;

      var aTags = divTags[i].getElementsByTagName("a");
      var imgTags = aTags[0].getElementsByTagName("img");

      if (objThumbnail.id == thumbnailId) {
        var maskedDiv = document.createElement("div");
        maskedDiv.id = thumbnailId + "_masked";
        maskedDiv.className = j;
        maskedDiv.style.cssText = "position: relative; background: transparent url('" + webServer+"/photos/toolthumbs.mg?tool=cropmask&Size=Small&ImageID="+ objThumbnail.id + "&ImageKey="+ objThumbnail.key + "') no-repeat; width: " + objThumbnail.imgWidth + "px; height: " + objThumbnail.imgHeight + "px; z-index: 1; margin:0px auto; text-align:left;";

        var clearedDiv = document.createElement("div");
        clearedDiv.id = thumbnailId + "_cleared";
        clearedDiv.className = j;
        clearedDiv.style.cssText = "position: absolute; background: url('" + objThumbnail.url + "') no-repeat; width: " + objThumbnail.imgWidth + "px; height: " + objThumbnail.imgHeight + "px; z-index: 2; clip:rect(0px," + objThumbnail.imgWidth + "px," + objThumbnail.imgHeight + "px,0px);";

        maskedDiv.appendChild(clearedDiv);

        var cropboxDiv = document.createElement("div");
        cropboxDiv.id = thumbnailId + "_cropbox";
        cropboxDiv.className = j;
        cropboxDiv.style.cssText = "position: absolute; left: 0px; top: 0px; width: " + (objThumbnail.imgWidth-4) + "px; height: " + (objThumbnail.imgHeight-4) + "px; border: solid 2px blue; z-index: 3; cursor: move";
        YE.on(cropboxDiv, "mousedown", testMouseBulk);
        clearedDiv.appendChild(cropboxDiv);

        var ratioboxDiv = document.createElement("div");
        ratioboxDiv.id = thumbnailId + "_ratiobox";
        ratioboxDiv.className = j;
        ratioboxDiv.style.cssText = "position: absolute; bottom: 0px; right: 0px; width: 25px; height: 25px; border-top: solid 2px blue; border-left: solid 2px blue;  cursor: pointer; cursor: hand; z-index: 4;";
        YE.on(ratioboxDiv, "mousedown", testZoomBulk); 
        cropboxDiv.appendChild(ratioboxDiv);
          
        divTags[i].replaceChild(maskedDiv, aTags[0]);
        divTags[i].style.width = objThumbnail.imgWidth + "px";
        divTags[i].style.height = objThumbnail.imgHeight + "px";
      }
    }
  } 
}

function getThumbnailEXIF()
{
  var thumbnail = thumbnailEXIFArray.shift();

  if (thumbnail) {
    var postArray = new Array();
    postArray['method'] = "getImageInfo";
    postArray['imageId'] = thumbnail.id;
    postArray['imageKey'] = thumbnail.key;
    ajax_query(processThumbnailEXIF, webServer+'/rpc/image.mg', postArray, true);
    window.setTimeout(getThumbnailEXIF, 100);
  }
  else
  {
    toggleDIV('','ajaxWorking','block');

    if (YD.hasClass(document.body,"loggedIn"))
      YD.get("bulkSave").disabled = false;
  }
}

function processThumbnailEXIF(response) {

  var json = eval('(' + response + ')');

  var imgWidth = parseInt(json.result.OriginalWidth);
  var imgHeight = parseInt(json.result.OriginalHeight);

  var obj = {"id": json.result.ImageID, "key": json.result.imageKey, "url": json.result.SmallURL};

  obj.imgHeight = (imgWidth < imgHeight) ? 300 : Math.round((imgHeight / imgWidth) * 400);
  obj.imgWidth = (imgWidth < imgHeight) ? Math.round((imgWidth / imgHeight) * 300) : 400;
  obj.ratio = 0;
  obj.invRatio = 0;
  obj.marginTop = 0;
  obj.marginLeft = 0;
  obj.cropHeight = obj.imgHeight;
  obj.cropWidth = obj.imgWidth;
  obj.oRatio = (imgWidth / obj.imgWidth);
  obj.cropDiff = 0;

  thumbnailArray.push(obj);

  maskThumbnails(thumbnailArray[thumbnailArray.length-1], "bzt_"+ (thumbnailArray.length-1));
}

function zoomThumbnails() {
  if (!thumbnailItem) {
    thumbnailItem = 0;
    thumbnailCount = thumbnailArray.length;
  }

  var thumbnail = thumbnailArray.shift();
  
  if (thumbnail) {
    thumbnailItem++; 

    postArray = new Array();
    postArray['tool'] = 'newthumb';
    postArray['ImageID'] = thumbnail.id;
    postArray['ImageKey'] = thumbnail.key;
    postArray['action'] = "doit";
    postArray['crop_h'] = Math.round(parseInt(thumbnail.cropHeight) * parseFloat(thumbnail.oRatio));
    postArray['crop_w'] = Math.round(parseInt(thumbnail.cropWidth) * parseFloat(thumbnail.oRatio));
    postArray['crop_x'] = Math.round(parseInt(thumbnail.marginLeft) * parseFloat(thumbnail.oRatio));
    postArray['crop_y'] = Math.round(parseInt(thumbnail.marginTop) * parseFloat(thumbnail.oRatio));

    reqIncrement ++;
    updateAjaxStatus();
    window.setTimeout('ajax_query(thumbReqHandler, webServer+\'\/photos\/tools.mg\', postArray, true, true);', 10);
    window.setTimeout(zoomThumbnails, 50);
  } 
}


function thumbReqHandler() {
  updateAjaxStatus();

  reqIncrement--;

  if (thumbnailArray.length == 0 && reqIncrement == 0) {
      window.location.reload();
  }
}

function updateAjaxStatus(sStr) {
  var ajx = YD.get("ajaxWorking");

  if (thumbnailArray.length == 0)
    ajx.innerHTML =  'Processing thumbnail ' + (thumbnailCount - reqIncrement + 1) + ' of ' + thumbnailCount;
  else
    ajx.innerHTML = 'Sending request ' + reqIncrement + ' of ' + thumbnailCount;


  if (sStr) {
    ajx.innerHTML = ajx.innerHTML + sStr;
  }

  toggleDIV('ajaxWorking','','block');
}

var smallestBulk = 75;   
var mouseXBulk = 0;
var mouseYBulk = 0;
var mouseToolBulk = "move";
var hideRatioBulk = false;    
var scaleBulk = 1;
var pageLoadedBulk = false;

function onStartBulk() {
  pageLoadedBulk = true;
}        

function moveBulk(X,Y,e) {
  if (pageLoadedBulk == true)
  {
    try {
      var objClass = (e.srcElement) ? e.srcElement.className : e.target.className;
      var obj = thumbnailArray[objClass.replace("bzt_", "")];

      X = X*scaleBulk;
      Y = Y*scaleBulk;
      var newLeft = obj.marginLeft+X;
      var newTop = obj.marginTop+Y;                                
      var stopX = obj.imgWidth - obj.cropWidth;
      var stopY = obj.imgHeight - obj.cropHeight;

      if (newLeft < 0)
        newLeft = 0;

      if (newLeft > stopX)
        newLeft = stopX;

      if (newTop < 0)
        newTop = 0;

      if (newTop > stopY)
        newTop = stopY;

      obj.marginLeft = newLeft;
      obj.marginTop = newTop;

      var objNode = (e.srcElement) ? e.srcElement : e.target;

      while (objNode.id != obj.id + "_cropbox")
        objNode = objNode.parentNode;

      updateCropBulk(objNode);
    }
    catch(e) {}
  }
  else {
    window.alert("Page loading, please wait.");
  }
}        

function zoomBulk(X,Y,e)
{
  if (pageLoadedBulk == true) {
    try {
      var objClass = (e.srcElement) ? e.srcElement.className : e.target.className;
      var obj = thumbnailArray[objClass.replace("bzt_", "")];              

      var Xadj = (obj.ratio == 0) ? obj.cropWidth+(X*scaleBulk) : 0;
      var Yadj = (obj.ratio == 0) ? obj.cropHeight+(Y*scaleBulk) : 0;

      var newWidth = obj.cropWidth+(X*scaleBulk);
      var newHeight = Math.round(newWidth*obj.ratio)+Yadj;

      if (newWidth < smallestBulk) {
        newWidth = smallestBulk;
        newHeight = Math.round(newWidth*obj.ratio)+Yadj;
      }

      if (newHeight < smallestBulk) {
        newHeight = smallestBulk;
        newWidth = Math.round(newHeight*obj.invRatio)+Xadj;
      } 

      if (newWidth+obj.marginLeft > obj.imgWidth) {
        newWidth = obj.imgWidth-obj.marginLeft;
        newHeight = Math.round(newWidth*obj.ratio)+Yadj;
      } 

      if (newHeight+obj.marginTop > obj.imgHeight) {
        newHeight = obj.imgHeight-obj.marginTop;
        newWidth = Math.round(newHeight*obj.invRatio)+Xadj;
      }                

      obj.cropWidth = newWidth;
      obj.cropHeight = newHeight;

      var objNode = (e.srcElement) ? e.srcElement : e.target;

      while (objNode.id != obj.id + "_cropbox")
        objNode = objNode.parentNode;

      updateCropBulk(objNode);
    }
    catch(e) {}
    
  }
  else {
    window.alert("Page loading, please wait.");
  }
}        

function changeRatioBulk(newRatios) {
  if (pageLoadedBulk == true) {
    var newRatio = newRatios.split(",");

    for (i=0; i<thumbnailArray.length; i++) {
      var obj = thumbnailArray[i];

      if (obj.imgHeight > obj.imgWidth) {
        obj.ratio = newRatio[1];
        obj.invRatio = newRatio[0];
      }
      else {
        obj.ratio = newRatio[0];
        obj.invRatio = newRatio[1];
      }

      if (obj.ratio == 0) {
        YD.get('customRatio').style.display = "none";
        obj.marginTop = 0;
        obj.marginLeft = 0;
        obj.cropHeight = obj.imgHeight;
        obj.cropWidth = obj.imgWidth;
      }
      else {
        if (newRatios == "custom") {
          obj.ratio = document.cropTool.ratioH.value/document.cropTool.ratioW.value;
          obj.invRatio = document.cropTool.ratioW.value/document.cropTool.ratioH.value;
          YD.get('customRatio').style.display = "block";
        }
        else
          YD.get('customRatio').style.display = "none";

        obj.cropWidth = Math.round(1 * obj.imgWidth);

        obj.cropHeight = Math.round(obj.cropWidth * obj.ratio);        

        if ((obj.cropHeight > obj.imgHeight)||(obj.cropWidth > obj.imgWidth)) {
          obj.cropHeight = obj.imgHeight;  
          obj.cropWidth = Math.round(obj.cropHeight * obj.invRatio);
        }   

        obj.marginTop = ((obj.imgHeight - obj.cropHeight)/2);
        obj.marginLeft = ((obj.imgWidth - obj.cropWidth)/2);
      }

      updateCropBulk(YD.get(thumbnailArray[i].id + "_cropbox"));
    }
  }
  else {
     window.alert("Page loading, please wait.");
  }
}        

function rotateBulk() {
  if (pageLoadedBulk == true) {
    for (i=0; i<thumbnailArray.length; i++) {
      var obj = thumbnailArray[i];

      var Xadj = (obj.ratio == 0) ? obj.cropHeight : 0;
      var Yadj = (obj.ratio == 0) ? obj.cropWidth : 0;

      var temp = obj.invRatio;
      obj.invRatio = obj.ratio;
      obj.ratio = temp;
      temp = obj.cropWidth;
      obj.cropWidth = obj.cropHeight;
      obj.cropHeight = temp;  

      if (obj.cropWidth + obj.marginLeft > obj.imgWidth) {
        obj.marginLeft = obj.imgWidth - obj.cropWidth;

        if (obj.marginLeft < 0) {
          obj.marginLeft = 0;
          obj.cropWidth = obj.imgWidth - obj.marginLeft;
          obj.cropHeight = Math.round(obj.cropWidth * obj.ratio)+Yadj;                        
        }
      } 

      if (obj.cropHeight + obj.marginTop > obj.imgHeight) {
        obj.marginTop = obj.imgHeight - obj.cropHeight;

        if (obj.marginTop < 0) {
          obj.marginTop = 0;
          obj.cropHeight = obj.imgHeight - obj.marginTop;
          obj.cropWidth = Math.round(obj.cropHeight * obj.invRatio)+Xadj;
        }
      }

      updateCropBulk(YD.get(obj.id + "_cropbox"));
    }
  }
  else
    window.alert("Page loading, please wait.");
}        

function updateCropBulk(e) {
  var objClass = e.className;
  var obj = thumbnailArray[objClass.replace("bzt_", "")];

  e.parentNode.style.clip = "rect("+obj.marginTop+"px "+(obj.marginLeft+obj.cropWidth)+"px "+(obj.marginTop+obj.cropHeight)+"px "+obj.marginLeft+"px)";
  e.style.top = obj.marginTop+"px";
  e.style.left = obj.marginLeft+"px";
  e.style.width = obj.cropWidth-obj.cropDiff+"px";
  e.style.height = obj.cropHeight-obj.cropDiff+"px";
}        

function mouseMoveBulk(e) {
  if (!e) var e = window.event;

   var objClass = (e.srcElement) ? e.srcElement.className : e.target.className;

  if (lookMouse) {
    var tempX = mouseXBulk;
    var tempY = mouseYBulk;
    mouseXBulk = e.clientX;
    mouseYBulk = e.clientY;
    var x = mouseXBulk-tempX;
    var y = mouseYBulk-tempY;

    if (mouseToolBulk == "zoom") {
      if (thumbnailArray[objClass.replace("bzt_","")].ratio == 0)
        zoomBulk(x,y,e);
      else
        zoomBulk(x,0,e);
    }
    else
      moveBulk(x,y,e)
  }
}

function testMouseBulk(e) {
  state = true;
  if (!e) var e = window.event;

  if (mouseToolBulk != "zoom") {
    lookMouse = state;

    if (state == true) {
      mouseToolBulk = "move";
      mouseXBulk = e.clientX;
      mouseYBulk = e.clientY;
      document.onmousemove = mouseMoveBulk;
    }
  }
}

function testZoomBulk(e) {
  state=true;
  if (!e) var e = window.event;

  lookMouse = state;
  if (state == true) {	            
    mouseToolBulk = "zoom"
    mouseXBulk = e.clientX;
    mouseYBulk = e.clientY;
    document.onmousemove = mouseMoveBulk;
  }
}

function cancelMouse() {
  mouseToolBulk = "move";
  lookMouse = false;
}

document.onmouseup = cancelMouse;


/***********************************************

* AnyLink Drop Down Menu- � Dynamic Drive (www.dynamicdrive.com)

* This notice MUST stay intact for legal use

* Visit http://www.dynamicdrive.com/ for full source code

***********************************************/



//Contents for menu 1

var menu1=new Array()

menu1[0]='<a href="http://www.pezpix.com/Galleries/218387">Wildlife</a>'

menu1[1]='<a href="http://www.pezpix.com/Galleries/218389">Mountains</a>'

menu1[2]='<a href="http://www.pezpix.com/Galleries/218392">Sports</a>'

menu1[3]='<a href="http://www.pezpix.com/Galleries/218388">Seascapes</a>'





//Contents for menu 2, and so on

var menu2=new Array()

//This menu is blank



//Contents for menu 3, and so on

var menu3=new Array()

menu3[0]='<a href="#">Item 1</a>'

menu3[1]='<a href="#">Item 2</a>'

menu3[2]='<a href="#">Item 3</a>'

		

var menuwidth='150px' //default menu width

var menubgcolor='#222222'  //menu bgcolor

var disappeardelay=250  //menu disappear speed onMouseout (in miliseconds)

var hidemenu_onclick="yes" //hide menu when user clicks within menu?



/////No further editting needed



var ie4=document.all

var ns6=document.getElementById&&!document.all



if (ie4||ns6)

document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')



function getposOffset(what, offsettype){

var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;

var parentEl=what.offsetParent;

while (parentEl!=null){

totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;

parentEl=parentEl.offsetParent;

}

return totaloffset;

}





function showhide(obj, e, visible, hidden, menuwidth){

if (ie4||ns6)

dropmenuobj.style.left=dropmenuobj.style.top="-500px"

if (menuwidth!=""){

dropmenuobj.widthobj=dropmenuobj.style

dropmenuobj.widthobj.width=menuwidth

}

if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")

obj.visibility=visible

else if (e.type=="click")

obj.visibility=hidden

}



function iecompattest(){

return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body

}



function clearbrowseredge(obj, whichedge){

var edgeoffset=0

if (whichedge=="rightedge"){

var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15

dropmenuobj.contentmeasure=dropmenuobj.offsetWidth

if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)

edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth

}

else{

var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset

var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18

dropmenuobj.contentmeasure=dropmenuobj.offsetHeight

if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?

edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight

if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?

edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge

}

}

return edgeoffset

}



function populatemenu(what){

if (ie4||ns6)

dropmenuobj.innerHTML=what.join("")

}





function dropdownmenu(obj, e, menucontents, menuwidth){

if (window.event) event.cancelBubble=true

else if (e.stopPropagation) e.stopPropagation()

clearhidemenu()

dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv

populatemenu(menucontents)



if (ie4||ns6){

showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)

dropmenuobj.x=getposOffset(obj, "left")

dropmenuobj.y=getposOffset(obj, "top")

dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"

dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"

}



return clickreturnvalue()

}



function clickreturnvalue(){

if (ie4||ns6) return false

else return true

}



function contains_ns6(a, b) {

while (b.parentNode)

if ((b = b.parentNode) == a)

return true;

return false;

}



function dynamichide(e){

if (ie4&&!dropmenuobj.contains(e.toElement))

delayhidemenu()

else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))

delayhidemenu()

}



function hidemenu(e){

if (typeof dropmenuobj!="undefined"){

if (ie4||ns6)

dropmenuobj.style.visibility="hidden"

}

}



function delayhidemenu(){

if (ie4||ns6)

delayhide=setTimeout("hidemenu()",disappeardelay)

}



function clearhidemenu(){

if (typeof delayhide!="undefined")

clearTimeout(delayhide)

}



if (hidemenu_onclick=="yes")

document.onclick=hidemenu

/*============================*/

/*== RightClick Warning ==*/

/*============================*/

rightClickWarning = "All photos are © 2006-2010 B.A. Pezman - Pezpix.com. All rights reserved. Unauthorized use is prohibited without permission."

YE.onAvailable('fades', function() {if (YD.hasClass(document.body,
"fsSlideshow")) this.click();});

YE.onAvailable('captions', function() {if (YD.hasClass(document.body,
"fsSlideshow")) this.click();});




