(function($) {
	
	$.fn.capslock = function(options) {
		
		if (options) $.extend($.fn.capslock.defaults, options);
		
		this.each(function() {
			$(this).bind("caps_lock_on", $.fn.capslock.defaults.caps_lock_on);
			$(this).bind("caps_lock_off", $.fn.capslock.defaults.caps_lock_off);
			
			$(this).keypress(function(e){
				check_caps_lock(e);
			});
		});
		
		return this;
	};
	

	
	// The actual check:
	function check_caps_lock(e)
	{
		var ascii_code	= e.which;
		var shift_key	= e.shiftKey;
		if( (65 <= ascii_code) && (ascii_code <= 90) && !shift_key)
		{
			$(e.target).trigger("caps_lock_on");
		}
		else
		{
			$(e.target).trigger("caps_lock_off");
		}
		
	}
	
	// Public definition of defaults for easy overriding:
	$.fn.capslock.defaults = {
		caps_lock_on:	function() { $("#blank").html("<div id='capslock_info' style='position:absolute; top:"+($(this).offset().top+20)+"; left:"+$(this).offset().left+"; z-index:9999; overflow:hidden; '><img src='"+g4_url+"/add/img/capslock.gif'></div>"); },
		caps_lock_off:	function() { $("#blank").html(""); }
	};
	
})(jQuery);


