/* Extend jQuery with functions for PUT and DELETE requests. */
function _ajax_request(url, data, callback, type, method) {
    if (jQuery.isFunction(data)) {
        callback = data;
        data = {};
    }
    return jQuery.ajax({
        type: method,
        url: url,
        data: data,
        success: callback,
        dataType: type
        });
}
jQuery.extend({
    put: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'PUT');
    },
    delete_: function(url, data, callback, type) {
        return _ajax_request(url, data, callback, type, 'DELETE');
    }
});

(function($){ 
	$.fn.tabs = function(options){
		
		var domNode = this;
		if(domNode && domNode.length > 0){
			domNode.tabOptions = options;
			domNode.tabLinks = $($(domNode).find('ul').get(0)).find('a');

			$($(domNode).find('ul').get(0)).addClass('tabs-nav');

			domNode.tabNames      = Array();
			domNode.tabContainers = Array();
			$(domNode.tabLinks).each(function(){
				this.tabId = this.href.match(/(#.*)$/)[1];
				var container = $(this.tabId).get(0);
				domNode.tabNames.push(this.tabId);
				domNode.tabContainers.push(container);
				$(container).addClass('tabs-container');
				$(this).click(function(){
					domNode.showTab(this);
					return false;
				});
			});

			domNode.showTab = function(tabLink){
				var tabName = tabLink.tabId;
				$(this.tabContainers).hide();
				var container = $(tabName).get(0);
				$(container).show();
				if(domNode.tabOptions && domNode.tabOptions.onShow){
					domNode.tabOptions.onShow(container);
				}
				$(domNode.tabLinks).each(function(){
					$(this).closest('li').removeClass('current');
				});
				$(tabLink).closest('li').addClass('current');
			}
			if(domNode.tabOptions['showLast']){
				var showTabIndex = domNode.tabLinks.length - 1;
				domNode.showTab(domNode.tabLinks[showTabIndex]);
			} else {
				domNode.showTab(domNode.tabLinks[0]);
			}
		}
		return this;
	};
})(jQuery);


(function($){ 
	$.BehaviorDetector = {
		register: function(selector, behavior){
			if(!$(this).data('behaviors')){
				$(this).data('behaviors', {});
			}
			var behaviors = $(this).data('behaviors');
			if(!behaviors[selector]){
				behaviors[selector] = [];
			}
			behaviors[selector].push(behavior);
		},
		run: function(){
			if($(this).data('behaviors')){
				for(var selector in $(this).data('behaviors')){
					for(var a = 0; a < $(this).data('behaviors')[selector].length; a++){
						var behavior = $(this).data('behaviors')[selector][a];
						$(selector).filter(function(){
							return !$(this).data('appliedBehaviors') || $.inArray(behavior, $(this).data('appliedBehaviors'));
						}).each(function(){
							$(this).each(behavior);
							if(!$(this).data('appliedBehaviors')){
								$(this).data('appliedBehaviors', []);
							}
							$(this).data('appliedBehaviors').push(behavior);
							return this
						});
					}
				}
			}
		}
	};
	$.fn.onDetect = function(behavior){
		$.BehaviorDetector.register(this.selector, behavior);
		$.BehaviorDetector.run();
		return this;
	};
	$(document).ready(function(){
		$.BehaviorDetector.run();
	});
	$(document.body).bind('modified', function(){
		$.BehaviorDetector.run();
	});
})(jQuery);



GodtJobba = {
	Initializers: {
		
	}
}
