(function( $ ){
	$.fn.yCacheField = function(){
	
		var options = {
			expire: 7,
			prefix: "cached_",
			delay: 1000
		};		
		
		this.each(function(){
			
			var inputObject = $(this);
			var inputID = inputObject.attr("id");
			var cookieID = options.prefix + inputID;			
			var timeOut_var;
			
			if($.cookie(cookieID) != null)
			{
				inputObject.val($.cookie(cookieID));
			}
			
			var saveToCache = function()
			{
				if (inputObject.val() != "") {
					$.cookie(cookieID, inputObject.val(), {
						expires: options.expire,
						path: '/'
					});
				} else {
					$.cookie(cookieID, null, {path:'/'});
				}
			}
			
			inputObject.keyup(function(e){
				clearTimeout(timeOut_var);
				timeOut_var = setTimeout(saveToCache, options.delay);
			});
			
			inputObject.blur(function(e){
				clearTimeout(timeOut_var);
				saveToCache();
			});			
			
		});
		
		
	};
})( jQuery );
