jQuery.fn.loginLightWindow = function(options) {
	var MADISON_HOST = 'new.madison.com';
	
	var defaultOptions = { };
	if(options !== undefined)
		options = jQuery.extend(defaultOptions, options);
	else
		options = defaultOptions;
	
	jQuery(this).click(function(e) {
		
		function processClick() {
			e.preventDefault();
		
			jQuery('#LoginWidgetMessages').html('');
			jQuery.getScript('http://' + MADISON_HOST + '/widget/login-form', function(data) {
				jQuery('#LoginWidget > form')
					.jCryption({
						getKeysURL: 'http://' + MADISON_HOST + '/jcryption/generate-keypair',
						disableAllFields: false,
						getScript: true
					})
					.submit(function(e) {
						e.preventDefault();
						jQuery.getScript(jQuery(this).attr('action') + '?jCryption=' + jQuery(this).find(':input[name=jCryption]').val(), function() {
							var status = jQuery('#LoginWidget').data('status'); 
							if(status !== undefined && status == 'success') {
								jQuery('#LightWindow').hide();
								if(options.loginSuccessCallback !== undefined)
									options.loginSuccessCallback(data);
							} else {
								jQuery('#LoginWidgetMessages').html('The login you specified is incorrect. If you forgot your password please <a href="http://new.madison.com/user/password-reset">reset it</a>.');
							}
						});
						
						return false;
				});
			});
		}

		function loadDependencies(callback) {
			jQuery('head')
				.append('<link type="text/css" rel="stylesheet" href="http://' + MADISON_HOST + '/public/global/css/lightwindow.css"/>')
				.append('<link type="text/css" rel="stylesheet" href="http://' + MADISON_HOST + '/public/themes/madison-blues/css/lightwindow.css"/>')
				.append('<link type="text/css" rel="stylesheet" href="http://host.madison.com/content/tncms/live/global/resources/madison/stylesheets/light-window.css"/>');

			jQuery.getScript('http://bloximages.chicago2.vip.townnews.com/host.madison.com/content/tncms/live/global/resources/madison/lib/jcryption/jquery.jcryption.js', callback);
		}

		if(jQuery('#LoginWidget').data('depsLoaded') === undefined) {
			jQuery('#LoginWidget').data('depsLoaded', 1);
			loadDependencies(processClick);
		}

		else
			processClick();
		
		return false;
	});
};