//*****************************************************************
//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 = "domain=" + document.domain + "; ";
	value += "path=" + "/" + ";";
	document.cookie = value;
	
	var formParam = document.forms[0];
	var jalCard = document.getElementById("jalCard1");
	var jpnCardParam = ["SO_SITE_MOP_CREDIT_CARD", "SO_SITE_MOP_EXT", "SO_SITE_CC_DIGIT_CODE", "SO_SITE_NO_CC_ELLIGIBILITY", "SO_SITE_SPECIFIC_CC_DIGIT_CO"];
	
	if(jalCard.checked){
		for(var i=0; i<jpnCardParam.length; i++){
			if(!formParam.elements[jpnCardParam[i]]){
				jalCardControl.addParam(jpnCardParam[i]);
			}else{
				formParam.elements[jpnCardParam[i]].disabled = false;
			}
		}
		jalCardControl.setCardParam(formParam, true);
		
	}else{			
		for(var i=0; i<jpnCardParam.length; i++){
			if(formParam.elements[jpnCardParam[i]]){
				formParam.elements[jpnCardParam[i]].disabled = true;
			}
		}
		jalCardControl.setCardParam(formParam, false);
	}
	
	formParam.submit();
}

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 SIN]]></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 SIN 65-6220-2833 JAL SINGAPORE]]></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 SIN]]></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 SIN 65-6220-2833 JAL SINGAPORE]]></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 if(key == "SO_LANG_SITE_AGENCY_LINE1"){
		if(params["LANGUAGE"] == "GB"){
			return '<tr><td><ul style="list-style-type: disc; padding-left:15px;"><li><font color="red">Any booking made between Friday from 1730hrs to Monday 0000hrs and on Public Holiday for travel that falls on Saturday, Sunday, Monday & Public Holiday, tickets will be issued only at JAL SIN airport check in counter.  Please kindly produce your credit card for payment when you approach the counter for your ticket issuance. The credit card billing is done at the check in counter.</font></li>';
		}else{
			return '<tr><td>&#8226; <font color="red">\u3054\u4e88\u7d04\u306e\u53d7\u4ed8\u304c\u91d1\u66dc\u65e5\u306e\u5348\u5f8c5\u664230\u5206\u304b\u3089\u6708\u66dc\u65e5\u306e\u96f6\u6642\u307e\u3067\u306e\u9593\u3068\u796d\u65e5\u306b\u5b8c\u4e86\u3055\u308c\u3001\u3054\u51fa\u767a\u65e5\u304c\u571f\u66dc\u65e5\u3001\u65e5\u66dc\u65e5\u3001\u6708\u66dc\u65e5\u306e\u5348\u524d\u3068\u796d\u65e5\u306b\u5f53\u305f\u308b\u5834\u5408\u306f\u3054\u51fa\u767a\u5f53\u65e5\u7a7a\u6e2f\u30c1\u30a7\u30c3\u30af\u30a4\u30f3\u30ab\u30a6\u30f3\u30bf\u30fc\u3067\u306eE-ticket\u767a\u5238\u4e26\u3073\u306b\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u3078\u306e\u3054\u8acb\u6c42\u3068\u306a\u308a\u307e\u3059\u306e\u3067\u3001\u540c\u3058\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u3092\u30ab\u30a6\u30f3\u30bf\u30fc\u3067\u3054\u63d0\u793a\u9802\u304d\u307e\u3059\u3002</font>';
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE2"){
		if(params["LANGUAGE"] == "GB"){
			return "<li>JAL Reservation Call Centre: 800-852-3688</li>";
		}else{
			return "&#8226; JAL Reservation Call Centre: 800-852-3688";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE3"){
		if(params["LANGUAGE"] == "GB"){
			return "<li>For Sunday/Monday/Public Holiday departures: Please note that e-ticket will not be sent by e-mail for last minute bookings made online 3 days or less before departure. Please collect your e-ticket at the airport check-in counter.</li></ul>";
		}else{
			return "&#8226; \u65e5\u30fb\u6708\u30fb\u795d\u65e5\u306b\u3054\u51fa\u767a\u306e\u304a\u5ba2\u69d8\u3000\uff1a\u3000\u3054\u51fa\u767a\u65e5\u306e\uff13\u65e5\u524d\u4ee5\u964d\u306b\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u3067\u304a\u7533\u3057\u8fbc\u307f\u306e\u304a\u5ba2\u69d8\u306b\u306fe\u30c1\u30b1\u30c3\u30c8\u304a\u63a7\u3048\u3092\u304a\u9001\u308a\u3044\u305f\u3057\u307e\u305b\u3093\u3002\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb\u30c1\u30e3\u30f3\u30ae\u7a7a\u6e2fJAL\u30c1\u30a7\u30c3\u30af\u30a4\u30f3\u30ab\u30a6\u30f3\u30bf\u30fc\u3067e\u30c1\u30b1\u30c3\u30c8\u3092\u304a\u53d7\u3051\u53d6\u308a\u304f\u3060\u3055\u3044\u3002";
		}
	}else if(key == "SO_LANG_SITE_AGENCY_LINE4"){
		return " ";
	}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.sg.jal.com" target="_blank"> http://www.sg.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.sg.jal.com" target="_blank"> http://www.sg.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";
	}
	
	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" : "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" : "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" : "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 (Params["stopoverCheck_1"] != "0") {
			if(isSecureFlightCity(Params["E_AREA_1"], Params["E_LOCATION_2"])){
				return true;
			}
			if(isSecureFlightCity(Params["B_AREA_2"], Params["B_LOCATION_3"])){
				return true;
			}			
		}else{
			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_12", "MYS_04"];
	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";
}