function callout_hover() {
	if(!document.getElementById("content-columns")) return false;
	var content_columns = document.getElementById("content-columns");
	var blocks = document.getElementsByTagName("DIV");
	for( var i = 0; i < blocks.length; i++) {
		if(!blocks[i].className) continue;
		var classes = blocks[i].className.split(" ");
		for( var j = 0; j < classes.length; j++) {
			if(classes[j] == "callout") {
				blocks[i].onmouseover = function() {
					add_class(this, "hover");
					return 0;
				}
				blocks[i].onmouseout = function() {
					remove_class(this, "hover");
					return 0;
				}
				break;
			}
		}
	}
	return 0;
}

function prep_fb_window() {
	
	if(!document.getElementById("feature-block") || !document.getElementById("sneak-peek-overlay")) return false;
	if(!document.getElementById("close-overlay")) return false;

	var feature_block = document.getElementById("feature-block");
	var sp_overlay = document.getElementById("sneak-peek-overlay");
	
	var close_link = document.getElementById("close-overlay");

	close_link.onclick = function() {
		hide(sp_overlay);
		show(feature_block);
		
		return false;
	}
	
	var open_links = feature_block.getElementsByTagName("A");
	for( var i = 0; i < open_links.length; i++) {
		var hash = open_links[i].getAttribute("href").split("#")[1];
		if(hash != "sneak-peek") continue;
		
		open_links[i].onclick = function() {
			hide(feature_block);
			show(sp_overlay);
			
			return false;
		}
	}
	
	return 0;
}

function init() {
	if(!document.getElementById || !document.getElementsByTagName) return false;
	
	if(document.getElementById("front")) {
		callout_hover();
		prep_fb_window();
	}
}

addLoadEvent(init);

/* = HIDE
-------------------------------------------------*/

function hide(element) {
	
	if(!element) return false;
	add_class(element, "hidden");
	
	return 0;
}

/* = SHOW
-------------------------------------------------*/

function show(element) {
	
	if(!element) return false;
	remove_class(element, "hidden");
	
	return 0;
}

/* = ADD CLASS
-------------------------------------------------*/

function add_class(element, hover_class) {
	if(!element || !hover_class) return false;
	if(element.className) {
		element.className += " "+hover_class;
	}
	else {
		element.className = hover_class;
	}
	
	return 0;
}

/* = REMOVE CLASS
-------------------------------------------------*/

function remove_class(element, hover_class) {
	if(!element || !hover_class) return false;
	if(element.className.match(hover_class)) {
		var regex = new RegExp(" ?"+hover_class+" ?");
		element.className = element.className.replace(regex, "");
	}
	
	return 0;
}

/* = CLEAR FIELD
-------------------------------------------------
	clears the value of any inpu field with the
	class name of clearDefault
-------------------------------------------------*/

function clickClear() {
	if(!document.getElementsByTagName) return false;
	
	var inputs = document.getElementsByTagName("INPUT");
	
	for ( var i = 0; i < inputs.length; i++)
	{
		if(inputs[i].className.indexOf("clearDefault") != -1)
		{
			inputs[i].onclick = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			}
			inputs[i].onfocus = function() {
				if(this.value == this.defaultValue)
				{
					this.value = "";
				}
				return 0;
			}
			inputs[i].onblur = function() {
				if(this.value == "")
				{
					this.value = this.defaultValue;
				}
				return 0;
			}
		}
	}
	return 0;
}

addLoadEvent(clickClear);

/* = ADD ON LOAD
-------------------------------------------------
	This adds functions to onload without
	stepping on each other.
-------------------------------------------------*/

function addLoadEvent(func) {
	var oldOnLoad = window.onload
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldOnLoad();
			func();
		}
	}
}