
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 = 45;
	var viewport = itdr.func.getBrowserDimensions();
	var maxheight = 712;
	var minheight = 300;
	var headerRatio = 500/800;
	var twitterWidth = 400;
	var footerWidth = 271;
	var inited = false;
	var isIphone = navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i);
	// private functions
	function reAlignWindow () {
		viewport = itdr.func.getBrowserDimensions();
		var contentHeight = (viewport[1] - scroller_dim) * .9475 ;
		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 = true;
		var showTwitter = true;
		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) {
			if (viewport[1] > 800){
				heightTemp = 800;
			}
			// THIS IS WHERE THE HEADER MATCHES UP WITH THE CONTENT -  THIS WILL CHANGE IF THE MINHEIGHT CHANGES
			else if (viewport[1] < (360)){
				heightTemp = 360;
			}
			else {
				heightTemp = viewport[1];
			}
			var headerWidth = Math.floor((headerRatio * heightTemp));
			header.style.height = heightTemp + 'px';
			header.style.width = headerWidth + 'px';
		}
		// HIDE TWITTER
		if (entries.length==2) {
			var twitter = document.getElementById("twitter-container");
			var twitterEntryWidth = document.getElementById("twitter-container").style.width;
			twitter.style.display = "none";
			contentwidth -= 524;
		}
		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;
			entrycontentbodywrapper.style.top = (top + 17) + "px";
			/*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-225);
				itdr.classes.ScrollPane.resize(comments, 340, contentHeight-225);
			//}
			if (comments) {
				var textarea = entry.getElementsByTagName("textarea")[0];
				var offset = contentHeight - 325;
				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];
			collection.style.top = (-1*top) + "px";
			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-88;
				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 + 12;
			}


			tally += 439; // entry body text
			if (i!=0) {
				if (comments) tally += 315; // comments
			}
			else {
				document.getElementById('welcome-comments').style.display = "none";
			}
			tally += 85; //  margin


			entry.style.width = tally + "px";
			entry.style.height = contentHeight + 'px';
			contentwidth += tally;
		}
		var offset = contentHeight - 71 - 66;

		contentwidth += footerWidth;
		var footerContainer = document.getElementById("footer-container");
		if ((contentwidth + headerWidth)<viewport[0]) {
			entry.style.width = (tally + (viewport[0]-contentwidth - headerWidth)) + "px";
			contentwidth = viewport[0] - headerWidth;
			// HIDE SCROLLER
			var mainscroll = document.getElementById("main-site-scroll");
			var panebutton = itdr.func.getElementsByClassName("ITDRScrollPaneButton", "div", mainscroll)[0];
			panebutton.style.display = "none";
			
		}
		content.style.width = contentwidth + "px";
		content.style.height = contentHeight + "px";
		if (!isIphone) itdr.classes.ScrollPane.resize(content, viewport[0] - headerWidth, contentHeight + scroller_dim);
	};
	function doPostJump () {
		var content = document.getElementById("content");
		var scrollto;
		if (this.index==-1) {
			scrollto = 0;
		} else {
			var entries = itdr.func.getElementsByClassName("EntrySingle", "div", content);
			var entry = entries[this.index];
			scrollto = entry.offsetLeft * -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 postJumper = document.createElement('div');
		var showHeader = true;
		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;
			content.style.overflow = "auto";
		} else {
			itdr.classes.ScrollPane.initialize(content, {
				horizontal: true,
				thickness: scroller_dim,
				minimum: 200,
				maximum: 300,
				id: "main-site-scroll",
				autohide: false
			});
		}
		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";
		
		if (showPostJump) {
			var postJump = document.createElement('div');
			postJump.className = "PostJump";
			postJump.index = -1;
			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";
		}
		for (var i=0; i<entries.length; ++i) {
			var entry = entries[i];
			if (showPostJump) {
				var postJump = document.createElement('div');
				postJump.className = "PostJump";
				postJump.index = i;
				postJump.onclick = doPostJump;
				postJumper.appendChild(postJump);
			}
			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: 11,
					autohide: true
				});
				itdr.classes.ScrollPane.initialize(comments, {
					thickness: 11,
					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] - scroller_dim;
	if (contentheight>maxheight) contentheight = maxheight;
	if (contentheight<minheight) contentheight = minheight;
	itdr.func.createCSS("#twitter-container", 'display:block;');
	itdr.func.createCSS(".EntrySingle", 'clear:none;');
	itdr.func.createCSS(".EntryContentBody", 'width:280px;');
	itdr.func.createCSS(".EntryContentBodyWrapper", 'position: absolute;margin:0;');
	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;');
	itdr.func.createCSS("#navigation-container", 'height: ' + contentheight + 'px');
	// do everything on dom load
	itdr.func.DOMLoad(init);
};


