
function checkEmail($emailField)
{
  var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  if(!filter.test($emailField.val())) return false;
  else return true;
}

var $window = $(window);

$(document).ready(function()
{    
    // Initial window scroll position
    var window_height = $window.height();
    var window_width = $window.width();
    var window_ratio = window_width / window_height;
    var init_scroll = $window.scroll();
    
    var $text_content = $('#text_content');
    var $text_content_obj = $text_content.find('div.text-content');
    var $text_content_bg = $text_content.find('div.text-content-bg');
    

    
    // Main protagonist
    var $nav = $('#nav');
    var $nav_link = $nav.find('a');
    
    var $image_content = $('#image_content');
    var $parallax_bg = $image_content.find('div.parallax-bg');
    
    var $image_text_content = $parallax_bg.add($text_content_obj);
    
    // Background    
    var $home_img = $('#home_img');
    var $strategie_img = $('#strategie_img');
    var $civilian_img = $('#civilian_img');
    var $technical_img = $('#technical_img');
    var $training_img = $('#training_img');
    var $corporate_img = $('#corporate_img');
    var $contact_img = $('#contact_img');
    var $terms_img = $('#terms_img');
    
    // Text content     
    var $home = $('#home');
    var $strategic_business_development = $('#strategic_business_development');
    var $civilian_military_certification = $('#civilian_military_certification');
    var $technical_assistance = $('#technical_assistance');
    var $training_services = $('#training_services');
    var $corporate_customers = $('#corporate_customers');
    var $contact = $('#contact');
    var $terms_and_conditions = $('#terms_and_conditions');
      
    // Bg voile
    var $home_bg_voile = $home_img.find('img.bg-page');
    var $strategie_bg_voile = $strategie_img.find('img.bg-page');
    var $civilian_bg_voile = $civilian_img.find('img.bg-page');
    var $technical_bg_voile = $technical_img.find('img.bg-page');
    var $training_bg_voile = $training_img.find('img.bg-page');
    var $corporate_bg_voile = $corporate_img.find('img.bg-page');
    var $contact_bg_voile = $contact_img.find('img.bg-page');
    var $terms_bg_voile = $terms_img.find('img.bg-page');           
    
    // Bg fusee
    var $home_bg_fusee = $home_img.find('div.bg-fusee');
    var $strategie_bg_fusee = $strategie_img.find('div.bg-fusee');
    var $civilian_bg_fusee = $civilian_img.find('div.bg-fusee');
    var $technical_bg_fusee = $technical_img.find('div.bg-fusee');
    var $training_bg_fusee = $training_img.find('div.bg-fusee');
    var $corporate_bg_fusee = $corporate_img.find('div.bg-fusee');
    var $contact_bg_fusee = $contact_img.find('div.bg-fusee');
    var $terms_bg_fusee = $terms_img.find('div.bg-fusee');
      
    var $bg_fusee = $image_content.find('div.bg-fusee');
    var $bg_page = $image_content.find('img.bg-page');
    
    // Bg resize
    var $home_bg_resize = $home_img.find('div.bg-resize');
    var $strategie_bg_resize = $strategie_img.find('div.bg-resize');
    var $civilian_bg_resize = $civilian_img.find('div.bg-resize');
    var $technical_bg_resize = $technical_img.find('div.bg-resize');
    var $training_bg_resize = $training_img.find('div.bg-resize');
    var $corporate_bg_resize = $corporate_img.find('div.bg-resize');
    var $contact_bg_resize = $contact_img.find('div.bg-resize');
    var $terms_bg_resize = $terms_img.find('div.bg-resize');
    
    // Logo
    $logo_iea = $('#logo_iea');

    var $bg_resize = $image_content.find('img.bg-resize');
    
    if($window.scrollTop() != 0)
    {
        $.scrollTo(0, 500);
        document.location.hash = '#home';
    }
    
    // Resizable background
    function resizable_bg()
    {
        if($window.width() / $window.height() < window_ratio)
        {
            $bg_resize.removeClass('resizable-bg-full-width resizable-bg-full-height').addClass('resizable-bg-full-height');
        }
        else
        {
            $bg_resize.removeClass('resizable-bg-full-width resizable-bg-full-height').addClass('resizable-bg-full-width');
        }
    }
    
    // Home / End event
    $(document).keydown(function(e)
    {
        if(e.keyCode == 35)
        {
            // End
            e.preventDefault();
            $.scrollTo('#terms_and_conditions', 500);            
        }
        else if(e.keyCode == 36)
        {
            // Home
            e.preventDefault();
            $.scrollTo('#home', 500);
        }    
    });
    
    // CSS
    $.clearfix();
    $('div.centered-content').hAlign();
    $text_content_bg.height(window_height);
    $contact.find('div.input-bg').css('opacity', 0.7);
    $contact.find('input:button').hover(function()
    {
        $(this).toggleClass('input-btn-hover')
    });
    $image_text_content.height(window_height);
    $bg_fusee.not($home_bg_fusee).css('top', window_height);
    $bg_page.not($home_bg_voile).css('top', - window_height);
    //$parallax_bg.not($home_img).css('background-position', '50% ' + (-window_height)); 
    
    $image_text_content.bind('inview', function(e, visible, visibleX, visibleY)
    {
        var $this = $(this);
        var index = $this.index();
        
        if(visible)
        {
            $this.addClass('inview');
        }
        else
        {
            $(this).removeClass('inview');
        }
    });
    // Activate / Deactivate menu
    function active_menu(css_class, current_menu, old_menu, hash)
    {
        old_menu.removeClass(css_class);
        if(!current_menu.hasClass(css_class))
        {
            current_menu.addClass(css_class);
            //document.location.hash = hash;
        }
    }
    $nav_link.live('click', function(e)
    {
        active_menu('current', $(this), $nav_link);
    });
    
    /*** Parallax **/

    // Reposition the background
    function repos_bg(start, win_scroll, coef)
    {
        var final_pos = (parseInt(start - win_scroll)) * coef;

        //if(final_pos < 0) final_pos = - final_pos;
        return final_pos;
    }
    
    // Parallax
    function parallax()
    {
        //$logo_iea.fadeOut();

        var window_scroll = $window.scrollTop();
        var parent_offset, resize_final_pos, fusee_final_pos, voile_final_pos;
        var inview_index;
        
        var fusee_delay = 300, fusee_coef = 0.3;
        var voile_delay = 500, voile_coef = 0.5;
        var resize_delay = 100, resize_coef = 0.3;
        
        $parallax_bg.each(function(i)
        {
            
            var $this = $(this);
            if($this.hasClass('inview'))
            {
                var $current_bg_fusee = $this.find('div.bg-fusee');
                var $current_bg_voile = $this.find('img.bg-page');
                var $current_bg_resize = $this.find('img.bg-resize');

                parent_offset = $this.offset().top;

                fusee_final_pos = repos_bg(parent_offset, window_scroll, fusee_coef);
                if(fusee_final_pos < 0) fusee_final_pos = - fusee_final_pos;

                voile_final_pos = repos_bg(parent_offset, window_scroll, voile_coef);
                if(- voile_final_pos < 0) voile_final_pos = - voile_final_pos;

                resize_final_pos = repos_bg($this.offset().top, window_scroll, resize_coef);

                $current_bg_fusee.stop().animate({ top: fusee_final_pos }, fusee_delay);
                $current_bg_voile.stop().animate({ top: voile_final_pos }, voile_delay);
                $this.stop().animate({ backgroundPosition: '50% ' + resize_final_pos }, resize_delay);
                //$current_bg_resize.stop().animate({ top: -resize_final_pos }, resize_delay);
            }
        });
         if(window_scroll == 0)
        {
            $bg_fusee.not($home_bg_fusee).css('top', window_height);
            $bg_page.not($home_bg_voile).css('top', - window_height);
            
            active_menu('current', $nav_link.eq(0), $nav_link, '#home');
        }

        var inview_offset = $parallax_bg.filter('div.inview:last').offset();
        if(inview_offset != null)
        {
            if(window_scroll >= inview_offset.top - parseInt(window_height / 2))
            {
                inview_index = $parallax_bg.filter('div.inview:last').index('div.parallax-bg');
            }
            else
            {
                inview_index = $parallax_bg.filter('div.inview:first').index('div.parallax-bg');
            }
            var $current_menu = $nav.find('a').eq(inview_index);
            var $old_menu =$nav_link.not($current_menu);
            
            active_menu('current', $current_menu, $old_menu, $current_menu.attr('href'));
        }
    }
    
    // Trigger the parallax effect
    $window.bind('scroll', function()
    {
        parallax()
    }).bind('resize', function()
    {
        resizable_bg();
    }).trigger('resize');
    
    // Navigation scroll
    $('#nav').localScroll(
    {
        hash: true,
        onBefore: function(a, b)
        {
            var nav_index = $(b).index();
            
            setTimeout(function()
            {
                active_menu('current', $nav_link.eq(nav_index), $nav_link);
            }, 1000);
        }
    });
    $logo_iea.live('click', function(e)
    {
        e.preventDefault();
        $nav.find('a[href="#home"]').click();
    });
    
    // Video modal
    $('#home_video').live('click', function(e)
    {
        e.preventDefault();
        $('#home_video_display').modal_overlay(
        {
            onclose: function()
            {
                $.scrollTo(0, 500);
            }
        });
    });
    
    // Civilian multipage
    $civilian_military_certification.find('div.multi-text-content').equalHeights();
    $terms_and_conditions.find('div.multi-text-content').equalHeights();
    
    $('a.nav-multi-text').live('click', function(e)
    {
        e.preventDefault();
        
        var $this = $(this);
        var $civilian_content = $this.parents('div.multi-text-content');
        
        if($this.hasClass('nav-multi-text-next'))
        {
            var $inactive_civilian_content = $civilian_content.next('div.multi-text-content');
        }
        else if($this.hasClass('nav-multi-text-prev'))
        {
            var $inactive_civilian_content = $civilian_content.prev('div.multi-text-content');
        }
        
        if($inactive_civilian_content.length)
        {
            $civilian_content.fadeOut(function()
            {
                $inactive_civilian_content.fadeIn();
            });
        }
    });
    
    // Contact
    var $contact_form = $('#contact_form');
    var $required = $contact_form.find('.required');
    var $contact_msg = $('#contact_message');
    var def_val = [];
    
    $('#contact_form')[0].reset();
    $contact_form.find('input:text, textarea').blocus().removeClass('field-error');
    
    // Save default value
    $required.each(function(i)
    {
        var $this = $(this);

        def_val.push($this.val());
    });
    // Check form
    $('#contact_btn').live('click', function()
    {
        var message;
        var error = false;
        
        $required.each(function(i)
        {
            var $this = $(this);
            
            if($this.val() == def_val[i])
            {
                error = true;
                message = 'Field <strong>"' + $this.metadata().field + '"</strong> can\'t be empty';
                
                $this.focus();
                $contact_msg.html(message);
                
                return false;
            }
            if($this.is('#contact_email') && !checkEmail($('#contact_email')))
            {
                error = true;
                message = 'Wrong email address format';
                
                $this.focus();
                $contact_msg.html(message);
                
                return false;
            }
        });
        if(error)
        {
            return false;
        }
        else
        {
            $contact_msg.html('Sending...');
            var data = $contact_form.serialize();

            $.ajax(
            {
                data: data,
                dataType: 'json',
                type: 'POST',
                url: 'ajaxContact.php',
                success: function(msg)
                {
                    var response;
                    switch(msg.errCode)
                    {
                        case '0':
                            response = 'Error sending email, please retry later !';
                            break;
                            
                        case '1':
                            response = 'Error sending email reply, please retry later !';
                            break;

                        case '2':
                            response = 'Email sent, please check your inbox !';
                            break;

                        case '3':
                            response = 'Please, insert correct email address !';
                            break;
                            
                        case '4':
                            response = 'Please, fill all the field !';
                            break;

                        case '5':
                            response = 'Please, fill all the field !';
                            break;
                            
                        default:
                            response = 'Unknown error, please retry';
                            break;
                    }
                    $contact_msg.html(response);
                    $('#contact_form')[0].reset();
                }
            });
        }
    });
});


