solr = {

    lastupdate: [],
    pe: [],
    sellersrequiresupdate: false,

    init: function() {
        solr.refresh();
        if (solr.address_parameters()) {
            solr.update(solr.address_parameters());
        }
    },

    bindEvents: function() {
        $("#facets_form input:submit").css("display", "none");
        $("#facets_form input:checkbox[value=all]").click(solr.checkbox_all_click);
        $("#facets_form input:checkbox[value!=all]")
            .click(solr.checkbox_click)
            .parent("li")
            .click(solr.li_click);
        $("#searchresults a[href*=/search/]").click(solr.links_click);
        $("#searchresults a[href*=boat-]").click(solr.links_adverts_click);
    },

    refresh: function() {
        solr.bindEvents();
        $(".thumbnail img").vAlign({parentSelector: "div"});
        //searchresults.refresh();
    },

    params_from_link: function(el) {
        if (el.href.indexOf("?") === -1) return;
        return el.href.split(/\?/)[1];
    },

    links_click: function(ev) {
        var el = $(ev.target);
        var params = solr.params_from_link(el);
        if (el.attr("href").match(/sellersprofile=(\d+)/)) {
            solr.sellersrequiresupdate=true;
        }
        if (params) {
            solr.update(params);
            ev.stopPropagation();
        }
    },

    checkbox_all_click: function(ev) {
        var el = $(ev.target);
        var i=0;
        while(i++<4) { el = $(el.parentNode); }

        el.children("input [value!=all]").attr("checked", "");
        solr.sellersrequiresupdate = true;
        solr.update(solr.form_parameters());
    },

    links_adverts_click: function(ev) {
        var el = $(ev.target);
        var advert_id = el.href.match(/\/(\d+)\//)[1];
        $("#advert_id").val(advert_id);
        solr.update_address(solr.form_parameters());
        ev.stopPropagation();
    },

    get_advert_id: function() {
        var params = solr.address_parameters();
        if (params.indexOf("advert_id") !== -1) {
            var advert_id = params.match(/advert_id=(\d+)/)[1]
            return advert_id;
        }
        return false;
    },

    checkbox_click: function(ev) {
        $("#page_no").val("1");
        solr.sellersrequiresupdate = true;
        var el = $(ev.target);
        solr.update(solr.form_parameters());
        ev.stopPropagation();
    },

    li_click: function(ev) {
        var t = $(ev.target);
        if (!t.is("li"))
            t = t.closest("li");

        var input = $("input", t)[0];
        input.checked = (input.checked) ? "" : "checked";
        solr.sellersrequiresupdate = true;
        solr.update(solr.form_parameters());
        ev.stopPropagation();
    },

    form_parameters: function() {
        return $("#facets_form input").serialize();
    },

    address_parameters: function() {
        return (location.href.indexOf("#") === -1) ? false : location.href.split(/#/)[1] ;
    },

    updated: function() {
        solr.refresh();
        var oneemailtoall_url = "/oneemailtoall.php?" + solr.address_parameters();
        if (solr.sellersrequiresupdate) {
            $("#oneemailtoall_container").load(oneemailtoall_url, null, members_bind_events);
            solr.sellersrequiresupdate = false;
        }
        //refresh_verticalalign();
        var advert_id = solr.get_advert_id();
        if (advert_id) {
            var zcard = $("advert_" + advert_id);
            if (zcard) {
                zcard.scrollTo();
            }
        }
    },

    update_address: function(params) {
        if (!solr.address_parameters()) {
            location.href += "#" + params;
        } else {
            var newhref = location.href.split("#");
            location.href = newhref[0] + "#" + params;
        }
        return params;
    },

    update: function(params) {
        //$("#greysection")[0].scrollTo();
        solr.update_address(params);
        $("#facets_form input:checkbox[checked!=checked]").attr("disabled", "disabled");

        $("#zcardcontainer").innerHTML="<div style='width:433px;text-align:center;padding:150px 0px 150px 0px;'><div style='margin:0 auto;'><img src='/images/loading.gif'/><div style='color:#204DA6;margin-top:20px;'>Updating Search Results...</div></div></div>";
        if (solr.sellersrequiresupdate) {
            if ($("#oneemailtoall_members")[0]) {
                $("#oneemailtoall_members")[0].parentNode.innerHTML="<div style='width:220px;text-align:center;padding:50px 0px 0px 0px;'><div style='width:50px;margin:0 auto;text-align:center;'><img src='/images/loading.gif'/><div style='color:#204DA6;margin-top:20px;'>Updating...</div></div></div>";
            }
        }
        $("#searchresults").load("/search_callback.php", params, solr.updated);
    }
};
$(window).bind('load', solr.init);
