jQuery(function($) {
    CufonReplaces();
    Shadowbox.init();

    $('a[rel*=external]').attr('target','_blank');

    $('.focus').focus(function(){
       if ($(this).val() == $(this).attr('title')) {
           $(this).val('');
       }
    }).blur(function(){
       if ($(this).val().trim() == '') {
           $(this).val($(this).attr('title'));
       }
    });

    $.fn.makeAbsolute = function() {
        var pos = [];
        this.each(function(id){
            pos[id] = $(this).position();
        });
        return this.each(function(id) {
            var el = $(this);
            el.css({position: "absolute", zIndex:10,
                top: pos[id].top, left: pos[id].left});
        });
    }

    $('#slider').nivoSlider({
        pauseTime:7000,
        directionNav:false,
        effect: 'slideInRight'
    });

    if ($('#movie-slider').length) {
        $('#movie-slider').cycle({
           prev: '#slider-prev',
           next: '#slider-next',
           fx: 'scrollLeft',
           fxNext: 'scrollLeft',
           fxPrev: 'scrollRight',
           easing: 'easeInOutExpo',
           timeout: 0
        });
    }

    if ($('#image-gallery').length) {
        $('#image-gallery').cycle({
            prev: '#image-gallery-prev',
            next: '#image-gallery-next',
            fx: 'scrollLeft',
            fxNext: 'scrollLeft',
            fxPrev: 'scrollRight',
            easing: 'easeInOutExpo',
            timeout: 7000
        });
    }

    $('select').mySelect();

    if ($('#twitt').length) {
        $.get(rootUrl+'home/twitts', function(response){
            $('#twitt').html(response);
        });
    }

    $('#movies .read-more').click(function() {
       if (!$(this).parents('.item').hasClass('absolute')) {
           $('.movies').css('height', $('.movies').height());
           $('#movies .item').makeAbsolute().addClass('absolute');
       }
       $(this).parents('.item').css('zIndex','30');
       showMoviesMask('#FFF',0.9);
       $(this).parents('.info').animate({scrollLeft:'207px'},200);
       return false;
    });

     $('#movies .back').click(function() {
       hideMoviesMask();
       $(this).parents('.item').css('zIndex','10');
       $(this).parents('.info').animate({scrollLeft:'0px'},200);
       return false;
    });

    $('#content .trailer').click(function() {
        boxContent = $(this).siblings('.trailer-container').html();
        Shadowbox.open({
            content: boxContent,
            player: 'html',
            width:667,
            height:417,
            options: {
                overlayOpacity: 0.8
            }
        });
        return false;
    });

    $('#movies .item .invite').click(function() {
        boxContent = $(this).siblings('.share-container').html();
        Shadowbox.open({
            content: boxContent,
            player: 'html',
            width:337,
            height:213,
            options: {
                onFinish: function() {
                    $('#sb-player p').fadeOut(0);
                    Cufon.replace('#sb-player p', {autoDetect:true, hover:true});
                    //Cufon.refresh('#share-frame p');
                    $('#sb-player p').fadeIn();
                }
            }
        });
        return false;
    });

    $('#stores .map').click(function() {
        boxContent = $(this).siblings('.map-container').html();
        Shadowbox.open({
            content: boxContent,
            player: 'html',
            width:632,
            height:472
        });
        return false;
    });

    $('#stores li').hover(function(){
        $(this).find('.over').show();
        $(this).find('.background').css('opacity',0.9).stop().fadeIn();
    },function(){
        $(this).find('.over').hide();
        $(this).find('.background').stop().fadeOut();
    });

    $('#shopping .transport').click(function(){
       if ($(this).hasClass('bus')) {
           $('#shopping .transport-list .van').slideUp(200,function(){
               if ($('#shopping .transport-list .bus').is(':hidden')) {
                   $('#shopping .transport-list .bus').slideDown(200);
               } else {
                   $('#shopping .transport-list .bus').slideUp(200);
               }
           });
       } else {
           $('#shopping .transport-list .bus').slideUp(200, function(){
               if ($('#shopping .transport-list .van').is(':hidden')) {
                   $('#shopping .transport-list .van').slideDown(200);
               } else {
                   $('#shopping .transport-list .van').slideUp(200);
               }
           });
       }
       return false;
    });

    $('#posts .year').click(function() {
       $(this).siblings('.month-list').slideToggle(200);
       return false;
    });

    $('#posts .month').click(function() {
       var $list = $(this).siblings('.post-list');
       $list.slideToggle(200);
       if ($list.find('li').length == 1) {
           $.get(rootUrl+'posts/loadArchive',$(this).siblings('input').serialize(), function(response){
               $list.find('.loading').hide();
               $list.append(response);
           });
       }
       return false;
    });

    $('#home form .dropdown dd a').click(function(){
        var val = $(this).find('.value').html();
        if (val != "") {
            var url = $(this).parents('form').attr('action') + '/' + val;
            window.location.href = url;
        }
    });

    $('#fill-button').click(function(){
       $('#lease-info').fadeOut();
       $('#lease-form').fadeIn();
       return false;
    });

    $('#ContactPhone').mask('(99) 9999-9999');
    $('#LeasePhone').mask('(99) 9999-9999');

    $('#ContactIndexForm').submit(function(){
       return validateContact();
    });

    $.blockUI.defaults.css = {};
    $.blockUI.defaults.applyPlatformOpacityRules = false;
    $('#LeaseIndexForm').submit(function(){

        if (validateLease()) {
            $('#lease-form').block({
                message: '<p>Enviando dados...</p>',
                overlayCSS: {
                    backgroundColor:'#FFFFFF',
                    opacity:1
                },
                showOverlay:true
            });
            $('#lease-form .errors').hide();
            $.post(rootUrl+'contact/lease',$(this).serialize(),function(response) {
                if (response.errors) {
                    $(response.errors).each(function(){
                       var error = this.toString();
                       $('<li>').html(error).appendTo('#lease-form .errors');
                    });
                    $('#lease-form').unblock();
                    $('#lease-form .errors').show();
                } else {
                    $('#lease-form').unblock({
                        onUnblock: function() {
                            $('#lease-form').fadeOut();
                            $('#lease-success').fadeIn();
                        }
                    })
                }
            },'json');
        }

        return false;
    });

    $('#MailingIndexForm').submit(function(){
       var $name = $('#MailingName'),
           $email = $('#MailingEmail'),
           $loading = $('#newsletter-message');
       if ($name.val() == $name.attr('title') || $email.val() == $email.attr('title')) {
           $loading.html('Preencha os campos!').show();
           return false;
       }
       if (!validateEmail($email.val())) {
           $loading.html('E-mail inválido!').show();
           return false;
       }
       $loading.html('Enviando...').show();
       $.post($(this).attr('action'),$(this).serialize(), function(response) {
           if (response.repeated) {
               $loading.html('Seu e-mail já está cadastrado!');
           } else {
               $loading.html('E-mail cadastrado com sucesso!');
               $name.val($name.attr('title'));
               $email.val($email.attr('title'));
           }
       },'json');
       return false;
    });

});

function validateContact() {
    var valid = true,
        $name = $('#ContactName'),
        $email = $('#ContactEmail'),
        $message = $('#ContactMessage');

    if ($name.hasClass('error') || $name.val().trim() == "") {
        $name.val('Campo obrigatório').addClass('error');
        $name.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    if ($email.hasClass('error') || $email.val().trim() == "") {
        $email.val('Campo obrigatório').addClass('error');
        $email.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    } else {
        if (!validateEmail($email.val())) {
            $email.val('E-mail inválido').addClass('error');
            $email.one('focus', function() {
               $(this).val('').removeClass('error');
            });
            valid = false;
        }
    }

    if ($message.hasClass('error') || $message.val().trim() == "") {
        $message.val('Campo obrigatório').addClass('error');
        $message.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    return valid;
}

function validateLease() {
    var valid = true,
        $name = $('#LeaseName'),
        $email = $('#LeaseEmail'),
        $phone = $('#LeasePhone'),
        $company = $('#LeaseCompanyName'),
        $trade = $('#LeaseTradeName'),
        $message = $('#LeaseMessage');

    if ($name.hasClass('error') || $name.val().trim() == "") {
        $name.val('Campo obrigatório').addClass('error');
        $name.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    if ($email.hasClass('error') || $email.val().trim() == "") {
        $email.val('Campo obrigatório').addClass('error');
        $email.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    } else {
        if (!validateEmail($email.val())) {
            $email.val('E-mail inválido').addClass('error');
            $email.one('focus', function() {
               $(this).val('').removeClass('error');
            });
            valid = false;
        }
    }

    if ($phone.hasClass('error') || $phone.val().trim() == "") {
        $phone.val('Campo obrigatório').addClass('error');
        $phone.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    if ($company.hasClass('error') || $company.val().trim() == "") {
        $company.val('Campo obrigatório').addClass('error');
        $company.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    if ($trade.hasClass('error') || $trade.val().trim() == "") {
        $trade.val('Campo obrigatório').addClass('error');
        $trade.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    if ($message.hasClass('error') || $message.val().trim() == "") {
        $message.val('Campo obrigatório').addClass('error');
        $message.one('focus', function() {
           $(this).val('').removeClass('error');
        });
        valid = false;
    }

    return valid;
}

function validateEmail(val) {
    var pattern = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
    return pattern.test(val);
}

function showMoviesMask(color, opacity) {
    var $mask = $('#movies-mask');
    var pos = $('.movies').position();
    $mask.css({height:$('.movies').height(),position:'absolute',top:pos.top,left:pos.left,marginTop:30});
    if (color) {
        $mask.css('backgroundColor',color);
    } else {
        $mask.css('backgroundColor','#ccc');
    }
    if (opacity) {
        $mask.css('opacity',opacity);
    } else {
        $mask.css('opacity','0.5');
    }
    $mask.fadeIn();
}

function hideMoviesMask() {
    $('#movies-mask').fadeOut();
}

function showMask(color, opacity) {
    $mask = $('#mask');
    $mask.css('height',$('body').height());
    if (color) {
        $mask.css('backgroundColor',color);
    } else {
        $mask.css('backgroundColor','#ccc');
    }
    if (opacity) {
        $mask.css('opacity',opacity);
    } else {
        $mask.css('opacity','0.5');
    }
    $mask.fadeIn();
}

function hideMask() {
    $('#mask').fadeOut();
}

function CufonReplaces() {
   Cufon.replace('#header .clock p', {autoDetect:true, hover:true});
   Cufon.replace('#content h1', {autoDetect:true, hover:true, textShadow: '#333 1px 1px 1px'});
   Cufon.replace('#content h2', {autoDetect:true, hover:true});
   Cufon.replace('#content .category-search label', {autoDetect:true, hover:true, textShadow: '#333 1px 1px 1px'});
   Cufon.replace('#content .newsletter p', {autoDetect:true, hover:true});
   //Cufon.replace('#share-frame p', {autoDetect:true, hover:true});
   Cufon.replace('#movies h2', {autoDetect:true, hover:true, textShadow: '#333 1px 1px 1px'});
   Cufon.replace('#movies .highlights h3', {autoDetect:true, hover:true, textShadow: '#333 1px 1px 1px'});
   Cufon.replace('#movies .info h3', {autoDetect:true, hover:true});
   Cufon.replace('#movies .read-more', {autoDetect:true, hover:true});
   Cufon.replace('#movies .back', {autoDetect:true});
   Cufon.replace('#posts .archive h3', {autoDetect:true, hover:true});
   Cufon.replace('#shopping .transport', {autoDetect:true, hover:true});
   Cufon.replace('#footer h4', {autoDetect:true, hover:true, textShadow: '#333 1px 1px 1px'});
   Cufon.replace('#nav a', {autoDetect:true, hover:true, textShadow: '#FFF 1px 1px 0px'});
}
