/**
 * @fileoverview NIN Search Results Page.
 *
 * @author Iain White iain.white@aot.com.au
 * @version 1.0 
 */

NIN.SearchResults = {
    version: '1.0',
    stars: [],
    secretStayOnly: false,
    hotDealOnly: false,
    busyEl: null,
    updateStars: function(action, values)
    {
        if (action == 'add') {
            NIN.SearchResults.stars = NIN.SearchResults.stars.concat(values);
        } else {
            NIN.SearchResults.removeFromArray(NIN.SearchResults.stars, values);
        }
    },
    removeFromArray: function(array, itemsToRemove)
    {
        var j;
        for (var i = 0; i < itemsToRemove.length; i++) {
            j = 0;
            while (j < array.length) {
                if (array[j] == itemsToRemove[i]) {
                    array.splice(j, 1);
                } else {
                    j++;
                }
            }
        }
    },
    setUpallAmenities: function()
    {
        var el1 = document.getElementById('amenitiesContainer');
        var allContainer = document.getElementById('allAmenitiesContainer');
        var helpEl = document.getElementById('filterHelp');
        if (el1 && allContainer) {
            var pos = Position.get(el1);
            allContainer.style.left = pos.left;
            allContainer.style.top = pos.top;
            if (JADE.iFrameShimRequired()) {
                iframeRef = JADE.createIframe('allAmenitiesShim');
                allContainer.style.zIndex = 99;
                iframeRef.style.left = JADE.getStyle(allContainer, 'left');
                iframeRef.style.top = JADE.getStyle(allContainer, 'top');
                iframeRef.style.width = parseInt(JADE.getStyle(allContainer, 'width')) + 5 + 'px';
                iframeRef.style.height = parseInt(JADE.getStyle(allContainer, 'height')) + 5 + 'px';
                iframeRef.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
                iframeRef.style.visibility = 'visible';
                iframeRef.style.zIndex = 0;
            }
            if (helpEl) {
                helpEl.style.left = parseInt(pos.left) + 150 + 'px'
                helpEl.style.top = parseInt(pos.top) + 20 + 'px';
            if (JADE.iFrameShimRequired()) {
                iframeRef2 = JADE.createIframe('filterHelpShim');
                helpEl.style.zIndex = 100;
                iframeRef2.style.left = JADE.getStyle(helpEl, 'left');
                iframeRef2.style.top = JADE.getStyle(helpEl, 'top');
                iframeRef2.style.width = parseInt(JADE.getStyle(helpEl, 'width')) + 5 + 'px';
                iframeRef2.style.height = parseInt(JADE.getStyle(helpEl, 'height')) + 5 + 'px';
                iframeRef2.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
                iframeRef2.style.visibility = 'visible';
                iframeRef2.style.zIndex = 1;
            }
            }
        }
    },
    closeAllAmenities: function()
    {
        var el = document.getElementById('allAmenitiesContainer');
        if (el) {
            el.style.display = 'none';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('allAmenitiesShim');
                if (iframeEl) {
                    iframeEl.visibility = 'hidden';
                    iframeEl.style.display = 'none';
                }
            }
        }
    },
    openAllAmenities: function()
    {
        var el = document.getElementById('allAmenitiesContainer');
        if (el) {
            el.style.display = 'block';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('allAmenitiesShim');
                if (iframeEl) {
                    iframeEl.visibility = 'visible';
                    iframeEl.style.display = 'block';
                }
            }
        }
    },
    toggleStars: function(el, value)
    {
        var valueArray = [];
        switch (value)
        {
        case 1:
            valueArray = [10, 15];
            break;
        case 2:
            valueArray = [20, 25];
            break;
        case 3:
            valueArray = [30, 35];
            break;
        case 4:
            valueArray = [40, 45];
            break;
        case 5:
            valueArray = [50];
            break;
        }
        if (el.parentNode.className == 'starOn') {
            el.parentNode.className = 'starOff';
            NIN.SearchResults.updateStars('subtract', valueArray);
        } else {
            el.parentNode.className = 'starOn';
            NIN.SearchResults.updateStars('add', valueArray);
        }
        NIN.SearchResults.Sort.processForm('Star Rating');
    },
    toggleSecretStay: function()
    {
        var el = document.getElementById('fShhImg');
        var checkEl = document.getElementById('fSecritStay');
        if (el) {
            if (el.className == 'shhhOn') {
                el.className = 'shhhOff';
                NIN.SearchResults.secretStayOnly = false;
                checkEl.checked = false;
            } else {
                el.className = 'shhhOn';
                NIN.SearchResults.secretStayOnly = true;
                checkEl.checked = true;
            }
        }
        NIN.SearchResults.Sort.processForm('Secret Stays');
    },
    toggleHotDeals: function()
    {
        var el = document.getElementById('fHotDealImg');
        var checkEl = document.getElementById('fHotDeal');
        if (el) {
            if (el.className == 'hotDealOn') {
                el.className = 'hotDealOff';
                NIN.SearchResults.hotDealOnly = false;
                checkEl.checked = false;
            } else {
                el.className = 'hotDealOn';
                NIN.SearchResults.hotDealOnly = true;
                checkEl.checked = true;
            }
        }
        NIN.SearchResults.Sort.processForm('Hot Deals');
    },
    setUpBusy: function()
    {
        var el1 = document.getElementById('filterContainer');
        var el2 = document.getElementById('filterBusy');
        NIN.SearchResults.busyEl = el2;
        if (el1 && el2) {
            var pos = Position.get(el1);
            var newLeft = pos.left + (pos.width / 2);
            el2.style.left = newLeft - (parseInt(JADE.getStyle(el2, 'width')) / 2) + 'px';
            el2.style.top = pos.top + 'px';
            if (JADE.iFrameShimRequired()) {
                iframeRef = JADE.createIframe('filterBusyShim');
                el2.style.zIndex = 1000;
                iframeRef.style.left = JADE.getStyle(el2, 'left');
                iframeRef.style.top = JADE.getStyle(el2, 'top');
                iframeRef.style.width = parseInt(JADE.getStyle(el2, 'width')) + 5 + 'px';
                iframeRef.style.height = parseInt(JADE.getStyle(el2, 'height')) + 5 + 'px';
                iframeRef.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
                iframeRef.style.visibility = 'visible';
                iframeRef.style.zIndex = 0;
            }
        }
    },
    showBusy: function()
    {
        var el = NIN.SearchResults.busyEl;
        if (!el) {
            var el = document.getElementById('filterBusy');
        }
        if (el) {
            el.style.display = 'block';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('filterBusyShim');
                if (iframeEl) {
                    iframeEl.visibility = 'visible';
                    iframeEl.style.display = 'block';
                }
            }
        }
        // 1 Second delay
        var busyTimer = window.setTimeout(function()
        {
            var el = document.getElementById('filterBusy');
            if (el) {
                el.style.display = 'none';
                if (JADE.iFrameShimRequired()) {
                    iframeEl = document.getElementById('filterBusyShim');
                    if (iframeEl) {
                        iframeEl.visibility = 'hidden';
                        iframeEl.style.display = 'none';
                    }
                }
            }
        }, 1000);
    },
    hideBusy: function()
    {
        var el = document.getElementById('filterBusy');
        if (el) {
            el.style.display = 'none';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('filterBusyShim');
                if (iframeEl) {
                    iframeEl.visibility = 'hidden';
                    iframeEl.style.display = 'none';
                }
            }
        }
    },
    amenitiesChange: function(fld, targetFld, showAmenities)
    {
        var el = document.getElementById(targetFld);
        if (el) {
            el.checked = fld.checked;
        }
        if (showAmenities && el.checked) {
            NIN.SearchResults.openAllAmenities();
        }
        NIN.SearchResults.Sort.processForm('Amenities');
    },
    priceChanged: function()
    {
        NIN.SearchResults.Sort.processForm('Min');   
        NIN.SearchResults.Sort.processForm('Max');
    },
    closeFilterHelp: function()
    {
        var el = document.getElementById('filterHelp');
        if (el) {
            el.style.display = 'none';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('filterHelpShim');
                if (iframeEl) {
                    iframeEl.visibility = 'hidden';
                    iframeEl.style.display = 'none';
                }
            }
        }
    },
    showFilterHelp: function()
    {
        var el = document.getElementById('filterHelp');
        if (el) {
            el.style.display = 'block';
            if (JADE.iFrameShimRequired()) {
                iframeEl = document.getElementById('filterHelpShim');
                if (iframeEl) {
                    iframeEl.visibility = 'visible';
                    iframeEl.style.display = 'block';
                }
            }
        }
    }
};

