var y_month_days = ['JAN' , 'FEB' , 'MAR' , 'APR' , 'MAY' , 'JUN' , 'JUL' , 'AUG' , 'SEP' , 'OCT' , 'NOV' , 'DEC'];
var t_month_days = {'JAN':1 , 'FEB':2 , 'MAR':3 , 'APR':4 , 'MAY':5 , 'JUN':6 , 'JUL':7 , 'AUG':8 , 'SEP':9 , 'OCT':10 , 'NOV':11 , 'DEC':12};

var log_url = {
                'dom_tic'            : '/ana-link/top_module/dom/ana.html',
                'dom_tra'            : '/ana-link/top_module/dom/asx.html',
                'dom_tic_sub'        : '/ana-link/top_module/dom/ana_be.html',
                'dom_tra_sub_guest'  : '/asw/travel/dom.jsp', 
                'dom_tra_sub_member' : '/asw/travel/dom.jsp',
                'int_tic'            : '/ana-link/top_module/int/ana.html',
                'int_tra'            : '/ana-link/top_module/int/asx.html',
                'int_tic_sub'        : '/ana-link/top_module/int/ana_be.html',
                'int_tra_sub_guest'  : '/asw/travel/int.jsp',
                'int_tra_sub_member' : '/asw/travel/int.jsp'
               };

var apo_info = {

    'HND' : ['07', '018', ''   ], 'NRT' : ['07', '019', '062'], 'KIJ' : ['07', '023', '072'],
    'HAC' : ['07', '022', '071'], 'MYE' : ['07', '022', '070'], 'OIM' : ['07', '022', '069'],

    'ITM' : ['10', '030', ''],    'KIX' : ['10', '030', ''   ], 'UKB' : ['10', '032', '092'],

    'NGO' : ['15', '053', '081'],

    'FUK' : ['05', '008', '136'], 'KOJ' : ['05', '014', '159'], 'KMI' : ['05', '013', '156'],
    'KMJ' : ['05', '011', '148'], 'NGS' : ['05', '010', '143'], 'OIT' : ['05', '012', '152'],
    'HSG' : ['05', '009', '139'], 'FUJ' : ['05', '010', '189'], 'TSJ' : ['05', '010', '189'],

    'OKD' : ['02', '001', '001'], 'CTS' : ['02', '001', '001'], 'HKD' : ['02', '003', '020'], 
    'AKJ' : ['02', '002', '008'], 'KUH' : ['02', '004', '026'], 'MMB' : ['02', '004', ''   ],
    'WKJ' : ['02', '005', '035'], 'SHB' : ['02', '004', ''   ], 'MBE' : ['02', '004', ''   ],
    'RIS' : ['02', '005', '036'],

    'OKA' : ['03', '006', ''   ], 'ISG' : ['03', '007', '169'], 'MMY' : ['03', '007', '170'],

    'SDJ' : ['08', '027', '042'], 'AXT' : ['08', '026', '041'], 'SYO' : ['08', '028', ''   ],
    'ONJ' : ['08', '026', '041'], 'FKS' : ['08', '029', '046'],

    'KMQ' : ['14', '045', '097'], 'TOY' : ['14', '046', '102'], 'NTQ' : ['14', '045', '098'],

    'HIJ' : ['11', '039', '119'], 'OKJ' : ['11', '038', '116'], 'IWJ' : ['11', '037', ''   ],
    'TTJ' : ['11', '036', '107'], 'UBJ' : ['11', '040', '121'], 'YGJ' : ['11', '036', '108'], 
    'TAK' : ['11', '042', '127'], 'MYJ' : ['11', '043', '130'], 'KCZ' : ['11', '044', '133'],
    'TKS' : ['11', '041', '125']
};

var dep_dis = [
               ['NRT', ['PVG', 'PEK', 'SHE', 'DLC', 'TAO', 'HGH', 'CAN', 'XMN',
                        'LAX', 'SFO', 'JFK', 'IAD', 'ANH', 'SJC',
                        'LHR', 'CDG', 'FRA',
                        'HNL',
                        'BKK', 'SIN', 'HKG', 'SGN', 'ICN', 'TPE']],
               ['HND', ['GMP']],
               ['KIX', ['PVG', 'PEK', 'SHE', 'DLC', 'TAO', 'HGH', 'XMN',
                        'GUM',
                        'HNL',
                        'HKG', 'ICN', 'TPE']],
               ['NGO', ['PVG',
                        'ICN', 'TPE']] 
              ];

var dis_min = { 'CHN' : 2, 'ASI' : 2, 'HWI' : 2, 'GUM' : 3, 'USA' : 3, 'EUR' :4}; 

var numItsumono = 2;

var imgItsumono =['/common/image/spacer.gif',
                  '/common/image/index-txt-09.gif',
                  '/common/image/index-txt-08.gif'];

var depApos  = [null, depApo1, depApo2];
var arrApos  = [null, arrApo1, arrApo2];

var params = [];

var arrApo = [];

var date;
var year;
var hour;
var month;
var day;

function makeDate() {
	
    date  = new Date();
    year  = date.getFullYear();
    hour  = date.getHours();
    month = date.getMonth() + 1;
    day   = date.getDate();

}

function _distinctArray(arr) {
    var len = arr.length,cnt=0,list={},end=[];
    for(var i = 0; i < len; i++){
        if (!list[arr[i]]) {
            end[cnt++] = arr[i];
            list[arr[i]] = true;
        }
    }
    return end;

} 

function _inArray(lists, needle) {
    var ret = false;
    var max = lists.length;
    for (var i = 0;i < max; i++) {
        if (lists[i] == needle) ret = true;
    }
    return ret;

} 

function _isMember() {
    return (mstat.match(/^(m1e0|m1e1|m1e0t0|m1e0t1|m1e1t0|m1e1t1)$/) ) ? true : false;

}

function _isOftenMember() {
    return (mstat.match(/^(m1e1|m1e1t0|m1e1t1)$/) ) ? true : false;

}

function _isTabidachiMember() {
    return (mstat.match(/^(m1e0t1|m1e1t1)$/) ) ? true : false;

}

function _enableSelect(form, num_element) {
    form.elements[num_element].disabled = false;

}

function _disableSelect(form, num_element) {
    form.elements[num_element].disabled = true;

}

function _buildHtmlOptions(form, num_element, lists) {
    var num_lists = lists.length;
    for(var i = 0; i < num_lists; i++) {
        form.elements[num_element].options[i] = new Option(lists[i][1], lists[i][0]);
    }
    if (num_lists > 0) {
        form.elements[num_element].options.length = num_lists;
    }

}

function addHtmlOption(form, num_element, lists) {
    if (_isOftenMember()) {
        var num = form.elements[num_element].length;
        form.elements[num_element].options[num] = new Option(lists[1], lists[0]);
    }

}

function loadElements(y_form, name, num_element){
	//var params = new Object();
    params[name] = [];
    var y_max = y_form.elements[num_element].length;
    for (var i = 0; i < y_max; i++) {
        params[name][i] = [y_form.elements[num_element].options[i].value,
                           y_form.elements[num_element].options[i].text];
    }
}

function setElements(form, name, num_element) {
    var max = params[name][num_element].length;
    for (var i = 0; i < max; i++) {
        form.elements[num_element].options[i].value = params[name][0];
        form.elements[num_element].options[i].text  = params[name][1];
    }

}

function setHtmlOptionDefault(form, num, valuedef, check) {
    if (check != true && !_isMember()){
		valuedef = '';
	}
	var max = form.elements[num].options.length;
	for(var i = 0; i < max; i++) {
		if(form.elements[num].options[i].value == valuedef) {
			form.elements[num].selectedIndex = i;
			break; 
		}
	}
}
function setHtmlOptionDefault2(form, num, valuedef) {
    var max = form.elements[num].options.length;
    for(var i = 0; i < max; i++) {
        if(form.elements[num].options[i].value == valuedef) {
            form.elements[num].options.selectedIndex = i;
            break; 
        }
    }

}

function setHtmlOptionDefaultMonth(form, num, valuedef, check) {
    if (check != true && !_isMember()){
		valuedef = '';
	}

	var max = form.elements[num].options.length;
	for(var i = 0; i < max; i++) {
		if(form.elements[num].options[i].value == y_month_days[valuedef]) {
			form.elements[num].options.selectedIndex = i;
			break; 
		}
	}

}

function setHtmlRadioChecked(form, nums, value) {
    if (!_isMember()) value = '';
    var max = nums.length; 
    for(var i = 0; i < max; i++) {
        if(form.elements[nums[i]].value == value) {
            form.elements[nums[i]].checked = true;
        }
    }

}

function setMonthDay(form, num_month, num_day, plus, org, nocheck) {
    if (!(nocheck == true) && _isMember()) {
        var month_int = embMonth;
        var day_int   = embDay;
    } else {
        date.setDate(day + plus);
        var month_int = date.getMonth() + 1;
        var day_int   = date.getDate();
    }

    month_int = '0' + month_int;
    day_int   = '0' + day_int;
    month_int = month_int.substr(month_int.length - 2);
    day_int   = day_int.substr(day_int.length - 2);

    var max = form.elements[num_month].options.length;
    for(var i = 0; i < max; i++){
        if(form.elements[num_month].options[i].value == month_int){
             form.elements[num_month].options.selectedIndex = i;
        }
    }
    var max = form.elements[num_day].options.length;
    for(var i = 0; i < max; i++) {
        if(form.elements[num_day].options[i].value == day_int) {
            form.elements[num_day].options.selectedIndex = i;
        }
    }

}

function setDateInt(form, num_month, num_day, plus) {

    makeDate();

    date.setDate(day + plus);
    var month_int = date.getMonth();
    var day_int   = date.getDate() -1;
    day_int   = '0' + day_int;
    day_int   = day_int.substr(day_int.length - 2);
   
    var max = form.elements[num_month].options.length;
	
    for(var i = 0; i < max; i++){
        if(form.elements[num_month].options[i].value == y_month_days[month_int]){
             form.elements[num_month].options.selectedIndex = i;
             break;
        }
    }

    _buildHtmlOptionDays(form, num_day, form.elements[num_month].value);

/*
    var max = form.elements[num_day].options.length;
    for(var i = 0; i < max; i++){
        if(form.elements[num_day].options[i].value == day_int){
             form.elements[num_day].options.selectedIndex = i;
        }
    }
*/

}

function  _buildHtmlOptionDays(form, num_element, month) {
    var month_days = { '00' : null,
                       'JAN' : 31, 'FEB' : 29, 'MAR' : 31, 'APR' : 30, 'MAY' : 31, 'JUN' : 30, 
                       'JUL' : 31, 'AUG' : 31, 'SEP' : 30, 'OCT' : 31, 'NOV' : 30, 'DEC' : 31 };
    var day_data = [['', '---']];

    if ((((year + 1)%4)==0 && ((year + 1)%100)!=0) || ((year + 1)%400)==0) month_days['FEB'] = 29;  
    var max = month_days[month];
    for (var i = 1; i <= max; i++) {
       var tmp = '0' + i;
       tmp = tmp.substr(tmp.length - 2);
       day_data[day_data.length] = [tmp, i];
    } 
    _buildHtmlOptions(form, num_element, day_data);

}

function setDateFromCal(cmonth, cday, target) {
    var target_nums = { 'dom_tic'     : [document.segConditionForm, 4, 5], 
                        'dom_tra'     : [document.atourForm,        4, 5],
                        'int_tic_dep' : [document.int_be,            6, 7], 
                        'int_tic_arr' : [document.int_be,            8, 9],
                        'int_tra_dep' : [document.atourForm,        3, 4], 
                        'int_tra_arr' : [document.atourForm,        5, 6] };

    var form              = target_nums[target][0];
    var num_element_month = target_nums[target][1];
    var num_element_day   = target_nums[target][2];

    cmonth = '0' + cmonth;
    cday   = '0' + cday;
    cmonth = cmonth.substr(cmonth.length - 2);
    cday   = cday.substr(cday.length - 2);

    setHtmlOptionDefault(form, num_element_month, cmonth, true);
    _buildHtmlOptionDays(form, num_element_day, cmonth);
    setHtmlOptionDefault(form, num_element_day, cday, true);

    if (target == 'int_tra_dep') {
        changePAMDPD_day()
    }

}

function getDayMin(form, num_element) { 
    return dis_min[form.elements[num_element].value];

}

function changeApoArr02(form, from, to) {
    if (form.elements[2].options[form.elements[2].options.selectedIndex].value == 'idx') {
        form.elements[2].options.selectedIndex = form.elements[2].options.selectedIndex + 1;
    }

    if (form.elements[2].options[form.elements[2].options.selectedIndex].value.match(/^SEP_/)) {
        for (var i = form.elements[2].options.selectedIndex; i >= 0; i--) {
             if (form.elements[2].options[i].value == 'idx') {
                 break;
             } else {
                 for (var j=0; j <10000; j++) {}
                 form.elements[2].options.selectedIndex = i;
             }
       }
    }

    setCodeApo(form, from, to);

}

function changeAreaArr02(form) {
	var arrArea = form.elements[2].options[form.elements[2].options.selectedIndex].text;	
    var onarea  = false;
    var value_text = [];
		
    if (arrArea == 'Select Region') {
        value_text = params['arr_lists2'];
    } else {
        for (var i = 0; i < params['arr_lists2'].length; i++) {
            if (onarea && params['arr_lists2'][i][0] != 'idx') {
                value_text[value_text.length] = [params['arr_lists2'][i][0], params['arr_lists2'][i][1]];
            }
            if ( params['arr_lists2'][i][0] == 'idx') {
                if (params['arr_lists2'][i][1] == '*' + arrArea) {
                    onarea = true;
                } else {
                    onarea = false;
                }
            }
        }
    }
    _buildHtmlOptions(form, 4, value_text);

    setCodeApo(form, 4, 3 );
}

function changeApoArr(form, from, to) {
    if (form.elements[5].options[form.elements[5].options.selectedIndex].value == 'idx') {
        form.elements[5].options.selectedIndex = form.elements[5].options.selectedIndex + 1;
    }

    if (form.elements[5].options[form.elements[5].options.selectedIndex].value.match(/^SEP_/)) {
        for (var i = form.elements[5].options.selectedIndex; i >= 0; i--) {
             if (form.elements[5].options[i].value == 'idx') {
                 break;
             } else {
                 for (var j=0; j <10000; j++) {}
                 form.elements[5].options.selectedIndex = i;
             }
       }
    }

    setCodeApo(form, from, to);

}

function setCodeApo(form, from, to) {
    var Airport = form.elements[from].options[form.elements[from].options.selectedIndex].value;	
    if (Airport.match(/^SEP/)||Airport.match(/^idx$/)) {
        Airport = '';
    } 

    form.elements[to].value = Airport;

}

function changeAreaArr(form) {
    var arrArea = form.elements[5].options[form.elements[5].options.selectedIndex].text;
    var onarea  = false;
    var value_text = [];
    if (arrArea == 'select') {
        value_text = params['arr_lists'];
    } else {
        for (var i = 0; i < params['arr_lists'].length; i++) {
            if (onarea && params['arr_lists'][i][0] != 'idx') {
                value_text[value_text.length] = [params['arr_lists'][i][0], params['arr_lists'][i][1]];
            }
            if ( params['arr_lists'][i][0] == 'idx') {
                if (params['arr_lists'][i][1] == '*' + arrArea) {
                    onarea = true;
                } else {
                    onarea = false;
                }
            }
        }
    }
    _buildHtmlOptions(form, 7, value_text);

    setCodeApo(form, 7, 6 );
}

function _displayAlert(message) {
    alert(message);

}

function _setDynamicParameter(form, target, value) {
    form.elements[target].value = value;

}

function changewayToMonth() {
    _buildHtmlOptionDays(document.int_be, 9, document.int_be.elements[8].value);
    setHtmlOptionDefault(document.int_be, 9, '01', true);

    setHtmlOptionDefault(document.int_be, 10, document.int_be.elements[8].value, true);

    _buildHtmlOptionDays(document.int_be, 11, document.int_be.elements[8].value);
    setHtmlOptionDefault(document.int_be, 11, '04', true);

}

function changewayToDay() {
    makeDate();
    if (document.int_be.elements[9].value == '') return;
    var tmpDate  = new Date(year, t_month_days[document.int_be.elements[8].value] - 1,
                                  document.int_be.elements[9].value.replace(/^0/, ''));

    tmpDate.setDate(tmpDate.getDate() + 3);
    var tmpMonth = tmpDate.getMonth();
    var tmpDay   = tmpDate.getDate();


    setHtmlOptionDefaultMonth(document.int_be, 10, tmpMonth, true);
    _buildHtmlOptionDays(document.int_be, 11, y_month_days[tmpMonth], true);

    setHtmlOptionDefault(document.int_be, 11, tmpDay, true);

}

function changewayBackMonth() {
    _buildHtmlOptionDays(document.int_be, 11, document.int_be.elements[10].value);
    setHtmlOptionDefault(document.int_be, 11, '01', true);
}

function changewayBackDay() {
}


function changePAMRTD_day() {
}

function accessDummyForLog(pagename) {
    var logimg = new Image();
    logimg.src = log_url[pagename] + '?' + date.getMilliseconds();
}
