/*
 * dojo-cdn-include.js
 * Sets up module mappings and script/link tags for Dojo inclusion.
 * Note: this file must be included from page header during page generation.
 * @author miwi25 (Mike Wilson)
 */

var djConfig;

(function() {

//
// CHANGE THESE VALUES TO CONTROL WHAT DOJO DISTRIBUTION IS LOADED BY DEFAULT
//

var dojosrc = "local";
var dojover = "1.6.0";

//
// DETERMINE DOJO DISTRIBUTION
//

// Get url while avoiding window.location due to IE6/7 problems with document.domain
var url = document.URL;

// Get http/https so we can make sure that external Dojo module files are loaded with correct protocol
var protocol = url.match(/^[^:]+/)[0]; 

// Check for parameter specifying override of Dojo distribution and save in cookie
var setdojomatch = url.match(/\?.*\bsetdojo=([^&]+)/);
if (setdojomatch) document.cookie = "TSEDOJO=" + setdojomatch[1] + "; path=/";

// Fetch saved override value from cookie (if any)
var getdojomatch =  document.cookie.match(/(?:^|; )TSEDOJO=([^;]+)/);
var getdojodist;
if (getdojomatch) getdojodist = getdojomatch[1];

// Determine Dojo version
if (getdojodist) {
	var dojovermatch = getdojodist.match(/\d\.\d\.\d/);
	if (dojovermatch) dojover = dojovermatch[0];
}

// Dojo sources
var dojosources = {
	local: {
		baseurl: "/tse/dojo/" + dojover,
		xd: false
	},
	localdebug: {
		baseurl: "/tse/dojo/" + dojover + "-debug",
		xd: false
	},
	google: {
		baseurl: protocol + "://ajax.googleapis.com/ajax/libs/dojo/" + dojover,
		xd: true
	}
};

// Determine Dojo source
if (getdojodist) {
	var dojosrcmatch = getdojodist.match(/[a-z]+/);
	if (dojosrcmatch && dojosrcmatch[0] in dojosources) dojosrc = dojosrcmatch[0];
}

//
// CONFIGURE FOUND DISTRIBUTION
//

var dojodist = dojosources[dojosrc];

// Dojo configuration
djConfig = {
	blankGif: "/tse/img/backgrounds/blank.gif",
	dojoBlankHtmlUrl: "/tse/dojo/blank-html-needed-by-dojo.html",
	locale: "sv-se",
	parseOnLoad: true
};

// Dojo module mappings and debug flags
// - for non-debug
if (dojosrc.indexOf("debug") < 0) {
	djConfig.baseUrl = "/";
	djConfig.modulePaths = {
		dojo: dojodist.baseurl + "/dojo",
		dijit: dojodist.baseurl + "/dijit",
		dojox: dojodist.baseurl + "/dojox",
		tse: "/tse/js"
	};
}
// - for debug (only works locally when using source)
else {
	djConfig.baseUrl = dojodist.baseurl + "/dojo/";
	djConfig.modulePaths = {
		tse: "/tse/js"
	};
//	djConfig.isDebug = true;
//	djConfig.debugAtAllCosts = true;
}

// Different dojo.js for cross-domain
var dojojs = "/dojo/dojo.js";
if (dojodist.xd) dojojs = "/dojo/dojo.xd.js";

// Write the tags needed for including files
document.write("<link rel='stylesheet' href='" + dojodist.baseurl + "/dijit/themes/dijit.css'>");
document.write("<" + "script src='" + dojodist.baseurl + dojojs + "' type='text/javascript'></" + "script>");

})();

