displaySmugPopular = false;

/*=========================*/
/*== SLIDE SHOW          ==*/
/*== version 0.58        ==*/
/*== Updated 15 Mar 2007 ==*/
/*=========================*/
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 = YD.get(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 = YD.get('ssSlide');
  sCaption = YD.get('ssCaption');

  if (slidesClickable) {
    sSlide.style.cursor = 'pointer';
  
    if (firstSlideUrl != blank.src) {
      ssAddSlideClick(slideshowUrl);
    }
  }

  ssSlides = [];
  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 = [];
    postArray['TemplateID'] = '8';
    postArray['origin'] = slideshowUrl;
    ajax_query(slideshowHandler, '/homepage/templatechange.mg', postArray, true);
  }
}


function slideshowHandler(response)
{
  if (!slideSourceIsGallery) {
    if (tmpCookie && tmpCookie != "") {
      setCookie('Template', tmpCookie, 30, '/', /(?:http[s]?:\/\/)?(?:\w+\.)?(\S+[^\/])/.exec(location.href)[1]);
    } else {
      deleteCookie("Template", "/", /(?:http[s]?:\/\/)?(?:\w+\.)?(\S+[^\/])/.exec(location.href)[1]);
    }
  }

  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 = {};

    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) {
      YD.setStyle(sSlide, 'opacity', (opacity / 100));
    } else {
      YD.setStyle(sSlide, 'opacity', '.99'); // to prevent flashing in mozilla browsers
    }
 
    // only affects Win IE
    YD.setStyle(sSlide, 'filter', 'alpha(opacity=' + opacity + ')');

    if (sCaption) {
      YD.setStyle(sCaption, 'opacity', sSlide.style.opacity);
      YD.setStyle(sCaption, '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;
    YD.setStyle(sSlide, '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) {
      YD.get('ssCaption').innerHTML = ssSlides[newSlide].Caption;
    }

    ssPrepSlide(newSlide < ssSlideTotal ? newSlide + i : 1);
    ssOldSlide = newSlide;
  } else {
    ssPrepSlide(newSlide);
    ssSlideSwap(i);
  }
}


function ssAddSlideClick(sUrl) {
  YE.purgeElement(sSlide, false, 'click');
  YE.addListener(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()
{
  YD.setStyle('ssPause', 'display', 'none');
  YD.setStyle('ssPlay', 'display', 'inline');
  ssPauseSlideshow();
}


function resumeSlideshow()
{
  YD.setStyle('ssPause', 'display', 'inline');
  YD.setStyle('ssPlay', '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 setCookie(name, value, expires, path, domain, secure) {
  var today = new Date();
  today.setTime( today.getTime() );

  if (expires) {
    expires = expires * 1000 * 60 * 60 * 24;
  }

  var expires_date = new Date(today.getTime() + (expires));

  document.cookie = name + '='+escape(value) +
    ((expires) ? ';expires=' + expires_date.toGMTString() : '') +
    ((path) ? ';path=' + path : '') +
    ((domain) ? ';domain=' + domain : '') +
    ((secure) ? ';secure' : '');
}


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";
  }
}


function hasPath(sPath)
{
re = new RegExp("\/" + sPath + "(\/|$)");
return re.test(window.location)
}



YE.onAvailable('fades', function() {if (YD.hasClass(document.body,
"fsSlideshow")) this.click();});



SM.PhotoBar.config.position = 'bottom';

rightClickWarning = "These photos are copyrighted by Visions by Baker Photography, LLC. All rights reserved. Unauthorized use is prohibited. Further attempts to copy, download, or otherwise steal these images will cause the security software to log and record your computer's IP address for future use in criminal prosecution. Thank you for your cooperation.";

