﻿//Fix all image paths so they resolve properly whether or not we're on /Public/Main.aspx or just (root).
//Necessary because we have to use Server.Transfer from the default.aspx page instead of Response.Redirect (to preserve Url Referrer),
// but Page.ResolveUrl is no longer allowed because of the CMS controls!

//$(document).ready(function() {
function FixUrls(baseUrl)
{
    //alert("inside urlfixer");

    var images = $("[src]"); //alert(images.length);
    $.each(images, function(key, value) {
	    var src = $(this).attr("src"); //alert("before: " + src);
	    if (src)
	    {					
		    src = ResolveUrl(src, baseUrl); //alert("after: " + src);
		    $(this).attr("src", src);
	    }
    });
			
    //Fix all hyperlink paths
    var links = $("[href]"); //alert(links.length);
    $.each(links, function(key, value) {
	    var href = $(this).attr("href"); //alert("before: " + href);
	    if (href && $(this).attr("id") != "custLogin" )
	    {	
		    href = ResolveUrl(href, baseUrl); //alert("after: " + href);
		    $(this).attr("href", href);
	    }
    });
			
    //Fix Featured Product background image paths
    //<div style="background: url(&quot;../AdminContent/AssetView.aspx?id=2&quot;) no-repeat scroll left top transparent;" class="fpHeader">
    var backgroundUrls = $(".fpHeader"); //alert(backgroundUrls.length);
			
    $.each(backgroundUrls, function(key, value) {
	    //"url("../AdminContent/AssetView.aspx?id=2") no-repeat scroll left top transparent"
	    var bg = $(this).css("background"); //alert("before: " + css);
	    if (bg)
	    {	
		    var bg = ResolveBG(bg, baseUrl); //alert("after: " + path);
		    $(this).css("background", bg);
	    }
    });

    //alert("finished urlfixer");
};

//MUST be set beforehand on the calling aspx page!
//var baseUrl = '<%= Page.ResolveUrl("~/") %>'; //alert("baseUrl: " + baseUrl);
		
//Replaces beginning of image/hyperlink path with actual root path
function ResolveUrl(url, baseUrl) {
	url = url.toLowerCase();

	if (url.indexOf("../") == 0)
		url = baseUrl + url.substring(3);
	else if (url.indexOf("/ajantunes/") == 0)
		url = baseUrl + url.substring(11);
	else if (url.indexOf("/") == 0)
		url = baseUrl + url.substring(1);
			
	return url;
}
		
//Just need to swap out bits between 'url("' and 'AdminContent' and replace with actual root path
function ResolveBG(url, baseUrl) {
	url = url.toLowerCase();

	if (url.indexOf("url(\"../") == 0)
		url = "url(\"" + baseUrl + url.substring(8);
	else if (url.indexOf("url(\"/ajantunes/") == 0)
		url = "url(\"" + baseUrl + url.substring(16);
	else if (url.indexOf("url(\"/") == 0)
		url = "url(\"" + baseUrl + url.substring(6);
			
	return url;
}
