var points = [['Альметьевск', 'Казань', '5', '9000'],
		['Альметьевск', 'Казань', '10', '9000'],
		['Альметьевск', 'Казань', '20', '10500'],
		['Елабуга', 'Казань', '5', '7000'],
		['Елабуга', 'Казань', '10', '7500'],
		['Елабуга', 'Казань', '20', '8500'],
		['Казань', 'Альметьевск', '5', '9000'],
		['Казань', 'Альметьевск', '10', '11500'],
		['Казань', 'Альметьевск', '20', '14000'],
		['Казань', 'Волгоград', '20', '75000'],
		['Казань', 'Воронеж', '5', '18000 '],
		['Казань', 'Воронеж', '10', '16000'],
		['Казань', 'Воронеж', '20', '22000'],
		['Казань', 'Екатеринбург', '20', '36000'],
		['Казань', 'Елабуга', '5', '7000'],
		['Казань', 'Елабуга', '10', '9000'],
		['Казань', 'Елабуга', '20', '11000'],
		['Казань', 'Ижевск', '20', '16000'],
		['Казань', 'Йошкар-Ола', '20', '8000'],
		['Казань', 'Калуга', '5', '13000 '],
		['Казань', 'Калуга', '10', '11000'],
		['Казань', 'Калуга', '20', '17000'],
		['Казань', 'Киров', '20', '15000'],
		['Казань', 'Красноярск', '20', '130000'],
		['Казань', 'Курган', '20', '48000'],
		['Казань', 'Магнитогорск', '20', '35000'],
		['Казань', 'Москва', '5', '8000'], ['Казань', 'Москва', '10', '10000'],
		['Казань', 'Москва', '20', '13000'],
		['Казань', 'Набережные Челны', '5', '8000'],
		['Казань', 'Набережные Челны', '10', '10500'],
		['Казань', 'Набережные Челны', '20', '12000'],
		['Казань', 'Нефтеюганск', '20', '85000'],
		['Казань', 'Нижневартовск', '20', '97000'],
		['Казань', 'Нижнекамск', '5', '8500'],
		['Казань', 'Нижнекамск', '10', '11000'],
		['Казань', 'Нижнекамск', '20', '12500'],
		['Казань', 'Нижний Новгород', '20', '9000'],
		['Казань', 'Нижний Тагил', '20', '42000'],
		['Казань', 'Новосибирск', '20', '95000'],
		['Казань', 'Новый Уренгой', '20', '115000'],
		['Казань', 'Ноябрьск', '20', '100000'],
		['Казань', 'Омск', '20', '75000'],
		['Казань', 'Оренбург', '20', '30000'],
		['Казань', 'Пенза', '20', '16000'],
		['Казань', 'Первоуральск', '20', '40000'],
		['Казань', 'Пермь', '20', '18000'],
		['Казань', 'Самара', '5', '13000 '],
		['Казань', 'Самара', '10', '10000'],
		['Казань', 'Самара', '20', '14000'],
		['Казань', 'Санкт-Петербург', '5', '13000 '],
		['Казань', 'Санкт-Петербург', '10', '16000'],
		['Казань', 'Санкт-Петербург', '20', '23000'],
		['Казань', 'Саранск', '20', '15000'],
		['Казань', 'Саратов', '20', '25000'],
		['Казань', 'Сургут', '20', '89000'],
		['Казань', 'Тольятти', '20', '14000'],
		['Казань', 'Тула', '5', '11000'], ['Казань', 'Тула', '10', '11000'],
		['Казань', 'Тула', '20', '17000'], ['Казань', 'Тюмень', '20', '48000'],
		['Казань', 'Уфа', '5', '17000 '], ['Казань', 'Уфа', '10', '19000'],
		['Казань', 'Уфа', '20', '22000'],
		['Казань', 'Чебоксары', '20', '8000'],
		['Казань', 'Челябинск', '5', '25000'],
		['Казань', 'Челябинск', '20', '36000'],
		['Калуга', 'Казань', '10', '28000'],
		['Калуга', 'Казань', '20', '36000'],
		['Москва', 'Екатеринбург', '20', '70000'],
		['Москва', 'Казань', '5', '17000'],
		['Москва', 'Казань', '10', '21000'],
		['Москва', 'Казань', '20', '28000'],
		['Москва', 'Набережные Челны', '20', '31000'],
		['Москва', 'Нжний Новгород', '20', '19000'],
		['Москва', 'Новосибирск', '20', '130000'],
		['Москва', 'Самара', '20', '32000'],
		['Набережные Челны', 'Казань', '5', '8000'],
		['Набережные Челны', 'Казань', '10', '8000 '],
		['Набережные Челны', 'Казань', '20', '9000 '],
		['Нижнекамск', 'Казань', '5', '8500'],
		['Нижнекамск', 'Казань', '10', '8500'],
		['Нижнекамск', 'Казань', '20', '9500'],
		['Нижний Новгород', 'Казань', '10', '13000'],
		['Нижний Новгород', 'Казань', '20', '18000'],
		['Новосибирск', 'Казань', '20', '40000'],
		['Самара', 'Казань', '10', '12000'],
		['Самара', 'Казань', '20', '15000'],
		['Санкт-Петербург', 'Казань', '20', '48000'],
		['Санкт-Петербург', 'Казань', '10', '35000'],
		['Тула', 'Казань', '10', '28000'], ['Тула', 'Казань', '20', '34000'],
		['Тюмень', 'Казань', '20', '18000'], ['Уфа', 'Казань', '10', '12000'],
		['Уфа', 'Казань', '20', '15000'],
		['Челябинск', 'Казань', '20', '15000']];

function in_array(needle, haystack) {
	var found = false, key;
	for(key in haystack){
		if(haystack[key] === needle){
			found = true;
			break;
		}
	}
	return found;
}

function array_unique(arr) {
	var tmp_arr = new Array();
	for( var i = 0; i < arr.length; i++){
		if(!in_array(arr[i], tmp_arr)){
			tmp_arr.push(arr[i]);
		}
	}
	return tmp_arr;
}

window.onload = function init() {
	var from = new Array();
	var to = new Array();
	var i, option;
	for(i = 0; i < points.length; i++){
		from.push(points[i][0]);
		to.push(points[i][1]);
	}
	from = array_unique(from).sort();
	to = array_unique(to).sort();

	optionList('pointFrom', from);
	optionList('pointTo', to);
}

function clearElement(o) {
	var child;
	while(child = o.firstChild)
		o.removeChild(child);
	return o;
}

function optionList(obj, list) {
	var o = document.getElementById(obj);
	clearElement(o);
	option = document.createElement('option');
	option.innerHTML = '&nbsp;';
	option.value = '';
	option.selected = 'selected';
	o.appendChild(option);
	for(var i = 0; i < list.length; i++){
		option = document.createElement('option');
		option.value = list[i];
		option.innerHTML = list[i];
		o.appendChild(option);
	}
}

function calculate() {
	var from = document.getElementById('pointFrom');
	var to = document.getElementById('pointTo');

	if(from.value != '' && to.value != ''){
		document.getElementById('calcResult').style.display = '';
		var i = 0, title = '', cols = new Array();
		for(i = 0; i < points.length; i++){
			if(points[i][0] == from.value && points[i][1] == to.value){
				cols.push(new Array(points[i][2], points[i][3]));
				title = points[i][0] + ' &mdash; ' + points[i][1];
			}
		}
		if(title != ''){
			calcResultHead(title);
			calcResultRowAdd(cols);
		}
		else{
			calcResultHead('По запросу ничего не найдено.');
			calcResultRowsClear();
		}
	}
	return false;
}

function calcResultRowAdd(cols) {
	var tr, td;
	var o = document.getElementById('calcResultRows');
	clearElement(o);
	for( var i = 0; i < cols.length; i++){
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.innerHTML = cols[i][0];
		tr.appendChild(td);
		td = document.createElement('td');
		td.innerHTML = cols[i][1];
		tr.appendChild(td);
		o.appendChild(tr);
	}
}

function calcResultRowsClear() {
	clearElement(document.getElementById('calcResultRows'));
	document.getElementById('calcResultDesciprtion').style.display = 'none';
}

function calcResultHead(title) {
	document.getElementById('calcResultTitle').innerHTML = title;
	document.getElementById('calcResultDesciprtion').style.display = '';
}

