// JavaScript Document
$(document).ready(function(){
	var $autocomplete = $('<ul class="autocomplete"></ul>').hide().insertAfter('#inputSearchBar');
	var selectedItem = null;
	var timeoutId;
	var setSelectedItem = function(item){
		selectedItem = item;
		if (selectedItem === null) {
			$autocomplete.hide();
			return;
		}
		else if(selectedItem == -1){
				
		}
		else if(selectedItem == $autocomplete.find('li').length) {
				
		}
		else if (selectedItem < 0) {
			selectedItem = $autocomplete.find('li').length - 1;
		}
		else if (selectedItem >= $autocomplete.find('li').length) {
			selectedItem = 0;
		}
		$autocomplete.find('li').removeClass('selected').eq(selectedItem).addClass('selected');
		$autocomplete.show();
	};
	var populateSearchField = function() {
		$('#inputSearchBar').val($autocomplete.find('li').eq(selectedItem).text());
		setSelectedItem(null);
	}
	$('#inputSearchBar').attr('autocomplete','off').keyup(function(event){
		var value = $('#inputSearchBar').val();
		if (value == "" || value === undefined || value === null) {
			setSelectedItem(null);
		} else {
			if (event.keyCode > 40 || event.keyCode == 8 ) {
		 		clearTimeout(timeoutId);
            	//对于服务器端进行交互延迟200ms，避免快速打字造成的频繁请求
            	timeoutId = setTimeout(function(){
					//var suggest_host = $("#suggest_host").val();
					//var suggest_host = "ozhidao.woosuko.com";
					$.getJSON(
						"http://www.woosuko.com/ajax/ajax.jsp?action=oknowSearchSuggest&name="+value+"&s="+(new Date()).getTime()+"&callback=?",
						//"http://localhost:8080/ajax/ajax.jsp?action=oknowSearchSuggest&name="+value+"&s="+(new Date()).getTime(),
						function(data){
							//var jsC = eval("("+data+")");
							var jsC = data;
							if(jsC.size!=0){
								$autocomplete.empty();
								if(jsC.size==1){
									$('<li></li>').text(jsC.name)
									.appendTo($autocomplete).mousemove(
											function(){
												setSelectedItem($autocomplete.find('li').index(this))
											}).mouseout(function(){setSelectedItem(-1);}).click(populateSearchField);
								}
								else{
									for(var i=0;i<jsC.size;i++){
										$('<li></li>').text(jsC.name[i])
										.appendTo($autocomplete).mousemove(
											function(){
												setSelectedItem($autocomplete.find('li').index(this))
											}).mouseout(function(){setSelectedItem(-1);}).click(populateSearchField);
									}
								}
								setSelectedItem(-1);
							}
							else{
								setSelectedItem(null);	
							}
						}
					);
					/*
					$.ajax({
						'url':'http://www.woosuko.com/ajax/ajax.jsp',
						'data':{'action':'oknowSearchSuggest','name':value},
						'type':'POST',
						'success':function(data){
							var jsC = eval("("+data+")");
							if(jsC.size!=0){
								$autocomplete.empty();
								if(jsC.size==1){
									$('<li></li>').text(jsC.name)
									.appendTo($autocomplete).mousemove(
											function(){
												setSelectedItem($autocomplete.find('li').index(this))
											}).mouseout(function(){setSelectedItem(-1);}).click(populateSearchField);
								}
								else{
									for(var i=0;i<jsC.size;i++){
										$('<li></li>').text(jsC.name[i])
										.appendTo($autocomplete).mousemove(
											function(){
												setSelectedItem($autocomplete.find('li').index(this))
											}).mouseout(function(){setSelectedItem(-1);}).click(populateSearchField);
									}
								}
								setSelectedItem(-1);
							}
							else{
								setSelectedItem(null);	
							}
						}
					});
					*/
				},200);
			} 
			else if (event.keyCode == 38 && selectedItem !== null) {
				setSelectedItem(selectedItem - 1);
				event.preventDefault();//取消事件的默认方法
			}
			else if (event.keyCode == 40 && selectedItem !== null) {
				setSelectedItem(selectedItem + 1);
				event.preventDefault();
			}
			else if (event.keyCode == 27 && selectedItem !== null) {
				setSelectedItem(null);
			}
		}
	}).keypress(function(event){
		if (event.keyCode == 13 && selectedItem !==null) {
			if(selectedItem!=-1){
				populateSearchField();
				event.preventDefault();
			}
			else{
				$("#inputSearchBar").submit();
			}
		}
	}).blur(function(event){
		setTimeout(function(){
			setSelectedItem(null);
			if($("#searchInputTipText").val()!=$("#inputSearchBar").val()){
				$("#inputSearchBar").focus();
			}
		},250)
	});
	
	/**
	 * 搜索框文本
	 */
	$("#inputSearchBar").focus(function(){
		if($("#searchInputTipText").val()==$("#inputSearchBar").val()){
			$("#inputSearchBar").val("");
		}
	});
	$("#inputSearchBar").blur(function(){
		if($("#inputSearchBar").val().length==0){
			$("#inputSearchBar").val($("#searchInputTipText").val());
		}
	});
});

function request(id, url) {
    oScript = document.getElementById(id);
    var head = document.getElementsByTagName("head").item(0);
    if (oScript) {
        head.removeChild(oScript);
    }
    oScript = document.createElement("script");
    oScript.setAttribute("src", url);
    oScript.setAttribute("id", id);
    oScript.setAttribute("type", "text/javascript");
    oScript.setAttribute("language", "javascript");
    head.appendChild(oScript);
    return oScript;
}

function userLogin(action,value) {
    var url = 'http://www.woosuko.com/ajax/ajax.jsp?action='+action+'&name='+value+'&s='+(new Date()).getTime();
    var login = null;
	login = request("suggestScript",url);
	return login;
}