//*****************************************************************
//Please save this file with a character code "iso-8859-1".
//*****************************************************************

function getValueFromCookie ( cookieKey ) {
	var data = ( document.cookie ) ? document.cookie.split( ';' ) : [];
	var value;
	for( var i in data )
		if( data[ i ].split( '=' )[ 0 ].replace( /\s/g, '' ) == cookieKey )
			if( value = data[ i ].split( '=' )[ 1 ] )
				return unescape( value ).replace( /\s/g, '' );
}

function JLJS_submit() {
	var value = "RsvNoticeNoDisp=" + ( document.forms[0].elements["noMore"].checked ? 1 : 0 ) + ";";
	value += "domain=" + document.domain + "; ";
	value += "path=" + "/" + ";";

	document.cookie = value;

	document.forms[0].elements["noMore"].disabled = true;
	document.forms[0].submit();
	document.forms[0].elements["noMore"].disabled = false;
}

function getParam(key, params) {
	
	if (key == "SO_GL"){
		if (params["EMBEDDED_TRANSACTION"] == "FlexPricerAvailability") {
			return '<?xml version="1.0" encoding="iso-8859-1"?><SO_GL><GLOBAL_LIST mode="complete"><NAME>SO_SINGLE_MULTIPLE_COMMAND_BUILDER</NAME><LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[AP <SOS_PHONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[APE-<USERMAIL_COMPLETE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>3</CODE><LIST_VALUE><![CDATA[SROTHSYY-JAL ASIA OCEANIA REGION INTERNET BOOKING TH]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>3</CODE><LIST_VALUE><![CDATA[SROTHSYY-APPLICABLE FOR WEB]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYCTCT BKK 66-2649-9520 JAL BANGKOK]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYCTCP <HFONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYLCTC <SOS_PHONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT></GLOBAL_LIST></SO_GL>';
		}else{
			return '<?xml version="1.0" encoding="iso-8859-1"?><SO_GL><GLOBAL_LIST mode="complete"><NAME>SO_SINGLE_MULTIPLE_COMMAND_BUILDER</NAME><LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[AP <SOS_PHONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>1</CODE><LIST_VALUE><![CDATA[APE-<USERMAIL_COMPLETE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>3</CODE><LIST_VALUE><![CDATA[SROTHSYY-JAL ASIA OCEANIA REGION INTERNET BOOKING TH]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>3</CODE><LIST_VALUE><![CDATA[SROTHSYY-APPLICABLE FOR WEB]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYCTCT BKK 66-2649-9520 JAL BANGKOK]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYCTCP <HFONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYLCTC <SOS_PHONE>]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT></GLOBAL_LIST></SO_GL>';
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE1"){
		if(params["LANGUAGE"] == "GB"){
			return "<tr><td>JAL Reservations Center,";
		}else{
			return "<tr><td>\u65e5\u672c\u822a\u7a7a\u30d0\u30f3\u30b3\u30af\u652f\u5e97\u4e88\u7d04\u30bb\u30f3\u30bf\u30fc";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE2"){
		if(params["LANGUAGE"] == "GB"){
			return "Japanese: Toll Free 001-800-852-5511 (Mon-Fri 8:00-17:30 / Sat, Sun, Public holiday 8:00-17:00),";
		}else{
			return "\u65e5\u672c\u8a9e\uff1a\u30d5\u30ea\u30fc\u30c0\u30a4\u30e4\u30eb\u3000001-800-852-5511\uff08\u6708\uff5e\u91d1 08\uff1a00\uff5e17\uff1a30/\u571f\u30fb\u65e5\u30fb\u795d\u65e5\u300008\uff1a00\uff5e17\uff1a00\uff09";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE3"){
		if(params["LANGUAGE"] == "GB"){
			return "English: Toll Free 001-800-852-5533 (Mon-Fri 8:00-17:30 / Sat, Sun, Public holiday 8:00-17:00),";
		}else{
			return "\u82f1\u3000\u8a9e\uff1a\u30d5\u30ea\u30fc\u30c0\u30a4\u30e4\u30eb\u3000001-800-852-5533\uff08\u6708\uff5e\u91d1 08\uff1a00\uff5e17\uff1a30/\u571f\u30fb\u65e5\u30fb\u795d\u65e5\u300008\uff1a00\uff5e17\uff1a00\uff09";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE4"){
		if(params["LANGUAGE"] == "GB"){
			return "Thai: 0-2649-9500 (Mon-Fri 8:00-17:30 / Sat 8:00-16:00 / Sun and Public holiday: Closed).";
		}else{
			return "\u30bf\u30a4\u8a9e\uff1a0-2649-9500\uff08\u6708\uff5e\u91d1 08\uff1a00\uff5e17\uff1a30/\u571f\u300008\uff1a00\uff5e16\uff1a00/\u65e5\u30fb\u795d\u65e5\u3000\u4f11\u307f\uff09";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE5"){
		if(params["LANGUAGE"] == "GB"){
			return 'Thank you for choosing JAPAN AIRLINES. Not a JAL Mileage Bank member yet? Visit<a href="http://www.th.jal.com" target="_blank"> http://www.th.jal.com </a>to join now and start earning miles!</td></tr>';
		}else{
			return '\u65e5\u672c\u822a\u7a7a\u3092\u3054\u5229\u7528\u3044\u305f\u3060\u304d\u3001\u8aa0\u306b\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002JAL\u30de\u30a4\u30ec\u30fc\u30b8\u30d0\u30f3\u30af\uff08JMB\uff09\u306b\u3054\u5165\u4f1a\u304c\u307e\u3060\u306e\u65b9\u306f<a href="http://www.th.jal.com" target="_blank"> http://www.th.jal.com </a>\u3088\u308a\u3054\u5165\u4f1a\u306e\u4e0a\u3001\u3055\u307e\u3056\u307e\u306a\u7279\u5178\u3092\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002</td></tr>';
		}
	}else{
		return params[key];
	}
}

JLJS.addOnload( function() {

	if (location.search){
		var blocks = JLJS.getElementsByClassName( "actionBlockA01" );
		if (blocks) {
			blocks[0].style.display = "block";
		}
		
		query = location.search.substring(1);
		var Params = new Object();
		if( ! query ) return Params; 
		var Pairs = query.split( /[;&]/ );
		var action = "";
		for( var i = 0; i < Pairs.length; i ++ ) {
			var KeyVal = Pairs[ i ].split( '=' );
			if( ! KeyVal || KeyVal.length != 2 ) continue;
			var key = unescape( KeyVal[ 0 ] );
			var val = unescape( KeyVal[ 1 ] );
			val = val.replace( /\+/g, ' ' );
			if (i==0) {
				action = val;
			}else{
				Params[ key ] = val;
			}
		}

		if(Params["TRIP_TYPE"] == "M"){
			Params = setMulParams(Params);
		}else{
			Params = setTopParams(Params);
		}

		var paramString = "";
		var disabledParams = getDisabledParams(Params);

		if (checkSecureFlightCity(Params)){
			disabledParams.push("SO_SITE_USE_ETCKT_DOCUMENT");
		}else{
			Params["SO_SITE_USE_ETCKT_DOCUMENT"] = "NO";
		}

		for (key in Params) {
			var isDisabled = false;
			for (var i=0;i<disabledParams.length;i++) {
				if (key == disabledParams[i]){
					isDisabled = true;
				}
			}
			if (isDisabled) {
				continue;
			}

			paramString = paramString + "\n<input type='hidden' name='" + key + "' value='" + getParam(key, Params) + "'>"
		}
		
		paramString = paramString + '\n';
		document.getElementById("hiddenParamArea").innerHTML = paramString;
		document.forms[0].action = action;
		document.forms[0].method = "post";

		if (getValueFromCookie("RsvNoticeNoDisp") == 1) {
			document.forms[0].submit();
			return;
		}
	}
	
	document.getElementById("body1").style.visibility = "visible";
	
});

function  setTopParams(params) {
	params["B_LOCATION_2"] = params["E_LOCATION_1"];
	params["E_LOCATION_2"] = params["B_LOCATION_1"];
	
	return params;
}

function  setMulParams(params) {
	var locationB = "B_LOCATION_"; 
	var locationE = "E_LOCATION_";
	var nonstopParam = "DIRECT_NON_STOP_";
	
	if (params["stopoverCheck_1"] == "1" && params["stopoverCheck_2"] == "1") {
		params["B_LOCATION_4"] = params["B_LOCATION_SO_2"];
		params["E_LOCATION_4"] = params["E_LOCATION_2"];
		params["B_LOCATION_3"] = params["B_LOCATION_2"];
		params["E_LOCATION_3"] = params["B_LOCATION_SO_2"];
		params["B_LOCATION_2"] = params["B_LOCATION_SO_1"];
		params["E_LOCATION_2"] = params["E_LOCATION_1"];
		params["E_LOCATION_1"] = params["B_LOCATION_SO_1"];
		params["B_DATE_4"] = getParamDate(params, 2);
		params["B_DATE_3"] = params["B_DATE_2"];
		params["B_DATE_2"] = getParamDate(params, 1);
		params["B_ANY_TIME_3"] = "TRUE";
		params["B_ANY_TIME_4"] = "TRUE";
	
		for(var n = 1; n < 5; n++){
			params[nonstopParam + n] = (params[locationB + n] == "TYO") ? "TRUE" : (params[locationE + n] == "TYO") ? "TRUE" : (params[locationB + n] == "OSA") ? "TRUE" : (params[locationE + n] == "OSA") ? "TRUE" : (params[locationB + n] == "NGO") ? "TRUE" : (params[locationE + n] == "NGO") ? "TRUE" : "FALSE"; 
		}
	}else if(params["stopoverCheck_1"] == "1" || params["stopoverCheck_2"] == "1"){	
		if(params["stopoverCheck_1"] == "1"){
			params["B_LOCATION_3"] = params["B_LOCATION_2"];
			params["E_LOCATION_3"] = params["E_LOCATION_2"];
			params["B_LOCATION_2"] = params["B_LOCATION_SO_1"];
			params["E_LOCATION_2"] = params["E_LOCATION_1"];
			params["E_LOCATION_1"] = params["B_LOCATION_SO_1"];	
			params["B_DATE_3"] = params["B_DATE_2"];
			params["B_DATE_2"] = getParamDate(params, 1);
			params["B_ANY_TIME_3"] = "TRUE";
			
		}else if(params["stopoverCheck_2"] == "1"){
			params["B_LOCATION_3"] = params["B_LOCATION_SO_2"];
			params["E_LOCATION_3"] = params["E_LOCATION_2"];
			params["E_LOCATION_2"] = params["B_LOCATION_SO_2"];		
			params["B_DATE_3"] = getParamDate(params, 2);
			params["B_ANY_TIME_3"] = "TRUE";
			
		}	
		
		for(var n = 1; n < 4; n++){
			params[nonstopParam + n] = (params[locationB + n] == "TYO") ? "TRUE" : (params[locationE + n] == "TYO") ? "TRUE" : (params[locationB + n] == "OSA") ? "TRUE" : (params[locationE + n] == "OSA") ? "TRUE" : (params[locationB + n] == "NGO") ? "TRUE" : (params[locationE + n] == "NGO") ? "TRUE" : "FALSE";
		}
	}else{
		for(var n = 1; n < 3; n++){
			params[nonstopParam + n] = (params[locationB + n] == "TYO") ? "TRUE" : (params[locationE + n] == "TYO") ? "TRUE" : (params[locationB + n] == "OSA") ? "TRUE" : (params[locationE + n] == "OSA") ? "TRUE" : (params[locationB + n] == "NGO") ? "TRUE" : (params[locationE + n] == "NGO") ? "TRUE" : "FALSE";
		}
	}
	return params;
}

function getDisabledParams(Params){
	
	var disabledParams;
	if (Params["TRIP_TYPE"] != "M" ){

		disabledParams = ["B_AREA", "E_AREA", "IS_FLEXIBLE", "x", "y", "B_MONTH", "B_DAY", "E_MONTH", "E_DAY", "image.x", "image.y"];

		if (Params["EMBEDDED_TRANSACTION"] == "FlexPricerAvailability") {
			disabledParams.push("FIELD_ADT_NUMBER", "FIELD_CHD_NUMBER", "FIELD_INFANTS_NUMBER", "SEVEN_DAY_SEARCH", "DIRECT_NON_STOP_1", "DIRECT_NON_STOP_2", "DIRECT_NON_STOP_3", "DIRECT_NON_STOP_4");
		}

		if (Params["TRIP_TYPE"] == "O") {
			disabledParams.push("B_DATE_2", "B_ANY_TIME_2", "B_LOCATION_2", "E_LOCATION_2");
		}

	}else{
		disabledParams = ["B_AREA_1", "B_MONTH", "B_DAY", "stopoverCheck_1", "B_AREA_2", "E_AREA_1", "E_AREA_2", "E_MONTH", "E_DAY", "stopoverCheck_2", "x", "y", "amadeusAction",  "FIELD_ADT_NUMBER", "FIELD_CHD_NUMBER", "FIELD_INFANTS_NUMBER", "REFRESH", "PRICING_TYPE", "DATE_RANGE_VALUE_1", "DATE_RANGE_VALUE_2", "DATE_RANGE_QUALIFIER_1", "DATE_RANGE_QUALIFIER_2", "DISPLAY_TYPE"];
	
		if (Params["stopoverCheck_1"] == "0" || Params["stopoverCheck_2"] == "0") {
			disabledParams.push("B_DATE_4", "B_ANY_TIME_4", "B_LOCATION_4", "E_LOCATION_4", "DIRECT_NON_STOP_4");
		}
		
		if (Params["stopoverCheck_1"] == "0" && Params["stopoverCheck_2"] == "0") {
			disabledParams.push("B_DATE_3", "B_ANY_TIME_3", "B_LOCATION_3", "E_LOCATION_3", "DIRECT_NON_STOP_3");
		}
	
		
		for (var i=1;i<=2;i++) {
			if (Params["stopoverCheck_" + i] == "1") {
				disabledParams.push("B_LOCATION_SO_" + i, "B_MONTH_SO_" + i, "B_DAY_SO_" + i);
			}			
		}		
	}
	
	return disabledParams;
}

function checkSecureFlightCity(Params){

	if (Params["TRIP_TYPE"] == "M" ){
		if(isSecureFlightCity(Params["E_AREA_1"], Params["E_LOCATION_1"])){
			return true;
		}
		if(isSecureFlightCity(Params["B_AREA_2"], Params["B_LOCATION_2"])){
			return true;
		}
	}else{
		if(isSecureFlightCity(Params["E_AREA"], Params["E_LOCATION_1"])){
			return true;
		}
	}
	return false;
}

function isSecureFlightCity(area, city){

	var areaList = ["JPN_13"];
	var cityList = ["YVR"];

	for (var i=0;i<areaList.length;i++) {
		if (area == areaList[i]){
			return false;
		}
	}
	for (var i=0;i<cityList.length;i++) {
		if (city == cityList[i]){
			return false;
		}
	}
	return true;
}

function getParamDate(params, no){
	var today = new Date();
	var year   = today.getFullYear();
	var month  = today.getMonth();
	var targetMonth = params["B_MONTH_SO_" + no];
	if (targetMonth < 10) {
		targetMonth = "0" + targetMonth;
	}
	if (parseInt(month, 10) > parseInt(targetMonth, 10)) {
		year = year + 1;
	}
	return year + targetMonth + params["B_DAY_SO_" + no] + "0000";
}