var flightsInit = false;
var hotelsInit = false;
var tourInit = false;
var charterInit = false;

var today = new Date();
var d = new Date(new Date().setDate(today.getDate()+14));
var curDate = d.getDate() + '.' + (d.getMonth()+1) + '.' + d.getFullYear();

$(function() {
	initFlightsForm();
	validate();		
});

function validate() {
	//var date1req = ($('select#journey-type').val() == "OW") ? false : true; 
	
	$('#flights_form').validate({
		rules: {
			dep0: {required: true},
			arr0: {required: true},			
			fullDate0: {required: true}			
		},
		messages: {
			dep0: {required: 'Zadajte prosím "Odkiaľ"'},
			arr0: {required: 'Zadajte prosím "Kam"'},	
			fullDate0: {required: 'Zadajte prosím dátum'}		 
		}
	});
}

/**
 * Adds autocomplete functionality to specified element.
 * @param {Object} el
 */ 
function addAutoComplete(el) {
	$(el).autocomplete({		
		minLength: 3,		
		source: "assets/forms/autocomplete/autocomplete.php"			
	})	
	.data("autocomplete")._renderItem = function(ul, item) {
		return $("<li></li>")
			.data("item.autocomplete", item)
			.append('<a><img src="' + item.icon + '"> ' + item.label + '</a>')
			.appendTo(ul);
	};
	$('.ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all').css('width','400px');	
}

/**
 * Formats string to alias.
 * @param {Object} str
 */
function formatToAlias(st) {
	st = st.toLowerCase();
	st = removeAccents(st);	
	st = st.replace(/ - /gi, "-");
	st = st.replace(/ \/ /gi, "-");
	st = st.replace(/ & /gi, "-");
	st = st.replace(/ /gi, "-");		
	st = st.replace(/,/gi, "");	
	st = st.replace(/\./gi, "");	
	return st;
}

/**
 * Removes accents from specified word.
 * @param {Object} strAccents
 */	
function removeAccents(strAccents){
    strAccents = strAccents.split('');
    strAccentsOut = new Array();
    strAccentsLen = strAccents.length;
    var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
    var accentsOut = ['A','A','A','A','A','A','a','a','a','a','a','a','O','O','O','O','O','O','O','o','o','o','o','o','o','E','E','E','E','e','e','e','e','e','C','c','D','I','I','I','I','i','i','i','i','U','U','U','U','u','u','u','u','N','n','S','s','Y','y','y','Z','z'];
    for (var y = 0; y < strAccentsLen; y++) {
        if (accents.indexOf(strAccents[y]) != -1) {
            strAccentsOut[y] = accentsOut[accents.indexOf(strAccents[y])];
        }
        else
            strAccentsOut[y] = strAccents[y];
    }
    strAccentsOut = strAccentsOut.join('');
    return strAccentsOut;
}

/**
 * Submits form (hotels form).
 */
function submitForm() {
    var url = 'http://www.evaair.sk/'
    if (document.forms["hotels"].region.options[document.forms["hotels"].region.selectedIndex].value != -1) {
        var region = document.forms["hotels"].region.options[document.forms["hotels"].region.selectedIndex].text; 
		region = formatToAlias(region);
		document.forms["hotels"].action = url + "vyber-hotela/azia/" + region + "/" + document.forms["hotels"].region.value + '-0';		
    }
    else {
        document.forms["hotels"].action = url + "vyber-destinacie/";
    } 
    document.forms["hotels"].submit();
}

/**
 * Submits form (holiday form).
 */
function submitTourForm() {
	var url = 'http://www.evaair.sk/'
    if (document.forms["holiday"].region.options[document.forms["holiday"].region.selectedIndex].value != -1) {
		var region = document.forms["holiday"].region.options[document.forms["holiday"].region.selectedIndex].text;
		region = formatToAlias(region);
    	document.forms["holiday"].action = url + "vyber-hotela/azia/" + region + "/" + document.forms["holiday"].region.value + '-0';
    }
    else {
    	document.forms["holiday"].action = url + "vyber-destinacie/";
    } 
    document.forms["holiday"].submit();
}

/**
 * Submits form (charter form).
 */
function submitCharterForm() {
	var url = 'http://www.evaair.sk/'
    if (document.forms["charter"].arr0.options[document.forms["charter"].arr0.selectedIndex].value != -1) {
		var arr0 = document.forms["charter"].arr0.options[document.forms["charter"].arr0.selectedIndex].text;
		arr0 = formatToAlias(arr0);
    	document.forms["charter"].action = url + "charter/" + arr0 + "/" + document.forms["charter"].arr0.value;
    }
    else {
    	document.forms["charter"].action = url + "vyber-destinacie/";
    } 
    document.forms["charter"].submit();
}

/**************************************/
/***** Flights tab initialization *****/ 
/**************************************/
function initFlightsForm() {
	flightsInit = true;	
		
	//--- datapicker init : BEGIN ---//
	$.datepicker.setDefaults($.datepicker.regional['sk']);
	$("#date0").datepicker({minDate: 0});
	$("#date0").val(curDate);
	$("#date1").datepicker({minDate: 0});
	//--- datapicker init : END ---//
	
	//--- tabs init : BEGIN ---//
	$("#search-form").tabs();
	//--- tabs init : END ---//
	
	//--- button init : BEGIN ---//
	$(".submit").button();	
	//--- button init : END ---//
	
	//--- select init : BEGIN ---//
	$('select#journey-type').selectmenu({
		style: 'dropdown', 
		width: 188,
		menuWidth: 188
	});
	$('select#journey-type').change(function(){
		validate();
	});	
	
	$('select.traveler').selectmenu({
		style:'dropdown',
		//maxHeight: 150,
		width: 44, 
		menuWidth: 44
	});
	//--- journey type select init : END ---//		
	
	//--- journey type handling : BEGIN ---//
	$('select#journey-type').change(function() {
  		type = $('select#journey-type').val();
		if (type == 'RT') {
			$('#journey2').css('display', 'none');
			$('#block-date1').css('display', '');			
		} 
		if (type == 'OW') {
			$('#journey2').css('display', 'none');
			$('#block-date1').css('display', 'none');
		}
		if (type == 'OJ') {
			$('#journey2').css('display', '');
			$('#block-date1').css('display', '');
		}
	});
	//--- journey type handling : END ---//	
	
	//--- travelers count calculation : BEGIN ---//
	$('.traveler').change(function() {
		total = parseInt($('#INF_0').val()) + parseInt($('#CHD_0').val()) + parseInt($('#YTH_0').val()) + parseInt($('#ADT_0').val()) + parseInt($('#YCD_0').val());
		$('#total_0').val(total);		
	});
	//--- travelers count calculation : END ---//
	
	//--- destination autocomplete : BEGIN ---//			
	addAutoComplete($("#dep0"));	
	addAutoComplete($("#arr0"));	
	addAutoComplete($("#dep1"));	
	addAutoComplete($("#arr1"));
}

/*************************************/
/***** Hotels tab initialization *****/ 
/*************************************/
function initHotelsForm() {	
	hotelsInit = true;	
	
	//--- comboboxes init : BEGIN ---//
	$('select#destination, select#hotel-type').selectmenu({
		style: 'dropdown',
		maxHeight: 200
	});
	//--- comboboxes init : END ---//
	
	$('select#veranstalter, select#dauer').selectmenu ({
		style: 'dropdown',
		maxHeight: 200,
		width: 123
	});
	
	$('select#adult, select#child1, select#child2, select#child3').selectmenu ({
		style: 'dropdown',
		width: 44,
		menuWidth: 44,
		maxHeight: 200
	});
	
	//--- region combobox init: BEGIN ---//
	$('select#region').selectmenu ({
		style: 'dropdown',
		width: 188,
		//menuWidth: 220,
		maxHeight: 200
	});
	//--- region combobox init: END ---//
	
	//--- datapicker init : BEGIN ---//
	$.datepicker.setDefaults($.datepicker.regional['sk']);
	$("#date_0").datepicker({minDate: 0});
	$("#date_0").val(curDate);
	$("#date_1").datepicker({minDate: 0});
	//--- datapicker init : END ---//
	
	//--- button init : BEGIN ---//
	$(".submit").button();	
	//--- button init : END ---//
}

/***********************************/
/***** Tour tab initialization *****/ 
/***********************************/
function initTourForm() {	
	tourInit = true;
	
	//--- comboboxes init : BEGIN ---//
	$('select#tour_destination, select#tour_hotel-type').selectmenu({
		style: 'dropdown',
		maxHeight: 200
	});
	//--- comboboxes init : END ---//
	
	$('select#tour_veranstalter, select#tour_dauer').selectmenu ({
		style: 'dropdown',
		maxHeight: 200,
		width: 123
	});
	
	$('select#tour_adult, select#tour_child1, select#tour_child2, select#tour_child3').selectmenu ({
		style: 'dropdown',
		width: 44,
		menuWidth: 44,
		maxHeight: 200
	});
	
	//--- region combobox init: BEGIN ---//
	$('select#tour_region').selectmenu ({
		style: 'dropdown',
		width: 188,
		//menuWidth: 220,
		maxHeight: 200
	});
	//--- region combobox init: END ---//
	
	//--- datapicker init : BEGIN ---//
	$.datepicker.setDefaults($.datepicker.regional['sk']);
	$("#tour_date_0").datepicker({minDate: 0});
	$("#tour_date_0").val(curDate);
	$("#tour_date_1").datepicker({minDate: 0});
	//--- datapicker init : END ---//
	
	//--- button init : BEGIN ---//
	$(".submit").button();	
	//--- button init : END ---//
}

/**************************************/
/***** Charter tab initialization *****/ 
/**************************************/
function initCharterForm() {	
	charterInit = true;
	
	//--- comboboxes init : BEGIN ---//
	$('select#abflughafen, select#char_arr0').selectmenu({
		style: 'dropdown',		
		maxHeight: 200,
		width: 123
	});
	//--- comboboxes init : END ---//
	
	$('select#char_veranstalter, select#char_dauer').selectmenu ({
		style: 'dropdown',
		maxHeight: 200,
		width: 123
	});
	
	$('select#char_adult, select#char_child1, select#char_child2, select#char_child3').selectmenu ({
		style: 'dropdown',
		width: 44,
		menuWidth: 44,
		maxHeight: 200
	});
	
	//--- region combobox init: BEGIN ---//
	$('select#char_region').selectmenu ({
		style: 'dropdown',
		width: 188,
		//menuWidth: 220,
		maxHeight: 200
	});
	//--- region combobox init: END ---//
	
	//--- datapicker init : BEGIN ---//
	$.datepicker.setDefaults($.datepicker.regional['sk']);
	$("#char_date_0").datepicker({minDate: 0});
	$("#char_date_0").val(curDate);
	$("#char_date_1").datepicker({minDate: 0});
	//--- datapicker init : END ---//
	
	//--- button init : BEGIN ---//
	$(".submit").button();	
	//--- button init : END ---//
}
