
if (!itdr) var itdr = new Object();
if (!itdr.classes) itdr.classes = new Object();
if (!itdr.classes.HorizontalBlog) itdr.classes.HorizontalBlog = new function () {
	// private members
	var _use = false;
	var basePath = "/darkroom/";
	var loader_uri = "/darkroom/blog/images/ajax-loader.gif";
	var loader_color = "#fff";
	var loader_alpha = 75;
	var scroller_dim = 24;
	var viewport = itdr.func.getBrowserDimensions();
	var maxheight = 712;
	var minheight = 300;
	var headerRatio = 975/712;
	var twitterWidth = 0;
	var footerWidth = 316;
	var inited = false;
	var isIphone = navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i);

	// private functions
	function reAlignWindow () {
		viewport = itdr.func.getBrowserDimensions();
		var contentHeight = viewport[1] - 67 - scroller_dim;
		if (contentHeight>maxheight) contentHeight = maxheight;
		if (contentHeight<minheight) contentHeight = minheight;
		var contentLoader = document.getElementById("content-loader");
		var content = document.getElementById("content");
		var header = document.getElementById("header");
		var entries = itdr.func.getElementsByClassName("EntrySingle", "div", content);
		var showHeader = false;
		var showPostJump = false;
		var uri = document.location.href;
		var filename = uri.split("/").pop();
		if (entries.length>1) showPostJump = true;
		if (showPostJump) { // a page with multiple entries, possible show header
			if (filename=="") showHeader = true; // this is going to be some default index, show the header
			else if (isNaN(parseInt(filename))) showHeader = true; // this is some other type of page that has entries, and is not a X.html
		}
		if (isIphone) {
			showHeader = false;
			showPostJump = false;
		}
		contentLoader.style.height = contentHeight + 'px';
		var contentwidth = 0;
		if (showHeader) {
			var headerWidth = Math.floor((headerRatio*contentHeight));
			header.style.height = contentHeight + 'px';
			header.style.width = headerWidth + 'px';
			contentwidth += headerWidth;
			contentwidth += twitterWidth;
		}
		else{
			itdr.func.createCSS("#header", 'display:none;');
		}
		for (var i=0; i<entries.length; ++i) {
			var entry = entries[i];
			var entrycontentbodywrapper = itdr.func.getElementsByClassName("EntryContentBodyWrapper", "div", entry)[0];
			var contentbody = itdr.func.getElementsByClassName("EntryContentBody", "div", entry)[0];
			var comments = itdr.func.getElementsByClassName("CommentsWrapperInner", "div", entry)[0];
			var pagetitledate  = itdr.func.getElementsByClassName("PageTitleDate", "div", entry)[0];
			var titledate  = itdr.func.getElementsByClassName("TitleDate", "div", entry)[0];
			var top = !titledate&&!pagetitledate ? 76 : (titledate||pagetitledate).offsetHeight;

			/*if (isIphone) {
				contentbody.style.width = "300px";
				contentbody.style.height = contentHeight-17-top-71 + "px";
				comments.style.width = "315px";
				comments.style.height = contentHeight-166 + "px";
			} else {*/
				itdr.classes.ScrollPane.resize(contentbody, 320, contentHeight-27-top-111);
				itdr.classes.ScrollPane.resize(comments, 365, contentHeight-190);
			//}
			if (comments) {
				var textarea = entry.getElementsByTagName("textarea")[0];
				var offset = contentHeight - 160 - 71;
				if (textarea) textarea.style.height = offset + "px";
				var submit = itdr.func.getElementsByClassName("SubmitWrapper", "fieldset", entry)[0];
				if (submit) submit.style.top = (offset+66) + "px";
				var memory = itdr.func.getElementsByClassName("CommentMemory", "fieldset", entry)[0];
				if (memory) memory.style.top = (offset+76) + "px";
			}
			var tally = 0;
			var collection = itdr.func.getElementsByClassName("ImageCollection", "div", entry)[0];

			var medialist = new Array();
			var objects = collection.getElementsByTagName("object");
			for (var j=0; j<objects.length; ++j) medialist.push(objects[j]);
			var images = collection.getElementsByTagName("img");
			for (var j=0; j<images.length; ++j) medialist.push(images[j]);
			for (var j=0; j<medialist.length; ++j) {
				var media = medialist[j];
				var width = media.getAttribute("width");
				var height = media.getAttribute("height");
				var newheight = contentHeight-136;
				var newwidth = (width/height)*newheight;
				media.setAttribute("height", newheight);
				media.setAttribute("width", newwidth);
				media.style.position = "absolute";
				media.style.top = "0px";
				media.style.left = tally + "px";
				tally += newwidth + 10;
			}
			tally += 439; // entry body text
			if (comments) tally += 425; // comments
			tally += 125; //  margin
			entry.style.width = tally + "px";
			entry.style.height = contentHeight + 'px';
			tally -= 10; //  overall width
			contentwidth += tally;
		}
		var offset = contentHeight - 195 - 66;
		var copyright = document.getElementById("copyright");
		if (copyright) copyright.style.top = (offset) + "px";
		contentwidth += footerWidth;
		var footerContainer = document.getElementById("footer-container");
		if (contentwidth<viewport[0]) {
			entry.style.width = (tally + (viewport[0]-contentwidth)) + "px";
			contentwidth = viewport[0];
		}
		content.style.width = contentwidth + "px";
		content.style.height = contentHeight + "px";
		if (!isIphone) itdr.classes.ScrollPane.resize(content, viewport[0], contentHeight + scroller_dim);
	};
	function doPostJump () {
		var content = document.getElementById("content");
		var scrollto;
		if (this.index==-1) {
			scrollto = 0;
			this.index = 0;
		} else {
			var entries = itdr.func.getElementsByClassName("EntrySingle", "div", content);
			var entry = entries[this.index];
			scrollto = entry.offsetLeft * -1;
			this.index = this.index+1;
			if(this.index == entries.length){
				this.index = -1;
			}
		}
		itdr.classes.ScrollPane.scrollTo(content, scrollto, true);
	};
	function init () {
		if (inited) return;
		inited = true;
		window.onresize = reAlignWindow;
		var content = document.getElementById("content");
		var contentLoader = document.getElementById("content-loader");
		var entries = itdr.func.getElementsByClassName("EntrySingle", "div", content);
		var navigationContainer = document.getElementById("navigation-container");
		var navigationExtended = document.getElementById("navigation-extended");
		var postJumper = document.createElement('div');
		var showHeader = true;
		var showPostJump = false;
		var uri = document.location.href;
		var filename = uri.split("/").pop();
		if (entries.length>0) showPostJump = true;
		/*if (showPostJump) { // a page with multiple entries, possible show header
			if (filename=="") showHeader = true; // this is going to be some default index, show the header
			else if (isNaN(parseInt(filename))) showHeader = true; // this is some other type of page that has entries, and is not a X.html
		}*/
		if (isIphone) {
			showHeader = false;
			showPostJump = false;
			content.style.overflow = "auto";
		} else {
			itdr.classes.ScrollPane.initialize(content, {
				horizontal: true,
				thickness: scroller_dim,
				minimum: 200,
				maximum: 300,
				id: "main-site-scroll"
			});
		}
		document.onkeydown = function (e) {
			var evt = e || window.event;
			var code = evt.keyCode;
			var scrollto = content.offsetLeft;
			if (code==33) scrollto += viewport[0] - 100; // pageup
			else if (code==34) scrollto -= viewport[0] - 100; // pagedown
			else if (code==36) scrollto = 0; // home
			else if (code==35) scrollto = content.offsetWidth * -1; // end
			itdr.classes.ScrollPane.scrollTo(content, scrollto, true);
			//return false;
		};
		content.style.display = "block";
		contentLoader.style.display = "none";
		postJumper.id = "post-jumper";
		navigationExtended.appendChild(postJumper);
		if (showPostJump) {
			var postJump = document.createElement('div');
			postJump.className = "PostJump";
			postJump.index = 0;
			postJump.onclick = doPostJump;
			postJumper.appendChild(postJump);
		}
		if (!showHeader) {
			var header = document.getElementById("header");
			header.style.display = "none";
			//var twitter = document.getElementById("twitter-container");
			//twitter.style.display = "none";
		}
		/*if (showPostJump) {
				var postJump = document.createElement('div');
				postJump.className = "PostJump";
				postJump.index = 0;
				postJump.onclick = doPostJump;
				postJumper.appendChild(postJump);
			}*/
		for (var i=0; i<entries.length; ++i) {
			var entry = entries[i];
			entry.style.overflow = "hidden";
			var contentbody = itdr.func.getElementsByClassName("EntryContentBody", "div", entry)[0];
			var comments = itdr.func.getElementsByClassName("CommentsWrapperInner", "div", entry)[0];
			var parent = contentbody.parentNode;
			var next = contentbody.nextSibling;
			var collection = document.createElement('div');
			collection.className = "ImageCollection";
			collection = parent.insertBefore(collection, next);
			// fist check for any embedded elements
			var medialist = new Array();
			var objects = contentbody.getElementsByTagName("object");
			for (var j=0; j<objects.length; ++j) medialist.push(objects[j]);
			var images = contentbody.getElementsByTagName("img");
			for (var j=0; j<images.length; ++j) medialist.push(images[j]);
			for (var j=0; j<medialist.length; ++j) {
				var media = medialist[j];
				collection.appendChild(media);
			}

			/*if (isIphone) {
				contentbody.style.overflow = "scroll";
				contentbody.style.border = "1px red dotted";
				comments.style.overflow = "auto";
			} else {*/
				itdr.classes.ScrollPane.initialize(contentbody, {
					thickness: 13,
					autohide: true
				});
				itdr.classes.ScrollPane.initialize(comments, {
					thickness: 13,
					autohide: true
				});
			//}
		}
		setTimeout(reAlignWindow, 100);
		reAlignWindow();
	};
	// public methods
	this.getHasScrolled = function () {
		if (!inited) return;
		var content = document.getElementById("content");
		return content.offsetLeft!=0;
	};
	this.use = function (bool) {
		_use = bool;
	};
	this.setBasePath = function (path) {
		basePath = path;
	};
	this.setupLoader = function (path, color, opacity) {
		loader_uri = path;
	};
	// set our initial css
	var contentheight = viewport[1] - 67 - scroller_dim;
	if (contentheight>maxheight) contentheight = maxheight;
	if (contentheight<minheight) contentheight = minheight;
	itdr.func.createCSS("#twitter-container", 'display:none;');
	itdr.func.createCSS(".EntrySingle", 'clear:none;');
	itdr.func.createCSS(".EntryContentBody", 'width:290px;');
	itdr.func.createCSS(".EntryContentBodyWrapper", 'position: absolute;margin:0;width:310px;');
	itdr.func.createCSS("#content-loader", 'background: ' + loader_color + ' url("' + loader_uri + '") no-repeat 50%; height: ' + contentheight + 'px; width: 100%; opacity: ' + loader_alpha/100 + '; filter: alpha(opacity=' + loader_alpha + '50);');
	itdr.func.createCSS("#content", 'display:none;');

	// do everything on dom load
	itdr.func.DOMLoad(init);
};


