
jQuery.fn.positionObject=function(referrer,settings){var settings=jQuery.extend({posX:'left',posY:'bottom',offsetX:0,offsetY:0,directionH:'right',directionV:'down',detectH:true,detectV:true,linkToFront:false},settings);var el=$(this);var referrer=referrer;var dims={elW:el.width(),elH:el.height(),refX:referrer.offset().left,refY:referrer.offset().top,refW:referrer.getTotalWidth(),refH:referrer.getTotalHeight()};var xVal,yVal;el.insertPositionHelper(dims);switch(settings.posX){case'left':xVal=0;break;case'center':xVal=dims.refW/2;break;case'right':xVal=dims.refW;break;};switch(settings.posY){case'top':yVal=0;break;case'center':yVal=dims.refH/2;break;case'bottom':yVal=dims.refH;break;};xVal+=settings.offsetX;yVal+=settings.offsetY;if(settings.directionV=='up'){el.css({top:'auto',bottom:yVal});if(settings.detectV&&!fitVertical(el)){el.css({bottom:'auto',top:yVal});}}
else{el.css({bottom:'auto',top:yVal});if(settings.detectV&&!fitVertical(el)){el.css({top:'auto',bottom:yVal});}};if(settings.directionH=='left'){el.css({left:'auto',right:xVal});if(settings.detectH&&!fitHorizontal(el)){el.css({right:'auto',left:xVal});}}
else{el.css({right:'auto',left:xVal});if(settings.detectH&&!fitHorizontal(el)){el.css({left:'auto',right:xVal});}};if(settings.linkToFront){referrer.clone().addClass('linkClone').css({position:'absolute',top:0,right:'auto',bottom:'auto',left:0,width:referrer.width(),height:referrer.height()}).insertAfter(el);};return $(this);};jQuery.fn.insertPositionHelper=function(dims){var el=$(this);var dims=dims;var helper=$('<div class="positionHelper"></div>');helper.css({left:dims.refX,top:dims.refY,width:dims.refW,height:dims.refH});el.wrap(helper);return $(this);};