// code to force any gallery page to Smugmug view (even keyword and search pages)

function ForceSmugmugView()
{
    // if we're on a galleryPage, and the view isn't already smugmug
    if (!YD.hasClass(document.body, "smugmug"))
    {
        var url = window.location.toString();
        var re = new RegExp(/forceView=(\d+)/);
        var match = re.exec(url);
        var curTime = new Date();
        if (match && (match.length > 1))
        {
            var prevTime = new Date();
            prevTime.setTime(match[1]);
            // check to see if we've already done this in the last 60 seconds to avoid loops
            if (curTime - prevTime < (60*1000))
            {
                return;
            }
        }
        var postData = 'tool=setCookie&value=3&type=Template';
        var broken = function() {};
        var reloadPage = function() 
        {
            var newUrl;
            if (match)
            {
                newUrl = url.replace(/forceView=\d+/, "forceView=" + curTime.getTime());
            }
            else if (url.indexOf("?") != -1)
            {
                newUrl = url.replace("?", "?forceView=" + curTime.getTime() + "&");
            }
            else if (url.indexOf("#") != -1)
            {
                newUrl = url.replace("#", "?forceView=" + curTime.getTime() + "#");
            }
            else
            {
                newUrl = url + "?forceView=" + curTime.getTime();
            }
            window.location.replace(newUrl);
        };
        var callback = {
            success: reloadPage,
            failure: broken,
            scope: this
        };
        YAHOO.util.Connect.asyncRequest('POST','/rpc/settings.mg', callback, postData);
    }
}

// only trigger this function if there is a stylebar because that means the gallery isn't locked into a particular view
YE.onAvailable("viewingStylesButton", ForceSmugmugView);

// ------------------------------------------------------------------------
// Code to insert a download button 
// 
// Works for any gallery that has originals enabled
// And right-click protection off
// And gallery is in smugmug or smugmug small view
// ------------------------------------------------------------------------

function IsAnySmugmugView()
{
    return(YD.hasClass(document.body, "smugmug") || YD.hasClass(document.body, "smugmug_small"));
}

function IsGalleryPage()
{
	return(YD.hasClass(document.body, "galleryPage"));
}

onPhotoShow.subscribe(ProcessDownloadButton);

function ProcessDownloadButton()
{
	// set onlyInGalleries to true if you only want a download button in gallery views
	// set onlyInGalleries to false if you want a download button in other views too like (search, keywords, date, etc...)
	var onlyInGalleries = false;
	if (IsAnySmugmugView() && (IsGalleryPage() || !onlyInGalleries))
	{
		if (photoInfo[ImageID].albumOriginals && !photoInfo[ImageID]['protected'] && (photoInfo[ImageID].Format !== "MP4"))
		{
			var downloadParent = "cartButtonsWrapper";
			if (!document.getElementById("cartButtonsWrapper"))
			{
				downloadParent = "altViews";
			}
			InsertDownloadButton(downloadParent);
		}
		else
		{
			// disable the button
			var downloadButton = YAHOO.widget.Button.getButton("downloadButtonId");
			if (downloadButton)
			{
				downloadButton.set("disabled", true);
			}
		}
	}
}

function InsertDownloadButton(parentId)
{
	// now add the download button
	var parentDiv = document.getElementById(parentId);
	var downloadButton = document.getElementById("downloadButtonId");
	if (downloadButton)
	{
		// make sure it is enabled
		YAHOO.widget.Button.getButton("downloadButtonId").set("disabled", false);
	}
	else if (parentDiv)
	{
		var downloadButtonInfo =
		{
			id: "downloadButtonId",
			label: "Download Image...",
			container: parentDiv,
			type: "button",
			className: "sm-button sm-button-small themesButton glyphButton",
			onclick: { fn: InitiateDownloadImage }
		};
		
		var dButtonObj = new YAHOO.widget.Button(downloadButtonInfo);
	}
}

function InitiateDownloadImage()
{
	// construct the download URL
	window.location = "/photos/" + ImageID + "_" + ImageKey + "-D.jpg";
}

