MP.prototype.Background = function(params, parent) {
	var self = this;

	if (!params._enabled) {
		return false;
	}

	var proto = {};

	proto = {
		_element: $('<div id="mp-background"></div>').appendTo(params._container),
	}

	proto.Show = parent.Background_Show;
	proto.Hide = parent.Background_Hide;
	proto.Load = parent.Background_Load;
	proto.Resize = parent.Background_Resize;

	setTimeout(function () {
		proto.Resize(params, parent);
	}, 0);

	return proto;
};

MP.prototype.Background_Load = function (params, parent) {
	var proto = this;
	
	proto._element.css({
		background: 'url(' + params.element.attr('src') + ') no-repeat center center',
		'background-size': '100% 100%'
		
	});
	
	var callback = function () {
		proto._element.data({
			width: params.element.width(),
			height: params.element.height()
		});
		
		params.element.remove();
		proto.Resize(params, parent);
	};
	
	if (params.element.width() != 0) {
		callback();
	}
	
	params.element.load(function () {
		callback();
	});
};

MP.prototype.Background_Show = function (params, parent) {
	this._element.css({opacity: 1});
	
};

MP.prototype.Background_Hide = function (params, parent) {
	this._element.css({opacity: 0});
	
};

MP.prototype.Background_Resize = function() {
	if (this._element.data().width) {
		var ratio = parseInt(this._element.data().height, 10) / parseInt(this._element.data().width, 10);
		this._element.css({
			'background-size': '100% ' + ((100 / ratio) + '%')
		});
	}
};

