jQuery.fn.center = function(params) {
	var options = {
		vertical: true,
		horizontal: true
	};
	var op = jQuery.extend(options, params);

	return this.each(function(){
		var parent = $(this).parent();
		var css_position = parent.css('position');
		var el_flag = css_position == 'relative' || css_position == 'absolute' || css_position == 'fixed';
		var cssProp = {position: 'absolute'};

		if(op.vertical) {
			var vcenter = (el_flag)?Math.round(parent.height()/2)
				:Math.round($(window).height()/2) + $(document).scrollTop();
			cssProp.top = vcenter - Math.round($(this).height()/2) + 'px';
		}
		if(op.horizontal) {
			var hcenter = (el_flag)?Math.round(parent.width()/2)
				:Math.round($(window).width()/2) + $(document).scrollLeft();
			cssProp.left = hcenter - Math.round($(this).width()/2) + 'px';
		}
		$(this).css(cssProp);
   });
};