"use strict";
function isOnScreen(elem) {
	// if the element doesn't exist, abort
	if( elem.length == 0 ) {
		return;
	}
	var $window = jQuery(window)
	var viewport_top = $window.scrollTop()
	var viewport_height = $window.height()
	var viewport_bottom = viewport_top + viewport_height
	var $elem = jQuery(elem)
	var top = $elem.offset().top
	var height = $elem.height()
	var bottom = top + height

	return (top >= viewport_top && top < viewport_bottom) ||
	(bottom > viewport_top && bottom <= viewport_bottom) ||
	(height > viewport_height && top <= viewport_top && bottom >= viewport_bottom)
}

// start custom scripts
(function($) {
jQuery(document).ready(function($){
    /*==========  Swicher ==========*/

    /*==========  Progress bar  ==========*/
    function animate() {
        $(".progress-bar").each(function(){
            var progressValue = $(this).attr('data-value');
            $(this).animate({width: progressValue +'%'}, 6000);
        });
    }
    function scrollToID(url, id, speed) {
        if(url!==null)
        {
            window.location.href = url;
        }
        var offSet = 50;
        var obj = jQuery(id).offset();
        var targetOffset = 0;
        if(jQuery(id).length)
        {
            targetOffset = jQuery(id).offset().top - offSet;
        }
        jQuery('html,body').animate({ scrollTop: targetOffset }, speed)
    }
    function backToPreviousLink()
    {
        var loc  = window.location;
        //response=successful
        var responseFrom = loc.hash.lastIndexOf('=') + 1;
        console.log(loc);
        if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'index.php' )
        {            
            if(loc.hash.substring( responseFrom, loc.hash.length ) == 'about')
            {
                 console.log($('#nvaigation ul > li').eq(1));
                $('.about-section').addClass('active').append('<span class="nav-active-mark"></span>');
            }
            else if(loc.hash.substring( responseFrom, loc.hash.length ) == 'our_partners')
            {
                console.log($('#nvaigation ul > li').eq(2));
                $('.our_partners-section').addClass('active').append('<span class="nav-active-mark"></span>');
            }
            else if(loc.hash.substring( responseFrom, loc.hash.length ) == 'contact')
            {
                 console.log($('#nvaigation ul > li').eq(3));
                $('.contact-section').addClass('active').append('<span class="nav-active-mark"></span>');
            }
            else
            {
                 console.log($('#nvaigation ul > li').eq(0));
                $('.intro-section').addClass('active').append('<span class="nav-active-mark"></span>');
            }
            
        }
        else if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'careers.php' )
        {
            console.log('careers page');
            $('.career-link').addClass('active').append('<span class="nav-active-mark"></span>');
        }
        else if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'apply.php' )
        {
           $('.career-link').addClass('active').append('<span class="nav-active-mark"></span>');
        }
        else if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'portfolio.php' )
        {
            $('.portfolio-link').addClass('active').append('<span class="nav-active-mark"></span>');
        }
        else if(loc.pathname.includes("/services") )
        {
            console.log('service page');
            $('.service-link').addClass('active').append('<span class="nav-active-mark"></span>');
        }
        else if(loc.pathname.includes("/industries") )
        {
            console.log('service page');
            $('.industries-link').addClass('active').append('<span class="nav-active-mark"></span>');
        }

    }
   //homepage
   var previousLink;
   var indexPeviousSelectedLink = 0;

    $('#navigation .service-link').on('click', function()
    {
        
        $(".nav-active-mark").parent().removeClass("active")
        $(".nav-active-mark").remove();
        
        $('#industriesMenu').css('display', 'none');
        $('#servicesMenu').toggle('active');
        if($('#header').hasClass('active_dropdown'))
        {
            if(previousLink != 'industries')
            {
                $('#header').removeClass('active_dropdown');
            }
            $(this).remove('.nav-active-mark').removeClass('active');  
            backToPreviousLink();
            previousLink = '';
        }
        else
        {

            $('#header').addClass('active_dropdown');
            $(this).addClass('active').append('<span class="nav-active-mark"></span>');
            previousLink = 'services';
        }

    });

    $('#navigation .industries-link').on('click', function()
    {
        
        $(".nav-active-mark").parent().removeClass("active")
        $(".nav-active-mark").remove();
        
        $('#servicesMenu').css('display', 'none');
        $('#industriesMenu').toggle('active');
        if($('#header').hasClass('active_dropdown'))
        {
            if(previousLink != 'services')
            {
                $('#header').removeClass('active_dropdown');
            }
            $(this).remove('.nav-active-mark').removeClass('active'); 
            backToPreviousLink();
            previousLink = '';
        }
        else
        {
            $('#header').addClass('active_dropdown');
            $(this).addClass('active').append('<span class="nav-active-mark"></span>');
            previousLink = 'industries';
        }

    });


    $('#mobile-navigation .service-link').click(function(event){
        event.stopPropagation();
        var mobileDrodown =  $(this).find('ul');
        if(mobileDrodown.is( ":hidden" ))
        {
           
            mobileDrodown.slideDown('slow');
            mobileDrodown.removeClass('active');
        }
        else
        {
           
            mobileDrodown.hide();
            mobileDrodown.addClass('active');
        }

    });
    $('#mobile-navigation .industries-link').click(function(event){
        event.stopPropagation();
        var mobileDrodown =  $(this).find('ul');
        if(mobileDrodown.is( ":hidden" ))
        {
           
            mobileDrodown.slideDown('slow');
            mobileDrodown.removeClass('active');
        }
        else
        {
            
            mobileDrodown.hide();
            mobileDrodown.addClass('active');
        }

    });
    //homepage end
    //career
    var expand = false;
    $('.position').on('click', function(ev) {
        //ev.preventDefault();

        $(this).find(".chev").toggleClass('chevron--down chevron--up');
        $(this).closest(".position-cont").find(".collapse").toggleClass("show");

        $(this).toggleClass("active"); //css({"background-color": "#993c95", "color": "white"});


        expand= !expand;
    });
    $('.chev').on('click', function(ev) {
        //ev.preventDefault();

        $(this).toggleClass('chevron--down chevron--up');
        $(this).closest(".position-cont").find(".collapse").toggleClass("show");

        $(this).closest(".position").toggleClass("active"); //css({"background-color": "#993c95", "color": "white"});


        expand= !expand;
    });
    //end career

    //apply
    // $(".resume-cont").click(function()
    // {
    //     $(".resume-file").click();
    // });
    if( $("#positions").length)
    {
        $("#positions").selectize({
            create: true,
            sortField: {
                field: 'text',
                direction: 'asc'
            },

        });
    }
    var resume = "";
    $("input:file").change(function (event){
        var fileName = $(this).val();


        var reader = new FileReader();

        reader.onload = function(e)
        {
            resume  = e.target.result;
        }
        reader.readAsDataURL(this.files[0]);
        var fileExtensionAt = fileName.lastIndexOf(".") + 1;
        var fileExtension = fileName.substring(fileExtensionAt, fileName.length);
        if(fileName!="" && fileExtension == "doc" || fileExtension == "docx" || fileExtension == "pdf")
        {
            var from = fileName.lastIndexOf("\\") + 1;
            var to = fileName.length ;
            fileName = fileName.substring(from, to);
        }
        else{
            fileName="Choose file";
        }
        $(".resume-file-cont label").html(fileName);

      });
    $(".btn-delete-file").click(function(e)
    {
        e.preventDefault();
        $(".resume-file-cont label").html("Choose file");
    });
    var btn_apply  = $("#apply-submit");
    var apply_form = $("#apply-form");

    apply_form.bind('submit',  function(ev) {
        ev.preventDefault();

        var resume_file = document.getElementById("resume-file").files[0];
        var data = new FormData(document.getElementById("apply-form"));
        data.append("resume", "'" + resume + "'");
        data.append("resume-file", resume_file);
        

        $.ajax({
            url: "job_apply.php?call=upload",
            method: "POST",
            data: data,
            contentType: false,
            cache: false,
            processData:false,
            success : function(data) {
                               
                window.location.replace("careers.php?response=successful");
                
            },
            error: function(error)
            {
                console.log(console.error);
            }

          });

    });

   



    //apply end
    //contact form

    var contact_form = $("#contact-form");
    var contact_button = jQuery("#contact-form #submit");
    var status = jQuery(".log");

    

    contact_form.bind('submit', function(event)
    {
        event.preventDefault();
        
        var data = new FormData(document.getElementById("contact-form"));
        
        $.ajax({
            url: "contact_form.php",
            method: "POST",
            data: data,
            contentType: false,
            cache: false,
            processData:false,
            success : function(data) {
                               
              window.location.replace("index.php");
                
            },
            error: function(error)
            {
                console.log(console.error);
            }

          });
        
    });
 
    

    $('.clear_storage').on('click', function(e){
        window.localStorage.clear();
    });


    var get_id = localStorage.getItem('pg_id');
    var setupUrl = false;
 // check page id, then scroll to its div
    if(get_id)
    {
        scrollToID(null, get_id, 300);
    }

    jQuery(document).ready(function()
    {
        var loc  = window.location;
        if(!get_id && loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'index.php' && !setupUrl)
        {
            var sectionType = window.location.hash;
            
            var id = sectionType.substr(sectionType.indexOf('=') + 1, sectionType.length );
            id+="-section";
            if(id != "" && id != null)
            {
                var nav_link = "#navigation ."+ id +" > a";
                var item = $(nav_link);
                item.trigger('click');                
                setupUrl  =true;;
            }
        }
    });
    $("#back-to-top").on('click', function()
    {
        $(window).scrollTop(0);
        $(this).removeClass('active');
    });
 // click event to scroll to div
 //section link in nav which refer to section on homepage
    $('.home_link').on('click', function(e){
        e.preventDefault();
        var id = '#'+$(this).data('id');
        localStorage.setItem('pg_id', id);
        var url = $(this).attr("href");
        scrollToID(url, id, 300);


    });
  //Link from our partners section on homepage which refer to section on portfolio page
    $('.partners_link').on('click', function(e){
        e.preventDefault();
        var id = '#'+$(this).data('id');
        localStorage.setItem('pg_id', id);
        var url = $(this).attr("href");
        scrollToID(url, id, 300);

    });



    var siteUrl  = window.location.hash;
    window.addEventListener('scroll', function(e) {
        if($( document ).width() <= 768)
        {
            $("#back-to-top").addClass("active");
        }

        if($( document ).scrollTop() == 0)
        {
            $("#back-to-top").removeClass("active");
        }

        var loc  = window.location;
        if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'index.php')
        {
            var newUrl = "";
            if( isOnScreen( $( '#intro-section' ) ) ) { /* Pass element id/class you want to check */
                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.intro-section").addClass("active").append('<span class="nav-active-mark"></span>');

                //newUrl = siteUrl.substring(0, siteUrl.indexOf("/"));
                parent.location.hash = "?section=intro";
            }
            if( isOnScreen( $( '#about-section' ) ) ) { /* Pass element id/class you want to check */

                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.about-section").addClass("active").append('<span class="nav-active-mark"></span>');

                parent.location.hash = "?section=about";
               
            }
            if( isOnScreen( $( '#our_partners-section' ) ) ) { /* Pass element id/class you want to check */

                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.our_partners-section").addClass("active").append('<span class="nav-active-mark"></span>');

               
                parent.location.hash = "?section=our_partners";
            }
            if( isOnScreen( $( '#services-section' ) ) ) { /* Pass element id/class you want to check */

                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.services-section").addClass("active").append('<span class="nav-active-mark"></span>');

                
                parent.location.hash = "?section=services";
            }
            if( isOnScreen( $( '#teams-wrap' ) ) ) { /* Pass element id/class you want to check */

                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.teams-wrap").addClass("active").append('<span class="nav-active-mark"></span>');

                newUrl = siteUrl.substring(0, siteUrl.lastIndexOf("/")  -1) + "teams-wrap";
                parent.location.hash = "?section=teams"
            }
            if( isOnScreen( $( '#contact-section' ) ) ) { /* Pass element id/class you want to check */

                $("nav li.active").removeClass("active").find('.nav-active-mark').remove();
                $("nav li.contact-section").addClass("active").append('<span class="nav-active-mark"></span>');

               
                parent.location.hash = "?section=contact"
            }
            
        }
    });

    //careers

    var loc  = window.location;
    //response=successful
    var responseFrom = loc.search.lastIndexOf('=') + 1;

    if(loc.pathname.substring(loc.pathname.lastIndexOf('/') + 1, loc.pathname.length) == 'careers.php' && loc.search.substring( responseFrom, loc.search.length ))
    {
        $('.background-overlay').addClass('active');
        $('.apply-notification').addClass('active');
 
    }
    $('.close-notification').click(function()
        { 
            window.location.replace("careers.php");

        }
    )

    //careers end
    /*==========  Disables ==========*/
    if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
        $('#animate_css_file, #wow_js_file').remove();
    } else {

        /*==========  WOW Animations  ==========*/
        var wow = new WOW(
          {
            animateClass: 'animated',
            offset:       100
          }
        );
         wow.init();

    }

    /*==========  Logo Retina ==========*/
    if( window.devicePixelRatio > 1 ) {
        var logoWidth = $('#logo img').width();
        var logoHeight = $('#logo img').height();
        $('#logo img').attr("src", "images/logo@2x.png");
        $('#logo img').css({ 'width': logoWidth , 'height': logoHeight });
    }

    /*==========  Team Item Hover  ==========*/
        $('.team-item').each(function(){
        var memberImage = $(this).find('.member-face').attr('style');
        var current = $(this).find('.change-color');
        $(this).find('.hex-in2.outer-hex').first().hover(function(){
            $(this).find('.member-face').css('background','#000');
            $(current).css('background-color','#f3b202');
            $(this).find('.socials').show();
        },function(){
            $(this).find('.socials').hide();
            $(this).find('.member-face').attr('style', memberImage);
            $(current).css('background-color','#000');
        });
        });

    /*==========  Gallery Item Hover  ==========*/

    $('.gallery-item').hover(function(){
        $(this).find('.gallery-info').stop(true,true).animate({ "top": "0" } );
    },function(){
        $(this).find('.gallery-info').stop(true,true).animate({ "top": "-999" } );
    });



    /*==========  Pie Chart  ==========*/
    $('.days').waypoint(function() {
        $('.chart').easyPieChart({
            easing: 'easeOutBounce',
            barColor: '#f3b202',
            trackColor: '#595959',
            lineWidth: '18',
            lineCap: 'butt',
            size: '160',
            scaleColor: false,
            onStep: function(from, to, percent) {
                $(this.el).find('.percent').text(Math.round(percent));
            }
        });
    });

    /*==========  Smooth Scroll  ==========*/
    $('a[href*=#]:not([href=#])').click(function() {
        $("li.active").removeClass("active").find('.nav-active-mark').remove();
        $("#navigation ul > li").each( function(index)
        {
            var selected  = $(this).find(".nav-active-mark");
            if(selected.length)
            {
                indexPeviousSelectedLink = index +1;
                console.log(indexPeviousSelectedLink);
            }
        });    
        $(this).parent().addClass('active').end().append('<span class="nav-active-mark"></span>');
            
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
          var target = $(this.hash);
          target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
          if (target.length) {
            $('html,body').animate({
              scrollTop: target.offset().top - 53
            }, 1000);
            return false;
          }
        }
    });

    /*==========  Graph Bars Animate  ==========*/
    $('.days').waypoint(function() {
        $('.graph ul li.bar').each(function() {
            var curBarHeight = $(this).data('bar-height');
            $(this).animate({ height: curBarHeight }, 2000, "easeInOutBack");
        });
    });

    /*==========  Intro Note Box Tooltip  ==========*/
    /*$('.note-1').hover(function(){
        $(this).find('.note-tooltip').fadeIn();
    },function(){
        $(this).find('.note-tooltip').fadeOut();
    });
    */

    /*==========  PrettyPhoto  ==========*/
    $("a[data-rel^='prettyPhoto']").prettyPhoto({theme:'dark_rounded', hook: 'data-rel'});

    /*==========  Flickr  ==========*/
    var flickrImageSrc = [ ];
    var flickrLink = [ ];
    $('.flickr_badge_image').each(function(i){
        flickrImageSrc[i] = $(this).find('img').attr('src');
        flickrLink[i] = $(this).find('a').attr('href');
    });
    $('.flickr-item').each(function(i){
        $(this).find('.hex-area').css('background-image', 'url(' + flickrImageSrc[i] + ')');
        $(this).find('.flickr-link').attr('href', flickrLink[i] );
    });

    /*==========  Window Resize  ==========*/
    var windowWidth = $(window).width();
    var numberOfHexagon = windowWidth / 106;
    var offsetBackground = ((numberOfHexagon - 14) * 106 ) /2;
    $('#hexagon-overlay').css('background-position', offsetBackground + 'px' + ' ' + 'top');

    $(window).resize(function() {
      var currentWindowWidth = $(window).width();
      if(currentWindowWidth <= 940) return;
      $('#hexagon-overlay').css('background-position', - ( ( (windowWidth - currentWindowWidth)/2 ) - offsetBackground ) + 'px' + ' ' + 'top');
    });

    /*==========  Mobile Menu  ==========*/
    $('.mobile-nav-toggle').on('click',function(){
        if($(this).attr('class') == 'mobile-nav-toggle deactive') {
            $('#mobile-navigation').fadeIn();
            $(this).removeClass('deactive');
        } else {
            $('#mobile-navigation').fadeOut();
            $(this).addClass('deactive');
        }
    });

    $("#mobile-navigation li:not(.service-link):not(.industries-link) a").on("click", function(){
        $('#mobile-navigation').fadeOut();
        $(".mobile-nav-toggle").addClass('deactive');

    });

    $(window).resize(function(){
                var w = $(window).width();
                if(w > 767) {
                    $('#mobile-navigation').fadeOut();
                    $(".mobile-nav-toggle").addClass('deactive');
                }
            });

    /*==========  Contact Form Validation  ==========*/

    function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
    }

   
 /*==========  FlexSlider  ==========*/
    $('.flexslider').flexslider({
        animation: "fade",
        animationLoop: false,
        directionNav: false,
        slideshow: false
    });

   

}); // end jquery init
})(jQuery);

    var verifyCallbackApply = function(response) {
        return new Promise(function(resolve, reject) {
            if (response) {
                //jQuery("#apply-form").submit();
                $('#apply-submit').removeAttr('disabled');
            }
        });
    };
    var verifyCallbackContact = function(response) {
        return new Promise(function(resolve, reject) {
            if (response) {
                //jQuery("#apply-form").submit();
                $('#contact-form #submit').removeAttr('disabled');
            }
        });
    };
    var onloadCallback = function () {
        
        if (jQuery('#googlecapatcha_apply').length) {
            recaptcha = grecaptcha.render('googlecapatcha_apply', {
                'sitekey': "6Lc3Bt8ZAAAAACPv1F98oFvwPOYVyvWvmN1HYkrS",
                'theme': 'light',
                'callback': verifyCallbackApply
            });
        }
        if (jQuery('#googlecapatcha_contact').length)
        {
            recaptcha = grecaptcha.render('googlecapatcha_contact', {
                'sitekey': "6Lc3Bt8ZAAAAACPv1F98oFvwPOYVyvWvmN1HYkrS",
                'theme': 'light',
                'callback': verifyCallbackContact
            });
        }

    };
