//----------------以下為出發地與目的地失去焦點，獲得焦點，或值發生改變時，彈出一個下拉的城市列表供用戶選擇-----------------//
var gCompDiv;
var gCompIFrame;
var gInputQuery;
var gCompDivBorderLeftWidth = 1, gCompDivBorderTopWidth = 1;
//var gLan = curLocale;
var gHelpStatus = false;
function init(){
	var objOrigin = document.forms[0].origin;
	objOrigin.onfocus = doDepFocus;
	objOrigin.onkeyup = doDepPropertychange;
	objOrigin.onblur = doDepBlur;
	
	var objDestination = document.forms[0].destination;
	objDestination.onfocus = doFocus;
	objDestination.onkeyup = doPropertychange;
	objDestination.onblur = doBlur;
	
	objDestination.focus();
}

function doDepBlur(){
	//if(!gHelpStatus){
	if(gCompDiv){
		gCompDiv.innerHTML = "";
		Element.hide(gCompDiv);
		showCity(this);
	}
}

function doBlur(){
	//if(!gHelpStatus){
	if(gCompDiv){
		gCompDiv.innerHTML = "";
		Element.hide(gCompDiv);
		showCity(this);
	}
}

function showCity(obj){
	var cityKey = obj.value.trim();
	if(citykey = "") return;
	var city_chi ="";
	var city_eng ="";
	var city_tw ="";
	//var citys = parent.citys;
	var val = citys.get(cityKey);
	if(val){
		city_eng = val.e;
		city_chi = val.z;
		city_tw = val.t;
	}
	if(obj.name == "destination"){
		if(document.all){
			$("destinationDiv")["T:values"] = "@EN"+city_eng+"@@TW"+city_tw+"@@CN" + city_chi + "@";
		}else{
			document.getElementById("destinationDiv").setAttribute("T:values","@EN"+city_eng+"@@TW"+city_tw+"@@CN" + city_chi + "@");
		}
	}else if(obj.name == "origin"){
		if(document.all){
			$("originDiv")["T:values"] = "@EN"+city_eng+"@@TW"+city_tw+"@@CN" + city_chi + "@";
		}else{
			document.getElementById("originDiv").setAttribute("T:values","@EN"+city_eng+"@@TW"+city_tw+"@@CN" + city_chi + "@");
		}
	}
	translate();
}
var txt;
function key_event(obj){
	
	gInputQuery = obj;
	if(gHelpStatus && obj.value.trim()!=""){
		txt = obj.value.toUpperCase().trim();
		createTable();
	}
}

function doOver(obj){
	obj.style.background = "#86b7f1";
	obj.style.color = "#FFFFFF";
}

function doOut(obj){
	obj.style.background = "#ffffff";
	obj.style.color = "#000000";
}

function doClick(obj){
	gClickStatus = true;
	$(gInputQuery).value = obj.getAttribute("value").split("-")[0];
	$(gInputQuery).blur();
	gCompDiv.innerHTML = "";
	Element.hide(gCompDiv);
}

function getRows(){
	if(parent.curLocale != self.undefined){
		curLocale = parent.curLocale;
	}
	gLan = curLocale;
	var res1 = [];
	var res2 = [];
	var code = null;
	var name = null;
	var inputQueryStr = gInputQuery.value.toUpperCase().trim();
	
	var num1=0;
	//var citys = parent.citys;
	try{
		citys.each(function(pair) {
			code = pair.key.toUpperCase();
			if(num1 > 20){
				throw $break;
			}
			if(gLan==Locale.EN){
				name = pair.value.e;
			}else if(gLan == Locale.TW){
				name = pair.value.t;
			}else{
				name = pair.value.z;
			}
			
			if(code.indexOf(inputQueryStr)==0){
				res1.push(code + "-" + name);
				num1 ++;
				return ;
			}else{
				var tempName = name.toUpperCase();
				if(tempName.indexOf(inputQueryStr)==0){
					res2.push(code + "-" + name);
					return ;
				}
			}
		});
	}catch(e){
		alert(e);
	}
	if(num1>20){
		return [res1,[]];
	}else{
		return [res1,res2.slice(0, 20-num1)];
	}
}

var gCityOptions1 = null;
var gCityOptions2 = null;
function createTable(){
	var _gCityOptions = getRows();
	gCityOptions1 = _gCityOptions[0];
	gCityOptions2 = _gCityOptions[1];
	if(gCityOptions1.length == 0 && gCityOptions2.length == 0){
		return;
	}
	if(!gCompDiv){
		gCompDiv = document.createElement("DIV");
		gCompDiv.id = "completeDiv";
		gCompDivBorderLeftWidth = 1;
		gCompDivBorderTopWidth = 1;
		if(document.all){
			//gCompDiv.style.borderRight = "#336633 " + gCompDivBorderLeftWidth + "px solid";
			//gCompDiv.style.borderLeft = "#336633 " +  gCompDivBorderLeftWidth + "px solid";
			//gCompDiv.style.borderTop = "#336633 " +    gCompDivBorderTopWidth + "px solid";
			//gCompDiv.style.borderBottom = "#336633 " + gCompDivBorderTopWidth + "px solid";
			gCompDiv.style.zIndex = "2";
			gCompDiv.style.paddingRight = "0";
			gCompDiv.style.paddingLeft = "0";
			gCompDiv.style.paddingTop = "0";
			gCompDiv.style.paddingBottom = "0";
			gCompDiv.style.visibility = "hidden";
			gCompDiv.style.position = "absolute";
			gCompDiv.style.backgroundColor = "white";
			gCompDiv.style.fontSize = "13px";
			gCompDiv.style.fontFamily = "arial,sans-serif";
			gCompDiv.style.wordWrap = "break-word";
		}else{
			var sss = "";
			sss += "zIndex:2;";
			sss += "paddingRight:0;";
			sss += "paddingLeft:0;";
			sss += "paddingTop:0;";
			sss += "paddingBottom:0;";
			sss += "visibility:hidden;";
			sss += "position:absolute;";
			sss += "position:absolute;background-color:#FFFFFF;fontSize:13px;fontFamily:arial,sans-serif;wordWrap:break-word;";
			gCompDiv.setAttribute("style",sss);
		}
	}
	
	var htmlArr = [];
	//htmlArr.push('<div style="overflow:auto;height:200;">');
	htmlArr.push('<table width="120px" style="background-color:#336633;" cellspacing=0 cellpadding=1 id="sel_citycod"><tr><td><table width="100%" style="background-color:#FFFFFF;">');
	var item = null;
	var _len1 = gCityOptions1.length;
	var it = null;
	//var reg = new RegExp(txt, 'g');
	for(var i = 0 ;i <_len1; i++){
		item = gCityOptions1[i];
		var reg = new RegExp(txt,'g');
		it = item.replace(reg, '<strong>'+txt+'</strong>');
		htmlArr.push('<tr onmousedown="doClick(this);" value="' + item + '" id="tr'+i+'" onmouseover="doOver(this);" onmouseout="doOut(this);"><td>');
		var l= it.length;
		htmlArr.push(it);
		htmlArr.push('</td></tr>');
	}
	var _len2 = gCityOptions2.length;
	if(_len1 >0 && _len2>0){
		htmlArr.push('<tr> <td>'+'----------------------' + '</td></tr>');
	}
	for(var i = 0 ;i <_len2; i++){
		item = gCityOptions2[i];
		//var tt1 = substring(item.indexOf("")
		var tt1 = item.split("-")[1].substring(0,txt.length);
		//var tt2 = item.substring(txt.length - 1,item.length);
		var reg = new RegExp(tt1,'g');
		it = item.replace(reg, '<strong>'+tt1+'</strong>');
		htmlArr.push('<tr onmousedown="doClick(this);" value="' + item + '"  id="tr'+i+'" onmouseover="doOver(this);" onmouseout="doOut(this);"><td>');
		htmlArr.push(it);
		htmlArr.push('</td></tr>');
	}
	htmlArr.push('</table></td></tr></table>');
	//htmlArr.push('</div>');
	gCompDiv.innerHTML = htmlArr.join("");
	
	if(!gCompIFrame){
		gCompIFrame = document.createElement("IFRAME");
		gCompIFrame.id = "completeIFrame";
		gCompIFrame.style.zIndex = "0";
		gCompIFrame.style.position = "absolute";
		gCompIFrame.style.display = "block";
		gCompIFrame.style.visibility = "hidden";
		gCompIFrame.style.borderRightWidth = "0";
		gCompIFrame.style.borderLeftWidth = "0";
		gCompIFrame.style.borderTopWidth = "0";
		gCompIFrame.style.borderBottomWidth = "0";
		//gCompIFrame.setAttribute("width","120px");
	}
	
	setCompDivPosition();
	document.body.appendChild(gCompDiv);
	document.body.appendChild(gCompIFrame);
	
	Element.show(gCompDiv);
}

function setCompDivPosition() {
	if (gCompDiv) {
		gCompDiv.style.left = absoluteLocation(gInputQuery, "offsetLeft") + "px";
		gCompDiv.style.top = absoluteLocation(gInputQuery, "offsetTop") + gInputQuery.offsetHeight - 1 + "px";
		gCompDiv.style.width = adjustOffsetWidth() + "px";
		if (gCompIFrame) {
			gCompIFrame.style.left = gCompDiv.style.left;
			gCompIFrame.style.top = gCompDiv.style.top;
			if(document.all){
				gCompIFrame.style.width = gCompDiv.style.width;
			}else{
				gCompIFrame.setAttribute("width",gCompDiv.getAttribute("width"));
			}
			gCompIFrame.style.height = gCompDiv.style.height;
		}
	}
}

function absoluteLocation(element, offset) {
	var c = 0;
	while (element) {
		c += element[offset];
		element = element.offsetParent;
	}
	return c;
}
 
function adjustOffsetWidth() {
	return gInputQuery.offsetWidth - gCompDivBorderLeftWidth * 2;
}
 //----------------以上為出發地與目的地失去焦點，獲得焦點，或值發生改變時，彈出一個下拉的城市列表供用戶選擇-----------------//