jQuery.fn.center = function () {
    this.css("position", "absolute");
    this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
    this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
    return this;
}

function GetParameterByID(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

function SetProductDetails() {
    $(document).ready(function () {
        try {
            if (isIE6) {
                $('#pdHROptionsTriple').width(function (index, width) {
                    return width + 10;
                })
                $('#pdHROptionsDouble').width(function (index, width) {
                    return width + 10;
                })
            }

            adjustSelectColorImage();
            loadOptionImages();
            if (isIE6) { recordSelectElementContents(); }
            hrSelectOption(getSelectedHeadRailPrefix());
            setHeadRailPlacements();

            var p = GetParameterByID("p");

            if (p != 2) {
                setHeadRailWidths();
            }

            syncMountTypeInputs(0);

            $("input.option").change(function (event) {
                selectOption(this);
                CalcPrice()
            });

            $('.helpPopUp').mouseover(function () {
                if (isIE6) { $(this).find('.modal').show(); }
            });
            $('.helpPopUp').mouseout(function () {
                if (isIE6) { $(this).find('.modal').hide(); }
            });
            CalcPrice(1);
        }
        catch (e) { }
    });
}

function loadOptionImages() {
    $(document).ready(function () {
        var lgImgDir = 'http://www.selectblinds.com/images/productDetails/500x500/';
        var smImgDir = 'http://www.selectblinds.com/images/productDetails/140x140/';

        $('.smallImage').each(function (index, value) {
            var id = this.id;
            var idParts = id.split('_');
            $(this).attr('src', smImgDir + 'OID' + idParts[1] + 'PID' + idParts[2] + '.jpg');
            $(this).load().error(function () {
                if ($(location).attr('href').match(/.www./i)) {
                    if ((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0) || this.readyState == 'uninitialized') {
                        try { $(this).attr('src', smImgDir + 'OID' + idParts[1] + '.jpg'); } catch (err) { this.style.display = 'none'; }
                    }
                    else {
                        this.style.display = 'none';
                    }
                } else {
                    $(this).attr('src', smImgDir + 'OID' + idParts[1] + '.jpg');
                }
            })
        });

        $('.largeImage').each(function (index, value) {
            var id = this.id;
            var idParts = id.split('_');
            $(this).attr('src', lgImgDir + 'OID' + idParts[1] + 'PID' + idParts[2] + '.jpg');
            $(this).load().error(function () {
                if ((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0) || this.readyState == 'uninitialized') {
                    $(this).attr('src', lgImgDir + 'OID' + idParts[1] + '.jpg');
                }
            })
        });
    });
}

function formatOptionPrice(price) {
    var sPrice = $(price).text();
    sPrice = sPrice.replace('$', '').replace('%', '');
    var iPrice = parseFloat(sPrice);
    if (iPrice == 0) {
        $(price).text('FREE');
    }
}

function setHeadRailPlacements() {
    var iPos = $('#mountTypeSelection').offset();
    var x3Left = iPos.left + 240;
    var x3Top = iPos.top + 99;
    var x2Left = iPos.left + 350;
    var x2Top = iPos.top + 99;

    if (document.getElementById('pdHROptionsTriple')) {
        document.getElementById('pdHROptionsTriple').style.top = x3Top + "px";
        document.getElementById('pdHROptionsTriple').style.left = x3Left + "px";
        //$('#divThreeOnOne').offset({ top: xTop, left: xLeft });
    }

    if (document.getElementById('pdHROptionsDouble')) {
        document.getElementById('pdHROptionsDouble').style.top = x2Top + "px";
        document.getElementById('pdHROptionsDouble').style.left = x2Left + "px";
        //$('#divThreeOnOne').offset({ top: xTop, left: xLeft });
    }

    setHeadRailImage();
}

function selectOption(inputToSelect) {
    var isChecked = inputToSelect.checked;
    var optionDiv = $(inputToSelect).parent().parent();
    if (isChecked) {
        $(optionDiv).children('.image').removeClass('unselected').addClass('selected');
    } else {
        $(optionDiv).children('.image').removeClass('selected').addClass('unselected');
    }
}

function adjustSelectColorImage() {
    var iPos = $('#mainImageContainer').offset();
    var iWidth = $('#mainImageContainer').width();
    var iHeight = $('#mainImageContainer').height();

    document.getElementById('BlindColorSelectImg').style.top = (iPos.top) + "px";
    document.getElementById('BlindColorSelectImg').style.left = (iPos.left) + "px";
    //$('#BlindColorSelectImg').offset({ top: iPos.top, left: iPos.left });
    $('#BlindColorSelectImg').width(iWidth);
    $('#BlindColorSelectImg').height(iHeight);

    document.getElementById('BlindColor').style.top = (iPos.top) + "px";
    document.getElementById('BlindColor').style.left = (iPos.left) + "px";
    //$('#BlindColor').offset({ top: iPos.top, left: iPos.left });
    $('#BlindColor').width(iWidth);
    $('#BlindColor').height(iHeight);

    var selectedColorId = document.getElementById('ColorID').value;
    if (selectedColorId != '0') {
        $('#BlindColorSelectImg').hide();
        $('#BlindColor').attr('src', '/images/blinds/enlarge/blindcolor_' + selectedColorId + '.jpg');
    }

    if (document.getElementById('TapeColor')) {
        var tPos = $('#BlindColor').offset();
        var tWidth = $('#BlindColor').width();
        var tHeight = $('#BlindColor').height();

        var tapeWidth = tWidth / 5;
        var tapeLeftOffset;
        //Cloth Tape Position
        if (document.getElementById('clothTapeImage')) {
            tapeLeftOffset = 3 * tapeWidth;
        } //Edge Binding Position
        else if (document.getElementById('edgeBindingImage')) {
            tapeLeftOffset = 4 * tapeWidth;
        }
        else {
            tapeLeftOffset = 0;
        }
        var tapeLeft = tPos.left + tapeLeftOffset;
        var tapeTop = (tPos.top + 1); //+1 is to account for the container 1px border on the main images
        var tapeHeight = tHeight;

        $('#TapeColor').width(tapeWidth);
        $('#TapeColor').height(tapeHeight);
        document.getElementById('TapeColor').style.top = tapeTop + "px";
        document.getElementById('TapeColor').style.left = tapeLeft + "px";
        //$('#TapeColor').offset({ top: tapeTop, left: tapeLeft });
    }
}

$(window).resize(function () {
    adjustSelectColorImage();
    setInvalidStepIndication();
    setHeadRailPlacements();
})

var iSIRefElementId = '';
var iSIRefDrawBool = false;
var iSIRefHorizontalOffset = '';
function createInvalidStepIndication(stepNumber) {
    switch (stepNumber) {
        case 2:
            iSIRefElementId = 'ColorID';
            //iSIRefScrollToElementId = 'selectColor';
            document.getElementById('iSIstep').value = 'color';
            iSIRefHorizontalOffset = 0;
            break;
        case 3:
            iSIRefElementId = 'mountTypeSelector';
            //iSIRefScrollToElementId = 'selectFeatures';
            document.getElementById('iSIstep').value = 'mountType';
            iSIRefHorizontalOffset = 0;
            break;
    }

    setInvalidStepIndication();
}

function setInvalidStepIndication() {
    if (iSIRefElementId != '') {
        var iPos = $('#' + iSIRefElementId).offset();
        var iHeight = $('#' + iSIRefElementId).height();

        var destinationVerticalCenter = iPos.top + (iHeight / 2);
        var xHeight = $('#iSI').height();
        var xTop = destinationVerticalCenter - (xHeight / 2);

        var xWidth = $('#iSI').width();
        var xLeft = iPos.left - xWidth - 4;

        $(this).scrollTop(xTop)

        //jQuery bug in IE prevents the use of offset()
        document.getElementById('iSI').style.top = xTop + 'px';
        document.getElementById('iSI').style.left = xLeft + 'px';
        $('#iSI').show();

        if (!iSIRefDrawBool) {
            iSIRefDrawBool = true;
            setInvalidStepIndication();
        }
    }
}

function syncMountTypeInputs(controlThatChanged) {
    var hideValidationElement = false;
    var selectionIsLimited = false;
    $('#mountTypeSelection input').each(function (index, value) {
        if ($(value).attr('disabled')) {
            selectionIsLimited = true;
            var inputId = $(value).attr('id');
            $('#' + inputId + 'Container').hide();
            $('.mountTypeClearable').css({ 'visibility': 'hidden' });
        }
    });

    if (!selectionIsLimited) {
        switch (controlThatChanged) {
            case 0: //radio button            
                for (x = 0; x < document.getElementsByName('mountType').length; x++) {
                    if (document.getElementsByName('mountType')[x].checked) {
                        for (y = 0; y < document.getElementById('mountTypeSelector').length; y++) {
                            if (document.getElementById('mountTypeSelector')[y].value == document.getElementsByName('mountType')[x].value) {
                                document.getElementById('mountTypeSelector')[y].selected = 1;
                                hideValidationElement = true;
                                break;
                            }
                        }
                        break;
                    }
                }
                break;
            case 1: //select box
                var mountTypeValue = document.getElementById('mountTypeSelector').value;
                switch (mountTypeValue) {
                    case '-1':
                        for (x = 0; x < document.getElementsByName('mountType').length; x++) {
                            document.getElementsByName('mountType')[x].checked = false;
                        }
                        break;
                    default:
                        for (x = 0; x < document.getElementsByName('mountType').length; x++) {
                            if (document.getElementsByName('mountType')[x].value == mountTypeValue) {
                                document.getElementsByName('mountType')[x].checked = true;
                                hideValidationElement = true;
                            } else {
                                document.getElementsByName('mountType')[x].checked = false;
                            }
                        }
                        break;
                }
                break;
        }

        if (document.getElementById('iSIstep').value == 'mountType') {
            document.getElementById('iSI').style.display = 'none';
            document.getElementById('iSIstep').value = '';
        }
    }
}

function getSelectedHeadRailPrefix() {
    if (document.getElementById('rStandard')) {
        if (document.getElementById('rStandard').checked) {
            return 'SD';
        }
    }
    if (document.getElementById('rTwoOnOne')) {
        if (document.getElementById('rTwoOnOne').checked) {
            return 'DB';
        }
    }
    if (document.getElementById('rThreeOnOne')) {
        if (document.getElementById('rThreeOnOne').checked) {
            return 'TR';
        }
    }
    return 'NA';
}

function positionItemsInHeadRail(containerId, tilterControl, tilterSide, liftCordSide, leftOffset, topOffset) {
    var xTop = 23;
    var xLeftSideLeft = 8;
    var xRightSideLeft = 95;
    var tilterOffset;

    if (document.getElementById(containerId)) {
        var iPos = $('#' + containerId).offset();
        //Adjust the positions to the relative element
        xTop = iPos.top + xTop + topOffset;
        xLeftSideLeft = iPos.left + xLeftSideLeft + leftOffset;
        xRightSideLeft = iPos.left + xRightSideLeft + leftOffset;

        var liftCordImageClass = 'hrCord';
        var tilterControlImageClass;
        switch (tilterControl) {
            case 'W':
                tilterControlImageClass = 'hrWand';
                break;
            case 'C':
                tilterControlImageClass = 'hrCord';
                break;
            default:
                tilterControlImageClass = '';
                break;
        }

        $('#' + containerId).children("div").remove();

        if (liftCordSide != '') { //Account for products not having a lift cord
            //Set lift cord image
            var lcTop = xTop;
            var lcLeft;
            switch (liftCordSide) {
                case 'L':
                    lcLeft = xLeftSideLeft;
                    break;
                case 'R':
                    lcLeft = xRightSideLeft;
                    break;
            }
            createHeadRailOptionImage(liftCordImageClass, lcLeft, lcTop, 0, containerId);
        }
        if (tilterSide != '') {  //Account for products not having a tilter control
            //Set tilter image
            var tTop = xTop;
            var tLeft;
            switch (tilterSide) {
                case 'L':
                    tLeft = xLeftSideLeft;
                    tilterOffset = 14;
                    break;
                case 'R':
                    tLeft = xRightSideLeft;
                    tilterOffset = -14;
                    break;
            }
            createHeadRailOptionImage(tilterControlImageClass, tLeft, tTop, tilterOffset, containerId);
        }
    }
}
var hrImgId = 0;
function createHeadRailOptionImage(imageClass, imgLeft, imgTop, offsetValue, containerId) {
    var imageDiv = document.createElement('div');
    imgLeft = imgLeft + offsetValue;
    $(imageDiv).attr('class', imageClass);
    $('#' + containerId).append(imageDiv);
    imageDiv.style.top = imgTop + 'px';
    imageDiv.style.left = imgLeft + 'px';
}

function setHeadRailImage() {
    var liftCordSide1 = '';
    var liftCordSide2 = '';
    var liftCordSide3 = '';
    var tilterSide1 = '';
    var tilterSide2 = '';
    var tilterSide3 = '';
    var tilterControl = '';
    var tilerControlElementId = '';
    var liftCordSideElementId1 = '';
    var liftCordSideElementId2 = '';
    var liftCordSideElementId3 = '';
    var tilterSideElementId1 = '';
    var tilterSideElementId2 = '';
    var tilterSideElementId3 = '';

    var headrailTypePrefix = getSelectedHeadRailPrefix();

    switch (headrailTypePrefix) {
        case 'SD':
            tilerControlElementId = 'stc';

            liftCordSideElementId1 = 'slc';
            liftCordSideElementId2 = 'NONE';
            liftCordSideElementId3 = 'NONE';

            tilterSideElementId1 = 'stl';
            tilterSideElementId2 = 'NONE';
            tilterSideElementId3 = 'NONE';

            imagePrefix = 'hd';
            break;
        case 'DB':
            tilerControlElementId = '2tc1';

            liftCordSideElementId1 = '2lc1';
            liftCordSideElementId2 = '2lc2';
            liftCordSideElementId3 = 'NONE';

            tilterSideElementId1 = '2tl1';
            tilterSideElementId2 = '2tl2';
            tilterSideElementId3 = 'NONE';

            imagePrefix = 'hd_2on1';
            break;
        case 'TR':
            tilerControlElementId = '3tc1';

            liftCordSideElementId1 = '3lc1';
            liftCordSideElementId2 = '3lc2';
            liftCordSideElementId3 = '3lc3';

            tilterSideElementId1 = '3tl1';
            tilterSideElementId2 = '3tl2';
            tilterSideElementId3 = '3tl3';

            imagePrefix = 'hd_3on1';
            break;
    }

    //Tilter Control Type
    if (document.getElementById(tilerControlElementId)) {
        switch (document.getElementById(tilerControlElementId).value) {
            case '6': case 'c':
                tilterControl = 'C';
                break;
            case '7': case 'w':
                tilterControl = 'W';
                break;
            default:
                tilterControl = '';
                break;
        }
    }

    //Lift Cord Side
    if (document.getElementById(liftCordSideElementId1)) {
        switch (document.getElementById(liftCordSideElementId1).value) {
            case '9': case 'l':
                liftCordSide1 = 'L';
                break;
            case '10': case 'r':
                liftCordSide1 = 'R';
                break;
            default:
                liftCordSide1 = '';
                break;
        }
    }
    if (document.getElementById(liftCordSideElementId2)) {
        switch (document.getElementById(liftCordSideElementId2).value) {
            case 'l':
                liftCordSide2 = 'L';
                break;
            case 'r':
                liftCordSide2 = 'R';
                break;
            default:
                liftCordSide2 = '';
                break;
        }
    }
    if (document.getElementById(liftCordSideElementId3)) {
        switch (document.getElementById(liftCordSideElementId3).value) {
            case 'l':
                liftCordSide3 = 'L';
                break;
            case 'r':
                liftCordSide3 = 'R';
                break;
            default:
                liftCordSide3 = '';
                break;
        }
    }

    //Tilter Side
    if (document.getElementById(tilterSideElementId1)) {
        switch (document.getElementById(tilterSideElementId1).value) {
            case '4': case 'l':
                tilterSide1 = 'L';
                break;
            case '5': case 'r':
                tilterSide1 = 'R';
                break;
            default:
                tilterSide1 = '';
                break;
        }
    }

    if (document.getElementById(tilterSideElementId2)) {
        switch (document.getElementById(tilterSideElementId2).value) {
            case 'l':
                tilterSide2 = 'L';
                break;
            case 'r':
                tilterSide2 = 'R';
                break;
            default:
                tilterSide2 = '';
                break;
        }
    }

    if (document.getElementById(tilterSideElementId3)) {
        switch (document.getElementById(tilterSideElementId3).value) {
            case 'l':
                tilterSide3 = 'L';
                break;
            case 'r':
                tilterSide3 = 'R';
                break;
            default:
                tilterSide3 = '';
                break;
        }
    }

    var tPos;
    var tLeftOffset;
    var tTopOffset;
    switch (headrailTypePrefix) {
        case 'SD':
            positionItemsInHeadRail('headRailImage_1-1', tilterControl, tilterSide1, liftCordSide1, 0, 0);
            break;
        case 'DB':
            tPos = $('#pdHROptionsDouble').offset();
            tLeftOffset = (tPos.left * -1) - 3;
            tTopOffset = (tPos.top * -1) - 0;
            if (isIE6) { tLeftOffset = tLeftOffset + 8; }
            positionItemsInHeadRail('headRailImage_2-1', tilterControl, tilterSide1, liftCordSide1, tLeftOffset, tTopOffset);
            positionItemsInHeadRail('headRailImage_2-2', tilterControl, tilterSide2, liftCordSide2, tLeftOffset, tTopOffset);
            break;
        case 'TR':
            tPos = $('#pdHROptionsTriple').offset();
            tLeftOffset = (tPos.left * -1) - 6;
            tTopOffset = (tPos.top * -1) - 0;
            if (isIE6) { tLeftOffset = tLeftOffset + 4; }
            positionItemsInHeadRail('headRailImage_3-1', tilterControl, tilterSide1, liftCordSide1, tLeftOffset, tTopOffset);
            positionItemsInHeadRail('headRailImage_3-2', tilterControl, tilterSide2, liftCordSide2, tLeftOffset, tTopOffset);
            positionItemsInHeadRail('headRailImage_3-3', tilterControl, tilterSide3, liftCordSide3, tLeftOffset, tTopOffset);
            break;
    }

    var breakPointHelper;
}

function showLargeImage(containerId) {
    $('.largeImageContainer').hide();
    var imageContainer = document.getElementById('largeImageContainer' + containerId);
    if (imageContainer) {
        imageContainer.style.display = 'block';
        $('#largeImageContainer' + containerId).center();
    }
}

function hideLargeImage(containerId) {
    var imageContainer = document.getElementById('largeImageContainer' + containerId);
    if (imageContainer) {
        imageContainer.style.display = 'none';
    }
}

function hrSelectOption(optToSelect) {
    var optSingle = document.getElementById('pdHROptionsSingle');
    var optDouble = document.getElementById('pdHROptionsDouble');
    var optTriple = document.getElementById('pdHROptionsTriple');
    var optValue;
    if (optToSelect) {
        optValue = optToSelect;
    } else {
        optValue = getSelectedHeadRailPrefix();
    }
    switch (optValue) {
        case 'SD':
            document.getElementById('rStandard').checked = true;
            $('#multipleHeadRailOptionsSpacer').hide();
            if (optSingle) { $(optSingle).show(); if (isIE6) { showOptions('pdHROptionsSingle'); } }
            if (optDouble) { if (isIE6) { hideOptions('pdHROptionsDouble'); } $(optDouble).hide(); }
            if (optTriple) { if (isIE6) { hideOptions('pdHROptionsTriple'); } $(optTriple).hide(); }
            setHeadRailImage();
            break;
        case 'DB':
            document.getElementById('rTwoOnOne').checked = true;
            $('#multipleHeadRailOptionsSpacer').show();
            if (optSingle) { if (isIE6) { hideOptions('pdHROptionsSingle'); } $(optSingle).hide(); }
            if (optDouble) { $(optDouble).show(); if (isIE6) { showOptions('pdHROptionsDouble'); } }
            if (optTriple) { if (isIE6) { hideOptions('pdHROptionsTriple'); } $(optTriple).hide(); }
            setHeadRailImage();
            break;
        case 'TR':
            document.getElementById('rThreeOnOne').checked = true;
            $('#multipleHeadRailOptionsSpacer').show();
            if (optSingle) { if (isIE6) { hideOptions('pdHROptionsSingle'); } $(optSingle).hide(); }
            if (optDouble) { if (isIE6) { hideOptions('pdHROptionsDouble'); } $(optDouble).hide(); }
            if (optTriple) { $(optTriple).show(); if (isIE6) { showOptions('pdHROptionsTriple'); } }
            setHeadRailPlacements();
            break;
    }
}

var selectContents = new Array();

function recordSelectElementContents() {
    $('select').each(function (index, value) {
        if ($(value).attr('id')) {
            var id = $(value).attr('id');
            selectContents[id] = $(value).html();
        }
    });
}

function showOptions(selectElementName) {
    $('#' + selectElementName + ' select').each(function (index, value) {
        var id = $(value).attr('id');
        $(value).html(selectContents[id]);
    });
}

function hideOptions(selectElementName) {
    //    $('#' + selectElementName + ' select').remove();
    $('#' + selectElementName + ' select').each(function (index, value) {
        $(value).find('option').remove();
        var test = '';
    });
}

function setHeadRailWidths() {
    if (!isIE6) {
        var width = document.getElementById('mainWidth').value;
        var width8ths = document.getElementById('mainWidth8ths').value;

        //Two on One
        if (document.getElementById('2wi1') && document.getElementById('2wi2')) {
            var smallestTwoOnOneWidthAllowed =
            parseInt(document.getElementById('2wi1')[0].value) +
            parseInt(document.getElementById('2wi2')[0].value);

            if (width >= smallestTwoOnOneWidthAllowed) {
                if (document.getElementById('rTwoOnOne')) {
                    document.getElementById('rTwoOnOne').disabled = false;

                    var twoOnOne1 = parseInt(width / 2);
                    var twoOnOne2 = parseInt(width / 2) + (width % 2);

                    if (document.getElementById('2wi1')) { document.getElementById('2wi1').value = twoOnOne1; }
                    if (document.getElementById('2w81')) { document.getElementById('2w81').value = '.0'; }
                    if (document.getElementById('2wi2')) { document.getElementById('2wi2').value = twoOnOne2; }
                    if (document.getElementById('2w82')) { document.getElementById('2w82').value = width8ths; }
                }
            } else {
                if (document.getElementById('rStandard')) {
                    hrSelectOption('SD');
                }
                if (document.getElementById('rTwoOnOne')) {
                    document.getElementById('rTwoOnOne').disabled = true;
                }
            }
        }

        //Three on One
        if (document.getElementById('3wi1') && document.getElementById('3wi2') && document.getElementById('3wi3')) {
            var smallestThreeOnOneWidthAllowed =
            parseInt(document.getElementById('3wi1')[0].value) +
            parseInt(document.getElementById('3wi2')[0].value) +
            parseInt(document.getElementById('3wi3')[0].value);

            if (width >= smallestThreeOnOneWidthAllowed) {
                if (document.getElementById('rThreeOnOne')) {
                    document.getElementById('rThreeOnOne').disabled = false;

                    var threeOnOne1 = parseInt(width / 3);
                    var threeOnOne2 = parseInt(width / 3) + (width % 3);
                    var threeOnOne3 = parseInt(width / 3);

                    if (document.getElementById('3wi1')) { document.getElementById('3wi1').value = threeOnOne1; }
                    if (document.getElementById('3w81')) { document.getElementById('3w81').value = '.0'; }
                    if (document.getElementById('3wi2')) { document.getElementById('3wi2').value = threeOnOne2; }
                    if (document.getElementById('3w82')) { document.getElementById('3w82').value = width8ths; }
                    if (document.getElementById('3wi3')) { document.getElementById('3wi3').value = threeOnOne3; }
                    if (document.getElementById('3w83')) { document.getElementById('3w83').value = '.0'; }
                }
            } else {
                if (getSelectedHeadRailPrefix() == 'TR') {
                    if (document.getElementById('rTwoOnOne')) {
                        hrSelectOption('DB');
                    } else {
                        hrSelectOption('SD');
                    }
                }
                if (document.getElementById('rThreeOnOne')) {
                    document.getElementById('rThreeOnOne').disabled = true;
                }
            }
        }
    }
}


