/** * @author Alexandre Magno * @desc Center a element with jQuery * @version 1.0 * @example * $("element").center({ * * 		vertical: true, *      horizontal: true * * }); * @obs With no arguments, the default is above * @license free * @param bool vertical, bool horizontal * @contribution Paulo Radichi * */jQuery.fn.center = function(params) {		var options = {			vertical: true,			horizontal: true		}		op = jQuery.extend(options, params);   return this.each(function(){		//initializing variables		var $self = jQuery(this);		//get the dimensions using dimensions plugin		var width = $self.width();		var height = $self.height();		//get the paddings		var paddingTop = parseInt($self.css("padding-top"));		var paddingBottom = parseInt($self.css("padding-bottom"));		//get the borders		var borderTop = parseInt($self.css("border-top-width"));		var borderBottom = parseInt($self.css("border-bottom-width"));		//get the media of padding and borders		var mediaBorder = (borderTop+borderBottom)/2;		var mediaPadding = (paddingTop+paddingBottom)/2;		//get the type of positioning		var positionType = $self.parent().css("position");		// get the half minus of width and height		var halfWidth = (width/2)*(-1);		var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;		// initializing the css properties		var cssProp = {			position: 'absolute'		};		if(op.vertical) {			cssProp.height = height;			cssProp.top = '50%';			cssProp.marginTop = halfHeight;		}		if(op.horizontal) {			cssProp.width = width;			cssProp.left = '50%';			cssProp.marginLeft = halfWidth;		}		//check the current position		if(positionType == 'static') {			$self.parent().css("position","relative");		}		//aplying the css		$self.css(cssProp);   });};
