var FIRANGE = FIRANGE || {
    init: function() {
        var image_url = $('#background').find('img').attr('src'),
            $body = $('body');

        if ( image_url ) {
            $.backstretch(image_url);
        } else {
            $('#backstretch').remove();
        }

        $('#accordion').accordion({ autoHeight: false });
        $("#menu").superfish({
            hoverClass:    'sfHover',
            pathClass:     'overideThisToUse',
            pathLevels:    1,
            delay:         800,
            animation:     {opacity:'show'},
            speed:         'normal',
            autoArrows:    false,
            dropShadows:   true
        });

        this.set_page();
    },
    gallery: function() {
        if ($('#slider').length) {
            $('#slider').after('<div id="paginator">').cycle({
                fx:       'scrollHorz',
                speed:     '180',
                timeout:   0,
                pager:     '#paginator',
                next:      '#next',
                prev:      '#prev'
            });
        }

        $('div#gallery ul li:first-child').addClass('first');
        $('div#gallery ul li:last-child').addClass('last');

        $("div#gallery ul li a").each( function(){
           $(this).prepend('<span></span>', '<div class="galleryOverlay"></div>');
        });

        if(!$.browser.msie){
            $("div#gallery ul li a span").hover( function(){
                $(this).stop().parent().find('.galleryOverlay').fadeOut(320)
                $(this).animate({ width: 154, height: 180, top: 0, left: 0}, 120);
            }, function(){
                $(this).stop().parent().find('.galleryOverlay').fadeIn(320);
                $(this).animate({ width: 172, height: 198, top: -10, left: -10}, 120);
            });
        }

        $("#slider li a").fancybox({
            titleShow:      false,
            padding:        0,
            overlayOpacity: 0.5
        });
    },
    contact: function() {
        $("#popup").fancybox({
            'easingIn': 300, 'easingOut': 300, 'overlayShow': false, 'padding': 30, 'frameHeight': 500
        });

        // Form stuff
        $('form#contact div.fieldHolder input, form#contact div.textHolder textarea')
            .focus(function () {
                $(this).parent().addClass('focus');
            })
            .blur(function () {
                $(this).parent().removeClass('focus');
            });

        // Send form
        $('#contact').submit( function() {
            var $this = $(this),
                $feedback = $('#feedback'),
                $preloader = $('#preloader');

            $preloader.fadeIn();
            $feedback.hide();

            $.post('../assets/mail/contact.php', $this.serialize(), function(response) {
                $feedback.html(response).fadeIn();
                $preloader.hide();

                setTimeout( function() {
                    $feedback.fadeOut();
                }, 10000);
            });

            return false;
        });
    },
    get_page: function(path) {
        var self = this;

        $.blockUI();
        $('#wrapper').load( '../assets/ajax/get-page.php', {path: path, lang: FIRANGE.get_lang()}, function(response, status, xhr) {
            self.init();
            $.unblockUI();
        });
    },
    set_page: function() {
        var path = $.address.pathNames()[0],
            $body = $('body');

        $body.removeClass();
        if ( !path || path === 'home' || path === 'index' ) {
            $body.addClass('home');
        } else if ( path === 'contact' || path === 'kontakt' ) {
            $body.addClass('contact');
            this.contact();
        } else if ( path === 'reference' || path === 'references') {
            $body.addClass('references');
        } else {
            $body.addClass('offer');
            this.gallery();
        }
    },
    get_lang: function() {
        var url = $.address.baseURL().split('/');
        return url[url.length - 1];
    }
}

$(document).ready(function(){
    FIRANGE.init();

    $.address.change(function(e) {
        FIRANGE.get_page( $.address.path() );
    });

    $.blockUI.defaults.baseZ = 500;
    $.blockUI.defaults.message = '<div id="ui-block-load"></div>';
    $.blockUI.defaults.overlayCSS.backgroundColor = '#000';
    $.blockUI.defaults.overlayCSS.opacity = .3;

    $.blockUI.defaults.css = {
        padding:        0,
        margin:         0,
        width:          '30%',
        top:            '40%',
        left:           '35%',
        textAlign:      'center',
        color:          '#000',
        border:         '',
        backgroundColor:'',
        cursor:         'default'
    };
    $.blockUI.defaults.onBlock = function() {
        var opts, target, spinner;

        opts = {
            lines: 12,
            length: 15,
            width: 9,
            radius: 30,
            color: '#fff',
            speed: 1,
            trail: 60,
            shadow: false
        };

        $('#ui-block-load').spin( opts );
    };
});

$.fn.spin = function(opts) {
  this.each(function() {
    var $this = $(this),
        data = $this.data();

    if (data.spinner) {
      data.spinner.stop();
      delete data.spinner;
    }
    if (opts !== false) {
      data.spinner = new Spinner($.extend({color: $this.css('color')}, opts)).spin(this);
    }
  });
  return this;
};

