Application = {
    Controller: {}
};
Application.build_url = function(url) {

    if (!Application.BASE_URL || !Application.BASE_URL.match(/^http/)) {
        Application.BASE_URL = $('meta[name=base_url]').attr('content');
    }

    return Application.BASE_URL + url; 
};

jQuery(document).ready(function(){

    // invoca o controlador e o método solicitados
    var controller = $('meta[name=controller]').attr('content');
    var method = $('meta[name=method]').attr('content');
    //var camelizedController = $.map(controller.split('_'), function(val) { return val.substr(0,1).toUpperCase() + val.substr(1) } ).join('');
    var camelizedController = $.map(controller.split('-'), function(val) { return val.substr(0,1).toUpperCase() + val.substr(1) } ).join('');

    Application.Controller[camelizedController] &&
    Application.Controller[camelizedController][method] &&
    Application.Controller[camelizedController][method].call();

	// Tooltip
    $('.hastooltip').hover(function(){
       $(this).find('.tooltip').fadeIn(300);
   }, function(){
       $(this).find('.tooltip').fadeOut(300);
   });
   
   // Abre links com o rel external em novas janelas
   // Páginas: Todas
   $("a[rel~=external]").click(function(){
       window.open($(this).attr('href'));
       return false;
   });

   // removendo as marcações do skype
   window.setTimeout(function() {
       $('.skype_pnh_container').html('');
       $('.skype_pnh_print_container').removeClass('skype_pnh_print_container');
   }, 800);
    
    // Efeito que fica trocando a mensagem de idioma
    // Páginas: Todas
    tit_idioma_pt();                      
    function tit_idioma_pt() {
        $('#idioma p.tit.pt').fadeIn(250).delay(10000).fadeOut(250);
        setTimeout(function(){
            tit_idioma_en();
        }, 10500);
    }
    function tit_idioma_en() {
        $('#idioma p.tit.en').fadeIn(250).delay(10000).fadeOut(250);
        setTimeout(function(){
            tit_idioma_pt();
        }, 10500);
    }

    // Função que verifica se o mouse ainda está em cima para esconder o menu
    function escondeSubmenu(){
        $YachtBrasil = $('#nav li.YachtBrasil');
        if( !$YachtBrasil.hasClass('hover') ) {
            $YachtBrasil.find('p > a').removeClass('current');
            $YachtBrasil.find('.sub_crop').animate({height: 0},  {'duration': 400, 'easing': 'easeInOutCirc' });
        }
        
        $barcosNovos = $('#nav li.barcosNovos');
        if( !$barcosNovos.hasClass('hover') ) {
            $barcosNovos.find('p > a').removeClass('current');
            $barcosNovos.find('.sub_crop').animate({height: 0},  {'duration': 400, 'easing': 'easeInOutCirc' });
        }
        
    }
    
    
    // Efeitos menu principal
    // Páginas: Todas
    $('#nav > li.YachtBrasil, #nav > li.barcosNovos').hover(function(){
        $(this).addClass('hover');
        
        var altura = $(this).find('ul.sub').outerHeight();
        $(this).find('p > a').addClass('current');
        $(this).find('.sub_crop').animate({height: altura},  {'duration': 400, 'easing': 'easeInOutCirc' });
    },function(){
        $(this).removeClass('hover');
        
        setTimeout( escondeSubmenu, 500);
    });

    // Animação do banner principal
    // Páginas: Todas
    $('#mainBanner ul.controls li').mouseenter(function(){
        // Remove a class current de todos itens do menu
        $('#mainBanner ul.controls li').removeClass('current');
        
        // Adiciona classe current ao atual
        $(this).addClass('current');
        
        imagem = $(this).find('a').attr('rel');
        
        if ( imagem !=  $('#mainBanner img').attr('src') ) {
            $('#mainBanner img').hide();
        }
    
        $('#mainBanner img').attr('src', imagem);
        
        $('#mainBanner img').load(function(){
            $('#mainBanner img').fadeIn(700);
        });
        
    });

    // Select
    // Páginas: Todas
    $('div.select > p a').live('click', function() {        

    	var $select = $(this).closest('div.select');
        var $ul = $select.children('ul');       

        // esconde outras combos abertas
        $('div.select ul').not($ul).hide();

        if ($ul.is(':visible')) {
            $ul.hide();
            $select.css('zIndex','100');
        } else {
            $ul.show();
            $select.css('zIndex','101');
        }

    });

    if ($('div.select').length > 0) {

        // Fecha os selects quando clica fora
        $(document).bind('mouseup.custom_combo', function(e) {
            if ($(e.target).closest('div.select').length == 1) return false;
            $('div.select ul').hide();
            $('div.select').css('zIndex','100');
        });
    }
    
    $('.home_barcosNovos span.imgBorder').hover(function(){
        if (!$(this).hasClass('active')) {
            $(this).cycle({
                fx: 'fade',
                speed: 500, 
                timeout: 2000
            });
        }
        else {
            $(this).cycle('resume');
        }
        $(this).addClass('active');
        
    }, function(){
        $(this).cycle('pause');
    });	    
    

    $('#imgBorder_aa').cycle({
        speed: 2400
    });
    $('#imgBorder_ab').cycle({
        speed: 2500
    });

    // Esteira horizontal
    // Páginas: Noticias, Barcos Novos Detalhes
    var larguraLi = $('.esteiraHorizontal ul.lista > li:not(:first-child)').outerWidth(true);
    var numeroLi = $('.esteiraHorizontal ul.lista > li').length;
    var marginLi = parseInt($('.esteiraHorizontal ul.lista > li:not(:first-child)').css('marginLeft'))
    
    $('.esteiraHorizontal ul.lista').css({'width': (larguraLi*numeroLi) -marginLi});
    
    // Corre 1 em 1
    $('.esteiraHorizontal_1 .previous').click(function(){
        $('.esteiraHorizontal_1 .crop').scrollTo({top:0, left:'-='+larguraLi}, 1000, {easing:'jswing'} );
    });
    $('.esteiraHorizontal_1 .next').click(function(){
        $('.esteiraHorizontal_1 .crop').scrollTo({top:0, left:'+='+larguraLi}, 1000, {easing:'jswing'} );
    });
    
    // Corre 3 em 3
    $('.esteiraHorizontal_3 .previous').click(function(){
        $('.esteiraHorizontal_3 .crop').scrollTo({top:0, left:'-='+larguraLi*3}, 1200, {easing:'jswing'} );
    });
    $('.esteiraHorizontal_3 .next').click(function(){
        $('.esteiraHorizontal_3 .crop').scrollTo({top:0, left:'+='+larguraLi*3}, 1200, {easing:'jswing'} );
    });
    
    // slide para o topo de teste
	$('#slide-fotos').cycle({
		fx: 'fade',
		timeout: 1000,
		pause: true,
		before:  onBefore
	});    
   
	function onBefore(){

		$('#slide-nav li').removeClass('current');

		var cls = $( this ).attr('class');
		$('#slide-nav').find( '.'+cls ).addClass('current');

	}	
    
});
