/*Duplicate Home Page*/
function hasPath(sPath)
{
re = new RegExp("\/" + sPath + "(\/|$)");
return re.test(window.location)
}

if (hasPath("galleries"))
YD.addClass(document.body, "galleries");

//-------------------------------------------------------------------------
// Code to move the slideshow button to the same row
// as the buy button
//-------------------------------------------------------------------------
function MyNewSlideshowInit(container, id, config)
{
   if (config && config.slideshowDiv && (config.slideshowDiv == "fsssButton"))
   {
       var cartDiv = YD.get("cartButtonsWrapper");
       if (cartDiv)
       {
           var ssDiv = YD.get("fsssButton");
           if (ssDiv)
           {
               ssDiv.parentNode.removeChild(ssDiv);
           }
           var newDiv = document.createElement("div");
           newDiv.id = "fsssButton";
           cartDiv.appendChild(newDiv);
           container = "cartButtonsWrapper";
       }
   }
   return (myOldSlideshowInit.apply(this, arguments));
}

var myOldSlideshowInit;
if (typeof(SM.buttons.slideshow) != "undefined")
{
   // hook the init function on the SM.buttons.slideshow object
   myOldSlideshowInit = SM.buttons.slideshow.prototype.init;
   SM.buttons.slideshow.prototype.init = MyNewSlideshowInit;
}

//------------------------------------------------------------------------------------
// Move share button to the cart line
//-------------------------------------------------------------------------------------

YE.onContentReady("shareButton", MoveToCartDiv);

function MoveToCartDiv()
{
   MoveObjToDiv(this, "cartButtonsWrapper");
}

function MoveObjToDiv(sourceObj, destDiv)
{
   var destDivObj = document.getElementById(destDiv);    // get the object for the dest div
   if (sourceObj && destDivObj)
   {
       sourceObj.parentNode.removeChild(sourceObj);    // remove object from it's current parent
       destDivObj.appendChild(sourceObj);                // add it to the new parent
   }
}

//------------------------------------------------------------------------------------------
// Highlight the link in your navbar that matches the current page.
//
// See http://www.dgrin.com/showthread.php?t=141678 for documentation.
//------------------------------------------------------------------------------------------
YE.onContentReady("navcontainer", function ()
{
       function AddTrailingSlash(str)
       {
               if (str.search(/\/$/) == -1)
               {
                       str = str + "/";
               }
               return(str);
       }

       function StripDomainAndHash(oldStr)
       {
               var str = oldStr.replace(/#.*$/, "");                           // get rid of hash value
               str = AddTrailingSlash(str);                                                    // make sure it always ends in a slash
               str = str.replace(/^https?:\/\/[^\/]*/, "");                    // get rid of domain on the front
               return(str);
       }

       var links = this.getElementsByTagName("a");
       if (links && (links.length > 0))
       {
               var pageURL = StripDomainAndHash(window.location.href);

               var foundExactMatch = false;
               var partialIndex = -1;          // index of best partial match
               var partialLength = 0;          // length of the best partial match
               var galleriesIndex = -1;                // index of the /galleries link

               // check each link for an href match with our current page
               for (var i = 0; i < links.length; i++)
               {
                       var testLink = StripDomainAndHash(links[i].href);                       // relative link will be turned into absolute link here
                       if (testLink == pageURL)
                       {
                               YD.addClass(links[i], "navCurrentPage navCurrentPageExact");
                               YD.addClass(links[i].parentNode, "navCurrentPageParent navCurrentPageParentExact");
                               foundExactMatch = true;
                               break;
                       }
                       // if testLink is not the top level (don't want to do partial matches for top level)
                       else if (testLink != "/")
                       {
                               // if the testLink is contained within the pageURL
                               // (e.g. the current page link is longer than the navbar link and starts with it),
                               // remember it as a partial match
                               if (pageURL.indexOf(testLink) == 0)
                               {
                                       // save the longest partial match (assuming it to be the most specific)
                                       if (testLink.length > partialLength)
                                       {
                                               partialIndex = i;
                                               partialLength = testLink.length;
                                       }
                               }
                               else if (testLink == "/galleries/")
                               {
                                       galleriesIndex = i;
                               }
                       }
               }
               if (!foundExactMatch)
               {
                       // since we had no exact match, check for partial matches
                       if (partialIndex != -1)
                       {
                               YD.addClass(links[partialIndex], "navCurrentPage navCurrentPagePartial");
                               YD.addClass(links[partialIndex].parentNode, "navCurrentPageParent navCurrentPageParentPartial");
                       }
                       // if no exact match and no partial matches
                       // and we did have a galleries link
                       // and we're on a gallery page or a category or subcategory page
                       // then, mark the galleries link
                       else if ((galleriesIndex != -1) && (YD.hasClass(document.body, "galleryPage") || YD.hasClass(document.body, "category")))
                       {
                               YD.addClass(links[galleriesIndex], "navCurrentPage navCurrentPageGallery");
                               YD.addClass(links[galleriesIndex].parentNode, "navCurrentPageParent navCurrentPageParentGallery");
                       }
               }
       }
});

// script to replace a user's name in the breadcrumb with "Home"
YE.onContentReady("breadCrumbTrail", ReplaceTopOfBreadcrumbWithHome);

function ReplaceTopOfBreadcrumbWithHome()
{
    var str = this.innerHTML.replace(/\n/g, " ");
    this.innerHTML = str.replace(/\>[^\<]+<\/a>/i, ">Home</a>");
}