//draft array
//var tempArray=new Array("verDiv","verdinamika","verevka","verdom","Andrej","Arkadij","Boris","Bella","Vika","Vera","Volodya","Vasya","Vitay","Venera","Vervolk","Veronika");

// minimal length of inputed value for activating dropDownList
var minLength=3;	

// id of your input that will become dropDownList
var inpId='employer';

//id of you div where will realised autocomplete
var divId='yourDivId';

//  value of input
var value="";

//this array get data of dropDownList
var arrData=new Array();

// sort array by inputed value
var sortedArr=new Array();

// color of mobile line in dropDownList
var color='silver';
// color of rest lines
var colorOff='white';

// selected value
var selected=0;

//if use ajax
var ajax_flag=true;

var flag_pos=true;
	var arrPos=new Array();
//boolean - if dropDownList is falled
//var falled=false;


function keyPressed(key_code)
{	
	
	
	// only short way to write
	value=document.getElementById(inpId).value;
	
			
	// if pressed keys are up,down or enter
	if(key_code==38 || key_code==40 || key_code==13)
	{
		if (value.length<minLength)
		{
			// Hide List
			document.getElementById(divId).style.display='none';
			return;
		}
		// goto this function
		funcKeysPressed(key_code);
		return;
	}
	else
	{
		// reset variablse if pressed not up or down
		selected=0;
		flag_pos=true;
	}
	
	// reset values
	sortedArr=new Array();
	
	// minimizing of using ajax
	if(value.length<2)
		ajax_flag=true;

	// start ajax
	if (value.length>1 && ajax_flag)
	{
		returnVal(value.slice(0,1));
		ajax_flag=false;
	}	
	
	// if entered value not enough long so  return from here
	if (value.length<minLength)
	{
		// Hide List
		document.getElementById(divId).style.display='none';
		return;
	}
	

	
	// read ajax data
	if(document.getElementById('buffer').value!="")
		arrData=document.getElementById('buffer').value.split(',');
		
		
	// get to sortedArr values from arrData by first entered leters
	for (var i=0,t=0; i<arrData.length; i++)
	{
		var len=value.length;
		if (value.toLowerCase()==arrData[i].substr(0,len).toLowerCase())
		{
			sortedArr[t]=arrData[i];
			t++;
		}
		
	}

	// TEST check how much values in sortedArr ---- //  debager.innerHTML=sortedArr.length;
	// if no same values in arrData
	if (sortedArr.length==0)
	{	
		// Hide List
		document.getElementById(divId).style.display='none';
		return;
	}	
	
		
	//generate html code for dropDownList
	var dropDownList='<div id="innerContainer" style="position:relative;top:0px;" >';
	for (var i=0; i<sortedArr.length; i++)
	{
		str = sortedArr[i].split("#");
		dropDownList+='<div title="'+sortedArr[i]+'" ><input type = "text" value="'+
				str[0]+'" id="in_'+(i+1)+'"  style="border:0px;cursor:hand;cursor:pointer;width:100%;'+
				'background-color:'+colorOff+';padding:2 10 0 10" readonly '+
				' onclick="mouseClick();" '+
				' onmouseover= "mouseOver('+(i+1)+')" /><br /></div>';
	}
	dropDownList+='</div>';
	document.getElementById(divId).style.display="";

	document.getElementById(divId).innerHTML=dropDownList;
	
	if (sortedArr.length>8)
			createScroll(true);	
	else	createScroll(false);	

}

// function for change color when mouse moved
function mouseOver(i_id)
{	
	document.getElementById('innerContainer').style.top="0px";	
	
	for (i=0; i<sortedArr.length; i++)
	{
		str = sortedArr[i].split("#");
		
		if (i+1 != i_id)
			document.getElementById('in_'+(i+1)).style.backgroundColor=colorOff;
		else
		{
			document.getElementById('in_'+(i+1)).style.backgroundColor=color;
			document.getElementById(inpId).value=str[0];
			document.getElementById('policy_id').value=str[1];
			document.getElementById('policy_num').value=str[2];
			selected=i;
		}
	}
}

// don't display DropDownList more after click 
function mouseClick()
{
	if(navigator.appName=="Microsoft Internet Explorer")
	{
		selected=0;
		document.getElementById(divId).style.display='none';
	}
}

// if pressed keys are up,down or enter
function funcKeysPressed(key_code)
{

	// if pressed  key enter
	if (key_code==13)
	{
		if(navigator.appName=="Microsoft Internet Explorer")
		{
			// reset DropDownList
			mouseClick();
		}
		// TEST->debager		document.getElementById('debager').innerHTML='enter -'+selected;
		document.getElementById(inpId).value=sortedArr[selected-1];	
		document.getElementById(divId).style.display='none';
	}
	
	// if pressed key up
	else if (key_code==38)
	{
		if (sortedArr.length>8)
			createScroll(true);
			
		if (selected==0)
		{
			// TEST->debager		document.getElementById('debager').innerHTML='up -'+selected;
			 return;
		}
		else if (selected==1)
		{
			// TEST->debager		document.getElementById('debager').innerHTML='up -'+selected;
			document.getElementById('in_'+selected).style.backgroundColor=color;
			document.getElementById(inpId).value=sortedArr[selected-1];
			
		}
		else
		{
					
			document.getElementById('in_'+(selected)).style.backgroundColor=colorOff;
			if (selected<sortedArr.length && navigator.appName=="Microsoft Internet Explorer")
				document.getElementById('in_'+(selected+1)).style.backgroundColor=colorOff;
			selected--;
			// TEST->debager		document.getElementById('debager').innerHTML='up -'+selected;
			
			document.getElementById('in_'+selected).style.backgroundColor=color;
			document.getElementById(inpId).value=sortedArr[selected-1];
		}
		
		if(navigator.appName=="Microsoft Internet Explorer")
		{
			
				document.getElementById(divId).doScroll("scrollbarUp");
		}
		
	}

	// if pressed key down
	else if (key_code==40)
	{
		if (sortedArr.length>8)
			createScroll(true);			
			
		if (selected==0)
		{
			// TEST->debager		document.getElementById('debager').innerHTML='down -'+selected;
			selected++;
					
			document.getElementById('in_'+selected).style.backgroundColor=color;
			document.getElementById(inpId).value=sortedArr[selected-1];
		}	
		else if(selected<sortedArr.length)
		{
			// TEST->debager		document.getElementById('debager').innerHTML='down -'+selected;
			document.getElementById('in_'+selected).style.backgroundColor=colorOff;
			document.getElementById('in_'+(selected+1)).style.backgroundColor=color;
			document.getElementById(inpId).value=sortedArr[selected];
			selected++;	
		}
		else
		{
			// TEST->debager		document.getElementById('debager').innerHTML='down -'+selected;
			document.getElementById('in_'+selected).style.backgroundColor=color;
			document.getElementById(inpId).value=sortedArr[selected-1];
		}
		
		if(navigator.appName=="Microsoft Internet Explorer")
		{
			if (selected>4)
				document.getElementById(divId).doScroll("scrollbarDown");
		}
	
	}
		

	if(navigator.appName!="Microsoft Internet Explorer")
	{
	
		if (flag_pos && sortedArr.length>8 )
		{
			var tempVar=0;
			for (var p=0; p<sortedArr.length; p++)
			{
				arrPos[p]=-tempVar;
				
				if (p==3)
					tempVar+=10;
				if (p>=4 && p<8)
					tempVar+=16;
				if (p>=8 && p<16)
					tempVar+=20;
				if (p>=16)
					tempVar+=22;
			}
			flag_pos=false;
		}
		if (arrPos.length!=0 )
			if (selected<(sortedArr.length-4) )
				document.getElementById('innerContainer').style.top=arrPos[selected];
			else
				document.getElementById('innerContainer').style.top=arrPos[(sortedArr.length-4)]-2;
	}	
}
var iii=0;
// if clicked not in input-DropDownList (inpId)
function focusOut()
{	

	if(navigator.appName!="Microsoft Internet Explorer")
	{	
		selected=0;
		document.getElementById(divId).style.display='none';
	}
	
}

// from teg BODY
function document_onmousedown()
{
	if(navigator.appName=="Microsoft Internet Explorer")
	{
		var now_id=event.srcElement.id;
		
		// TEST -CHECK ID OF OBJECT AFTER CLICK-    document.getElementById('debager').innerHTML=now_id + " "; 
		
		if (now_id!=divId && now_id!=inpId)
		{
			mouseClick();
		}
	}
}


function createScroll(fl_do)
{
	if (fl_do)
	{
		document.getElementById(divId).style.height="200px";
		document.getElementById(divId).style.overflowY="scroll";
	}
	else
	{
		document.getElementById(divId).style.height="auto";
		document.getElementById(divId).style.overflowY="hidden";
	}
}










