function getParam(arg)
{
    var q = "" + window.location;
    
    if (q.indexOf(arg) >= 0)
    {
        var pntr = q.indexOf(arg) + arg.length + 1;
        if (q.indexOf("&", pntr) >= 0)
        {
            return q.substring(pntr, q.indexOf("&", pntr));
        } else {
            return q.substring(pntr, q.length);
        }
    } else {
        return "";
    }
}

function runSortForButton()
{
    sort();
    /*
    var currentUrl = "" + window.location;
    var partialUrl = currentUrl.substring(0, currentUrl.indexOf("?"));
    var queryString = "sort=" + getParam("sort") + "&size=" + getParam("size") + "&page=" + getParam("page");
    var redirectUrl = partialUrl + "?" + queryString;
    alert(redirectUrl);
    */
}

function setPerPage(num)
{
    var hidInput = document.getElementById("HIDperPage");
    hidInput.value = num;
    sort();
}

function setPageView(view)
{
    var hidInput = document.getElementById("HIDpageView");
    hidInput.value = view;
    sort();
}

function getPageView(url)
{
    
    url = url.substring(url.indexOf("cat"),url.length);
    
    var pageview = url.slice(0,url.indexOf("/"));
    
    return pageview;
}


/**
 * Modified by Lawrence 7/30/2009: To support sorting with filtering.
 */
function sort()
{
    var pageDisplay;
    var urlParams;
    var size;
    var page;
    var sortValue = "";
    var sortChanged = 0;
    var sizeChanged = 0;
    var pageDisplayChanged = false;
    var sortFromRequest = getParam("sort");
    var sortByFromRequest = getParam("sortby");
    var containerListFromRequest = getParam("container_list"); // added by Lawrence 7/30/2009
    var pageDisplayFromRequest = getParam("g");
    //var objStoreDetails As New Gogotech.StoreDetails
    var strpagesize = 12;// As String = ConfigurationManager.AppSettings("ContainerListingPageSize")
    var DDLN_Sort = document.getElementById("js_sort_ddl");
    var currentUrl = "" + window.location;
    var partialUrl = currentUrl.substring(0, currentUrl.indexOf("?"));
    var hidInput = document.getElementById("HIDperPage");
    var hidView = document.getElementById("HIDpageView");
    var pageView = getPageView(currentUrl);
    
    
    if(currentUrl.indexOf("?") == -1)
    {
        partialUrl = currentUrl;
    }
    else
    {
        partialUrl = currentUrl.substring(0, currentUrl.indexOf("?"));
    }
    var urlFront = partialUrl.substring(0,partialUrl.indexOf("cat"))
    var urlEnd = partialUrl.substring(partialUrl.indexOf("cat"),partialUrl.length);
    urlEnd = urlEnd.slice(urlEnd.indexOf("/"),urlEnd.length);
    urlEnd = urlEnd.replace("cat_gallery","");
    urlEnd = urlEnd.replace("cat","");
    


    if(DDLN_Sort.options[DDLN_Sort.selectedIndex].value == "pricedesc") {
        sortValue = "sort=price&sortby=2";
        if((sortFromRequest != "price" && sortFromRequest != "") || (sortByFromRequest != "2")) {
            sortChanged = 1;
        } else {
            sortChanged = -1;
        }
    } else if(DDLN_Sort.options[DDLN_Sort.selectedIndex].value == "priceasc") {
        sortValue = "sort=price&sortby=1"
        if((sortFromRequest != "") && ((sortFromRequest != "price" && sortFromRequest != "") || (sortByFromRequest != "1" && sortByFromRequest != ""))) {
            sortChanged = 2
        } else {
            sortChanged = -2
        }
    } else if (DDLN_Sort.options[DDLN_Sort.selectedIndex].value == "popular") {
        sortValue = "sort=popular"
        if((sortFromRequest != "") && (sortFromRequest != "popular")) {
            sortChanged = 3
        } else {
            sortChanged = -3
        }
    }
    
    size = "size=";
    
    
    if(getParam("size") != "") {
        strpagesize = getParam("size");
        size = "size=" + strpagesize;
    }
    
    if(hidInput.value != "")
    {
        strpagesize = hidInput.value;
        size = "size=" + strpagesize;
    }

    if(hidView.value != "")
    {
        pageView = hidView.value;
    }
    
    
    pageDisplay = pageView;

 /*****************Fix Issue with Broken Url****************/
    var t = urlEnd.lastIndexOf("/",urlEnd.length);
    if (t <= 0)
    {
        urlEnd += "/";
    }
   /*******************************************/
    if(urlEnd.indexOf("CategoryListNoCache") == -1)
    {
        partialUrl = urlFront + pageDisplay + urlEnd;
    }
    else
    {
        partialUrl = "http:" + urlEnd;
    }
    
    sizeChanged = 1;    

    setCookie('pageview',pageDisplay,1);
    setCookie('pagesort_JS',DDLN_Sort.selectedIndex,1); 
    setCookie('pagesort',DDLN_Sort.options[DDLN_Sort.selectedIndex].value,1); 
    setCookie('pagesize',strpagesize,1);
    
    if(sortChanged > 0 || sizeChanged > 0) {
        page = "page=1" + "&sizeChange=" + sizeChanged + "&sortChanged=" + sortChanged;
    } else {
        page = "page=" + getParam("page") + "&sizeChange=" + sizeChanged + "&sortChanged=" + sortChanged;
    }

    if((getParam("typesearch") != "") || (getParam("filter_category_id") != "")) {
        page += "&typesearch=" & getParam("typesearch") & "&filter_category_id=" & getParam("filter_category_id");
    }
    
    if (sortValue != ""){
                 // added by Lawrence 7/30/2009
            urlParams = sortValue + "&" + size + "&" + page + "&container_list=" + containerListFromRequest;
            }
            else{
               // added by Lawrence 7/30/2009
            urlParams = size + "&" + page + "&container_list=" + containerListFromRequest;
            }   

    if(getParam("search_term") != "") {
        //urlParams = sortValue + "&" + size + "&" + page;
        window.location = partialUrl + "?" + "category_id=0&search_term=" + getParam("search_term") + "&" + urlParams;
    } else {
        //urlParams = sortValue + "&" + size + "&" + page;
        window.location = partialUrl + "?" + "&" + urlParams;
    }
}

function setSortBar()
{
    
    var sortCookie = getCookie("pagesort_JS");
    var sizeCookie = getParam("size");
    var viewCookie = getCookie("pageview");
    var searchTerm = getParam("search_term");
    var pageViewURL = "" + window.location;
    var size, view;
    
    
    if(pageViewURL.indexOf("cat_gallery") == -1)
    {
        if(viewCookie == "cat_gallery")
        {
            viewCookie = "cat";
            setCookie('pageview','cat',1);
        }
        
        if(viewCookie == "")
        {
            viewCookie = "cat";
            setCookie('pageview','cat',1);        
        }
    }
    else
    {
        if(viewCookie == "cat")
        {
            viewCookie = "cat_gallery";
            setCookie('pageview','cat_gallery',1);
        }
        
        if(viewCookie == "")
        {
            viewCookie = "cat_gallery";
            setCookie('pageview','cat_gallery',1);        
        }

    }
    /* Commented out so dropdown does not remember your previous sort.  -Akil 9/4/2008
    if(sortCookie != "")
    {
        sort.selectedIndex = sortCookie;
    }
    */
    switch(sizeCookie)
    {
        case "12":
            size = document.getElementById("a12Per");
            size.style.cursor = "default";
            size.style.color = "black";
            size.style.textDecoration = "none";
            break;
        case "24":
            size = document.getElementById("a24Per");
            size.style.cursor = "default";
            size.style.color = "black";
            size.style.textDecoration = "none";
            break;
        case "36":
            size = document.getElementById("a36Per");
            size.style.cursor = "default";
            size.style.color = "black";
            size.style.textDecoration = "none";
            break;
        case "0":
            size = document.getElementById("allPer");
            size.style.cursor = "default";
            size.style.color = "black";
            size.style.textDecoration = "none";
            break;
        default:
            size = document.getElementById("a12Per");
            size.style.cursor = "default";
            size.style.color = "black";
            size.style.textDecoration = "none";
            break;
    }  
    
     var sortBar = document.getElementById("js_sort_ddl");
    var sort = getParam("sort");
    if (sort != "") {
        var sortSize = 0;
        if (sortBar.length == 4) {
            sortSize = 1;
        }

        //if its a search but there has been a sorting option chose still add relevance but dont select it.
        if (searchTerm != "") {
            AddSortOption(sortBar, searchTerm, false);
        }

        if (sort == "price") {
            var priceSort = getParam("sortby");

            if (priceSort == "1") {
                sortBar.selectedIndex = 1 + sortSize;
            }
            else {
                sortBar.selectedIndex = 2 + sortSize;
            }
        }
        else if (sort == "popular") {
            sortBar.selectedIndex = sortSize;
        }
        else {
            sortBar.selectedIndex = 0;
        }
    }
    //Add to support Featured Items as default.
    else if (searchTerm != "") {
        AddSortOption(sortBar, searchTerm, true);
    }
    else {
        sortBar.selectedIndex = 0;
    }
}


//Add new option to dropdown
function AddSortOption(sortBar, searchTerm, isSelected) {
    if (searchTerm != "") {
        AddSelectOption(sortBar, "Relevance", "0", isSelected);
    }
}
function AddSelectOption(selectObj, text, value, isSelected) {
    if (selectObj != null && selectObj.options != null) {
        //selectObj.options[selectObj.options.length] = new Option(text, value, false, isSelected);
        //this method overwrites the chosen position.
        selectObj.options[0] = new Option(text, value, false, isSelected);
    }
}