/** START OF AUTO COMPLETE CONTROL **/

var repeater;
var selectedIndex = 0;

function loadCities()
{
    repeater = new JRepeater("DdlCities", 
        "<div id=\"item_{@Index}\" onclick=\"selectCity('{@Index}')\" onmouseover=\"hilightCity('{@Index}')\" class=\"{@style}\">{$city}</div>"
    );
    repeater.onItemDataBound(itemDataBound);
    repeater.setDataSource(customarray);
    repeater.dataBind();
    displayCities("none");
    
    function itemDataBound(e, args)
    {
        args[1] = args[1].replace(new RegExp("{\\$city}","g"), args[0]);
        if (args[2] == selectedIndex)
            args[1] = args[1].replace(new RegExp("{\\@style}","g"), "active");
        else
            args[1] = args[1].replace(new RegExp("{\\@style}","g"), "inactive");
    }
}

function bindCities(e, filter)
{
    var keynum;
    if(window.event) // IE
        keynum = e.keyCode;
    else if(e.which) // Netscape/Firefox/Opera
        keynum = e.which;
    if (keynum == 13)
        return; 
    if (keynum != 38 && keynum != 40)
        selectedIndex = 0;
        
    var filteredData = customarray.filter(function(x)
    {
        return (x.toLowerCase().indexOf(filter.toLowerCase(), 0) == 0) ? true : false;
    });   
    repeater.setDataSource(filteredData);    
    repeater.dataBind();
    if (filteredData.length > 0)
        displayCities('block');
    else
        displayCities('none');
}

function selectCity(index)
{ 
    var dataIndex = eval(repeater.pager.from + index);
    if (repeater.getDataSource()[dataIndex] != null)
        document.getElementById(document.getElementById('txtCity').value).value = repeater.getDataSource()[dataIndex];
    document.getElementById(document.getElementById('txtCity').value).focus();
    displayCities("none");
    selectedIndex = 0;
    return false;
}

function displayCities(val)
{
    var div = document.getElementById("DdlCities");
    if (isIe6())
    {
        if (val == "block")
        {
            document.getElementById(document.getElementById('lstBedrooms').value).style.visibility = 'hidden';
            document.getElementById(document.getElementById('lstBaths').value).style.visibility = 'hidden';
            document.getElementById(document.getElementById('lstRadius').value).style.visibility = 'hidden';
            document.getElementById(document.getElementById('lstPriceTo').value).style.visibility = 'hidden';
            document.getElementById(document.getElementById('lstPriceFrom').value).style.visibility = 'hidden';
        }
        else
        {
            document.getElementById(document.getElementById('lstBedrooms').value).style.visibility = 'visible';
            document.getElementById(document.getElementById('lstBaths').value).style.visibility = 'visible';
            document.getElementById(document.getElementById('lstRadius').value).style.visibility = 'visible';
            document.getElementById(document.getElementById('lstPriceTo').value).style.visibility = 'visible';
            document.getElementById(document.getElementById('lstPriceFrom').value).style.visibility = 'visible';
        }
    }
    div.style.display = val; 
}

function browseCities(e)
{
    var keynum;
    if(window.event) // IE
        keynum = e.keyCode;
    else if(e.which) // Netscape/Firefox/Opera
        keynum = e.which;

    var records = (repeater.getDataSource().length < repeater.pager.to) ? repeater.getDataSource().length : repeater.pager.to;

    if (keynum == 38 && selectedIndex > 0)
        selectedIndex = Number(selectedIndex) - 1;
    else if (keynum == 40 && selectedIndex < (records - 1))
        selectedIndex = Number(selectedIndex) + 1;
    else if (keynum == 13)
    {
        selectCity(selectedIndex);
        return false;
    }
    else if (keynum == 9 && document.getElementById("DdlCities").style.display == "block")
    {
        selectCity(selectedIndex);
        return true;
    }
    
    hilightCity(selectedIndex);
    return true;
}

function hilightCity(index)
{  
    for(var __i =repeater.pager.from; __i < repeater.pager.to; __i++)
        document.getElementById("item_" + __i).className = "inactive";
    
    if (document.getElementById("item_" + index) != null)
        document.getElementById("item_" + index).className = "active";
    selectedIndex = index;
} 

function setRadius(value)       
{
    SetCityDefaultRadius(value);
    setTimeout('displayCities(\'none\')', 500);
}

function isIe6()
{
    var version = 100;
	var appVer = navigator.appVersion.toLowerCase();
	var iePos = appVer.indexOf('msie');
	if (iePos !=-1)
		version = parseInt(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));

	return (navigator.appName.substring(0,9) == "Microsoft" && version <= 6)
}
/** END OF AUTO COMPLETE CONTROL **/

