/***********************/
/* fireskill@gmail.com */
/* http://blog.bits.kr */
/*          2009/10/16 */
/***********************/

/*
jqueryÇÃ·¯±×ÀÎÀÌ¹Ç·Î jquery¸¦ ÇÊ¼ö·Î »ç¿ëÇØ¾ß µ¿ÀÛÇÏ´Â ½ºÅ©¸³Æ®ÀÔ´Ï´Ù.

pageAlign : center ¶Ç´Â left
pageWidth : ÄÁÅÙÃ÷ ºí·°ÀÇ Æø(ÇÊ¼ö°ª)
type      : right ¶Ç´Â left(pageAlignÀÇ °ªÀ» center·Î ÇßÀ»¶§¸¸ left°ª »ç¿ë°¡´É)
topMargin : ÆäÀÌÁö ÃÖ»ó´Ü°úÀÇ °Å¸®
minTop    : ½ºÅ©·Ñ ÇßÀ»¶§ ºê¶ó¿ìÀú »ó´Ü°úÀÇ °Å¸®(topMargin°ú °°Àº °ªÀ» ³ÖÀ¸¸é °°Àº ³ôÀÌ À¯Áö)
margin    : ÄÁÅÙÃ÷ ºí·°°úÀÇ ÁÂ ¶Ç´Â ¿ìÀÇ ¸¶Áø(leftÀÏ¶§´Â ¿À¸¥ÂÊ ¸¶Áø, rightÀÏ¶§´Â ¿ÞÂÊ ¸¶Áø)
speed     : µû¶ó´Ù´Ï´Â ¼Óµµ
easing    : linear ¶Ç´Â swing (easing plugin ÇÃ·¯±×ÀÎÀ» ¾´´Ù¸é ÇÃ·¯±×ÀÎ ¿É¼Ç°ªÀ» ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖÀ½)
zindex    : ÇÊ¿äÇÏ´Ù¸é...
*/
(function($) {
  var $doc = $(document);
  var $win = $(window);
  $.fn.scrollFollower = function (options){
    var options = $.extend({}, $.fn.scrollFollower.defaults, options);
		if (options.pageWidth)
			var pageWidth    = parseInt(options.pageWidth);
		else
		{
			alert('pageWidth´Â ÇÊ¼ö ¿É¼Ç°ªÀÔ´Ï´Ù.\npageWidth is a necessary option value\npageWidth ªËù±é©ªÊ«ª«×«·«ç«óªÎö·ªÇª¹\npageWidth ãÀìé?ù±é©îÜ???');
			return false;
		}
    var $layer = $(this);
    var varType      = options.varType;
    var pageAlign    = options.pageAlign;
    var offset       = pageWidth/2;
    var layerPositon = options.type;
    var margin       = parseInt(options.margin);
    var speed        = parseInt(options.speed);
    var easing       = options.easing;
    var topMargin    = parseInt(options.topMargin);
    var minTop       = parseInt(options.minTop);
    var marginResult = offset + margin;
    $layer.css('z-index', options.zindex);
    $layer.css("position","absolute");
    if (layerPositon === 'left')
     varType = 'right';
    function resetXPosition()
    {
      if (pageAlign === 'center')
      {
        var $screenSize = $('body').width();
        var halfScreenSize = $screenSize/2;
        xPosition = halfScreenSize + marginResult;
      }
      else if (pageAlign === 'left')
      {
        varType   = 'left';
        xPosition = pageWidth + margin;
      }
      $layer.css(varType, xPosition);
    }
    resetXPosition();
    $layer.css('top',topMargin);
    $win.resize(resetXPosition);
    $win.scroll(function(){
      $top = $doc.scrollTop();
      if ($top > topMargin + minTop)
        yPosition = $top + minTop;
      else
        yPosition = $top + topMargin;
      $layer.animate({"top":yPosition }, {duration:speed, easing:easing, queue:false});
    });
  };
  $.fn.scrollFollower.defaults = {
    varType:'left',
    pageAlign:'left',
    type:'left',
    topMargin:0,
    minTop:0,
    margin:0,
    speed:1000,
    easing:'linear',
    zindex:10
    };
})( jQuery );