function initSizeChartLinks() {
    var sizeChartLinks = $('a.pdp_sizeChartPopup');
    sizeChartLinks.each(function( i, sizeChartLink ) {
        sizeChartLink = $(sizeChartLink);
        var sizeChartCategory = sizeChartLink.attr('href').replace(/^.*\#([^\#]+)$/, '$1');
        sizeChartLink.unbind('click');
        sizeChartLink.click(function( event ) {
            event.preventDefault();
            setTimeout(function() {
                var sizeChartModal = new Modal({
                    html: '',
                    height: 493,
                    width: 429,
                    shadow: true,
                    clean: true,
                    openCb: function() {
                        var modalDOM = sizeChartModal.getModalDOM();
                        var closeLink = modalDOM.find('#sizeChartCloseLink a');
                        initSizeChartLinkJumps(modalDOM);
                        closeLink.click(function( event ) {
                            event.preventDefault();
                            setTimeout(sizeChartModal.close, 0);
                        });
                    }
                });
                
                function sizeChartAJAXError( XMLHttpRequest, textStatus, errorThrown ) {
                    sizeChartModal.close();
                    alert("Error making AJAX request:" + textStatus); // to do: handle properly
                }
                
                $.ajax({
                    error: sizeChartAJAXError,
                    timeout: sizeChartAJAXError,
                    cache: true,
                    dataType: 'html',
                    url: '/' + jsContextRoot + '/browse/common/sizeChart_popup.jsp?sizeChartCSS=pdp_&mainCategory=' + sizeChartCategory,
                    success: function( text, textStatus ) {
                        sizeChartModal.open(text);
                    }
                });
            }, 0);
        });
    });
}

function initSizeChartLinkJumps( scopeObj ) {
    if (!!scopeObj) {
        var tabSet = scopeObj.find('ul.sizeChartTabs'),
        tabLinks = tabSet.find('a'),
        scrollContainer = tabSet.next();
        
        tabLinks.each(function( i, elm ) {
            elm = $(elm);
            var scrollVal = scrollContainer.find(elm.attr('href').replace(/^.*(\#[^\#]+)$/, '$1')).offset().top - scrollContainer.offset().top;
            elm.click(function( event ) {
                event.preventDefault();
                //scrollContainer[0].scrollTop = scrollVal;  // non-animated version
                setTimeout(function() {  // Should avoid animation if we are already there
                    scrollContainer.stop();
                    scrollContainer.animate({scrollTop: scrollVal + 'px'}, 'fast');
                }, 0);
            });
        });
    }
}
