var combos = new Array('id_cliente', 'id_estado', 'id_ciudad', 'id_marca', 'id_modelo', 'tipo', 'clasificacion');
var radios = new Array('precio_promedio', 'transmision', 'puertas', 'aire_acondicionado');

$(document).ready(function() {
		
    $('#mticker').marquee('pointer').mouseover(function () {
        $(this).trigger('stop');
    }).mouseout(function () {
        $(this).trigger('start');
    });
    
    /** Buscar por marcas **/

		var marca_opacity = 0.6;

		$('#tipos li a').css('opacity', marca_opacity);
		tipo = $('#lista_marcas').attr('class');

		$(".tipo_" + tipo).css('opacity', 1);

		$('#tipos li a').click(function() {
			old = $('#lista_marcas').attr('class');
			$(".tipo_" + old).css('opacity', marca_opacity);
			$('#marcas').hide();
			$('#clasificacionlist').hide();
			$.get('anuncios/slide-marcas/' + $(this).attr('href'), null, function(html) {
				html = html.split('@@@@@@');
				$('#marcas').html(html[0]).fadeIn();
				$('#clasificacionlist').html(html[1]).fadeIn();
				tipo = $('#lista_marcas').attr('class');
				$(".tipo_" + tipo).css('opacity', 1);
				$('#lista_marcas a').click(function() { return panelBuscar($(this).attr('href')); });
				$('#modelist span').html("");
			});
			return false;
		});
    
    $('#lista_marcas a').click(function() { return panelBuscar($(this).attr('href')); });

    /** populate fields **/
    if($('#adv_finder_val').val() != "") buscadorAvanzado();
    
    /** Buscar por codigos **/
    
    $('#busqueda_codigo').submit(function() {

    	location.href = 'anuncios/' + zeroFill($('#busca').val(), 6);
    	return false;
    });
    
    /** Buscador avanzado **/
    
    $('#busq_adv_btn').click(buscadorAvanzado);

	/** Slider de marcas **/
	var distancia = 0;
	var movimiento = 700;
	
	distanciaMaxima = $("#lista_marcas").css("width");

	if(distanciaMaxima)
	{
		distanciaMaxima = (-1 *parseInt(distanciaMaxima.substr(0, distanciaMaxima.length-2) ) ) + 740;

		$("#move_left").click(function() {
							if(distancia == 0) return;
							distancia += movimiento;
							$("#lista_marcas").animate({marginLeft: distancia}, 'slow');
							return false;
						});

		$("#move_right").click(function() {
							if(distancia <= distanciaMaxima) return;
							distancia -= movimiento;
							$("#lista_marcas").animate({marginLeft: distancia}, 'slow');
							return false;
						});
	}

		$("a.friend").click(function(){
			$("form#send_friend").toggle("slow");
			return false;
		});

		$("a#cont_seller").click(function(){
			$("form#contact_seller").toggle("slow");
			return false;
		});
});

function panelBuscar(url) {
	$('#lista_marcas a').removeAttr('class');
	$('a[href=' + url + ']').addClass('azul');
	$('#modelist span').hide();
	$('#clasificacionlist').hide();
	$.get('anuncios/panel-buscar/' + url, null, function(html) {
		html = html.split('@@@@@@');
		$('#clasificacionlist').html(html[0]).fadeIn();
		$('#modelist span').html(html[1]);
		$('#modelist span').fadeIn();
	  //$('#lista_tipos a').click(listaTipos);
	});
	return false;
}

/*
function listaTipos() {	
	url = $(this).attr('href');
	$.get('anuncios/panel-modelos/' + url, null, function(html) {
		$('#lista_modelos').html(html);
	});
	return false;
}*/

function buscadorAvanzado() {
	
	$('#finder').hide();    	
	$('#form_finder').show();
	
	if($('#adv_finder_val').val().indexOf('id_estado') != -1) id_estado = 1; else id_estado = 0;
	if($('#adv_finder_val').val().indexOf('id_marca') != -1) id_marca = 1; else id_marca = 0;

	$.post('anuncios/buscador-adv', {id_estado: id_estado, id_marca: id_marca}, function(html) {
		$('#form_finder').html(html);
		populateFields();
		$('#form_finder_adv').submit(function() {
			
			id_anuncio = $('#id_anuncio').val();

			if((id_anuncio != $('#id_anuncio').attr("defaultValue")) && (id_anuncio != "")) {
				location.href = 'anuncios/' + id_anuncio;
				return false;
			}
			
			search = "";    			
			for(id in combos) { 
				id = combos[id];
				val = $('#' + id).val();
				if(val != '0')
				search +=  '/' + id + '/' + val;
			}
			for(name in radios) { 
				name = radios[name];
				val = $('input[name="' + name + '"]:checked').val();
				if(val != undefined) search +=  '/' + name + '/' + val; 
			}
			if(search != "") location.href = 'anuncios/buscar/filtrar' + search.replace(' ', '%20');
			else alert('Por favor seleccione uno o mas parametros de busqueda');
			return false;
		});
	});
	return false;
}

function populateFields() {
    val = $('#adv_finder_val').val();
    if(val != "") {
    	fil = convertToAssocArray(val.split('/'));
    	
	    for(id in fil) {
	    	$('#' + id).val(fil[id]);
	    	$('#' + id + '_' + fil[id]).attr('checked', 'checked');
	    }
    	
    }
}

function convertToAssocArray(vec) {
	result = new Array; key = null;
	for(var i in vec) if(key == null) key = vec[i]; else { result[key] = vec[i]; key = null; }
	return result;
}

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number;
}

