var _urlSearch 		= "search.asp";
var _urlModifyHistory 	= "modify_history.asp";
var _urlCompare 	= "compare.asp";
var _urlUpdate 		= "update_prefs.asp";

// creates a search GET action with an arbitrary number of parameters
function performSearch()
{
    var url 		= _urlSearch;

    for (var n = 0; n < (arguments.length - 1); n = n+2)
    {
        if (n < 1)
            url 	+= "?";
        else
            url 	+= "&";

        url 		+= arguments[n] + "=" + encodeURIComponent(arguments[n+1]);
    }
    // determine if there is a year constraint involved in the search
    url			= constrainByYear(url)
    url			= appendHistory(url);
    window.location.href = url;
}

function performFreeSearch()
{
    	var text = document.getElementById('freeText').value;
    	if (text == "" || text == "Keyword(s) or Part#")
    	{
        	alert("Please enter your search query");
        	return false;
    	}

    	var refine = false;
    	var refineObj = document.getElementById("searchInResults");

    	if (refineObj != null) refine = refineObj.checked;

    	if (refine)
    	{
        	performSearch("action", "freeSearchRefine", "free_text", text, "refine", "1");
	}
	else
	{
    		performSearch("action", "freeSearch", "free_text", text);
    	}
}

function performFreeSearch2()
{
    	var text = document.getElementById('freeText2').value;
    	if (text == "" || text == "Keyword(s) or Part#")
    	{
        	alert("Please enter your search query");
        	return false;
    	}		
		else
		{
			performSearch("action", "freeSearchRefine", "free_text", text, "refine", "1");
		}

}

function performAltSearch(text)
{
    performSearch("action", "altSearch", "free_text", text, "refine", "2");
}

function performSort(sortField)
{
    performSearch("action", "sort", "sort_field", sortField );
}

function performBreadcrumbAction(action, id)
{
	performSearch(action, id)
}

function goToResults()
{
    var url = appendHistory(_urlSearch + "?action=return_to_results", false);
    window.location.href = url;
}

function constrainByYear(url)
{
    var cYear		= document.getElementById('yearConstraint');
   	var text = document.getElementById('freeText').value;
	
    if (cYear != null)
    {
    	var yearValue	= cYear.value
    	if (yearValue != "ALL")
    	{
		if (arguments.length = 0)
		{
			url	+= "?";
		}
		else
		{
			url	+= "&";
		}
		url		+= "yearConstraint=" + cYear.value
	}
    }
    return url;
}

function appendHistory(url)
{
    var searchHistory	= document.getElementById("searchHistory")
    if (searchHistory != undefined)
    {
    	url += "&searchHistory=" + searchHistory.value;
    }
    return url;
}

function switchStyle(tableItm, buttonItm, sumItm)
{
    if (tableItm.style.display=="")
    {
        tableItm.style.display="none";
        buttonItm.src="assets/images/mercado/arrow_down.gif";
        if (sumItm != null)
            sumItm.style.display="";
    }
    else
    {
        tableItm.style.display="";
        buttonItm.src="assets/images/mercado/arrow_up.gif";
        if (sumItm != null)
            sumItm.style.display="none";
    }
}

function showOptions(control, val)
{
    try
    {
    	switch (control)
    	{
    		case "demoOptions":
			if (val == "")
			{
			    document.results.sortField.style.visibility='hidden';
			}
			else
			{
			    document.results.sortField.style.visibility='';
			}
		case "debug":
			var link	= document.getElementById("debugToggle");
			if (val == "")
			{
				link.innerHTML	= "Hide";
				link.href 	= "javascript:showOptions(control, 'none')";
			}
			else
			{
				link.innerHTML	= "Show";
				link.href 	= "javascript:showOptions(control, '')";
			}
		case "prodDetails":
			var link	= document.getElementById("prodDetailsToggle");
			if (val == "")
			{
				link.innerHTML	= "Hide Details";
				link.href 	= "javascript:showOptions(control, 'none')";
			}
			else
			{
				link.innerHTML	= "Show Details";
				link.href 	= "javascript:showOptions(control, '')";
			}
	}
    }
    catch (ex) {}

    var opt = document.getElementById(control);

    if (opt)
    {
        opt.style.display = val;
    }
    
}

function changePrefs(param, value)
{
	var url		= _urlSearch;
	var firstAnswer	= getQueryVariable("first_answer")
	url 		+= "?action=changeUserPref&userPrefName=" + param 
	url		+= "&userPrefValue=" + value;
	if (firstAnswer != null) {
		url	+= "&first_answer=" + firstAnswer
	}
	url		= appendHistory(url);
	window.location.href = url;
}

// Ecklers Model Year implementation
function changeModelYear(modelYear, queryString)
{
	var url		= _urlSearch;
	var urlpath = location.pathname;
	var url2		= location.href;
	
	var firstAnswer	= getQueryVariable("first_answer");
	var firstAnswer	= getQueryVariable("1");
	
	document.cookie = "EckCarYear=" + modelYear;
	
	url		+= "?action=changeModelYear";
	url		+= "&modelYear=" + modelYear;
	if (firstAnswer != null) {
		url	+= "&first_answer=" + firstAnswer;
	}

	if (urlpath == "/search.asp") 
	{
		url		= appendHistory(url);
		window.location.href = url;
	}
	else
	{
			location.href = url2;
	}
		
	
}

function changeView(page)
{
    	var url 	= _urlSearch 
	var firstAnswer	= getQueryVariable("first_answer")
	url 		+= "?action=changeView&page=" + page;
	if (firstAnswer != null) {
		url	+= "&first_answer=" + firstAnswer
	}
    	url		= appendHistory(url);
    	window.location.href = url;
}

function getQueryVariable(variable) 
{
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) 
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable) 
		{
			return pair[1];
		}
	} 
}

// Begin bFIRST exclude
function performCompare()
{
    var url 	= _urlCompare;
    url		+= "?action=compare&page=COMPARE";
    url		+= "&selected_prod_ids=";

    var params = encodeURIComponent(buildCompareParams());
    
    url		+= params;

    if (params.length > 0)
        window.location.assign(appendHistory(url, false));
    else
        alert("Please select a product to compare");
}



// creates a search GET action with an arbitrary number of parameters
function performCompareNavigation()
{
    var url = _urlCompare + "?<%= WebConstants.PARAM_PAGE %>=<%= WebConstants.PARAM_PAGE_COMPARE %>&<%= WebConstants.PARAM_COMPARE_IDS %>=";
    url += getURLParam("<%= WebConstants.PARAM_COMPARE_IDS %>");

    for (var n = 0; n < (arguments.length - 1); n = n+2)
    {
        url += "&" + arguments[n] + "=" + encodeURIComponent(arguments[n+1]);
    }


    url = appendHistory(url, false);

    window.location.href = url;
}

function buildCompareParams()
{
    var compares = document.results.compareCheck;
    var params = "";

    if ((compares != null) && (compares.length > 0))
    {
        params = "(";
        for (var n = 0; n < compares.length; n++)
        {
            if (compares[n].checked)
            {
                if (params.length > 1) params += "|";
                params += "'" + compares[n].value + "'";
            }
        }
        params += ")";
    }

    if (params.length <= 2) return "";
    else return params;
}


function selectBuyerSegmentDef()
{

    bs_defs_table  = document.all("bsDefsTable");
    var params = new Array();
    rows = bs_defs_table.childNodes[0].childNodes;
    for(var r=0; r<rows.length; r++)
    {
        row = rows[r];
        att_name = row.all("attName").innerHTML;
        select_obj = row.all("valuesSelect");
        att_val = select_obj.options[select_obj.selectedIndex].innerHTML;
        if( att_val!="None" )
        {
            params[r*2] = att_name;
            params[r*2+1] = att_val;
        }
        else
        {
           params[r*2] = null;
           params[r*2+1] = null;
        }
    }
    performBSSearch(params);
}

function performBSSearch(params)
{

    var url = _urlSearch;
    var index = 0;
    for (var n = 0; n < (params.length); n = n+2)
    {
        if( params[n] !=null)
        {
            if(n==0)
                url += "?";
            else
                url += "&";

            url += "<%= WebConstants.PARAM_USER_ATT_NAME %>" + index +"="+ encodeURIComponent(params[n]);
            url += "&";
            url += "<%= WebConstants.PARAM_USER_ATT_VALUE %>" + index +"="+ encodeURIComponent(params[n+1]);
            index++;
        }
    }
    window.location.href = url;
}



// End bFIRST exclude
