﻿var base64Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var sailingDirection = { empty: 0, melDpo: 1, dpoMel: 2 };

function getSailingTimesForDate(date, sailingTimes) {
	var result = [],
		dd = Math.round((date - baseDate) / 86400000),
		i1 = Math.floor(dd / 6),
		i2 = 5 - (dd % 6),
		i, i3;

	for (i = 0; i < sailingTimes.length; i++) {
		if (i1 >= 0 && i1 < sailingTimes[i].value.length) {
			i3 = base64Alphabet.indexOf(sailingTimes[i].value.charAt(i1), 0);
			if (i3 !== -1 && ((1 << i2) & i3) !== 0) {
				Array.add(result, sailingTimes[i].time);
			}
		}
	}

	return result;
}

function updateSailingTimesDropDownList(dropDownList, date, sailingTimes) {
	var i, option, result = false;
	$(dropDownList).find('option').remove();

	if (date) {
		sailingTimes = getSailingTimesForDate(date, sailingTimes);

		if (sailingTimes.length) {
			result = true;

			if (sailingTimes.length > 1) {
				Array.insert(sailingTimes, 0, '');
			}

			for (i = 0; i < sailingTimes.length; i++) {
				option = document.createElement('option');
				option.text = sailingTimes[i];
				try {
					dropDownList.add(option, null);
				} catch (ex) { // IE6/7
					dropDownList.add(option);
				}
			}
		}
	}

	return result;
}

