
if (!itdr) var itdr = new Object();
if (!itdr.classes) itdr.classes = new Object();
if (!itdr.classes.PhotoProof) itdr.classes.SlideShare = new function () {
	/**
	 *
	 * Constructor
	 */
	// check to see if the url is in the old format, if it is, redirect using the new format
	if (window.location.search.indexOf("client/")!=-1) {
		var bits = window.location.search.substring(1).split("/");
		bits.shift();
		var name = bits.join("/");
		window.location = "?n=" + name;
	}
	var directory = "client/" + getQueryValue("n");
	var interfaceData;
	var developerData;
	var languageData;
	var albumData;
	if (window.addEventListener) window.addEventListener('load', loadDeveloperData, false);
	else if (window.attachEvent) window.attachEvent('onload', loadDeveloperData);
	itdr.func.createCSS("#appSpace", "display:none");
	function getQueryValue (name) {
		var query = window.location.search.substring(1);
		var blobs = query.split("&");
		for (var i=0; i<blobs.length; ++i) {
			var pair = blobs[i].split("=");
			if (pair[0]==name) return pair[1];
		}
		return "";
	}
	function getDataValue (xhttp, location) {
		var nodes = location.split(".");
		if (!xhttp) return null;
		var dataset = xhttp.getXML();
		for (var i=0; i<nodes.length; ++i) dataset = dataset.getElementsByTagName(nodes[i])[0];
		if (!dataset) return null;
		if (!dataset.firstChild) return null;
		return dataset.firstChild.nodeValue;
	}
	function getDataAttribute (xhttp, location) {
		var nodes = location.split(".");
		var attribute = nodes.pop();
		if (!xhttp) return null;
		var dataset = xhttp.getXML();
		for (var i=0; i<nodes.length; ++i) dataset = dataset.getElementsByTagName(nodes[i])[0];
		if (!dataset) return null;
		return dataset.getAttribute(attribute);
	}
	function titleCase (str) {
		var title = str.split("_").join(" ").split("-").join(" ");
		title = title.split(" ");
		for (var i=0; i<title.length; ++i) title[i] = title[i].substring(0,1).toUpperCase() + title[i].substring(1);
		return title.join(" ");
	}
	function loadDeveloperData (type) {
		developerData = new itdr.classes.AjaxConnection();
		developerData.onLoad = function () {
			assignCssFromXml();
			if (itdr.classes.Cookie.get("auto")=="true") {
				itdr.classes.Cookie.kill("auto");
				doEmbed();
			} else loadLanguageData();
		}
		if (type=="local") developerData.load(directory + "/slideshare.developer.xml");
		else developerData.load("assets/slideshare.developer.xml");
	}
	function loadLanguageData () {
		languageData = new itdr.classes.AjaxConnection();
		languageData.onLoad = function () {
			loadInterfaceData();
		}
		languageData.load("assets/languages/" + getDataValue(developerData, "shell.language") + ".xml");
	}
	function loadInterfaceData () {
		interfaceData = new itdr.classes.AjaxConnection();
		interfaceData.onLoad = function () {
			loadAlbumData();
		}
		interfaceData.load("assets/slideshare.client.xml");
	}
	function loadAlbumData () {
		if (directory=="client/") {
			showSelectorPage();
			return;
		} else {
			albumData = new itdr.classes.AjaxConnection();
			albumData.onLoad = function () {
				showSplashScreen();
			}
			albumData.load("../common/" + getDataValue(interfaceData, "shell.scriptLanguage") + "/get.xml." + getDataValue(interfaceData, "shell.scriptLanguage") + "?directory=" + directory);
		}
	}

	function assignCssFromXml () {
		var backgroundColor = getDataValue(developerData, "shell.background").split(",")[0];
		backgroundColor = backgroundColor.split("0x").join("#");
		itdr.func.createCSS("html", "background-color:" + backgroundColor + ";");
		itdr.func.createCSS("body", "background-color:" + backgroundColor + ";");
		var width = parseFloat(getDataValue(developerData, "splashPage.width"));
		itdr.func.createCSS("#splashPage", "width:" + width + "px; " + "margin-left:-" + width/2 + "px;");
		var stroke = getDataValue(developerData, "graphic.linestyle").split(",");
		stroke[1] = stroke[1].split("0x").join("#");
		itdr.func.createCSS("#contentBlock", "border:"+stroke[0]+"px " + stroke[1] + " solid;");
		var fill = getDataValue(developerData, "graphic.fillstyle").split(",");
		fill[0] = fill[0].split("0x").join("#");
		itdr.func.createCSS("#albumCover", "background-color:" + fill[0] + ";");
		var titleColor = getDataAttribute(developerData, "contactCard.title.color").split("0x").join("#");
		var titleSize = getDataAttribute(developerData, "contactCard.title.size") + "px";
		itdr.func.createCSS("#title", "color:" + titleColor + "; font-size:" + titleSize + ";");
		var descriptionColor = getDataAttribute(developerData, "contactCard.description.color").split("0x").join("#");
		var descriptionSize = getDataAttribute(developerData, "contactCard.description.size") + "px";
		itdr.func.createCSS("#description", "color:" + descriptionColor + "; font-size:" + descriptionSize + ";");
		var formTextValidColor = getDataAttribute(developerData, "mailer.formTextValid.color").split("0x").join("#");
		var formTextValidSize = getDataAttribute(developerData, "mailer.formTextValid.size") + "px";
		var formBoxValidLinestyle = getDataValue(developerData, "mailer.formBoxValidLinestyle").split(",");
		formBoxValidLinestyle[1] = formBoxValidLinestyle[1].split("0x").join("#");
		var formBoxValidFillstyle = getDataValue(developerData, "mailer.formBoxValidFillstyle").split(",");
		formBoxValidFillstyle[0] = formBoxValidFillstyle[0].split("0x").join("#");
		formBoxValidFillstyle[1] = parseFloat(formBoxValidFillstyle[1]);
		itdr.func.createCSS("#name", "color:" + formTextValidColor + "; font-size:" + formTextValidSize + "; border:"+formBoxValidLinestyle[0]+"px " + formBoxValidLinestyle[1] + " solid; background-color:" + formBoxValidFillstyle[0] + "; opacity:" + formBoxValidFillstyle[1]/100 + "; filter: alpha(opacity=" + formBoxValidFillstyle[1] + ");");
		var backgroundColor = getDataValue(developerData, "navigation.backgroundColor").split(",");
		backgroundColor[0] = backgroundColor[0].split("0x").join("#");
		backgroundColor[1] = parseFloat(backgroundColor[1]);
		itdr.func.createCSS("#contextShade", "background-color:" + backgroundColor[0] + "; opacity:" + backgroundColor[1]/100 + "; filter: alpha(opacity=" + backgroundColor[1] + ");");
		var openCloseTextSize = getDataValue(developerData, "navigation.openCloseTextSize");
		var openCloseTextColor = getDataValue(developerData, "navigation.openCloseTextColor").split("0x").join("#");
		var opacity = parseFloat(getDataValue(developerData, "splashPage.anchorOpacity"));
		itdr.func.createCSS("#options a", "color:" + openCloseTextColor + ";");
		itdr.func.createCSS("#options a span", "font-size:" + openCloseTextSize + "px; opacity:" + opacity/100 + "; filter: alpha(opacity=" + opacity + ");");
		var backgroundColor = getDataValue(developerData, "splashPage.anchorBackground");
		itdr.func.createCSS("#options a span:hover", "background-color:" + backgroundColor + ";");
		document.body.style.display = "none";
		document.body.style.display = "block";
	}

	function showSelectorPage (titleOverride) {
		var splashPage = document.getElementById("splashPage");
		splashPage.style.display = "block";
		var selector = document.getElementById("selector");
		selector.style.display = "block";
		var submit = document.getElementById("submit");
		submit.value = getDataValue(languageData, "splashPage.selectButton");
		var title = document.getElementById("title");
		var titleString = titleOverride!=undefined ? titleOverride : getDataValue(languageData, "splashPage.selectTitle");
		titleString = titleCase(titleString);
		title.innerHTML = titleString;
		document.title = titleString + " - " + getDataValue(interfaceData, "contactCard.title");
		var description = document.getElementById("description");
		description.innerHTML = getDataValue(languageData, "splashPage.selectDescription");
		var ownerMark = document.getElementById("ownerMark");
		ownerMark.innerHTML = '<img src="' + getDataValue(interfaceData, "contactCard.logo") + '" />';
		var options = document.getElementById("options");
		options.style.display = "none";
		var context = document.getElementById("context");
		var contextShade = document.getElementById("contextShade");
		contextShade.style.height = context.offsetHeight + "px";
		var albumCover = document.getElementById("albumCover");
		albumCover.style.height = context.offsetHeight + "px";
		var name = document.getElementById("name");
		name.focus();
	}
	function showSplashScreen () {
		if (getDataAttribute(albumData, "error.id")=="invalid_directory") {
			showSelectorPage(getDataValue(languageData, "error."+getDataAttribute(albumData, "error.id")));
			return;
		}
		var albumCover = document.getElementById("albumCover");
		var dynamicImages = getDataValue(developerData, "shell.dynamicImages")=="true";
		var imgsrc = getDataAttribute(albumData, "files.base") + "/" + getDataAttribute(albumData, "files.image.href");
		if (dynamicImages) {
			var dynamicImageFormat = getDataValue(developerData, "shell.dynamicImageFormat");
			var dynamicImageQuality = getDataValue(developerData, "shell.dynamicImageQuality");
			var width = getDataValue(developerData, "splashPage.width");
			var height = getDataValue(developerData, "splashPage.height");
			var imgsrc = "../common/php/resample.php?w=" + width + "&h=" + height + "&e=1&f=" + dynamicImageFormat + "&q=" + dynamicImageQuality + "&u=" + imgsrc.split("../").join("");
			albumCover.innerHTML = '<img style="height:' + height + 'px;width:' + width + 'px" src="' + imgsrc + '" />';
		} else {
			var height = getDataValue(developerData, "splashPage.height");
			albumCover.innerHTML = '<img style="height:' + height + 'px;width:auto" src="' + imgsrc + '" />';
		}
		var title = document.getElementById("title");
		var titleString = directory.split("/");
		var titlePattern = getDataValue(languageData, "contactCard.albumTitlePattern");
		titleString.shift();
		titleString = titleString.join(" ");
		titleString = titleCase(titleString);
		titleString = titlePattern.split("{TITLE}").join(titleString);
		title.innerHTML = titleString;
		document.title = titleString + " - " + getDataValue(interfaceData, "contactCard.title");
		var description = document.getElementById("description");
		description.style.display = "none";
		var splashPage = document.getElementById("splashPage");
		splashPage.style.display = "block";
		var ownerMark = document.getElementById("ownerMark");
		ownerMark.innerHTML = '<img src="' + getDataValue(interfaceData, "contactCard.logo") + '" />';
		var launchNormal = document.getElementById("launchNormal");
		launchNormal.innerHTML = getDataValue(languageData, "launchNormal");
		var launchFullScreenPopup = document.getElementById("launchFullScreenPopup");
		launchFullScreenPopup.innerHTML = getDataValue(languageData, "launchFullScreenPopup");
		var launchFullScreen = document.getElementById("launchFullScreen");
		launchFullScreen.innerHTML = getDataValue(languageData, "launchFullScreen");
		var context = document.getElementById("context");
		var contextShade = document.getElementById("contextShade");
		contextShade.style.height = context.offsetHeight + "px";
	}
	function doEmbed () {
		itdr.func.createCSS("html", "height:100%");
		itdr.func.createCSS("body", "height:100%;overflow:hidden");
		var appSpace = document.getElementById("appSpace");
		appSpace.style.display = "block";
		var splashPage = document.getElementById("splashPage");
		splashPage.style.display = "none";
		var flashvars = {};
		var params = {};
		var attributes = { id:"slideshare" };
		params.bgcolor = getDataValue(developerData, "shell.background").split(",")[0].split("0x").join("#");
		flashvars.directory = directory;
		thetainteractive.utilities.History.SWFID("slideshare");
		unFocus.History.addEventListener('historyChange', titleEvent);
		swfobject.embedSWF("assets/slideshare.swf", "appSpace", "100%", "100%", "9.0.28", "../common/swf/expressinstall.swf", flashvars, params, attributes);
	}
	function showError (id) {
		alert(getDataValue(languageData, "error."+id));
	}
	function titleEvent (hash) {
		var title = document.getElementById("title");
		var titleString = directory.split("/");
		var titlePattern = getDataValue(languageData, "contactCard.albumTitlePattern");
		titleString.shift();
		titleString = titleString.join(" ");
		titleString = titleCase(titleString);
		titleString = titlePattern.split("{TITLE}").join(titleString) + " - " + titleCase(hash) + " - " + getDataValue(interfaceData, "contactCard.title");
		document.title = titleString;
	}
	this.error = function(str) {
		showError(str);
	};
	this.launchNormal = function() {
		doEmbed();
	};
	this.launchFullScreenPopup = function() {
		itdr.classes.Cookie.set("auto", "true");
		var popup = window.open(window.location,'_blank','toolbar=no,location=yes,scrollbars=no,resizable=yes,width='+screen.availWidth+',height='+screen.availHeight+',left=0,top=0');
		popup.focus();
	};
	this.launchFullScreen = function() {
		this.maximize();
		doEmbed();
	};
	this.maximize = function() {
		window.moveTo(0,0);
		window.resizeTo(screen.availWidth, screen.availHeight);
		if (document.layers||document.getElementById) {
			window.outerHeight = screen.availHeight;
			window.outerWidth = screen.availWidth;
		}
	};
}

// a little backwards compatibility
SlideShare = itdr.classes.SlideShare;
if (!thetainteractive) var thetainteractive = itdr;
if (!intothedarkroom) var intothedarkroom = itdr;
