// Variables
// These can't be initialized them here, must be done with the onload event
var topOffset;
var scrollingBannerDiv;
// Behaviour
var checksToSkip = 10;
var countChecksToSkip = checksToSkip;
var scrollingBannerCookieName = "scrollingBanner";
var singleMovePercentage = 8;
var checkIntervalMs = 50;



function getWindowVerticalOffset()
{
    if (navigator.appName.indexOf("Explorer") >= 0)
    {
        // return document.body.scrollTop;
        
        return scrollingBannerDiv.offsetParent.scrollTop;
    }
    else
    {
        if (navigator.appName.indexOf("Netscape") >= 0)
        {
            return window.pageYOffset;
        }
    }

    return 0;
}



function getScrollingBannerVerticalOffset()
{
    if (navigator.appName.indexOf("Explorer") >= 0)
    {
        return scrollingBannerDiv.style.posTop;
    }
    else
    {
        if (navigator.appName.indexOf("Netscape") >= 0)
            return scrollingBannerDiv.offsetTop;
    }

    return 0;
}



function setScrollingBannerVerticalOffset(newOffset)
{
    if (navigator.appName.indexOf("Explorer") >= 0)
    {
        scrollingBannerDiv.style.posTop = newOffset;
    }
    else
    {
        if (navigator.appName.indexOf("Netscape") >= 0)
        {
            scrollingBannerDiv.style.top = newOffset + "px";
        }
    }
}



function moveBanner(movePercentage)
{
    var currentPos = getScrollingBannerVerticalOffset();
    var finalPos = topOffset + getWindowVerticalOffset();
    
    if (currentPos == finalPos)
        return;
    
    var move = 0;
    
    if (finalPos > currentPos)
        move = Math.max(1, Math.ceil((finalPos - currentPos) * (movePercentage / 100)));
    else    
        if (finalPos < currentPos)
            move = Math.min(-1, Math.floor((finalPos - currentPos) * (movePercentage / 100)));

    currentPos += move;

    setScrollingBannerVerticalOffset(currentPos);
}



function scrollBanner()
{
    //setScrollingBannerVerticalOffset(topOffset + getWindowVerticalOffset());
    
    if (countChecksToSkip > 0)
        countChecksToSkip--;
    else
        moveBanner(singleMovePercentage);
}



function testScrolling()
{
    if (getScrollingBannerVerticalOffset() != (topOffset + getWindowVerticalOffset()))
    {
        scrollBanner();
    }
    else
        if (countChecksToSkip < checksToSkip)
            countChecksToSkip = checksToSkip;
    
    //scrollingBannerDiv.innerHTML = "" + getWindowVerticalOffset();

    return;
}



function showScrollingBanner()
{
    scrollingBannerDiv.style.display = "block";
}



function hideScrollingBanner(permanent)
{
    //alert(getCookie(popUpBannerCookieName));
    scrollingBannerDiv.style.display = "none";

    if (permanent)
        setCookie(scrollingBannerCookieName, 0);
}



function initializeScrollingBanner()
{
    
    if ((navigator.appName.indexOf("Explorer") >= 0 || navigator.appName.indexOf("Netscape") >= 0) && 
        parseInt(navigator.appVersion) >= 4 &&
        screen.width >= 1024 &&
        getCookie(scrollingBannerCookieName) == null
       )
    {
        scrollingBannerDiv = document.getElementById("scrollingBanner");
        
        scrollingBannerDiv.style.display = "block";
        
        // If done before display, Mozilla wrongly returns 0
        //topOffset = 17;
        topOffset = getScrollingBannerVerticalOffset();

        setInterval("testScrolling()", checkIntervalMs);
        //window.onscroll = scrollBanner;
        //window.onscroll = testScrolling;
        
        
    }
    
    //CR 11/12/2006
    //Show also pupUp Banner
    //if (popUpEnable)
    //    openPopUpBanner();
}


// PopUp area size
var popUpOpenMinimizeWidth  = 670;
var popUpOpenMinimizeHeight = 538;
var popUpBannerCookieName = "popUpBanner";
var popUpWindow;
var popUpEnable = true;


// Open Banner window
function openPopUpBanner()
{
    var regExp = new RegExp("coop.portal$")
    var link = document.location.href;
    //alert(link);
    if (link.match(regExp))
    {
    	goToHome();
    	return;
    }
    if (getCookie(popUpBannerCookieName) == null && link.match(regExp)  )
    {
        // Open Banner window using minimized dimensions
        popUpWindow = openNewWindow('/portalWeb/resources/jsp/popUpBannerHome.jsp?cm_path=/CoopRepository/COOP/CoopItalia/banner/ban00000042513', 'popUpWin', popUpOpenMinimizeWidth, popUpOpenMinimizeHeight, false, false, false);
    
        // Move Banner window to the place the maximized window would have been opened
        var iTop  = (screen.availHeight - popUpOpenMinimizeWidth) / 2 ;
        var iLeft = (screen.availWidth  - popUpOpenMinimizeWidth) / 2 ;
        iTop  = 0;
        iLeft = screen.availWidth  - popUpOpenMinimizeWidth - 10;
        popUpWindow.moveTo(iLeft, iTop);
    }
}

function hidePopUp(permanent)
{
    if (permanent)
        setCookie(popUpBannerCookieName, 0);
    popUpWindow.close();
 
}
