(function()
	{
	if(typeof jQuery !== 'undefined' )
		{

		var extensions = {

			vdWriteRemembered: function()
				{
				var name = '', value = '';
				name = jQuery(this).attr('name');
				if(typeof name === 'string' && name !== '')
					{
					if ( jQuery(this).is(':checkbox') )
						{
						value = ( jQuery(this).attr('checked') )?'true':'false';
						}
					else if( jQuery(this).attr('multiple') )
						{
						jQuery("select[name='"+name+"'] option:selected").each(function(){value+='Value::'+this.value;});
						}
					else
						{
						value = jQuery(this).val();
						}
					if(typeof value !== 'string' || value === '')
						{
						value = null;
						}
					top.frames['sidebarFrame'].put(name,value);
					}
				return this;
				},
			vdReadRemembered: function()
				{
				var name = '', value;
				name = jQuery(this).attr('name');
				if(typeof name === 'string' && name !== '')
					{
					value = top.frames['sidebarFrame'].get(name);
					if(value !== null)
						{
						if ( jQuery(this).is(':radio') )
							{
							jQuery(this).attr('checked',(jQuery(this).val()==value)?true:false);
							}
						else if ( jQuery(this).is(':checkbox') )
							{
							jQuery("input[name='"+name+"']").attr('checked',(value=='true')?true:false);
							}
						else if( jQuery(this).attr('multiple') )
							{
							jQuery("select[name='"+name+"'] option[value='"+value.substr(7).split('Value::').join("'], select[name='"+name+"'] option[value='")+"']").attr('selected',true);
							}
						else //if( jQuery(this).is(':text') )
							{
							jQuery(this).val(value);
							}
						}
					}
				return this;
				},
			vdRemember: function(v)
				{
				if(v===undefined){$(this).vdReadRemembered();}else{this.attr('value',v);}
				$(this).change(function()
					{
						$(this).vdWriteRemembered();
					});
				return this;	
				}
			};

		jQuery.each(extensions, function(i)
		{
			jQuery.fn[i] = this;
		});
	}
})();