1/*jshint jquery:true */ 2 3$( window ).on( "load", function() { 4 "use strict"; 5 6 /* global google: false */ 7 /*jshint -W018 */ 8 9 /*-------------------------------------------------*/ 10 /* = portfolio isotope 11 /*-------------------------------------------------*/ 12 13 var winDow = $(window); 14 // Needed variables 15 var $container=$('.iso-call'); 16 var $filter=$('.filter'); 17 18 try{ 19 $container.imagesLoaded( function(){ 20 $container.trigger('resize'); 21 $container.isotope({ 22 filter:'*', 23 layoutMode:'masonry', 24 animationOptions:{ 25 duration:750, 26 easing:'linear' 27 } 28 }); 29 setTimeout(Resize, 1500); 30 }); 31 } catch(err) { 32 } 33 34 winDow.on('resize', function(){ 35 var selector = $filter.find('a.active').attr('data-filter'); 36 37 try { 38 $container.isotope({ 39 filter : selector, 40 animationOptions: { 41 duration: 750, 42 easing : 'linear', 43 queue : false, 44 } 45 }); 46 } catch(err) { 47 } 48 return false; 49 }); 50 51 // Isotope Filter 52 $filter.find('a').on('click', function(){ 53 var selector = $(this).attr('data-filter'); 54 55 try { 56 $container.isotope({ 57 filter : selector, 58 animationOptions: { 59 duration: 750, 60 easing : 'linear', 61 queue : false, 62 } 63 }); 64 } catch(err) { 65 66 } 67 return false; 68 }); 69 70 71 var filterItemA = $('.filter li a'); 72 73 filterItemA.on('click', function(){ 74 var $this = $(this); 75 if ( !$this.hasClass('active')) { 76 filterItemA.removeClass('active'); 77 $this.addClass('active'); 78 } 79 }); 80 81 /*-------------------------------------------------*/ 82 /* = nav animate 83 /*-------------------------------------------------*/ 84 85 var ToogleMenu = $('a.open-menu'); 86 87 ToogleMenu.on('click', function(event) { 88 event.preventDefault(); 89 90 var MainMenu = $('.navbar-nav'), 91 $this = $(this); 92 if ( !$this.hasClass('opened') ) { 93 $this.addClass('opened'); 94 MainMenu.addClass('active'); 95 } else { 96 $this.removeClass('opened'); 97 MainMenu.removeClass('active'); 98 } 99 }); 100 101 /*-------------------------------------------------*/ 102 /* = revolution slider 103 /*-------------------------------------------------*/ 104 105 try{ 106 107 var revapi202; 108 var revslider_showDoubleJqueryError; 109 110 if ($("#rev_slider_202_1").revolution === undefined) { 111 revslider_showDoubleJqueryError("#rev_slider_202_1"); 112 } else { 113 revapi202 = $("#rev_slider_202_1").show().revolution({ 114 sliderType: "standard", 115 jsFileLocation: "/js/", 116 sliderLayout: "auto", 117 dottedOverlay: "none", 118 delay: 9000, 119 navigation: { 120 keyboardNavigation: "off", 121 keyboard_direction: "horizontal", 122 mouseScrollNavigation: "off", 123 onHoverStop: "off", 124 touch: { 125 touchenabled: "on", 126 swipe_threshold: 75, 127 swipe_min_touches: 50, 128 swipe_direction: "horizontal", 129 drag_block_vertical: false 130 }, 131 bullets: { 132 enable: true, 133 hide_onmobile: true, 134 hide_under: 800, 135 style: "zeus", 136 hide_onleave: false, 137 direction: "horizontal", 138 h_align: "center", 139 v_align: "bottom", 140 h_offset: 0, 141 v_offset: 40, 142 space: 5, 143 tmp: '<span class="tp-bullet-image"></span><span class="tp-bullet-imageoverlay"></span><span class="tp-bullet-title">{{title}}</span>' 144 } 145 }, 146 responsiveLevels: [1140, 1024, 778, 480], 147 visibilityLevels: [1140, 1024, 778, 480], 148 gridwidth: [1140, 1024, 778, 480], 149 gridheight: [700, 700, 600, 600], 150 lazyType: "none", 151 parallax: { 152 type: "scroll", 153 origo: "slidercenter", 154 speed: 1000, 155 levels: [5, 10, 15, 20, 25, 30, 35, 40, 45, 46, 47, 48, 49, 50, 100, 55] 156 }, 157 shadow: 0, 158 spinner: "off", 159 stopLoop: "on", 160 stopAfterLoops: 0, 161 stopAtSlide: 1, 162 shuffle: "off", 163 autoHeight: "off", 164 fullScreenAutoWidth: "off", 165 fullScreenAlignForce: "off", 166 fullScreenOffsetContainer: "", 167 fullScreenOffset: "101px", 168 disableProgressBar: "on", 169 hideThumbsOnMobile: "off", 170 hideSliderAtLimit: 0, 171 hideCaptionAtLimit: 0, 172 hideAllCaptionAtLilmit: 0, 173 debugMode: false, 174 fallbacks: { 175 simplifyAll: "off", 176 nextSlideOnWindowFocus: "off", 177 disableFocusListener: false, 178 } 179 }); 180 } 181 } catch(err) { 182 } 183 184 /*-------------------------------------------------*/ 185 /* = skills animate 186 /*-------------------------------------------------*/ 187 188 try{ 189 190 var skillBar = $('.skills-section'); 191 skillBar.appear(function() { 192 193 var animateElement = $(".meter > p"); 194 animateElement.each(function() { 195 $(this) 196 .data("origWidth", $(this).width()) 197 .width(0) 198 .animate({ 199 width: $(this).data("origWidth") 200 }, 1200); 201 }); 202 203 }); 204 } catch(err) { 205 } 206 207 /*-------------------------------------------------*/ 208 /* = OWL carousell 209 /*-------------------------------------------------*/ 210 try { 211 var owlWrap = $('.owl-wrapper'); 212 213 if (owlWrap.length > 0) { 214 215 if (jQuery().owlCarousel) { 216 owlWrap.each(function(){ 217 218 var carousel= $(this).find('.owl-carousel'), 219 dataNum = $(this).find('.owl-carousel').attr('data-num'), 220 dataNum2, 221 dataNum3; 222 223 if ( dataNum === 1 ) { 224 dataNum2 = 1; 225 dataNum3 = 1; 226 } else if ( dataNum === 2 ) { 227 dataNum2 = 2; 228 dataNum3 = dataNum - 1; 229 } else { 230 dataNum2 = dataNum - 1; 231 dataNum3 = dataNum - 2; 232 } 233 234 carousel.owlCarousel({ 235 autoPlay: 10000, 236 navigation : true, 237 items : dataNum, 238 itemsDesktop : [1199,dataNum2], 239 itemsDesktopSmall : [979,dataNum3], 240 itemsTablet : [768, dataNum3], 241 }); 242 243 }); 244 } 245 } 246 247 } catch(err) { 248 249 } 250 251 /* ---------------------------------------------------------------------- */ 252 /* Contact Map 253 /* ---------------------------------------------------------------------- */ 254 255 try { 256 var fenway = [42.345573,-71.098326]; //Change a map coordinate here! 257 var markerPosition = [42.345573,-71.098326]; //Change a map marker here! 258 $('#map') 259 .gmap3({ 260 center:fenway, 261 zoom: 13, 262 mapTypeId: "shadeOfGrey", // to select it directly 263 scrollwheel: false, 264 mapTypeControlOptions: { 265 mapTypeIds: [google.maps.MapTypeId.ROADMAP, "shadeOfGrey"] 266 } 267 }) 268 .styledmaptype( 269 "shadeOfGrey", 270 [ 271 {"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]}, 272 {"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]}, 273 {"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]}, 274 {"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]}, 275 {"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]}, 276 {"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]}, 277 {"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21}]}, 278 {"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":17}]}, 279 {"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":29},{"weight":0.2}]}, 280 {"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]}, 281 {"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]}, 282 {"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]}, 283 {"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]} 284 ], 285 {name: "Shades of Grey"}); 286 $('#map') 287 .gmap3({ 288 center: fenway, 289 zoom: 13, 290 mapTypeId : google.maps.MapTypeId.ROADMAP 291 }) 292 .marker({ 293 position: markerPosition, 294 icon: 'images/marker.png' 295 }); 296 } catch(err) { 297 298 } 299 /* ---------------------------------------------------------------------- */ 300 /* magnific-popup 301 /* ---------------------------------------------------------------------- */ 302 303 try { 304 // Example with multiple objects 305 $('.zoom').magnificPopup({ 306 type: 'image', 307 gallery: { 308 enabled: true 309 } 310 }); 311 312 } catch(err) { 313 314 } 315 316 /*-------------------------------------------------*/ 317 /* = flexslider 318 /*-------------------------------------------------*/ 319 320 try { 321 322 var SliderPost = $('.flexslider'); 323 324 SliderPost.flexslider({ 325 slideshowSpeed: 3000, 326 easing: "swing" 327 }); 328 } catch(err) { 329 330 } 331 332 /*-------------------------------------------------*/ 333 /* = slider Testimonial 334 /*-------------------------------------------------*/ 335 336 var slidertestimonial = $('.bxslider'); 337 338 try{ 339 slidertestimonial.bxSlider({ 340 mode: 'vertical' 341 }); 342 343 $('.slider-call').bxSlider({ 344 pagerCustom: '#bx-pager' 345 }); 346 347 $('.bxslider-posts').bxSlider(); 348 349 } catch(err) { 350 } 351 352 /*-------------------------------------------------*/ 353 /* = count increment 354 /*-------------------------------------------------*/ 355 try { 356 $('.statistic-post').appear(function() { 357 $('.timer').countTo({ 358 speed: 4000, 359 refreshInterval: 60, 360 formatter: function (value, options) { 361 return value.toFixed(options.decimals); 362 } 363 }); 364 }); 365 } catch(err) { 366 367 } 368 369 /*-------------------------------------------------*/ 370 /* = Tabs 371 /*-------------------------------------------------*/ 372 try { 373 $('#myTabs a').on('click', function (e) { 374 e.preventDefault(); 375 $(this).tab('show'); 376 }); 377 } catch(err) { 378 379 } 380 381 /*-------------------------------------------------*/ 382 /* = comming soon & error height fix 383 /*-------------------------------------------------*/ 384 385 $('.comming-soon-section').css('min-height', $(window).height() - $('.navbar-default').height()); 386 387 try { 388 389 $('#clock').countdown("2018/01/29", function(event) { 390 var $this = $(this); 391 switch(event.type) { 392 case "seconds":
393 case "minutes": 394 case "hours": 395 case "days": 396 case "daysLeft": 397 $this.find('span#'+event.type).html(event.value); 398 break; 399 case "finished": 400 $this.hide(); 401 break; 402 } 403 }); 404 405 } catch(err) { 406 407 } 408 409 /* ---------------------------------------------------------------------- */ 410 /* Contact Form 411 /* ---------------------------------------------------------------------- */ 412 413 var submitContact = $('#submit_contact'), 414 message = $('#msg'); 415 416 submitContact.on('click', function(e){ 417 e.preventDefault(); 418 419 var $this = $(this); 420 421 $.ajax({ 422 type: "POST", 423 url: 'contact.php', 424 dataType: 'json', 425 cache: false, 426 data: $('#contact-form').serialize(), 427 success: function(data) { 428 429 if(data.info !== 'error'){ 430 $this.parents('form').find('input[type=text],textarea,select').filter(':visible').val(''); 431 message.hide().removeClass('alert-success').removeClass('alert-danger').addClass('alert-success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow'); 432 } else { 433 message.hide().removeClass('alert-success').removeClass('alert-danger').addClass('alert-danger').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow'); 434 } 435 } 436 }); 437 }); 438 439 /* ---------------------------------------------------------------------- */ 440 /* Load more posts from container 441 /* ---------------------------------------------------------------------- */ 442 443 var LoadButton = $('a.load-post-container'), 444 PortContainer = ('.iso-call'), 445 i = 0, 446 s = 0; 447 448 LoadButton.on( 'click', function(event) { 449 event.preventDefault(); 450 451 var LoadContainer = $(this).attr('data-load'), 452 xel = parseInt($(this).attr('data-number'), 10); 453 454 var storage = document.createElement('div'); 455 $(storage).load("/load-container/" + LoadContainer + " .project-post, .blog-post", function(){ 456 457 var elemloadedLength = $(storage).find('.project-post, .blog-post').length; 458 459 if ( !((s + 1) > elemloadedLength) ) { 460 461 s = i + xel; 462 463 var t = i - 1; 464 var $elems; 465 466 if ( i === 0 ) { 467 /// create new item elements 468 $elems = $(storage).find(".project-post:lt(" + s + "), .blog-post:lt(" + s + ")").appendTo(PortContainer); 469 // append elements to container 470 $container.isotope( 'appended', $elems ); 471 recallMagnific(); 472 setTimeout(Resize, 200); 473 474 } else { 475 /// create new item elements 476 $elems = $(storage).find(".project-post:lt(" + s + "):gt("+ t +"), .blog-post:lt(" + s + "):gt("+ t +")").appendTo(PortContainer); 477 // append elements to container 478 $container.isotope( 'appended', $elems ); 479 recallMagnific(); 480 481 setTimeout(Resize, 200); 482 } 483 484 i = i + xel; 485 } 486 487 if ( !( s < elemloadedLength ) ) { 488 $('a.load-post-container').text("No more posts"); 489 } 490 491 }); 492 493 }); 494 495 /* ---------------------------------------------------------------------- */ 496 /* Header animate after scroll 497 /* ---------------------------------------------------------------------- */ 498 499 (function() { 500 501 var docElem = document.documentElement, 502 didScroll = false, 503 changeHeaderOn = 70; 504 document.querySelector( 'header, a.go-top' ); 505 function init() { 506 window.addEventListener( 'scroll', function() { 507 if( !didScroll ) { 508 didScroll = true; 509 setTimeout( scrollPage, 100 ); 510 } 511 }, false ); 512 } 513 514 function scrollPage() { 515 var sy = scrollY(); 516 if ( sy >= changeHeaderOn ) { 517 $( 'header' ).addClass('active'); 518 $( 'a.go-top' ).addClass('active'); 519 } 520 else { 521 $( 'header' ).removeClass('active'); 522 $( 'a.go-top' ).removeClass('active'); 523 } 524 didScroll = false; 525 } 526 527 function scrollY() { 528 return window.pageYOffset || docElem.scrollTop; 529 } 530 531 init(); 532 533 })(); 534 535}); 536 537/* ---------------------------------------------------------------------- */ 538 /* magnific-popup function 539 /* ---------------------------------------------------------------------- */ 540function recallMagnific(){ 541 $('.zoom').magnificPopup({ 542 type: 'image', 543 gallery: { 544 enabled: true 545 } 546 }); 547} 548 549function Resize() { 550 $(window).trigger('resize'); 551}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.