
;(function () { eval(JELLY.local); // START CLOSURE

var _page = {
	home: function () {
		// COLUMN LEVELLING
		/*
		var cols = [ 
				[Q('div.column-1')[0], Q('div.column-1 p.cta')],
				[Q('div.column-2')[0], Q('div.column-2 p.cta')]
			   ];

		cols.sort(function (a, b) {return b[0].offsetHeight - a[0].offsetHeight});
		var difference = cols[0][0].offsetHeight - cols[1][0].offsetHeight;
		var extraPadding, count = 0; 
		
		if (cols[0][0].className.has('column-2')) {
			extraPadding = difference + 3; 
		} else {
			extraPadding = Math.floor(difference / cols[1][1].length);
		}
		cols[1][1].each(function (el) {
			count += extraPadding;
			el.style.paddingTop = extraPadding + 'px';
		});
		
		var remainder = difference - count;
		if (browser.ie) remainder += 5;
		cols[1][1][0].style.paddingTop = remainder + 'px'; 
		*/
		
		// FEATURE BAR
		var features = Q('#feature-bar div');
		features.each(function (div) {
			var link = div.getElementsByTagName('a')[0];
			div.props = {
				link : link,
				link_tween : new Tween(link, {duration: 250})
			};
			addEvent(div.props.link, 'mouseover', function () {
				div.props.link_tween.start('color', '#e66f00');
			});
			addEvent(div.props.link, 'mouseout', function () {
				div.props.link_tween.start('color', '#fff');
			});
		});

	}, 
	sidebar: function () {
		var lis = Q('#sidebar li');
		var loc = window.location.href;
		lis.each(function (li) {
			var hlink = li.getElementsByTagName('a')[0];
			if (li.id == 'related-links') return;
			if (loc.has(hlink.href)) {
				addClass(li, 'on');
				return;
			}
			if (hasClass(li, 'on')) {
				return;
			}
			li.tween = new Tween(li, {duration: 250});
			addEvent(li, 'mouseenter', function () {
				this.tween.start(['background-color', 'color'], ['#777', '#fff']);
			});
			addEvent(li, 'mouseleave', function () {
				this.tween.start(['background-color', 'color'], ['#fff', '#333']);
			});
		});
	},
	
	gallery: function () {
		gallery(true);
	}
	

};


switch (document.body.id) {
	case 'Home'   : _page.home();
	break;
	case 'Dvds'   : _page.sidebar();
	break;
	case 'Books'  : _page.sidebar();
	break;
	case 'Gallery': _page.sidebar(); _page.gallery();
	break;
} 


function ImageOverlays(feed) {
	
	this.gridBuilder = function (id, width, height) {		   
		var table = createElement('table'),		   
			tr = document.createElement('tr'),
			tbody = document.createElement('tbody'),
			td = document.createElement('td'),
			row_1 = tr.cloneNode(false),
			row_2 = tr.cloneNode(false),
			row_3 = tr.cloneNode(false),
			td_1 = td.cloneNode(false),
			td_2 = td.cloneNode(false),
			td_3 = td.cloneNode(false),
			td_4 = td.cloneNode(false),
			td_5 = td.cloneNode(false),
			td_6 = td.cloneNode(false);
		table.id = id;
		table.style.width = width + 'px';
		table.className = 'rc-grid';
		row_1.className = 'rc-top';
		row_2.className = 'rc-middle';
		row_3.className = 'rc-bottom';
		td_1.className = 'rc-tl';
		td_2.className = 'rc-tr';
		td_3.className = 'rc-ml';
		td_3.style.height = height + 'px';
		td_4.className = 'rc-mr';
		td_5.className = 'rc-bl';
		td_6.className = 'rc-br';
		row_1.appendChild(td_1);
		row_1.appendChild(td_2);
		row_2.appendChild(td_3);
		row_2.appendChild(td_4);
		row_3.appendChild(td_5);
		row_3.appendChild(td_6);
		tbody.appendChild(row_1);
		tbody.appendChild(row_2);
		tbody.appendChild(row_3);
		table.appendChild(tbody);
		return table;
	};

	this.addOverlay = function (elem, index) {
		var el = elem;
		el.coords = getXY(el);
		el.grid_id = 'rc_id' + index;
		if (el.parentNode.nodeName.toLowerCase() == 'a') {
			el.hlink = el.parentNode.cloneNode(false);
			el.hlink.className = 'grid-link';
			el.hlink.style.width = el.offsetWidth + 'px';
			el.hlink.style.height = el.offsetHeight + 'px';
			document.body.appendChild(el.hlink);
			}
		var grid = this.gridBuilder(el.grid_id, el.offsetWidth, el.offsetHeight-10);
		document.body.appendChild(grid);
		if (el.hlink != undefined) {
			el.hlink.style.left = el.coords[0] + 'px';
			el.hlink.style.top = el.coords[1] + 'px';
			}
		grid.style.left = el.coords[0] + 'px';
		grid.style.top = el.coords[1] + 'px';
	};
	
	this.build = function () {
		var that = this;
		for (var i = 0, len = feed.length; i < len; i++) {
			if (feed[i].height > 45) {	// If image is cached
				this.addOverlay(feed[i], i);  
			} else {					// else If image is not cached		
				(function () {
				var index = i;
				feed[index].onload = function () {that.addOverlay(this, index);};  
				})();
			}
		}

	};

	this.reposition = function () {
		for (var i = 0, len = feed.length; i < len; i++) {
			var xy = getXY(feed[i]),
				 left = xy[0] + 'px',
				 top = xy[1] + 'px',
				 grid = document.getElementById(feed[i].grid_id);
			grid.style.left = left;
			grid.style.top = top;
			if (feed[i].hlink != undefined) {
				feed[i].hlink.style.left = left;
				feed[i].hlink.style.top = top;
			}
		}
	};
	
} // ImageOverlays

var overlays = new ImageOverlays(Q('#content img.rc'));
overlays.build();

addEvent(window, 'load', function () {
	overlays.reposition();
	addEvent(window, 'resize', function () {
		overlays.reposition();
	});
});





})(); // END CLOSURE