(function($) {
"use strict";
jQuery(document).ready(function() {
/* ============== DETECT MOBILE DEVICES ============== */
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
/* ============== PRELOADER ============== */
jQuery(window).load(function() {
jQuery('#preloader').fadeOut(300);
});
// In this place you can put all run scripts
/* ============== TYPED HEADER ============== */
jQuery('.typed').typed({
strings: ["Création Web", "Développement Web responsive","Applications mobiles", "Gestion de projet", "Consulting technique et ergonomique"],
typeSpeed: 50,
backSpeed: 50,
loop: true,
backDelay: 5000,
startDelay: 500
});
/* ============== REVOLUTION SLIDERS ============== */
jQuery('.rev-banner').revolution({
delay: 9000,
startWithSlide: 0,
fullScreen: "off",
autoHeight: "off",
startwidth: 960,
startheight: 650,
navigationType:"none",
shadow: 0
});
jQuery('.rev-banner-2').revolution({
delay: 9000,
startWithSlide: 0,
fullScreen: "off",
autoHeight: "off",
startwidth: 960,
startheight: 340,
navigationType:"none",
shadow: 0
});
/* ============== GO TO HASH ============== */
jQuery(window).load(function() {
if (window.location.hash) {
var hash = window.location.hash;
jQuery('html, body').animate({scrollTop: jQuery(hash).offset().top - height_menu - 50});
}
});
/* ============== MENU ============== */
var windows_top = jQuery(window).scrollTop();
var height_menu = jQuery('#main-menu').height();
var size;
if (jQuery('body.blog, body.portfolio').length > 0) {
size = 0.3;
}
else
size = 0.8;
jQuery('#main-menu.effect-on').addClass('menu-visible');
jQuery('#main-menu').localScroll({
offset: {top: -height_menu},
duration: 1000
});
jQuery('#side-menu').localScroll();
// Current menu item desktop menu
$.currentItem();
jQuery(window).scroll(function() {
$.currentItem();
});
// Sticky Menu
jQuery('.sticky').sticky({topSpacing:0});
// Mobile menu
jQuery('#mobile-button').click(function() {
if (jQuery('#mobile-menu .menu-container').css('display') == 'none')
jQuery('#mobile-menu .menu-container').slideDown(300);
else
jQuery('#mobile-menu .menu-container').slideUp(300);
});
jQuery('#mobile-menu a').click(function() {
var parent_menu = jQuery(this).parent();
if(jQuery('> .sub-menu', parent_menu).length == 0) jQuery('#mobile-menu .menu-container').slideUp(300);
});
// Sub-Menu
jQuery('#main-menu .desktop-menu .menu-container li').hover(function() {
jQuery('> .sub-menu', this).stop().show();
}, function() {
jQuery('> .sub-menu', this).stop().hide();
});
// Mobile Menu
jQuery('#mobile-menu li').each(function() {
if(jQuery('.sub-menu', this).length > 0) {
jQuery(this).append('');
}
});
jQuery('#mobile-menu li a').click(function() {
var parent_mobile = jQuery(this).parent();
if(jQuery(this).attr('href') == '#') {
if(jQuery('> .sub-menu', parent_mobile).length > 0 && jQuery('> .sub-menu', parent_mobile).css('display') == 'none') {
jQuery('> .sub-menu', parent_mobile).slideDown(300);
return false;
}
else if(jQuery('> .sub-menu', parent_mobile).length > 0 && jQuery('> .sub-menu', parent_mobile).css('display') == 'block') {
jQuery('> .sub-menu', parent_mobile).slideUp(300);
return false;
}
else {
return false;
}
}
});
/* ============== PARALLAX EFFECTS ============== */
if (!isMobile.any()) {
if (jQuery('.parallax').length) {
jQuery('.parallax').each(function() {
jQuery(this).parallax('50%', "0.1");
});
}
}
/* ============== ANIMATION EFFECTS ============== */
jQuery('[data-animate]').appear(function () {
var my_animation = jQuery(this).data('animate');
if (!isMobile.any()) {
jQuery(this).addClass('animated');
jQuery(this).addClass(my_animation);
}
});
/* ============== PORTFOLIO ============== */
var $container = jQuery('#portfolio-items');
var layout;
if($container.parent().hasClass('portfolio-type-3')) layout = 'fitRows';
else layout = 'masonry';
$container.isotope({
itemSelector: '.item',
transitionDuration: '1s',
layoutMode: layout,
});
jQuery(window).load(function() {
$container.isotope('layout');
});
$container.isotope('layout');
jQuery('#portfolio-container nav li a').click(function() {
jQuery('#portfolio-container nav li').removeClass('current-category');
var filterValue = jQuery(this).attr('data-filter');
$container.isotope({filter: filterValue});
jQuery(this).parent().addClass('current-category');
return false;
});
// Position image hover
var height_desc;
jQuery('.portfolio-type-1 .item, .portfolio-type-4 .item').hover(function() {
if (!isMobile.any()) {
height_desc = parseInt(jQuery('.portfolio-info', this).css('height'), 10);
jQuery('.portfolio-info', this).css({
bottom: -height_desc,
visibility: 'visible',
});
jQuery('.portfolio-info', this).css('bottom', 0);
jQuery('img', this).css({top: -(height_desc / 2)});
}
}, function() {
if (!isMobile.any()) {
jQuery('img', this).css({top: 0});
jQuery('.portfolio-info', this).css('bottom', -height_desc);
}
});
jQuery(window).on("debouncedresize", function(event) {
$container.isotope('layout');
jQuery('.portfolio-info').css({
visibility: 'hidden'
});
});
jQuery(document).on('click touchstart', '#close-portfolio', function() {
jQuery('#portfolio-display').slideUp(1000);
return false;
});
// Show portfolio type 2
jQuery('.portfolio-type-2, .portfolio-type-4').appear(function() {
jQuery('.item',this).each(function(i, el){
setTimeout(function(){
jQuery('img, .portfolio-info-2, .portfolio-info', el).css({
opacity: 1
}, 200);
},300 + ( i * 300 ));
});
});
/* ============== FORM VALIDATE ============== */
var personal = jQuery('input[name="personal"]');
var email = jQuery('input[name="email"]');
var subject = jQuery('input[name="subject"]');
var message = jQuery('textarea[name="message"]');
var errors;
function validateEmail(sEmail) {
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (filter.test(sEmail))
return true;
else
return false;
}
if (jQuery('.contact-ajax').length > 0)
jQuery('.contact-ajax')[0].reset();
jQuery('.contact-ajax').submit(function() {
errors = 0;
var formInput = jQuery(this).serialize();
if (personal.val() == '') {
personal.addClass('error');
errors++;
}
else {
personal.removeClass('error');
}
if (email.val() == '' || !validateEmail(email.val())) {
email.addClass('error');
errors++;
}
else {
email.removeClass('error');
}
if (message.val() == '') {
message.addClass('error');
errors++;
}
else {
message.removeClass('error');
}
if (subject.val() == '') {
subject.addClass('error');
errors++;
}
else {
subject.removeClass('error');
}
// Success validate
if (errors == 0) {
jQuery('.contact-ajax button[type="submit"], .contact-ajax input').attr('disabled', 'disabled');
$.ajax({
type: "POST",
url: 'assets/php/contact_form/',
data: formInput,
success: function(response) {
if (response == "success")
{
$(".contact-ajax > div").slideUp(500);
$("#success-message").slideDown(500);
}
else {
$("#error-message").slideDown(500);
}
}
});
}
return false;
});
/* ============== COUNTDOWN ============== */
jQuery('.countdown').appear(function() {
$('span', this).countTo();
});
/* ============== FIT VIDEOS ============== */
jQuery('.fit').fitVids();
/* ============== POST SLIDESHOW ============== */
jQuery('.media ul').responsiveSlides({
nav: true, // Boolean: Show navigation, true or false
prevText: '', // String: Text for the "previous" button
nextText: '' // String: Text for the "next" button
});
/* ============== PROGRESS BAR ============== */
jQuery('.progress-bar').appear(function() {
var progress = jQuery(this).data('progress');
jQuery('.bar-fill', this).animate({
width: progress + '%'
});
jQuery('.bar-fill > span', this).fadeIn(2000);
jQuery('span span', this).countTo();
});
/* ============== TESTIMONIALS ============== */
if (jQuery('.testimonials').length) {
jQuery('.testimonials').each(function() {
jQuery('ul', this).bxSlider({
adaptiveHeight: true,
pause: 10000,
auto: true,
controls: false
});
});
}
/* ============== CLIENTS ============== */
if (jQuery('.clients-slider').length) {
jQuery('.clients-slider').each(function() {
$(this).bxSlider({
minSlides: 2,
maxSlides: 4,
slideWidth: 300,
moveSlides: 1,
auto: true,
pager: false,
controls: false,
slideMargin: 10
});
});
}
/* ============== PRETTY PHOTO ============== */
jQuery('a[data-gal="prettyPhoto"]').prettyPhoto({
deeplinking:false
});
/* ============== SMOOTH SCROLL ============== */
jQuery('.smooth-scroll').click(function() {
var target_scroll = jQuery(this).attr('href');
jQuery('html, body').animate({scrollTop: jQuery(target_scroll).offset().top - height_menu}, 1000);
return false;
});
/* ============== INFOBOX 2 ANIMATION ============== */
jQuery('.infobox-2').hover(function() {
jQuery(this).addClass('infobox-2-hover');
}, function() {
jQuery(this).removeClass('infobox-2-hover');
});
/* ============== INFOBOX 3 ANIMATION ============== */
jQuery('.section').appear(function() {
jQuery('.infobox-3',this).each(function(i, el){
setTimeout(function(){
jQuery('i', el).css({
opacity: 1
}, 500);
},500 + ( i * 300 ));
});
});
/* ============== ACCORDIONS ============== */
jQuery('.accordions > div').click(function() {
var parent_accordion = jQuery(this).parent();
if(jQuery('> span', this).css('display') == 'none') jQuery('> span', this).slideDown(600);
else jQuery('> span', this).slideUp(600);
});
/* ============== TABS ============== */
jQuery('.tabs nav ul').each(function() {
var $ul = jQuery(this);
var $li = $ul.children('li');
$li.each(function() {
var $trescTaba = $($(this).children('a').attr('href'));
if (jQuery(this).hasClass('active-tab')) {
$trescTaba.show();
} else {
$trescTaba.hide();
}
});
$li.click(function() {$(this).children('a').click();});
$li.children('a').click(function() {
$li.removeClass('active-tab');
$li.each(function() {
jQuery(jQuery(this).children('a').attr('href')).hide();
jQuery(jQuery(this).children('a').attr('href')).removeClass('animated');
jQuery(jQuery(this).children('a').attr('href')).removeClass('fadeIn');
});
jQuery(this).parent().addClass('active-tab');
jQuery(jQuery(this).attr('href')).show();
jQuery(jQuery(this).attr('href')).addClass('animated');
jQuery(jQuery(this).attr('href')).addClass('fadeIn');
return false;
});
});
var targets = 0;
if(jQuery('.tabs-2').length) {
jQuery('.tabs-2').each(function() {
jQuery('a', this).each(function() {
var target_tab = jQuery(this).attr('href');
if(targets == 0)
jQuery(target_tab).css('display','block');
else
jQuery(target_tab).css('display','none');
targets++;
});
targets = 0;
});
}
jQuery('.tabs-2 a').click(function() {
var parent_tab = jQuery(this).parent();
var current_tab = jQuery(this).attr('href');
var target_hidden;
jQuery('a', parent_tab).each(function() {
target_hidden = jQuery(this).attr('href');
jQuery(target_hidden).css('display', 'none');
});
jQuery(current_tab).css('display', 'block');
return false;
});
$(".popup_projet").fancybox({
//maxWidth : 800,
//maxHeight : 600,
fitToView : false,
width : '90%',
height : '95%',
autoSize : false,
closeClick : false,
openEffect : 'fade',
closeEffect : 'elastic'
});
});
})(jQuery);