$(function() {   
    var map;
    var mgr;
    
    var lock = false;
    
    var curPos = new GLatLng(55.75578611, 37.61763333); // Москва по умолчанию       
    var currentAirportField;
 
    $.datepicker.setDefaults({                 
        dateFormat: 'dd.mm.yy'        
    });	
    
	function formatResult(v) {
		var re = /(.{1,4}):/; 
		var a = re.exec(v);
		return a[1];
	}    
    
	function formatItem(v) {
		var re = /(.{1,4}):(.+) - (.+) - (.+)/; 
		var a = re.exec(v);
		if (a[3]!=a[4]) {
			return a[1]+': '+a[3]+' - '+a[4];
		}
		else{
			return a[1]+': '+a[3];
		}
	}    
    
    
    // Инициализация карты
    function initMap() {    
        $('#mapHolder').show();  
        $('#mapHolder').css('left', ($(document).width()-570)/2);  
        $('#mapHolder').css('top', 100);  
    
        if(!map) {
            // Подключение картры                
            map = new GMap2(document.getElementById("map_canvas"));                
            map.setUIToDefault();               
            map.setCenter(curPos, 8);    
            mgr = new MarkerManager(map, { borderPadding: 50, maxZoom: 15, trackMarkers: true });          
            
            // Подключение событий карты
            GEvent.addListener(map, "click", function(marker) {    
                if(marker && marker.icao) {
                    currentAirportField.val(marker.icao);                        
                    $('#mapHolder').hide();
                }
            });

            // Событие изменения границ карты
            GEvent.addListener(map, "moveend", function() {  
                reloadMarkers();
            });            
        }
        else {
            map.setCenter(curPos, 8);                 
        }
        map.checkResize();
        reloadMarkers();   
    }   

    // Функция загрузки маркеров
    function reloadMarkers() {
        var icon = new GIcon();
        icon.image = '/calc/images/airport.png';

        var icon = new GIcon();
        icon.image = "/calc/images/airport.png";
        icon.iconSize = new GSize(24, 24);
        icon.iconAnchor = new GPoint(12, 12);       
        
    
        // Определение окна
        var sw = map.getBounds().getSouthWest();
        var ne = map.getBounds().getNorthEast();
        var url = '/calc/markers.ajax.php?mode=markers&lat1='+sw.lat()+'&lng1='+sw.lng()+'&lat2='+ne.lat()+'&lng2='+ne.lng();
                    
        // Загрузка маркеров
        GDownloadUrl(url, function(data) {
            var xml = GXml.parse(data);
            var markers = xml.documentElement.getElementsByTagName("marker");
            for (var i = 0; i < markers.length; i++) {
                var latlng = new GLatLng(markers[i].getAttribute("lat"), markers[i].getAttribute("lng"));                    
                
                var marker = new GMarker(latlng, {'title':markers[i].getAttribute("icao") + ' "'+markers[i].getAttribute("name")+'"', 'icon':icon});
                marker.icao = markers[i].getAttribute("icao");
                mgr.addMarker(marker, 8);
            }
        });                  
    }       

    // Инициализация умных полей в форме
	function initFields(context) {	
        $(".datepicker", context).removeClass('hasDatepicker');
        $(".datepicker", context).removeAttr('id');    
		$(".datepicker", context).datepicker();
	
        var conf = 
            ($('.flightVert').size() == 0)  ?
            {'width': 400, 'formatResult': formatResult}  :
            {'width': 100, 'formatResult': formatResult, 'formatItem': formatItem};        
		$(".airportCode", context).autocomplete('/calc/airports.ajax.php', conf);		
        
        // Открытие карты
        $('.openMap').click(function() {                 
            //currentAirportField = $(this).parents('td').find('input');
            currentAirportField = $(this).parent().find('input');            

            var code = currentAirportField.val();
            if(code == '') {                           
                initMap();            
            }
            else {
                jQuery.get('/calc/markers.ajax.php?mode=getAirportInfo&icao='+code, {}, function(data) {                    
                    if(data.documentElement.getAttribute("lat") != '') {
                        curPos = new GLatLng(data.documentElement.getAttribute("lat"), data.documentElement.getAttribute("lng"));                        
                    }
                    else {
                        //alert('NF');
                    }
                    initMap();                                         
                }, 'xml');
                
            }
        }); 

        // Удаление перелета
        $('.deleteFlight').click(function() {		
           var flight = $(this).parents('.flightForm');           
           flight.slideUp(function() {
            flight.remove();
           });           
        });         
	}		
	
	initFields($('.flightForm'));
	
    // Копирование перелета
	$('.addFlight').click(function() {		
        var f = $('.flightForms .flightForm:last');        
        var nextDepPort = $('.arrival', f);
        var nextPassengers = $('.passengers', f);      
        var date = $('.date', f);
	
        $('.flightForms').append($('.flightFormPrototype .flightForm').clone());		                                
        
        $('.flightForms .flightForm:last').hide().slideDown();
        
        $('.flightForms .flightForm:last .departure').val(nextDepPort.val());
        $('.flightForms .flightForm:last .arrival').val('');        
        $('.flightForms .flightForm:last .passengers').val(nextPassengers.val());        
        $('.flightForms .flightForm:last .date').val(date.val());        
                
		initFields($('.flightForms .flightForm:last'));        
	});
    
   
    // Событие закрытие карты
    $('.closeMap').click(function() {     
        $('#mapHolder').hide();                        
    });    
   
	
    // Добавление возможности сортировки
	$(function() {
		$(".flightForms").sortable({ handle: '.sortHandler' });
		$(".flightForms").disableSelection();
	});        
    
    
    $("input[name='routeType']").click(function() {
        var p = ($(this).val());
        $(".flightPanel").hide();   
        $("."+p+"Panel").show();   
        
    });
    
    // Не дадим отправить форму пока все аэропорты не заполнены
    $(".flightPanel form").submit(function() {
        var ok = true;
    
        $(".airportCode", $(this)).each(function() {
            var code = $.trim($(this).val());
            if(ok && (code == "")) {
                alert("Пожалуйста, заполните все аэропорты маршрута");
                $(this).focus();
                ok = false;                
            }
        });
        return ok;
    });
    
    // Проверка обязательных полей в формах
    $("form.contactForm").submit(function() {
        var ok = true;
        
        $("input.required", $(this)).each(function() {
            var text = $.trim($(this).val());
            if(text == "") {
                if(ok) {
                    alert("Пожалуйста, заполните обязательные поля");                    
                    $(this).css('border-color', 'red');              
                    $(this).focus();                     
                }
                
                ok = false;                
            }
        });

        return ok;        
    });    
    
    //
    $('#togglePhotos').click(function() {
        $('img').toggle();
    });
    
    $('#currencySelector').change(function(){
        document.cookie = 'currency='+escape($(this).val());
    });

	$('#aircraftTypes1___').click(function(){
		if ($(this).is(":checked")){			
			$('#allaircraft1').removeAttr('disabled');
			$('#aircraftTypes1_1').removeAttr('checked');
			$('#aircraftTypes1_2').removeAttr('checked');
			$('#aircraftTypes1_3').removeAttr('checked');
			$('#aircraftTypes1_4').removeAttr('checked');
			$('#aircraftTypes1_5').removeAttr('checked');			
		}else{			
			$('#allaircraft1').attr({disabled:'disabled'});
			$('#aircraftTypes1_1').attr({checked:'checked'});
			$('#aircraftTypes1_2').attr({checked:'checked'});
			$('#aircraftTypes1_3').attr({checked:'checked'});
			$('#aircraftTypes1_4').attr({checked:'checked'});
			$('#aircraftTypes1_5').attr({checked:'checked'});			
		}
	});

	$('#aircraftTypes2___').click(function(){
		if ($(this).is(":checked")){			
			$('#allaircraft2').removeAttr('disabled');
			$('#aircraftTypes2_1').removeAttr('checked');
			$('#aircraftTypes2_2').removeAttr('checked');
			$('#aircraftTypes2_3').removeAttr('checked');
			$('#aircraftTypes2_4').removeAttr('checked');
			$('#aircraftTypes2_5').removeAttr('checked');			
		}else{			
			$('#allaircraft2').attr({disabled:'disabled'});
			$('#aircraftTypes2_1').attr({checked:'checked'});
			$('#aircraftTypes2_2').attr({checked:'checked'});
			$('#aircraftTypes2_3').attr({checked:'checked'});
			$('#aircraftTypes2_4').attr({checked:'checked'});
			$('#aircraftTypes2_5').attr({checked:'checked'});			
		}
	});

	$('#aircraftTypes3___').click(function(){
		if ($(this).is(":checked")){			
			$('#allaircraft3').removeAttr('disabled');
			$('#aircraftTypes3_1').removeAttr('checked');
			$('#aircraftTypes3_2').removeAttr('checked');
			$('#aircraftTypes3_3').removeAttr('checked');
			$('#aircraftTypes3_4').removeAttr('checked');
			$('#aircraftTypes3_5').removeAttr('checked');			
		}else{			
			$('#allaircraft3').attr({disabled:'disabled'});
			$('#aircraftTypes3_1').attr({checked:'checked'});
			$('#aircraftTypes3_2').attr({checked:'checked'});
			$('#aircraftTypes3_3').attr({checked:'checked'});
			$('#aircraftTypes3_4').attr({checked:'checked'});
			$('#aircraftTypes3_5').attr({checked:'checked'});			
		}
	});

	if ($('#aircraftTypes1___').is(":checked"))	{			
		$('#allaircraft1').removeAttr('disabled');
	}else{			
		$('#allaircraft1').attr({disabled:'disabled'});
	}
	if ($('#aircraftTypes2___').is(":checked"))	{			
		$('#allaircraft2').removeAttr('disabled');
	}else{			
		$('#allaircraft2').attr({disabled:'disabled'});
	}

	if ($('#aircraftTypes3___').is(":checked"))	{			
		$('#allaircraft3').removeAttr('disabled');
	}else{			
		$('#allaircraft3').attr({disabled:'disabled'});
	}



	$('#targetingMap').click(function(){
		var city=$('#cityPlace').val();
		$.ajax({
			type : 'post',
			url : '/calc/city.ajax.php',
			data : {"city":city},
			success : function(data) {
				if (data) {
					var i=0;
					 jQuery(data).find('city').each(function(){	                         
							i++;
							var posX = jQuery(this).attr('lat');
							var posY = jQuery(this).attr('lng');
							//map = new GMap2(document.getElementById("map_canvas"));  	
							curPos = new GLatLng(posX, posY);  
							initMap();     
						});    
					if (i==0){
						alert('Город не найден');
					}
				} else {
					alert('Не удалось отправить запрос');
				}
			}
		});
	});
    
});




//Введите названия города на английском языке

function targetingMap(){
//	var sendData = {};


}


