function filterSelect(arr, selectId) {
    var sel = document.getElementById(selectId);
    if (sel) {
        var oneRemoved = false;
        do {
            oneRemoved = false;
            for (var i = 1; i < sel.options.length; i++) {
                if ($.inArray(sel.options[i].value, arr) == -1) {
                    sel.options[i] = null;
                    oneRemoved = true;
                    break;
                }
            }
        } while (oneRemoved);
    }
}

function FilterPage() {
    $("#clearFilter").click(function () {
        location.href = curLoc;
    });
    $("#doFilter").click( doFilter );
    $("#pageFilters select").change( doFilter );

    var filters = queryString("filters");
    if (filters != "false") {
        aFilters = filters.split(",");
        $(aFilters).each(function () {
            aFilter = this.split(":");
            if (document.getElementById(aFilter[0])) {
               for (var i = 0; i < document.getElementById(aFilter[0]).options.length; i++)
               {
                   if (document.getElementById(aFilter[0]).options[i].value == aFilter[1])
                   {
                       document.getElementById(aFilter[0]).selectedIndex = i;
                       break;
                   }
               }
            }
        });
    }

    var newPageObjects = new Array();

    // empty the attribute arrays
    genders = new Array();
    colors = new Array();
    sizes = new Array();
    styles = new Array();
    
    for (i = 0; i < PageObjects.length; i++) {
        var okToCopy = true;
        $("#pageFilters select").each(function () {
            if (this.selectedIndex != 0) {
                field = $(this).attr("field");
                if (typeof (PageObjects[i][field]) == 'object') {
                    if ($.inArray($(this).val(), PageObjects[i][field]) == -1) {
                        okToCopy = false;
                    }
                }
                else {
                     if (PageObjects[i][field] != $(this).val())
                         okToCopy = false;
                }
            }
        });
        if (okToCopy) {
            newPageObjects[newPageObjects.length] = PageObjects[i];
            for (var j = 0; j < PageObjects[i].gender.length; j++) {
                if ($.inArray(PageObjects[i].gender[j], genders) == -1) {
                    genders[genders.length] = PageObjects[i].gender[j];
                }
            }
            for (var j = 0; j < PageObjects[i].color.length; j++) {
                if ($.inArray(PageObjects[i].color[j], colors) == -1) {
                    colors[colors.length] = PageObjects[i].color[j];
                }
            }
            for (var j = 0; j < PageObjects[i].size.length; j++) {
                if ($.inArray(PageObjects[i].size[j], sizes) == -1) {
                    sizes[sizes.length] = PageObjects[i].size[j];
                }
            }
            for (var j = 0; j < PageObjects[i].style.length; j++) {
                if ($.inArray(PageObjects[i].style[j], styles) == -1) {
                    styles[styles.length] = PageObjects[i].style[j];
                }
            }
        }
    }
    PageObjects = newPageObjects;
    if (PageObjects.length > 0) {
        filterSelect(genders, "filterGender");
        filterSelect(styles, "filterStyle");
        filterSelect(colors, "filterColor");
        filterSelect(sizes, "filterSize");
    }
}


var lastSize = sizes.pop();
if (lastSize == "0-3 mo")
{
  var tmp = new Array( lastSize );
  sizes = tmp.concat(sizes);
}
else
{
  sizes.push(lastSize);
}

document.write("<div id=pageFilters><table border=0 cellpadding=0 cellspacing=0 align=center><tr><td>");
document.write("narrow by: ");
if (typeof (genders) != 'undefined' && genders.length > 0) {
    document.write("<select id=filterGender class=filter field=gender>");
    if (typeof(viewAllLabelGender)!='undefined')
      document.write("<option value=''>" + viewAllLabelGender + "</option>");
    else
      document.write("<option value=''>-- view boys & girls --</option>");
    for (var i = 0; i < genders.length; i++) {
        document.write('<option value="' + genders[i] + '">');
        document.write(genders[i]);
        document.write("</option>");
    }
    document.write("</select> ");
}

if (typeof (sizes) != 'undefined' && sizes.length > 0) {
    document.write("<select id=filterSize class=filter field=size>");
    document.write("<option value=''>-- view all sizes --</option>");
    for (var i = 0; i < sizes.length; i++) {
        document.write('<option value="' + sizes[i] + '">');
        document.write(sizes[i]);
        document.write("</option>");
    }
    document.write("</select> ");
}

if (typeof (styles) != 'undefined' && styles.length > 0) {
    document.write("<select id=filterStyle class=filter field=style>");
    document.write("<option value=''>-- view all styles --</option>");
    for (var i = 0; i < styles.length; i++) {
        document.write('<option value="' + styles[i] + '">');
        document.write(styles[i]);
        document.write("</option>");
    }
    document.write("</select> ");
}

if (typeof (colors) != 'undefined' && colors.length > 0) {
    document.write("<select id=filterColor class=filter field=color>");
    document.write("<option value=''>-- view all colors --</option>");
    for (var i = 0; i < colors.length; i++) {
        document.write('<option value="' + colors[i] + '">');
        document.write(colors[i]);
        document.write("</option>");
    }
    document.write("</select> ");
}
document.write("</td><td><input type=image id=clearFilter src=/lib/yhst-95832770774638/filter-reset.jpg></td>");
document.write("</tr></table></div>");

$(document).ready(function () {
    $(".pageNums a").click(function () {
        var href = $(this).attr("href").replace("\#pageFilters", "");
        var filters = "";
        $("#pageFilters select").each(function () {
            if (filters != "")
                filters += ",";
            filters += $(this).attr("id") + ":" + $(this).attr("value");
        });
        href += "&filters=" + filters + "#pageFilters";
        location.href = href;
        return (false);
    });
});

function doFilter()
{
  var filters = "";
  $("#pageFilters select").each(function () {
      if (filters != "")
          filters += ",";
      filters += $(this).attr("id") + ":" + $(this).val();
  });
  href = curLoc + "?filters=" + filters + "#pageFilters";
  location.href = href;
}



