function isClass(sClass) {
  sClassName = document.body.className;
  re = new RegExp(sClass + "( |$)") 

  if (!sClassName)
    return false;

  return re.test(sClassName);
}

/***********************************************************/
/* 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) == "1515459" || 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 Amy Carroll photography. All rights reserved. Unauthorized use is prohibited."


/* *********************/
/* Paypal Button Logic */
/* *********************/
function setPaypalForm(form) {
 urlToImage = webServer + "/gallery/" + AlbumID + "/1/" + ImageID + "/Large";
 form.item_name.value = urlToImage;
}



