var map = new Object();
map['genderSel'] = "Gender";
map['lengthSel'] = "Length";
map['widthSel'] = "Width"
map['colorSel'] = "Color";
map['priceSel'] = "Price Range";
map['shoeStyleSel'] = "Style"
map['heelHeightSel'] = "Heel Height";
map['materialDetailSel'] = "Material Detail";
map['newArrivalsSel'] = "New Arrival";
map['saleSel'] = "Sale";
map['brandSel'] = "Brand";
map['deptSel'] = "Department";

var refinementData = "";
var topCategory = "";

function refine(name, selectedValue)
{
    var forms = document.forms;

//    alert("function refine("+name+", "+selectedValue+")");
//    document.statusText = "alert(function refine(name, selectedValue));";

    refinementData = "";

    if (selectedValue) location.href = selectedValue;


    for (i = 0; i < forms.length; i++) {

        switch (forms[i].name)
                {
            case 'genderForm':
            case 'deptForm':
            case 'lengthForm':
            case 'sizeWidthForm':
            case 'colorForm':
            case 'priceRangesForm':
            case 'showStyleForm':
            case 'heelHeightForm':
            case 'materialDetailForm':
            case 'newArrivalsForm':
            case 'saleForm':
            case 'brandForm':
                var selectOptions = getSelect(forms[i].elements);

                if (selectOptions == null)
                    continue;

                for (j = 0; j < selectOptions.length; j++) {
                    var selectMapName = map[selectOptions.name];
                    var displayName = "";
                    var test = "test";
                    var currentOption = selectOptions[j];

                    if (currentOption.selected
                            && (currentOption.text != 'Choose One')
                            && (currentOption.text != 'Show All')
                            && (currentOption.text != 'no selection'))
                    {
                        refinementData += selectMapName + ":" + currentOption.text + "<br>";
                    }
                }
        }
    }

//    alert(refinementData);
    setRefinementDescriptions(document.location.href,refinementData);
}

var NO_DESCRIPTORS_URL = 1;
var CATEGORY = 2;
var RETURN_URL = 3;
var DESCRIPTOR_REFINEMENTS = 4;


function getBangElements(cookieName)
{
    return  get_cookie(cookieName).split("!");
}

function setReturnAndCategory(noDecriptorsUrl,category)
{
    var refinementDiscriptors = getBangElements("PREV_PAGE");

    eraseCookie("PREV_PAGE");
    createCookie("PREV_PAGE", "!"+noDecriptorsUrl+"!"+category+"!"+refinementDiscriptors[RETURN_URL]+"!"+refinementDiscriptors[DESCRIPTOR_REFINEMENTS]);

}

function setReturnURL(returnURL)
{
    var refinementDiscriptors = getBangElements("PREV_PAGE");

    eraseCookie("PREV_PAGE");
    createCookie("PREV_PAGE", "!"+refinementDiscriptors[NO_DESCRIPTORS_URL]+"!"+refinementDiscriptors[CATEGORY]+"!"+returnURL+"!"+refinementDiscriptors[DESCRIPTOR_REFINEMENTS]);

}

function setRefinementDescriptions(currentURL,values)
{
    var refinementDiscriptors = getBangElements("PREV_PAGE");

    eraseCookie("PREV_PAGE");
    createCookie("PREV_PAGE", "!*noDecriptorsUrl*!*category*!"+refinementDiscriptors[RETURN_URL]+"!"+values);
}


function createCookie(name, value, days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else var expires = "";
        document.cookie = name + "=" + value + expires + "; path=/";
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

function update() {
    var form = document.shoeFinderForm;
    var children = form.elements;

    refinementData = "";    

    for (i = 0; i < children.length; i++) {
        var selectOptions = children[i];

        switch (selectOptions.name)
                {
            case 'genderSel':
            case 'deptSel':
            case 'lengthSel':
            case 'widthSel':
            case 'priceSel':
                var selectMapName = map[children[i].name];
                var options = selectOptions.options;

                for (j = 0; j < options.length; j++)
                {
                		if (options[j].selected
                			&& (options[j].text.indexOf("All") == -1))
				{
                            refinementData += selectMapName + ":" + options[j].text + "<br>";
				}
                }
        	}

    }

    setRefinementDescriptions(document.location.href,refinementData);   
    document.shoeFinderForm.submit();
}

function getSelect(children)
{
    for (j = 0; children.length; j++)
    {
        if (children[j].tagName == "SELECT")
        {
            return children[j];
        }
    }

    return null;

}

function delete_PreviousPageCookie()
{
    var cookie_name = "PREV_PAGE";
    var cookie_date = new Date();
    // current date & time
    cookie_date.setTime(cookie_date.getTime() - 1);
    document.cookie = cookie_name += "=; expires=" + cookie_date;
}

function setPreviousPageCookie(top_category, refinement_data)
{
    delete_PreviousPageCookie()
    var days = 2;
    var name = "PREV_PAGE";
    var value = location.href
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
    document.cookie = name + "=!" + top_category + "!" + value + "!" + refinement_data + "!;" + expires + "; path=/";
}

function get_cookie(cookie_name)
{
    var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');

    if (results)
        return ( unescape(results[1]) );
    else
        return "";
}