/** Tiehui.Lu (Danny.Lu) dannyteihui@hotmail.com utf-8 [2008-9-23 ÏÂÎç02:37:46] */

//	Global
var gAutoSuggest = {
	bg:"#FFFFFF",
	font:"#000033",
	currBg:"#4277a7",	//	Current backgroud 	Note: if you want change here,At the same time, changes the rgb(0, 0, 0). you can open row 98 look it
	currFont:"#EEEEEE",//	Current font color
	
	id:"autosearch",	//	textarea id
	hid:"autosearch_value",		//	Hidden object
	html:'<ul id="autosuggest" class="autosuggest"></ul>',	//	Autosuggest alert html
	selItem:0
};

function autosearch(event){
	var objid=event.data.objid;
	var hobjid=event.data.hobjid;
	$("#autosuggest").hide();
	search_value = $("#"+objid).val().toLowerCase();//The value of search will be unified into a lowercase
	currObj = $("#"+objid);
	currHiddenObj = $("#"+hobjid);

	if(currObj.val() == "") return; //if search key word is null.return
	
	var m = $("#autosearch_market").val();
	$.ajax({
		//url:'temp/result.xml',
		url:'service/AutoSuggest.php',
		type: 'POST',
		//data: {"sv":currObj.val()},
		//data: {'sort':"autosuggest",'market':global.market,'language':global.language,"key":currObj.val()},
		data: {'sort':"autosuggest",'market':m,'language':global.language,"key":currObj.val()},
		dataType: 'xml',
		async: false,
		error: function(xml){
			alert('Error loading XML document '+ xml );
		},
		success: function(xml){
			var size =	$("#autosuggest").size();
			if(size == 0){
				$(gAutoSuggest.html).appendTo(document.body);
			}
			
			//get search result
			html = "";
			$(xml).find("option").each(function(i){					
				//judge = $(this).text().toLowerCase().indexOf(search_value);
				//if(judge != -1){	
					var name = $(this).find("name").text();
					var number = $(this).find("number").text();
					var cat_id = $(this).find("cat_id").text();
					var photoUrl = $(this).find("photoUrl").text();
					
					var txt = name+" | "+number+" | "+cat_id;
					//$.log(name+" | "+number+" | "+cat_id+" | "+photoUrl);
					
					photoUrl = (photoUrl == "")?"category/C.jpg":photoUrl;
					//var v = $(this).text().toLowerCase().replace(currObj.val(),"<b>"+currObj.val()+"</b>");		//high light show
					txt = highLight(currObj.val(),txt);		//high light show
					//html += '<li><a href="#" id="'+$(this).attr("id")+'"><img src="'+photoUrl+'\" />&nbsp;&nbsp;<label>'+txt+"</label></a></li>\r\n";
					html += '<li><a href="#" id="'+$(this).attr("id")+'"><label>'+txt+"</label>&nbsp;&nbsp;<img src=\""+photoUrl+"\"  width=\"30\" height=\"22\" /></a></li>\r\n";
				//}
			});
			
			//when they did not meet the requirements of the results do not show
			if( html != ""){
				var ptop =currObj.offset().top + currObj.height() + 6;
				var pleft=currObj.offset().left;									
				$("#autosuggest").css('top',ptop+'px').css('left',pleft+'px');				
				$("#autosuggest").show().html(html);
				
				//for <a> tag add onclick event
				$("#autosuggest li a").each(function(i){
					$(this).click(function(e){
						keyEnter();
						$("#autosuggest").hide();
					});
				});
				
				$("#autosuggest li a").each(function(i){						
					$(this).mouseover(function(e){
						//Restore all < a > tag css
						$("#autosuggest li a").each(function(i){
							$(this).css("backgroundColor",gAutoSuggest.bg).css("color",gAutoSuggest.font);		
						});
						
						$(this).css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);		
						//setFromValue($(this).find("label").text(),$(this).attr("id"));
					});
					$(this).click(function(e){						
						location.href = "search.php?q="+$(this).find("label").text()+"&id="+$(this).attr("id");
					});
				});
			}
		}
	});
}

function setFromValue(txt,id){	
	currObj = $("#autosearch");
	currHiddenObj = $("#autosearch_value");	
	var txt = $.trim(txt).split("|");
	currObj.val(txt[0]);
	currHiddenObj.val(id);
}

function keyDown(){
	var obj=new Array();
	var temp=true;
	var position=0;
	
	$("#autosuggest li a").each(function(i){
		obj[i] = $(this);
	});
	
	$("#autosuggest li a").each(function(i){	
		//$.log($(this).css("backgroundColor"));
		if($(this).css("backgroundColor") == gAutoSuggest.currBg || $(this).css("backgroundColor") == "rgb(66, 119, 167)"){
			$(this).css("backgroundColor",gAutoSuggest.bg).css("color",gAutoSuggest.font);			
			if(obj.length > i+1){
				obj[i+1].css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);
				setFromValue(obj[i+1].find("label").text(),obj[i+1].attr("id"));
				gAutoSuggest.selItem = i+1;
			}else{
				$(this).css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);
				setFromValue($(this).find("label").text(),$(this).attr("id"));
				gAutoSuggest.selItem = i;
			}
			temp=false;
			position = i+1;
			return false;
		}
		
	});
	
	if(position>=6){
		if(jQuery.browser.msie){
			document.getElementById("autosuggest").scrollTop+=20;
		}else{
			document.getElementById("autosuggest").scrollTop+=22;
		}
	}
	
	if(temp){
		obj[0].css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);
		setFromValue(obj[0].find("label").text(),obj[0].attr("id"));
		temp=false;
		return false;
	}
}

function keyUp(){
	var obj=new Array();
	var position=0;
	
	$().find("#autosuggest li a").each(function(i){
		obj[i] = $(this);		
	});
	
	$().find("#autosuggest li a").each(function(i){									
		if($(this).css("backgroundColor") == gAutoSuggest.currBg || $(this).css("backgroundColor") == "rgb(66, 119, 167)"){
			$(this).css("backgroundColor",gAutoSuggest.bg).css("color",gAutoSuggest.font);
			if(i-1>=0){
				obj[i-1].css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);
				setFromValue(obj[i-1].find("label").text(),obj[i-1].attr("id"));
				gAutoSuggest.selItem = i-1;
			}else{
				$(this).css("backgroundColor",gAutoSuggest.currBg).css("color",gAutoSuggest.currFont);
				setFromValue($(this).find("label").text(),$(this).attr("id"));	
				gAutoSuggest.selItem = i;
			}
			position = i;
			return false;
		}			
	});	
	
	if(position>=6){
		if(jQuery.browser.msie){
			document.getElementById("autosuggest").scrollTop-=20;
		}else{
			document.getElementById("autosuggest").scrollTop-=22;
		}
	}
}

function keyEnter(){
	//$this = $("#autosuggest li a:eq("+gAutoSuggest.selItem+")");
	//location.href = "search.php?q="+$this.find("label").text()+"&id="+$this.attr("id");
	document.frmautosearch.submit();
}

function searchMouseDown(){
	var val = $("#autosearch").val();
	if(val == gSearch.txt["en_US"] || val == gSearch.txt["zh_CN"] || val == gSearch.txt["de"]){
		$("#autosearch").val("");		
	}
}

function searchBlur(){
	if($("#autosearch").val() == ""){
		$("#autosearch").val(gSearch.txt[global.language]);
	}
}

function searchSubmit(){
	var val = $("#autosearch").val();
	if(val == gSearch.txt["en_US"] || val == gSearch.txt["zh_CN"] || val == gSearch.txt["de"]){
		return false;
	}
	document.frmautosearch.submit();
}

//Automatically check the press keys?
function initKeydown(e){
//$().keydown( function(e){
	e = e || window.event;
	if(e.keyCode == 38){
		$("#autosearch").unbind("keyup");
		keyUp();
	}else if(e.keyCode == 40){
		$("#autosearch").unbind("keyup");
		keyDown();
	}else if(e.keyCode == 13){
		keyEnter();
	}else{		
		//$("#autosearch").unbind("keyup");//jQuery bug, sometime need this code
		$("#autosearch").bind("keyup",{objid:"autosearch",hobjid:"autosearch_value"},autosearch);
	}
//});
}




