$(document).ready(function()
{
    $("a.switch").each(
        function(i) {
            var $this = $(this);
            $this.click(
                function (e) {
                    e.preventDefault();
                    switchItem(this, 'searchbar-switch');
                }
            );
        }
    );
    
    $("a.a-checkbox").each(
        function(i) {
            var $this = $(this);
            $this.click(
                function (e) {
                    e.preventDefault();
                    selectItem(this, 'searchbar-checkbox');
                }
            );
        }
    );
    
    $("a.a-checkbox2").each(
        function(i) {
            var $this = $(this);
            $this.click(
                function (e) {
                    e.preventDefault();
                    selectItem(this, 'searchbar-checkbox2');      
                }
            );
        }
    );
    
    $("#a-advsearch-switch").click(
        function (e) {
            e.preventDefault();
            selectItem(this, 'searchbar-switch');
            
            var $advanced_search = $("#advanced-search");
            if ($advanced_search.hasClass('element-hidden')) {
                $advanced_search.removeClass('element-hidden');
            } else {
                $advanced_search.addClass('element-hidden');
            }
            
            //$.get(script_url + '?rm=ajax_advanced_search');
        }
    )
    
    $("#a-advsearch-close").click(
        function (e) {
            e.preventDefault();
            $("#a-advsearch-switch").click();
        }
    )
    
    $("#filter-street").keyup(
        function () { return comboboxKeyUpHandler($(this), streets, "value"); }
    );
    
    $("#sale-type").click(
        function() {
            $(".rent-type").addClass('element-hidden');
            $(".exchange-type").addClass('element-hidden');
            $(".sale-type").removeClass('element-hidden');
            
            $(".building").removeClass('element-hidden-v');
        }
    );
    
    $("#rent-type").click(
        function() {
            $(".sale-type").addClass('element-hidden');
            $(".exchange-type").addClass('element-hidden');
            $(".rent-type").removeClass('element-hidden');
            
            $(".building").addClass('element-hidden-v');
        }
    );
    
    $("#exchange-type").click(
        function() {
            $(".rent-type").addClass('element-hidden');
            $(".sale-type").addClass('element-hidden');
            $(".exchange-type").removeClass('element-hidden');
            
            $(".building").removeClass('element-hidden-v');
        }
    );
    
    $(".tomsk").click(
        function() {
            var $this             = $(this);
            var $street_container = $('#street-container');
            
            if ($this.hasClass('searchbar-checkbox2-active')) {
                active_tomsk++;
                active_elements++;    
            } else {
                active_tomsk--;
                active_elements--;
            }

            if (active_tomsk > 0) {
                $street_container.removeClass('element-hidden');
            } else {
                $street_container.addClass('element-hidden');
            }
            
            if (active_elements > 0) {
                $('.advanced-info').removeClass('element-hidden');
            } else {
                $('.advanced-info').addClass('element-hidden');
            }
        }
    );
    
    $(".suburb").click(
        function() {
            var $this             = $(this);
            var $route_container  = $('#route-container');
            var $suburb_container = $('#suburb-container');
            
            if ($this.hasClass('searchbar-checkbox2-active')) {
                $suburb_container.removeClass('element-hidden');
                $route_container.removeClass('element-hidden'); 
                
                active_elements++;   
            } else {
                $suburb_container.addClass('element-hidden');
                $route_container.addClass('element-hidden');
                
                active_elements--;
            }
            
            if (active_elements > 0) {
                $('.advanced-info').removeClass('element-hidden');
            } else {
                $('.advanced-info').addClass('element-hidden');
            }
        }
    );
    
    $(".foreign").click(
        function() {
            var $this              = $(this);
            var $foreign_container = $('#foreign-container');
            
            if ($this.hasClass('searchbar-checkbox2-active')) {
                $foreign_container.removeClass('element-hidden');
                
                active_elements++;
            } else {
                $foreign_container.addClass('element-hidden');
                
                active_elements--;
            }
            
            if (active_elements > 0) {
                $('.advanced-info').removeClass('element-hidden');
            } else {
                $('.advanced-info').addClass('element-hidden');
            }
        }
    );
    
    $("#direction-box").find('input:checkbox').click(
        function () {
            selectSuburbs()
        }
    );
});

function selectItem(a, a_class)
{
    var $a  = $(a);
    var val = 0;
                    
    if ($a.hasClass(a_class + '-active')) {
        $a.removeClass(a_class + '-active');
        $a.addClass(a_class);
        val = 0;
    } else {
        $a.removeClass(a_class);
        $a.addClass(a_class + '-active');
        val = 1;
    }
 
    $a.find('input').attr('value', val);
    $a.blur();
}

function switchItem(a, a_class)
{
    var $a = $(a);

    $a.parent().find('a.' + a_class + '-active').each(
        function(i) {
            var $this = $(this);
            if ($this.hasClass(a_class + '-active')) {
                $this.removeClass(a_class + '-active');
                $this.addClass(a_class);
            }
            
            $this.find('input').attr('value', 0);
        }
    );
    
    $a.removeClass(a_class);
    $a.addClass(a_class + '-active');
                    
    $a.find('input').attr('value', 1);
    $a.blur();
}

function selectSuburbs()
{    
    var minDistance = parseInt($("#distance-min").val());
    var maxDistance = parseInt($("#distance-max").val());
  
    var directions = new Array();
    $("#direction-box").find('input:checked').each(
        function (i) {
            elementId = $(this).val();
            directions[elementId] = elementId;
        }
    );

    $('#suburb-box').find("input:checked").removeAttr('checked');
      
    if (minDistance) parseInt(minDistance); else minDistance = 0;
    if (!maxDistance || maxDistance == 0) maxDistance = 99999; else maxDistance = parseInt(maxDistance);
  
    if (directions.length) {
        for (direction in directions) {
            for (suburb in suburbs) {
                if ((suburbs[suburb].route_id == direction)) {
                    if ((suburbs[suburb].distance >= minDistance) && (suburbs[suburb].distance <= maxDistance)) {
                        $('#suburb-box').find("input[value=" + suburb + "]").attr('checked','checked');
                    }  
                }
            }
        }
    } else {
        if ((minDistance > 0) || (maxDistance < 99999)) {
            for (suburb in suburbs) {
                if ((suburbs[suburb].distance >= minDistance) && (suburbs[suburb].distance <= maxDistance)) {
                    $('#suburb-box').find("input[value="+suburb+"]").attr('checked','checked');
                }
            } 
        }
    }      
}
