 function showHint(url)
 { xmlHttp=GetXmlHttpObject(); if (xmlHttp==null)   {   alert ("Your browser does not support AJAX!");   return;   }	 url=url+"&sid="+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); }	
 var serverFile = 'http://www.schooladmissionindia.com/saiext/gethint.php';	var minLetters = 1;		var xmlHttp
 
 function stateChanged() {if (xmlHttp.readyState==4){ xmlResponse = xmlHttp.responseText;onCompletion();}}
 	var listsCache = new Array();	var aInp = false;	var aItem;	var aFItem = false;	var aCLet = new Array();		var currentListIndex = 0;
 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;
 }	
 	var optD = false;	var aiF = false;	var onCompletion = function() { };	var xmlResponse = '';	var xOffset = 0;	var yOffset = 0;	var almsie = false;	if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0)almsie=true;
 
 	function getTopPos(inputObj)
 	{
 		
 	  var returnValue = inputObj.offsetTop; 	  while((inputObj = inputObj.offsetParent) != null){ 	  	returnValue += inputObj.offsetTop; 	  } 	  return returnValue;
 	}
 	function list_cancelEvent() 	{ 		return false; 	}
 	
 	function getLeftPos(inputObj) 	{ 	  var returnValue = inputObj.offsetLeft; 	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft; 	  	  return returnValue; 	}
 	
 	function option_setValue(e,inputObj) 	{ 		if(!inputObj)inputObj=this; 		var tmpValue = inputObj.innerHTML; 		if(almsie)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent; 		if(!tmpValue)tmpValue = inputObj.innerHTML; 		aInp.value = tmpValue; 		if(document.getElementById(aInp.name + '_hidden'))document.getElementById(aInp.name + '_hidden').value = inputObj.id; 		options_hide(); 	}
 	
 	function options_hide() 	{ 		if(optD)optD.style.display='none';	 		if(aiF)aiF.style.display='none'; 	}
 
 	function options_rollOverActiveItem(item,fromKeyBoard) 	{ 		if(aItem)aItem.className='optionDiv'; 		item.className='optionDivSelected'; 		aItem = item;
 		 		if(fromKeyBoard){ 			if(aItem.offsetTop>optD.offsetHeight){ 				optD.scrollTop = aItem.offsetTop - optD.offsetHeight + aItem.offsetHeight + 2 ; 			} 			if(aItem.offsetTop<optD.scrollTop)
 			{ 				optD.scrollTop = 0;	 			} 		}
 	}
 	
 	function option_list_buildList(letters,data)
 	{
 		
 		optD.innerHTML = ''; 		aItem = false; 		if(listsCache[data][letters.toLowerCase()].length<=1){ 			options_hide(); 			return;			 		}
 		aFItem = false; 		var optionsAdded = false; 		for(var no=0;no<listsCache[data][letters.toLowerCase()].length;no++){ 			if(listsCache[data][letters.toLowerCase()][no].length==0)continue; 			optionsAdded = true; 			var div = document.createElement('DIV');
 			var items = listsCache[data][letters.toLowerCase()][no].valueOf();
 			div.innerHTML = items; 			div.id = 0; 			div.className='optionDiv';
 			div.onmouseover = function(){ options_rollOverActiveItem(this,false) }
 			div.onclick = option_setValue;
 			if(!aFItem)aFItem = div;
 			optD.appendChild(div); 		}	 		if(optionsAdded){ 			optD.style.display='block'; 			if(aiF)aiF.style.display=''; 			options_rollOverActiveItem(aFItem,true); 		} 					
 	}
 	
 	function option_list_showContent(inputObj,data) 	{ 		var letters = inputObj.value; 		var content = xmlResponse; 		var elements = content.split('~');
 		listsCache[data][letters.toLowerCase()] = elements; 		option_list_buildList(letters,data); 		 	} 	
 	function option_resize(inputObj) 	{ 		optD.style.top = (getTopPos(inputObj) + inputObj.offsetHeight + yOffset) + 'px'; 		optD.style.left = (getLeftPos(inputObj) + xOffset) + 'px';
 		if(aiF){ 			aiF.style.left = optD.style.left; 			aiF.style.top = optD.style.top;			 		}		 		 	}
 	
 	function showOptions(inputObj,data,e)
 	{
 		if(e.keyCode==13 || e.keyCode==9)return;
 		if(aCLet[inputObj.name]==inputObj.value)return;
 		if(!listsCache[data])listsCache[data] = new Array(); 		aCLet[inputObj.name] = inputObj.value; 		if(!optD){ 			optD = document.createElement('DIV'); 			optD.id = 'listOfOptions';	
 			document.body.appendChild(optD); 			 			if(almsie){ 				aiF = document.createElement('IFRAME'); 				aiF.border='0'; 				aiF.style.width = optD.clientWidth + 'px';
 				aiF.style.height = optD.clientHeight + 'px'; 				aiF.id = 'frame'; 				 				document.body.appendChild(aiF); 			}
 			 			var allInputs = document.getElementsByTagName('INPUT'); 			for(var no=0;no<allInputs.length;no++){ 				if(!allInputs[no].onkeyup)allInputs[no].onfocus = options_hide; 			}			
 			var allSelects = document.getElementsByTagName('SELECT'); 			for(var no=0;no<allSelects.length;no++){ 				allSelects[no].onfocus = options_hide; 			}
 
 			var oldonkeydown=document.body.onkeydown;
 			if(typeof oldonkeydown!='function'){ 				document.body.onkeydown=option_keyNavigation; 			}else{ 				document.body.onkeydown=function(){ 					oldonkeydown();
 				option_keyNavigation() ;}
 			}
 			var oldonresize=document.body.onresize; 			if(typeof oldonresize!='function'){ 				document.body.onresize=function() {option_resize(inputObj); }; 			}else{ 				document.body.onresize=function(){oldonresize();
 				option_resize(inputObj) ;}
 			}
 				
 		}
 		
 		if(inputObj.value.length<minLetters){ 			options_hide(); 			return; 		} 				 
 		optD.style.top = (getTopPos(inputObj) + inputObj.offsetHeight + yOffset) + 'px'; 		optD.style.left = (getLeftPos(inputObj) + xOffset) + 'px'; 		if(aiF){
 			aiF.style.left = optD.style.left; 			aiF.style.top = optD.style.top;			 		}
 		
 		aInp = inputObj; 		optD.onselectstart =  list_cancelEvent; 		currentListIndex++; 		optD.innerHTML = ''; 		var url = serverFile + '?' + data + '=1&letters=' + inputObj.value.replace(" ","+");
 		onCompletion = function(){ option_list_showContent(inputObj,data); };	// Specify function that will be executed after file has been found
 		showHint(url) 	 			 	}
 	
 	function option_keyNavigation(e) 	{ 		if(document.all)e = event; 		 		if(!optD)return; 		if(optD.style.display=='none')return;
 		
 		if(e.keyCode==38){	// Up arrow
 			if(!aItem)return; 			if(aItem && !aItem.previousSibling)return; 			options_rollOverActiveItem(aItem.previousSibling,true); 		}
 		
 		if(e.keyCode==40){	// Down arrow
 			if(!aItem){ 				options_rollOverActiveItem(aFItem,true); 			}else{ 				if(!aItem.nextSibling)return; 				options_rollOverActiveItem(aItem.nextSibling,true); 			} 		}
 		
 		if(e.keyCode==13 || e.keyCode==9){	 			if(aItem && aItem.className=='optionDivSelected')option_setValue(false,aItem); 			if(e.keyCode==13)return false; else return true; 		}
 		if(e.keyCode==27){	// Escape key
 			options_hide();			 		} 	}
 	
 	
 	document.documentElement.onclick = listHide; 	function listHide(e) 	{ 		if(document.all)e = event; 		 		if (e.target) source = e.target; 			else if (e.srcElement) source = e.srcElement; 			if (source.nodeType == 3) 				source = source.parentNode;		 		if(source.tagName.toLowerCase()!='input' && source.tagName.toLowerCase()!='textarea')options_hide(); 		 	} 	 
 

