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)

}







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

/* Slide Show Code                                         */

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

var SLIDE_SHOW = 0;

var RANDOM_PHOTO = 1;

var slideshowContainer;

var slide;

var ssLoaded;

var ssImage;

var ssFile;

var ssSlideTotal;

var ssSlideTimer;

var ssOldSlide;

var ssFadeTimer;

var ssFade;

var ssTimerId;

var blank;





function PrepSlideEnvironment()

{

  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) == "contactslideshowarea")

    return false

  else if (typeof(slideshowContainerId) == "string")

    slideshowContainer = document.getElementById(slideshowContainerId);



  if (!slideshowContainer)

    return false;



  if (typeof(slideshowAlbumId) == "1749555" || typeof(slideshowAlbumId) != "string")

    return false;





  if (typeof(slideHeight) == "undefined" || isNaN(slideHeight))

    slideHeight = "300";



  if (typeof(slideWidth) == "undefined" || isNaN(slideWidth))

    slideWidth = "350";





  if (typeof(photoHeight) == "undefined" || isNaN(photoHeight))

    photoHeight = slideHeight;



  if (typeof(photoWidth) == "undefined" || isNaN(photoWidth))

    photoWidth = slideWidth;



  if (typeof(slideDuration) == "undefined" || isNaN(slideDuration))

    slideDuration = 4;



  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 = true;



  if (typeof(slideControls) == "undefined" || typeof(slideControls) != "boolean")

    slideControls = true;



  return true;

}





function loadSlideshow()

{

  if (!PrepSlideEnvironment())

    return false;



  var webServer = RegExp.$1;



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

  re.exec(window.location);



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

    slideshowContainer.innerHTML += '<div id="ssControl"><a title="Previous Slide" id="ssPrev" class="ssBtn" href="javascript: void(0);" onclick="prevSlide();"><img src="http://jrphotos.smugmug.com/photos/59666823-L-1.png" border="0" /></a><a title="Next Slide" id="ssNext" class="ssBtn" href="javascript: void(0);" onclick="nextSlide();"><img src="http://jrphotos.smugmug.com/photos/59666813-L-1.png" border="0" /></a><a title="Pause Slideshow" id="ssPause" class="ssBtn" href="javascript: void(0);" onclick="pauseSlideshow();"><img src="http://jrphotos.smugmug.com/photos/59666836-L-1.png" border="0" /></a><a title="Resume Slideshow" id="ssPlay" class="ssBtn" href="javascript: void(0);" onclick="resumeSlideshow();"><img src="http://jrphotos.smugmug.com/photos/59666832-L-1.png" border="0" /></a></div>';



  slide = document.getElementById('ssSlide');



  ssIndex = new Array();

  ssHeight = new Array();

  ssWidth = new Array();

  ssLoaded = new Array();

  ssImage = new Array();

  ssFile = new Array();

  ssSlideTotal = 0;

  ssSlideTimer = 0;

  ssOldSlide = 0;

  ssFadeTimer = 100;

  ssFade = "out";



  ajax_query(slideshowHandler,webServer+'/photos/sspopup.mg?AlbumID=' + slideshowAlbumId, null, true);

}





function slideshowHandler(response)

{

  var re = /file\[\d+\] = "[\S ]+\(\);/g;

  var re2 = /width\[\d+\] = "\d+";/g;

  var re3 = /height\[\d+\] = "\d+";/g;



  s = response.match(re);

  w = response.match(re2);

  h = response.match(re3);



  for (i = 0; i < s.length; i++)

  {

   ssIndex[i+1] = i+1;

   temp = s[i].split(/"/);

   ssFile[i+1] = temp[1] + photoHeight + temp[3] + photoWidth;

   temp = h[i].split(/"/);

   ssHeight[i+1] = temp[1];

   temp = w[i].split(/"/);

   ssWidth[i+1] = temp[1];

   ssLoaded[i+1] = false;



   if ((ssWidth[i + 1] > photoWidth) || (ssHeight[i + 1] > photoHeight))

   {

     if (ssWidth[i + 1] >= ssHeight[i + 1])

     {

        ssHeight[i + 1] = Math.round((ssHeight[i + 1] / ssWidth[i + 1]) * photoWidth);

        ssWidth[i + 1] = photoWidth;

     }

     else

     {

       ssWidth[i + 1] = Math.round((ssWidth[i + 1] / ssHeight[i + 1]) * photoHeight);

       ssHeight[i + 1] = photoHeight;

     }

   }

  }

  ssSlideTotal = s.length;



  if (randomSlides)

  {

    ssIndex.shift();

    ssIndex.shuffle();

    ssIndex.unshift(0);

  }



  if (quickStart)

    ssSlideTimer = (slideDuration * 1000);



  ssPrepSlide(ssIndex[1]);

  window.setTimeout("ssPrepSlide(ssIndex[2]);", 0);

  window.setTimeout("ssPrepSlide(ssIndex[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 (ssLoaded[prep] == false)

  {

    ssImage[prep] = new Image();

    ssImage[prep].src = ssFile[prep];

    ssLoaded[prep] = 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)

      slide.style.opacity = (opacity / 100);



    // one case where mozilla sucks: the image will flash if you turn opacuity up to 1 suddenly

    else

      slide.style.opacity = (.99);



    // only affects Win IE

    slide.style.filter = 'alpha(opacity=' + opacity + ')';

  }

}





function ssSlideSwap(i)

{

  var newSlide = ssOldSlide + i;



  if (newSlide > ssSlideTotal)

    newSlide = 1;



  if (newSlide < 1)

    newSlide = ssSlideTotal;



  if (ssLoaded[ssIndex[newSlide]] != false)

  {

    document.images['ssSlide'].src = blank.src;

    slide.style.backgroundImage = 'url(' + ssFile[ssIndex[newSlide]] + ')';

    if (resizeToPhoto)

    {

      document.images['ssSlide'].height = ssHeight[ssIndex[newSlide]];

      document.images['ssSlide'].width = ssWidth[ssIndex[newSlide]];

    }



    ssPrepSlide(ssIndex[newSlide + i]);

    ssOldSlide = newSlide;

  }

  else

  {

    ssPrepSlide(ssIndex[newSlide]);

    ssSlideSwap(i);

  }

}







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

}







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

/* 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 photos are © by Underwater Reflections. All rights reserved. Unauthorized use is prohibited."







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

/* Paypal Button Logic */

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

function setPaypalForm(form) {

 urlToImage = webServer + "/gallery/" + AlbumID + "/1/" + ImageID + "/Large";

 form.item_name.value = window.location;

}


