function handleSearchSuggest(event, type, keyword) {
	var key = event.keyCode;
	if ( ( (key >= 48 && key <= 57) || (key >= 65 && key <= 90) || (key == 32) || (key == 8)) && (keyword.length >= 2) ) {
		makeHttpRequest('/dashboard.php?command=search&type='+type+'&param='+keyword+'', '', 'handleSearchResult', type, '', 'GET');
	} else if (keyword.length == 0) {
		clearSuggest(type);
	}
}

function handleSearchResult(result, type) {
	try {   
		var oSuggest = document.getElementById(type+'_suggest');
		var keyword = document.getElementById(type+'_keyword').value;

		oSuggest.innerHTML = '';
		oSuggest.style.visibility = 'visible';
		var str = result.split("\n");           
		for(var i=0; i < str.length - 1; i++) {
			var string = str[i].split("_#_");
			var id = string[0];
			var text = string[1];

			var suggest = '<div onmouseover="this.className=\'suggest_link_over\';" ';
			suggest += 'onmouseout="this.className=\'suggest_link\';" ';
			suggest += 'onclick="setSearch(\'' + type + '\', \'' + id + '\', \'' + addslashes(text) + '\');" ';
			suggest += 'class="suggest_link">' + stripslashes(text.replace( new RegExp( keyword, "i" ), '<b>' + keyword + '</b>' ) ) + '</div>';
			oSuggest.innerHTML += suggest;
			
		}
	} catch (e) {
		return false;
	}		
}

function setSearch(type, id, text) {
	//clear empty options
	try {
		var object = document.getElementById(type+'_result');
		for(var i = 0; i < object.options.length; i++) {
			if (object.options[i].value == '' || object.options[i].text == '')
				object.options[i] = null;
		}
	} catch (e) {
		return false;
	}

	//add option
	try {
		var max = document.getElementById(type+'_max').value;
		var oResult = document.getElementById(type+'_result');
		
		if (max > 0 && oResult.options.length < max) {
			oResult.options[oResult.options.length] = new Option(text, id); 
		} else {
			alert('maximum is '+max);
		}
		clearSuggest(type);
	} catch (e) {
		return false;
	}
}


function handleSearchResultNew(result, type) {

	try {   

		var oSuggest = document.getElementById(type+'_suggest');
		var keyword = document.getElementById(type+'_keyword').value;

		oSuggest.innerHTML = '';
		oSuggest.style.visibility = 'visible';
	
		alert(result);

		xmlDoc = parseXML(result);

		var aId 		= xmlDoc.getElementsByTagName("id");
		var aSummary	= xmlDoc.getElementsByTagName("summary");
		var aResult		= xmlDoc.getElementsByTagName("result");

		alert(aId.length);

		if (aId.length == 0)
		 	clearSuggest(type);

		for (var i = 0; i < aId.length; i++) {

            var id = aId[i].childNodes[0].nodeValue;
			var summary = aSummary[i].childNodes[0].nodeValue;
			var result = aResult[i].childNodes;

			alert(id + ' ' +summary + ' - '+result);

			var sResult = '<result>';

			alert(aResult[i].childNodes.length);

			for (var j = 0; j < aResult[i].childNodes.length; j++) {
				var node = aResult[i].childNodes[j]
             	sResult = sResult + '<'  + node.nodeName + '>' +  node.firstChild.nodeValue + '</' + node.nodeName + '>';
			}

			sResult = sResult + '</result>';

			var suggest = '<div onmouseover="this.className=\'suggest_link_over\';" ';
			suggest += 'onmouseout="this.className=\'suggest_link\';" ';
			suggest += 'onclick="setSearch(\'' + type + '\', \'' + id + '\', \'' + addslashes(summary) + '\', \'' + addslashes(sResult) + '\');" ';
			suggest += 'class="suggest_link">' + stripslashes(summary.replace( new RegExp( keyword, "i" ), '<b>' + keyword + '</b>' ) ) + '</div>';
			oSuggest.innerHTML += suggest;

		}
	
	} catch (e) {
		alert(e.message);
		return false;
	}		
}           

function clearSuggest(type) {
	try {   
		var oSuggest = document.getElementById(type+'_suggest');
		oSuggest.innerHTML = '';
		oSuggest.style.visibility = 'hidden';
	} catch (e) {
		return false;
	}
}

function setSearchNew(type, id, text, result) {
	//alert(result);

	//clear empty options
	try {
		var object = document.getElementById(type + '_result');
		for(var i = 0; i < object.options.length; i++) {
			if (object.options[i].value == '' || object.options[i].text == '')
				object.options[i] = null;
		}
	} catch (e) {
		//return false;
	}

	//add option
	try {
		var oResult = document.getElementById(type+'_result');
		oResult.options[oResult.options.length] = new Option(text, id); 
		clearSuggest(type);
	} catch (e) {

		try {

			xmlDoc = parseXML(result);

			var oResult = document.getElementById(type+'_keyword');
			oResult.value = xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;

			try {

				//used in new concert
            	if (type == "venue") {
					//Set city name
					document.getElementById('city').value = xmlDoc.getElementsByTagName("city")[0].childNodes[0].nodeValue;

					//Set country
					country = xmlDoc.getElementsByTagName("country")[0].childNodes[0].nodeValue;
					for (var i = 0; i < document.getElementById('country').options.length; i++) {
						if (document.getElementById('country').options[i].value == country) {
							document.getElementById('country').options[i].selected = true;
						}
					}
				}			

			} catch (e) {
				alert(e.message);				
			}

		} catch (e) {
			//alert(e.message);				
		}

		clearSuggest(type);

		return false;
	}
}

function stripslashes(str) {
	str = str.replace(/\\'/g,'\'');
	str = str.replace(/\\"/g,'"');
	str = str.replace(/\\\\/g,'\\');
	str = str.replace(/\\0/g,'\0');
	return str;
}

function addslashes(str) {
    var tarea = document.createElement('textarea');
    tarea.innerHTML = str;
    str = tarea.value;

	str = str.replace(/\'/g,'\\\'');
	//str = str.replace(/\"/g,'\\"');
	//str = str.replace(/\\/g,'\\\\');
	//str = str.replace(/\0/g,'\\0');
	return str;
}

function deleteOption(object) {
	try {
		object.options[object.options.selectedIndex] = null;
	} catch (e) {
		return false;
	}
}

function selectAll(objectId) {
	try {
		var object = document.getElementById(objectId);
		for(var i = 0; i < object.options.length; i++) {
			object.options[i].selected = true;
		}
	} catch (e) {
		return false;
	}
}