var 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.match(/advert_id=(\d+)/)) {
            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);
$(window).bind('load',function() {
members_bind_events();
});

function members_bind_events() {
    //dv.init();
    if (!$("#oneemailtoall_members li")) return false;
    $("#oneemailtoall_members li input").bind('click', function(ev) {
        el = $(ev.target);
        el.attr("checked", (el.attr("checked") ? "" : "checked"))
    });
    $("#oneemailtoall_members li").bind('click', function(ev) {
       var list_el = $($(ev.target)[0]);

       if (list_el.nodeName != "LI")
            list_el = list_el.closest("li");

       var checkbox = list_el.find("input");

       if (checkbox.attr("checked")) {
            checkbox.attr("checked", "");
            list_el.removeClass("selected");
       } else {
            checkbox.attr("checked", "checked");
            list_el.addClass("selected");
       }
       update_count();
    });
    return true;
};

function form_validate() {
    var inputs = $("#oneemailtoall_form input[validation]");
    for (var i=0; i<inputs.length; i++) {
        if (!inputs[i].value) return false;
    }
    return true;
}

function selectall() {
    $("#oneemailtoall_members li").addClass("selected"); 
    $("#oneemailtoall_members li input").attr("checked", "checked"); 
    update_count();
}

function deselectall() {
    $("#oneemailtoall_members li").removeClass("selected"); 
    $("#oneemailtoall_members li input").attr("checked", ""); 
    update_count();
}

function update_count() {
   var i = $("#oneemailtoall_members li input:checked").length;
   $("#mcount").text(i);
   return i;
}

function submitform() {
    if (update_count() <= 0) {
        alert("Please select one or more recipients");
        return false;
    }
    if (!form_validate()) {
        alert("Please complete all required fields");
        return false;
    }
    $("#oneemailtoall_submit").attr({value: "Sending", disabled: "disabled"});
    $.get("/oneemailtoall.callback.php", $("#oneemailtoall_form input, #oneemailtoall_form textarea").serialize(), function() {
        $("#oneemailtoall_confirm").css("display", 'block');
        //Effect.Fade($("oneemailtoall_confirm"),{duration:5.0});
        deselectall();
        $("#oneemailtoall_submit").attr({disabled: "", value: "Send"});
    });
}

