// Extending MooTools Element
Element.implement({
	show: function() {
		this.setStyle('display', 'block');
	},
	hide: function() {
		this.setStyle('display', 'none');
	},
	toggle: function() {
		this.isVisible() ? this.hide() : this.show();
	},
	isVisible: function() {
		return this.getStyle('display') !== 'none';
	},
	dissolve: function (speed) {
		var el = this, speed = speed || 500;
		el.setStyle('opacity', 1);
		el.set('tween', {
			duration: speed,
			onComplete: function () {
				el.hide();
			}
		});
		el.tween('opacity', 0);
	},
	reveal: function (speed) {
		var el = this, speed = speed || 500;
		el.setStyle('opacity', 0);
		el.set('tween', {
			duration: speed,
			onStart: function () {
				el.show();
			}
		});
		el.tween('opacity', 1);
	}
});

// Do stuff when page is loaded
function onDOMReady() {
	if (!Browser.Engine.trident) { // Make things nicer for all but IE
		// Fonts
		Cufon.replace('h1');
		Cufon.replace('h2');
		Cufon.replace('h3');
		Cufon.replace('h4');
		
		// Animate dropdowns
		var menuItems = $('topMenu').getElements('ul.menu>li');
		if (menuItems) {
			for (var i = menuItems.length - 1; i >= 0; i--) {
				var el = menuItems[i];
				var subMenu = el.getElement('.dropdown');
				
				if (subMenu) {
					el.store('subMenu', subMenu);
					el.addEvents({
						mouseenter: function(e) {
							this.retrieve('subMenu').reveal(200);
						},
						mouseleave: function(e) {
							this.retrieve('subMenu').dissolve(200);
						}
					});
				}
			};
		}
	}

	// Adjust column heights
	var main = $('main');
	var content = $('content');
	var sidebar = $('sidebar');
	var dimensions = {
		sidebar: sidebar.getSize(),
		main: main.getSize(),
		content: content.getSize()
	};
	
	if (dimensions.sidebar.y > dimensions.main.y) {
		content.setStyle('height', (dimensions.sidebar.y - dimensions.main.y) + dimensions.content.y + 20);
	}
}

// Rounded corners for IE
(function () {
	var cssBorderRadiusSupported = (function () {
		var docEl = document.documentElement, s;
		if (docEl && (s = docEl.style)) {
			return (typeof s.borderRadius == 'string' ||
				typeof s.MozBorderRadius == 'string' ||
				typeof s.WebkitBorderRadius == 'string' ||
				typeof s.KhtmlBorderRadius == 'string');
		}
		
	 	return false;
	})();
	
	if (!cssBorderRadiusSupported) {
		var brElms = $$('.rounded');
		var imgs = [
			'<img src="/images/transparent.png" width="3" height="3" alt="" class="tl" />',
			'<img src="/images/transparent.png" width="3" height="3" alt="" class="tr" />',
			'<img src="/images/transparent.png" width="3" height="3" alt="" class="bl" />',
			'<img src="/images/transparent.png" width="3" height="3" alt="" class="br" />'
		];
		
		brElms.each(function (el) {
			el.innerHTML = el.innerHTML + imgs.join('');
		});
	}
})();
