			(function($j){
				$j.positionFixed = function(el){
					$j(el).each(function(){
						new fixed(this)
					})
					return el;					
				}
				$j.fn.positionFixed = function(){
					return $j.positionFixed(this)
				}
				var fixed = $j.positionFixed.impl = function(el){
					var o=this;
					o.sts={
						target : $j(el).css('position','absolute'),
						container : $j(window)
					}
					o.sts.currentCss = {
						top : o.sts.target.css('top'),				
						right : o.sts.target.css('right'),				
						bottom : o.sts.target.css('bottom'),				
						left : o.sts.target.css('left')				
					}
					if(!o.ie6)return;
					o.bindEvent();
				}
				$j.extend(fixed.prototype,{
					ie6 : $.browser.msie && $.browser.version < 7.0,
					bindEvent : function(){
						var o=this;
						o.sts.target.css('position','absolute')
						o.overRelative().initBasePos();
						o.sts.target.css(o.sts.basePos)
						o.sts.container.scroll(o.scrollEvent()).resize(o.resizeEvent());
						o.setPos();
					},
					overRelative : function(){
						var o=this;
						var relative = o.sts.target.parents().filter(function(){
						    if($j(this).css('position')=='relative')return this;
						})
						if(relative.size()>0)relative.after(o.sts.target)
						return o;
					},
					initBasePos : function(){
						var o=this;
						o.sts.basePos = {
							top: o.sts.target.offset().top - (o.sts.currentCss.top=='auto'?o.sts.container.scrollTop():0),
							left: o.sts.target.offset().left - (o.sts.currentCss.left=='auto'?o.sts.container.scrollLeft():0)
						}
						return o;
					},
					setPos : function(){
						var o=this;
						o.sts.target.css({
							top: o.sts.container.scrollTop() + o.sts.basePos.top,
							left: o.sts.container.scrollLeft() + o.sts.basePos.left
						})
					},
					scrollEvent : function(){
						var o=this;
						return function(){
							o.setPos();
						}
					},
					resizeEvent : function(){
						var o=this;
						return function(){
							setTimeout(function(){
								o.sts.target.css(o.sts.currentCss)		
								o.initBasePos();
								o.setPos()
							},1)	
						}			
					}
				})
			})(jQuery)
