var cnCitys=new Array('??','??','??','??','??','??','??','??','??','??','??','??','??','??','??','???','???','??','???','??','??','??','????','???','??','??','??','??','??','??','??','??','??','??','???','??','??','????','????','??','??','??','??','??','??','??','??','??','????','???','??','??','??','??','????','??','????','??','??','??','??','??','???','??','??','??','??','??','????','??','??','????','???','???','???','???','??','???','???','???','???','??','???','??','??','??','??','???','??','??','???','?????','??','??','??','????','???','??','??','??','??','???','??','??','??');
var enCitys=new Array('HONGKONG','BEIJING','BAOTOU','CHANGCHUN','CHANGSHA','CHANGZHOU','CHENGDU','CHONGQING','DALIAN','DATONG','DAXIAN','FUZHOU','GUANGZHOU','GUILIN','GUIYANG','GEERMU','HAERBIN','HAIKOU','HAILAER','HANGZHOU','HEFEI','HUANGSHAN','HUHEHAOTE','JIUZHAIGOU','KUNMING','LANZHOU','LASA','LUZHOU','MIANYANG','NANCHANG','NANJING','NANNING','NANTONG','NINGBO','PANZHIHUA','QINGDAO','SANYA','SHANGHAI','SHANGHAIPUDONG','SHANTOU','SHENYANG','SHENZHEN','TAIYUAN','TIANJIN','WANXIAN','WEIHAI','WENZHOU','WUHAN','WULUMUQI','WUYISHAN','XIAMEN','XIANGFAN','XIAN','XICHANG','XILINHAOTE','XINING','XISHUANGBANNA','YANTAI','YINCHUAN','YIBIN','YICHANG','YUNCHENG','ZHANGJIAJIE','ZHENGZHOU','BANGKOK','BUSAN','DUBAI','DELHI','FRANKFORT','FUKUOKA','HIROSHIMA','HO CHI MINH','JAKARTA','KARACHI','KUALA LUMPUR','KUWAIT','LONDON','LOS ANGELES','MELBOURNE','MOSCOW','MUNICH','NEW YORK','NAGOYA','OSAKA','PARIS','RANGOON','ROME','SAN FRANCISCO','SENDAI','SEOUL','SINGAPORE','STOCKHOLM','SYDNEY','TAEGU','TOKYO','ULAN BATOR','VANCOUVER','SHANGHAI','HONGQIAO','PUDONG','SEOUL','MANZHOULI','JINAN','ZHUHAI','WUXI');

var cnAirPorts=new Array('??????','???????','??????','??????','????','??????','??????','??????','??????','???????','????','????','??????','??????','??????','???????','?????','?????????','??????','?????','??????','??????','??????','????????','???????','???????','??????','??????','????','????','??????','??????','??????','??????','??????','?????','??????','??????','??????','??????','??????','??????','??????','??????','??????','??????','????','??????','?????????','?????','??????','????','??????','??????','??????','???????','??(????)??','??????','??????','????','??????','???????','??????','??????','??????','??????');
var enAirPorts=new Array('HONGKONG','HONGKONG CHILAJIAO','BeiJing Capital','BeiJing NanYuan','BAOTOU','CHANGCHUN LONGJIA','CHANGSHA HUANGHUA','CHENGDU SHUANGLIU','CHONGQIN JIANGBEI','DALAN ZHOUSHUIZI','DATONG','DAXIAN','FUZHOU CHANGLE','GUANGZHOU BAIYUN','GUILIN LIANGJIANG','GUIYANG LONGBAODONG','GOLMUD','HARBIN TAIPING','HAIKOU MEILAN','HAILAER','HANGZHOU XIAOSHAN','HEFEI LUOGANG','HUANGSHAN TUNXI','HUHEHAOTE BAITA','JIUZHAIGOU HUANGLONG','KUNMING WUJIABA','LANZHOU ZHONGCHUAN','LASA GONGGA','LUZHOU','MIANYANG','NANCHANG CHANGBEI','NANJING LUKOU','NANNING WUWEI','NANTONG XINGDONG','NINGBAO LESHE','PANZHIHUA','QINGDAO LIUTING','SANYA FENGHUANG','SHANGHAI HONGQIAO','SHANGHAI PUDONG','SHANTOU WAISHA','SHEYANG TAOXIAN','SHENZHEN BAOAN','TAIYUAN WUSHU','TIANJIN BINHAI','WEIHAI WENDENG','WENZHOU','WUHAN TIANHE','URUMQI DIWOPU','WUYISHAN','XIAMEN','XIANGFAN','XIAN XIANYANG','XICHANG QINGSHAN','XILINHAOTE','XINING CAOJIABAO','JINGHONG','YANTAI LANSHAN','YINCHUAN HEDONG','YIBIN','YICHANG SANXIA','ZHANGJIAJIE HEHUA','ZHENGZHOU XINZHENG','JINAN YAOQIANG','ZHUHAI SANZAO','CHANGZHOU BENNIU');

//???????
var cnBookingStatus=new Array('????','????','????','????','????','????');
var enBookingStatus=new Array('Wait for payment','Wait for issuance','Issuance successful','Order cancelled','Accidental refund','Pay successful');

var cnAircraft = new Array('??','??');
var enAircraft = new Array('A','B');
//EI?????
var cnEi = new Array('????????','???5%???','???10%???','???20%???','???????10%???','???????20%???','???????50%???','????????');
var enEi = new Array('Non-revalidation;Non-Change date;Non-refund','Refund 5%','Refund 10%','Refund 20%','Non-revalidation;Refund 10%','Non-revalidation;Refund 20%','Non-revalidation;Refund 50%','Non-revalidation;Refund Pay');
//EI?
var EI = {
	"????????"			:	"Non-revalidation; Non-Change date; Non-refund",
	"????????"			:	"Non-revalidation; Non-Change date; Non-refund",
	"??????"			:	"Refund  charge ",
	"?????????"		:	"Non- endorsement / rerouting / rebooking / refund charge ",
	"????????"			:	"Non-revalidation; Refund Pay",
	"??????????"		:	"Non-revalidation; Change date Pay; Refund Pay",
	"????"				:	"Non-revalidation; Non-Change date",
	"BUDEQIANGAITUI?????"	:	"Non-revalidation; Non-Change date; Non-refund",
	"??????/?????????????"	:	"Non-revalidation; Non-Change date; Non-refund",
	"????/?????/?????????????"	:	"Non-revalidation; Change date Pay; Refund Pay"
};
//??
var cnBankName=new Array('????','????','??????','VISA??','?????','?????','????','???','????','???','?????','????');
var enBankName=new Array('CMB','ICBC','SDB','VISA','International Credit Card','CAPI','CHINA PAY','International Credit Card','HUIFU','CAPAY-VISA-CAB2C','TENPAY','Bank of China');

//????
var cnApplyReason=new Array('??','???');
var enApplyReason=new Array('voluntary','unvoluntary');

//????
var cnTranStatus=new Array('???','???','????');
var enTranStatus=new Array('PAID','UNPAID','FAILURE');
//????????
var cnRefundStatus=new Array('???','???','???','?????','????','????','????','????');
var enRefundStatus=new Array('REFUSED','UNAPPLIED','APPLYING','APPLYING','FIRST CHECK PASS','FIRST CHECK REFUSED','SECOND CHECK PASS','SECOND CHECK REFUSED');
//????
var cnInsureStatus=new Array('????','?????','????','?????','????','????');
var enInsureStatus=new Array('Finish','Purchase processing','Purchase failed','Refund processing','Refund success','????');

var tktStatus = {
	"????,???"		:	"Open for use",
	"???"				:	"Refunded"
};

var errStatus = {
	"Err:????!"				:	"Error:record not found!",
	"??????!"				:	"Something mistake about the segment number!",
	"??SSR SEAR???!"			:	"Error occurs when deleting SSR SEAR.",
	"??????"				:	"Insert a repeat of the record.",
	"??????!"				:	"Error occurs when inquiring records.",
	"??????"				:	"Error occurs when searching tax",
	"???????!"				:	"Get seat map failed! ",
	"?????"					:	"Database error",
	"???'ACTTIONTYPE'????"	:	"Imported 'ACTTIONTYPE' parameter error",
	"PNR????!"				:	"PNR update failure.",
	"???????"				:	"Carbin shall not booked now.",
	"gettktinfo??"				:	"Error:invalid gettktinfo",
	"????,???!"			:	"Abnormal operation, input again please.",
	"??????????"			:	"No orders information in the database.",
	"????????"				:	"The bank returned the wrong message.",
	"???????"				:	"The order's status have being",
	"?????,??????"		:	"Date change unsuccessful. System errors.",
	"PNR?????!????"		:	"PNR status is not normal! Unable to pay",
	"?????!"					:	"Website has not log on!",
	"??????!"				:	"Please log on correctly!",
	"?pnr???,??????!"	:	"Error occurs when forming PNR , please contact to AirChina.",
	"??????,??????!"	:	"Error occurs when paying , please connect AirChina.",
	"?pnr??,??????!"		:	"Error occurs when forming PNR,please contact with AirChina",
	"????,???????!"		:	"Abnormal operation, search flight again please.",
	"?pnr???????"			:	"Some error while store PNR to database",
	"??????, ???PNR."		:	"Booking process to be wrong, not formed PNR.",
	"?????????."			:	"No flight information available.",
	"?????????????."	:	"Incomplete information of extraction the depature flight.",
	"????????????!"		:	"Error occurs when inserting the record of  invoice applicaiton.",
	"????,??????????????!"	:	"Operational failure, please back to homepage and booking again.",
	"???,??????????????!"	:	"Sorry, you have failed to meet the requirements of data Accidental refund.",
	"PNR???,???????,?????."	:	"The arriving date format input error, the correct format should be :yyyy-mm-dd.",
	"????????,????????!"		:	"This ticket has been issued, please contact with the CA managers.",
	"????????!?????????."	:	"Error occurs when sending SMS! Please confirm whether the issued ticket success.",
	"????,??????????????!"	:	"Operational failure, please start booking flights on the search flight page.",
	"????,???!(farebeanlist is null)"	:	"Abnormal operation, input again please.(farebeanlist is null)",
	"????????,??????4008100999??,???!???????,???????????!"	:	"Error occurs when issuing the ticket, please contact the CA sales hotline (8610)4008100999 as soon as possible, and then issue again. Issue fail again, please issue the ticket in \"My Bookings\"",
	"???????!???????,PNR?????!"				:	"Get seat map failed! ",
	"????????,??????4008100999??,?????!"		:	"Error occurs when issuing the ticket please contact the CA sales hotline (8610)4008100999 as soon as possible, and then issue again.",
	"???,?????????,???????????!"			:	"Sorry, the handling of the process of bookings error, please inquiries to the manager of your bookings!",
	"???,???????????!???????????!"			:	"Sorry, changing booking record in database is mistake! please inquiries to the manager of your bookings! ",
	"???,?????????! ?????????????."		:	"Sorry, we can not find the ticket you have submitted! Please check the ticket number and name.",
	"?????,???????????,??????!"				:	"Date change unsuccessful. The ticket may be void. Please connect AirChina.",
	"???????????,????????yyyy-mm-dd"			:	"The departing date format input error, the correct format should be :yyyy-mm-dd.",
	"???????????????????????????????"	:	"That day does not have the suitable flights , please choose other days.",
	"????????????????????????????????????????"	:	"Sorry! Some errors happens when booking a seat, please back and book again!"
};

var discountMsg = {
	"??"		:	"First",
	"??"		:	"Eco",
	"??"		:	"Buss",
	"????"	:	"Special"
};

function replace_cnchar(obj){//????????????
	obj = obj.replace(/?/g,"!");
	obj = obj.replace(/?/g,",");	
	obj = obj.replace(/?/g,".");
	obj = obj.replace(/?/g,":");
	obj = obj.replace(/?/g,"?");
	return obj;
}

function changeErrStatus_to_eng(obj){
	obj = replace_cnchar(obj);
	var result = errStatus[obj];
	if(result==null){
		for(var matchword in errStatus){
			if(obj.indexOf(matchword)>-1){
				var matchpos = obj.indexOf(matchword)+matchword.length;
				document.write(errStatus[obj.substring(0,matchpos)]+obj.substring(matchpos));
				return;
			}
		}
		document.write(obj);
		return;
	}
	else{
		document.write(result);
	}
}

function changeTktStatus_to_eng(obj){
	if(tktStatus[obj]==null){
		document.write('');
	}
	else{
		document.write(tktStatus[obj]);	
	}
}

function changeRefundStatus_to_eng(obj){
	var result = transRefundStatus_to_eng(obj);
	document.write(result);
}

function transRefundStatus_to_eng(obj){
	var index=-1;
	for(var i=0;i<cnRefundStatus.length;i++){
		if(cnRefundStatus[i]==obj){
			index=i;break;
		}
	}
	if(index!=-1)obj=enRefundStatus[index];
	return obj;
}

function changeInsureStatus_to_eng(obj){
	var result = transInsureStatus_to_eng(obj);
	document.write(result);
}

function transInsureStatus_to_eng(obj){
	var index=-1;
	for(var i=0;i<cnInsureStatus.length;i++){
		if(cnInsureStatus[i]==obj){
			index=i;break;
		}
	}
	if(index!=-1)obj=enInsureStatus[index];
	return obj;
}

//????
function changeTranStatus_to_eng(obj){
	var index=-1;
	for(var i=0;i<cnTranStatus.length;i++){
		if(cnTranStatus[i]==obj){
			index=i;break;
		}
		
	}
	if(index!=-1)obj=enTranStatus[index];
	document.write(obj);
}
//??
function changeBankName_to_eng(obj){
	var result = TransBankName_to_eng(obj);
	document.write(result);
}

function TransBankName_to_eng(obj){
	var index=-1;
	var bankarr = obj.split("|");
	obj="";
	for(var j=0;j<bankarr.length;j++){
		for(var i=0;i<cnBankName.length;i++){
			if(cnBankName[i]==bankarr[j]){
				index=i;break;
			}
		}
		if(index!=-1){
			obj+=enBankName[index]+"|";
		}
	}
	return obj;
}

function TransApplyReason_to_eng(obj,lan){
	if(lan=="en"){
		var index=-1;
		for(var i=0;i<cnApplyReason.length;i++){
			if(cnApplyReason[i]==obj){
				index=i;break;
			}
			
		}
		if(index!=-1)obj=enApplyReason[index];
	}
	return obj;
}

function changeCity_to_eng(obj)
{
   var result = TransCity_to_eng(obj);
   document.write(result);
}

function TransCity_to_eng(obj)
{
   var index=-1;
   for (var i=0;i<cnCitys.length;i++)
   {
	    if (cnCitys[i]==obj){
	       index=i;break;
        }
   }
   if(index!=-1) obj=enCitys[index];
   return obj;
}

function changeAirport_to_eng(obj)
{
   var result = TransAirport_to_eng(obj);
   document.write(result);
}

function TransAirport_to_eng(obj){
   	var index=-1;
   	for (var i=0;i<cnAirPorts.length;i++){
	    if (cnAirPorts[i]==obj){
	       index=i;break;
        }
   	}
   	if(index!=-1) obj=enAirPorts[index];
   	else if(obj.indexOf("??")>-1){
		var cityname = obj.substring(0,obj.indexOf("??"));
		obj = TransCity_to_eng(cityname)+" airport";
   	}
   	return obj;
}

function changeCityorAirport_to_eng(obj){
	var result = TransAirport_to_eng(obj);
	if(obj==result){
		result = TransCity_to_eng(obj);
	}
	document.write(result);
}

function changeAircraft_to_eng(obj){
	var index=-1;
   	var len = obj.length;
	var pos = -1;
	var number = "";
   	for (var i=0;i<cnAircraft.length;i++)
   	{
		pos = obj.indexOf(cnAircraft[i])+cnAircraft[i].length;
		if(obj.indexOf(cnAircraft[i])>-1){
			tmp = obj.substring(0,pos);
			number = obj.substring(pos,len);
			index = i;
			break;
		}
   	}
   	if(index!=-1) obj=enAircraft[index];
   	document.write(obj+number);	
}

function changeCitystr_to_eng(obj){//?????,??my bookings?trip info?
	//alert(obj);
	var citystr = "";
	var cityarr = obj.split("-");
	var tmp = "";
	for(i=0;i<cityarr.length-1;i++){
		if(cityarr[i].indexOf("//")>0){
			index = cityarr[i].indexOf("//");
			changeCity_to_eng(cityarr[i].substring(0,index));
			document.write('//');
			changeCity_to_eng(cityarr[i].substring(index+2,cityarr[i].length));
		}
		else{
			changeCity_to_eng(cityarr[i]);
		}
		document.write('-');
	}
	if(cityarr[i].indexOf("(Roundtrip)")>0){
		index = cityarr[i].indexOf("(Roundtrip)");
		cityarr[i] = cityarr[i].substring(0,index);
		changeCity_to_eng(cityarr[i]);
		document.write('(Roundtrip)');
	}else{
		changeCity_to_eng(cityarr[i]);
	}
	return obj;
}

function changeBookingStatus_to_eng(obj){
	var index=-1;
   
   	for (var i=0;i<cnBookingStatus.length;i++)
   	{
		if (cnBookingStatus[i]==obj){
	    	index=i;break;
       	}
   	}
   	if(index!=-1) obj=enBookingStatus[index];
   	document.write(obj);
}

function transEI_to_eng(obj){
	var regexp = /\d{1,2}%/;
	var m = obj.match(regexp);
	var eistr = obj.replace(regexp,"");
	if(EI[eistr]!=null){
		if(m!=null){
			return EI[eistr]+m[0];
		}
		else{
			return EI[eistr];	
		}
	}
	else{
		return obj;	
	}
}

function changeEI_to_eng(obj){
	//transEI_to_eng(obj)
	document.write(transEI_to_eng(obj));
}

//??EI????
function changeEI_to_eng_old(obj){
	var index=-1;
    for (var i=0;i<cnEi.length;i++)
   	{
		if (cnEi[i]==obj){
	    	index=i;break;
       	}
   	}
   	if(index!=-1) obj=enEi[index];
   	document.write(obj);
}

function transInterEI(obj,lan){
	var result=obj;
	if(lan!="en"){
		result = result.replace("NON","??");
		result = result.replace("END","??");
		result = result.replace("RER","?????");
		result = result.replace(/REFCNY(\d+)/,"??????$1??");
		result = result.replace(/REF(\d+)CNY/,"??????$1??");
		result = result.replace(/REBCNY(\d+)/,"??????$1?");
		result = result.replace(/REB(\d+)CNY/,"??????$1?");
	}
	else{
		result = result.replace("NON","Non-");
		result = result.replace("END","revalidation;");
		result = result.replace("RER","Non-Change date;");
		result = result.replace(/REFCNY(\d+)/,"Refund Pay $1 Yuan?");
		result = result.replace(/REF(\d+)CNY/,"??????$1??");
		result = result.replace(/REBCNY(\d+)/,"Change date Pay $1 Yuan");
		result = result.replace(/REB(\d+)CNY/,"??????$1?");
	}
	result = result.replace(new RegExp("-",'g'),"");
	result = result.replace(new RegExp("/",'g'),"");
	result = result.substring(0,result.indexOf("*"));
	return result;
}

function changeInterEI(obj,lan){
	document.write(transInterEI(obj,lan));
}

function check_simple_traditional_input(obj){
	if (obj=="" || obj==null)
		return false;
	if ((obj.tagName=="input"||obj.tagName=="INPUT")&&(obj.type=="text" || obj.type=="password")&&obj.readOnly==false){
		var str=obj.value;
		for (var i=0;i<str.length;i++){
			if (str.charCodeAt(i)>127){
				alert("English version not support to chinese chracters!");
				obj.focus();
				return true;
			}
		}
	}
	else{
		for(var j=0;j<obj.childNodes.length;j++){
			subobj=obj.childNodes[j];
			if (check_simple_traditional_input(subobj)){
				return true;
			}
		}
	}
}

function changeDiscountMsg_to_eng(obj){//???????,??avflights
	var result = discountMsg[obj];
	if(result == null){
		if(obj.indexOf("?")==1){
			document.write(100-obj.substring(0,1)*10+"%off");	
		}
		else if(obj.indexOf("?")==2){
			document.write(100-obj.substring(0,2)+"%off");
		}
		else if(obj.indexOf("?")==3&&obj.indexOf(".")>-1){
			document.write(100-obj.substring(0,3)*10+"%off");
		}
		else{
			document.write(obj);
		}
	}
	else{
		document.write(result);
	}
}

function changeDiscountMsg(obj,lang){//???????,??avflights
	alert(lang);
	if(lang!="en")return obj;
	var result = discountMsg[obj];
	if(result == null){
		if(obj.indexOf("?")==1){
			document.write(100-obj.substring(0,1)*10+"%off");	
		}
		else if(obj.indexOf("?")==2){
			document.write(100-obj.substring(0,2)+"%off");
		}
		else if(obj.indexOf("?")==3&&obj.indexOf(".")>-1){
			document.write(100-obj.substring(0,3)*10+"%off");
		}
		else{
			document.write(obj);
		}
	}
	else{
		document.write(result);
	}
}

function transDiscountMsg_to_eng(obj){//???????,??avflights
	var result = discountMsg[obj];
	if(result == null){
		if(obj.indexOf("?")==1){
			result = 100-obj.substring(0,1)*10+"%off";	
		}
		else if(obj.indexOf("?")==2){
			result = 100-obj.substring(0,2)+"%off";
		}
		else if(obj.indexOf("?")==3&&obj.indexOf(".")>-1){
			result = 100-obj.substring(0,3)*10+"%off";
		}
		else{
			result = obj;
		}
	}
	return result;
}

function transDiscountMsg(obj,lang){//???????,??avflights
	if(lang!="en")return obj;
	var result = discountMsg[obj];
	if(result == null){
		if(obj.indexOf("?")==1){
			result = 100-obj.substring(0,1)*10+"%off";	
		}
		else if(obj.indexOf("?")==2){
			result = 100-obj.substring(0,2)+"%off";
		}
		else if(obj.indexOf("?")==3&&obj.indexOf(".")>-1){
			result = 100-obj.substring(0,3)*10+"%off";
		}
		else{
			result = obj;
		}
	}
	return result;
}

function changeDate_to_eng(datestr){//ex: "2001-02-01 00:01" to "01/02/2001/ 00:01"
	var myReg = /(\d{4})-(\d{2})-(\d{2})/;
	var newstr = datestr.replace(myReg,"$3/$2/$1");
	document.write(newstr);
}

function changeDate_to_eng2(datestr){//in viewtktinfo.jsp ex:02?22? to 22/02
	datestr = datestr.replace("?","-");
	datestr = datestr.substring(0,5);
	var myReg = /(\d{2})-(\d{2})/;
	var result = datestr.replace(myReg,"$2/$1");
	document.write(result);
}
