var SelectedSymbols = new Array();
var selectedStr = '';
var tblId = '';
var txtId = '';
var txtDispId = '';
var divId = '';
var rowOverColor = '#cad3e0';
var rowOutColor = '#e3e8ef';
var txtdsymbol = '';
var is_ie = ( (navigator.userAgent.toLowerCase().indexOf("msie") != -1) &&
	   (navigator.userAgent.toLowerCase().indexOf("opera") == -1) );
function elementPosition(elem) 
{
    var x = 0;
    var y = 0;
    while (elem.offsetParent) 
    {	
	    x += elem.offsetLeft + (elem.clientLeft || 0);
	    y += elem.offsetTop + (elem.clientTop || 0);
	    elem = elem.offsetParent;
    }
    return {x: x, y: y};
}

function GetCompaniesAJAX(str, companyDivId, ctblId, txtDispID, txtClientID, language)
{   
    document.getElementById(companyDivId).style.visibility = 'visible';
    var textPosition = elementPosition(document.getElementById(txtDispID));
    document.getElementById(companyDivId).style.top = textPosition.y + 15;
    document.getElementById(companyDivId).style.left = textPosition.x;
    selectedStr = str;
    tblId = ctblId;
    txtId = txtClientID;
    txtDispId = txtDispID;
    divId = companyDivId;
    oTblComps = document.getElementById(tblId);
    DeleteCompSelectRows(oTblComps);
    if(SelectedSymbols.length == 0)
    {
        CompanySelectorWS.GetSymbols(language, OnSymbolsDataComplete, OnError, null);
    }
    else
    {
        UpdateTable();
    }
}
function OnError(result){}
function OnSymbolsDataComplete(result, userContext)
{  
    if (result.rows)
    { 
        rowCnt = result.rows.length;
        SelectedSymbols = new Array(rowCnt);
        i = 0;
        for (i = 0; i < SelectedSymbols.length; i ++)
        {
            SelectedSymbols[i] = new Array(2);
        }
        for(i=0; i < rowCnt; i++)
        {
            SelectedSymbols[i][0] = result.rows[i]["DSYMBOL"];
            SelectedSymbols[i][1] = result.rows[i]["CName"];
        }
    }
    UpdateTable();
}
function UpdateTable()
{
    for(i=0 ; i < SelectedSymbols.length ; i++)
    {
        if(SelectedSymbols[i][0].toString().startsWith(selectedStr.toString().toUpperCase()) && selectedStr != '')
        {
            txtdsymbol = SelectedSymbols[i][0];
            AddCompSelectTableRow(oTblComps,oTblComps.rows.length,SelectedSymbols[i][1],SelectedSymbols[i][0]);
        }
    }
}
function DeleteCompSelectRows(tblobj)
{
    x=0;
    for(x = tblobj.rows.length-1; x>=0; x--)
    {
       tblobj.deleteRow(x);
    }
}
function AddCompSelectTableRow(tblObj,i,name,dsymbol)
{
    oRow = tblObj.insertRow(i);   
    oRow.onclick = function(){oTblComps = document.getElementById(tblId);
                DeleteCompSelectRows(oTblComps);
                if(is_ie){document.getElementById(txtId).value = dsymbol;document.getElementById(txtDispId).value = dsymbol;}
                else{document.getElementById(txtId).value = dsymbol;document.getElementById(txtDispId).value = dsymbol;}
                document.getElementById(divId).style.visibility = 'hidden';
                // Must set the focus to the textbox
                //alert(document.getElementById(txtId).getType());
                document.getElementById(txtDispId).focus(); 
                };
    oRow.onmouseover = function(){this.cells[0].style.background = rowOverColor;
                    this.cells[1].style.background = rowOverColor;
                    this.cells[1].style.color = rowOverColor;
                    this.cells[2].style.background = rowOverColor;};
    oRow.onmouseout = function(){this.cells[0].style.background = rowOutColor;
                    this.cells[1].style.background = rowOutColor;
                    this.cells[1].style.color = rowOutColor;
                    this.cells[2].style.background = rowOutColor;};
                                  
    oCell1 = oRow.insertCell(0);
    oCell1.className = "selectorSymbolText"; 
    oCell1Text = document.createTextNode(dsymbol);
    oCell1.appendChild(oCell1Text);
    
    oCell2 = oRow.insertCell(1);
    oCell2.className = "selectorSpace";
    oCell2Text = document.createTextNode("tt ");
    oCell2.appendChild(oCell2Text);
    
    oCell3 = oRow.insertCell(2);
    oCell3.className = "selectorNameText";
    oCell3Text = document.createTextNode(name);
    oCell3.appendChild(oCell3Text);
}