/*!
 * jQuery Posimis Position Plugin
 * version: 0.0.1
 *
 * Position an element by setting a padding left or top
 *
 * Usage: 
 * <script type="text/javascript" src="jquery.posvertical.js"></script>
 * <script>
 * 		$(document).ready(function() {
 * 			$('.positionelements .element').posposition({
 *				yposition:'center', 		// vertical position (left, right, center, e.g. 100px)
 *				xposition:'left', 			// horizontal position (left, right, center, e.g. 100px)
 *				textPosition : 'right'		// also position text (left, right, center)
 *			});
 * 		});
 * </script>
 *
 * Copyright 2010, Posimis Internet GmbH
 * http://www.posimis.com
 */

(function($){
	$.fn.posposition = function(options){
		// initialise default values	
		var defaults = {
			xposition: 'left',
			yposition: 'center',
			textPosition : ''
		};
		
		// merge default values with given options
		var options = $.extend(defaults, options);
	
		// set position for all given elements
		return this.each(function() {
			// actuall element (e.g. .element)		
			var obj = $(this);
			
			// parent element (e.v. .positionelements)
			var parentObj = $(this).parent();
			
			// set default x and y values
			var yPos = 0;
			var xPos = 0;
			var textAlign = '';
			
			// vertical alignment
			if(options.yposition == 'center')
			{
				yPos = (parentObj.height() - obj.height()) / 2;
			}
			else if(options.yposition == 'bottom')
			{
				yPos = (parentObj.height() - obj.height());
			}
			else if(options.yposition == 'top')
			{
				yPos = 0;
			}
			else
				yPos = options.yposition;
			
			
			// horizontal alignment
			if(options.xposition == 'center')
			{
				xPos = (parentObj.width() - obj.width()) / 2;
			}
			else if(options.xposition == 'right')
			{
				xPos = (parentObj.width() - obj.width());
			}
			else if(options.xposition == 'left')
			{
				xPos = 0;
			}
			else
			{
				xPos = options.xposition;
			}
			
			// horizontal position of the text
			if(options.textPosition == 'center')
				textAlign = 'center';
			else if(options.textPosition == 'right')
				textAlign = 'right';
			else
				textAlign = 'left';
			
			// set css to actuall element	
			obj.css({
				'padding-top' : yPos,
				'padding-left' : xPos
			});
			
			// set text-align for element
			if(textAlign != '')
				obj.css({'text-align' : textAlign});
		});
	};
})(jQuery);
