var idx = 1;
var selHtml = '';
var prevType = '';
var tuneSearch = false;

function fill_location(idx){

		if (cr_pref_departure[idx] != null ){
	        $('input[name="cr_iata[' + idx + ']"]').val(cr_iata[idx]);
			if (cr_search[idx] != '' ){
				$('input[name="cr_search[' + idx + ']"]').val(cr_search[idx]).hide();
				$('#span_cr_search_' + idx).html(  cr_search[idx]   ).show();
			}
			if (cr_back_search[idx] != '' ){
				$('input[name="cr_back_search[' + idx + ']"]').val(cr_back_search[idx]).hide();
				$('#span_cr_back_search_' + idx).html(  cr_back_search[idx]   ).show();
			}
	        $('input[name="cr_back_iata[' + idx + ']"]').val(cr_back_iata[idx]);
			$('select[name="cr_pref_departure[' + idx + ']"] > option[value="'+cr_pref_departure[idx]+'"]').attr('selected','selected');
			$('select[name="cr_class[' + idx + ']"] > option[value="'+cr_class[idx]+'"]').attr('selected','selected');
			if ( cr_district_airport[idx] != '0' )
				$('input[name="cr_district_airport[' + idx + ']"]').attr('checked','checked');
			$('input[name="cr_district_airport[' + idx + ']"][value="'+cr_district_airport[idx]+'"]').attr('checked','checked');
			$('input[name="cr_date[' + idx + ']"]').attr('value', cr_date[idx]);
			if (error_array['cr_date['+idx+']']){
				$('#div_cr_date_'+idx).addClass("error");
			}
			if (error_array['cr_iata['+idx+']']){
				$('#div_cr_search_'+idx).addClass("error");
			}
			if (error_array['cr_back_iata['+idx+']']){
				$('#div_cr_back_search_'+idx).addClass("error");
			}
        }
		

		$('#span_cr_date_' + idx).hint();
		$('input[name="cr_back_search[' + idx + ']"]').parent().hint();
		$('input[name="cr_search[' + idx + ']"]').parent().hint();
		
		
		//$('input[name="cr_date[' + idx + ']"]').datepicker("destroy").attr('id','cr_date'+idx).datepicker().attr('value', cr_date[idx]);
		datepicker_ini('cr_date[' + idx + ']');
		$('input[name="cr_date[' + idx + ']"]').datepicker('option', 'numberOfMonths', 2);
		$('input[name="cr_date[' + idx + ']"]').mousedown(
				function(e)
				{
					if(idx >= 1)
					{
						var minDate = $('input[name="cr_date[' + (idx-1)  + ']"]').datepicker('getDate');
						if(minDate != null){
							$(e.target).datepicker('option','minDate', minDate);
						}
						var curDate = $(e.target).datepicker('getDate');
						if(curDate != null)
						if(minDate.getMonth() < curDate.getMonth())
						{
							$(e.target).datepicker('option', 'showCurrentAtPos', 1);
						}
						else
						{
							$(e.target).datepicker('option', 'showCurrentAtPos', 0);
						}
					}
					$(e.target).datepicker('show');
				}
		);
		
		rebind_complete('cr_iata[' + idx + ']','cr_search[' + idx + ']');
		rebind_complete('cr_back_iata[' + idx + ']','cr_back_search[' + idx + ']');
		//#		$('input[name="cr_iata[' + idx + ']"]').attr('value', cr_iata[idx]);
		
		
		if(idx > 0 && !tuneSearch){
			var params = getAirportParams('span_cr_back_search_' + (idx - 1));
			if(params != null){
				$('#span_cr_search_' + idx).html(params[0]);
		    	$('[name="cr_search['+ idx +']"]').attr('check', params[0]);
		    	$('[name="cr_iata['+ idx +']"]').val(params[1]);
				
			}
		}
}


function submit_vendor_list(vendors_text, vendors_names){
    if(vendors_text.length){
       $('#pref_on').attr("checked","checked");
       //$('#pref_off').attr("checked","");
    } else {
       //$('#pref_off').attr("checked","checked");
       $('#pref_on').attr("checked","");
    }
	$('#input_vendors').attr('value',vendors_text);
	divHtml = ''
	for (var key in vendors_names){
		divHtml = divHtml + vendors_names[key]+'<br>';
	}
	$('#selected_preferable').html(divHtml);
	if (divHtml == ''){
		$('#selected_preferable_title').hide();
		//$('#selected_preferable').hide();
	}else{
		$('#selected_preferable_title').show();
		//$('#selected_preferable').show();
	}
	//alert(vendors_names);
}

function show_vendor_list(){
	divHtml = ''
    $.post(
        '?go=ajax/showvendorlist',
		{vendors_text: $('#input_vendors').attr('value')},
        function(data){
            for (var key in data){
				divHtml = divHtml + data[key]+'<br>';
            }
			$('#selected_preferable').html(divHtml);
			//if (divHtml == '' || $('#pref_off').attr("checked") == "checked")
			if (divHtml == '' || $('#pref_off').attr("checked") ){
				//$('#selected_preferable').hide();
				$('#selected_preferable_title').hide();
			}else{
				//$('#selected_preferable').show();
				$('#selected_preferable_title').show();
			}
        }, "json"); 
}

function get_defaults(){
	$('input[type="text"]').attr('value','');
		adv = $('#advanced_count').attr('value');
	$('input[type="hidden"]').attr('value','');
		$('#advanced_count').attr('value',adv);
	$('input[type="checkbox"]').attr('checked','');
	$('#ak_modal_div').remove();
    $.post(
        '?go=ajax/getdefaults',{},
        function(data){
			//console.log(data);
            for (var key in data){
            //for (var i=1; i < data.length(); i++){
				$('select[name="'+ key +'"]').attr('value',data[key]);
				if (data[key] != '')
					$('input[name="'+ key +'"][value="'+ data[key] +'"]').attr('checked','checked');
				$('input[name="'+ key +'"][type="hidden"]').attr('value',data[key]);
				$('input[name="'+ key +'"][type="text"]').attr('value',data[key]);
				if(key.match(/_search/)){
					$('#span_' + key).html(data[key]).show();
					$('input[name="'+ key +'"][type="text"]').attr('check',data[key]);
				}
				//alert(data.key);
			}

			$('[name^="cr_pref_departure"]').val('not_important');
			$('[name^="cr_class"]').val('all');

			//fill_search_input('out_iata', 'out_search');
			//fill_search_input('in_iata', 'in_search');
			//if (data.direct == 'false')
				//$('input[name="direct"]').attr('checked','');
			//change_pref();
			$('#trip-type').change();
			//show_vendor_list();
			$('#selected_preferable_title').hide();
			$('#selected_preferable').html('');

			$('[id^="div_cr_search"] > span > span').html('').hide();
			$('[id^="div_cr_back_search"] > span > span').html('').hide();
			$('[id^="div_cr_search"] > span > input').attr('check','').attr('value','').show();
			$('[id^="div_cr_back_search"] > span > input').attr('check','').attr('value','').show();
			$('input[name=money_from]').blur();

        }, "json");
	//$('input[name*="iata"]').change();
}


function clear_search_form(){
/*	$('input[type="text"]').attr('value','');
		adv = $('#advanced_count').attr('value');
	$('input[type="hidden"]').attr('value','');
		$('#advanced_count').attr('value',adv);
	$('input[type="checkbox"]').attr('checked','');
	$('#ak_modal_div').remove();
			//console.log(data);
	$('[name^="cr_pref_departure"]').val('not_important');
	$('[name^="cr_class"]').val('all');

			//fill_search_input('out_iata', 'out_search');
			//fill_search_input('in_iata', 'in_search');
			//if (data.direct == 'false')
				//$('input[name="direct"]').attr('checked','');
			//change_pref();
        $('input[name="out_search"]').attr('value','');
        $('#span_out_search').html('&nbsp;').show();
	$('input[name="out_search"][type="text"]').attr('check','');

        $('input[name="in_search"]').attr('value','');
        $('#span_in_search').html('&nbsp;').show();
	$('input[name="in_search"][type="text"]').attr('check','');

	$('select[name="trip_type"]').attr('value',"OW");


        
	$('#trip-type').change();
	//show_vendor_list();
	$('#selected_preferable_title').hide();
	$('#selected_preferable').html('');

	$('[id^="div_cr_search"] > span > span').html('').hide();
	$('[id^="div_cr_back_search"] > span > span').html('').hide();
	$('[id^="div_cr_search"] > span > input').attr('check','').attr('value','').show();
	$('[id^="div_cr_back_search"] > span > input').attr('check','').attr('value','').show();
	$('input[name=money_from]').blur();*/




	$('input[type="text"]').attr('value','');
		adv = $('#advanced_count').attr('value');
	$('input[type="hidden"]').attr('value','');
		$('#advanced_count').attr('value',adv);
	$('input[type="checkbox"]').attr('checked','');
	$('#ak_modal_div').remove();
    $.post(
        '?go=ajax/getemptydefaults',{},
        function(data){
			//console.log(data);
            for (var key in data){
            //for (var i=1; i < data.length(); i++){
				$('select[name="'+ key +'"]').attr('value',data[key]);
				if (data[key] != '')
					$('input[name="'+ key +'"][value="'+ data[key] +'"]').attr('checked','checked');
				$('input[name="'+ key +'"][type="hidden"]').attr('value',data[key]);
				$('input[name="'+ key +'"][type="text"]').attr('value',data[key]);
				if(key.match(/_search/)){
					var str = '';
					for (i=0;i<80;i++) {
						str += '&nbsp;';
					} // грубо но работает
					//$('#span_' + key).html(data[key]).show();			
					$('input[name="'+ key +'"][type="text"]').attr('check', str);
					$('#span_' + key).click();
					$('#span_' + key).html(str);
				}
			}

			$('[name^="cr_pref_departure"]').val('not_important');
			$('[name^="cr_class"]').val('all');

			//fill_search_input('out_iata', 'out_search');
			//fill_search_input('in_iata', 'in_search');
			//if (data.direct == 'false')
				//$('input[name="direct"]').attr('checked','');
			//change_pref();
			$('#trip-type').change();
			//show_vendor_list();
			$('#selected_preferable_title').hide();
			$('#selected_preferable').html('');

			$('[id^="div_cr_search"] > span > span').html('').hide();
			$('[id^="div_cr_back_search"] > span > span').html('').hide();
			$('[id^="div_cr_search"] > span > input').attr('check','').attr('value','').show();
			$('[id^="div_cr_back_search"] > span > input').attr('check','').attr('value','').show();
			$('input[name=money_from]').blur();

        }, "json");
	//$('input[name*="iata"]').change();

}

function get_city_list( div_id , input_iata_name ){

	//reset_airport_id(in_or_out);
	//$('#'+in_or_out+'_city_sel').show();
	//$('select[name="'+in_or_out+'_city_sel"]').show();
    $.post(
        '?go=ajax/getcitylist',{
            country: $('div[id="'+div_id+'"] > div > select[name="country_sel"]').attr('value')
        },
        function(data){
            for (var x = 0; x < data.length; x++){
                selHtml = selHtml + '<option value="' + data[x].airport_iata + '">' + data[x].city_name + ' [' + data[x].airport_name + ']</option>'; 
                }    
			$('div[id="'+div_id+'"] > div > select[name="city_sel"]')
				.html(selHtml)
				.show()
				.change(function() {select_city( input_iata_name, $(this).attr("value") )});
            //$('select[name="'+ in_or_out +'_city_sel"]').html(selHtml);
            selHtml = '';
        }, "json"); 
}

function select_city( iata_name, value ){
    $('input[name="' + iata_name + '"]').attr("value", value) ;
}

function reset_airport_id(in_or_out){
    $('input[name="'+in_or_out+'_iata"]').attr("value", "");
}

function showdiv(place, text){
    $('#'+place).html( $('#'+text).html()) ;
    top.location.href = 'javascript:void(0)';
}

function showdiv_search(place, text){
    $('#'+place).html( eval('etalon_'+text).clone(true)[0] ) ;
    top.location.href = 'javascript:void(0)';
}



var string = '';
function fill_search_input(name_iata, name_search){
$.post(
        '?go=ajax/getairportname',{
            iata: $('input[name="'+name_iata+'"]').attr("value")
        },
        function(data){
			$('input[name="'+name_search+'"]').attr("value",data);
			$('input[name="'+name_search+'"]').attr("check",data);
        }, "json"); 
}



function change_pref(){
	//alert( $('#pref_on').attr("checked") );
	if ( $('#pref_on').attr("checked"))
	{
		$('#selected_preferable_title').show();
		//$('#selected_preferable').show();
        //! fixme: evil hardcode
		if ( $('#input_vendors').attr('value') == '' )
		{
			$('#pref_on').attr("checked", '');
			$('#selected_preferable_title').hide();
			show_modal();
		}
		else if ($('#selected_preferable').html() == '')
		{
			show_vendor_list();
		}
	}
	else
	{
		$('#selected_preferable_title').hide();
		//$('#pref_on').attr("checked","");
		//$('#selected_preferable').hide();
	}
}

function show_modal(){

	var href = $('#new_filter_link').attr('href');
	var vend_get = 'vendors=' + $('#input_vendors').attr('value');
	href = href.replace(/index.php\?(vendors=[^&]*&|)/, 'index.php?'+vend_get+'&');
	$('#new_filter_link').attr('href', href);
	$('#new_filter_link').click();

};


function separate_check(show_dates){
	if(show_dates == undefined){
		show_dates = false;
	}
	if( $('.simple_sep[name=separate]').attr('checked') && !show_dates ){
		$('[name=district_date]').attr('disabled','disabled');
	}else{
		$('[name=district_date]').removeAttr('disabled');
	}
}

var next = 0;

if(typeof(window["initPage"]) == 'undefined')
{
	window.initPage = function()
	{
		var nav = document.getElementById("header");
		if (nav)
		{
			var nodes = nav.getElementsByTagName("div");
			for (var i = 0; i < nodes.length; i++)
			{
				nodes[i].onmouseover = function ()
				{
					if (this.className.indexOf("hover") == -1)
					{
						this.className += " hover";
					}
				}
				nodes[i].onmouseout = function ()
				{
					this.className = this.className.replace(" hover", "");
				}
			}
		}
	}
	$(document).ready(function(){
	if (window.attachEvent && !window.opera)
    	window.attachEvent("onload", window.initPage);
	});
}


function getAirportParams(id){
	var html = '';	
	var iata = '';
	html = $('#' + id).html();
	if(html == '' || html == null){
		return null;
	}
	else{
		iata = html.toString().match(/\[\w+\]/i);
		if(iata != null){
			iata = iata[0].substring(1, iata[0].length - 1);
			if(html != '' && iata != ''){
				return [html, iata];
			}
		}
		return null;
	}
}


$(document).ready(function(){	

   	openBlock('.open-form-tools', '.form-tools');

 	separate_check();
	$('.simple_sep[name=separate]').click(function(){
		separate_check();
	});
	
	



	
     //$('.hint').tooltip();
	//show_vendor_list();
	change_pref();
	


	$('#clear_button').click(function(){
//		get_defaults();
		clear_search_form();
	});


	$('#pref_on').click(function(e){
		change_pref();
		//e.preventDefault();
	});


	$('.calendar_icon').live('click', function(){
		$(this).siblings('input').focus();
	});

	$('#select-carriers').click(function(e){
		e.preventDefault();
		show_modal();
		return false;
	}); 
	datepicker_ini("departure_date");
	datepicker_ini("back_departure_date");
	$('#ui-datepicker-div').css('display','none');
	$('input[name="departure_date"]').datepicker('option', 'numberOfMonths', 2);
	/*$('input[name="departure_date"]').change(
			function(e)
			{
				var date = $(e.target).datepicker('getDate');
				$('input[name="back_departure_date"]').datepicker('option','minDate', date);
			}
	);*/
	$('input[name="back_departure_date"]').datepicker('option', 'numberOfMonths', 2);
	$('input[name="back_departure_date"]').mousedown(
			function(e)
			{
				var minDate = $('input[name="departure_date"]').datepicker('getDate');
				if(minDate != null){
					$(e.target).datepicker('option','minDate', minDate);
				}
				var curDate = $(e.target).datepicker('getDate');
				if(curDate != null)
				if(minDate.getMonth() < curDate.getMonth())
				{
					$(e.target).datepicker('option', 'showCurrentAtPos', 1);
				}
				else
				{
					$(e.target).datepicker('option', 'showCurrentAtPos', 0);
				}
				$(e.target).datepicker('show');
			}
	);
	$('#ui-datepicker-div').hide();
	
	rebind_complete('out_iata','out_search');
	rebind_complete('in_iata','in_search');
	
    $('#arrows').click(function(){
                if ($("#trip-type").val() == 'RT'){
                	$("#trip-type").val(['OW']).change();
								  $(this).addClass('arrow_ow').removeClass('arrow_rt');
								}else {
								  if ($("#trip-type").val() == 'OW'){
								  $("#trip-type").val(['RT']).change();
								  $(this).addClass('arrow_rt').removeClass('arrow_ow');
								}
								}
                	});
	
	
    $('#departure_arrow').click(function(){
									$("#trip-type").val(['RT']).change();
										});
    $('#back_departure_arrow').click(function(){
									$("#trip-type").val(['OW']).change();
										});	
    
    
    $('#trip-type').change(function(){
    	if($(this).val()=='CR'){
	    	$('#normal-selection').hide();
	    	
	    	$('#advanced-selection').fadeIn("fast");
	    	$('.ow_rt_only').hide();
			$.form_validator.config.group = 'CR';
			$('.combi_sep[name=separate]').removeAttr('disabled');

	    	var params = getAirportParams('span_out_search');
		    if(params != null){
			   	$('#span_cr_search_0').html(params[0]);
			   	$('[name=cr_search[0]]').attr('check', params[0]);
			   	$('[name=cr_iata[0]]').val(params[1]);
		   	}
		   	params = getAirportParams('span_in_search');
		   	if(params != null){
		    	$('#span_cr_back_search_0').html(params[0]);
		    	$('[name=cr_back_search[0]]').attr('check', params[0]);
		    	$('[name=cr_back_iata[0]]').val(params[1]);
		   	}
		   	
			prevType = 'CR';
			

	    }else{
	    	if(prevType == 'CR'){
		    	var params = getAirportParams('span_cr_search_0');
		    	if(params != null){
			    	$('#span_out_search').html(params[0]);
			    	$('[name="out_search"]').attr('check', params[0]);
			    	$('[name="out_search"]').val(params[0]);
			    	$('[name="out_iata"]').val(params[1]);
		    	}
		    	params = getAirportParams('span_cr_back_search_0');
		    	if(params != null){		 
			    	$('#span_in_search').html(params[0]);
			    	$('[name="in_search"]').attr('check', params[0]);
			    	$('[name="in_search"]').val(params[0]);
			    	$('[name="in_iata"]').val(params[1]);
		    	}
	    	}
	    	if($(this).val() == 'OW' ){
		        $('#normal-selection').fadeIn();
		        $('.ow_rt_only').show();
			    	$('#advanced-selection').hide();
			    	$('#control_back_departure_date ,#prefered_back_departure_type').fadeOut("slow");
		        $("#arrows").addClass('arrow_ow').removeClass('arrow_rt');
					$('#departure_arrow').show();
		
		            $('#back_departure_arrow').hide();
					$('#return_to').hide();
					$.form_validator.config.group = 'OW';
					$('#separate_search').fadeOut("slow");
					$('.simple_sep[name=separate]').attr('disabled','disabled');
					separate_check(true);
					prevType = 'OW';
	    	}else{
					$('.combi_sep[name=separate]').attr('disabled','disabled');
		   	    	$('#advanced-selection').hide();
		   	    	$('.ow_rt_only').show();
			    	$('#normal-selection').fadeIn();
			    	$('#control_back_departure_date, #prefered_back_departure_type').fadeIn("slow");
			    	$("#arrows").addClass('arrow_rt').removeClass('arrow_ow');
		
		            $('#departure_arrow').hide();
		
					$('#separate_search').fadeIn("slow");
					$('.simple_sep[name=separate]').removeAttr('disabled');
					separate_check();
					$('#back_departure_arrow').show();
					$('#return_to').show();
					$.form_validator.config.group = 'RT';
					prevType = 'RT';
	    	}
	    	
	    }
		$('#search-form-error').hide();
    });
     $('#trip-type').change();
    
	
	$('#del-location').click(function(e){

        if(next == max_cr_segments  ){
            $('#add-location').show();
        }
        if(next == 2 ){
            $('#del-location').hide();
        }
		if (next>1){
			tag = $('#skel')[0].tagName;
			next--;
			$('#advanced_count').attr('value',next);
			//!FIXME:
			$.form_validator.storage.RemoveAllErrors($('input[name="cr_back_search['+next+']"]'));
			$.form_validator.storage.RemoveAllErrors($('input[name="cr_search['+next+']"]'));
			$.form_validator.storage.RemoveAllErrors($('input[name="cr_date['+next+']"]'));
			
			$(''+tag + '[name="skel['+next+']"]').remove();
		}
		check_cr_separate(next);
		e.preventDefault();
	});
    
	$('#add-location').click(function(e){
		if (next==0){
			$('#del-location').hide();
		}else
			$('#del-location').show();
        if(next >= max_cr_segments -1 ){
            $(this).hide();
        }
		 var skel = $('#skel').html();
		 tag = $('#skel')[0].tagName;
		 skel = skel.replace(/(id|name)=("?\w+\[?)x/g,'$1=$2' + next + '');
		 skel = skel.replace(/(id)="?(\w+___)x/g,'$1="$2' + next + '');
		 skel = skel.replace(/(id):\'?(\w+___)x/g,"$1:'$2" + next + '');
		 skel = skel.replace(/(id|name):\'?(\w+\[?)next/g,"$1:'$2" + (next+1) + '');
		 skel = skel.replace(/valid_off/g,'');
		// alert(skel);
		skel = '<'+tag+' class="to-add" style="display:none" name = skel['+ next +'] >' + skel + '</'+tag+'>';

		$('#last_tr').before('&nbsp;');
 		$('#last_tr').before(skel);
		
		//$(this).parent().parent().html('ooooooooooooololo');

 		$(".to-add").fadeIn("slow").removeClass("to-add");
		fill_location(next);
		next++;
		$('#advanced_count').attr('value',next);
		check_cr_separate(next);
		e.preventDefault();
	});
    
	function check_cr_separate($counter){
		if($counter==2){
			$('[name="cr_separate[1]"]').fadeIn("slow");
			if($('#trip-type').val() == 'CR'){
				$('.simple_sep[name=separate]').attr('disabled','disabled');
			}
			if(separate){
				$('[name="cr_separate[1]"] > [name=separate]').attr('checked','checked');
				separate = false;
			}
		}else{
			$('[name="cr_separate[1]"]').fadeOut("slow");
		}
	}

	//$('#add-location').click();
	
	//alert($('#advanced_count').attr('value'));
	imax = $('#advanced_count').attr('value');
	for (var i=1; i<=imax; i++){
		tuneSearch = true;
		$('#add-location').click();
		tuneSearch = false;
	}

	if($('[name=in_iata]').val() != ''){
		setTimeout("$('[name=in_iata]').blur();", 1000);
	}	
	
});
