var whichDiv;
var whichSearchDiv;
var whichSubmit;

function ajaxSearch(input,ll,ul,code,where){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	}		

	if(where == 'top'){
		whichDiv = "results-top";
		whichSearchDiv = "sbox";
              whichSubmit = "sbox-submit";
	}	
        else{
		whichDiv = "results";
		whichSearchDiv = "srch";
              whichSubmit = "search-submit";
	}

	var keyCode = code;	
	var string = input.replace(' ','');	
	var slen = string.length;	
	if(string != '' && string != null && keyCode != 40 && keyCode != 38){		
		var query = "?string="+string+"&lowerLimit="+ll+"&upperLimit="+ul+"&where="+where;
		var url = "http://www.vishay.com/searchString"+query;
		xmlHttp.onreadystatechange=doSearch;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null); 
	}
	else if (keyCode == 40 || keyCode == 38){
		scroll(keyCode);
	}
	else if(slen == 0){		
		var div = document.getElementById(whichDiv).style.display = 'none';
	}
}


function scroll(code){			
	keyCode = code;
	//alert('in scroll function: '+keyCode);
	if(keyCode == 40){		
		moveDownList();
	}
	else if(keyCode == 38){
		moveUpList();
	}
}



function moveUpList(){
	var list = document.getElementById('resultList').getElementsByTagName('li');
	var listLength = list.length - 1;
	var selected = findSelected(list,listLength);	
	if(selected == -1){
		selected = listLength;
	}
	if((selected - 1) == -1){
		var searchTerm = document.getElementById('searchTerm').value;
		var block = document.getElementById('currentBlock').value;
		var offset = document.getElementById('offset').value;
		var nextBlock = +block - +offset;			
		if(nextBlock >= 0){
			//alert(nextBlock);
			ajaxSearch(searchTerm,nextBlock,10,55);										
		}
		selected = listLength;		
		makeBlack(list[0]);
	}
	makeBlack(list[selected]);
	makeBlue(list[selected - 1]);
	select(list[selected-1],false);
}
function moveDownList(){	
	var list = document.getElementById('resultList').getElementsByTagName('li');
	var listLength = list.length - 1;
	var selected = findSelected(list,listLength);
	var ajaxListLength = document.getElementById('length').value;
	if(selected != -1){makeBlack(list[selected]);}
	if(selected + 1 == ajaxListLength && ajaxListLength != 10){selected = -1;}
	if(selected + 1 == (listLength)){					
		selected = -1;		
		var searchTerm = document.getElementById('searchTerm').value;
		var block = document.getElementById('currentBlock').value;
		var offset = document.getElementById('offset').value;		
		var nextBlock = +block + +offset;	
		//alert(nextBlock);
		ajaxSearch(searchTerm,nextBlock,10,55);							
			
	}
	makeBlue(list[selected + 1]);
	select(list[selected+1],false);
}

function findSelected(list,length){
	var ret = -1;
	for(var i=0;i<length;i++){				
		if(list[i].id == 'selected'){ret = i;}		
	}
	return ret;
}
function stall(l){
	var stall = 0;
	var time = l *  1000000;
	for(var i = 0;i<time;i++){
		stall = stall + i;
	}
}

function checkArrows (field, evt) {
	
	var keyCode =
	document.layers ? evt.which :
	document.all ? event.keyCode :
	document.getElementById ? evt.keyCode : 0;
	alert(keyCode);
	var r = '';
	if (keyCode == 39)
		r += 'arrow right';
	else if (keyCode == 40)
		r += 'arrow down';
	else if (keyCode == 38)
		r += 'arrow up';
	else if (keyCode == 37)
	r += 'arrow left';
	
	r += ' ' + keyCode;
	//alert(r);
	return keyCode;
}




function select(input,close){	
	//var output = input.innerHTML;	
	var output = input.title;	
	output = output.replace(new RegExp("[\n\s\t]","g"),'');		
	document.getElementById(whichSearchDiv).value = output;	
	if(close){
		document.getElementById(whichDiv).style.display = 'none';
		document.getElementById(whichSubmit).click();
	}
}

function hideList(){
	document.getElementById(whichDiv).style.display = 'none';
}
function makeBlue(sb){
	sb.style.cursor='default';		
	sb.style.color = 'white';

	/* could have to change back */
	if(sb.childNodes[0].style){sb.childNodes[0].style.color = 'white';}
	if(sb.childNodes[1].style){sb.childNodes[1].style.color = 'white';}
	
	
	sb.style.background = 'blue';
	sb.id = 'selected';	
}
function makeBlack(sb){	
	sb.style.color = 'black';

	/* could have to change back */
	if(sb.childNodes[0].style){sb.childNodes[0].style.color = 'black';}
	if(sb.childNodes[1].style){sb.childNodes[1].style.color = 'black';}

	sb.style.background = 'white';
	sb.id = '';	
}
function toHand(sb){	
	sb.style.cursor='pointer';
	sb.style.cursor='hand';
}
function doSearch(){
  if (xmlHttp.readyState==4){        
    var update = xmlHttp.responseText;
    var results = update;    
    var div = document.getElementById(whichDiv);
   
    //alert(whichDiv);
 
    div.innerHTML = update;   
    div.style.display = '';    
  }  	
  else{}
}

function GetXmlHttpObject(){
  var xmlHttp=null;
  try{
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
  catch (e){
    // Internet Explorer
    try{
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e){
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}
