/*=========================================*/
/*== Return to Thumb (Single Image Page) ==*/
/*=========================================*/
function fixPhotoNav() {
  var oPhotoNav = YD.getElementsByClassName("photoNav", "div");

  for (var i=0; i < oPhotoNav.length; i++) {
    var re = /gallery\/([\d]+)(_(\w+))?\//;
    var oTitle = YD.getElementsByClassName("title", "span", oPhotoNav[i]);
    if (re.test(window.location)) {
      oTitle[0].innerHTML = "|&nbsp;" + oTitle[0].innerHTML + "&nbsp;|";
      re.exec(window.location);
      oPhotoNav[i].innerHTML = oPhotoNav[i].innerHTML + "<span ><a href='/gallery/" + RegExp.$1 + ((RegExp.$2 != undefined) ? RegExp.$2 : "") + "'>Return to Album</a></span>";
    }
  }
}












function isClass(sClass) {



  sClassName = document.body.className;



  re = new RegExp(sClass + "( |$)")







  if (!sClassName)



    return false;







  return re.test(sClassName);



}











function getHostname()



{



  re = /(http:\/\/[\w]+\.[\w]+\.[\w]+)\//;



  re.exec(window.location);



  return RegExp.$1;



}







function hasPath(sPath)



{



  re = new RegExp("\/" + sPath + "(\/|$)");



  return re.test(window.location)



}







/*===================*/



/*== Seach by Date ==*/



/*===================*/



function searchTimeLine(response)



{



  re1 = /<div class="boxBottom">[\s\S]+<\/div>[\s]+<div class="spacer"><\/div>/;



  re2 = /Or, pick an arbitrary date range/;



  response = response.replace(re2,"Or, Pick your own Date Range");



  s = response.match(re1);



  document.getElementById("dateContainer").innerHTML = s;



}



















/*=========================*/



/*== 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";



}











/***************************/



/* Menu Code               */



/***************************/















  var menuArray = new Array();



  var tableID   = null;



  var   rowID   = null;







  function collapse(subMenu)



  {



 //         alert(menuArray.length);







    if(subMenu==0)



      {



    //CLOSE ALL OPEN SUB-MENUS IN REVERSE ORDER FROM WHICH THEY WERE OPENED



        for(var i=(menuArray.length)-1; i>=0; i--)



        {



          document.getElementById(menuArray[i]).style.display="none";



            menuArray.length=i;  //DELETES ROW[I] FROM THE ARRAY



        }



      }



    else



      {



      //CLOSE APPROPRIATE SUB-MENU CHILDREN



        var j=menuArray.length;



        while(menuArray[--j]!=subMenu)



      {



          document.getElementById(menuArray[j]).style.display="none";



          menuArray.length=j;



        }



      }



  }







  function checkTable(ID)



  {



  //USED FOR TROUBLESHOOTING



  //alert("rowID="+rowID+", tableID="+tableID+", ID="+ID+", mA[0]="+menuArray[0]+", mA[1]="+menuArray[1]+", mA[2]="+menuArray[2])







  //THE MENU OPTION SELECTED HAS NO SUB-MENUS, SO CLOSE ALL OPEN SUB-MENUS AND STOP PROCESSING



    if(rowID==0)



      {



        collapse(0);



        return;



    }







  //A MENU OPTION FROM A DIFFERENT TABLE (GROUPING) HAS BEEN SELECTED, SO CLOSE ALL SUB-MENUS FROM THE OTHER TABLE



    if(tableID!=ID)



      {



         tableID =ID;



       collapse(0);



      }







      var flag=0;



  //CHECK IF THE SUB-MENU HAS ALREADY BEEN OPENED



      for(var i=0; i<menuArray.length; i++)



      {



        if(menuArray[i]==rowID)



             flag=1;



      }







  //IF THE MENU SELECTED IS ALREADY OPEN



      if(flag==1)



      {



      //COLLAPSE ALL SUB-MENU CHILDREN



        collapse(rowID);



      }



      else



      {



      //DISPLAY THE SUB-MENU



              if((rowID != null) && (rowID != "0") )



              {



                      menuArray[menuArray.length] = rowID;



                      document.getElementById(rowID).style.display = "";



                      //objSpan = eval("document.getElementById('span"+rowID+"')");



                      //objSpan.style.display = "block";



              }



      }



  }



















/**********************/



/* Right Click Warning */



/**********************/



rightClickWarning = "All images are copyrighted by Andrea Joseph Photography. All rights reserved. Unauthorized use is prohibited."



















/***************************/



/* Turn off Popular Voting */



/***************************/



displaySmugPopular = true;









/****************************************

/* Places the Smugmug Bar on the bottom */



/****************************************/



SM.PhotoBar.config.position = 'bottom';














