	var SuggestListId = 'ssList';
	var classSuggestDiv = 'ssDiv';
	var classSuggestDivSponsored = 'ssSponsoredDiv';
	var classSuggestDivSelected = 'ssDivSelected';
	var classSuggestDivSponsoredSelected = 'ssSponsoredDivSelected';
	var minChars = 3; // without spaces
	var delay = 0.5; // seconds
	var ssBadLang = new Array('RUS', 'CHN', 'JPN', 'BAIDU', 'KOR', 'POR', 'POL'); // BAIDU -> Chinese (CHN)

	var ajaxBox_offsetX = 0;
	var ajaxBox_offsetY = 0;
	var ajax_list_externalFile = '/ss';	// '/ss'

	var ajax_list_objects = new Array();
	var ajax_list_cachedLists = new Array();
	var ajax_list_cachedListsSponsored = new Array();
	var ajax_list_activeInput = false;
	var ajax_list_activeItem;
	var ajax_list_optionDivFirstItem = false;
	var ajax_list_optionDivLastItem = false;
	var ajax_list_currentLetters = new Array();
	var ajax_optionDiv = false;
	var ajax_optionDiv_iframe = false;
	var timeout;
	var tLetters = false;

	var ajax_list_MSIE = false;
	var ajax_list_MSIE_8 = false;
	if( navigator.userAgent.indexOf('MSIE 8')>=0 ) ajax_list_MSIE_8 = true;
	if(navigator.userAgent.indexOf('MSIE ')>=0 &&
		navigator.userAgent.indexOf('Opera')<0 &&
		navigator.userAgent.indexOf('MSIE 8')<0 ) ajax_list_MSIE=true;

	var currentListIndex = 0;

	String.prototype.trim = function() {
		return this.replace(/^\s+|\s+$/g,"");
	}

	String.prototype.htmlspecialchars = function() {
		var chars = Array("&", "<", ">", '"', "'");
		var replacements = Array("&amp;", "&lt;", "&gt;", "&quot;", "'");
		var text = this;
   		for (var i=0; i<chars.length; i++) {
   			var re = new RegExp(chars[i], "gi");
   			if(re.test(text)) {
   				text = text.replace(re, replacements[i]);
   			}
   		}
   		return text;
	}

	function in_array(what, where) {
		for(var i=0; i<where.length; i++) {
			if(what == where[i])
				return true;
		}
		return false;
	}

	function ajax_getTopPos(inputObj)
	{
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null) {
	  	returnValue += inputObj.offsetTop;
	  }
	  return returnValue;
	}

	function ajax_list_cancelEvent()
	{
		return false;
	}

	function ajax_getLeftPos(inputObj)
	{
	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)  {
	  	returnValue += inputObj.offsetLeft;
	  }

	  if (ajax_list_MSIE)
	  	returnValue -= document.getElementById('language').offsetLeft;
	  return returnValue;
	}

	function ajax_option_setValue(e,inputObj)
	{
		if(!inputObj)inputObj=this;
		var tmpValue = inputObj.innerHTML;
		if(ajax_list_MSIE)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent;
		if(!tmpValue)tmpValue = inputObj.innerHTML;
		ajax_list_activeInput.value = tmpValue;

  		var f1=setTimeout('ajax_list_activeInput.focus()',1);
  		var f2=setTimeout('ajax_list_activeInput.value = ajax_list_activeInput.value',1);

		ajax_options_hide();
		document.f.submit();
		return true;
	}

	function ajax_options_hide()
	{
		if(ajax_optionDiv)ajax_optionDiv.style.display='none';
		if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='none';
	}

	function ajax_options_show()
	{
		if(ajax_optionDiv)ajax_optionDiv.style.display='block';
		if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='block';
	}

	function ajax_options_rollOverActiveItem(item,fromKeyBoard)
	{
		if(ajax_list_activeItem)
			if(ajax_list_activeItem.className == classSuggestDivSelected) ajax_list_activeItem.className = classSuggestDiv;
			else ajax_list_activeItem.className = classSuggestDivSponsored;
		if (item.className == classSuggestDiv) item.className = classSuggestDivSelected;
			else item.className=classSuggestDivSponsoredSelected;

		ajax_list_activeItem = item;

		if(fromKeyBoard){
			if(ajax_list_activeItem.offsetTop>ajax_optionDiv.offsetHeight){
				ajax_optionDiv.scrollTop = ajax_list_activeItem.offsetTop - ajax_optionDiv.offsetHeight + ajax_list_activeItem.offsetHeight + 2 ;
			}
			if(ajax_list_activeItem.offsetTop<ajax_optionDiv.scrollTop)
			{
				ajax_optionDiv.scrollTop = 0;
			}
			var inputObj = ajax_list_activeItem;
			if(!inputObj)inputObj=this;
			var tmpValue = inputObj.innerHTML;
			if(ajax_list_MSIE)tmpValue = inputObj.innerText;else tmpValue = inputObj.textContent;
			if(!tmpValue)tmpValue = inputObj.innerHTML;
			ajax_list_activeInput.value = tmpValue;
		}
	}

	function ajax_option_list_buildList(letters,paramToExternalFile)
	{
		ajax_optionDiv.innerHTML = '';
		ajax_list_activeItem = false;
		if(ajax_list_cachedLists[paramToExternalFile][letters.trim().toLowerCase()].length<=0){
			ajax_options_hide();
			return;
		}

		ajax_list_optionDivFirstItem = false;
		ajax_list_optionDivLastItem = false;
		var optionsAdded = false;
		for(var no=0;no<ajax_list_cachedLists[paramToExternalFile][letters.trim().toLowerCase()].length;no++){
			if(ajax_list_cachedLists[paramToExternalFile][letters.trim().toLowerCase()][no].length==0)continue;
			optionsAdded = true;
			var div = document.createElement('DIV');
			var items = ajax_list_cachedLists[paramToExternalFile][letters.trim().toLowerCase()][no].split(/###/gi);

			div.innerHTML = items[0];
			div.className=classSuggestDiv;
			div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false) }
			div.onclick = ajax_option_setValue;
			if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem = div;
			ajax_list_optionDivLastItem = div;
			ajax_optionDiv.appendChild(div);
		}

/*SPONSORED*/

		for(var no=0;no<ajax_list_cachedListsSponsored[paramToExternalFile][letters.trim().toLowerCase()].length;no++){
			if(ajax_list_cachedListsSponsored[paramToExternalFile][letters.trim().toLowerCase()][no].length==0)continue;
			optionsAdded = true;
			var div = document.createElement('DIV');
			var items = ajax_list_cachedListsSponsored[paramToExternalFile][letters.trim().toLowerCase()][no].split(/###/gi);

			div.innerHTML = items[0];
			div.className=classSuggestDivSponsored;
			div.onmouseover = function(){ ajax_options_rollOverActiveItem(this,false) }
			if(!ajax_list_optionDivFirstItem)ajax_list_optionDivFirstItem = div;
			ajax_list_optionDivLastItem = div;
			ajax_optionDiv.appendChild(div);
		}

		if(optionsAdded){
			ajax_optionDiv.style.display='block';
			if(ajax_optionDiv_iframe)ajax_optionDiv_iframe.style.display='';
			//ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
		}
	}


	function ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,whichIndex)
	{
		if(whichIndex!=currentListIndex)return;
		var letters = inputObj.value.htmlspecialchars();
		var content = ajax_list_objects[ajaxIndex].response;
		var parts = content.split(/#s#/);

		var ssList = false;
		if ( parts[0] )	if ( parts[0] == 'ssList' ) ssList = true;
		if (!ssList) return;

		var elements = new Array();
		if ( parts[1] )
			elements = parts[1].split('|');

		var elements2 = new Array();
		if ( parts[2] )
			elements2 = parts[2].split('|');

		ajax_list_cachedLists[paramToExternalFile][letters.trim().toLowerCase()] = elements;
		ajax_list_cachedListsSponsored[paramToExternalFile][letters.trim().toLowerCase()] = elements2;

		if(!ajax_optionDiv ){
			ajax_optionDiv = document.createElement('DIV');
			ajax_optionDiv.id = SuggestListId;
			document.getElementById('search_input').appendChild(ajax_optionDiv);

			var allInputs = document.getElementsByTagName('INPUT');
			for(var no=0;no<allInputs.length;no++){
				if(!allInputs[no].onkeyup)allInputs[no].onfocus = ajax_options_hide;
			}
			var allSelects = document.getElementsByTagName('SELECT');
			for(var no=0;no<allSelects.length;no++){
				allSelects[no].onfocus = ajax_options_hide;
			}

			var br = navigator.userAgent.toLowerCase();
			if (br.indexOf("opera") >= 0) {
				var oldonkeypress=document.body.onkeypress;
				if(typeof oldonkeypress!='function'){
					document.body.onkeypress=ajax_option_keyNavigation;
				}else{
					document.body.onkeypress=function(){
						oldonkeypress();
					ajax_option_keyNavigation() ;}
				}
			}
			else {
				var oldonkeydown=document.body.onkeydown;
				if(typeof oldonkeydown!='function'){
					document.body.onkeydown=ajax_option_keyNavigation;
				}else{
					document.body.onkeydown=function(){
						oldonkeydown();
					ajax_option_keyNavigation() ;}
				}
			}
			/*var oldonresize=document.body.onresize;
			if(typeof oldonresize!='function'){
				document.body.onresize=function() {ajax_option_resize(inputObj); };
			}else{
				document.body.onresize=function(){oldonresize();
				ajax_option_resize(inputObj) ;}
			}*/
		}

		//ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
		//ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
		//if(ajax_optionDiv_iframe){
			//ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
			//ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
		//}

		ajax_option_list_buildList(letters,paramToExternalFile);
	}

	function ajax_option_resize(inputObj)
	{
		ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
		ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
		if(ajax_optionDiv_iframe){
			ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
			ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
		}
	}

	function start_suggestion(inputObj,paramToExternalFile,e)
	{
		clearTimeout(timeout);
		var tempKeyCode = e.keyCode;
		var hidet = true;

		var lang_items = document.f.action.split(/\//g);
		if ( ! ajax_list_MSIE && ! ajax_list_MSIE_8 ){
			if ( lang_items[3] )
				tLang = lang_items[3];
				else
					tLang = 'ENG';
		}
		else {
				if ( lang_items[2] )
					tLang = lang_items[2];
					else
						tLang = 'ENG';
		}
		if( in_array( tLang.toUpperCase(), ssBadLang ) ) {
			ajax_options_hide();
			return;
		}

		if( tempKeyCode==9 || tempKeyCode==27) { ajax_options_hide(); return false; }
		if( tempKeyCode==13 )
			if(!ajax_list_activeItem){
				ajax_options_hide();
//				document.f.submit();
				return false;
			}
			else {
				ajax_options_hide();
				return true;
			}
		if( tempKeyCode==38 || tempKeyCode==40 ) hidet = false;
		if ( tempKeyCode==37 || tempKeyCode==39 ) return;

		if (ajax_list_cachedLists[paramToExternalFile]){
			if (ajax_list_cachedLists[paramToExternalFile][inputObj.value.htmlspecialchars().trim().toLowerCase()] && hidet)
				if (ajax_list_cachedLists[paramToExternalFile][inputObj.value.htmlspecialchars().trim().toLowerCase()].length > 0)
					{ajax_option_list_buildList(inputObj.value.htmlspecialchars().trim(),paramToExternalFile);
						tLetters = false;
						if (inputObj.value)
							tLetters = inputObj.value;
						return true;
					}
		}

		if (hidet) ajax_options_hide();

		hidet = false;
		if (ajax_optionDiv)
			if (ajax_optionDiv.style.display=='block')
				hidet = true;
		if (!hidet)
			timeout=setTimeout(function(){ss_showOptions(inputObj,paramToExternalFile,tempKeyCode)}, delay*1000);
	}

	function last2Sp(str)
	{
		if ((str[str.length - 1] == " ") && (str[str.length - 2] == " "))
			return true;
			else return false;
	}

	function ss_showOptions(inputObj,paramToExternalFile,e)
	{
		if( (inputObj.value.replace(/ /g,"").length>=minChars)  ){

			var d = document;
			var items = d.f.action.split(/\//g);
			context = items[4];
			if ( ajax_list_MSIE || ajax_list_MSIE_8 )
				context = items[3];

			if(ajax_list_currentLetters[inputObj.name]==inputObj.value.htmlspecialchars())return;
			ajax_list_currentLetters[inputObj.name] = inputObj.value.htmlspecialchars();

		}else { return; }

		tLetters = false;
		if (inputObj.value)
			tLetters = inputObj.value;
		ajax_list_activeInput = inputObj;
		ajax_optionDiv.onselectstart =  ajax_list_cancelEvent;
		currentListIndex++;

		if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile] = new Array();
		if(!ajax_list_cachedListsSponsored[paramToExternalFile])ajax_list_cachedListsSponsored[paramToExternalFile] = new Array();

		var dd = document.location;
		var tUrl = dd.protocol + "//" + dd.hostname + ajax_list_externalFile;
		var tmpIndex=currentListIndex/1;
		ajax_optionDiv.innerHTML = '';
		var ajaxIndex = ajax_list_objects.length;
		ajax_list_objects[ajaxIndex] = new sack();
		var url = tUrl + '?' + paramToExternalFile + '=1&context=' + context +'&q=' + inputObj.value.replace(" ","+").htmlspecialchars();
		ajax_list_objects[ajaxIndex].requestFile = url;	// Specifying which file to get
		ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,paramToExternalFile,tmpIndex); };	// Specify function that will be executed after file has been found
		ajax_list_objects[ajaxIndex].runAJAX();		// Execute AJAX function

	}

	function showStart(){
		if (tLetters){
		if(ajax_list_activeItem.className == classSuggestDivSelected)
			ajax_list_activeItem.className = classSuggestDiv;
		if(ajax_list_activeItem.className == classSuggestDivSponsoredSelected)
			ajax_list_activeItem.className = classSuggestDivSponsord;
		ajax_list_activeInput.value = tLetters;
		ajax_list_activeItem = false;
		}
	}
	function ajax_option_keyNavigation(e)
	{
		if(document.all)e = event;

		if(!ajax_optionDiv)return;
		if(ajax_optionDiv.style.display=='none')return;

		if(e.keyCode==38){	// Up arrow
			if(!ajax_list_activeItem) {
				ajax_options_rollOverActiveItem(ajax_list_optionDivLastItem,true); return;
			}
			if(ajax_list_activeItem && !ajax_list_activeItem.previousSibling)
				{showStart();return;}
			ajax_options_rollOverActiveItem(ajax_list_activeItem.previousSibling,true);
		}

		if(e.keyCode==40){	// Down arrow
			if(!ajax_list_activeItem){
					ajax_options_rollOverActiveItem(ajax_list_optionDivFirstItem,true);
			}else{
				if(!ajax_list_activeItem.nextSibling)
					{showStart();return;}
				ajax_options_rollOverActiveItem(ajax_list_activeItem.nextSibling,true);
			}
		}

		if(e.keyCode==13){	// Enter key
			if(ajax_list_activeItem && ajax_list_activeItem.className==classSuggestDivSelected)ajax_option_setValue(false,ajax_list_activeItem);
			return false;
		}

		if(e.keyCode==9) // Tab key
			if(ajax_optionDiv)
				ajax_options_hide();

		if(e.keyCode==27){	// Escape key
			ajax_options_hide();
		}

	}

	document.documentElement.onclick = autoHideList;

	function autoHideList(e)
	{
		if(document.all)e = event;

		if (e.target) source = e.target;
			else if (e.srcElement) source = e.srcElement;
			if (source.nodeType == 3) // defeat Safari bug
				source = source.parentNode;
		if(source.tagName.toLowerCase()!='input' && source.tagName.toLowerCase()!='textarea')ajax_options_hide();
	}