function disambiguateSearch(foundDealers)
{
    var results = '';
    
    var searchFor = $('dealerLocatorSearchText').value;
    
    if (searchFor != '')
    {
		var serviceSearch = getServicesRequired();
		var serviceId = '';
		
		for (var i = 0; i < serviceSearch.length; i++)
		{
			serviceId += (serviceId != '' ? "," : "") + serviceSearch[i].ID;
		}
		serviceId = "&serviceId=" + serviceId

        for (var i = 0; i < foundDealers.length; i++) {
        
            var dealerDetails = foundDealers[i].DealerName.toTitleCase();
            dealerDetails += (dealerDetails != '' && foundDealers[i].Town != '' ? ", " : "") + foundDealers[i].Town.toTitleCase();
            dealerDetails += (dealerDetails != '' && foundDealers[i].ZipCode != '' ? ", " : "") + foundDealers[i].ZipCode;

            results += "<li><a href='/dealer/Location.aspx?dealerId=" + foundDealers[i].DealerId + 
                "&search=true&type=2&q=" + escape(searchFor) + serviceId + "'>" + dealerDetails + "</a></li>";
        }
        
        $(resultsDivId).innerHTML = "<ul>" + results + "</ul>";
        $(resultsContainerId).style.visibility = 'visible';
        
        var msg = $('dlrMessage');
        
        if (msg != null)
        {
            msg.innerHTML = msg.innerHTML.replace('{0}', $(dealerSearchText).value);
            msg.style.display = 'inline';
        }
    }
}

function startSearch() {

    $('searchTextRequired').style.visibility = 'hidden';

	var searchFor = $('dealerLocatorSearchText').value;
    
    if (searchFor != '')
    {

        if ($('searchTypeDealer').checked)
        {
            var regSearch = new RegExp(searchFor, 'i');
            if (regSearch == null)
            {
				alert("Sorry the search doesn't work with this browser");
            }
            var dealersFound = new Array(0);
            
            for (var i = 0; i < dealer.length; i++)
            {
                if (dealer[i].DealerName.test(regSearch))
                {
                    dealersFound[dealersFound.length] = dealer[i];
                }
            }

            if (dealersFound.length > 1) {
                log_multipleDealersFound(null);
                disambiguateSearch(dealersFound);
            }
            else if (dealersFound.length == 1)
            {
				var serviceSearch = getServicesRequired();
				var serviceId = '';
				
				for (var i = 0; i < serviceSearch.length; i++)
				{
					serviceId += (serviceId != '' ? "," : "") + serviceSearch[i].ID;
				}
				serviceId = "&serviceId=" + serviceId

                window.location = "/dealer/Location.aspx?dealerId=" + dealersFound[0].DealerId + 
                    "&search=true&type=2&q=" + escape(searchFor) + serviceId;
            }
            else {
                log_noDealerFound(null);
                $(resultsContainerId).style.visibility = 'visible';
                
                var msg = $('noDealer');
                
                if (msg != null)
                {
                    msg.style.display = 'inline';
                }
            }
        }
        else
        {
            // Location search
            getMap('mapPane');
            var searchValue = $('dealerLocatorSearchText').value;
            
            // code to add a space into the postcode if there isn't one.
            if (searchValue.match("([Gg][Ii][Rr] 0[Aa][Aa]|[A-Pa-pR-Ur-uWwYyZz]([0-9]{1,2}|([A-Ha-hK-Yk-y][0-9]|[A-Ha-hK-Yk-y][0-9]([0-9]|[AaBbEeHhMmNnPpRrV-Yv-y]))|[0-9][A-Ha-hJjKkS-Us-uWw]) *[0-9][AaBbD-Hd-hJjLlNnP-Up-uW-Zw-z]{2})$"))
            {
               searchValue = searchValue.substr(0, searchValue.length-3) + " " + searchValue.substr(searchValue.length-3, 3);
               $('dealerLocatorSearchText').value = searchValue;
            }

            findLocation(searchValue);
        }
    }
    else $('searchTextRequired').style.visibility = 'visible';
}

function inputPress(e)
{
    var keyCode = -1;
    
    if (navigator.appName.indexOf('Internet Explorer') != -1)
    {
        keyCode = e.keyCode;
    }
    else
    {
        keyCode = e.which;
    }
    
    if (keyCode == 13) 
    {
        startSearch();
        return false;
    }
}

String.prototype.toTitleCase = function() {
    var returnValue = this.toLowerCase();
    var splitString = returnValue.split(' ');
    for (var i = 0; i < splitString.length; i++)
        splitString[i] = splitString[i].substring(0, 1).toUpperCase() + splitString[i].substring(1).toLowerCase();
    
    returnValue = splitString.join(' ');
    
    return returnValue;
}


