var val;
var first = true;
var skip_registration = false;

var uri = 'ajax/short_autocomplete';
var min_chars = 2;
var cache_length = 0;

	function fill_location(next, tune_search){
		n=parseInt(next)+1;
		if (!tune_search){
			if (step == 0){
				dest_search = $(".direction").find('input[name=in_search]').val();
				dest_iata = $(".direction").find('input[name=in_iata]').val();
			}
			else{
				dest_search = $(".addflight").eq(next-1).find('input[name="cr_back_search['+next+']"]').val();
				if (dest_search == ' '){
					dest_search = $(".addflight").eq(next-1).find('input[name="cr_back_search['+next+']"]').attr('check');
				}			
				dest_iata = $(".addflight").eq(next-1).find('input[name="cr_back_iata['+next+']"]').val();
			}
		}
		else{
			dest_search = cr_search[next+1];
			dest_iata = cr_iata[next+1];
			dest_back_search = cr_back_search[next+1];
			dest_back_iata = cr_back_iata[next+1];
			dest_date = cr_date[next+1];
			//console.log(next+1);
			//console.log(dest_search);
			$(".addflight").eq(next).find('input[name="cr_back_iata['+n+']"]').attr('value', dest_back_iata);
			$(".addflight").eq(next).find('input[name="cr_back_search['+n+']"]').attr('value', dest_back_search).attr('check', dest_back_search);
			$(".addflight").eq(next).find('.dest').eq(1).html(dest_back_search);
			$(".addflight").eq(next).find('input[name="cr_date['+n+']"]').attr('value', dest_date);
			
		}
		$(".addflight").eq(next).find('input[name="cr_iata['+n+']"]').attr('value', dest_iata);
		$(".addflight").eq(next).find('input[name="cr_search['+n+']"]').attr('value', dest_search).attr('check', dest_search);
		$(".addflight").eq(next).find('.dest').eq(0).html(dest_search);
		$(".addflight").eq(next).find('.cr_class').eq(0).val($('input[name=class]').val());

	}

	
	function triptype(){
		if (step && step >= 1){
			$('input[name=trip_type]').val('CR');
			$("#trip-type").parent().hide();
		}
		else{
			$("#trip-type").parent().show();
			var returnback = $("#trip-type").attr("checked")			
			if (returnback){
				$('input[name=trip_type]').val('RT');
				dates_num = 2;
			} else {			
				$('input[name=trip_type]').val('OW');
				dates_num = 1;
			}
		}
		if ($("#search-form #trip-type").attr("checked")) {
			$("#point-image").attr("src", "templates/boring/images/direct_points.png").css("margin-top", "35px")
			$(".backtoggle").css("display", "block")
			$("#search-form .search").eq(0).css("width", "290px")
			$("#search-form .search").eq(1).css("width", "290px")
			$('[input[name=back_departure_date]').removeClass('skip_validate');
			
		} else {
			$("#point-image").attr("src", "templates/boring/images/direct_point.gif").css("margin-top", "38px")
			$(".backtoggle").css("display", "none")
			$("#search-form .search").eq(0).css("width", "352px")
			$("#search-form .search").eq(1).css("width", "352px")
			$('[input[name=back_departure_date]').addClass('skip_validate');
		}
		
	}
	function setCRtype(){
		if (step >= 1){
			$('input[name=out_iata]').attr('name', 'cr_iata[0]');
			$('input[name=in_iata]').attr('name', 'cr_back_iata[0]');
			$('input[name=out_search]').attr('name', 'cr_search[0]');
			$('input[name=in_search]').attr('name', 'cr_back_search[0]');
			
			rebind_complete('cr_iata[0]','cr_search[0]', uri, min_chars, cache_length);
			rebind_complete('cr_back_iata[0]','cr_back_search[0]', uri, min_chars, cache_length);
		}
		else{
			$('input[name=cr_iata[0]]').attr('name', 'out_iata');
			$('input[name=cr_back_iata[0]]').attr('name', 'in_iata');
			$('input[name=cr_search[0]]').attr('name', 'out_search');
			$('input[name=cr_back_search[0]]').attr('name', 'in_search');
			rebind_complete('out_iata','out_search', uri, min_chars, cache_length);
			rebind_complete('in_iata','in_search', uri, min_chars, cache_length);
		}
	}
	
function pass_recover(login){
	 $.post(
        '?go=authorization/send_password_link',{
            login: login
        },
        function(data){
			if(data['email'] == 'false'){
				$('.email_error').closest('div').children('p').hide();
				$('.email_error').show();
			}
			else{
				if(data['email'] == 'fail'){
					$('.send_error').closest('div').children('p').hide();
					$('.send_error').show();
				}
				else{
					$('.send_ok').closest('div').children('p').hide();
					$('.send_ok').show();
					$('[name=pass_recover]').hide();
				}
			}
        }, "json"); 
}


function check_email(email){
	 $.post(
        '?go=authorization/check_login',{
            login: email
        },
        function(data){
			if (data != 'FREE'){
				skip_registration = true;		
			}
			else{
				skip_registration = false;
			}
			if (skip_registration){
				$('#login_error').show();
			}
			else{
				$('#login_error').hide();
			}
        }); 
}

function check_flight(uid,id){
    $.post(
        '?go=ajax/checkflight',{
            flight: id,
			uid: uid
        },
        function(data){
			try{
				var data = eval('('+data+')');
			}
			catch(err){
				$('#status').html('error');
			}
			
			if(data.success){
				$('#go_forward').show();
				$('#status').hide();
			}
			else{
				error = data.error_message;
				if(error == 'fail'){
						$('#status').html(not_available);
				}else{
					if(error == 'peak_use'){
						$('#status').html(avail_peak_use);
					}else{
						$('#status').html(error);
					}
				}
			}
        }); 
}


function register(url, form){
	form['ajax'] = true;
    $.post(
    		url,
    		form,
	        function(data){
    			data = data.match(/\{\".*\}/g);
      			var data = eval('('+data[0]+')');
    			if (data.success){
    				if (data.send_email){
    					console.log(data);
    					email = $('#trytoregister #reg_form').find('input[name=registration_email]').val();
    					$('#trytoregister #send_email_ok').find('input[name=registration_email]').val(email).addClass('black');
    					$('#trytoregister').find('#send_email_ok').show();   					
    					$('#trytoregister #reg_form').hide();
    				}else if (data.url){
    					window.location = data.url;
    				}
    			}
    			else{
    				$('#trytoregister .reg_error').show();
    			}
      			
	        }); 
}


function send_email_again(url, form){
	form['ajax'] = true;
    $.post(
    		url,
    		form,
	        function(data){
    			data = data.match(/\{\".*\}/g);
      			var data = eval('('+data[0]+')');
    			if (data.success){		
    				if (data.message){
    					$('#email_send_again').html(data.message).show();
    				}
    			}     			
	        }); 
}

function init_inputs(){
	$("input[comment]").each(function(){
		var value = $.trim($(this).attr("value"));
		var comment = $.trim($(this).attr("comment"));
		if (value.length > 0 && value != comment){
			$(this).removeAttr("comment").addClass("black");
		} else if (value.length == 0){
			$(this).val(comment);	
			$(this).focus(function(){	
				val = $(this).val();
				vallength = $.trim(val).length;
				if(vallength == 0 || val == comment){ 
					$(this).val("").addClass("black");
				}
			})
			$(this).blur(function(){			
				val = $(this).val();
				vallength = $.trim(val).length;
				if(vallength == 0){
					$(this).removeClass("black").val(comment);
				}
			})
			$(this).change(function(){			
				val = $(this).val();
				vallength = $.trim(val).length;
				if(vallength == 0){
					$(this).removeClass("black").val(comment);
				}
				else if (val != comment){
					$(this).addClass("black");
				}
			})
		}
	})
}

function addValidateClass(next){
	$(".addflight").eq(next).find('.searchParametrs[rel]').removeClass('skip_validate');
}

function removeValidateClass(next){
	$(".addflight").eq(next).find('.searchParametrs[rel]').addClass('skip_validate');
}

function fill_sro(){
	//Заполнение пассажиров
	fill_passenger();
	//Заполнение дат - в calendar.js
	
	//Заполнение класса
	$('.flightclasses').find('#'+$('input[name=class]').val()).click();
	
}

function fill_passenger(){
	$('.passengerscount').each(function(){
		var add_children_clicked = false;
		var value = $(this).find('input[type=hidden]').val();
		$(this).find('a[value='+value+']').click();
		
		if ($(this).parent().attr('id') == 'childrenselect' && parseInt(value)>0 && !add_children_clicked){
			add_children_clicked = true;
			$('#addchildren_link').click();
		}	
	});
}

function clear_children(){
	$('#childrenselect').children('.passengerscount').each(function(){
		$(this).find('input[type=hidden]').val("0");	
	});
	fill_passenger();
}

function parseDate(date){
	var patern = /^[\d]{2}\.[\d]{2}\.(19|20)[\d]{2}$/;
	if (patern.test(date)){
		var tmp = date.split('.');
		return { day: tmp[0], month: tmp[1], year: tmp[2] };
	}
	return false;
}

function init_datepicker(){
	
	$.datepicker.setDefaults(
		$.extend($.datepicker.regional["ru"])
	);

	$(".datepicker").each(function(){
		var options = eval('(' + $(this).attr('dateoption') + ')');
			
		if (!options){
			options = {
					showOn: 'both',
					buttonText: "",
					changeYear: true,
					defaultDate: new Date(),
					minDate: new Date(1910, 01, 01),
					maxDate: new Date(2030, 11, 31),
					hideIfNoPrevNext: true
				}
		}
		$(this).datepicker(options);
	})
}


$(document).ready(function(){
	
	var config = {}
	validator = $('#reg_form').bindFormValidator(config);
	
	rebind_complete('out_iata','out_search', uri, min_chars, cache_length);
	rebind_complete('in_iata','in_search', uri, min_chars, cache_length);
	for (i=1; i<5; i++){
		rebind_complete('cr_iata['+i+']','cr_search['+i+']', uri, min_chars, cache_length);
		rebind_complete('cr_back_iata['+i+']','cr_back_search['+i+']', uri, min_chars, cache_length);
	}
	
	$('#reg_form input[name="registration_email"]').blur(function(){
		skip_registration = false;
		var val = $(this).val();
		test_email(val);
	});
	
	/*$('input[name="registration_email"]').change(function(){
		skip_registration = false;
		var val = $(this).val();
		test_email(val);
	});*/
	
	$('#reg_form input[name="registration_email"]').keyup(function(){
		skip_registration = false;
		var val = $(this).val();
		test_email(val);	
	});
	

	function test_email(email){
		var reg = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/;
		if (reg.test(email)){
			check_email(email);		
		}else{
			skip_registration = true;
		}
		
	}
	
	$('input[name="registration"]').click(function(e){
		if (skip_registration){
			e.preventDefault();
		}		
	});
	
	$('#reg_form').submit(function(e){
		e.preventDefault();
		if (!skip_registration && validator.isValid()){
			console.log($(this).attr('action'))
			url = $(this).attr('action');
			form = new Object();
			$(this).find('input').each(function(){
				form[$(this).attr('name')] = $(this).attr('value');
			});
			register(url, form);	
		}
	});
	
	$('#to_reg_link').click(function(e){
		e.preventDefault();
		$('#trytoregister').find('#send_email_ok').hide();   					
		$('#trytoregister #reg_form').show();
		
	});
	
	$('#send_email_again_link').click(function(e){
		e.preventDefault();
		$('#send_email_again').submit();
	});
	
	$('#send_email_again').submit(function(e){
		e.preventDefault();
		form = new Object();
		$(this).find('input').each(function(){
			form[$(this).attr('name')] = $(this).attr('value');
		});
		url = $(this).attr('action');
		send_email_again(url, form);
	});
	
	$('input[name=pass_recover]').click(function(e){
		e.preventDefault();
		login = $(this).closest('form').children('input[name="login"]').val();
		pass_recover(login)
	});
		
	fill_sro();
	
	init_datepicker();
		
	$('.inputdata .drop_button').click(function(){
		var name = $(this).parent().find('.ac_input').attr('name');
		$('.ac_res_'+name).toggle();
	})

});
