//show keywords from search engine
var freshKeywords = new Array();
var keywordsTable = "";
var direction = -1;

function keywordsContainer(obj){
	
	if(document.getElementById('keywordsDiv') == undefined){
		var parnt = document.body;
		var keyDiv = document.createElement("div");
		keyDiv.id="keywordsDiv";
		parnt.appendChild(keyDiv);
	}
	
	var ckeywords = document.getElementById("searchproductname");
	document.getElementById('keywordsDiv').innerHTML = drawKeywordsTable(ckeywords);
}


function dropdownKeywords(obj,keywordsList){
	closeKeywordsTable();
	if(obj.value == "") return;
	if(keywordsList == null || keywordsList.length == 0) {
		freshKeywords = new Array();
		closeKeywordsTable();
		return;
	}
	if(keywordsList.length > 0){
		var inputKeywords = obj.value;
		var lowerKeywords = inputKeywords.toLowerCase();
		var k = -1;
		for(i=0;i<keywordsList.length;i++){
			var lowercaseKey = keywordsList[i][0].toLowerCase();
			if(lowercaseKey.indexOf(lowerKeywords) != -1){
				k++;
				freshKeywords[k] = eval("['" + keywordsList[i][0] +"','" + keywordsList[i][1] + "']");
			}
		}
		if(k >= 0) {
			keywordsContainer();	
		}
		//setTimeout("dropdownKeywords("+obj+")",200)
	}
}
function drawKeywordsTable(obj){
	var parnt = obj.parentNode;
	var tble_left = findPosX(obj);
	var tabe_top = findPosY(obj) + obj.offsetHeight;
	var tabe_width = obj.offsetWidth;
	keywordsTable += "<table id='keywords_list' cellpadding='3' cellspacing='0' border='0' style='cursor:pointer;border:1px solid #89bbe4;background:#fff;position:absolute;z-index:1000;left:" + tble_left + "px;top:" + tabe_top + "px;width:" + tabe_width +"px'>";
	for(i=0;i<freshKeywords.length;i++){
		drawKeywordsRows(freshKeywords[i][0], freshKeywords[i][1]);
	}
	keywordsTable += "</table>";
	return keywordsTable;
}
function drawKeywordsRows(keywd, num){
	keywordsTable += "<tr class='keywordsRow' onclick='getKeywords(this)' onmouseover='this.style.background=\"#cde8ff\"' onmouseout='this.style.background=\"#fff\"'><td nowrap='nowrap' align='left' style='padding:4px;padding-right:20px;'>" + keywd + "</td><td align='right' style='padding:4px;'>" + num + " items</td></tr>";
	return keywordsTable;
}

function getKeywords(event){
	if(document.all) var event = window.event;
	var obj = (!document.all) ? event.target : event.srcElement;
	if(obj.nodeName != "TR"){
		while(obj.nodeName != "TR" && obj.className != "keywordsRow"){
			if(obj.nodeName == "BODY" || obj.nodeName == "HTML") break;
			obj = obj.parentNode;
		}
	}
	if(obj.className == "keywordsRow"){
		document.getElementById("searchproductname").value = freshKeywords[obj.rowIndex][0];
	}
	closeKeywordsTable();
}

document.onkeyup = function(e){

	if(!e) e = window.event;	
	if(document.getElementById("searchproductname") && document.getElementById("searchproductname").value == "") return;
	if(document.getElementById('keywordsDiv') == undefined) return;
	var tbl = document.getElementById('keywords_list');
	var rowLength = tbl.rows.length;
	if(tbl){
		if(e.keyCode == 40){
			direction++;
			if(direction > (rowLength -1)){
				direction = 0;
			}
		} else	if(e.keyCode == 38){
			direction--;
			if(direction < 0) {
				direction = rowLength -1;
			}
		} else return;
	}
	
	for(i = 0; i < rowLength; i++){
		if(i == direction){
			tbl.rows[i].style.background = "#cde8ff";
			//tbl.rows[i].className = "keywordsRow";
			document.getElementById("searchproductname").value = freshKeywords[i][0];
		}else {
			tbl.rows[i].style.background = "#ffffff";

		}
	}

}



function closeKeywordsTable(){
	if(document.getElementById('keywordsDiv') == undefined) return;
	
	var keywords_list = document.getElementById("keywordsDiv");
	var prnt = keywords_list.parentNode;
	prnt.removeChild(keywords_list);
	freshKeywords.length = 0;
	keywordsTable = "";
}

document.onclick = getKeywords;

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
		  curleft += obj.offsetLeft;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function stopBubble(e) {
        if ( e && e.stopPropagation )
            //�����֧��W3C��stopPropagation()
            e.stopPropagation();
        else
            window.event.cancelBubble = true;
    }
function stopDefault(e) {
    if ( e && e.preventDefault )
        e.preventDefault();
    else
        window.event.returnValue = false;
    return false;
}