// Skryti veci, ktere vidi jen users bez JS ;-)
// #34552 - zmena head -> html, not clean solution, ale diky bugu v IE je nutne :-\
$('html').prepend('<style>.custom-price, .hidden-js { display: none; } .specify { display: block; }</'+'style>');

SearchForm =
{
	defaultOption: '-1',
	lng:{ },
	
	/**
	 * Inicializuje vyhledávací formulář
	 * Nutno volat při $(document).ready()
	 *	
	 */
	init: function()
	{
		if($('#main-search').size() == 0) return;
		
		this.optionPlus = '<a href="#" class="btn-add-option" title="'+this.lng.plus+'"><img src="/ikomunity/partner.data/p20/design/img/ico-plus-big.png" class="plain" /></a>';
		this.optionMinus = '<a href="#" class="btn-remove-option" title="'+this.lng.minus+'"><img src="/ikomunity/partner.data/p20/design/img/ico-minus-big.png" class="plain" /></a>';
		
		//bind odkazů pro pridani kriterii ve vyhledavani (vsechny elementy s id="#add-*"
		$('.specify li[id*=add-]').bind('click', this.addSingleField);
		
		//live bind prepinani lokalit
		//msie je v lostu z 'change' eventu
		if($.browser.msie)
		{
			$('select[id*=-nl_country_id]').bind('change', this.bindSwitchLocalities);
		}
		else
		{
			$('select[id*=-nl_country_id]').live('change', this.bindSwitchLocalities);
		}
		
		//boxik vlasni ceny
		$('#c_price_int').live('change customLoad', function()
		{
			if($(this).val() == '-2')
			{
				$('#price-box .custom-price').show().find('input').removeAttr('disabled');
			}
			else
			{
				$('#price-box .custom-price').hide().find('input').attr('disabled', 'disabled');
			}
		});
		
		//bind switchnuti dopravy
		$('#nl_transportation_id').live('change customLoad', function()
		{
			if($(this).val()==3)
			{
				$('#transfer-airport-row').show().find('select').removeAttr('disabled');
			}
			else
			{
				$('#transfer-airport-row').hide().find('select').attr('disabled', 'disabled');
			}
			//autobus 
			if($(this).val()==2)
			{
				$('#transfer-bus-row').show().find('select').removeAttr('disabled');
			}
			else
			{
				$('#transfer-bus-row').hide().find('select').attr('disabled', 'disabled');
			}
		});
		
		//taby v horni casti vyhledavatka - trochu hardcode :-\
		$('#main-search .tabs ul li a').bind('click', function()
		{
			$('#main-search .tabs ul li').removeClass('active');
			$(this).parent().addClass('active');
			$('#search_form').get(0).action = this.href;
			$('#nl_type_id').val(this.rel);
			
			$(document).trigger("refreshTripsCount");
	
			return false;
		});
		
		//bind skryti kriteria ve vyhledavani
		$('a.btn-remove-option').live('click', function(e)
		{
			field_name = $(this).parent().attr('id').replace('-row', '');
			field_box = $('#' + field_name + '-box');
			
			$('#add-'+field_name).fadeIn('def');
			$('input', field_box).attr('disabled', 'disabled');
			$('select', field_box).attr('disabled', 'disabled');
			field_box.hide();
			SearchForm.checkHideSpecify();
			
			$(document).trigger("refreshTripsCount");
			
			return false;
		});
		
		//posovani a skryvani pluska u zemi
		$('#main-search .k2form-element-array-adder').live('click', function()
		{
			setTimeout("SearchForm.initAddDel()",1);
		});
		
		//Skryva / zobrazuje textovy popisek "Upřesnit"
		this.checkHideSpecify();
		
		//Zobrazi vyplnene elementy
		this.showElements();
		
		//Zobrazuje/skryva [+] a [-]
		this.initAddDel();
		
		//Plusko u zeme
		this.countryPlus();
		
		//Disabluje neinicializovane polozky vyhledavani (zkracuje url)
		this.disableHiddenElements();
		
		//zavola bind na custom event
		$('#c_price_int, #nl_transportation_id').trigger('customLoad');
		
		//bind ajaxTripsCount
		$(document).trigger('ajaxTripsCount');
	},
	
	ShowSearchCount: function (data)
	{
		$("#search-loader").html("");
		$("#trips-count").html(data.count);
	},
	
	/**
	 * Zobrazuje/skryva [+] a [-]
	 *
	 */
	initAddDel: function()
	{
		$('#main-search .k2form-element-array').each(function()
		{
			if($(this).find('.k2form-element-array-remover').size()>1)
			{
				$(this).find('.k2form-element-array-remover').show();
			}
		});
		
		if($('.k2form-element-array-remover-c').size()>1) $('.k2form-element-array-remover-c').show();
	},
	
	/**
	 *	Zobrazi vyplnene elementy
	 */
	showElements: function()
	{
		$('.specify ul li:visible').each(function()
		{
			id = $(this).attr('id');
			field_box = '#' + id.replace('add-', '') + '-box';
			
			$(field_box + ' input, ' + field_box + ' select').each(function()
			{
				if($(this).attr('type') != 'checkbox')
				{
					val = $(this).val();
				}
				else
				{
					val = $(this).attr('checked') ? 1 : -1;
				}
				
				if(val != SearchForm.defaultOption && val != '')
				{
					$('#' + id).trigger('click');
					return;
				}
			});
		});
	},
	
	/**
	 * Disabluje neinicializovane polozky vyhledavani (zkracuje url)
	 * 
	 */
	disableHiddenElements: function()
	{
		$('#main-search').find('input:hidden, select:hidden').each(function()
		{
			$(this).attr('disabled', 'disabled');
		});
	},
	
	/**
	 * Skryva / zobrazuje textovy popisek "Upřesnit"
	 *
	 */
	checkHideSpecify: function(event)
	{
		//jquery 1.3.2 needed
		$('.specify').show();
		
		if($('.specify ul li:visible').length == 0)
		{
			$('.specify').hide();
			
		}
		else
		{
			$('.specify').show();
		}
	},
	
	/**
	 * Zobrazi zakliknuty element ve vyhledávátku
	 *
	 */
	addSingleField: function(event)
	{
		var id = $(event.target).attr('id') == '' ? $(event.target).parent().attr('id') : $(event.target).attr('id');
		var field_name = id.replace('add-', '');
		var field_box = $('#'+field_name+ '-box');
		
		// pokud NENI definovane <minus> u elementu, tak se zadefinuje:
		if($('#'+field_name+ '-row a').length == 0)
		{
			var minus = $(SearchForm.optionMinus);
			$('#'+field_name+ '-row').append(minus);
		}
		
		//skryje popisek v sekci "Upresnit"
		$('#add-'+field_name).hide();
		
		//prida vyhledavaci kriterium do searchformu
		field_box.remove().appendTo($('#enhoptions .fm-spc')).fadeIn('def');
		
		//enable input prvku:
		field_box.find('input, select').each(function() { $(this).removeAttr('disabled'); });
		
		field_box.find('input, select').bind('change', function()
		{
			if(!field_box.hasClass("changed")) field_box.addClass("changed");
		});
		
		SearchForm.checkHideSpecify();

		return false;
	},

	/**
	 * Přidá options do nově vzniklého selectu zemí
	 * Zabinduje akci change
	 *
	 */
	addCountry: function(id, cnt)
	{
		sel = '#'+id+'-'+cnt+'-nl_country_id';
		val = $('.country-box:first select').html();
		
		//opera sux code
		//od opera 10.10 uz to konecne funguje, jeste to tady nejakej cas ale nechame, lidi neumi updatovat software
		if(jQuery.browser.opera)
		{
			val = val.replace(/<optgroup label="([^"]+)">/ig, '<option disabled="disabled">$1</option>')
				.replace(/<\/optgroup>/ig, '');
		}
		
		$(sel).append(val).children('option:first').attr('selected', 'selected');
		if($.browser.msie)
		{
			$(sel).bind('change', this.bindSwitchLocalities);
		}
		
		this.countryPlus();
	},
	
	countryPlus: function()
	{
		sel = '#countries-box .country-row:last-child select[id*=nl_country_id]';
		$('#k2form-element-array-adder-c').remove();
		$(sel + ' + span').after('<span id="k2form-element-array-adder-c" class="k2form-element-array-adder"><img alt="" src="/ikomunity/partner.data/p20/design/img/ico-plus-big.png"/></span>')
	},
	
	/**
	 * Přidá options do nově vznikého selectu lokalit
	 *
	 */
	addLocality: function(id, cnt)
	{
		sel = '#'+id+'-'+cnt;
		val = $('#k2form-element-array-'+id+' select:first').html();

		$(sel).html(val).children('option:first').attr('selected', 'selected');
	},
	
	/**
	 * Odstraní mínusko
	 *
	 */
	removeMinus: function(id, row)
	{
		if(k2.formElementArray[id].real_count<=2) $('#k2form-element-array-' + id + ' .k2form-element-array-remover-'+id).hide();
		
		//když je v selectu vybráno nerozhoduje a umažeme jej, nevoláme přenačítání počtu zájezdů
		//nefunguje na 100%, protože do proměnné row se dosazuje kokotina
		if($('select[id*=' + id + '-' + row + ']').val() != -1)
		{
			setTimeout("$(document).trigger('refreshTripsCount');", 10);
		}
		
		return true;
	},
	
	/**
	 * Smaže a switchne lokality podle právě vybrané země
	 *
	 */
	bindSwitchLocalities: function(event)
	{
		locality_array_id = $(event.target).attr('id').replace('country', 'locality');
		real_count = k2.formElementArray[locality_array_id].real_count - 1;
		
		// Step 1: delete more than 1 locality selects:
		for(x=0; x<real_count; x++) { k2.formElementArrayDel(locality_array_id, real_count - x); }
		
		locality_element = $('#k2form-element-array-' + locality_array_id).find('select[id*=nl_locality_id]');
		locality_element.html('<option>'+SearchForm.lng.load+'...</option>');
		
		// Step 2: get ajax data & replace select options
		k2.ajax({
			app: 'ikomunity', module: 'catalogue/search_form/model', object: 'CSearchFormModel', func: 'ajaxLocalities',
			data: { nl_country_id: $(event.target).val(), replaceContent: '#'+locality_element.attr('id') }
		});
	}
};

//FIXME presunout do vlastniho souboru?
$(document).ready(function (){
/**
 * Clipboard ADD/DELETE Ajax Function
 *
 */
$('.clip-link a').live('click', function(event)
{
	nl_item_id = $(this).attr('rel');
	
	method = $(this).hasClass('del') ? 'Del' : 'Add';
	
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_'+method, loaderShow: true,
		data: { nl_item_id: nl_item_id }
	});
	
	return false;
});

/**
 * Smazat vse
 * 
 */
$('.clip-del-all').live('click', function()
{
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_DeleteAll', loaderShow: true,
		data: { data: 1 }
	});
	
	return false;
});

$('.clip-send-mail').live('click', function ()
{
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_SendMailForm', loaderShow: true,
		data: { data: 1 }
	});
	
	return false;
});

/**
 * Přidání zájezdu do schránky pro NM
 */
 $('.offer-mail').live('click', function()
{
	nl_item_id = $(this).attr('rel');
	
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_Add', loaderShow: true,
		data: { nl_item_id: nl_item_id },
		complete: function()
		{
			window.open(url);
		}
	});
	
	return false;
});
 
/**
 * Clipboard item edit function
 *
 */
$('a.clip-edit').live('click', function()
{
	nl_item_id = $(this).attr('rel');
	
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_ItemEditForm',
		data: { nl_item_id: nl_item_id },
		loaderShow: true
	});
	
	return false;
});


/**
 * Editace schránky
 * 
 */
$('.clipboard-set .edit').live('click', function()
{
	k2.ajax({
		app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_ClipboardSetFormDialog',
		data: { s_basket_set_id: $(this).attr('rel') },
		loaderShow: true
	});
	
	return false;
});

/**
 * Smazání schránky
 * 
 */
$('.clipboard-set .delete').live('click', function()
{
	if(confirm('Opravdu smazat?'))
	{
		k2.ajax({
			app: 'ikomunity', module: 'gadgets/clipboard_view', object: 'CClipboardView', func: 'Ajax_ClipboardDelete',
			data: { s_basket_set_id: $(this).attr('rel') },
			loaderShow: true
		});
	}
	
	return false;
});

});

$(document).bind('clipboardItemAdd', function (e, nl_item_id, data) {
	$('a[rel='+nl_item_id+']').addClass('del')
		.attr('title', data)
		.find('.ico-clipboard-add').html(data).addClass('ico-clipboard-del');
});

$(document).bind('clipboardItemRemove', function (e, nl_item_id, data) {
	$('a[rel='+nl_item_id+']').removeClass('del')
		.attr('title', data)
		.find('.ico-clipboard-add').html(data).removeClass('ico-clipboard-del');
	
	$("#item-"+nl_item_id).fadeOut("slow").queue(function () {
		$(this).remove();
		$(".top-offers ul li.item").removeClass("last");
		$(".top-offers ul li.item:nth-child(3n)").addClass("last");
	});
});

$(document).bind('clipboardItemRemoveAll', function (e, data) {
	$('a.del').removeClass('del')
	.attr('title', data)
	.find('.ico-clipboard-add').html(data).removeClass('ico-clipboard-del');

	$("li.clipboard").fadeOut("slow");
});