function doFilter() {
    var name = jQuery("#name").val().toLowerCase();
    if (name === "*") {
        name = "";
    } else if (name.indexOf("*") === 0) {
        name = name.substring(1);
    } else if (name.indexOf("*") === name.length - 1) {
        name = name.substring(0, name.length - 1);
    }
    
    var pet = jQuery("#pet").attr("checked") ? "Yes" : "No";
    
    var count = 0;
    jQuery("#resultscontainer .resultItem").each( function() {
        if (jQuery(this).hasClass("firstrow") ||
            jQuery(this).attr("id") === "noresults") {
            return;
        }
        if (jQuery(this).children(".filterlistcol0").html().toLowerCase().indexOf(name, 0) > -1 &&
            jQuery(this).children(".filterlistcol1").html().indexOf(pet, 0) > -1) {
            jQuery(this).show();
            if (count % 2 === 0) {
                jQuery(this).addClass("oddRow");
            } else {
                jQuery(this).removeClass("oddRow");
            }
            count++;
        } else {
            jQuery(this).hide();
        }
    });
    
    if (count === 0) {
        jQuery("#noresults").show();
    } else {
        jQuery("#noresults").hide();
    }
    
    if (count === 1) {
        jQuery("#petcount").html(count + " Animal");
    }  else {
        jQuery("#petcount").html(count + " Animals");
    }
    
}

function doSearch() {
    var name = jQuery("#searchname").val().toLowerCase();
    if (name === "*") {
        name = "";
    } else if (name.indexOf("*") === 0) {
        name = name.substring(1);
    } else if (name.indexOf("*") === name.length - 1) {
        name = name.substring(0, name.length - 1);
    }
    
    var pet = jQuery("#searchpet").attr("checked") ? "Yes" : "No";
    if (jQuery("#searchboth").attr("checked")) {
        pet = "";
    }
    
    var count = 0;
    jQuery("#searchresultscontainer .resultItem").each( function() {
        if (jQuery(this).hasClass("firstrow") ||
            jQuery(this).attr("id") === "searchnoresults") {
            return;
        }
        if (jQuery(this).children(".filterlistcol0").html().toLowerCase().indexOf(name, 0) > -1 &&
            jQuery(this).children(".filterlistcol1").html().indexOf(pet, 0) > -1) {
            jQuery(this).show();
            if (count % 2 === 0) {
                jQuery(this).addClass("oddRow");
            } else {
                jQuery(this).removeClass("oddRow");
            }
            count++;
        } else {
            jQuery(this).hide();
        }
    });
    
    if (count === 0) {
        jQuery("#searchnoresults").show();
    } else {
        jQuery("#searchnoresults").hide();
    }
    
    if (count === 1) {
        jQuery("#searchpetcount").html(count + " Animal");
    }  else {
        jQuery("#searchpetcount").html(count + " Animals");
    }
    
    
    jQuery("#searchdialog").fadeOut(function() {
        jQuery("#searchresults").slideDown();
    });
}

function showSearch() {
    jQuery("#searchresults").slideUp(function() {
        jQuery("#searchdialog").fadeIn( function() {
            $("#searchname").focus();
        });
    });
}

jQuery(document).ready(function() {
    
    window.$ = jQuery;
    
    /*
     * I couldn't make wordpress stop editing the HTML to put 
     * these radio buttons on separate lines.  Hackito ergo sum.
     */
    jQuery("#radiooptions").html('<input class="radio" id="searchpet" name="pet" type="radio" /><label for="searchpet">Pet</label><input class="radio" id="searchwild" name="pet" type="radio" /><label for="searchwild">Wildlife</label><input class="radio" checked="true" id="searchboth" name="pet" type="radio" /><label for="searchboth">Both</label>');
    
    jQuery("#filterdialog").dialog({ 
        buttons: { "Cancel": function() { 
                       jQuery(this).dialog("close"); 
                       },
                   "OK": function() { 
                       doFilter();
                       jQuery(this).dialog("close"); 
                       } 
                 },
        autoOpen: false,
        width: 250,
        modal: true
    });
    
    jQuery("#filterbutton").click( function() {
        jQuery("#filterdialog").dialog("open");
    });
    
    jQuery("#name").keyup( function(e) {
        if(e.keyCode == 13) {
            doFilter();
            jQuery("#filterdialog").dialog("close"); 
        }
    });
    
    
    
    jQuery("#dosearch").click( function() {
        doSearch();
        return false;
    });
    
    jQuery("#searchbutton").click( function() {
        showSearch();
        return false;
    });
    
    jQuery("#searchname").keyup( function(e) {
        if(e.keyCode == 13) {
            doSearch();
        }
    });
    
    doFilter();
});
