var productsPerPage = 10;
var loading = false;
var refineContainerCollapsed = false;
var storedResult;
var untickedImage = "images/cross.gif";
var tickedImage = "images/tick.gif";
var maxPageNumbers = 9;
var numberOfRows = 6;
var numberOfBrandColumns;
var columnCount;
var longBrandList = "";
var longBrandListExists = false;
var longBrandListVisible = false;
var maxDescriptionLength = 500;

function RequestNewProductList(firstResultNumber)
{
    var ds = new Ajax.Web.DataSet();
    var dt = new Ajax.Web.DataTable();
    
    dt.addColumn("attributeName", "System.String");
	dt.addColumn("value", "System.String");
    
    var j, i;
    if (allChecked == false)
    {        
        for(i=0; i<brandCount; i++)
        {
            if (brands[i][3] == "true")
            {
                dt.addRow({"attributeName":"Brand","value":"" + brands[i][0]});
            }
        }
        
    }
    var currentAttributeName;
    
    for(j = 0; j < attributeCount ; j++)
    {
        currentAttributeName = attributesParameters[j]
        if (attributesAllChecked[j] == false)
        {
            
            for (i=0; i < attributeTypeCount[j]; i++)
            {
                if (attributes[j][i][2] == "true")
                {
                    dt.addRow({"attributeName":currentAttributeName,"value":attributes[j][i][1]});
                }
                
            }  
            
        }
    }
    ds.addTable(dt);
    //AJAX Call
    var requestString = GenerateRequestString(firstResultNumber);
    SetSearchCookie(requestString);
    loading = true;
    FadeResults();
    ProductSearch.RequestProductList(ds, productsPerPage, firstResultNumber, categoryId, freeform, sortOrderBy, sortAscending, RequestProductList_callback);
}

function RequestProductList_callback(result)
{
    loading = false;
    if (fading == false)
    {
        ProcessProductList(result);
        UnfadeResults();
    }
    else
    {
        storedResult = result;
    }
}

function DisplayFilterProducts()
{
    if (firstLoad == true)
    {
        firstLoad = false;
        
        if (cookieRestored == false)
        {
            var value = GetSearchCookie();
            if ((value != null) && (value != ""))
            {
                if (SetCookiedSearchParameters(value))
                {
                    RequestNewProductList(firstResult);
                }
            }
        }
        
        SetSearchCookie("");
        
        if (freeform != "")
        {
            var searchBox = document.getElementById("freeform");
            if (searchBox != null)
            {
                searchBox.value = freeform;    
            }
        }
        
    }

    var refineContainerDiv = document.getElementById("refinecontainer");
    var divWidth = refineContainerDiv.offsetWidth;

    columnCount = parseInt((divWidth-8)/130);
    numberOfBrandColumns = columnCount - attributeCount;

    if (numberOfBrandColumns < 1)
    {
        numberOfBrandColumns = 1;
    }
        
    
    refineContainerDiv.innerHTML = "" + GenerateShortBrandList() + GenerateAttributes();
}

function FilterProductsResized()
{
    
    var refineContainerDiv = document.getElementById("refinecontainer");

    var divWidth = refineContainerDiv.offsetWidth;
    
    //filtercontracted

    //SetCollapsedFilterProductsSize();
    var newColumnCount = parseInt((divWidth-8)/130);
    if (columnCount != newColumnCount)
    {
        DisplayFilterProducts();
    }
    SetCollapsedFilterProductsSize();
}

function SetCollapsedFilterProductsSize()
{
    if (refineContainerCollapsed == true)
    {
        var refineContainerDiv = document.getElementById("refinecontainer");
        var divWidth = refineContainerDiv.offsetWidth;
        var filterContracted = document.getElementById("filtercontracted");
        filterContracted.style.width = divWidth + "px"; 
        var filterTabTextWidth = divWidth-215;
        var filterTabText = document.getElementById("filtertabtext");
        filterTabText.style.width = filterTabTextWidth + "px";
    }
}

function FillCollapsedFilterProducts()
{
    var collapsedContainerDiv = document.getElementById("filtertabtext");
    var contents = GenerateCollapsedBrands();
    contents = contents  + GenerateCollapsedAttributes();
    if (contents.length > 0)
    {
        contents = "<span style=\"float:left;font-size:10px;margin-top:1px;\">Now Showing:</span>" + contents;
    }
    else
    {
        contents = "";
    }    
    collapsedContainerDiv.innerHTML = contents;
    
    SetCollapsedFilterProductsSize();

 }

function GenerateCollapsedAttributes()
{
    
    var i,j;
    i=0;
    j=0;
    var divContents = "";
    var numberOfItemsInCurrentColumn = 0;
    for(j = 0; j < attributeCount ; j++)
    {
        for (i=0; i < attributeTypeCount[j]; i++)
        {
            if (attributes[j][i][2] == "true")
            {
                divContents = divContents + "<div id=\"collapsedcheckbox+" + j + "+Attribute+" + i + "\" name=\"collapsedcheckboxtext+" + j + "+Attribute+" + i + "\" class=\"collapsedText\" onmouseover=\"CollapsedCheckBoxMouseOver(this);\" onmouseout=\"CollapsedCheckBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                            + "<img id=\"collapsedcheckbox+" + j + "+Attribute+" + i + "+Image\" src=\"images/checkbox-contracted.gif\" alt=\"" + attributes[j][i][0] + "\"></img>" + attributes[j][i][0] + "</div>";
            }
        }//
    }
    return (divContents);
}

function GenerateCollapsedBrands()
{
    
    var divContents = "";
    var i;

    for(i=0; i < brandCount; i++)
    {
        if (brands[i][3] == "true")
        {
            divContents = divContents + "<div id=\"collapsedcheckbox+Brand+" + brands[i][0] + "\" name=\"collapsedcheckbox+Brand+" + brands[i][0] + "\" class=\"collapsedText\" onmouseover=\"CollapsedCheckBoxMouseOver(this);\" onmouseout=\"CollapsedCheckBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"collapsedcheckbox+Brand+" + brands[i][0] + "+Image\" src=\"images/checkbox-contracted.gif\" alt=\"" + brands[i][1] + "\"></img>" + brands[i][1] + "</div>";
        }
    }

    return (divContents);
}

function GenerateAttributes()
{
    var i,j;
    i=0;
    j=0;
    var selectedString = "false";
    var allSelected;
    var columnClosed = true;
    var divContents = "";
    var numberOfItemsInCurrentColumn = 0;
/*
    var tmpCount = features.length;
    divContents = divContents + "<div class=\"attributeplustitle\">";
    divContents = divContents + "<span class=\"atttitle\">Features</span><br />";   
    
    for(p = 0; p < tmpCount; p++)
    {
            divContents = divContents + "<span class=\"checkboxtext\" id=\"checkbox+" + p + "+Attribute+" +features[p][0]+ "\" name=\"checkbox+" + features[p][0] + "+Attribute+" + features[p][0] + "\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"checkbox+" + features[p][0] + "+Attribute+" + features[p][0] + "+Image\" src=\"http://localhost:2649/RealTimeStockSite/images/cross.gif\" alt=\"bob.gif\"></img>&nbsp;" + features[p][0] + "</span><br />";    
    }
        divContents = divContents + "</div>";
*/
    var sb = new StringBuilder(divContents);
    for(j = 0; j < attributeCount ; j++)
    {
        numberOfItemsInCurrentColumn = 0;
        sb.append("<div class=\"attributeplustitle\">");
        sb.append("<span class=\"atttitle\">");
        sb.append(attributesNames[j]);
        sb.append("</span><br />");
        if (attributesNames[j] != "Other Features")
        {
            //divContents = divContents + "<div class=\"attributeplustitle\">";
            //divContents = divContents + "<span class=\"atttitle\">" + attributesNames[j] + "</span><br />";
            allSelected = untickedImage;
            if (attributesAllChecked[j] == true)
            {
                allSelected = tickedImage;
            }
            sb.append("<span class=\"checkboxtext\" id=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+All\" name=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+All\"  onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\"><img id=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+All+Image\" src=\"");
            sb.append(allSelected);
            sb.append("\" alt=\"All\" />&nbsp;<strong>All ");
            sb.append( attributesNames[j]);
            sb.append("s</strong></span><br />");
        }
        //divContents = divContents + "<span class=\"checkboxtext\" id=\"checkbox+" + j + "+Attribute+All\" name=\"checkbox+" + j + "+Attribute+All\"  onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
         //                         + "<img id=\"checkbox+" + j + "+Attribute+All+Image\" src=\"" + allSelected + "\" alt=\"All\" />&nbsp;<strong>All " + attributesNames[j] + "s</strong></span><br />";
        columnClosed = false;
        numberOfItemsInCurrentColumn++;
        
        for (i=0; i < attributeTypeCount[j]; i++)
        {

            if (numberOfItemsInCurrentColumn == 0)
            {
                sb.append("<div class=\"attribute\">");
                //divContents = divContents + "<div class=\"attribute\">";
            }
            selectedString = untickedImage;
            if (attributes[j][i][2] == "true")
            {
                selectedString = tickedImage;
            }
            
            sb.append("<span class=\"checkboxtext\" id=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+");
            sb.append(i);
            sb.append("\" name=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+");
            sb.append(i);
            sb.append("\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">\n<img id=\"checkbox+");
            sb.append(j);
            sb.append("+Attribute+");
            sb.append(i)
            sb.append("+Image\" src=\"");
            sb.append(selectedString);
            sb.append("\" alt=\"");
            sb.append(attributes[j][i][0]);
            sb.append( "\"></img>&nbsp;");
            sb.append(attributes[j][i][0]);
            sb.append("</span><br />");

            //divContents = divContents + "<span class=\"checkboxtext\" id=\"checkbox+" + j + "+Attribute+" + i + "\" name=\"checkbox+" + j + "+Attribute+" + i + "\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
            //                          + "<img id=\"checkbox+" + j + "+Attribute+" + i + "+Image\" src=\"" + selectedString + "\" alt=\"" + attributes[j][i][0] + "\"></img>&nbsp;" + attributes[j][i][0] + "</span><br />";

            columnClosed = false;

        
            numberOfItemsInCurrentColumn++;
            if (numberOfItemsInCurrentColumn > numberOfRows-1)
            {
                numberOfItemsInCurrentColumn = 0;
                sb.append("</div>");
                //divContents = divContents + "</div>";
                columnClosed = true;
            }
        }
        if (columnClosed == false)
        {
            sb.append("</div>");
            //divContents = divContents + "</div>";
        }
    }
    return (sb.toString());//(divContents);
}

function GenerateShortBrandList()
{
    var numberOfBrandsToShow = (numberOfRows * numberOfBrandColumns) - 1;
    var listAllButton = "";
    if (brandCount > numberOfBrandsToShow)
    {
        longBrandListExists = true;
        GenerateLongBrandList();
        listAllButton = "<a style=\"cursor: pointer;cursor: hand;\" onClick=\"SetScrollerDisplay('brandScroller');return;\">[List All]</a>";
    }
    else
    {
        longBrandListExists = false;
        numberOfBrandsToShow = brandCount;
    }
    SortBrandList(numberOfBrandsToShow);
    var selectedString = "false";
    var allSelected;
    var columnClosed = true;
    var divContents = "";
    var contractedDivContents = "";
    var i;
    var numberOfItemsInCurrentColumn = 0;

    var sb = new StringBuilder();
    for(i=-1; i < numberOfBrandsToShow; i++)
    {
        if (i == -1)
        {
        
            allSelected = untickedImage;
            if (allChecked == true)
            {
                allSelected = tickedImage;
            }
            sb.append("<div class=\"attributeplustitle\"><span class=\"atttitle\">Brand</span>&nbsp;");
            sb.append(listAllButton);
            sb.append("<br />");
            sb.append(longBrandList);
            sb.append("<span class=\"checkboxtext\" id=\"checkbox+Brand+All\" name=\"checkbox+Brand+All\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\"><img id=\"checkbox+Brand+All+Image\" src=\"");
            sb.append(allSelected);
            sb.append("\" alt=\"All\" />&nbsp;<strong>All Brands</strong></span><br />");
            
            /*
            divContents = divContents + "<div class=\"attributeplustitle\">";
            divContents = divContents + "<span class=\"atttitle\">Brand</span>&nbsp;" + listAllButton + "<br />";
            divContents = divContents + longBrandList;
            divContents = divContents + "<span class=\"checkboxtext\" id=\"checkbox+Brand+All\" name=\"checkbox+Brand+All\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"checkbox+Brand+All+Image\" src=\"" + allSelected + "\" alt=\"All\" />&nbsp;<strong>All Brands</strong></span><br />";
            */

            columnClosed = false;
        }
        else
        {
            if (numberOfItemsInCurrentColumn == 0)
            {
                sb.append("<div class=\"attribute\">");
                //divContents = divContents + "<div class=\"attribute\">";
            }
            selectedString = untickedImage;
            if (brands[i][3] == "true")
            {
                selectedString = tickedImage;
            }
            sb.append("<span class=\"checkboxtext\" id=\"checkbox+Brand+");
            sb.append(brands[i][0]);
            sb.append("\" name=\"checkbox+Brand+");
            sb.append(brands[i][0]);
            sb.append("\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\"><img id=\"checkbox+Brand+");
            sb.append(brands[i][0]);
            sb.append("+Image\" src=\"");
            sb.append(selectedString);
            sb.append("\" alt=\"");
            sb.append(brands[i][1]);
            sb.append("\"></img>&nbsp;");
            sb.append(brands[i][1]);
            sb.append("</span><br />");
            /*
            divContents = divContents + "<span class=\"checkboxtext\" id=\"checkbox+Brand+" + brands[i][0] + "\" name=\"checkbox+Brand+" + brands[i][0] + "\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"checkbox+Brand+" + brands[i][0] + "+Image\" src=\"" + selectedString + "\" alt=\"" + brands[i][1] + "\"></img>&nbsp;" + brands[i][1] + "</span><br />";
            */
            columnClosed = false;

        }
        numberOfItemsInCurrentColumn++;
        if (numberOfItemsInCurrentColumn > numberOfRows-1)
        {
            numberOfItemsInCurrentColumn = 0;
            sb.append("</div>");
            //divContents = divContents + "</div>";
            columnClosed = true;
        }
    }
    //var contractedDiv = document.getElementById("filtertabtext"); 
    //contractedDiv.innerHTML = contractedDivContents;
  
    if (columnClosed == false)
    {
        sb.append("</div>");
        //divContents = divContents + "</div>";
    }

    return (sb.toString());//(divContents);
}

function GenerateLongBrandList()
{
    var allSelected;
    var selectedString = "false";
    AlphabetiseBrands(-1);
    allSelected = untickedImage;
    if (allChecked == true)
    {
        allSelected = tickedImage;
    }
    var scrollerClass = "listallhidden";
    if (longBrandListVisible == true)
    {
        scrollerClass = "listallvisible";
    }
    
    longBrandList = "";
    
    
    
    //longBrandList = longBrandList + "<div class=\"attribute\"><strong>Brand</strong>";
    longBrandList = longBrandList + "<div id=\"brandScroller\" class=\"" + scrollerClass + "\">"
                                  + "<a onClick=\"SetScrollerDisplay('brandScroller');return;\"><img src=\"images/listall/icn-cross.gif\" class=\"listallclosebutton\" /></a>"
	                              + "<div class=\"listallinner\">";

    longBrandList = longBrandList + "<span class=\"checkboxtext\" id=\"checkbox+BrandLong+All\" name=\"checkbox+BrandLong+All\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"checkbox+BrandLong+All+Image\" src=\"" + allSelected + "\" alt=\"All\" />&nbsp;<strong>All Brands</strong></span><br />";
    for(i=0; i < brandCount; i++)
    {
        selectedString = untickedImage;
        if (brands[i][3] == "true")
        {
            selectedString = tickedImage;
        }
        longBrandList = longBrandList + "<span class=\"checkboxtext\" id=\"checkbox+BrandLong+" + brands[i][0] + "\" name=\"checkbox+BrandLong+" + brands[i][0] + "\" onmouseover=\"checkBoxMouseOver(this);\"  onmouseout=\"checkBoxMouseOut(this);\" onclick=\"checkBoxOnClick(this);\">"
                                      + "<img id=\"checkbox+BrandLong+" + brands[i][0] + "+Image\" src=\"" + selectedString + "\" alt=\"" + brands[i][1] + "\"></img>&nbsp;" + brands[i][1] + "</span><br />";
    }

    longBrandList = longBrandList + "</div></div>";
                        
    
}



function SortBrandList(numberToShow)
{
    var orderChanged = false;
    
    var i;
    if (numberToShow > brandCount)
    {
        numberToShow = brandCount;
    }
    

    
    i=0;
    
    if (brandCount>1)
    {
        var swapPerformed = true;
        
        while (swapPerformed == true)
        {
            
            swapPerformed = false;
            for(i=0; i < brandCount-1; i++)
            {   
                if (brands[i+1][3] == "true")
                {
                    if (brands[i][3] == "false")
                    {
                        SwapBrands(i);
                        swapPerformed = true;
                        orderChanged = true;
                    }
                    else if ((parseInt(brands[i+1][2])) > (parseInt(brands[i][2])))
                    {
                        SwapBrands(i);
                        swapPerformed = true;
                        orderChanged = true;
                    }
                }
                else
                {
                    if ((brands[i][3] == "false") && ((parseInt(brands[i+1][2])) > (parseInt(brands[i][2]))))
                    {
                        SwapBrands(i);
                        swapPerformed = true;
                        orderChanged = true;
                    }
                }
            }
        }
        AlphabetiseBrands(numberToShow);
    }
}

function AlphabetiseBrands(numberToShow)
{
    
    var i;
    if (numberToShow > brandCount)
    {
        numberToShow = brandCount;
    }
    else if (numberToShow == -1)
    {
        numberToShow = brandCount;
    
    }
    i=0;
    var swapPerformed = true;
    while (swapPerformed == true)
    {
        swapPerformed = false;
        for(i=0; i < numberToShow-1; i++)
        {   
            if (brands[i][1] > brands[i+1][1])
            {
                SwapBrands(i);
                swapPerformed = true;
            }
        }
    } 
}


function SwapBrands(position)
{
    var tempBrand = brands[position];
    brands[position] = brands[position+1];
    brands[position+1] = tempBrand;

}

function BuildTwoDimensionalArray(sizeOfFirst, sizeOfSecond)
{
    var newArray = [sizeOfFirst];
    var i,j;
    for (i=0; i < sizeOfFirst; i++)
    {
        newArray[i] = [sizeOfSecond];
        for (j=0; j < sizeOfSecond; j++)
        {
            newArray[i][j] = "";
        }
    }
    
    return (newArray);
}

function BuildThreeDimensionalArray(sizeOfFirst, sizeOfSecond, sizeOfThird)
{
    
    var newArray = [sizeOfFirst];
    var i,j,k;
    for (i=0; i < sizeOfFirst; i++)
    {
        newArray[i] = [sizeOfSecond];
        for (j=0; j < sizeOfSecond; j++)
        {
            newArray[i][j] = [sizeOfThird];
            for (k=0; k < sizeOfThird; k++)
            {
                newArray[i][j][k] = "";
            }
        }
    }
    return (newArray);

}

function NothingSelected()
{
    var i=0;
    var nothingSelected = true;
    nothingSelected = allChecked;
    
    while((i < attributeCount) && (nothingSelected == true))
    {
        nothingSelected = attributesAllChecked[i];
        i++;
    }
    
    return nothingSelected;
}

function AllAttributesSetToFalse()
{
    var i=0;
    var found = false;
    while((i < attributeCount) && (found == false))
    {
        if (AllItemsOfAttributeSetToFalse(i) == false)
        {
            found = true;
        }
       else
        {
            i++;
        }
    }
    if (found == true)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function AllItemsOfAttributeSetToFalse(attributeId)
{
    var i=0;
    var found = false;
    while((i < attributeTypeCount[attributeId]) && (found == false))
    {
        if (attributes[attributeId][i][2] == "true")
        {
            found = true;
        }
        else
        {
            i++;
        }
    }
    if (found == true)
    {
        return false;
    }
    else
    {
        return true;
    }
    
}

function AllBrandsSetToFalse()
{
    var i=0;
    var found = false;
    while((i < brandCount) && (found == false))
    {
        if (brands[i][3] == "true")
        {
            found = true;
        }
        else
        {
            i++;
        }
    }
    
    if (found == true)
    {
        return false;
    }
    else
    {
        return true;
    }
    
}

function GetAttributeOfName(attributeName)
{
    
    var i=0;
    var found = false;
    while((i < attributesParameters.length) && (found == false))
    {
        try
        {
            if (attributesParameters[i] == attributeName)
            {
                found = true;
            }
            else
            {
                i++;
            }
        }
        catch (err)
        {
            i++;
        }
    }
    
    if (found == true)
    {
        return (i);
    }
    else
    {
        return -1;
    }
    
}

function GetBrandOfId(id)
{
    
    var i=0;
    var found = false;
    while((i < brandCount) && (found == false))
    {
        try
        {
            if (parseInt(brands[i][0]) == id)
            {
                found = true;
            }
            else
            {
                i++;
            }
        }
        catch (err)
        {
            i++;
        }
    }
    
    if (found == true)
    {
        return (i);
    }
    else
    {
        return -1;
    }
    
}

function DeselectAllBrands()
{
    var i, brandElement;
    try{
        for(i=0; i < brandCount; i++)
        {   
            brands[i][3] = "false";
            brandElement = document.getElementById("checkbox+Brand+" + brands[i][0] + "+Image");
            if (brandElement != null)
            {
                brandElement.src = untickedImage;
            }
            
            if (longBrandListExists == true)
            {
                brandElement = document.getElementById("checkbox+BrandLong+" + brands[i][0] + "+Image");
                if (brandElement != null)
                {
                    brandElement.src = untickedImage;
                }
            }
        }
    }
    catch (err)
    {
        window.alert("ERROR Deselecting brands: i= " + i + " of " + brandCount + ", element: \"" + "checkbox+Brand+" + brands[i][0] + "+Image\" error: "  + err);
    }

}



function DeselectAllItemsOfAttribute(attributeId)
{
    var i;
    for (i=0; i < attributeTypeCount[attributeId]; i++)
    {   
        attributes[attributeId][i][2] = "false";
        document.getElementById("checkbox+" + attributeId + "+Attribute+" + i + "+Image").src = untickedImage;
    }
}

function GetSenderType(sender)
{
    var idString;
    var separated = sender.id.split("+");
    if (separated.length > 1)
    {
        if (separated[0] == "CHECKBOX")
        {
        
        }
    }

}

function SetMouseOver(sender, on)
{
    if (on == true)
    {   
        sender.className = "checkboxtextmouseover";
    
    }
    else
    {
        sender.className = "checkboxtext";
    }    
    
    var id = -1;
    var idString;
    var separated = sender.id.split("+");
    var currentBrand = null;
    var selectedString =  "";
    if (separated.length > 1)
    {
        if (separated[0].toUpperCase() == "CHECKBOX")
        {
            if (separated[1].toUpperCase() == "BRAND")
            {
                idString = separated[2];
                if (longBrandListExists == true)
                {
                    var brandLongBox = document.getElementById("checkbox+BrandLong+" + idString);
                    if (brandLongBox != null)
                    {
                        if (on == true)
                        {   
                            
                            brandLongBox.className = "checkboxtextmouseover";
                        
                        }
                        else
                        {
                            brandLongBox.className = "checkboxtext";
                        } 
                    }
                }
            }
            else if (separated[1].toUpperCase() == "BRANDLONG")
            {
                idString = separated[2];
                var brandBox = document.getElementById("checkbox+Brand+" + idString);
                if (brandBox != null)
                {
                    if (on == true)
                    {   
                        
                        brandBox.className = "checkboxtextmouseover";

                    }
                    else
                    {
                        brandBox.className = "checkboxtext";
                    } 
                }
            }
        }
    }
}

function SetSelected(sender)
{
   var id = -1;
    var idString;
    var separated = sender.id.split("+");
    var currentBrandLocation = -1;
    var selectedString =  "";
    var allAttributeImage;
    if (separated.length > 1)
    {
        if (separated[0].toUpperCase() == "CHECKBOX")
        {
            if (CharIsNumber(separated[1].charAt(0)))
            {
                try
                {
                    var attributeId = parseInt(separated[1]);
                    if ((separated[2].toUpperCase()  == "ATTRIBUTE") || (separated[2].toUpperCase() == "ATTRIBUTELONG"))
                    {
                        idString = separated[3];
                        var selectedString = "cross.gif";
                        if (idString.toUpperCase() == "ALL")
                        {
                            if (attributesAllChecked[attributeId] == true)
                            {
                                      
                            }
                            else if (attributesNames[attributeId] != "Other Features")
                            {
                                attributesAllChecked[attributeId] = true;  
                                selectedString = "tick.gif";
                                DeselectAllItemsOfAttribute(attributeId);
                                
                                allAttributeImage = document.getElementById("checkbox+" + attributeId + "+Attribute+All+Image");

                                allAttributeImage.src = tickedImage;

                                RequestNewProductList(0);
                            }        
                        }
                        else
                        {          
                            id = parseInt(idString);              
                            if (attributes[attributeId][id][2] == "true")
                            {
                                attributes[attributeId][id][2] = "false";
                                
                                document.getElementById("checkbox+" + attributeId + "+Attribute+" + id + "+Image").src = untickedImage;
                                if ((attributesNames[attributeId] != "Other Features") && (AllItemsOfAttributeSetToFalse(attributeId)))
                                {
                                    attributesAllChecked[attributeId] = true;  
                                    
                                    allAttributeImage = document.getElementById("checkbox+" + attributeId + "+Attribute+All+Image");

                                    allAttributeImage.src = tickedImage;
                                    
                                    
                                }
                            }
                            else
                            {
                                
                                if ((attributesNames[attributeId] != "Other Features") && (attributesAllChecked[attributeId] == true))
                                {
                                    
                                    attributesAllChecked[attributeId] = false;
                                    allAttributeImage = document.getElementById("checkbox+" + attributeId + "+Attribute+All+Image");
                                    allAttributeImage.src = untickedImage;
                                         
                                }
                                attributes[attributeId][id][2] = "true";
                                
                                document.getElementById("checkbox+" + attributeId + "+Attribute+" + id + "+Image").src = tickedImage;
                                
                            }
                            RequestNewProductList(0);
                        }
                    }
                }
                catch(err)
                {
                }
            }
            else if ((separated[1].toUpperCase() == "BRAND") || (separated[1].toUpperCase() == "BRANDLONG"))
            {
                idString = separated[2];
                var checkboxObject = document.getElementById("checkbox+Brand+" + idString + "+Image");
                var checkboxObjectLong;
                if (longBrandListExists == true)
                {
                    checkboxObjectLong = document.getElementById("checkbox+BrandLong+" + idString + "+Image");
                }
                var imageElement;
                if (idString.toUpperCase() == "ALL")
                {
                    if (allChecked == true)
                    {
                           
                    }
                    else
                    {
                        allChecked = true;
                        document.getElementById("checkbox+Brand+All+Image").src = tickedImage;
                        if (longBrandListExists == true)
                        {
                            document.getElementById("checkbox+BrandLong+All+Image").src = tickedImage;   
                        } 
                        DeselectAllBrands();
                        RequestNewProductList(0);
                    }        
                }
                else
                {
                    try
                    {
                        id = parseInt(idString);
                        currentBrandLocation = GetBrandOfId(id);
                        if (currentBrandLocation != -1)
                        {                            
                            if (brands[currentBrandLocation][3] == "true")
                            {
                                brands[currentBrandLocation][3] = "false";
                                imageElement = document.getElementById("checkbox+Brand+" + id + "+Image");
                                
                                if (imageElement != null)
                                {
                                    imageElement.src = untickedImage;
                                }
                                if (longBrandListExists == true)
                                {
                                    imageElement = document.getElementById("checkbox+BrandLong+" + id + "+Image");
                                }
                                if (imageElement != null)
                                {
                                    imageElement.src = untickedImage;
                                }
                                
              
                                if (AllBrandsSetToFalse())
                                {
                                    allChecked = true;
                                    document.getElementById("checkbox+Brand+All+Image").src = tickedImage;
                                    if (longBrandListExists == true)
                                    {
                                        document.getElementById("checkbox+BrandLong+All+Image").src = tickedImage;
                                    }
                                }
                            }
                            else
                            {
                                if (allChecked == true)
                                {
                                    allChecked = false;    
                                    document.getElementById("checkbox+Brand+All+Image").src = untickedImage;
                                    if (longBrandListExists == true)
                                    {
                                        document.getElementById("checkbox+BrandLong+All+Image").src = untickedImage;
                                    }
                                }
                                brands[currentBrandLocation][3] = "true";
                                
                                imageElement = document.getElementById("checkbox+Brand+" + id + "+Image");
                                
                                if (imageElement != null)
                                {
                                    imageElement.src = tickedImage;
                                }
                                
                                if (longBrandListExists == true)
                                {
                                    imageElement = document.getElementById("checkbox+BrandLong+" + id + "+Image");
                                }
                                
                                if (imageElement != null)
                                {
                                    imageElement.src = tickedImage;
                                }
                            }
                            RequestNewProductList(0);
                        }
                        
                    }
                    catch(err)
                    {
                    }
                }
                
                if (separated[1].toUpperCase() == "BRANDLONG")
                {
                    DisplayFilterProducts();
                }
            }
            
        }
        else if (separated[0].toUpperCase() == "COLLAPSEDCHECKBOX")
        {
            if (CharIsNumber(separated[1].charAt(0)))
            {
                try
                {
                    var attributeId = parseInt(separated[1]);
                    if (separated[2].toUpperCase()  == "ATTRIBUTE")
                    {
                        idString = separated[3];
                        var selectedString = "cross.gif";
       
                        id = parseInt(idString);              
                        ToggleAttribute(attributeId, id);
                        RequestNewProductList(0);
                        FillCollapsedFilterProducts();
                        if (NothingSelected() == true)
                        {
                            ResizeRefineContainer();
                        }
                    }
                }
                catch(err)
                {
                }
            }
            else if (separated[1].toUpperCase() == "BRAND")
            {
                 try
                {
                    idString = separated[2];
                    id = parseInt(idString);
                    currentBrandLocation = GetBrandOfId(id);
                    
                    if (currentBrandLocation != -1)
                    {     
                        ToggleBrand(currentBrandLocation);                       
                        
                        RequestNewProductList(0);
                        FillCollapsedFilterProducts();
                        if (NothingSelected() == true)
                        {
                            ResizeRefineContainer();
                        }
                    }
                    
                }
                catch(err)
                {
                }
            }
        }
        
        
        
    }
}

function ToggleBrand(location)
{
    if (location > -1)
    {
        if (brands[location][3] == "true")
        {
            brands[location][3] = "false";

            if (AllBrandsSetToFalse())
            {
                allChecked = true;
            }
        }
        else
        {
            if (allChecked == true)
            {
                allChecked = false;    
            }
            brands[location][3] = "true";
            
        }
    }
}

function ToggleAttribute(attributeNumber, optionNumber)
{
    if (attributes[attributeNumber][optionNumber][2] == "true")
    {
        attributes[attributeNumber][optionNumber][2] = "false";
        if (AllItemsOfAttributeSetToFalse(attributeNumber))
        {
            attributesAllChecked[attributeNumber] = true;  
        }
    }
    else
    {
        if (attributesAllChecked[attributeNumber] == true)
        {
            attributesAllChecked[attributeNumber] = false;        
        }
        attributes[attributeNumber][optionNumber][2] = "true";
    }
}

function CharIsNumber(c)
{
    if ((c == '1') || (c == '2') || (c == '3') || (c == '4') || (c == '5') || (c == '6') || (c == '7') || (c == '8') || (c == '9') || (c == '0'))
    {
        return true;
    }
    else
    {
        return false;
    }
}

function SetScrollerDisplay(scrollerName)
{
    
    var scroller = document.getElementById(scrollerName);
    if (scroller.className == "listallhidden")
    {
        scroller.className = "listallvisible"
        longBrandListVisible = true;
    }
    else
    {
        longBrandListVisible = false;
        scroller.className = "listallhidden"
    }
    
}

function checkBoxMouseOver(sender)
{
    SetMouseOver(sender, true);
    
}

function checkBoxMouseOut(sender)
{
     SetMouseOver(sender, false);

}

function CollapsedCheckBoxMouseOver(sender)
{
    sender.className = "collapsedTextOver";
    
}

function CollapsedCheckBoxMouseOut(sender)
{
     sender.className = "collapsedText";

} 

function checkBoxOnClick(sender)
{
    SetSelected(sender);

}

function SortBoxChanged()
{
     var sortBox = document.getElementById("sortBox");
     var sortAscendingBox = document.getElementById("ascendingTrue");
     if ((sortBox != null) && (sortAscendingBox != null))
     {
        var thisSort = "false";
        if (sortAscendingBox.checked)
        {
            thisSort = "true";
        }
     
        if ((sortOrderBy != sortBox.value) || (thisSort != sortAscending))
        {
            sortAscending = thisSort;
            sortOrderBy = sortBox.options[sortBox.selectedIndex].value;
            var sortOrderTitle1 = document.getElementById("sortOrderTitle1");
            var sortOrderTitle2 = document.getElementById("sortOrderTitle2");
            if (sortOrderBy.toLowerCase() == "brand")
            {
                sortOrderTitle1.innerHTML = "A to Z";
                sortOrderTitle2.innerHTML = "Z to A";
            }
            else
            {
                sortOrderTitle1.innerHTML = "High to Low";
                sortOrderTitle2.innerHTML = "Low to High";
            }
            
            RequestNewProductList(firstResult);
        }
     }
}

function SetSortBoxSelection()
{
    var sortBox = document.getElementById("sortBox");
    var sortAscendingBoxTrue = document.getElementById("ascendingTrue");
    var sortAscendingBoxFalse = document.getElementById("ascendingFalse");
    if ((sortBox != null) && (sortAscendingBoxTrue != null) && (sortAscendingBoxFalse != null))
    {
        var found = false;
        var i =0;
        while((i < sortBox.options.length) && (found == false))
        {
            if (sortBox.options[i].value == sortOrderBy)
            {
                found = true;
            }
            else
            {
                i++;
            }
        
        }
        if (found == true)
        {
            sortBox.selectedIndex = i;
        }
        else
        {
            sortBox.selectedIndex = 0;
        }
        
        if (sortAscending == "true")
        { 
            sortAscendingBoxTrue.checked = true;
            
        }
        else
        {
           sortAscendingBoxFalse.checked = true;
        }
        
    }
}

function GenerateRequestString(firstResultNumber)
{
    var requestString = "category=" + categoryId;
    var j, i;
    var parametersAdded = false;
    
    if (allChecked == false)
    {      
        requestString = requestString + "&brand=[";  
        for(i=0; i<brandCount; i++)
        {
            if (brands[i][3] == "true")
            {
                requestString = requestString + brands[i][0] + ",";
                parametersAdded = true;
            }
        }
        requestString = requestString + "]";
        
    }
    var currentAttributeName;
    
    for(j = 0; j < attributeCount ; j++)
    {
        currentAttributeName = attributesNames[j]
        if (attributesAllChecked[j] == false)
        {
            requestString = requestString + "&" + attributesParameters[j] + "=[";
            for (i=0; i < attributeTypeCount[j]; i++)
            {
                if (attributes[j][i][2] == "true")
                {
                    requestString = requestString + attributes[j][i][1] + ",";
                    parametersAdded = true;
                }
                
            }  
            requestString = requestString + "]";
            
        }
    }
    requestString = requestString + "&firstResult=" + firstResultNumber;
    requestString = requestString + "&sortBy=" + sortOrderBy;
    requestString = requestString + "&ascending=" + sortAscending;
    if (freeform!="")
    {
        requestString = requestString + "&freeform=" + freeform;
    }
    
    return requestString;
}

function SetSearchCookie(requestString)
{
    document.cookie = "searchCriteria=" + requestString;
}


function GetSearchCookie()
{
    var name = "searchCriteria";
      var dc = document.cookie;
      var prefix = name + "=";
      var begin = dc.indexOf("; " + prefix);
      if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
      } else
        begin += 2;
      var end = document.cookie.indexOf(";", begin);
      if (end == -1)
        end = dc.length;
      var value = unescape(dc.substring(begin + prefix.length, end));
      return value;
}

function SetCookiedSearchParameters(value)
{
    var repost = true;
    var parameters = value.split("&");
    var i=0;
    var tagName = "";
    var tagValue = "";
    var nameValue = [2];
    for(i=0; i < parameters.length; i++)
    {
        nameValue = parameters[i].split("=");
        tagName = nameValue[0];
        tagValue = nameValue[1];
        if ((tagName!="") && (tagValue!=""))
        {
            tagValue = tagValue.replace("[", "");
            tagValue = tagValue.replace("]", "");
            var parameterValues = tagValue.split(",");
            var j=0;
            for(j=0; j < parameterValues.length; j++)
            {
                if ((parameterValues[j] != "") && (repost==true))
                {
                    if (tagName.toUpperCase() == "BRAND")
                    {
                        var brandLocation = GetBrandOfId(parseInt(parameterValues[j]));
                        if (brandLocation > -1)
                        {
                            ToggleBrand(brandLocation);
                        }
                    }
                    else if (tagName.toUpperCase() == "FREEFORM")
                    {
                        freeform = parameterValues[j];   
                    }
                    else if (tagName.toUpperCase() == "FIRSTRESULT")
                    {
                        firstResult = parseInt(parameterValues[j]);   
                    }
                    else if (tagName.toUpperCase() == "CATEGORY")
                    {
                        if (parseInt(parameterValues[j]) != categoryId)
                        {
                            repost = false;
                        }
                    }
                    else if (tagName.toUpperCase() == "SORTBY")
                    {
                        sortOrderBy = parameterValues[j]; 
                    }
                    else if (tagName.toUpperCase() == "ASCENDING")
                    {
                        sortAscending = parameterValues[j]; 
                    }
                    else
                    {
                        var attributeLocation = GetAttributeOfName(tagName);
                        var range, rangeValueTemp;
                        if (attributeLocation > -1)
                        {
                            var upperRangeValue, lowerRangeValue;
                            if (parameterValues[j].match("-"))
                            {
                                range = parameterValues[j].split("-");
                                if (range.length > 1)
                                {
                                    upperRangeValue = range[0];
                                    lowerRangeValue = range[1];
                                }
                                else
                                {
                                    upperRangeValue = range[0];
                                    lowerRangeValue = range[0];
                                }
                                
                            }   
                            else
                            {
                                upperRangeValue = parameterValues[j];
                                lowerRangeValue = parameterValues[j];
                            }      
                            if (upperRangeValue < lowerRangeValue)
                            {
                                rangeValueTemp = upperRangeValue;
                                upperRangeValue = lowerRangeValue;
                                lowerRangeValue = rangeValueTemp;
                            }
                            
                            var k=0;
                            for(k=0; k < attributeTypeCount[attributeLocation]; k++)
                            {
                                var attributeUpperRangeValue, attributeLowerRangeValue;
                                if (attributes[attributeLocation][k][1].match("-"))
                                {
                                    range = attributes[attributeLocation][k][1].split("-");
                                    if (range.length > 1)
                                    {
                                        attributeUpperRangeValue = range[0];
                                        attributeLowerRangeValue = range[1];
                                    }
                                    else
                                    {
                                        attributeUpperRangeValue = range[0];
                                        attributeLowerRangeValue = range[0];
                                    }
                                }
                                else
                                {
                                    attributeUpperRangeValue = attributes[attributeLocation][k][1];
                                    attributeLowerRangeValue = attributes[attributeLocation][k][1];
                                }
                                if (attributeUpperRangeValue < attributeLowerRangeValue)
                                {
                                    rangeValueTemp = attributeUpperRangeValue;
                                    attributeUpperRangeValue = attributeLowerRangeValue;
                                    attributeLowerRangeValue = rangeValueTemp;
                                }
                                
                                
                                if ((attributeUpperRangeValue == upperRangeValue) && (attributeLowerRangeValue == lowerRangeValue))
                                {
                                    ToggleAttribute(attributeLocation, k);
                                }
                                
                            }
                        }
                    }
                }
                
           }
        }
    }
    return repost;
}



function ProcessProductList(result)
{
    var totalProductCount = result.value.totalProductCount;
    var pagerContents = "";
    var resultsContents = "";
    var resultsDiv = document.getElementById("results");
    var topPagerDiv = document.getElementById("topPagerDiv");
    var bottomPagerDiv = document.getElementById("bottomPagerDiv");
    
    if (result.value.displayedProductSet.Tables[0].Rows.length > 0)
    {
        
        var firstResult = result.value.displayedProductSet.Tables[0].Rows[0]["resultNumber"];
        var lastResult = result.value.displayedProductSet.Tables[0].Rows[result.value.displayedProductSet.Tables[0].Rows.length-1]["resultNumber"];
        var pageCount = Math.ceil(totalProductCount / productsPerPage);
        var currentPage = Math.ceil(firstResult / productsPerPage);
        document.getElementById("resultsOverview").innerHTML = "Displaying <span class=\"white\">" + firstResult + " to " + lastResult + " of " + totalProductCount + " </span>product matches";
       
        
        if (pageCount > 1)
        {
            var selectedString;
            pagerContents = "<div style=\"margin:0;padding:0;float:left;width:100%;text-align:center;\"><table cellspacing=\"0\" cellpadding=\"0\" align=\"center\" style=\"text-align:center;margin-bottom:6px;margin-top:4px;padding-top:4px;\"><tr>";
            var firstPage;
            var lastPage;
            var pageCountOverflowAbove = false;
            var pageCountOverflowBelow = false;
            
            if (pageCount > maxPageNumbers)
            {
                if ((currentPage - (parseInt(maxPageNumbers/2))) < 0)
                {
                    firstPage = 0;
                    lastPage = maxPageNumbers;
                    pageCountOverflowAbove = true;
                }
                else if ((currentPage + (parseInt(maxPageNumbers/2))) > pageCount)
                {
                    firstPage = pageCount - maxPageNumbers;
                    lastPage = pageCount;
                    pageCountOverflowBelow = true;
                }
                else
                {
                    pageCountOverflowAbove = true;
                    pageCountOverflowBelow = true;
                    firstPage =  currentPage - (parseInt(maxPageNumbers/2));
                    lastPage =  currentPage + (parseInt(maxPageNumbers/2));
                    
                }
                firstPage++;
                lastPage++;
            }
            else
            {
                firstPage = 1;
                lastPage = pageCount + 1;
            }
            
            if (currentPage > 1)
            {
                var firstResultOfPreviousPage = ((currentPage-2)*productsPerPage);
                if (firstResultOfPreviousPage < 0)
                {
                    firstResultOfPreviousPage = 0;
                }
        	    pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(0)\" class=\"pagerbtnfirst\"><a href=\"#\"><span>first</span></a></div></td>";
                pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfPreviousPage + ")\" class=\"pagerbtnleft\"><a href=\"#\"><span><<</span></a></div></td>";
            }
            if (pageCountOverflowBelow == true)
            {
                var firstResultOfOverflowBelow =  (firstPage-(parseInt(maxPageNumbers/2))) * productsPerPage;
                if (firstResultOfOverflowBelow < 0)
                {
                    firstResultOfOverflowBelow = 0;
                }
                pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfOverflowBelow + ")\" class=\"pagerbtnmorepages\"><a href=\"#\"><span>...</span></a></div></td>";
            }
            var buttonClass;
            var i;
            
            for (i=firstPage; i < lastPage; i++)
            {
                selectedString = "";
                if (i == currentPage)
                {
                    selectedString = " class=\"on\"";
                }
                
                buttonClass = "pagerbtnblank";
                if (i >= 10)
                {
                    buttonClass = "pagerbtn2figs";
                }
                
                var firstResultOfCurrentPage = (i-1) * productsPerPage;
                pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfCurrentPage + ")\" class=\"" + buttonClass + "\"><a " + selectedString + "href=\"#\"><span>" + i + "</span></a></div></td>";
            }
            if (pageCountOverflowAbove == true)
            {
                var firstResultOfOverflowAbove =  (lastPage+(parseInt(maxPageNumbers/2))) * productsPerPage;
                if (firstResultOfOverflowAbove > ((pageCount-1) * productsPerPage))
                {
                    firstResultOfOverflowAbove = ((pageCount-1) * productsPerPage);
                }
                pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfOverflowAbove + ")\" class=\"pagerbtnmorepages\"><a href=\"#\"><span>...</span></a></div></td>";
            }
            
            if (currentPage < pageCount)
            {
                var firstResultOfNextPage = ((currentPage)*productsPerPage);
                var firstResultOfLastPage = ((pageCount-1)*productsPerPage);
        	    pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfNextPage + ")\" class=\"pagerbtnright\"><a href=\"#\"><span>>></span></a></div></td>";
                pagerContents = pagerContents + "<td><div onclick=\"RequestNewProductList(" + firstResultOfLastPage + ")\" class=\"pagerbtnlast\"><a href=\"#\"><span>last</span></a></div></td>";
            }
            pagerContents = pagerContents + "</tr></table></div>";
            
            
        }
        else
        {
            pagerContents = "<br /><br />\n";
        }

        resultsContents = "<div id=\"results\" name=\"results\" style=\"float:left;width:100%\"><ul>";
        var productId, productName, productDescription, imageUrl, model, resultNumber, price;
        var displayedCount = result.value.displayedProductCount;
        var sb = new StringBuilder(resultsContents);
        for (i=0; i < displayedCount; i++)
        {
            productname = result.value.displayedProductSet.Tables[0].Rows[i]["name"];
            productDescription = result.value.displayedProductSet.Tables[0].Rows[i]["description"];
            if ((productDescription.length > maxDescriptionLength) &&(productDescription.match("<ul") == null))
            {
                productDescription = productDescription.substr(0, maxDescriptionLength) + "...";
            }
            productId = result.value.displayedProductSet.Tables[0].Rows[i]["id"];
            model = result.value.displayedProductSet.Tables[0].Rows[i]["model"];
            resultNumber = result.value.displayedProductSet.Tables[0].Rows[i]["resultNumber"];
            imageUrl = result.value.displayedProductSet.Tables[0].Rows[i]["imageUrl"];
            
            price = result.value.displayedProductSet.Tables[0].Rows[i]["price"];
            if (price != "")
            {
                price = "<span style=\"font-size:10px;color:#646464;\">From</span> <br />" + "<span style=\"color:#1bb813;font-size:14px;\">" + price + "</span>" + " <span style=\"font-size:10px;color:#646464;\">Delivered</span>";
            }
            
            var linkUrl;
            if(productId >0)
            {
                linkUrl ="<a href=\"PriceComparer.aspx?productId=";
            }
            else
            {
                linkUrl = "<a href=\"ProductGroup.aspx?groupproductId=";
                productId = Math.abs(productId);
            }
                
            sb.append(linkUrl);
            sb.append(productId);
            sb.append("\" style=\"float:left;width:100px;\"><div style=\"width:100px; text-align:center;\"><img src=\"");
            sb.append(imageUrl);
            sb.append("\"  /></div></a>");//<a href=\"PriceComparer.aspx?productId=");
            sb.append(linkUrl);
            sb.append(productId);
            sb.append("\" class=\"result\" style=\"float:left;width:63%;padding-left:15px;\"><br style=\"line-height:5px;\" /><span class=\"brandmodel\">");
            sb.append(productname);
            sb.append("</span></a><br /><br style=\"line-height:10px;\" /><span style=\"width:63%;float:left;color:#000;margin-left:15px;\">");
            sb.append(productDescription);
            sb.append("</span>");//<a href=\"PriceComparer.aspx?productId=");
            sb.append(linkUrl);
            sb.append(productId);
            sb.append("\"><img src=\"images/btn-checkstocknowon.gif\" class=\"resultscta\" alt=\"Compare Prices\" onmouseover='this.src=\"images/btn-checkstocknowoff.gif\"' onmouseout='this.src=\"images/btn-checkstocknowon.gif\"' /></a><div style=\"border:0;float:right;width:50px;margin:0px 5px 10px 5px;padding:10px 4px 12px 5px;font-weight:bold;font-size:11px;text-align:center;color:#195b72;background-image:url(images/bg-prices.gif);background-repeat:no-repeat;background-position:top left;margin-top:-6px;\"><span style=\"color:#000;\">");
            sb.append(price);
            sb.append("</span></div><br /><br style=\"clear:both;\" /><hr class=\"divider\" />\n");
/*
            resultsContents = resultsContents + 
            "<a href=\"PriceComparer.aspx?productId=" + 
            productId + 
            "\" style=\"float:left;width:100px;\"><img src=\"" + 
            imageUrl + 
            "\" width=\"100px\" class=\"floatleft\" /></a><a href=\"PriceComparer.aspx?productId=" + 
            productId + 
            "\" class=\"result\" style=\"float:left;width:63%;padding-left:15px;\"><br style=\"line-height:5px;\" /><span class=\"brandmodel\">"
            + productName + 
            "</span></a><br /><br style=\"line-height:10px;\" /><span style=\"width:63%;float:left;color:#000;margin-left:15px;\">" + 
            productDescription + 
            "</span><a href=\"PriceComparer.aspx?productId=" + 
            productId + 
            "\"><img src=\"images/btn-checkstocknowon.gif\" class=\"resultscta\" alt=\"Compare Prices\" onmouseover='this.src=\"images/btn-checkstocknowoff.gif\"' onmouseout='this.src=\"images/btn-checkstocknowon.gif\"' /></a><div style=\"border:0;float:right;width:50px;margin:0px 5px 10px 5px;padding:10px 4px 12px 5px;font-weight:bold;font-size:11px;text-align:center;color:#195b72;background-image:url(images/bg-prices.gif);background-repeat:no-repeat;background-position:top left;margin-top:-6px;\">" + "<span style=\"color:#000;\">" + 
            price + 
            "</span>" + "</div><br /><br style=\"clear:both;\" /><hr class=\"divider\" />\n";
*/            
        }
        resultsContents = sb.toString() + "</ul></div>\n";
        //resultsContents = resultsContents + "</ul></div>\n";
        
    }
    else
    {
        document.getElementById("resultsOverview").innerHTML = "No Product Matches";
    }
    
    resultsDiv.innerHTML = resultsContents;
    topPagerDiv.innerHTML = pagerContents;
    bottomPagerDiv.innerHTML = pagerContents;
    firstResultNumber = firstResult;
    sortOrderBy = result.value.sortBy;
    SetSortBoxSelection();

}
window.onresize = FilterProductsResized;


// Initializes a new instance of the StringBuilder class
// and appends the given value if supplied
function StringBuilder(value)
{
    this.strings = new Array("");
    this.append(value);
}

// Appends the given value to the end of this instance.
StringBuilder.prototype.append = function (value)
{
    //if (value)
    //{
        this.strings.push(value);
    //}
}

// Clears the string buffer
StringBuilder.prototype.clear = function ()
{
    this.strings.length = 1;
}

// Converts this instance to a String.
StringBuilder.prototype.toString = function ()
{
    return this.strings.join("");
}