var as_loading = '<p class="center" id="pse_as_loading"><img src="/modules/mod_pse/forms/images/results_loading.gif" height="48" width="48" alt="Loading..." /></p>';
$("#pse_as").before(as_loading);
var checkBoxEvent = new Array();
var radioEvent = new Array();
var selectEvent = new Array();
var myBv = parseInt($.browser.version);
var areaInfo;
var mapEvent = new Array();
var pseResults;

function clearSearch(exclude) {
    $("#pse_as_minprice").val("nomin");
    $("#pse_as_maxprice").val("nomax");
}

function greyCell(id, disabled) {
    $('#' + id + ', label[for="' + id + '"]').parent().toggleClass("disabled", disabled == 1);
}

function refSearch(ref) {
    if (ref.length >= 3) {
        $('#tab_ref #results').html(as_loading);
        $.get("/index.php?load=pse&action=search&dm=4", {
            ref: ref
        }, function (data) {
            $('#tab_ref #results').html(data).find('a').bind("click", function () {
                _gaq.push(['_trackEvent', 'Advanced Search', "Search By Reference", $(this).text()]);
                window.location = $(this).attr("href");
                return false;
            });
        });
    }
    else {
        $('#tab_ref #results').html("");
    }
}

function magicAdvSearch() {
    var qs = '/index.php?load=pse&action=countProps&view=1&' + $("#pse_qs").serialize();
    $(".pse_as_results").html('<img src="/media/images/general/quick_search_loading.gif" alt="..." width="43" height="11" />');
    $.get(qs, function (data) {
        $(".pse_as_results").html(data);
        pseResults = data;
        if (data == 0) {
            _gaq.push(['_trackEvent', 'Advanced Search', "No results", qs]);
        }
    });
}

function paintSearch() {
    function findNearest(includeLeft, includeRight, value, values) {
        var nearest = null;
        var diff = null;
        for (var i = 0; i < values.length; i++) {
            if ((includeLeft && values[i] <= value) || (includeRight && values[i] >= value)) {
                var newDiff = Math.abs(value - values[i]);
                if (diff == null || newDiff < diff) {
                    nearest = values[i];
                    diff = newDiff;
                }
            }
        }
        return nearest;
    }
    $('.counter').append('<span class="optioncount"></span>');
    $("#pse_as").append('<input type="hidden" name="ajax_enabled" value="1" />');
    $("#pse_as input:checkbox").checkBox().bind('checkBoxchange', function (e, ui) {
        var myLabel = $("label[for='" + $(this).attr("id") + "']").text();
        var checkedBefore = checkBoxEvent[$(this).attr("id") + '_checked'];
        var uncheckedBefore = checkBoxEvent[$(this).attr("id") + '_unchecked'];
        var myHeader = $(this).parents('.ui-accordion-content').prev('.counter').children('.optioncount');
        var myGroup = $(this).parents('.options').attr("rel");
        magicAdvSearch();
        if ($(this).is(':checked')) {
            _gaq.push(['_trackEvent', 'Advanced Search', "Option Selected", myLabel]);
        }
        else {
            _gaq.push(['_trackEvent', 'Advanced Search', "Option Deselected", myLabel]);
        }
        var myCount = $("table[rel='" + myGroup + "']").find('input:checkbox:checked').length;
        if (myCount == 0) {
            var myCountText = '';
        }
        else {
            var myCountText = myCount + ' selected';
        }
        myHeader.text(myCountText);
    })
    var au = $(".area_unit:checked").val();
    $("#pse_as_tabs").tabs({
        cookie: {
            name: 'pse_as_tabs',
            expires: 30,
            path: '/'
        }
    });
    var icons = {
        header: "ui-icon-circle-plus",
        headerSelected: "ui-icon-circle-minus"
    };
    $("#pse_as_rs").accordion({
        collapsible: false,
        autoHeight: false,
        icons: icons,
        navigation: true
    });
    $("#pse_as_area_tabs").tabs({
        cookie: {
            name: 'pse_as_area_tabs',
            expires: 30,
            path: '/'
        }
    });
    $(".rs").click(function () {
        $("#rs_tab").click();
        return false;
    });
    var m2_values = [0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300];
    var ft_values = [0, 65, 130, 195, 260, 325, 390, 455, 520, 585, 650, 715, 780, 845, 910, 975];
    var au_values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
    $("#pse_as select").bind("change", function () {
        var myLabel = $("label[for='" + $(this).attr("id") + "']").text();
        if ($(this).attr("id") != 'pse_as_order') {
            magicAdvSearch();
        }
        _gaq.push(['_trackEvent', 'Advanced Search', "Option Selected", myLabel]);
    });
    $("#pse_as input:radio").bind('change', function () {
        var myLabel = $("label[for='" + $(this).attr("id") + "']").text();
        var myClass = $(this).attr("class");
        if ($(this).attr("class") == 'area_unit') {
            var au = $(".area_unit:checked").val();
            if (au == 'm2') {
                $.each(m2_values, function (i, val) {
                    $("#pse_as_minarea option:eq(" + i + ")").val(val).text(val);
                });
            }
            else {
                $.each(ft_values, function (i, val) {
                    $("#pse_as_minarea option:eq(" + i + ")").val(val).text(val);
                });
            }
        }
        magicAdvSearch();
        _gaq.push(['_trackEvent', 'Advanced Search', "Option Selected", myClass + ": " + myLabel]);
    });
    $("#pse_submit").bind("click", function () {
											 
        if (pseResults == 0) {
            jAlert('<p>The criteria you have selected do not match any properties.</p><p>Please modify your selections and try again.</p>', 'Property Search');
            _gaq.push(['_trackEvent', 'Advanced Search', "No results (Go)", "Search attempted"]);
            return false;
        }
        else {
            _gaq.push(['_trackEvent', 'Advanced Search', "Go", "From new homepage search"]);
            $("#pse_qs").submit();
        }
    });
    $('.counter').each(function () {
        $(this).next('.ui-widget-content').find('table.options').attr("rel", $(this).find("a").attr("rel"));
    });
    $('.options').each(function () {
        var myGroup = $(this).attr("rel");
        var myCount = $("table[rel='" + myGroup + "']").find('input:checkbox:checked').length;
        var myHeader = $(this).parents('.ui-accordion-content').prev('.counter').children('.optioncount');
        if (myCount == 0) {
            var myCountText = '';
        }
        else {
            var myCountText = myCount + ' selected';
        }
        myHeader.text(myCountText);
    });
    $.getJSON("/index.php?load=pse&action=countPropsByArea", function (data) {
        $.each(data.areas, function (i, area) {
            $("#pse_as_area_tabs table.options label[for='a_" + area.ref + "']").attr({
                'lat': area.latitude,
                'long': area.longitude,
                'zoom': area.focus_zoom
            });
        });
        areaInfo = 1;
        $("#pse_as_area_tabs table.options label").each(function () {
            var areaName = $(this).text();
            var labelLink = $(this).attr("for");
            $(this).qtip({
                content: {
                    text: '<img src="http://maps.google.com/maps/api/staticmap?center=' + $(this).attr("lat") + ',' + $(this).attr("long") + '&zoom=' + ($(this).attr("zoom") - 2) + '&size=300x200&markers=color:0xC82B18|' + $(this).attr("lat") + ',' + $(this).attr("long") + '&sensor=false" width="300" height="200" />',
                    title: areaName,
                    button: 'Close'
                }, show: {
                    when: {
                        event: 'mouseover'
                    }
                }, hide: {
                    event: 'inactive'
                }, position: {
                    corner: {
                        target: 'topMiddle',
                        tooltip: 'bottomMiddle'
                    }, adjust: {
                        screen: true
                    }
                }, api: {
                    onShow: function () {
                        var seenBefore = mapEvent[labelLink + '_seen'];
                        if (seenBefore != 1) {
                            _gaq.push(['_trackEvent', 'Advanced Search', "View map", areaName]);
                            mapEvent[labelLink + '_seen'] = 1;
                        }
                    }
                }, style: {
                    width: {
                        max: 320
                    }, border: {
                        'width': 2,
                        'radius': 5,
                        'color': '#3b5b7c'
                    }, title: {
                        'background': '#3b5b7c',
                        'color': '#fff',
                        'font-size': '14px',
                        'font-weight': 'bold'
                    }, tip: true,
                    classes: {
                        content: 'map-tooltip'
                    }
                }
            });
        });
    });
    $('#tab_ref #pse_refsearch #ref').bind("keyup", function () {
        refSearch($(this).val());
    });
}
$(function () {
    $("#pse_as_loading").fadeOut("normal", function () {
        $("#pse_as").css("display", "block");
        paintSearch();
        magicAdvSearch();
    });
});
