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 if(where.indexOf("dynamic-results") != -1){		
		var num = where.replace(/dynamic-results-(\d+)/gi,"$1");		
		whichDiv = where;		
		whichSearchDiv = "part-number-"+num;		
	}
	else if(where == 'foil-sample'){		
		whichDiv = "foil-sample-results";
		whichSearchDiv = "part-number";
	}	
        else{
		whichDiv = "results";
		whichSearchDiv = "srch";
              whichSubmit = "search-submit";
	}

	var keyCode = code;		
       var string = input;	
       string = string.replace('&','%26');	
	var slen = string.length;	
	if(string != '' && string != null && keyCode != 40 && keyCode != 38){		
		var rand = Math.floor(Math.random()*100000);
		var loc = getLocation();		
		var query = "?string="+string+"&lowerLimit="+ll+"&upperLimit="+ul+"&where="+where+"&division="+loc+"&rand="+rand;
		var url = "/searchString"+query;						
		xmlHttp.onreadystatechange=doAjaxSearch;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null); 
	}
	else if (keyCode == 40 || keyCode == 38){
		scroll(keyCode);
	}
	else if(slen == 0){	
		try{	
		var div = document.getElementById(whichDiv).style.display = 'none';
		}catch(e){/*alert(whichDiv);*/}
	}
}


function getLocation(){
	var where = window.location+"";		
	var out = "";		
	if(where.indexOf('/process-weighing/') != -1){out = "process-weighing";}
	else if(where.indexOf('/onboard-weighing/') != -1){out = "onboard-weighing";}
	else if(where.indexOf('/load-cells/') != -1){out = "load-cells";}
	else if(where.indexOf('/micro-measurements/') != -1){out = "micro-measurements";}
	else if(where.indexOf('/foil-resistors/') != -1){out = "foil-resistors";}
	else if(where.indexOf('action=quote') != -1){out = "foil-resistors";}
	else if(where.indexOf('/review-sample-request') != -1){out = "foil-resistors";}
	return out;

}

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"),'');		
	output = output.replace(new RegExp("[\n\t]","g"),'');
	document.getElementById(whichSearchDiv).value = output;			
	if(close){		
		try{
		document.getElementById(whichDiv).style.display = 'none';
		document.getElementById(whichSubmit).click();
		}catch(e){/*alert(whichSubmit);*/}
	}
}

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

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

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

	sb.style.background = 'white';
	sb.id = '';	
}
function toHand(sb){	
	sb.style.cursor='pointer';
	sb.style.cursor='hand';
}

function doAjaxSearch(){
  if (xmlHttp.readyState==4){        
    var update = xmlHttp.responseText;
    var results = update;    
    var div = document.getElementById(whichDiv);   

    //alert(whichDiv);
    //alert(update); 


    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;
}
