
var oFlyDiv                  = null;
var sFlyDivId                = 'quicktracks';

var oTopmostEl              = null;
var nTimeOutId              = null;

var nInitialPos             = 0;
var nTopPos             		= -140;
var nCurStep                = 0;

var Fly_nDelayBeforeMove      = 200;
var Fly_nExpandDuration       = 450;
var Fly_nInterval             = 20;
var Fly_nIters                = parseInt( Fly_nExpandDuration / Fly_nInterval );


function DoFly()
{
    if( nCurStep <= Fly_nIters )
    {
				if(oTopmostEl.scrollTop>140){
        var nDelta = CalcDeltaDistance( oTopmostEl.scrollTop - nInitialPos + nTopPos, nCurStep++ );
				}else{
        var nDelta = CalcDeltaDistance( oTopmostEl.scrollTop - nInitialPos, nCurStep++ );
				}
    		oFlyDiv.style.top = nInitialPos + nDelta + 'px';
        setTimeout( DoFly, Fly_nInterval );
    }
}

function CalcDeltaDistance( nDim, nCurStep )
{
    var dFract = ( nCurStep / Fly_nIters );
    var d = Math.sqrt( Math.sqrt( dFract ) );
    var nDimCur = Math.round( d * nDim );
    return nDimCur;
}

function Init()
{
    oFlyDiv = document.getElementById( sFlyDivId );
    oTopmostEl = GetTopmostLayoutEl();
    
    if(typeof window.onscroll == 'function')
    {
     var fnExisting = onscroll;
     window.onscroll = function()
     {
      fnExisting();
      OnBodyScroll();
     };
    }
    else
    {
     window.onscroll = OnBodyScroll;
    }
    
}

function OnBodyScroll()
{
    if( nTimeOutId )
    {
        clearTimeout( nTimeOutId );
    }

    nCurStep = 0;
    nInitialPos = oFlyDiv.offsetTop;
    nTimeOutId = setTimeout( DoFly, Fly_nDelayBeforeMove );
}

function GetTopmostLayoutEl( oWnd )
{
    if( oWnd == null )
    {
        oWnd = window;
    }
    
    var oEl;
    
    if( oWnd.document.compatMode == "CSS1Compat" )
    {
        oEl = oWnd.document.documentElement;
    }
    else
    {
        oEl = oWnd.document.body;
    }

    return oEl;
}



addEvent(window, 'load', Init);
