//*****************************************************************
//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 AU]]></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 SYD 61-2-9272-1133 JAL SYDNEY]]></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(params["EMBEDDED_TRANSACTION"] == "AirAvailability"){
			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 AU]]></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>3</CODE><LIST_VALUE><![CDATA[SRCKINYY-MATCH PAX C/C WZ TKT]]></LIST_VALUE><LIST_VALUE>S</LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>4</CODE><LIST_VALUE><![CDATA[OSYYCTCT SYD 61-2-9272-1133 JAL SYDNEY]]></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><GLOBAL_LIST mode="complete"><NAME>SITE_SITE_FARE_COMMANDS_AND_OPTIONS</NAME><LIST_ELEMENT><CODE>6</CODE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>2</LIST_VALUE><LIST_VALUE>4</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>TRUE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>3</CODE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>2</LIST_VALUE><LIST_VALUE>4</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>TRUE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE></LIST_ELEMENT><LIST_ELEMENT><CODE>1</CODE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>2</LIST_VALUE><LIST_VALUE>4</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>1</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE>FALSE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE>TRUE</LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></LIST_VALUE><LIST_VALUE></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 AU]]></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 SYD 61-2-9272-1133 JAL SYDNEY]]></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["EMBEDDED_TRANSACTION"] == "AirAvailability"){//SD_Prm
			return "JAL Ticket Delivery Service : 02-9272-1133";
		}else{
			return "<tr><td>JAL Ticket Delivery Service : 02-9272-1133";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE2"){
		return "JAL Sydney Reservation Office : 1300 JAL AUS | 1300 525 287";
	}else if(key == "SO_LANG_SITE_AGENCY_LINE3"){
		if(params["EMBEDDED_TRANSACTION"] == "AirAvailability"){//SD_Prm
			return "";
		}else{
			return " ";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE4"){
		if(params["LANGUAGE"] == "JP"){
			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\u3002";
		}else if(params["LANGUAGE"] == "GB"){
			return "Thank you for choosing JAPAN AIRLINES.";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE5"){
		if(params["EMBEDDED_TRANSACTION"] == "AirAvailability"){//SD_Prm
			if(params["LANGUAGE"] == "JP"){
				return 'JAL\u30de\u30a4\u30ec\u30fc\u30b8\u30d0\u30f3\u30af\uff08JMB\uff09\u306b\u3054\u5165\u4f1a\u304c\u307e\u3060\u306e\u65b9\u306f http://www.au.jal.com \u3088\u308a\u3054\u5165\u4f1a\u306e\u4e0a\u3001\u3055\u307e\u3056\u307e\u306a\u7279\u5178\u3092\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002';
			}else if(params["LANGUAGE"] == "GB"){
				return 'Not a JAL Mileage Bank member yet? Visit http://www.au.jal.com to join now and start earning miles!';
			}
		}else{
			if(params["LANGUAGE"] == "JP"){
				return 'JAL\u30de\u30a4\u30ec\u30fc\u30b8\u30d0\u30f3\u30af\uff08JMB\uff09\u306b\u3054\u5165\u4f1a\u304c\u307e\u3060\u306e\u65b9\u306f <a href="http://www.jal.com.au" target="_blank">www.jal.com.au</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 if(params["LANGUAGE"] == "GB"){
				return 'Not a JAL Mileage Bank member yet? Visit <a href="http://www.jal.com.au" target="_blank">www.jal.com.au</a> to join now and start earning miles!</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"] == "R"){
			Params = setTopParams(Params);
		}else if(Params["TRIP_TYPE"] == "M"){
			Params = setMulParams(Params);
		}else{
			Params = setTopSDParams(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 setTopSDParams(params){//SDcassette
	if(params["EMBEDDED_TRANSACTION"] == "AirAvailability"){
		params["B_DATE_2"] = "";
	}
	
	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++){			
			if(params[locationB + n] == "TYO" || params[locationE + n] == "TYO"){
				params[nonstopParam + n] = "TRUE";
			}else{
				params[nonstopParam + n] = "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++){			
			if(params[locationB + n] == "TYO" || params[locationE + n] == "TYO"){
				params[nonstopParam + n] = "TRUE";
			}else{
				params[nonstopParam + n] = "FALSE";
			}
		}
	}else{
		for(var n = 1; n < 3; n++){			
			if(params[locationB + n] == "TYO" || params[locationE + n] == "TYO"){
				params[nonstopParam + n] = "TRUE";
			}else{
				params[nonstopParam + n] = "FALSE";
			}
		}
	}
	return params;
}

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

		disabledParams = [];

		if (Params["EMBEDDED_TRANSACTION"] == "FlexPricerAvailability") {//FPcassette
			disabledParams.push("SEVEN_DAY_SEARCH", "FIELD_ADT_NUMBER", "FIELD_CHD_NUMBER", "FIELD_INFANTS_NUMBER", "DIRECT_NON_STOP_1", "DIRECT_NON_STOP_2", "DIRECT_NON_STOP_3", "DIRECT_NON_STOP_4", "B_AREA", "E_AREA", "IS_FLEXIBLE", "x", "y", "B_MONTH", "B_DAY", "E_MONTH", "E_DAY", "image.x", "image.y", "B_DATE_3", "B_DATE_4", "B_DATE_5", "B_DATE_6", "B_TIME", "E_TIME", "JL_SITE_LANGUAGE", "SEARCH_PAGE", "SEVEN_DAY_SEARCH", "B_ANY_TIME_3", "B_ANY_TIME_4", "B_ANY_TIME_5", "B_ANY_TIME_6");
			
			for(var i = 1; i <= 6; i ++ ){
	disabledParams.push("AIRLINE_" + i + "_1", "AIRLINE_" + i + "_2", "AIRLINE_" + i + "_3", "RBD_" + i + "_1", "RBD_" + i + "_2", "RBD_" + i + "_3");
			}

			if (Params["TRIP_TYPE"] == "O") {
				disabledParams.push("B_ANY_TIME_2", "B_DATE_2", "B_LOCATION_2", "E_LOCATION_2");
			}
		}else if(Params["EMBEDDED_TRANSACTION"] == "AirAvailability"){//SDcassette
			disabledParams.push("REFRESH", "PRICING_TYPE", "DISPLAY_TYPE", "DATE_RANGE_VALUE_1", "DATE_RANGE_VALUE_2", "DATE_RANGE_QUALIFIER_1", "DATE_RANGE_QUALIFIER_2", "SO_SITE_MAIL_PREF_SECTION", "DIRECT_NON_STOP_1", "DIRECT_NON_STOP_2", "DIRECT_NON_STOP_3", "DIRECT_NON_STOP_4", "B_LOCATION_2", "E_LOCATION_2", "COMMERCIAL_FARE_FAMILY_1", "B_AREA", "E_AREA", "IS_FLEXIBLE", "x", "y", "image.x", "image.y");
			if (Params["TRIP_TYPE"] == "O") {
				disabledParams.push("E_TIME");
			}
		}
	}else if(Params["TRIP_TYPE"] == "M"){
		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", "REFRESH", "PRICING_TYPE", "DATE_RANGE_VALUE_1", "DATE_RANGE_VALUE_2", "DATE_RANGE_QUALIFIER_1", "DATE_RANGE_QUALIFIER_2", "DISPLAY_TYPE", "FIELD_ADT_NUMBER", "FIELD_CHD_NUMBER", "FIELD_INFANTS_NUMBER"];
	
		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_11", "EUR_03", "ASA_05"];
	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";
}