UTIL = {
	exec: function( location, action ) {
		// Default action to init if not defined
		var action = ( action === undefined ) ? 'init' : action;
		var packageParts = UTIL.getPackageArray(location);
		var target = window;
		var nextPart; 
		
		console.log('Bootstrapping ' + packageParts.join(".") + '.' + action + '()');
		
		for (var i = 0, max = packageParts.length; i < max; i++) {
			nextPart = packageParts[i];
			target[nextPart] = target[nextPart] || {};
			target = target[nextPart];
		};
		
		if (target && target.hasOwnProperty(action) && typeof(target[action]) === 'function') {
			target[action].call();
		} else {
			console.log('Not found');
		}
	},

	init: function() {
		var body = document.body,
			location = body.getAttribute('data-location');
		UTIL.exec('ohiodave.common');
		UTIL.exec(location);
	},
	
	extend: function(pkg, func) {
		var packageParts = UTIL.getPackageArray(pkg);
		var target = window;
		
		for (var i = 0, max = packageParts.length; i < max; i++) {
			nextPart = packageParts[i];
			target[nextPart] = target[nextPart] || {};
			if (i == max - 1) {
				target[nextPart] = func.call();
			} else {
				target = target[nextPart];
			}
		};
	},
	
	getPackageArray: function(pkg) {
		return (typeof(pkg) !== 'string') ? '' : pkg.split('.');
	}
};

UTIL.extend('ohiodave.common', function() {
	var pkg = {};
	
	pkg.init = function() {
		//$('h2, h3').lettering();
	};
	
	return pkg;
});

// Initialize bootstrap function
$( document ).ready(UTIL.init);
