
 var a4p = {
 	jqueryVersion		: '1.7.1',
 	jqueryUi			: false,
 	referrer			: true,
 	fancyboxImage		: true,
 	web4pVideo			: false,
 	randboxControlling	: false,
 	etrackerEventLinks	: false,
 	etrackerAsync		: true,
	jqueryValidate		: true,
	jquerySticky		: false,
	jqueryEasing		: false
 };


a4p.events = (function(){

	var _channels = {
			jqueryLoaded			: '/a4p/jquery/loaded',
			jqueryValidateLoaded	: '/a4p/jquery/plugins/validate/loaded',
			fancyboxLoaded			: '/a4p/jquery/plugins/fancybox/loaded',
			jqueryStickyLoaded		: '/a4p/jquery/plugins/stickyScroll/loaded',
			jqueryEasingLoaded		: '/a4p/jquery/plugins/easing/loaded',
			jqueryUILoaded			: '/a4p/jquery/plugins/UI',
			etrackerLoaded			: '/a4p/et/a/loaded'
		},
		_eventList = {},

		_subscribe = function(event, callback) {

			if(!_eventList.hasOwnProperty(event)) {
				_eventList[event] = [];
			}

			_eventList[event].push({
				context:	this,
				func:		callback
			});
		},

		_publish = function(event) {
			
			if(!_eventList.hasOwnProperty(event)) {
				return false;
			}

			setTimeout(function() {
				var i	= 0,
					t	= _eventList[event],
					eventObject,
					len = t.length,
					args	= Array.prototype.slice.call(arguments, 1);

				for(; i < len; i += 1) {
					eventObject = t[i];
					try {
						eventObject.func.apply(eventObject.context, args);
					} catch (e) {
						a4p.events.pub('error', e);
					}
				}
			}, 0);
		};

	return {
		channels:	_channels,
		pub:		_publish,
		sub: 		_subscribe
	};

}());

