jQuery(
	function($) {
		var
			// parameters for resize handling
			$window			= $(window),
			$frame			= $('#frame'),
			$virtualtour	= $('#virtualtour', $frame),
			$frameHeader	= $('#frame_header', $frame),
			$frameFooter	= $('#frame_footer', $frame),
			resizeDelay		= 500,
			resizeTimer		= null,
			triggerDelayedResize =
				function() {
					$window.trigger('delayedResize');
				},

			// read metadata parameters
			o				= $.metadata ? $virtualtour.metadata() : {};

		$window
			.bind(
				'delayedResize',
				function() {
					$virtualtour
						.attr('width', $frame.width())
						.attr('height', $window.height() - ($frameHeader.height() + $frameFooter.height()));
				}
			)
			.bind(
				'resize',
				function() {
					if (resizeTimer) {
						clearTimeout(resizeTimer);
						resizeTimer = null;
					}
					resizeTimer = setTimeout(triggerDelayedResize, resizeDelay);
				}
			)
			.trigger('delayedResize');
	}
);

