var _eneroot = "0";

function ExecuteSearch(searchTermsClientId)
{    
    var terms = encodeURIComponent(document.getElementById(searchTermsClientId).value);    
    if (!terms || terms == "")
    {
        alert("Please enter something to search for before attempting to search.");
        return;
    }
    var removeterms = ["N","Ne","No","Nao","Ntk","Ntt","D","Nty","Ntx","Dx","in_dym","in_dim_search"];
    var addterms = ["N="+_eneroot,"Ntk=Default","Ntt="+terms,"Nty=1","D="+terms,"Ntx=mode+matchallpartial","Dx=mode+matchallpartial"];        
    var newurl = ENE_ConstructURL("BLANKURL", removeterms, addterms);    
    location = _searchRootUrl + newurl;    
}


// Function is called from various screens whenever a request to search only recipes is made to the search page
// Querystring value is passed to trigger recipe only search.
function ExecuteSearch(searchTermsClientId, recipesOnly)
{    
    var terms = encodeURIComponent(document.getElementById(searchTermsClientId).value);    
    if (!terms || terms == "")
    {
        alert("Please enter something to search for before attempting to search.");
        return;
    }
    
    var removeterms = ["recipe","N","Ne","No","Nao","Ntk","Ntt","D","Nty","Ntx","Dx","in_dym","in_dim_search"];
    // If recipe search only, set additional querystring value at the end of the terms.
    if (recipesOnly)
    {
        var addterms = ["N="+_eneroot,"Ntk=Default","Ntt="+terms,"Nty=1","D="+terms,"Ntx=mode+matchallpartial","Dx=mode+matchallpartial", "recipe=1"];
    }
    else
    {
        var addterms = ["N="+_eneroot,"Ntk=Default","Ntt="+terms,"Nty=1","D="+terms,"Ntx=mode+matchallpartial","Dx=mode+matchallpartial"];
    }
    var newurl = ENE_ConstructURL("BLANKURL", removeterms, addterms);  
    location = _searchRootUrl + newurl;    
}


//---------------------------------------------------------------------------
// Utility routines used by various javascript functions to create new querys
// from existing urls.  If current browser url does not reflect current query,
// these functions are not useful (since they are not aware of the current
// application state.)  These functions are used sparingly in the reference
// implementation only in conjunction with modules that contain form element.
//---------------------------------------------------------------------------

function ENE_ConstructURL(url,removeterms,addterms) {
	var params = ENE_BuildURLArray(url);
	var newurl = "";
	for (var i=0; i<params.length; i++) {
		val = ENE_CheckArray(removeterms,params[i][0]);
		if (val == -1)
			newurl = newurl + "&" + params[i][0] + "=" + params[i][1];
	}
	for (var i=0; i<addterms.length; i++) {
		newurl = newurl + "&" + addterms[i];
	}
	if (newurl.length > 0) {
		newurl = newurl.substr(1);
		newurl = "?"+newurl;
	}
	else {
		newurl = "?N="+eneroot;
	}
	return newurl;
}


function ENE_BuildURLArray(oldurl) {
	var returnArray = new Array();
	var url;
	if (oldurl == "CURRENTURL")
		url = location.search;
	else if (oldurl == "BLANKURL") {

	}
	else {
		var tokens = oldurl.split("?");
		url = "?"+tokens[1];
	}		
	if (url) {
		url = url.substr(1);
		var params = url.split("&");
		for (var i=0; i<params.length; i++) {
			var param = params[i].split("=");
			returnArray[i] = param;
		}
	}
	return returnArray;
}


function ENE_CheckArray(removeterms,checkterm) {
	for (var i=0; i<removeterms.length; i++) {
		if (removeterms[i] == checkterm)
			return 1;
	}
	return -1;
}


function ENE_GetValue(url, term) {
	var params = ENE_BuildURLArray(url);
	for (var i=0; i<params.length; i++) {
		if (params[i][0] == term) {
			return params[i][1];
		}
	}
	return -1;
}