// Objeto para mostrar mensajes de validación
var errores = {
    getContainer: function() {
        var container = $('.messages');
        if (container.length) {
            return container;
        } else {
            this.crearContainer();
            return $('.messages');
        }
    },
    crearContainer: function() {
        var container = $('<div class="messages" />');
        $('.fancy_content').prepend(container);
    },
    addError: function(error) {
        var containerInt = $('<p></p>'),
            errorContainer = $('<div class="error_js" />').html(containerInt.append(error)).hide();
        this.quitarMensajes();
        this.getContainer().append(errorContainer.fadeIn('slow'));
    },
    quitarError: function(error) {
        
    },
    quitarErrores: function() {
        $('.error_js').hide();
    },
    addMensaje: function(error) {
        var containerInt = $('<p></p>'),
            errorContainer = $('<div class="info" />').html(containerInt.append(error)).hide();
        this.quitarErrores();
        this.getContainer().append(errorContainer.fadeIn('slow'));
    },
    quitarMensaje: function(error) {
        
    },
    quitarMensajes: function() {
        $('.info').hide();
    }
}



/*--- DocumentReady Function ---*/
$(function(){
	
	//para que el console no sea undifine
	if(typeof console  != "object"){ console ={ log : function(){}} }
	
	// Inicializar slider del footer
	$('.slider_bottom_2').cycle({
		fx: 'fade'
	});
	
	// Inicializar scrollpane
	$(".scrollpane").jScrollPane({
	     showArrows: true
	});
	
	
	/*------ Fancybox Scripts -------*/
	
	// Attach fancybox to elements with class "lightbox"
	$(".lightbox").fancybox({
		'onComplete' : function() {
		    $(".scrollpane").jScrollPane({
		         showArrows: true
		    });
		}
	});
	
	// Attach fancybox type:iframe to elements with class "lightbox_iframe"
	$(".lightbox_iframe").fancybox({
		'width': 600,
		'height': 500,
		'autoScale': false,
		'padding': 3,
		'margin': 0,
		'autoDimensions': false,
		'scrolling':'auto',
		'transitionIn': 'elastic',
		'transitionOut': 'fade',
		'type': 'iframe'
	});
	
	// Fancybox content switcher
	$('#fancybox-wrap').delegate(".fancybox_switch", "click", function(e) {
		var url = $(this).attr('href');
		$.fancybox({href:url});
		e.preventDefault();
	});
	
	// Fancybox closer
	$('#fancybox-wrap').delegate(".close_fancybox", "click", function(e) {
		$.fancybox.close();
		e.preventDefault();
	});
	
	// Fancybox form submitter
	$('#fancybox-wrap').delegate(".ajax_form", "submit", function() {
		$.fancybox.showActivity();
		
		var action = $(this).attr('action'),
			method = $(this).attr('method');
		
		$.ajax({
			type: method,
			dataType: "json",
			url: action,
			data: $(this).serializeArray(),
			success: function(data){
				if (data.valid == true && data.continuar == true ) {
					$.fancybox({href:data.next});
				} else if (data.valid == true && data.continuar == false ) {
					$.fancybox(data.message);
				} else if (data.valid == false) {
					errores.quitarErrores();
					errores.addError(data.message);
					$.fancybox.resize();
					$.fancybox.hideActivity();
				}
			}
		});
		return false;
	});
	
	// Check if logged in via ajax before continuing
	$('a.check_login').click(function(e) {
		var continueTo = $(this).attr('href'),
			params = $(this).data('params');
			// if params = undefined set to empty string
			params = (params) ? "&"+params : "";
		var rutarel= $("#test_drive").data("rutarel");
		$.ajax({
			type: "get",
			dataType: "json",
			url: rutarel + "usuarios/checklogin",
			success: function(data){
				if (data == false) {
					$.fancybox({href:rutarel + "usuarios/login?require=true"+params});
				} else {
					$.fancybox({href:continueTo});
				}
			}
		});			
		e.preventDefault();
	});
	
	/*------ END Fancybox Scripts ------*/
	
	
	
	// Funcionalidad para tiger menu
	$('.tigre_top a').click(function(e){
		$('.tigre_dropdown').slideToggle();
		e.preventDefault();
	});
	
	// Inicializar acordeón para navegación de modelos
	function initModelosNav() {
	  $('#modelos_nav ul').hide();
	  $('#modelos_nav li.active').parent().show().parent().addClass("expanded"); //add ".expanded" class when expanded on page load
	  $('#modelos_nav li a').click(
	    function() {
	      var enlace = $(this),
              checkElement = enlace.next();
		  
	      if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
	        checkElement.slideUp('normal'); //makes ULs collapsible
	        $(".expanded").removeClass("expanded"); //remove ".expanded" class when collapsed
	        return false;
	        }
	      if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
	        $('#modelos_nav ul:visible').slideUp('normal');
	        checkElement.slideDown('normal');
	        $(".expanded").removeClass("expanded"); //remove ".expanded" class from previous
	        checkElement.parent().addClass("expanded"); //add ".expanded" class when expanded
	        return false;
	        }
	      }
	    );
	  }
	$(function() {initModelosNav();});
	
	
	// Función para cambiar hrefs dinámicamente
	function menuChanger(vehicle, id, ruta, hasFile) {
		
		var modulo = ruta + "modelos",
			moduloUrl1 = modulo + "/",
			moduloUrl2 = vehicle + "/" + id,
						
			linkGaleria = moduloUrl1 + "galeria/" + moduloUrl2,
			linkDetalles = moduloUrl1 + "detalles/" + moduloUrl2,
			linkFolleto = moduloUrl1 + "folleto/" + moduloUrl2,
			linkRecono = moduloUrl1 + "reconocimientos/" + moduloUrl2,
			linkTestDrive = moduloUrl1 + "test_drive/" + id;
		
		$('#li_galeria a').attr('href', linkGaleria);
		$('#li_detalles a').attr('href', linkDetalles);
		if(hasFile){
			$('#li_folleto').show();
			$('#li_folleto a').attr('href', linkFolleto);
		}else{
			$('#li_folleto').hide();
			$('#li_folleto a').attr('href', '#');
		}
		$('#li_recono a').attr('href', linkRecono);
		$('#li_td a').attr('href', linkTestDrive);
	}
	
	// Script para cambiar imagen via ajax
	$('#modelos_nav ul li a').click(function(e){  
	   
	   e.preventDefault();
	   
	    var enlace = $(this),
			imgUrl = enlace.attr('href'),
	    	container = $('.modelos_auto');
		
		if(enlace.parent().hasClass('active')){
			 return false;
		}
			
		$('#modelos_nav .active').removeClass('active');
		$(this).parent().addClass('active');
		container.children().remove();
		container.addClass('loading');
		menuChanger($(this).data("infos").vpd, $(this).data("infos").vidpd, $(this).data("infos").rutapd, $(this).data("infos").hasFile);
		
		$.ajax({
			url: imgUrl,
			dataType: 'json',
			success: function (data) {
			
			
			if(data.img!=null){	
				var img = new Image();
				$(img).load(function () {
				    container.removeClass('loading error');
				    $(this).hide();
				    container.append(this);
				    $(this).fadeIn();
				}).error(function () {
					container.removeClass('loading').addClass('error');
				}).attr('src', $(".tigre_container").data("rutalibs") + "?src=" + $("#modelos_nav").data("ruta") + data.img + "&ancho=410&alto=303");
			}else{
				container.removeClass('loading').addClass('error');
			}	
			/*
			console.log($("#modelos_nav").data("ruta"));				
			console.log($(".tigre_container").data("rutalibs") + "?src=" + $("#modelos_nav").data("ruta") + data.img + "&ancho=410&alto=303");
			*/
			},
			error: function () {
				container.removeClass('loading').addClass('error');
			}
		});
		
	});
	
	
});
/*--- END DocumentReady Function ---*/
