/*global jQuery */

"use strict";

(function ($) {
	function RequireLogin(element, loginOverlay) {
		var publ = {}, priv = {};


		priv.init = function (element, loginOverlay) {
			priv.element = $(element);
			priv.loginOverlay = loginOverlay;

			priv.addEventHandlers();
		};


		priv.addEventHandlers = function () {
			priv.element.bind('mousedown', function (event) {
				event.preventDefault();

				priv.loginOverlay.load();
				priv.element.blur();
			});
		};


		priv.init(element, loginOverlay);


		return publ;
	}

	$.fn.requireLogin = function (loginOverlay) {
		var instances = [];

		this.each(function () {
			instances.push(new RequireLogin(this, loginOverlay));
		});

		return (instances.length === 1) ? instances[0] : instances;
	};
}(jQuery));
