
var make_log = false;

function log(text) {
	if (make_log) {
		$('#log').prepend('<li>'+text+'</li>');
	}
}


function myScope(func,obj) {
	return function() {
		return func.apply(obj, arguments);
	};
}

$.fn.settings = function() {

	this.values = new Object;

	this.add = function(name,values) {
		this.values[name] = values;
	}

	this.get = function(name) {
		if (this.values[name]) {
			return this.values[name];
		} 
		return false;
	}
}

var settings = new $.fn['settings']();

$.fn.load = function(name, callback) {
	this.name = name;
	this.data = this;
	
	if (!$.fn[name]) {
		log('Loading: /js/jquery.'+name+'.js');
		$.getScript('/js/jquery.'+name+'.js',callback);
	}

	return this;
};

$.fn.make = function(name) {
	this.name = name;
	this.data = this;
	
	if (this.data.length == 0) { return false; }
	
	if (!$.fn[name]) {
		$.fn[name] = true;
		log('Loading: /js/jquery.'+name+'.js');
		$.getScript('/js/jquery.'+name+'.js',myScope(function(data,info){
			this.data.make(this.name);
		},this));
	} else {
		$(this.data).each(myScope(function(i,v) { 
			log('Create new: '+this.name);
			var id = $(v).attr('id');
			new $.fn[this.name](v,i,settings.get(id)); 
		},this));
	}
};


$(document).ready(function() {
	$('#zp-head').make('head');
	$('tr.table-highlight').make('tableHighlight');
	$('.lightbox').load('lightBox',function () { $('.lightbox').lightBox(); });
	$('.faq .que').make('showhide');
	$('.filler').make('filler');
});
