(function($) {
		  
	$.fn.slideLock = function(options) {
		
		// set defaults
		var defaults = {
		
			// style these options with css to fit your application
			submitID: "#submit_button",
            labelText: "Slide to Unlock:",
            captcha_result: "#mail_list_item_captcha_result",
            captcha_param1: "#mail_list_item_captcha_param1",
            captcha_param2: "#mail_list_item_captcha_param2",
            col1: "83",
            col2: "280",
            col3: "80"
		};
		
		var opts = $.extend(defaults, options);
		
		// insert ui function
		function insertLocker() {
			
			var uiHTML = "<table nowrap><colgroup><col width='" + opts.col1 + "px'><col width='" + opts.col2 + "px'><col width='" + opts.col3 + "px'></colgroup><tr><td>" + opts.labelText + "</td><td><span id='slider'></span></td><td><div id='status'><div id='newStatus'>I'm a Robot</div></div></td></tr></table>"
			return uiHTML;

		}

		function calcCAPTCHA(param1, param2) {
			$(opts.captcha_result).attr('value', param1 * param2);
		}
				
		return this.each(function() {
			
			var obj = $(this);
			
			// insert ui elements before the form's submit button
			var submitButton = $(opts.submitID);	
			submitButton.before(insertLocker());
			var mCalc = false;	
			var eCalc = false;	
			var param1 = parseInt( $(opts.captcha_param1).attr('value') );
			var param2 = parseInt( $(opts.captcha_param2).attr('value') );
			// disable submit button
			$(submitButton).css('margin-top', '15px').attr('disabled', 'disabled');
			
			// create functionality
			$("#slider", obj).slider({
				value: 2,
				min: 0,
				max: 100,
				animate: true,
				stop: function(event, ui) {
					// enable submit button
					if(ui.value == 100) {																		
						// enable
                        $(submitButton).attr('disabled', '');					
					}else{					
						// disable
						$(submitButton).attr('disabled', 'disabled');
					}	
					if(ui.value >= 50 && !mCalc) {		
						mCalc = true;
                        $('#newStatus').remove();
                        $('#status').append('<div id="newStatus">Keep sliding...</div>');
						calcCAPTCHA(param1, param2);
						
					}
					if(ui.value == 100 && !eCalc) {
						eCalc = true;
                        $('#newStatus').remove();
                        $('#status').append('<div id="newStatus">Thank you!</div>');
						calcCAPTCHA($(opts.captcha_result).attr('value'), param2);
                        $(submitButton).attr('disabled', '');
					}
				},
				slide: function(event, ui){		
					if(ui.value >= 50 && !mCalc) {
						mCalc = true;
                        $('#newStatus').remove();
                        $('#status').append('<div id="newStatus">Keep sliding...</div>');
						calcCAPTCHA(param1, param2);						
					}
					if(ui.value == 100 && !eCalc) {
						eCalc = true;
                        $('#newStatus').remove();
                        $('#status').append('<div id="newStatus">Thank you!</div>');
						calcCAPTCHA($(opts.captcha_result).attr('value'), param2);
                        $(submitButton).attr('disabled', '');
					}
				}						
			});
								  
		});
		
	};
		  
})(jQuery);			