// ucitavanje drzava, kada se izabere neki tag
function ucitajDrzavePoTagu() {
	$('#d').html('<option>Lista se učitava...</option>');			
	$.ajax({
		type: "GET",
		url: 'http://www.putovanja.info/ajax.php',
		data: "tag="+$('#t').val(),
		success: function(html) {
			$('#d').html(html);
		}				
	});
}
$(document).ready(function() {		
	// otvori preko hasha
		/*
		if (window.location.hash) {
			var hash = window.location.hash.replace('#','.');
			if(hash.length > 1) {
				$(".ispodlinka").slideUp("fast");
				$(hash).next().slideDown("fast");
			}
		}
		*/
	
	$(".otvoribox").click(function() {
		$(".ispodlinka").hide("fast");
		
		$(this).next().slideDown("fast");	
		return false;
	});
						   
						   
	// funkcija za učitavanja lokacija
	function ucitajLokacije(drzava) {
		$("#ind_lokacija").html('<option value="1">Lista se učitava...</option>');
		var selLok = $('#ind_lokacija_selected').val();
		$.ajax({
			 type: "GET",
			 url: "http://www.putovanja.info/ajax_box.individualno.lokacije.php",
			 data: "drzava="+drzava+"&lokacija="+selLok,
			 success: function(output) {
				 $("#ind_lokacija").html(output);
				 $("#ind_lokacija").removeAttr('disabled');
				 
				 // Lokacija
				 var lokacija = $("#ind_lokacija").val();
				 var action = '/sr/destinacije/'+drzava+'/'+lokacija+'/hoteli';
				 $("#form_individualno").attr("action", action); 
				 
			  }
			   
		});
	}
	
	// Proverava da li je drzava već selektovana
	var drzava = $('#ind_drzava').val();
	if(drzava && drzava != 0) {
		
		ucitajLokacije(drzava);
	}
	
	
	$("#ind_drzava").change(function() {
		var drzava = $(this).val();
		if(drzava == '0') {
			$("#ind_lokacija").html('<option value="1">Prvo izaberite državu</option>');
			$("#ind_lokacija").attr('disabled', true);
		} else {
			ucitajLokacije(drzava);
		}
	});
	
	$("#ind_lokacija").change(function() {
		var drzava = $('#ind_drzava').val();
		var lokacija = $(this).val();
		var action = '/sr/destinacije/'+drzava+'/'+lokacija+'/hoteli';
		$("#form_individualno").attr("action", action); 
	});
	
	// Provera - Da li su uneti datumi?
	$('.individualno .trazi').click(function() {
		var lokacija = $('#ind_lokacija').val();
		var arrival_date = $('#arrival_date2').val();
		var departure_date = $('#departure_date2').val();
		if(arrival_date == '' || departure_date == '' || lokacija == 0) {
			alert('Molimo Vas popunite sva polja.');
			return false;
		}
	});
	
	//
	// Popunjavanje liste drzava, saveznih drzava i gradova
	//
	//
	
	$('.avio_up, .avio_down').attr('autocomplete', 'off');
	
	
	var code, name, result, acomplete;
	result = '';
	for(i=0; i<c_values.length; i++) {
		
		code = c_values[i].substring(0,2);
		name = c_values[i].substring(3);
		
		// proverimo da li postoji niz sa aerodromima ili saveznim drzavama
		if($.isArray(a_values[code +':All']) || $.isArray(s_values[code])) {
			result += '<option value="'+code+'">'+name+'</option>';
		}
		
	}
	$('.avio_counties').html(result);
	
	//
	// Punjenje gradova, tj aerodroma
	//
	function fill_cities(key) {
		result = '';
		for(i=0; i<a_values[key].length; i++) {
			code = a_values[key][i].substring(0,3);
			name = a_values[key][i].substring(4);
			result += '<option value="'+ code +'">'+ name +' ('+ code +')</option>';
		}
		$('.select_city').html(result);
	}
	
	//
	// Punjenje saveznih država
	//
	function fill_states(key) {
		result = '';
		for(i=0; i<s_values[key].length; i++) {
			result += '<option value="'+ key +':'+ s_values[key][i] +'">'+ s_values[key][i] +'</option>';
		}
		$('.avio_state').html(result);
	}
	//
	// Kada promenim country napuni gradove (i savezne drzave)
	//
	function onchange_country(key) {
		// Ukoliko postoji niz sa gradovima, sakrij savezne države i prikaži samo gradove
		if($.isArray(a_values[key +':All'])) {
			fill_cities(key +':All');  
			$('#aviostate').hide();
			return true;
		}
		
		// ... postoji savezna država
		var country = key.substring(0,2);
		var state = key.substring(3);

		if(state.length > 1) {
			fill_cities(country +':'+state);
		} else {
			fill_states(country);
			fill_cities(country +':'+ s_values[country][0]);
		}
		$('#aviostate').show();
	}
	$(".avio_counties option[value='RS']").attr('selected', 'selected');
	onchange_country('RS');
	// 
	// Otvaranje popupa za izbor aerodroma
	//
	
	var za_input;
	var otvori_opet = true;
	function open_select() {
		// sakrij ga prvo ako je otvoren
		//if($('#avio_cities').is(':visible')) {$('#avio_cities').hide();}
		
		// Zbog vraćanja focusa na select input
		if(!otvori_opet) {
			otvori_opet = true;
			return false;
		}
		// otkrij izbor države
		$("#avio_cities").children(':eq(0)').show();
		// Ukoliko je selektovano nešto u inputu, prođi kroz niz
		if($(".avio_countries").val() != 'RS') {
			$(".avio_counties option[value='RS']").attr('selected', 'selected');
			onchange_country('RS');
		}
		var position = za_input.offset();
		$("#avio_cities").css("top", position.top+18);
		$("#avio_cities").css("left", position.left-180);
		$("#avio_cities").slideDown('fast', function() {
			$(document).click(function(e) {
				if($('#avio_cities').is(':visible')) {
					var $clicked=$(e.target);
					if(!($clicked.is('#avio_cities') || $clicked.parents().is('#avio_cities'))){
						$('#avio_cities').hide();
					}
				}
			});									
		});
	}
	
	$('.avio_up, .avio_down').click(function() {
		
		za_input = $(this);

		open_select();
		return false;
	});
	
	// Kada izaberem državu, popuni input i sakrij avio karte
	$('.select_city').click(function() {
		//otvori_opet = false;
		za_input.val($(this).val()).focus();
		$('#avio_cities').hide();
		return false;
	});
	
	// Ako krenem da kucam otvori autosuggest
	$('.avio_up, .avio_down').keydown(function(e) {
		
		// ako je esc zatvori popup
		if(e.keyCode ==27) {
			$('#avio_cities').hide();
			otvori_opet = false;
			return false;
			
		}
		
		
		// ako je tab, uzmi value iz select_city i nastavi...
		if(e.keyCode == 9) {
			
			if($('.select_city').val() != null){
				za_input.val($('.select_city').val());
			}
			$('#avio_cities').hide();
			
			if($(this).hasClass('.avio_up')) {
				za_input = $('.avio_down');
				open_select();
			}
			return true;
		}
		
		// ako je enter uzmi value iz select_city i prekini
		if(e.keyCode == 13) {
			if($('.select_city').val() != null){
				za_input.val($('.select_city').val());
			}
			$('#avio_cities').hide();
			otvori_opet = false;
			return false;
		}							   
											   
	});
	
	
	$('.avio_up, .avio_down').keyup(function(e) {
		if($('#avio_cities').is(':hidden')) {
			za_input = $(this);
			open_select();
		}
		// enter
		if(e.keyCode == 13 || e.keyCode == 9 || e.keyCode ==27) { return false; }
											 
		// Ako je strelica na gore/dole biraj grad
		if(e.keyCode == 40 || e.keyCode==38){
			var sel = $('.select_city option:selected');
			var pos;
			if(sel.length >0) {
				if(e.keyCode == 40) {
					if(sel.next().length >0) {
						sel.removeAttr('selected');
						sel.next().attr('selected', 'selected');
						pos = sel.next();
					}
				}
				else {
					if(sel.prev().length >0) {
						sel.removeAttr('selected');
						sel.prev().attr('selected', 'selected');
						pos = sel.prev();
					}
				}
			}
			// selektuj prvi
			else { 
				$('.select_city option:first').attr('selected', 'selected'); 
				pos = $('.select_city option:first');
			}
			//za_input.val(pos.val());
			return false;
		}
		
		
		// za ostale karaktere uradi autocomplete
		var val = $(this).val().toLowerCase();
		
		if(val.length > 0) {
			// sakrij izbor drzave i state
			$("#avio_cities").children(':eq(0), :eq(1)').hide();
			$('.select_city').empty();
			// prolazimo kroz niz i nalazimo ono što je ukucano
			var i, j, a, pos;
			var sel = false;
			var result = '';
			var k=0;
			for (i in a_values ) {
				for(j=0; j<a_values[i].length; j++) {
					a = a_values[i][j];
					pos = a.toLowerCase().indexOf(val)
					if(pos > -1) {
						if(pos == 0 && !sel) {
							sel=true;
							$('.select_city').prepend('<option value="'+ a.substring(0,3) +'" selected="selected">'+ a.substring(4) +' ('+ a.substring(0,3) +')</option>');
						} else {
							$('.select_city').append('<option value="'+ a.substring(0,3) +'">'+ a.substring(4) +' ('+ a.substring(0,3) +')</option>');
						}
						k++;
					}
					// Prikazujemo samo prvih 10 rezultata, ubrzava stvar.
					if(k > 10) {
						k=0;
						sel=false;
						return true;
					}
				}
				
			}
			if(k == 1) {
					$('.select_city option').attr('selected', 'selected');
				}
		} else {
			$("#avio_cities").children(':eq(0)').show();
			onchange_country($('.avio_counties').val());
		}
	});
	
	// kada se promeni drzava, promeni gradove
	$(".avio_counties").change(function() { 
		onchange_country($(this).val()); 
		return false;
	});
	$(".avio_state").change(function() { 
		fill_cities($(this).val()); 
		return false;
	});
	// provera unetih polja
	$('#avio').submit(function() {
		if($(".avio_up").val() == '' || $(".avio_down").val() == '' || 	$(".avio_polazak").val() == '') {
			alert('Morate popuniti sva tražena polja!'); 
			return false;
		}								
	});
	//$(".avio_vise").hide();
	$(".avio_toggle_vise").click(function() {
		$(".avio_vise").toggle('fast');		
		return false;
	});
	$(".avio_tip").click(function() {
		if($(this).val() == 'pravac') {
			$('.avio_dolazak').hide('fast');
		} else {
			$('.avio_dolazak').show('fast');
		}												   
	});
	$(".zatvori").click(function() {
		$('#avio_cities').hide();
		otvori_opet = false;	
		return false;
	});
	// ajax za drzave po tagu
	$('#t').change(function() {
		ucitajDrzavePoTagu();
	});
});