$(function on_dom_ready (){

	settings = get_settings();
	// global settings object containing base_url

	//CALLED BY EXISTENCE
	// functions likely to occur on nearly every page - check for existence

	matchHeight();
	hitAreas();
	prepSearchPlaceholder();

});


// CORE FUNCTION (called on dom_ready) ///

function get_settings() {

	function get_base_url(){
		var doc_location = document.location.href;
		var url_strip = new RegExp("http:\/\/.*\/");
		var base_url = url_strip.exec(doc_location);
		return base_url;
	}

	var settings = { 
		base_url : get_base_url()
	};

	return settings;

}



// COMMON FUNCTIONS  (called on_existence) ///

function matchHeight() {
	if($('.matchHeight').size() > 0) {
		var maxHeight = '0';
		$('.matchHeight').each(function(){
			maxHeight = ($(this).height() > maxHeight) ? $(this).height() : maxHeight;
		});
		$('.matchHeight').height(maxHeight);
	}
}


function hitAreas() {
	$('.hitArea').hover(function(){
		$(this).css('cursor','pointer');
	},function(){});
	$('.hitArea').click(function(){
		var hitlink = '';
		hitlink = $(this).find('a.hitLink:first').attr('href');
		if(hitlink){
			window.location = hitlink;
		}
		else{
			window.location = $(this).find('a:first').attr('href');
		}
	});
}


function clearSearchPlaceholder() {
	if ( $('#search #searchterm').val() == $('#search #searchterm').attr('title') ) {
		$('#search #searchterm').val('');
	}
}


function setSearchPlaceholder() {
	if ( $('#search #searchterm').val().length == 0 && $('#search #searchterm').attr('title').length > 0 ) {
		$('#search #searchterm').val( $('#search #searchterm').attr('title') );
	}
}


function checkSearchPlaceholder() {
	if ($('#search #searchterm').val().length == 0) {
		setSearchPlaceholder();
	}
}


function prepSearchPlaceholder() {
	setSearchPlaceholder();

	$('#search #searchterm').bind('focus',clearSearchPlaceholder);
	$('#search #searchterm').bind('blur',checkSearchPlaceholder);
}


// jQuery extend

$.fn.idle = function(time) { 
	var o = $(this); 
	o.queue(function() { 
		setTimeout(function() { 
			o.dequeue(); 
		}, 
		time);
	});
};
