/**
 * @author DIGIO SLNE
 */

var _YMAP_API_KEY = 'b59IQbXV34H0uGPlH3L7zbNJMr_BKSEbkMxyB61HQVx.Fr4jA2CT7z8ii2ro';
var message_shown = false;
var select_place = false;

/*objeto con las imagenes de los eventos*/
var imag = Array();

/* ruta para la paginación y contenedor */
var str_go_to = '';
var container_go_to = '';

function j(value){
	/*Esta es la imagen*/
	$(this.imagen).attr('src', value.ResultSet.Result);
}

function addYahooMapsImages(){
	/* Funcion para cargar las imagenes de los eventos "yahoomaps" */
	var index = 0;
	$('.contenedor_imagen_mapa').each(function(){
		var data = evalJson(this.alt);
		imag[index] = {imagen:this, cb: j};
		var s = document.createElement('script');
		s.type ='text/javascript';
		s.charset ='utf-8';
		s.src = 'http://local.yahooapis.com/MapsService/V1/mapImage?appid='+
				_YMAP_API_KEY+
				'&latitude='+datos.lat+
				'&longitude='+datos.lng+
				'&image_width='+100+
				'&image_height='+100+
				'&zoom='+10+
				'&output=json&callback=imag['+index+'].cb';
		document.getElementsByTagName('head')[0].appendChild(s);
		index++;
	});
}
function addGMapsImages(containerClass){
	//Funcion para cargar las imagenes de los eventos "gmaps"
	var index = 0;
	$("."+containerClass).each(function(){
		try{
			var data = evalJson(this.alt);
			var source = 'http://maps.google.com/staticmap?' +
					'center=' + datos.lat + ',' + datos.lng +
					'&zoom=10' +
					'&size=' + 100 + 'x' + 100 +
					'&maptype=mobile' +
					'&markers=' + datos.lat + ',' + datos.lng + ',tinyred' +
					'&key=' + _GMAP_API_KEY;
		}catch(e){
			var source = '/imgs/pxtransparent.gif';
		}
		this.src = source;
	});
}

function load_ajax_calls()
{
	$('.contenedorEventos').hover(function(){
		$(this).addClass('highlight');
	},function(){
		$(this).removeClass('highlight');
	});
}

function load(num) {
	$(container_go_to).load(noCache('/search/' + ((document.location.href.indexOf('basic_search') <0)?'advanced_search/':'basic_search/') + num), {
        ajax: 'true'
    });
}

$(document).ready(function()
{
	/**
	 * common tasks (basic & advanced)
	 */

	// pagination
	$.history.init(function(url) {
		if (container_go_to != '') {
			load(url == '' ? '1' : url);
		}
	});

	/**
	 * basic search tasks
	 */
	if($('#form_search').length > 0)
	{
		str_go_to = '';
		container_go_to = '#find_resultstable';
		$('#form_search').yav({errorPosition: 'before'});
	}

	/**
	 * advanced search tasks
	 */
	if($('#form_advanced_search').length > 0)
	{
		// SET CALENDARS
		$.datepicker.setDefaults(msg.datepicker);
		$('input:text.date_picker').datepicker();

		str_go_to = 'advanced_search';
		container_go_to = '#search_results_block';
		$('#form_advanced_search').yav
		({
			errorMessage:msg.ERRORMESSAGE,
			errorPosition:'before',
			onOk:function(the_form)
			{
				if(($('#event_title').val().length < 2) && ($('#place').val().length < 2) && ($('#date_ini').val().length < 2) && ($('#organizer_name').val().length < 2) && ($('#category_name').val().length < 2))
				{
					$('#errorDiv').html('<p class="error">'+msg.AT_LEAST_ONE_TERM+'</p>');
				}
				else
				{
					$('p.error',the_form).remove();

					$.post(noCache('/search/advanced_search'),$('#form_advanced_search').serialize(),function(html_response)
					{
						$('#search_results_block').empty().html(html_response);
						window.scrollTo(0, $('#search_results_block').offset().top);
					});
				}
				return false;
			}
		});

		// Auto-suggest: Organizers
		$('#organizer_name').focus(function()
		{
			$.post(noCache('/search/suggest_organizers'), {'filter':'in_use'}, function(json_str)
			{
				try
				{
					var organizers = evalJson(json_str);

					$('#organizer_name').autocomplete(organizers,
					{
						selectFirst:true,
						autoFill:true,
						mustMatch:true,
						formatItem: function(row)
						{
							return row.name;
						}
					});

					$('input#organizer_name').result(function(event, data, formatted)
					{
						if(data)
						{
							$('input#organizer_name').val('"'+data.name+'"');
						}
					});
				}
				catch(e){}
			});

			$('#organizer_name').unbind('focus');
		});

		// Auto-suggest: Categories
		$('#category_name').focus(function()
		{
			$.post(noCache('/search/suggest_categories'),function(json_str)
			{
				try
				{
					var categories = evalJson(json_str);

					$('#category_name').autocomplete(categories,
					{
						selectFirst:true,
						autoFill:true,
						mustMatch:true,
						formatItem: function(row)
						{
							return row.name;
						}
					});

					$('input#category_name').result(function(event, data, formatted)
					{
						if(data)
						{
							$('#category_id').val(data.id);
							$('#category_type').val(data.type);
						}
					});
				}
				catch(e){}
			});

			$('#category_name').unbind('focus');
		});

		// Perform auto-search if necessary
		if($('#auto_search').val() == 'yes')
		{
			$("#form_advanced_search").submit();
		}
	}
});
