

//list of tenderNos.
var tendersArr = new Array();
var filteredTndrsArr = new Array();
var originalList = new Array();
//variables for the user-entered text.
var inputTxtElement ;
var searchTxt ;
var originPopulated = false;
var list;
//variables for the search type combo box.
var searchTypeCmb; 
var searchType;


function initElements(){
    list = document.getElementById('itemsList'); 
    inputTxtElement = document.getElementById('searchTxt');
    searchTxt =  inputTxtElement.value;
    searchType = 2;
}
//get the original list into originalList Array.
function init(){
  // popList();
   initElements();
   var listOrig = document.getElementById('itemsList'); 
        if(originPopulated)
            return;
       for(i = 0; i< listOrig.options.length; i++){
            originalList[i] = listOrig.options[i].text ;                    
        } 
        searchTxt = "";
        originPopulated = true;
}

/*function pickVariables(){
    searchTxt = inputTxtElement.value;
    searchType = 2;//searchTypeCmb.options[searchTypeCmb.selectedIndex].value ;
}*/

//fill the TendersArr
function pickTenderNo(){
    tendersArr.length = 0;
    for(i = 0; i< list.options.length; i++){
        tendersArr[i] = list.options[i].text ;        
    }
}
//fill the filteredTendrs Array.
function pickFilteredTenderNo(){

    for(i = 0; i< list.options.length; i++){
        filteredTndrsArr[i] = list.options[i].text ;        
    }    
    
}

function go(){
    init();
    initElements();
    //pickVariables();
    //pickTenderNo();  
    filter();
}

function filter(){
    
    /*if(searchTxt == null || searchTxt.length == 0){
        init();
        return;
    }*/
    var index = 0;
    filteredTndrsArr.length=0;  
    for(i = 0; i< originalList.length; i++){
        if(matched(originalList[i])){
            filteredTndrsArr[index] = originalList[i];
            ++ index;    
        }
    }
    var newOptions = new Array();
    list.options.length = 0;
    for(j = 0; j< filteredTndrsArr.length; j++){
        newOptions[j] = new Option(filteredTndrsArr[j], filteredTndrsArr[j]);
        list.options[j] = newOptions[j];
    }
    
    
    //
    
    
}





function doSelect(){
   // init();
    if(list.selectedIndex == -1)
        return false;
    var selected = document.getElementById('selecteTenderNo');
    selected.value = list.options[list.selectedIndex].text;
   // alert(selected.value);
    return true; 
}




function openDiv(element){    
    if(isOpen()){
        
       go();
        
    }else{    
            var div = document.getElementById('layerList');
            //div.invalidate();
            div.style.position = 'absolute';
            div.style.display = 'inline';
             div.style.dir = 'ltr';
            div.style.left = getElementLeft (element) + element.width -  17;
            div.style.top =  getElementTop(element) + element.clientHeight + 3;
        }
}

function closeDiv(){
    var selected = document.getElementById('searchTxt');
    initElements();
    selected.value = list.options[list.selectedIndex].text;
    //inputTxtElement.value = selected;
    
    var div = document.getElementById('layerList');
     
    div.style.display = 'none';
    
}

function isOpen(){
    var div = document.getElementById('layerList');
    var val = div.style.display ;
    if(val == 'none')
        return false;
    else 
        return true;
}


function openClose()
{
    var div = document.getElementById('layerList'); 
    if(isOpen()){
                 
             div.style.display = 'none';
        }else{
            div.style.display = 'inline';  
        }
}


String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}

function matched(txt){
    if(searchType == 0) //starts with
        if(txt.startsWith(searchTxt))
            return true;
        else
            return false;
    if(searchType == 1) //ends with
     if(txt.endsWith(searchTxt))
            return true;
        else
            return false;
    if(searchType == 2) //contains
        if(txt.indexOf(searchTxt)>=0)
            return true;
        else
            return false;
    if(searchType == 3) //exact match.
        if(txt.equal(searchTxt))
            return true;
        else return false;
}
function getElementLeft(elem) {
	
        
        xPos = elem.offsetLeft;
        tempEl = elem.offsetParent;
        while (tempEl != null) {
                xPos += tempEl.offsetLeft;
                tempEl = tempEl.offsetParent;
        }
        return xPos;
}


function getElementTop(elem) {
	
        
        yPos = elem.offsetTop;
        tempEl = elem.offsetParent;
        while (tempEl != null) {
                yPos += tempEl.offsetTop;
                tempEl = tempEl.offsetParent;
        }
        return yPos;
	
}