function Suggest(q, e) {
    if (q == '')
    {
        $('Result').innerHTML = '';
    }
    if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	var character = String.fromCharCode(code);
	if((code!=13) && ((code<37) || (code>40)))
	{
	    try
	    {
            var url = 'http://www.google.com/complete/search?hl=en&client=suggest&js=true&q=' + encodeURIComponent(q);
            return jsRemote(url);
        }
        catch(err)
        {
        }
	}
	if(code==13)
    {
        HideTable();
    }
}

function jsRemote(url) {
    if (document && document.getElementsByTagName) {
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.src = url;
        script.type = 'text/javascript';
        head.appendChild(script);
        return true;
    }
    return false;
}

google = {
    ac: {
            Suggest_apply: function(frameElement, keyword, results, arr) {
            var builder = "<table cellspacing='0' id='ResultTable' class='ResultTable'>";
            var j = 0;
            for(var k = 0; k < results.length; k=k+2) 
            {
                if (k > 0) 
                {

                    if ((results[k-1] != 'leapfish scam') && (results[k-1] != 'leapfish.com scam'))
                    {
                        builder += "<tr id='tr" + j + "' onmouseover='MouseOverCell(this);' onmousedown='CellClick(this);'><td class='ResultTD'>" + results[k-1] + "</td></tr>";
                        j++
                    }
                }
            }
            builder += "<tr id='lastTr' style='display:none;'><td>" + j + "</td></tr></table>";
            $('Result').innerHTML = builder;
        }
    }
};

// wrapper for getelementbyid
function $(id) 
{
    return document.getElementById(id);
}

function MouseOverCell(cell)
{
    CleanCells();
    cell.style.backgroundColor="#017fca";
    cell.style.color="white";
    index=parseFloat(cell.id.replace("tr",""));
}

function CellClick(cell)
{
    document.getElementById("ctl00_MainContent_txtSearch").value=cell.firstChild.innerHTML;
    document.getElementById("ResultTable").style.display="none";
    document.getElementById('ctl00_MainContent_btnSearch').click();
}

function HideTable()
{
    if(true)
    {
        try
        {
            document.getElementById("ResultTable").style.display="none";
            index = -1;
        }
        catch(err)
        {
        }
    }
}

function CleanCells()
{
    try
	{
	    for(j=0; j<10; j++)
	    {
	        j_trId="tr"+j;
	        document.getElementById(j_trId).style.backgroundColor="White";
	        document.getElementById(j_trId).style.color="black";
	    }
	}
	catch(err)
	{
	}
}

var index=-1;
var over=false;

function KeyDown(e, txt)
{
    var code;
    var ResultsNumber=10;
    try
    {	
        ResultsNumber=parseFloat(document.getElementById("lastTr").firstChild.innerHTML);
    }
    catch(err)
    {
    }
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    var character = String.fromCharCode(code);

    if(code==13)
    {
        HideTable();
    }

    if(code==40)
    {
        CleanCells();
        if(document.getElementById("ResultTable").style.display=="none")
        {
            if (txt != null)
            {
                var url = 'http://www.google.com/complete/search?hl=en&client=suggest&js=true&q=' + encodeURIComponent(txt.value);
                return jsRemote(url);
                index=-1;
            }
        }
        else
        {
            index++;
            if(index>ResultsNumber-1)index=0;
            trId="tr"+index;
            try
            {
                document.getElementById(trId).style.backgroundColor="#017fca";
                document.getElementById(trId).style.color="white";
                txt.value=document.getElementById(trId).firstChild.innerHTML;
            }
            catch(err)
            {
            }
        }
    }

    if(code==38)
    {
        CleanCells();
        if(document.getElementById("ResultTable").style.display=="none")
        {
            if (txt != null)
            {
                var url = 'http://www.google.com/complete/search?hl=en&client=suggest&js=true&q=' + encodeURIComponent(txt.value);
                return jsRemote(url);
                index=-1;
            }
        }
        else
        {
            index--;
            if(index<0)index=ResultsNumber-1;
            trId="tr"+index;
            try
            {
                document.getElementById(trId).style.backgroundColor="#017fca";
                document.getElementById(trId).style.color="white";
                txt.value=document.getElementById(trId).firstChild.innerHTML;
            }
            catch(err)
            {
            }
        }
    }
}