/**
 * @desc 兼容不同的浏览器居中scrollCenter
 * @param options
 */
(function($){
	$.fn.extend({
		// 兼容不同的浏览器取得窗口的大小
		getWindowSize: function(){
			if ($.browser.opera) { return { width: window.innerWidth, height: window.innerHeight }; }
			return { width: $(window).width(), height: $(window).height() };
		},
		
		// 主函数
		scrollCenter: function(options){
			// 扩展参数
			var op = $.extend({ z: 1000000 }, options);
			
			// 追加到 document.body 并设置其样式
			var windowSize = this.getWindowSize();
			this.appendTo(document.body).css({
				'position': 'absolute',
				'z-index': op.z,
				'top': (windowSize.height - this.height()) / 2 + $(window).scrollTop() + 'px',
				'left': (windowSize.width - this.width()) / 2 + $(window).scrollLeft() + 'px'
			});
			
			// 保存当前位置参数
			var bodyScrollTop = $(document).scrollTop();
			var bodyScrollLeft = $(document).scrollLeft();
			var movedivTop = this.offset().top;
			var movedivLeft = this.offset().left;
			
			var thisjQuery = this;
			
			// 滚动事件
			$(window).scroll(function(e){
				var tmpBodyScrollTop = $(document).scrollTop();
				var tmpBodyScrollLeft = $(document).scrollLeft();
				
				movedivTop += tmpBodyScrollTop - bodyScrollTop;
				movedivLeft += tmpBodyScrollLeft - bodyScrollLeft;
				bodyScrollTop = tmpBodyScrollTop;
				bodyScrollLeft = tmpBodyScrollLeft;
				
				// 以动画方式进行移动
				thisjQuery.stop().animate({
					'top': movedivTop + 'px',
					'left': movedivLeft + 'px'
				});
			});
			
			// 窗口大小重设事件
			$(window).resize(function(){
				var windowSize = thisjQuery.getWindowSize();
				movedivTop = (windowSize.height - thisjQuery.height()) / 2 + $(document).scrollTop();
				movedivLeft = (windowSize.width - thisjQuery.width()) / 2 + $(document).scrollLeft();
				
				thisjQuery.stop().animate({
					'top': movedivTop + 'px',
					'left': movedivLeft + 'px'
				});
			});
			
			return this;
		}
	});
})(jQuery);
