/*
 * Center 1.0
 *
 * Copyright (c) 2007 Andreas Lagerkvist (exscale.se)
 */
jQuery.fn.center = function()
{
	// Always return each...
	return this.each(function()
	{

		var t = jQuery(this);

		// Set position to other than 'static' so element shrink-wraps and width/height is calculated properly
		t.css({position: 'fixed'});

		// Why is there no jQuery.fn.outerWidth?
		var w = t.width(), 
			h = t.height(), 
			lrPadding = parseInt(t.css('paddingLeft'), 10) + parseInt(t.css('paddingRight'), 10), 
			lrBorder = parseInt(t.css('borderLeftWidth'), 10) + parseInt(t.css('borderRightWidth'), 10), 
			tbPadding = parseInt(t.css('paddingTop'), 10) + parseInt(t.css('paddingBottom'), 10), 
			tbBorder = parseInt(t.css('borderTopWidth'), 10) + parseInt(t.css('borderBottomWidth'), 10), 
			leftMargin = (w + lrPadding + lrBorder) / 2;
			topMargin = (h + tbPadding + tbBorder) / 2;

		t.css({
			position: 'fixed', 
			left: '50%', 
			top: '50%', 
			marginLeft: '-' +leftMargin +'px', 
			marginTop: '-' +topMargin +'px', 
			zIndex: '1000'
		});

		// Use this code if you care about IE<7, this requires the dimensions plug-in tho
		// Calculate left and top pos values

		if ( $.browser.msie && $.browser.version.number() < 7 ) {		
			var leftPos = (jQuery(window).width() - jQuery(this).outerWidth()) / 2 + jQuery(window).scrollLeft(), 
				topPos = (jQuery(window).height() - jQuery(this).outerHeight()) / 2 + jQuery(window).scrollTop();
	
			// Make sure element is not out of bounds
			leftPos = (leftPos < 0) ? 0 : leftPos;
			topPos = (topPos < 0) ? 0 : topPos;
	
			jQuery(this).css({left: leftPos +'px', top: topPos +'px', position: 'absolute', zIndex: '1000'}); 
			//jQuery(this).css({left: '100px', top: '100px', position: 'absolute', zIndex: '1000'}); 
		 }

	});
};
