﻿var PauseBottomScroller = false;
var ScrollingStarted = false;
var scrollSpeed = 1;

function getPageYOffset() {
    var ScrollTop = document.body.scrollTop;
    if (ScrollTop == 0) {

        if (window.pageYOffset)
            ScrollTop = window.pageYOffset;
        else
            ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }

    return ScrollTop;
};

function getPageXOffset() {
    var ScrollLeft = document.body.scrollLeft;
    if (ScrollLeft == 0) {

        if (window.pageXOffset)
            ScrollLeft = window.pageXOffset;
        else
            ScrollLeft = (document.body.parentElement) ? document.body.parentElement.scrollLeft : 0;
    }

    return ScrollLeft;
};

function onBodyScroll() {
    var topMenu = document.getElementById('tblTopFixedContent');
    var logo = document.getElementById('tblTopScrollableContent');
    var topMenuContent = document.getElementById('tdTopFixedContent');
    var topMenuContentLeft = document.getElementById('tdTopFixedContentBorderLeft');
    var topMenuContentRight = document.getElementById('tdTopFixedContentBorderRight');
    var productDetailedHeader = document.getElementById('productDetailedHeader');
    var productMiniDetails = document.getElementById('spProductMiniDetails');

    if (topMenu) {
        var pos = logo.offsetHeight - getPageYOffset();

        var bgPos = -getPageYOffset();
        if (pos < 0)
            pos = 0;
        else
            bgPos = -logo.offsetHeight;

        //alert(logo.offsetHeight + " - " + getPageYOffset() + " = " + pos);

        topMenu.style.top = pos + 'px';

        if (bgPos < -logo.offsetHeight)
            bgPos = -logo.offsetHeight;

        topMenuContent.style.backgroundPosition = '0 ' + bgPos + 'px';
        topMenuContentLeft.style.backgroundPosition = '0 ' + bgPos + 'px';
        topMenuContentRight.style.backgroundPosition = '0 ' + bgPos + 'px';


        //ProductMinidetails
        if (productMiniDetails) {
            productMiniDetails.style.top = (pos + topMenu.offsetHeight) + 'px';
            productMiniDetails.style.right = topMenuContentLeft.offsetWidth + 'px';
        }

        //Bottom scroller
        var spBottomProductHighlight = document.getElementById('spBottomProductHighlight');
        var tdContentContainer = document.getElementById('tdContentContainer');

        if (spBottomProductHighlight) {
            var spBottomProductHighlight = document.getElementById('spBottomProductHighlight');
            spBottomProductHighlight.style.width = (tdContentContainer.offsetWidth-20) + 'px';
            spBottomProductHighlight.style.display = '';

            var tdGoRight = document.getElementById('tdGoRight');

            tdGoRight.style.marginLeft = (spBottomProductHighlight.offsetWidth - 50) + 'px';

            var trBottomProductHighligh = document.getElementById('trBottomProductHighligh');
            //begin animation of the bottom items if there is enough item to scroll...
            if (spBottomProductHighlight.offsetWidth < trBottomProductHighligh.offsetWidth && !ScrollingStarted) {
                ScrollingStarted = true;
                scrollBottom();
            }
        }

        //ProductDetails
        if (productDetailedHeader) {
            initializeBigImage();

            var objPos = GetObjectPositionNoScroll(productDetailedHeader);
            var spProductDetailedClonedHeader = document.getElementById('spProductDetailedClonedHeader');
            
            if ((getPageYOffset() + topMenu.offsetHeight) > objPos[1] && (getPageYOffset() + topMenu.offsetHeight) < (objPos[1] + productDetailedHeader.parentNode.offsetHeight)) {

                spProductDetailedClonedHeader.style.position = 'fixed';
                spProductDetailedClonedHeader.style.top = topMenu.offsetHeight + 'px'; 
                var tr = spProductDetailedClonedHeader.firstChild.firstChild;

                if (spProductDetailedClonedHeader.style.display == 'none') {
                    //Clone the header
                    
                    while (tr.hasChildNodes()) {
                        tr.removeChild(tr.firstChild);
                    }
                    var tds = productDetailedHeader.getElementsByTagName('TD');
                    for (var i = 0; i < tds.length; i++) {
                        var td = document.createElement('TD');
                        td.className = tds[i].className;
                        td.innerHTML = tds[i].innerHTML;
                        td.style.width = (tds[i].offsetWidth - 4) + 'px';
                        tr.appendChild(td);
                    }


                    spProductDetailedClonedHeader.style.display = '';
                }
                else {
                    var tds = productDetailedHeader.getElementsByTagName('TD');
                    for (var i = 0; i < tds.length; i++) {
                        tr.childNodes[i].style.width = (tds[i].offsetWidth - 4) + 'px';
                    }
                }
            }
            else {
                spProductDetailedClonedHeader.style.display = 'none';
            }
        }
    }
    else {
        //document.getElementById('divScrollPos').innerHTML = 'COULD NOT READ DATA';
    }
};


window.onscroll = onBodyScroll;
window.onresize = onBodyScroll;

window.onload = function () {


    var topMenu = document.getElementById('tblTopFixedContent');
    var logo = document.getElementById('tblTopScrollableContent');
    var tblBottomContentArea = document.getElementById('tblBottomContentArea');

    document.getElementById('tblContentContainer').style.marginTop = (topMenu.offsetHeight) + 'px';
    onBodyScroll();

    document.getElementById('tblContentContainer').style.visibility = '';
    topMenu.style.visibility = '';
    logo.style.visibility = '';
    tblBottomContentArea.style.visibility = '';

    //    Autoscroll selected categoryMenuItem into view
    //    if (document.location.href.indexOf('scrollTo') > -1) {
    //        var scrollto = document.location.href.substring(document.location.href.indexOf('scrollTo') + 9);
    //        var scrollObj = document.getElementById('category' + scrollto);

    //        if (scrollObj) {
    //            scrollObj.scrollIntoView(true);
    //            window.scrollBy(0, -topMenu.offsetHeight);
    //            //setTimeout(function () { window.scrollBy(0, -topMenu.offsetHeight); }, 50);
    //        }
    //    }



    var query = document.getElementById('txtQuery').value;
    if (query != '')
        document.getElementById('srcQuery').value = query;
};


function scrollBottom() {
    var obj = document.getElementById('spBottomProductHighlight');
    if (obj) {

        if (!PauseBottomScroller) {
            var osc = obj.scrollLeft;
            var oDiff = obj.scrollWidth / 2;
            if (osc > oDiff) {
                osc -= oDiff;
                obj.scrollLeft = osc;
            }
            else {
                if (obj.scrollLeft + scrollSpeed < 0) {
                    obj.scrollLeft += oDiff;
                }
                obj.scrollLeft += scrollSpeed;
            }
            writeDB(obj.scrollLeft + " >> " + oDiff);
        }

        setTimeout(function () { scrollBottom(); }, 10);
    }
};
