window.BubbleUpConfig = {
    "base_url": "https:\/\/bcd-yanni.7.prod.bubbleup.com\/",
    "js_files": [
        {
            "library": {
                "name": "jquery",
                "version": "2.1.4"
            },
            "order": 1000
        },
        {
            "file": "assets\/javascripts\/theme.js",
            "order": 10000
        },
        {
            "file": "assets\/javascripts\/productSort\/productSort.js",
            "order": 19990
        },
        {
            "file": "assets\/javascripts\/productSort\/defineProductSort.js",
            "order": 20000
        },
        {
            "file": "assets\/javascripts\/ecommerceDataLayer\/ecommerceDataLayer.js",
            "order": 29990
        },
        {
            "file": "assets\/javascripts\/ecommerceDataLayer\/defineDataLayer.js",
            "order": 30000
        },
        {
            "file": "assets\/javascripts\/banner\/timed-banner.js",
            "order": 40000
        }
    ],
    "css_files": [
        {
            "file": "assets\/stylesheets\/store.css",
            "order": 10000
        }
    ],
    "snippets": [
        "footer"
    ]
};
// Begin code automatically loaded
var QueryString = function() {
    // This function is anonymous, is executed immediately and 
    // the return value is assigned to QueryString!
    var query_string = {};
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        // If first entry with this name
        if (typeof query_string[pair[0]] === "undefined") {
            query_string[pair[0]] = decodeURIComponent(pair[1]);
            // If second entry with this name
        } else if (typeof query_string[pair[0]] === "string") {
            var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];
            query_string[pair[0]] = arr;
            // If third or later entry with this name
        } else {
            query_string[pair[0]].push(decodeURIComponent(pair[1]));
        }
    }
    return query_string;
}();;
!function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}function n(o){function t(n,r,i){var c;if("undefined"!=typeof document){if(arguments.length>1){if("number"==typeof(i=e({path:"/"},t.defaults,i)).expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}i.expires=i.expires?i.expires.toUTCString():"";try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(e){}r=o.write?o.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=(n=(n=encodeURIComponent(String(n))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var s="";for(var f in i)i[f]&&(s+="; "+f,!0!==i[f]&&(s+="="+i[f]));return document.cookie=n+"="+r+s}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,u=0;u<p.length;u++){var l=p[u].split("="),C=l.slice(1).join("=");this.json||'"'!==C.charAt(0)||(C=C.slice(1,-1));try{var g=l[0].replace(d,decodeURIComponent);if(C=o.read?o.read(C,g):o(C,g)||C.replace(d,decodeURIComponent),this.json)try{C=JSON.parse(C)}catch(e){}if(n===g){c=C;break}n||(c[g]=C)}catch(e){}}return c}}return t.set=t,t.get=function(e){return t.call(t,e)},t.getJSON=function(){return t.apply({json:!0},[].slice.call(arguments))},t.defaults={},t.remove=function(n,o){t(n,"",e(o,{expires:-1}))},t.withConverter=n,t}return n(function(){})});;
!function(){var e={},n=0,o=function(e){var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)},t=function(t,r,a){var c;r&&"function"!=typeof r&&(a=r.context||a,c=r.setup,r=r.callback);var d,l,i=document.createElement("script"),f=!1,u=function(){f||(f=!0,l(),r&&r.call(a,d))},s=function(){d=new Error(t||"EMPTY"),u()};if(!i.readyState||"async"in i)l=function(){i.onload=i.onerror=null},i.onerror=s,i.onload=u,i.async=!0,i.charset="utf-8",c&&c.call(a,i),i.src=t,o(i);else{var y=n++,p={loaded:!0,complete:!0},m=!1;l=function(){i.onreadystatechange=i.onerror=null,e[y]=void 0},i.onreadystatechange=function(){var e=i.readyState;if(!d)return!m&&p[e]&&(m=!0,o(i)),"loaded"===e&&(i.children,"loading"===i.readyState)?s():void("complete"===i.readyState&&u())},i.onerror=s,e[y]=i,c&&c.call(a,i),i.src=t}};"object"==typeof exports&&"object"==typeof module?module.exports=t:"function"==typeof define&&define.amd?define([],function(){return t}):window._lload=t}();;
(function(){
	window.loadCssFile = loadCssFile;

	function loadCssFile(fileUrl) {
		var css = document.createElement("link")
		css.setAttribute("rel", "stylesheet")
		css.setAttribute("type", "text/css")
		css.setAttribute("href", fileUrl)

		document.getElementsByTagName("head")[0].appendChild(css);
		onCssAppended({
			fileUrl : fileUrl,
			element : css
		});
	}

	function onCssAppended(data) {
		try {
			//jQuery(document).trigger('loadedTimedCss', [data]);
		} catch(e) {
			console.log("Exception when triggering event 'loadTimedCss'", data, e);
		}
	}

}());
(function(){
	var _config = window.BubbleUpConfig;
	
	var loadUrlCookieName = 'BU_loadFromUrl';
	var loadFromUrl;

	init();

	function init() {
		handleQuerystringParams();
		loadFromUrl = determineBaseUrl();
		loadCss();
		loadJs(getSnippetInjectorUrls());
		loadJs(_config.js_files);
	}

	function getSnippetInjectorUrls() {
		return _config.snippets.map(function(tag) {
			return {file: loadFromUrl + "/injector.js.php?tag="+tag};
		});
	}

	function loadJs(files) {
		files.map(function(fileData){
			if(fileData.library) {
				return loadLibrary(fileData.library, fileData);
			}

			var fileUrl = sanitizePath(fileData.file);

			window._lload(fileUrl, {
				setup: function(script){
					script.async = !!fileData.async; // Stuff should load in order unless otherwise specified.
				}
			});
		});
	}

	// ToDo: Make this more modular...
	function loadLibrary(library) {
		if(library.name == 'jquery') {
			if(window.jQuery) {
				console.log("jQuery already loaded.");
				return;
			}
			library.version = library.version || '1.7.2';
			var fileUrl = 'https://ajax.googleapis.com/ajax/libs/jquery/'+library.version+'/jquery.min.js';
			return window._lload(fileUrl, {
				setup: function(script){
					script.async = false
				}
			});
		}

		console.log("Undefined library", library);
	}

	function loadCss() {
		_config.css_files.map(function(fileData){
			var fileUrl = sanitizePath(fileData.file);
			window.loadCssFile(fileUrl);
		});
	}

	function sanitizePath(path) {
		var noProtocolPath = path.replace(/(^\w+:|^)\/\//, '//');

		if(noProtocolPath.substr(0,2) !== '//') {
			// If not an absolute path, make it relative to the URL this is being served from.
			noProtocolPath = loadFromUrl + noProtocolPath;
		}

		return noProtocolPath;
	}

	function determineBaseUrl() {
		var cookieUrl = Cookies.get(loadUrlCookieName);

		if(cookieUrl) {
			console.log("Cookie based preview is temporarily disabled due to potential XSS attack vector.");
			// return cookieUrl;
		}

		return _config.base_url;
	}

	function handleQuerystringParams() {
		if(QueryString.loadFromUrl) {
			Cookies.set(loadUrlCookieName, QueryString.loadFromUrl);
		}
	}
}())
// End code automatically loaded