//var searchfieldcontent = document.getElementById(search_field).value;
var searchfieldcontent='';
//var searchfieldcontent = document.searchpro.searchfield.value;
//alert(searchfieldcontent);

var key;
var div_field;
var search_field = 'searchfield1';
var g_aSuggestLayers = new Array('suggestlayer1', 'suggestlayer2');
var par;
var http;

//http = new ActiveXObject("Microsoft.XMLHTTP");
function handleHttpResponse() {
//alert(document.getElementById(search_field).value);
	if (http.readyState == 4) {

		if (http.responseText.indexOf('invalid') == -1) {

			// Use the XML DOM to unpack the data
			var xmlDocument = http.responseXML;
//			xmlDocument = http.responseText;
			if(xmlDocument != null /* && xmlDocument.getElementsByTagName */){
				if(xmlDocument.getElementsByTagName('succes').item(0)){
					if(xmlDocument.getElementsByTagName('succes').item(0).firstChild.data == 1){
						var word = xmlDocument.getElementsByTagName('word').item(0).firstChild.data;
						//autocompleteField(word);
						arrWords = Array();
						arrNotifications = Array();
						arrValues = Array();
						for(i=0;i<xmlDocument.getElementsByTagName('word').length;i++){
							var l_sWord = xmlDocument.getElementsByTagName('word').item(i).firstChild.data;
							arrWords[arrWords.length] = l_sWord;
							var l_sType = "";
							try
							{
								l_sType = xmlDocument.getElementsByTagName('word').item(i).getAttribute("type");
							}
							catch (e){
								l_sType = null;
							}
							try
							{
								l_sValue = xmlDocument.getElementsByTagName('word').item(i).getAttribute("value");
							}
							catch (e){
								l_sValue = null;
							}
							if(l_sType == null){
								l_sType = 'product';
							}
							if (l_sValue == null) {
								l_sValue = l_sWord;
							}
							arrNotifications[arrNotifications.length] = l_sType;
							arrValues[arrValues.length] = l_sValue;
						}
						//alert(arrWords.length);
						if(xmlDocument.getElementsByTagName('word').length != 1){
							bldAutoCompleteLayer(arrWords, arrNotifications, arrValues);
						}else{
							if(document.getElementById(search_field)){
								//if(xmlDocument.getElementsByTagName('word').item(0).firstChild.data != document.getElementById(search_field).value)
								//{
									
									bldAutoCompleteLayer(arrWords, arrNotifications, arrValues);
								//}else{
								//	bldAutoCompleteLayer(new Array());
								//}
							}else{
								bldAutoCompleteLayer(new Array(), new Array(), new Array());
							}
						}
				}else{
						bldAutoCompleteLayer(new Array(), new Array(), new Array());
					}
				}
				isWorking = false;
			}
		}
	}
}

var intval=""

function start_clock()
{
var d=new Date()
var sw="am"
var h=d.getHours()
var m=d.getMinutes() + ""
var s=d.getSeconds() + ""
if(h>12)
	{
	h-=12
	sw="pm"
	}
if(m.length==1)
	{
	m="0" + m
	}
if(s.length==1)
	{
	s="0" + s
	}

}

var isWorking = false;

function updateAutocompleteSearch() {
	if(document.getElementById(div_field)){
		var d=document.getElementById(div_field);
		for(var i=0;i<d.childNodes.length;i++){
			d.removeChild(d.childNodes[i]);
		}
	}
	

	if(searchfieldcontent != document.getElementById(search_field).value){
		/** 
		 * This check also check to make sure the autocomplete is only fired when more than two 
		 * characters have been typed.
		 * -> document.getElementById(search_field).value.length > 2
		 **/
		if ((http !== false) && document.getElementById(search_field).value.length > 2) {
			try {
				// Abort previous request
				http.onreadystatechange = function(){}
				http.abort();

				//var url = "autocompletesearch.php?param="; // The server-side script
				var url = "autocompletesearch.php?cnt="+par+"&param="; // The server-side script
				var fvalue = document.getElementById(search_field).value;
				//alert(url);
				http.open("GET", url + escape(fvalue), true);
				//http.overrideMimeType("text/xml");
				http.onreadystatechange = handleHttpResponse;
				isWorking = true;
				http.send(null);
			}
			catch(e){

			}
		}
	}
	searchfieldcontent = document.getElementById(search_field).value;

}

function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (E) {
				xmlhttp = false;
			}
		}
	@else
	xmlhttp = false;
	@end @*/
//if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
/*
if (xmlhttp ){
		try {
			xmlhttp =new XMLHttpRequest();
			xmlhttp.overrideMimeType("text/xml");
		}
		catch (e) {
					var r = '';
    for (var p in e)
      r += p + ': ' + e[p] + '\n';
    alert("123 : "+r);
			xmlhttp = false;
		}
	}

*/
if(window.XMLHttpRequest) {
    	try {
			xmlhttp = new XMLHttpRequest();
        } catch(e) {
			xmlhttp = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			xmlhttp.overrideMimeType("text/xml");
      	} catch(e) {
        	try {
          		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		xmlhttp = false;
        	}
		}
    }



	return xmlhttp;
}
var http = getHTTPObject(); // Create the HTTP Object

/*http.open("GET", "autocompletesearch.php?param=a",true);
http.onreadystatechange=function() {
  if (http.readyState==4) {
   alert(http.responseText)
  }
 }
 http.send(null)
 */

function autocompleteField(value){
	

	if(document.getElementById(div_field)){
		field = document.getElementById(search_field);
		if(field.createTextRange) {
			//var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
			//if (cursorKeys.indexOf(event.keyCode+";") == -1) {
				var r1 = field.createTextRange();
				var oldValue = r1.text;
				var newValue = true ? value : oldValue;
				if (newValue != field.value) {
					field.value = newValue;
					var rNew = field.createTextRange();
					rNew.moveStart('character', oldValue.length) ;
					rNew.select();
				}
			//}
		}
	}
}
function bldAutoCompleteLayer(arr, p_aTypes, p_aValues){

	for(var i=0;i<g_aSuggestLayers.length;i++){
		try{
			var l_oSuggestLayer = document.getElementById(g_aSuggestLayers[i]);
			if(l_oSuggestLayer != null){
				for(j=0;j<l_oSuggestLayer.childNodes.length;j++){
					l_oSuggestLayer.removeChild(l_oSuggestLayer.childNodes[j]);
				}
				l_oSuggestLayer.style.visibility = 'hidden';
			}
		}
		catch(e){}
	}

	if(document.getElementById(div_field)){
		var d=document.getElementById(div_field);
		
		for(i=0;i<d.childNodes.length;i++){
			d.removeChild(d.childNodes[i]);
		}
		//document.getElementById(div_field).innerHTML = '';
		
		if(arr.length > 0){
//			content = '';
			
			l_sContent = '<div class="closebutton" onMouseover="javascript:this.className=\'closebutton\';" onMouseout="javascript:this.className=\'closebutton\';" onClick="blurAutoCompleteLayerclose();" align="right" ></div>';

			//if(arr.length >= 10 ){
			
			for(i=0;i<arr.length;i++){
				//var strWord = new String(arr[i]);
				//strWord = strWord.replace(' ','&nbsp;');				

				// p_aTypes[i]
				var idval=1;
				l_sContent = l_sContent +
						'<table class="suggestlayeritem"><tr><td><div class="suggestlayeritem" ' +
						'id="suggestlayeritem'+par+'_'+(i+1)+'" '+
						
						'onMouseover="javascript:this.className=\'suggestlayeritem_selected\';" ' +
						'onMouseout="javascript:this.className=\'suggestlayeritem\';"' +
						'onClick="document.getElementById(\''+search_field+'\').value=\'' + p_aValues[i] + '\';document.getElementById(\''+search_field+'\').focus();'+ 'bldAutoCompleteLayer(new Array());"' + '>"' + arr[i] + '"</div></td><td>';


				try
				{
					if(g_aAutocompleteFiles != null && g_aAutocompleteMsgs != null){
						// Get image url
						var l_sTypeImgUrl = "";
						try{
							l_sTypeImgUrl = g_aAutocompleteFiles.result_type_description_images[ p_aTypes[i] ];
						}
						catch (e){
							l_sTypeImgUrl = "";
						}

						// Get image description
						var l_sResultItemDescription = "";
						try
						{
							l_sResultItemDescription = g_aAutocompleteMsgs.result_type_descriptions[ p_aTypes[i] ];
						}
						catch (e){
							l_sResultItemDescription = "";
						}

						// Create image tag
						var l_sTypeImg = "";
						if(l_sTypeImgUrl != "" && l_sTypeImgUrl != null && l_sTypeImgUrl != undefined && l_sTypeImgUrl != 'undefined' && l_sResultItemDescription != null){
							l_sTypeImg = '<img title="' + l_sResultItemDescription + '" class="typeimage" src="' + l_sTypeImgUrl + '" />';
						}
						// Add image tag to layer
						if(l_sTypeImg != ""){
							//l_sContent += '<div class="suggestlayeritem_notification">' + l_sTypeImg + '</div>';
						}
					}
				}
				catch (e){}
				l_sContent += '</td></tr></table>';
			}
			
			
			/*content = content +
					'<div class="suggestlayeritem" ' +
					'id="suggestlayeritem'+par+'_'+(i+1)+'" '+
					
					'onMouseover="javascript:this.className=\'suggestlayeritem_selected\';" ' +
					'onMouseout="javascript:this.className=\'suggestlayeritem\';"' +
					'onClick="document.getElementById(\'searchfield\').value=this.innerHTML;document.getElementById(\'searchfield\').focus();'+ 'bldAutoCompleteLayer(new Array());"' + '>' + arr[i] + '</div>';
			}*/
			
			
			document.getElementById(div_field).innerHTML = l_sContent;
			document.getElementById(div_field).style.visibility = 'visible';
//			alert(l_sContent);

			var hideSearchFields = true;
			var i = 1;
			while(hideSearchFields){
				
				if(document.getElementById('searchfield_'+i)){
					document.getElementById('searchfield_'+i).style.visibility = 'hidden';
				}else{
					hideSearchFields = false;
				}
				i++;
			}
		}else{
			document.getElementById(div_field).style.visibility = 'hidden';
			var showSearchFields = true;
			var i = 1;
			while(showSearchFields){
				if(document.getElementById('searchfield_'+i)){
					document.getElementById('searchfield_'+i).style.visibility = 'visible';
				}else{
					showSearchFields = false;
				}
				i++;
			}
		}
	}
//}
}

function bldAutoCompleteLayerSearch(val){
	bldAutoCompleteLayer(new Array());
}
function checkFormSubmit(){
	var getItems = true;
	var i = 1;
	var selectedIndex = 0;
	while(getItems){
		if(document.getElementById('suggestlayeritem_'+i)){
			if(document.getElementById('suggestlayeritem_'+i).className == 'suggestlayeritem_selected'){
				selectedIndex = i;
			}
		}else{
			getItems = false;
		}
		i++;
	}
	if(selectedIndex > 0){
		return false;
	}else{
		return true;
	}

}
function blurAutoCompleteLayer(){
//	setTimeout('blurAutoCompleteLayerNow("'+document.getElementById(search_field).value+'")',200);
//	http = getHTTPObject();
//	updateAutocompleteSearch();
	blurAutoCompleteLayerNow(document.getElementById(search_field).value);
}

function blurAutoCompleteLayer1(sfld,divfld,cnt){
//	setTimeout('blurAutoCompleteLayerNow("'+document.getElementById(search_field).value+'")',200);
//	http = getHTTPObject();
//	updateAutocompleteSearch();
	div_field=divfld;
	search_field=sfld;
	//searchfieldcontent=document.getElementById(sfld).value;
	par=cnt;
	blurAutoCompleteLayerNow(document.getElementById(sfld).value);
}

function blurAutoCompleteLayerclose(){
		bldAutoCompleteLayer(new Array());
}
function blurAutoCompleteLayerNow(word){	

	if(document.getElementById(search_field).value == word){
		bldAutoCompleteLayer(new Array());
	}
}

function keygetter(event){
	if (!event && window.event) event = window.event;
	if (event) key = event.keyCode;
	else key = event.which;
}

function keyHandler(event){
	try {
		df = document.getElememtById(div_field).style.visibility;
	} catch(e) {
		return;
	}
	if (key == 40){ //Key down
		if(document.getElementById(div_field).style.visibility == "visible"){
			var getItems = true;
			var i = 1;
			var selectedIndex = 0;
			var items = Array();
			while(getItems){
				if(document.getElementById('suggestlayeritem_'+i)){
					if(document.getElementById('suggestlayeritem_'+i).className == 'suggestlayeritem_selected'){
						selectedIndex = i;
						items[items.length] = 'suggestlayeritem_'+i;
					}else{
						items[items.length] = 'suggestlayeritem_'+i;
					}
				}else{
					getItems = false;
				}
				i++;
			}
			// Check if the focus is not already on the last element
			if(items.length == selectedIndex){
				if(items.length > 0){
					document.getElementById(items[(selectedIndex-1)]).className = 'suggestlayeritem';
				}
				document.getElementById(search_field).focus();
			}else{
				if(document.getElementById(items[selectedIndex-1]) ){
					document.getElementById(items[selectedIndex-1]).className = 'suggestlayeritem';
				}
				if(document.getElementById(items[selectedIndex])){
					document.getElementById(items[selectedIndex]).className = 'suggestlayeritem_selected';
					document.getElementById(search_field).value = document.getElementById(items[selectedIndex]).innerHTML;
				}
			}
		}
	}else if (key == 38){ //Key up

		if(document.getElementById(div_field).style.visibility == "visible"){
				
			var getItems = true;
			var i = 1;
			var selectedIndex = 0;
			var items = Array();
			while(getItems){
				if(document.getElementById('suggestlayeritem_'+i)){
					if(document.getElementById('suggestlayeritem_'+i).className == 'suggestlayeritem_selected'){
						selectedIndex = i;
						items[items.length] = 'suggestlayeritem_'+i;
					}else{
						items[items.length] = 'suggestlayeritem_'+i;
					}
				}else{
					getItems = false;
				}
				i++;
			}
				
			if(selectedIndex == 0){
				//alert(selectedIndex);
				document.getElementById(items[(1)]).className = 'suggestlayeritem';
			}
			else if(selectedIndex == 0){
//				alert(i);
			// Check if the focus is not already on the first element
			if(selectedIndex <= 1){
				if(items.length > 0){
					document.getElementById(items[(selectedIndex-1)]).className = 'suggestlayeritem';
				}
				document.getElementById(search_field).focus();
			}else{

				if(document.getElementById(items[selectedIndex-1])){
					document.getElementById(items[selectedIndex-1]).className = 'suggestlayeritem';
				}
				if(document.getElementById(items[selectedIndex-2])){
					document.getElementById(items[selectedIndex-2]).className = 'suggestlayeritem_selected';
					document.getElementById(search_field).value = document.getElementById(items[selectedIndex-2]).innerHTML;
				}
			}
		}
		}
	}else if(key == 13){ // Enter
		if(document.getElementById(div_field).style.visibility == "visible"){
			bldAutoCompleteLayer(new Array());
		}
	}else if (key == 27){ // Esc
		bldAutoCompleteLayer(new Array());
	}else{

		updateAutocompleteSearch();
	}
}

document.onkeydown = keygetter; //needed for Opera...
document.onkeyup = keyHandler;
function funChecks(){
	alert("123");
}
