/*
 * Ana Cargo for toppage
 *   @require jquery 1.2.6 -
 *   @require jquery-date-picker
 *   Copyright All Nippon Airways Co., LTD. All rights reserved
 */

// top

//for flight availability
var flava = {
	putshdate: function(){
		var date = new Date();
		var day = date.getDay();
		var month = date.getMont();
	},
	selectOrigin: function(){
		$('#orsel').change(function(){
			var selected = $(this).children('option[@selected]');
			if(selected != 'undefined')
				$('#origin').val(selected.val());
		});
		
		$('#origin').blur(function(){
			var val = $(this).val();
			if(val != 'undefined'){
				var code = val.toUpperCase();
				$(this).val(code);
				$('#orsel option[@value='+code+']').attr('selected', 'selected');
			}
		});
	},
	selectDestination: function(){
		$('#desel').change(function(){
			var selected = $(this).children('option[@selected]');
			if(selected != 'undefined')
				$('#destination').val(selected.val());
		});
		
		$('#destination').blur(function(){
			var val = $(this).val();
			if(val != 'undefined'){
				var code = val.toUpperCase();
				$(this).val(code);
				$('#desel option[@value='+code+']').attr('selected', 'selected');
			}
		});
	},
	dpinit: function(){
		var duration = 14;
		var today = new Date();
		var sd = new Date(today.getFullYear(), today.getMonth(), today.getDate()-1);
		var ed = new Date(today.getFullYear(), today.getMonth(), today.getDate()+duration);
		
		var sdate = '';
		var edate = '';
		var selected = '';
		
		var option = '';
		for(var i=0; i< duration; i++){
			var d = new Date(today.getFullYear(), today.getMonth(), (today.getDate()-1)+i);
			var date = d.getDate();
			date = (d.getDate() < 10) ? '0'+date : date;
			var month = d.getMonthName(true);
			var label = date+'-'+month+'-'+d.getFullYear();
			
			var lmonth = (d.getMonth() < 9) ? '0'+(d.getMonth()+1) : (d.getMonth()+1);
			if(i == 0){
				sdate = date+'/'+lmonth+'/'+d.getFullYear();
			}else if(i == 1){
				selected = date+'/'+lmonth+'/'+d.getFullYear();
			}else if(i == (duration - 1)){
				edate = date+'/'+lmonth+'/'+d.getFullYear();
			}
			if(i == 1){
				option += '<option value="'+label+'" selected="selected">'+label+'</option>';
			}else{
				option += '<option value="'+label+'">'+label+'</option>';
			}
		}
		$('#dtdat').html(option);
		
		//for IE6 iframe
		var iframe = $('<iframe scrolling="no" frameborder="0" id="dp-shim"></iframe>');
		$('body').append(iframe);
		
		//datePicker init
		$('#date-picker').datePicker(
			{
				createButton:false,
				startDate: sdate,
				endDate: edate
			}
		).bind(
			// when the link is clicked display the date picker
			'click',
			function()
			{
				if($(this).dpGetSelected()[0]) updateSelects($(this).dpGetSelected()[0]);
				$(this).dpDisplay();
				$('#dp-shim').css('top', $('#dp-popup').css('top')).css('left', $('#dp-popup').css('left')).css('height', $('#dp-popup').height());
				$('#dp-shim').show();
				
				return false;
			}
		).bind(
			// when a date is selected update the SELECTs
			'dateSelected',
			function(e, selectedDate, $td, state){
				updateSelects(selectedDate);
			}
		).bind(
			'dpClosed',
			function(e, selected){
				updateSelects(selected[0]);
				$('#dp-shim').hide();
			}
		);
		
		var updateSelects = function (selectedDate){
			selectedDate = new Date(selectedDate);
			var d = selectedDate.getDate();
			var m = selectedDate.getMonthName(true);
			var y = selectedDate.getFullYear();
			d = (d < 10) ? '0'+d : d;
			var date = d+'-'+m+'-'+y;
			$('#dtdat').val(date);
		};
		
		// listen for when the selects are changed and update the picker
		$('#dtdat')
			.bind(
				'change',
				function()
				{
					var date = $(this).val();
					var m = date.substr(3,3);
					var month = 0;
					for(var i = 0; i<Date.abbrMonthNames.length; i++){
						if(Date.abbrMonthNames[i] == m){
							month = i;
							break;
						}
					}
					
					var d = new Date(
								date.substr(7, 4),
								month,
								date.substr(0, 2)
					);
					$('#date-picker').dpSetSelected(d.asString());
				}
			);
		
		// and update the datePicker to reflect it...
		$('#dtdat').trigger('change');
		
	},
	init: function(){
		
		//date picker init
		flava.dpinit();
		
		flava.selectOrigin();
		flava.selectDestination();
	}
};

$(function() {
	//flight availability initialize
	flava.init();
	
	//for shipment status
	if($('#mab').size() > 0 && $('#hab').size() > 0){
	
		//img -> radio click
		$('#hab_img').click(function() {
			$('#hab').click();
		});
		$('#mab_img').click(function() {
			$('#mab').click();
		});
		
		
		$('#hab').click(function() {
			$('#mst').hide();
			$('#sub').show();
			$('.search_btn').addClass('prt22');
		});
		$('#mab').click(function() {
			$('#sub').hide();
			$('#mst').show();
			$('.search_btn').removeClass('prt22');
			
			$('#nest').hide();
			$('#link_close').hide();
			$('#link_more').show();
		});
		
		
		$('#link_more').click(function() {
			$('#nest').show();
			$(this).hide();
			$('#link_close').show();
		});
		
		$('#link_close').click(function() {
			$('#nest').hide();
			$(this).hide();
			$('#link_more').show();
		});
	
	}
});

/**
 * 検索ボタン押下時処理
 * @param : 路線検索（Flight） or 動態確認（Shipment）
 * @return : true / false
 *
 */
function func_submit(param) {

	var frm = "";
	var ret = true;

	// 路線検索の場合
	if (param == 'Flight') {
		// 未入力チェック
		if(chkFlightData()) {
			frm = document.dra;
			frm.dispatch.value="search";
			frm.guestEntry.value="flightAvailability";
			frm.action="https://shar.ana.co.jp/eACROSS/flightAvailability.do";
		} else {
			ret = false;
		}

	}


	// 動態確認の場合
	if (param == 'Shipment') {
		frm = document.dsse;
		var retVal = get_selected_value();

		// MAWBの場合
		if (retVal == 'MAWB') {
			// 未入力チェック
			if(chkMAWBData()) {
				frm.dispatch.value="retrieveMAWBSearchResult";
				frm.guestEntry.value="shipmentStatus";
			} else {
				ret = false;
			}
		// HAWBの場合
		} else {
			// 未入力チェック
			if(chkHAWBData()) {
				frm.guestEntry.value="shipmentStatus";
			} else {
				ret = false;
			}
		}



	}


	// 未入力チェックがOKであれば、submit
	if(ret) {
		frm.submit();
		return false;
	}

	return ret;

}

/**
 *
 * MAWB/HAWBの判定を実施する
 * @param : なし
 * @return : MAWB / HAWB の文字列
 */
function get_selected_value()
{
	for (var i=0; i < document.dsse.awbType.length; i++)
	{
		if (document.dsse.awbType[i].checked)
		{
			var rad_val = document.dsse.awbType[i].value;
			return rad_val;
		}
	}
}

/**
 *
 * Objectのスペースを削除する（トリム処理）
 * @param : obj（StringObject）
 * @return : スペース削除後の文字列（String）
 *
 */
function strTrim(obj) {
	return obj.value.replace(/^[ ]+|[ ]+$/g, '');
}

/**
 *
 * Flight の未入力チェックを実施
 * @param : なし
 * @return : true / false
 *
 */
function chkFlightData() {
	var ret = true;

	if (strTrim(document.dra.origin)=="") {
		alert('The Origin field must be entered.');
		ret = false;
	} else if (strTrim(document.dra.destination)=="") {
		alert('The Destination field must be entered.');
		ret = false;
	} else if (strTrim(document.dra.origin)==strTrim(document.dra.destination)) {
		alert('Origin and Destination cannot be the same');
		ret = false;
	}

	return ret;

}

/**
 *
 * MAWB の未入力チェックを実施
 * @param : なし
 * @return : true / false
 *
 */
function chkMAWBData() {
	var frm = "";
        var ret = true;

	frm = document.dsse;

	if(strTrim(document.dsse.mawbPrefix1)=="" || strTrim(document.dsse.mawbSuffix1)=="") {
		alert('The MAWB field must be entered.');
		ret = false;
	}
	frm.action="https://shar.ana.co.jp/eACROSS/shipmentStatusSearch.do";
	return ret;

}

/**
 *
 * HAWB の未入力チェックを実施
 * @param : なし
 * @return : true / false
 *
 */
function chkHAWBData() {
	var frm = "";
        var ret = true;

	frm = document.dsse;

	if(strTrim(document.dsse.hawbNumber1)=="") {

		//HAWB番号NG 送信NG
		alert('The HAWB field must be entered.');
		ret = false;

	}else if(strTrim(document.dsse.mawbPrefix)=="" || strTrim(document.dsse.mawbSuffix)=="") {

		//HAWB番号OK MAWB番号NG 送信OK
		frm.action="https://shar.ana.co.jp/eACROSS/shipmentStatusSearch.do";
		frm.dispatch.value="retrieveMAWBList";
		ret = true;

	}else{

		//HAWB番号OK MAWB番号OK 送信OK
		frm.action="https://shar.ana.co.jp/eACROSS/shipmentStatusSearch.do";
		frm.dispatch.value="retrieveHAWBSearchResult";
		ret = true;

	}

        return ret;

}


function UpperChange(fild) {
    fild.value = fild.value.toUpperCase( );
}

function setSlectedSource(obj) {

	var strOrigin = strTrim(obj);
	strOrigin = strOrigin.toUpperCase();
	var counter =-1;
	var flag='notfound';

	if (strOrigin != "") {
		for(counter = 0 ; counter <document.dra.orsel.length;counter++) {
			if(document.dra.orsel[counter].value == strOrigin)
			{
				flag='found';
				break;
			}
		}

		if (flag=='found') {
			document.dra.orsel.selectedIndex = counter;
			document.dra.origin.value = strOrigin;
		} else {
			alert("The Origin input does not exist");
			document.dra.orsel.selectedIndex = 0;
			document.dra.origin.value = "";
			document.dra.origin.focus();
		}

	}
}



function setSlectedDestination(obj) {
	var strDestination = strTrim(obj);
	strDestination = strDestination.toUpperCase();
	var counter =-1;
	var flag='notfound';

	if (strDestination != "") {
		for(counter = 0 ; counter <document.dra.desel.length;counter++) {
			if(document.dra.desel[counter].value == strDestination)
			{
				flag='found';
				break;
			}
		}
		if (flag=='found') {
			document.dra.desel.selectedIndex = counter;
			document.dra.destination.value = strDestination;
		} else {
			alert("The Destination input does not exist");
			document.dra.desel.selectedIndex = 0;
			document.dra.destination.value = "";
			document.dra.destination.focus();
		}
	}
}


