jQuery.fn.wresize = function(f) 
{
	wresize = {fired: false, width: 0};

	function resizeOnce() 
	{
		if (jQuery.browser.msie)
		{
			if (!wresize.fired)
			{
				wresize.fired = true;
			}
			else 
			{
				var version = parseInt(jQuery.browser.version, 10);
				wresize.fired = false;
				if (version < 7)
				{
					return false;
				}
				else if (version == 7)
				{
					//a vertical resize is fired once, an horizontal resize twice
					var width = jQuery(window).width();
					if (width != wresize.width)
					{
						wresize.width = width;
						return false;
					}
				}
			}
		}
		return true;
	}

	function handleWResize(e) 
	{
		if (resizeOnce())
		{
			return f.apply(this, [e]);
		}
	}

	this.each( function() 
	{
		if (this == window)
		{
			jQuery(this).resize(handleWResize);
		}
		else
		{
			jQuery(this).resize(f);
		}
	});

	return this;
};