$(function(){
	
	$("#links-patrocinados").css("visibility","visible")
	
	function objSort(obj){
		var arr = [];
		$.each(obj, function(i,n){
			arr.push(i +"|"+ n);
		});
		arr.sort();
		
		arrData = [];
		for(i = 0;i < arr.length;i ++){
			data = arr[i].split('|');			
			obj = {};
			obj.k = data[0];
			obj.v = data[1];
			arrData.push(obj);
		}
		
		return arrData;
	}

	/**
	 * Total de carros na lista de comparação
	 */
	function countCars() {
		if( $('#list dl dd').size() <= 0 ) {
			$('#list dl').addClass('inactive').removeClass('active');
			$('#list dl').html('');
			$('#list p.msgFilter').hide();
			maxCars = false;
		} else if( $('#list dl dd').size() == 1 ) {
			$('#list p.msgFilter').text('1 carro selecionado').removeClass('msgFilterError').show();
			$('#list dl').addClass('active').removeClass('inactive');
			$('a.clearAll, #panelFilter div.showCars a').fadeOut();
			maxCars = false;
		} else if( $('#list dl dd').size() == 2 ) {
			$('a.clearAll, #panelFilter div.showCars a').fadeIn();
			$('#list p.msgFilter').text('2 carros selecionados').removeClass('msgFilterError').show();
			$('#list dl').addClass('active').removeClass('inactive');
			maxCars = false;
		} else if( $('#list dl dd').size() == 20 ) {
			$('#list p.msgFilter').text('Limite de 20 carros').addClass('msgFilterError').show();
			$('#list dl').addClass('active').removeClass('inactive');
			maxCars = true;
		} else {
			$('#list p.msgFilter').text($('#list dl dd').size()+' carros selecionados').removeClass('msgFilterError').show();
			$('#list dl').addClass('active').removeClass('inactive');
			maxCars = false;
		}
	}
	
	/**
	 * Adiciona um novo carro a lista de comparacao
	 */
	firstCar = true;
    maxCars = false;
	function addCarList(brand, model, version, idCar){
		$('#list dl').addClass('active').removeClass('inactive');
		lineModel = '<dt class="'+ brand +'" rel="'+ model +'">'+ unescape(brand) +' '+ unescape(model) +'</dt>';
		lineCar = '<dd><p><a href="http://compare.carros.uol.com.br/carros/detalhe.html?partnerdisplay=true&id='+ idCar +'" id="'+ idCar +'" target="_blank">'+ unescape(version) +'</a></p><a class="close" rel="'+ model +'" title="Remover este carro" href="javascript:void(0)">Excluir</a></dd>';
		addCar(idCar);
		if( firstCar == true ) {
			$('#list dl').append(lineModel);
			$('#list dl').append(lineCar);
			firstCar = false;
		} else {
			hasModel = false;
			hasVersion = false;
			// has version
			$('#list dd a').each(function(i){
				if( $('#list dd a').eq(i).attr('id') == idCar ) {
					hasVersion = true;
				}
			});
			// has model
			if( !hasVersion ) {
				$('#list dt').each(function(i){
					if( $('#list dt').eq(i).attr('rel') == model ) {
						$('#list dt[@rel='+model+']').after(lineCar);
						hasModel = true;
					}
				});
				if( !hasModel ) {
					$('#list dl').append(lineModel);
					$('#list dl').append(lineCar);
				}
			}
		}
		
		/**
		 * Botao para remover carros da lista de comparação
		 */
		$('#list dd a.close').unbind().click(function(){
			idCarRemove = $(this).parents('dd').find('p a').attr('id');
			modelRemove = $(this).attr('rel');
			removeCar(idCarRemove);
			$('#version dd a#'+idCarRemove).removeClass('listed');
			// Remove Model Cars in List
			if( $('a.close[@rel='+modelRemove+']').size() == 1 ) $('#list dt#'+modelRemove).remove()
			$(this).parents('dd').remove();
			
			return countCars();
		});
		
		return countCars();
	}
	
	$('.showCars a').click(function(e){
		e.stopPropagation();
		e.preventDefault();
		window.location.href = 'http://compare.carros.uol.com.br/carros/compare.html?partnerdisplay=true&id='+escape(Get_Cookie('id').split(',').join(','));
	});
	
	if(Get_Cookie('id')){
		arrCookieCar = Get_Cookie('id').split(',').sort();
		$.each(arrCookieCar, function(i,idCar){
			$.getScript("http://compare.carros.uol.com.br/carros.html?partnerdisplay=true&page=home&id="+ idCar, function(){
				addCarList(car.brand,car.model,car.version,idCar)
				return;
			});
		});
	
	}
    $('a.clearAll').hide();
    $('#panelFilter div.showCars a').hide();
    $('a.clearAll').click(function(){
        $('#list dl').addClass('inactive').removeClass('active');
        $('#list dl').html('');
        $('#list p.msgFilter').hide();
        $('a.listed').removeClass();
        $('#panelFilter div.showCars a').fadeOut();
		Delete_Cookie('id');
        $(this).hide();
    });
	
    // JSON-Object brand
    $.getJSON("http://compare.carros.uol.com.br/carros.js?partnerdisplay=true", function(){
        $('#brand dl').html('');
        $.each( objSort(marcas), function(i,n){
            $('#brand dl').append('<dd><a href="javascript:void(0)" rel="'+ escape(n.k) +'">'+ n.k +'</a></dd>');
        });
        // JSON-Object model
        $('#brand dd a').click(function(){
            // Actions
            $('#model h4, #model dl').remove();
            marca = $(this).attr('rel');
            $('#model').append('<h4><a href="javascript:void(0)" title="Escolher outra marca">'+unescape(marca)+'</a></h4><dl></dl>');
            $('#model h4 a, #columnFilters ul li.brand a').click(function(){
                $('#model').fadeOut();
                $('#brand').fadeIn();
            });
            $('#model dl').html('');
            $('#brand').fadeOut();
            $('#model').fadeIn();
            $('#model dl').append('<dd class="load">Carregando...</dd>');
            urlMarca = 'http://compare.carros.uol.com.br/carros.js?partnerdisplay=true&marca="'+marca+'"&num=100';
            // Ajax
			
            $.getJSON(urlMarca, function(){
                $('#model dl dd.load').remove();
                $.each( objSort(modelos), function(i, n){
                    $('#model dl').append('<dd><a href="javascript:void(0)" rel="'+ escape(n.k) +'">'+ n.k +'</a></dd>');
                });
                // JSON-Object version
                $('#model dd a').click(function(){
                    // Actions
                    $('#version h4, #version dl').remove();
                    modelo = $(this).attr('rel');
                    $('#version').append('<h4><a href="javascript:void(0)" title="Escolher outro modelo">'+unescape(marca)+' '+unescape(modelo)+'</a></h4><dl></dl>');
                    $('#version h4 a, #columnFilters ul li.model a').click(function(){
                        $('#version').fadeOut();
                        $('#model').fadeIn();
                    });
                    $('#version dl').html('');
                    $('#model').fadeOut();
                    $('#version').fadeIn();
                    $('#version dl').append('<dd class="load">Carregando...</dd>');
                    urlModelo = 'http://compare.carros.uol.com.br/carros.js?partnerdisplay=true&marca="'+ marca +'"&modelo="'+ modelo +'"&num=100';
                    // Ajax
                    $.getJSON(urlModelo, function(){
                        $('#version dl dd.load').remove();
                        $.each( objSort(versoes), function(i, n){
                            $('#version dl').append('<dd><a href="javascript:void(0)" rel="'+escape(n.k)+'" id="'+n.v+'">'+n.k+'</a></dd>');
                            $('#list dd a').each(function(x){
                                if( $('#list dd a').eq(x).attr('id') == n.v ) {
                                    $('#version dl dd a#'+n.v).addClass('listed');
                                }
                            });
                        });
                        
                        // Create List Comparation
                        $('#version dd a').unbind().click(function(){
                            if( !maxCars ) {
                                versao = $(this).attr('rel');
                                idCar = $(this).attr('id');
                                
								addCarList(marca, modelo, versao, idCar);
								
                                $(this).addClass('listed');
                            } else {
                                $('#list p.msgFilterError').fadeOut().fadeIn();
                            }
                            return countCars();
                        }); // Create List Comparation                        
                    });
                }); // JSON-Object version
            });
        }); // JSON-Object model
    }); // JSON-Object brand
	
	/**
	 * Coloca borda vermelha nos boxes
	 */
	$('#list').html('<dl></dl><p class="msgFilter"></p>');
     $('#panelFilter #columnFilters, #panelFilter #listFilters').mouseover(function(){
        $(this).css('border','1px solid #900');
    });
	
    $('#panelFilter #columnFilters, #panelFilter #listFilters').mouseout(function(){
        $(this).css('border','1px solid #E7EAD9');
    });
	
	countCars();
});