1"use strict"; 2 3function cws_uniq_id ( prefix ){ 4 var prefix = prefix != undefined && typeof prefix === 'string' ? prefix : ""; 5 var d = new Date(); 6 var t = d.getTime(); 7 var unique = Math.random() * t; 8 var unique_id = prefix + unique; 9 return unique_id; 10} 11function cws_has_class ( el, cls_name ){ 12 var re = new RegExp( "(^|\\s)" + cls_name + "(\\s|$)", 'g' ); 13 return re.test( el.className ); 14} 15function cws_add_class ( el, cls_name ){ 16 if(!el){ 17 return false; 18 } 19 el.className = el.className.length ? el.className + " " + cls_name : cls_name; 20} 21function cws_remove_class ( el, cls_name ){ 22 var re = new RegExp( "\\s?" + cls_name, "g" ); 23 el.className = el.className.replace( re, '' ); 24} 25 26/*--------- CWS_RESPONSIVE_SCRIPTS ----------*/ 27function is_mobile_device(){ 28 if ( navigator.userAgent.match( /(Android|iPhone|iPod|iPad|Phone|DROID|webOS|BlackBerry|Windows Phone|ZuneWP7|IEMobile|Tablet|Kindle|Playbook|Nexus|Xoom|SM-N900T|GT-N7100|SAMSUNG-SGH-I717|SM-T330NU)/ ) ) { 29 return true; 30 } else { 31 return false; 32 } 33} 34function cws_is_tablet_viewport () { 35 if ( window.innerWidth > 767 && window.innerWidth < 1367 && is_mobile_device() ){ 36 return true; 37 } else { 38 return false; 39 } 40} 41function is_mobile () { 42 if ( window.innerWidth < 768 ){ 43 return true; 44 } else { 45 return false; 46 } 47} 48function not_desktop(){ 49 if( (window.innerWidth < 1367 && is_mobile_device()) || window.innerWidth < 1200 ){ 50 return true; 51 } else { 52 return false; 53 } 54} 55function cws_resize_controller() { 56 var cwsBody = jQuery('body'); 57 if( is_mobile_device() && cws_is_tablet_viewport()){ 58 cwsBody.removeClass('cws_mobile'); 59 cwsBody.addClass('cws_tablet'); 60 } else if ( is_mobile_device() && is_mobile() ){ 61 cwsBody.removeClass('cws_tablet'); 62 cwsBody.addClass('cws_mobile'); 63 } else { 64 cwsBody.removeClass('cws_tablet'); 65 cwsBody.removeClass('cws_mobile'); 66 } 67} 68function cws_resize() { 69 cws_resize_controller(); 70 window.addEventListener( "resize", function (){ 71 cws_resize_controller(); 72 }, false ); 73} 74function cws_is_mobile () { 75 var device = is_mobile_device(); 76 var viewport = not_desktop(); 77 return device || viewport; 78} 79/*\--------- CWS_RESPONSIVE_SCRIPTS ----------\*/ 80 81function cws_merge_trees ( arr1, arr2 ){ 82 if ( typeof arr1 != 'object' || typeof arr2 != 'object' ){ 83 return false; 84 } 85 return cws_merge_trees_walker ( arr1, arr2 ); 86} 87function cws_merge_trees_walker ( arr1, arr2 ){ 88 if ( typeof arr1 != 'object' || typeof arr2 != 'object' ){ 89 return false; 90 } 91 var keys1 = Object.keys( arr1 ); /* ! not working with null value */ 92 var keys2 = Object.keys( arr2 ); 93 var r = {}; 94 var i; 95 for ( i = 0; i < keys2.length; i++ ){ 96 if ( typeof arr2[keys2[i]] == 'object' ){ 97 if ( Array.isArray( arr2[keys2[i]] ) ){ 98 if ( keys1.indexOf( keys2[i] ) === -1 ){ 99 r[keys2[i]] = arr2[keys2[i]]; 100 } 101 else{ 102 r[keys2[i]] = arr1[keys2[i]]; 103 } 104 } 105 else{ 106 if ( typeof arr1[keys2[i]] == 'object' ){ 107 r[keys2[i]] = cws_merge_trees_walker( arr1[keys2[i]], arr2[keys2[i]] ); 108 } 109 else{ 110 r[keys2[i]] = cws_merge_trees_walker( {}, arr2[keys2[i]] ); 111 } 112 } 113 } 114 else{ 115 if ( keys1.indexOf( keys2[i] ) === -1 ){ 116 r[keys2[i]] = arr2[keys2[i]]; 117 } 118 else{ 119 r[keys2[i]] = arr1[keys2[i]]; 120 } 121 } 122 } 123 return r; 124} 125 126function cws_get_flowed_previous ( el ){ 127 var prev = el.previousSibling; 128 var is_prev_flowed; 129 if ( !prev ) return false; 130 is_prev_flowed = cws_is_element_flowed( prev ); 131 if ( !is_prev_flowed ){ 132 return cws_get_flowed_previous( prev ); 133 } 134 else{ 135 return prev; 136 } 137} 138function cws_is_element_flowed ( el ){ 139 var el_styles; 140 if ( el.nodeName === "#text" ){ 141 return false; 142 } 143 el_styles = getComputedStyle( el ); 144 if ( el_styles.display === "none" || ["fixed","absolute"].indexOf( el_styles.position ) != -1 ){ 145 return false; 146 }else{ 147 return true; 148 } 149} 150 151function cws_empty_p_filter_callback (){ 152 var el = this; 153 if ( el.tagName === "P" && !el.innerHTML.length ){ 154 return false; 155 } 156 else{ 157 return true; 158 } 159} 160function cws_br_filter_callback (){ 161 var el = this; 162 if ( el.tagName === "BR" ){ 163 return false; 164 } 165 else{ 166 return true; 167 } 168} 169 170function cws_getRandomInt ( min, max ){ 171 var min = min !== undefined ? min : 0; 172 var max = max !== undefined ? max : 1000000; 173 return Math.floor( Math.random() * (max - min + 1) ) + min; 174} 175 176// Converts from degrees to radians. 177function cws_math_radians (degrees){ 178 return degrees * Math.PI / 180; 179}; 180 181// Converts from radians to degrees. 182function cws_math_degrees (radians){ 183 return radians * 180 / Math.PI; 184}; 185 186 187/********************************** 188************ CWS HOOKS ************ 189**********************************/ 190function cws_hooks_init (){ 191 window.cws_hooks = {} 192} 193function cws_add_action ( tag, callback ){ 194 if ( typeof tag !== "string" || !tag.length ){ 195 return false;
196 } 197 if ( typeof callback !== "function" ){ 198 return false; 199 } 200 var hooks = window.cws_hooks; 201 var hook; 202 if ( hooks[tag] === 'object' ){ 203 hook = hooks[tag]; 204 } 205 else{ 206 hooks[tag] = hook = new cws_hook ( tag ); 207 } 208 hook.addAction( callback ); 209} 210function cws_do_action ( tag, args ){ 211 var args = Array.isArray( args ) ? args : new Array (); 212 var hooks = window.cws_hooks; 213 var hook = hooks[tag]; 214 var hook_exists = typeof hook === 'object'; 215 if ( hook_exists ){ 216 hook.run( args ); 217 } 218 return false; 219} 220function cws_hook ( tag ){ 221 this.tag = tag; 222 this.actions = {}; 223 this.genActionID = function (){ 224 return cws_uniq_id( "cws_action_" ); 225 } 226 this.addAction = function ( callback ){ 227 var actionID = this.genActionID(); 228 var action = new cws_action( this, actionID, callback ) 229 this.actions[actionID] = action; 230 } 231 this.run = function ( args ){ 232 var actionID, action; 233 for ( actionID in this.actions ){ 234 action = this.actions[actionID]; 235 action.do( args ); 236 } 237 } 238} 239function cws_action ( hook, actionID, callback ){ 240 this.hook = hook; 241 this.id = actionID; 242 this.callback = callback; 243 this.do = function ( args ){ 244 this.callback.apply( this, args ); 245 } 246} 247/********************************** 248************ \CWS HOOKS *********** 249**********************************/ 250 251 252/********************************** 253*********** CWS LOADER ************ 254**********************************/ 255(function ($){ 256 257 var loader; 258 $.fn.start_cws_loader = start_cws_loader; 259 $.fn.stop_cws_loader = stop_cws_loader; 260 261 jQuery(document).ready(function (){ 262 cws_page_loader_controller (); 263 }); 264 265 function cws_page_loader_controller (){ 266 var cws_page_loader, interval, timeLaps ; 267 cws_page_loader = $( "#cws_page_loader" ); 268 timeLaps = 0; 269 interval = setInterval( function (){ 270 var page_loaded = cws_check_if_page_loaded (); 271 timeLaps ++; 272 if ( page_loaded || timeLaps == 12) { 273 clearInterval ( interval ); 274 cws_page_loader.stop_cws_loader (); 275 } 276 }, 10); 277 } 278 function cws_check_if_page_loaded (){ 279 var keys, key, i, r; 280 if ( window.cws_modules_state == undefined ) return false; 281 r = true; 282 keys = Object.keys( window.cws_modules_state ); 283 for ( i = 0; i < keys.length; i++ ){ 284 key = keys[i]; 285 if ( !window.cws_modules_state[key] ){ 286 r = false; 287 break; 288 } 289 } 290 return r; 291 } 292 function start_cws_loader (){ 293 var loader_obj, loader_container, indicators; 294 loader = jQuery( this ); 295 if ( !loader.length ) return; 296 loader_container = loader[0].parentNode; 297 if ( loader_container != null ){ 298 loader_container.style.opacity = 1; 299 setTimeout( function (){ 300 loader_container.style.display = "block"; 301 }, 10); 302 } 303 } 304 function stop_cws_loader (){ 305 var loader_obj, loader_container, indicators; 306 loader = jQuery( this ); 307 if ( !loader.length ) return; 308 loader_container = loader[0].parentNode; 309 if ( loader_container != null ){ 310 loader_container.style.opacity = 0; 311 setTimeout( function (){ 312 loader_container.style.display = "none"; 313 jQuery( ".cws_textmodule_icon_wrapper.add_animation_icon" ).cws_services_icon(); 314 }, 200); 315 } 316 } 317 function updateCirclePos(){ 318 var circle=$obj.data("circle"); 319 TweenMax.set($obj,{ 320 x:Math.cos(circle.angle)*circle.radius, 321 y:Math.sin(circle.angle)*circle.radius, 322 }) 323 requestAnimationFrame(updateCirclePos); 324 } 325 function setupCircle($obj){ 326 if(typeof($obj.data("circle"))=="undefined"){ 327 $obj.data("circle",{radius:0,angle:0}); 328 329 updateCirclePos(); 330 } 331 } 332 function startCircleAnim($obj,radius,delay,startDuration,loopDuration){ 333 setupCircle($obj); 334 $obj.data("circle").radius=0; 335 $obj.data("circle").angle=0; 336 TweenMax.to($obj.data("circle"),startDuration,{ 337 delay:delay, 338 radius:radius, 339 ease:Quad.easeInOut 340 }); 341 TweenMax.to($obj.data("circle"),loopDuration,{ 342 delay:delay, 343 angle:Math.PI*2, 344 ease:Linear.easeNone, 345 repeat:-1 346 }); 347 } 348 function stopCircleAnim($obj,duration){ 349 TweenMax.to($obj.data("circle"),duration,{ 350 radius:0, 351 ease:Quad.easeInOut, 352 onComplete:function(){ 353 TweenMax.killTweensOf($obj.data("circle")); 354 } 355 }); 356 } 357 358}(jQuery)); 359 360/********************************** 361*********** \CWS LOADER *********** 362**********************************/ 363 364 365/********************************** 366********** CWS PARALLAX *********** 367**********************************/ 368 369(function ( $ ){ 370 371 $.fn.cws_prlx = cws_prlx; 372 373 window.addEventListener( 'scroll', function (){ 374 if ( window.cws_prlx != undefined && !window.cws_prlx.disabled ){ 375 window.cws_prlx.translate_layers(); 376 } 377 }, false ); 378 379 window.addEventListener( 'resize', function (){ 380 var i, section_id, section_params, layer_id; 381 if ( window.cws_prlx != undefined ){ 382 if ( window.cws_prlx.servant.is_mobile() ){ 383 if ( !window.cws_prlx.disabled ){ 384 for ( layer_id in window.cws_prlx.layers ){ 385 window.cws_prlx.layers[layer_id].el.removeAttribute( 'style' ); 386 } 387 window.cws_prlx.disabled = true; 388 } 389 } 390 else{ 391 if ( window.cws_prlx.disabled ){ 392 window.cws_prlx.disabled = false;
393 } 394 for ( section_id in window.cws_prlx.sections ){ 395 section_params = window.cws_prlx.sections[section_id]; 396 if ( section_params.height != section_params.el.offsetHeight ){ 397 window.cws_prlx.prepare_section_data( section_id ); 398 } 399 } 400 } 401 } 402 }, false ); 403 404 function cws_prlx ( args ){ 405 var factory, sects; 406 sects = $( this ); 407 if ( !sects.length ) return; 408 factory = new cws_prlx_factory( args ); 409 window.cws_prlx = window.cws_prlx != undefined ? window.cws_prlx : new cws_prlx_builder (); 410 sects.each( function (){ 411 var sect = $( this ); 412 var sect_id = factory.add_section( sect ); 413 if ( sect_id ) window.cws_prlx.prepare_section_data( sect_id ); 414 }); 415 } 416 417 function cws_prlx_factory ( args ){ 418 var args = args != undefined ? args : {}; 419 args.def_speed = args.def_speed != undefined && !isNaN( parseInt( args.def_speed ) ) && parseInt( args.def_speed > 0 ) && parseInt( args.def_speed <= 100 ) ? args.def_speed : 50; 420 args.layer_sel = args.layer_sel != undefined && typeof args.layer_sel == "string" && args.layer_sel.length ? args.layer_sel : ".cws_prlx_layer"; 421 this.args = args; 422 this.add_section = cws_prlx_add_section; 423 this.add_layer = cws_prlx_add_layer; 424 this.remove_layer = cws_prlx_remove_layer; 425 } 426 427 function cws_prlx_builder (){ 428 this.servant = new cws_servant (); 429 this.sections = {}; 430 this.layers = {}; 431 this.calc_layer_speed = cws_prlx_calc_layer_speed; 432 this.prepare_section_data = cws_prlx_prepare_section_data; 433 this.prepare_layer_data = cws_prlx_prepare_layer_data; 434 this.translate_layers = cws_prlx_translate_layers; 435 this.translate_layer = cws_prlx_translate_layer; 436 this.conditions = {}; 437 this.conditions.layer_loaded = cws_prlx_layer_loaded_condition; 438 this.disabled = false; 439 } 440 441 function cws_prlx_add_section ( section_obj ){ 442 var factory, section, section_id, layers, layer, i; 443 factory = this; 444 section = section_obj[0]; 445 layers = $( factory.args.layer_sel, section_obj ); 446 if ( !layers.length ) return false; 447 section_id = window.cws_prlx.servant.uniq_id( 'cws_prlx_section_' ); 448 section.id = section_id; 449 450 window.cws_prlx.sections[section_id] = { 451 'el' : section, 452 'height' : null, 453 'layer_sel' : factory.args.layer_sel 454 } 455 456 if ( /cws_Yt_video_bg/.test( section.className ) ){ /* for youtube video background */ 457 section.addEventListener( "DOMNodeRemoved", function ( e ){ 458 var el = e.srcElement ? e.srcElement : e.target; 459 if ( $( el ).is( factory.args.layer_sel ) ){ 460 factory.remove_layer( el.id ); 461 } 462 }, false ); 463 section.addEventListener( "DOMNodeInserted", function ( e ){ 464 var el = e.srcElement ? e.srcElement : e.target; 465 if ( $( el ).is( factory.args.layer_sel ) ){ 466 factory.add_layer( el, section_id ); 467 } 468 }, false ); 469 } 470 471 section.addEventListener( "DOMNodeRemoved", function ( e ){ /* for dynamically removed content */ 472 window.cws_prlx.prepare_section_data( section_id ); 473 },false ); 474 section.addEventListener( "DOMNodeInserted", function ( e ){ /* for dynamically added content */ 475 window.cws_prlx.prepare_section_data( section_id ); 476 },false ); 477 478 for ( i = 0; i < layers.length; i++ ){ 479 layer = layers[i]; 480 factory.add_layer( layer, section_id ) 481 } 482 483 return section_id; 484 485 } 486 487 function cws_prlx_add_layer ( layer, section_id ){ 488 var factory, layer_rel_speed, layer_params; 489 factory = this; 490 layer.id = !layer.id.length ? window.cws_prlx.servant.uniq_id( 'cws_prlx_layer_' ) : layer.id; 491 layer_rel_speed = $( layer ).data( 'scroll-speed' ); 492 layer_rel_speed = layer_rel_speed != undefined ? layer_rel_speed : factory.args.def_speed; 493 layer_params = { 494 'el' : layer, 495 'section_id' : section_id, 496 'height' : null, 497 'loaded' : false, 498 'rel_speed' : layer_rel_speed, 499 'speed' : null 500 } 501 window.cws_prlx.layers[layer.id] = layer_params; 502 return layer.id; 503 } 504 505 function cws_prlx_remove_layer ( layer_id ){ 506 var layers; 507 layers = window.cws_prlx.layers; 508 if ( layers[layer_id] != undefined ){ 509 delete layers[layer_id]; 510 } 511 } 512 513 function cws_prlx_prepare_section_data ( section_id ){ 514 var section, section_params, layer_sel, layers, layer, layer_id, i, section_obj; 515 if ( !Object.keys( window.cws_prlx.sections ).length || window.cws_prlx.sections[section_id] == undefined ) return false;
516 section_params = window.cws_prlx.sections[section_id]; 517 section = section_params.el; 518 section_params.height = section.offsetHeight; 519 section_obj = $( section ); 520 layers = $( section_params.layer_sel, section_obj ); 521 for ( i=0; i<layers.length; i++ ){ 522 layer = layers[i]; 523 layer_id = layer.id; 524 if ( layer_id ) window.cws_prlx.prepare_layer_data( layer_id, section_id ); 525 } 526 } 527 528 function cws_prlx_prepare_layer_data ( layer_id, section_id ){ 529 window.cws_prlx.servant.wait_for( 'layer_loaded', [ layer_id ], function ( layer_id ){ 530 var layer_params, layer; 531 layer_params = window.cws_prlx.layers[layer_id]; 532 layer = layer_params.el; 533 layer_params.height = layer.offsetHeight; 534 window.cws_prlx.calc_layer_speed( layer_id ); 535 window.cws_prlx.translate_layer( layer_id ); 536 layer_params.loaded = true; 537 }, [ layer_id ]); 538 } 539 540 function cws_prlx_translate_layers (){ 541 var layers, layer_ids, layer_id, i; 542 if ( window.cws_prlx == undefined ) return; 543 layers = window.cws_prlx.layers; 544 layer_ids = Object.keys( layers ); 545 for ( i = 0; i < layer_ids.length; i++ ){ 546 layer_id = layer_ids[i]; 547 window.cws_prlx.translate_layer( layer_id ); 548 } 549 } 550 551 function cws_prlx_translate_layer ( layer_id ){ 552 var layer_params, section, layer, layer_translation, style_adjs; 553 if ( window.cws_prlx == undefined || window.cws_prlx.layers[layer_id] == undefined ) return false; 554 layer_params = window.cws_prlx.layers[layer_id]; 555 if ( layer_params.speed == null ) return false; 556 if ( layer_params.section_id == undefined || window.cws_prlx.sections[layer_params.section_id] == undefined ) return false; 557 section = window.cws_prlx.sections[layer_params.section_id].el; 558 if ( window.cws_prlx.servant.is_visible( section ) ) { 559 layer = layer_params.el; 560 561 layer_translation = ( section.getBoundingClientRect().top - window.innerHeight ) * layer_params.rel_speed; 562 style_adjs = { 563 "WebkitTransform" : "translate(0%," + layer_translation + "px)", 564 "MozTransform" : "translate(0%," + layer_translation + "px)", 565 "msTransform" : "translate(0%," + layer_translation + "px)", 566 "OTransform" : "translate(0%," + layer_translation + "px)", 567 "transform" : "translate(0%," + layer_translation + "px)" 568 } 569 570 for (var key in style_adjs ){ 571 layer.style[key] = style_adjs[key]; 572 } 573 } 574 } 575 576 function cws_servant (){ 577 this.uniq_id = cws_uniq_id; 578 this.wait_for = cws_wait_for; 579 this.is_visible = cws_is_visible; 580 this.is_mobile = cws_is_mobile; 581 } 582 583 function cws_uniq_id ( prefix ){ 584 var d, t, n, id; 585 var prefix = prefix != undefined ? prefix : ""; 586 d = new Date(); 587 t = d.getTime(); 588 n = parseInt( Math.random() * t ); 589 id = prefix + n; 590 return id; 591 } 592 593 function cws_wait_for ( condition, condition_args, callback, callback_args ){ 594 var match = false; 595 var condition_args = condition_args != undefined && typeof condition_args == 'object' ? condition_args : new Array(); 596 var callback_args = callback_args != undefined && typeof callback_args == 'object' ? callback_args : new Array(); 597 if ( condition == undefined || typeof condition != 'string' || callback == undefined || typeof callback != 'function' ) return match; 598 match = window.cws_prlx.conditions[condition].apply( window, condition_args ); 599 if ( match == true ){ 600 callback.apply( window, callback_args ); 601 return true; 602 } 603 else if ( match == false ){ 604 setTimeout( function (){ 605 cws_wait_for ( condition, condition_args, callback, callback_args ); 606 }, 10); 607 } 608 else{ 609 return false; 610 } 611 } 612 613 function cws_is_visible ( el ){ 614 var window_top, window_height, window_bottom, el_top, el_height, el_bottom, r; 615 window_top = window.pageYOffset; 616 window_height = window.innerHeight; 617 window_bottom = window_top + window_height; 618 el_top = $( el ).offset().top; 619 el_height = el.offsetHeight; 620 el_bottom = el_top + el_height; 621 r = ( el_top > window_top && el_top < window_bottom ) || ( el_top < window_top && el_bottom > window_bottom ) || ( el_bottom > window_top && el_bottom < window_bottom ) ? true : false; 622 return r; 623 } 624 625 function cws_prlx_layer_loaded_condition ( layer_id ){ 626 var layer, r; 627 r = false;
628 if ( layer_id == undefined || typeof layer_id != 'string' ) return r; 629 if ( window.cws_prlx.layers[layer_id] == undefined ) return r; 630 layer = window.cws_prlx.layers[layer_id].el; 631 switch ( layer.tagName ){ 632 case "IMG": 633 if ( layer.complete == undefined ){ 634 } 635 else{ 636 if ( !layer.complete ){ 637 return r; 638 } 639 } 640 break; 641 case "DIV": /* for youtube video background */ 642 if ( /^video-/.test( layer.id ) ){ 643 return r; 644 } 645 break; 646 } 647 return true; 648 } 649 650 function cws_prlx_calc_layer_speed ( layer_id ){ 651 var layer_params, layer, section_id, section_params, window_height; 652 layer_params = window.cws_prlx.layers[layer_id]; 653 layer = layer_params.el; 654 section_id = layer_params.section_id; 655 section_params = window.cws_prlx.sections[section_id]; 656 window_height = window.innerHeight; 657 layer_params.speed = ( ( layer_params.height - section_params.height ) / ( window_height + section_params.height ) ) * ( layer_params.rel_speed / 100 ); 658 } 659 660}(jQuery)); 661 662/********************************** 663********** \CWS PARALLAX ********** 664**********************************/ 665 666/* cws rtl */ 667var directRTL; 668var wait_load_portfolio = false; 669if (jQuery("html").attr('dir') == 'rtl') { 670 directRTL = 'rtl'; 671} else { 672 directRTL = ''; 673}; 674 675/* cws megamenu */ 676if ( window.cws_megamenu != undefined ){ 677 678 var menu = document.querySelectorAll( ".main-nav-container .main-menu" ); 679 for (var i = 0; i <= menu.length; i++) { 680 window.cws_megamenu_main = new cws_megamenu( menu[i], { 681 'fw_sel' : '.container', 682 'bottom_level_sub_menu_width_adj' : 2 683 }); 684 } 685 686 window.cws_megamenu_sticky = new cws_megamenu( document.querySelector( "#sticky_menu" ), { 687 'fw_sel' : '.wide_container', 688 'bottom_level_sub_menu_width_adj' : 2 689 }); 690 691} 692 693/********************************** 694********** SCRIPTS INIT *********** 695**********************************/ 696cws_modules_state_init(); 697is_visible_init(); 698cws_milestone_init(); 699cws_progress_bar_init(); 700cws_widget_divider_init(); 701setTimeout(cws_widget_services_init,0); 702 703jQuery(document).ready(function (){ 704 705 window.cws_modules_state.sync = true; 706 wp_standard_processing(); 707 708 /***** Header scripts init *****/ 709 cws_center_menu_init(); 710 cws_top_panel_search(); 711 cws_adaptive_top_bar_init(); 712 cws_top_social_init(); 713 cws_page_header_video_init(); 714 cws_sidebar_bottom_info(); 715 cws_revslider_class_add(); 716 cws_blog_full_width_layout(); 717 cws_fullwidth_background_row(); 718 cws_header_bg_init(); 719 cws_header_imgs_cover_init(); 720 cws_header_parallax_init(); 721 cws_scroll_parallax_init(); 722 /****\ Header scripts init \****/ 723 724 /***** Other libraries init *****/ 725 vimeo_init(); 726 cws_self_hosted_video(); 727 wow_init(); 728 cws_fancybox_init(); 729 isotope_init(); 730 onYouTubePlayerAPIReady(); 731 /****\ Other libraries init \****/ 732 733 /***** Pages filter/pagination/carousel init *****/ 734 if( jQuery('body').hasClass('customize-support') ){ 735 setTimeout(function() { 736 cws_carousel(".cws_carousel_wrapper:not(.inner_slick)"); 737 cws_carousel(".cws_carousel_wrapper.inner_slick"); 738 }, 1); 739 } else { 740 cws_carousel(".cws_carousel_wrapper:not(.inner_slick)"); 741 cws_carousel(".cws_carousel_wrapper.inner_slick"); 742 } 743 cws_portfolio_pagination_init(); 744 cws_portfolio_filter_init(); 745 cws_ourteam_pagination_init(); 746 cws_ourteam_filter_init(); 747 widget_archives_hierarchy_init(); 748 /****\ Pages filter/pagination/carousel init \****/ 749 750 /***** CWS Features init *****/ 751 cws_resize(); 752 cws_fs_video_bg_init(); 753 boxed_var_init(); 754 load_more_init(); 755 cws_parallax_init(); 756 cws_prlx_init_waiter(); 757 cws_message_box_init(); 758 jQuery( ".cws_milestone_module" ).cws_milestone(); 759 jQuery( ".cws_progress_bar_module" ).cws_progress_bar(); 760 cws_sticky_sidebars_init(); 761 single_sticky_content(); 762 smooth_comment_link(); 763 cws_widgets_on_tablet(); 764 cws_footer_on_bottom(); 765 scroll_to_top(); 766 navigation_hold_post(); 767 cws_icons_wheel_init(); 768 cws_roadmap_before_end_point(); 769 cws_roadmap_animation(); 770 cws_benefits_init(); 771 cws_countdown(); 772 cws_calculator(); 773 /****\ CWS Features init \****/ 774 775 /***** CWS Fixes init *****/ 776 cws_first_place_col(); 777 staff_advanced_hover(); 778 cws_custom_inputs(); 779 cws_fix_styles_init(); 780 cryptop_services_hover(); 781 cryptop_portfolio_tablet_hover(); 782 Video_resizer(); 783 vc_accordion_fix(); 784 embed_videos_height(); 785 cws_megamenu_active(); 786 /****\ CWS Fixes init \****/ 787 788}); 789 790window.addEventListener( "load", function() { 791 792 /***** CWS Fixes init *****/ 793 cws_revslider_pause_init(); 794 /****\ CWS Fixes init \****/ 795 796 /***** Header scripts init *****/ 797 cws_simple_sticky_menu(); 798 cws_smart_sticky_menu(); 799 mainSearchForm(); 800 cws_toggle_topbar(); 801 cws_toggle_menu(); 802 cws_close_menu(); 803 cws_click_menu_item(); 804 cws_side_panel_init(); 805 pmc_plugin_styling(); 806 /****\ Header scripts init \****/ 807 808 setTimeout(function() { 809 cws_particles_init(); 810 cws_blank_preloader(); 811 }, 500); 812 cws_image_particles(); 813 cws_infinite_autoplay(); 814}, false); 815 816jQuery(window).resize( function (){ 817 cws_full_width_row(); 818 cws_fullwidth_background_row(); 819 cws_slider_video_height (jQuery( ".fs_video_slider" )); 820 cws_slider_video_height (jQuery( ".fs_img_header" )); 821
822 vimeo_init(); 823 cws_self_hosted_video (); 824 Video_resizer (); 825 826 cws_go_to_page_init(); 827 cws_toggle_menu(); 828 cws_click_menu_item(); 829 cws_widgets_on_tablet(); 830 cws_footer_on_bottom(); 831} ); 832/********************************** 833********** /SCRIPTS INIT ********** 834**********************************/ 835 836/********************************** 837******* SCRIPTS DECLARATION ******* 838**********************************/ 839function cws_modules_state_init (){ 840 window.cws_modules_state = { 841 "sync" : false, 842 } 843} 844 845function cws_unique_id ( prefix ){ 846 var prefix = prefix != undefined && typeof prefix == 'string' ? prefix : ""; 847 var d = new Date(); 848 var t = d.getTime(); 849 var unique = Math.random() * t; 850 var unique_id = prefix + unique; 851 return unique_id; 852} 853 854function wp_standard_processing (){ 855 var galls; 856 jQuery( "img[class*='wp-image-']" ).each( function (){ 857 var canvas_id; 858 var el = jQuery( this ); 859 var parent = el.parent( "a" ); 860 var align_class_matches = /align\w+/.exec( el.attr( "class" ) ); 861 var align_class = align_class_matches != null && align_class_matches[0] != undefined ? align_class_matches[0] : ""; 862 var added_class = "cws_img_frame"; 863 if ( align_class.length ){ 864 if ( parent.length ){ 865 el.removeClass( align_class ); 866 } 867 added_class += " " + align_class; 868 } 869 if ( parent.length ){ 870 parent.addClass( added_class ); 871 parent.children().wrapAll( "<div class='cws_blur_wrapper' />" ); 872 } 873 }); 874 galls = jQuery( ".gallery[class*='galleryid-']" ); 875 if ( galls.length ){ 876 galls.each( function (){ 877 var gall = jQuery( this ); 878 var gall_id = cws_unique_id ( "wp_gallery_" ); 879 jQuery( "a", gall ).attr( "data-fancybox-group", gall_id ); 880 }); 881 } 882 883 //Check if function exist 884 if (typeof fancybox === 'function') { 885 jQuery( ".gallery-icon a[href*='.jpg'], .gallery-icon a[href*='.jpeg'], .gallery-icon a[href*='.png'], .gallery-icon a[href*='.gif'], .cws_img_frame[href*='.jpg'], .cws_img_frame[href*='.jpeg'], .cws_img_frame[href*='.png'], .cws_img_frame[href*='.gif']" ).fancybox(); 886 } 887} 888 889/***** Header scripts declaration *****/ 890function cws_center_menu_init(){ 891 if (!is_mobile() && !is_mobile_device() && jQuery('header').hasClass('menu-center') ){ 892 var icons_block_width = []; 893 var max_block_width; 894 895 var headerLogoWidth = jQuery('header').find('.header_logo_part').width(), 896 menuIconLeft = jQuery('.menu_left_icons .menu_icons_wrapper'), 897 menuIconRight = jQuery('.menu_right_icons .menu_icons_wrapper'); 898 899 jQuery.each([menuIconLeft,menuIconRight], function(i, el) { 900 icons_block_width.push(jQuery(el).width()); 901 }); 902 903 max_block_width = Math.max.apply(null, icons_block_width); 904 905 if( jQuery('header').hasClass('logo-left') ){ 906 menuIconLeft.css('min-width', max_block_width); 907 menuIconRight.css('min-width', max_block_width+headerLogoWidth); 908 } 909 910 if( jQuery('header').hasClass('logo-center') ){ 911 menuIconLeft.css('min-width', max_block_width); 912 menuIconRight.css('min-width', max_block_width); 913 } 914 915 if( jQuery('header').hasClass('logo-right') ){ 916 menuIconLeft.css('min-width', max_block_width+headerLogoWidth); 917 menuIconRight.css('min-width', max_block_width); 918 } 919 920 } 921} 922 923function cws_top_panel_search (){ 924 //Top bar search 925 jQuery(".top_bar_search .search_icon").on('click', function(){ 926 var el = jQuery(this); 927 el.closest('.top_bar_search').find('.row_text_search .search-field').val(''); 928 if(!not_desktop()){ 929 el.closest('.top_bar_search').find('.row_text_search .search-field').focus(); 930 } 931 el.closest('.top_bar_search').toggleClass( "show-search" ); 932 }); 933 934 //Clear text (ESC) 935 jQuery(".top_bar_search .row_text_search .search-field").keydown(function(event) { 936 if (event.keyCode == 27){ 937 jQuery(this).val(''); 938 } 939 }); 940} 941 942function cws_adaptive_top_bar(first_init, top_bar_window_resolution, top_bar_left_items, top_bar_right_items){ 943 if( jQuery(window).width() < 768 && (localStorage.getItem('top_bar_check') != 'mobile' || first_init)){ 944 //Set mobile top-bar 945 jQuery('.top_bar_wrapper .container').append(top_bar_left_items); 946 jQuery('.top_bar_wrapper .container').append(top_bar_right_items); 947 948 //Сheck if the script was started 949 localStorage.setItem('top_bar_check', 'mobile'); 950 } else if( jQuery(window).width() > 767 && localStorage.getItem('top_bar_check') != 'desktop' ) { 951 //Remove mobile top-bar 952 jQuery(top_bar_left_items).remove(); 953 jQuery(top_bar_right_items).remove(); 954 955 //Set desktop top-bar 956 jQuery('.top_bar_wrapper .top_bar_icons.left_icons').append(top_bar_left_items); 957 jQuery('.top_bar_wrapper .top_bar_icons.right_icons').append(top_bar_right_items); 958 959 //Сheck if the script was started 960 localStorage.setItem('top_bar_check', 'desktop'); 961 962 //Reinit JS 963 cws_top_panel_search(); 964 cws_top_social_init(); 965 cws_side_panel_toggle(); 966 } 967} 968 969function cws_adaptive_top_bar_init(){ 970 //Definite variables 971 var top_bar_left_items = jQuery('.top_bar_wrapper .top_bar_icons.left_icons > *'); 972 var top_bar_right_items = jQuery('.top_bar_wrapper .top_bar_icons.right_icons > *'); 973 var first_init = false;
974 975 if( jQuery(window).width() < 768 ){ 976 var top_bar_window_resolution = localStorage.setItem('top_bar_check', 'mobile'); 977 first_init = true; 978 } else { 979 var top_bar_window_resolution = localStorage.setItem('top_bar_check', 'desktop'); 980 } 981 982 cws_adaptive_top_bar(first_init, top_bar_window_resolution, top_bar_left_items, top_bar_right_items); 983 984 jQuery(window).resize( function (){ 985 cws_adaptive_top_bar(false, top_bar_window_resolution, top_bar_left_items, top_bar_right_items); 986 }); 987} 988 989function cws_top_social_init (){ 990 jQuery('.social_links_wrapper.toogle-of').on('click', function() { 991 jQuery(this).find('.cws_social_links').toggleClass('active'); 992 jQuery(this).find('.social-btn-open-icon').toggleClass('active'); 993 jQuery(this).find('.social-btn-open').toggleClass('active'); 994 }); 995} 996 997function cws_set_header_video_wrapper_height (){ 998 var containers = document.getElementsByClassName( 'page_header_video_wrapper' ); 999 for ( var i=0; i<containers.length; i++ ){ 1000 cws_set_window_height( containers[i] ); 1001 } 1002} 1003 1004function cws_page_header_video_init (){ 1005 cws_set_header_video_wrapper_height(); 1006 window.addEventListener( 'resize', cws_set_header_video_wrapper_height, false ) 1007} 1008 1009function cws_side_panel_toggle(){ 1010 jQuery(".side_panel_trigger").on( 'click', function(){ 1011 jQuery("body").toggleClass("side_panel_show"); 1012 return false; 1013 }); 1014} 1015 1016function cws_side_panel_init () { 1017 if( jQuery('.side_panel_container').hasClass('appear-pull') ){ 1018 jQuery('body').addClass('side_panel_pull'); 1019 } 1020 1021 cws_side_panel_toggle(); 1022 1023 jQuery(".side_panel_overlay, .close_side_panel").on( 'click', function(){ 1024 jQuery("body").removeClass("side_panel_show"); 1025 jQuery("body").removeClass('oveflow-hidden'); 1026 jQuery(".page_content aside").removeClass('active'); 1027 }); 1028} 1029 1030function pmc_plugin_styling(){ 1031 jQuery('.tradingview-widget-copyright').remove(); 1032} 1033 1034function cws_sidebar_bottom_info(){ 1035 var sideBarBottomHeight = jQuery('.side_panel_bottom').height(); 1036 jQuery('.side_panel').css('padding-bottom', sideBarBottomHeight + 80); 1037} 1038 1039function cws_blank_preloader(){ 1040 jQuery('.cws_blank_preloader').removeClass('active'); 1041} 1042 1043function cws_particles_init(){ 1044 var particlesID = ''; 1045 var particlesColor = '#fff'; 1046 var particlesSpeed = 1; 1047 var particlesSaturation = 200; 1048 var particlesSize = 10; 1049 var particlesCount = 20; 1050 var particlesHide = 767; 1051 var particlesLinks = 100; 1052 1053 jQuery('.particles-js').each(function(i, el) { 1054 1055 particlesID = jQuery(el).attr('id'); 1056 1057 if( jQuery(el).data('hide') != undefined ){ 1058 particlesHide = jQuery(el).data('hide'); 1059 } 1060 1061 if( jQuery(window).width() > particlesHide ){ 1062 1063 /* -----> Grab data attributes <----- */ 1064 if( jQuery(el).data('color') != undefined ){ 1065 particlesColor = jQuery(el).data('color'); 1066 } 1067 if( jQuery(el).data('saturation') != undefined ){ 1068 particlesSaturation = jQuery(el).data('saturation'); 1069 } 1070 if( jQuery(el).data('speed') != undefined ){ 1071 particlesSpeed = jQuery(el).data('speed'); 1072 } 1073 if( jQuery(el).data('size') != undefined ){ 1074 particlesSize = jQuery(el).data('size'); 1075 } 1076 if( jQuery(el).data('count') != undefined ){ 1077 particlesCount = jQuery(el).data('count'); 1078 } 1079 if( jQuery(el).data('links') != undefined ){ 1080 particlesLinks = jQuery(el).data('links'); 1081 } 1082 1083 /* -----> Particles Init <----- */ 1084 var test = particlesJS(particlesID, 1085 { 1086 "particles": { 1087 "number": { 1088 "value": particlesCount, 1089 "density": { 1090 "enable": true, 1091 "value_area": particlesSaturation 1092 } 1093 }, 1094 "color": { 1095 "value": particlesColor 1096 }, 1097 "shape": { 1098 "type": "circle", 1099 "stroke": { 1100 "width": 0, 1101 "color": "#000000" 1102 }, 1103 "polygon": { 1104 "nb_sides": 5 1105 } 1106 }, 1107 "opacity": { 1108 "value": 1, 1109 "random": true, 1110 "anim": { 1111 "enable": true, 1112 "speed": 0.2, 1113 "opacity_min": 0.5, 1114 "sync": false 1115 } 1116 }, 1117 "size": { 1118 "value": particlesSize, 1119 "random": false, 1120 "anim": { 1121 "enable": true, 1122 "speed": 1, 1123 "size_min": particlesSize * 0.7, 1124 "sync": false 1125 } 1126 }, 1127 "line_linked": { 1128 "enable": true, 1129 "distance": particlesLinks, 1130 "color": particlesColor, 1131 "opacity": 1, 1132 "width": 1 1133 }, 1134 "move": { 1135 "enable": true, 1136 "speed": particlesSpeed, 1137 "direction": "none", 1138 "random": false, 1139 "straight": false, 1140 "out_mode": "out", 1141 "attract": { 1142 "enable": false, 1143 "rotateX": 0, 1144 "rotateY": 0 1145 } 1146 } 1147 }, 1148 "interactivity": { 1149 "detect_on": "canvas", 1150 "events": { 1151 "onhover": { 1152 "enable": true, 1153 "mode": "grab" 1154 }, 1155 "onclick": { 1156 "enable": true, 1157 "mode": "push" 1158 }, 1159 "resize": true 1160 }, 1161 "modes": { 1162 "grab": { 1163 "distance": particlesLinks, 1164 "line_linked": { 1165 "opacity": .7 1166 } 1167 }, 1168 "bubble": { 1169 "distance": 250, 1170 "size": particlesSize*1.5, 1171 "duration": 2, 1172 "opacity": 1, 1173 "speed": 1.5 1174 }, 1175 "repulse": { 1176 "distance": 100 1177 }, 1178 "push": { 1179 "particles_nb": 1 1180 }, 1181 "remove": { 1182 "particles_nb": 2 1183 } 1184 } 1185 }, 1186 "retina_detect": true, 1187 } 1188 ); 1189 1190 } 1191 1192 }); 1193} 1194 1195function cws_image_particles () { 1196 var $item = jQuery('.cws_particles_logo_module'); 1197 if ($item.length) { 1198 $item.each(function(){ 1199 var item = jQuery(this).find('.image_particles_data'); 1200 var item_image = item.data('img'); 1201 var item_id = item.data('id'); 1202 var options = { 1203 "img": item_image, 1204 "sizeMin": 1, 1205 "sizeMax": 6, 1206 "gridSize": 6, 1207 "gridStartZoomEnabled": false, 1208 "gridStartZoom": 1, 1209 "gridStartZoomSpeed": 10, 1210 "zoomOnHover": true, 1211 "zoomOnHoverDelta": 5, 1212 "mouseoverRadius": 50, 1213 "shape": "circle", 1214 "mousemoveBehavior": false, 1215 "circleMotionSpeedMin": 0, 1216 "circleMotionSpeedMax": 3, 1217 "circleMotionRadiusMin": 10, 1218 "circleMotionRadiusMax": 15, 1219 "fullScreenStretch": false, 1220 "fullScreen": false, 1221 "randomizeGrid": true 1222 }; 1223 var canvas = document.getElementById(item_id); 1224 var particler = new Particler(canvas, options); 1225 particler.run(); 1226 }) 1227 1228 } 1229 1230} 1231 1232function cws_revslider_class_add (){
1233 if (jQuery('.rev_slider_wrapper.fullwidthbanner-container').length) { 1234 jQuery('.rev_slider_wrapper.fullwidthbanner-container').next().addClass('benefits_after_slider'); 1235 if (jQuery('.rev_slider_wrapper.fullwidthbanner-container').length && jQuery('.site-main main .benefits_cont:first-child').length) { 1236 if (jQuery('.site-main main .benefits_cont:first-child').css("margin-top").replace("px", "") < -90) { 1237 jQuery('.site-main main .benefits_cont:first-child').addClass('responsive-minus-margin'); 1238 } 1239 } 1240 }; 1241} 1242 1243function cws_blog_full_width_layout() { 1244 function cws_blog_full_width_controller(){ 1245 var div = jQuery('.posts_grid.posts_grid_fw_img'); 1246 jQuery(div).each(function(){ 1247 div = jQuery(this); 1248 if (!div.hasClass('posts_grid_carousel')) { 1249 var doc_w = jQuery(window).width(); 1250 var div_w = jQuery('.page_content main .grid_row').width(); 1251 var marg = ( doc_w - div_w ) / 2; 1252 1253 div.each(function() { 1254 jQuery(this).css({ 1255 'margin-left' : '-'+(marg-15)+'px', 1256 'margin-right' : '-'+(marg-15)+'px' 1257 }) 1258 }); 1259 div.find('article.posts_grid_post').each(function() { 1260 jQuery(this).css({ 1261 'padding-left' : marg+'px', 1262 'padding-right' : marg+'px' 1263 }) 1264 }) 1265 } 1266 }); 1267 } 1268 cws_blog_full_width_controller(); 1269 1270 jQuery(window).resize( function(){ 1271 cws_blog_full_width_controller(); 1272 }); 1273} 1274 1275function cws_fix_vc_full_width_row(){ 1276 if( jQuery('html').attr('dir') == 'rtl' ){ 1277 var $elements = jQuery('.cws_stretch_row[data-vc-full-width="true"]'); 1278 jQuery($elements).each(function( i, el ){ 1279 jQuery(el).css('right', '-'+jQuery(el).css('left')).css('left', ''); 1280 }); 1281 } 1282} 1283 1284// Fixes rows in RTL 1285jQuery(document).on('vc-full-width-row', function () { 1286 cws_fix_vc_full_width_row(); 1287}); 1288 1289// Run one time because it was not firing in Mac/Firefox and Windows/Edge some times 1290cws_fix_vc_full_width_row(); 1291 1292var IE_fix_section = '.cws_vc_shortcode_grid.layout-2'; 1293 1294function cws_full_width_row(IE_fix_section){ 1295 var section = jQuery(section); 1296 var $elements = jQuery(section).find('[data-cws-full-width="true"]'); 1297 $elements.after('<div class="cws_row-full-width"></div>'); 1298 jQuery.each($elements, function(key, item) { 1299 var $el = jQuery(this); 1300 var test = $el.attr("data-cws-full-width-init"); 1301 $el.addClass("vc_hidden"); 1302 var $el_full = $el.next(".cws_row-full-width"); 1303 if ($el_full.length || ($el_full = $el.parent().next(".cws_row-full-width")), 1304 $el_full.length) { 1305 var el_margin_left = parseInt($el.css("margin-left"), 10), 1306 el_margin_right = parseInt($el.css("margin-right"), 10), 1307 offset = 0 - $el_full.offset().left - el_margin_left, 1308 width = jQuery(window).width(), 1309 cws_styles = '', 1310 top = $el.css('top'); 1311 1312 cws_styles += "position: absolute;"; 1313 cws_styles += "left: "+offset+"px !important;"; 1314 cws_styles += "box-sizing: border-box;"; 1315 cws_styles += "width: "+width+ "px;"; 1316 cws_styles += "top: "+top+ ";"; 1317 1318 if (!$el.data("vcStretchContent")) { 1319 var padding = -1 * offset; 1320 0 > padding && (padding = 0); 1321 var paddingRight = width - padding - $el_full.width() + el_margin_left + el_margin_right; 1322 0 > paddingRight && (paddingRight = 0); 1323 cws_styles += "padding-left:"+ padding + "px;"; 1324 cws_styles += "padding-right:"+ paddingRight + "px;"; 1325 } 1326 1327 $el.css("cssText", cws_styles); 1328 1329 $el.attr("data-cws-full-width-init", "true"), 1330 $el.removeClass("vc_hidden"); 1331 } 1332 }); 1333} 1334 1335function cws_fullwidth_background_row(){ 1336 var main_width = jQuery('main').width(); 1337 var row_bg_ofs, column_first_ofs, column_last_ofs; 1338 jQuery('.row_bg.fullwidth_background_bg').each(function(){ 1339 1340 row_bg_ofs = jQuery(this).offset(); 1341 1342 column_first_ofs = jQuery(this).find('.grid_col:first-child .cols_wrapper').offset(); 1343 column_last_ofs = jQuery(this).find('.grid_col:last-child .cols_wrapper').offset(); 1344 1345 jQuery(this).find('.grid_col:first-child > .cols_wrapper > .row_bg_layer').css({'left':''+( row_bg_ofs.left - column_first_ofs.left )+'px','width':'auto','right':'0'}); 1346 jQuery(this).find('.grid_col:first-child > .cols_wrapper > .row_bg_img_wrapper').css({'left':''+( row_bg_ofs.left - column_first_ofs.left )+'px','width':'auto','right':'0'}); 1347 1348 jQuery(this).find('.grid_col:last-child > .cols_wrapper > .row_bg_layer').css({'left':'0px','width':'auto','right':'-'+(jQuery(this).outerWidth() + row_bg_ofs.left - column_last_ofs.left - jQuery(this).find('.grid_col:last-child .cols_wrapper').outerWidth())+'px'}); 1349 jQuery(this).find('.grid_col:last-child > .cols_wrapper > .row_bg_img_wrapper').css({'left':'0px','width':'auto','right':'-'+(jQuery(this).outerWidth() + row_bg_ofs.left - column_last_ofs.left - jQuery(this).find('.grid_col:last-child .cols_wrapper').outerWidth())+'px'}); 1350 1351 }); 1352} 1353 1354function cws_header_bg_controller ( bg_section ){
1355 var benefits_area = jQuery( ".benefits_area" ).eq( 0 ); 1356 var page_content_section = jQuery( ".page_content" ).eq( 0 ); 1357 var top_curtain_hidden_class = "hidden"; 1358 var top_panel = jQuery( "#site_top_panel" ); 1359 var top_curtain = jQuery( "#top_panel_curtain" ); 1360 var consider_top_panel = top_panel.length && top_curtain.length && top_curtain.hasClass( top_curtain_hidden_class ); 1361 if ( benefits_area.length ){ 1362 if ( consider_top_panel ){ 1363 bg_section.css( { 1364 'height' : bg_section.parent().outerHeight() + 200 + bg_section.parent().offset().top + top_panel.outerHeight() + "px", 1365 'margin-top' : "-" + ( bg_section.parent().offset().top + top_panel.outerHeight() ) + "px" 1366 }); 1367 } 1368 else{ 1369 bg_section.css( { 1370 'height' : bg_section.parent().outerHeight() + 200 + bg_section.parent().offset().top + "px", 1371 'margin-top' : "-" + bg_section.parent().offset().top + "px" 1372 }); 1373 } 1374 bg_section.addClass( 'height_assigned' ); 1375 } 1376 else if ( page_content_section.length ){ 1377 if ( page_content_section.hasClass( "single_sidebar" ) || page_content_section.hasClass( "double_sidebar" ) ){ 1378 if ( consider_top_panel ){ 1379 bg_section.css({ 1380 'height' : bg_section.parent().outerHeight() + bg_section.parent().offset().top + top_panel.outerHeight() + "px", 1381 'margin-top' : "-" + ( bg_section.parent().offset().top + top_panel.outerHeight() ) + "px" 1382 }); 1383 } 1384 else{ 1385 bg_section.css({ 1386 'height' : bg_section.parent().outerHeight() + bg_section.parent().offset().top + "px", 1387 'margin-top' : "-" + bg_section.parent().offset().top + "px" 1388 }); 1389 } 1390 bg_section.addClass( 'height_assigned' ); 1391 } 1392 else{ 1393 if ( consider_top_panel ){ 1394 bg_section.css({ 1395 'height' : bg_section.parent().outerHeight() + 200 + bg_section.parent().offset().top + top_panel.outerHeight() + "px", 1396 'margin-top' : "-" + ( bg_section.parent().offset().top + top_panel.outerHeight() ) + "px" 1397 }); 1398 } 1399 else{ 1400 bg_section.css({ 1401 'height' : bg_section.parent().outerHeight() + 200 + bg_section.parent().offset().top + "px", 1402 'margin-top' : "-" + bg_section.parent().offset().top + "px" 1403 }); 1404 } 1405 bg_section.addClass( 'height_assigned' ); 1406 } 1407 } 1408} 1409 1410function cws_header_bg_init(){ 1411 var bg_sections = jQuery('.header_bg_img, .cws_parallax_scene_container'); 1412 bg_sections.each( function (){ 1413 var bg_section = jQuery( this ); 1414 cws_header_bg_controller( bg_section ); 1415 }); 1416 window.addEventListener( 'resize', function (){ 1417 var bg_sections = jQuery('.header_bg_img, .cws_parallax_scene_container'); 1418 bg_sections.each( function (){ 1419 var bg_section = jQuery( this ); 1420 cws_header_bg_controller( bg_section ); 1421 }); 1422 }, false ); 1423} 1424 1425function cws_header_imgs_cover_controller (){ 1426 var prlx_sections, prlx_section, section_imgs, section_img, i, j; 1427 var prlx_sections = jQuery( '.cws_parallax_scene_container > .cws_parallax_scene, .header_bg_img > .cws_parallax_section'); 1428 for ( i = 0; i < prlx_sections.length; i++ ){ 1429 prlx_section = prlx_sections[i]; 1430 section_imgs = jQuery( "img", jQuery( prlx_section ) ); 1431 for ( j = 0; j < section_imgs.length; j++ ){ 1432 section_img = section_imgs[j]; 1433 cws_cover_image( section_img, prlx_section ); 1434 } 1435 } 1436} 1437 1438function cws_cover_image ( img, section ){ 1439 var section_w, section_h, img_nat_w, img_nat_h, img_ar, img_w, img_h, canvas; 1440 if ( img == undefined || section == undefined ) return; 1441 section_w = section.offsetWidth; 1442 section_h = section.offsetHeight; 1443 img_nat_w = img.naturalWidth; 1444 img_nat_h = img.naturalHeight; 1445 img_ar = img_nat_w / img_nat_h; 1446 if ( img_ar > 1 ){ 1447 img_h = section_h; 1448 img_w = section_h * img_ar; 1449 } 1450 else{ 1451 img_w = section_w; 1452 img_h = section_w / img_ar; 1453 } 1454 img.width = img_w; 1455 img.height = img_h; 1456} 1457 1458function cws_header_imgs_cover_init (){ 1459 cws_header_imgs_cover_controller (); 1460 window.addEventListener( "resize", cws_header_imgs_cover_controller, false ); 1461} 1462 1463function cws_wait_for_header_bg_height_assigned ( callback ){ 1464 var header_bg_sections = jQuery( '.header_bg_img, .cws_parallax_scene_container' ); 1465 if ( callback == undefined || typeof callback != 'function' ) return; 1466 cws_header_bg_height_assigned_waiter ( header_bg_sections, callback ); 1467} 1468 1469function cws_header_bg_height_assigned_waiter ( els, callback ){ 1470 var i; 1471 for ( i = 0; i < els.length; i++ ){ 1472 if ( jQuery( els[i] ).hasClass( 'height_assigned' ) ){ 1473 els.splice( i, 1 ); 1474 } 1475 } 1476 if ( els.length ){ 1477 setTimeout( function (){ 1478 cws_header_bg_height_assigned_waiter ( els, callback ); 1479 }, 10 ); 1480 } 1481 else{ 1482 callback (); 1483 return true; 1484 } 1485} 1486 1487function cws_header_parallax_init (){ 1488 var scenes = jQuery( ".cws_parallax_section, .cws_parallax_scene" ); 1489 if (typeof Parallax === 'function') { 1490 scenes.each( function (){ 1491 var scene = this; 1492 var prlx_scene = new Parallax ( scene ); 1493 }); 1494 } 1495} 1496 1497function cws_scroll_parallax_init (){ 1498 var scroll = 0; 1499 var window_width = jQuery(window).width(); 1500 var background_size_width; 1501 1502 jQuery(window).scroll(function() { 1503 scroll = jQuery(window).scrollTop(); 1504 window_width = jQuery(window).width(); 1505 }); 1506 1507 1508 if(jQuery('.title.has_fixed_background').length){ 1509
1510 var background_size_width = parseInt(jQuery('.title.has_fixed_background').css('background-size').match(/\d+/)); 1511 var title_holder_height = jQuery('.title.has_fixed_background').height(); 1512 1513 if (jQuery('.bg_page_header').hasClass('hide_header')){ 1514 var top = jQuery('.bg_page_header').data('top'); 1515 var bottom = jQuery('.bg_page_header').data('bottom'); 1516 title_holder_height = top+bottom+88; 1517 } 1518 1519 var title_rate = (title_holder_height / 10000) * 7; 1520 var title_distance = scroll - jQuery('.title.has_fixed_background').offset().top; 1521 var title_bpos = -(title_distance * title_rate); 1522 jQuery('.title.has_fixed_background').css({'background-position': 'center 0px' }); 1523 if(jQuery('.title.has_fixed_background').hasClass('zoom_out')){ 1524 jQuery('.title.has_fixed_background').css({'background-size': background_size_width-scroll + 'px auto'}); 1525 } 1526 } 1527 1528 jQuery(window).on('scroll', function() { 1529 1530 if(jQuery('.title.has_fixed_background').length){ 1531 var title_distance = scroll - jQuery('.title.has_fixed_background').offset().top; 1532 var title_bpos = -(title_distance * title_rate); 1533 jQuery('.title.has_fixed_background').css({'background-position': 'center ' + title_bpos + 'px' }); 1534 if(jQuery('.title.has_fixed_background').hasClass('zoom_out') && (background_size_width-scroll > window_width)){ 1535 jQuery('.title.has_fixed_background').css({'background-size': background_size_width-scroll + 'px auto'}); 1536 } 1537 } 1538 }); 1539} 1540 1541function cws_toggle_topbar(){ 1542 jQuery('.topbar_trigger').off(); 1543 jQuery('.topbar_trigger').on('click', function() { 1544 jQuery('.top_bar_wrapper').toggleClass('active'); 1545 jQuery('.top_bar_wrapper .top_bar_inner_wrapper').slideToggle(); 1546 1547 setTimeout(function() { 1548 cws_infinite_autoplay(); 1549 }, 401); 1550 }); 1551} 1552 1553function cws_toggle_menu(){ 1554 1555 // -----> Different mneu hamburger animation 1556 if ( cws_detect_browser() == 'Safari' ) { 1557 jQuery('.mobile_menu_hamburger').addClass('iOS-anim'); 1558 } else { 1559 jQuery('.mobile_menu_hamburger').addClass('custom-anim'); 1560 } 1561 1562 // -----> Toggle menu 1563 if( jQuery('.site_header').hasClass('active-sandwich-menu') && !not_desktop() ){ 1564 jQuery('.mobile_menu_hamburger').on('click', function() { 1565 jQuery('.mobile_menu_hamburger').toggleClass('active'); 1566 jQuery('.main-nav-container').toggleClass('active'); 1567 }); 1568 } else if( not_desktop() ){ 1569 jQuery('.mobile_menu_hamburger').on('click', function() { 1570 1571 // -----> Close top-bar if is open 1572 if( is_mobile() && jQuery('.top_bar_wrapper').hasClass('active') ){ 1573 jQuery('.top_bar_wrapper .top_bar_inner_wrapper').hide(); 1574 jQuery('.top_bar_wrapper').removeClass('active'); 1575 } 1576 1577 jQuery(this).addClass('active'); 1578 jQuery('body').addClass('menu-visible'); 1579 jQuery('.top_bar_wrapper .topbar_trigger').addClass('hidden'); 1580 jQuery('.menu-overlay').addClass('active'); 1581 jQuery('.menu_box_wrapper').addClass('active'); 1582 }); 1583 } 1584} 1585 1586function cws_close_menu(){ 1587 jQuery('.menu-overlay').on('click', function() { 1588 jQuery(this).removeClass('active'); 1589 jQuery('.menu_box_wrapper').removeClass('active'); 1590 jQuery('.top_bar_wrapper .topbar_trigger').removeClass('hidden'); 1591 jQuery('.mobile_menu_hamburger').removeClass('active'); 1592 jQuery('body').removeClass('menu-visible'); 1593 }); 1594} 1595 1596function cws_click_menu_item(){ 1597 var initCounter = 0; 1598 1599 if( not_desktop() ){ 1600 if( initCounter == 0 ){ 1601 var menuItem = jQuery('.menu_box_wrapper .main-menu .menu-item > a'); 1602 var menuItemTrigger = jQuery('.menu_box_wrapper .main-menu .menu-item > .button_open'); 1603 var currentParents; 1604 1605 //Disable 'cws_go_to_page_init' script & multi init on resize 1606 menuItem.off(); 1607 menuItemTrigger.off(); 1608 1609 menuItem.on('click', function(e) { 1610 1611 if( jQuery(this).parent().hasClass('menu-item-has-children') || jQuery(this).parent().hasClass('menu-item-object-megamenu_item') ){ 1612 1613 if( !jQuery(this).parent().hasClass('active') ){ 1614 //Close all anouther sub-menu`s 1615 currentParents = jQuery(this).parents('.menu-item'); 1616 menuItem.parent().not(currentParents).removeClass('active'); 1617 menuItem.parent().not(currentParents).find('.sub-menu').slideUp(300); 1618 1619 jQuery(this).parent().addClass('active'); 1620 jQuery(this).parent().children('.sub-menu').slideDown(300); 1621 1622 e.preventDefault(); 1623 return false;
1624 } 1625 } 1626 1627 }); 1628 1629 menuItemTrigger.on('click', function() { 1630 1631 if( jQuery(this).parent().hasClass('active') ){ 1632 1633 jQuery(this).next().slideUp(300); 1634 jQuery(this).parent().removeClass('active'); 1635 1636 } else { 1637 //Close all anouther sub-menu`s 1638 currentParents = jQuery(this).parents('.menu-item'); 1639 menuItemTrigger.parent().not(currentParents).removeClass('active'); 1640 menuItemTrigger.parent().not(currentParents).find('.sub-menu').slideUp(300); 1641 1642 jQuery(this).next().slideDown(300); 1643 jQuery(this).parent().addClass('active'); 1644 1645 } 1646 1647 }); 1648 } 1649 initCounter ++; 1650 } else { 1651 initCounter = 0; 1652 } 1653} 1654 1655function cws_simple_sticky_menu(){ 1656 if( jQuery('.site_header').hasClass('sticky_simple') && !not_desktop() ){ 1657 1658 //Definition variables 1659 var menuBox = jQuery('.menu_box'); 1660 var stickyMenu = menuBox.clone(); 1661 var adminBar = jQuery('#wpadminbar').height(); 1662 var menuOffset = parseInt(menuBox.offset().top); 1663 var currentScroll = jQuery(window).scrollTop(); 1664 var menuBoxHeight = menuBox.outerHeight(); 1665 var displaySticky = 0; 1666 var startPosition = 0; 1667 1668 //Show menu on page load 1669 stickyMenu.addClass('sticky_menu_box'); 1670 stickyMenu.appendTo('.header_zone'); 1671 1672 //Get Sticky menu height 1673 var stickyBoxHeight = stickyMenu.outerHeight(); 1674 1675 //Sticky menu declaration after getting height 1676 stickyMenu.css('transform', 'translateY(-'+ (stickyBoxHeight - adminBar) + 'px)'); 1677 1678 //Get condition for start position 1679 if( stickyBoxHeight <= menuBoxHeight ){ 1680 startPosition = menuBoxHeight - stickyBoxHeight; 1681 } 1682 1683 jQuery(window).on('scroll', function() { 1684 var currentScroll = jQuery(this).scrollTop(); 1685 1686 //Main script 1687 if( jQuery(this).scrollTop() > menuOffset + startPosition ){ 1688 jQuery('.sticky_enable').addClass('sticky_active'); 1689 jQuery('.sticky_enable .menu_box').css('transform', 'translateY(0px)'); 1690 stickyMenu.show(); 1691 } 1692 //Stop on the original position 1693 else if( currentScroll <= menuOffset ){ 1694 jQuery('.sticky_enable').removeClass('sticky_active'); 1695 stickyMenu.hide(); 1696 displaySticky = 0; 1697 } 1698 1699 }); 1700 1701 if(currentScroll > menuOffset){ 1702 jQuery('.sticky_enable .menu_box').css('transform', 'translateY(0px)'); 1703 jQuery('.sticky_enable').addClass('sticky_active'); 1704 } else if(currentScroll <= menuOffset && currentScroll != 0){ 1705 jQuery('.sticky_enable .menu_box').css('transform', 'translateY('+ (menuOffset - currentScroll - 1) +'px)'); 1706 } 1707 } 1708} 1709 1710function cws_smart_sticky_menu(){ 1711 if( jQuery('.site_header').hasClass('sticky_smart') && !not_desktop() && jQuery('.menu_box').length != 0 ){ 1712 //Definition variables 1713 var menuBox = jQuery('.menu_box'); 1714 var stickyMenu = menuBox.clone(); 1715 var adminBar = jQuery('#wpadminbar').height(); 1716 var menuOffset = parseInt(menuBox.offset().top); 1717 var menuBoxHeight = menuBox.outerHeight(); 1718 var currentScroll = jQuery(window).scrollTop(); 1719 var tempScroll = jQuery(window).scrollTop(); 1720 var minOffset = menuOffset + (menuBoxHeight * 3); //Min top offset, when should show the menu. 1721 var defaultSlideUp = true; 1722 var smoothSlideUp = false; 1723 var smoothSlideDown = false; 1724 var scrollMarkerUp = 0; 1725 var scrollMarkerDown = 0; 1726 var menuCurrentTransform = 0; 1727 var translateY_down = 0; 1728 var displaySticky = 0; 1729 var defaultCondition = false; 1730 1731 //Sticky menu declaration 1732 stickyMenu.addClass('sticky_menu_box'); 1733 stickyMenu.appendTo('.header_zone'); 1734 1735 //Get Sticky menu height 1736 var stickyBoxHeight = stickyMenu.outerHeight(); 1737 1738 //Sticky menu declaration after getting height 1739 stickyMenu.css('transform', 'translateY(-'+ (stickyBoxHeight - adminBar) + 'px)'); 1740 1741 1742 //Get condition for default position 1743 if( stickyBoxHeight <= menuBoxHeight ){ 1744 defaultCondition = false; 1745 } else if( stickyBoxHeight > menuBoxHeight ) { 1746 defaultCondition = true; 1747 } 1748 1749 //Main script 1750 jQuery(window).on('scroll', function() { 1751 currentScroll = jQuery(this).scrollTop(); 1752 1753 //Sticky trigger 1754 if( currentScroll > minOffset ){ 1755 1756 jQuery('.sticky_enable').addClass('sticky_active'); 1757 1758 //When scrolling down ----> HIDE MENU SCRIPTS 1759 if( tempScroll < currentScroll ){ 1760 //Hide menu 1761 if( currentScroll > (menuOffset + menuBoxHeight) ){ 1762 //Taking the scroll position 1763 if(smoothSlideUp == false){ 1764 scrollMarkerDown = currentScroll; 1765 menuCurrentTransform = parseInt(stickyMenu.css('transform').split(',')[5]); 1766 smoothSlideUp = true; 1767 } 1768 var translateY_up = menuCurrentTransform - (currentScroll - scrollMarkerDown); 1769 stickyMenu.css('transform', 'translateY('+ parseInt(translateY_up) +'px)'); 1770 } 1771 smoothSlideDown = false;
1772 } 1773 1774 //When scrolling top ----> SHOW MENU SCRIPTS 1775 else if( tempScroll > currentScroll ){ 1776 //Taking the scroll position 1777 if(smoothSlideDown == false){ 1778 scrollMarkerUp = currentScroll; 1779 menuCurrentTransform = parseInt(stickyMenu.css('transform').split(',')[5]); 1780 smoothSlideDown = true; 1781 } 1782 //Smooth slide down if menu-box is visible now 1783 if( Math.abs(menuCurrentTransform) < stickyBoxHeight ){ 1784 //Smooth slide down 1785 if( (scrollMarkerUp - currentScroll) <= (stickyBoxHeight - (stickyBoxHeight - Math.abs(menuCurrentTransform)) ) ){ 1786 1787 translateY_down = Math.abs(menuCurrentTransform) - (scrollMarkerUp - currentScroll); 1788 stickyMenu.css('transform', 'translateY(-'+parseInt(translateY_down)+'px)'); 1789 } 1790 } 1791 //Smooth slide down if menu-box is not visible now 1792 else { 1793 if( displaySticky == 0 ){ 1794 stickyMenu.show(); 1795 displaySticky = 1; 1796 } 1797 //Smooth slide down 1798 if( (scrollMarkerUp - currentScroll) < stickyBoxHeight ){ 1799 translateY_down = stickyBoxHeight - (scrollMarkerUp - currentScroll); 1800 stickyMenu.css('transform', 'translateY(-'+ parseInt(translateY_down) +'px)'); 1801 } 1802 //Show menu box (Sharp movement of the mouse wheel) 1803 else { 1804 stickyMenu.css('transform', 'translateY(0px)'); 1805 } 1806 } 1807 1808 smoothSlideUp = false; 1809 } 1810 } 1811 //Stop on the original position ( Sticky < Menu Box ) 1812 else if( !defaultCondition && currentScroll <= menuOffset + (menuBoxHeight - stickyBoxHeight) ){ 1813 jQuery('.sticky_enable').removeClass('sticky_active'); 1814 //Hide sticky right in center of default menu box 1815 if( currentScroll <= menuOffset + ((menuBoxHeight - stickyBoxHeight) / 2) ){ 1816 stickyMenu.hide(); 1817 displaySticky = 0; 1818 } 1819 } 1820 //Stop on the original position ( Sticky > Menu Box ) 1821 else if( defaultCondition && currentScroll <= menuOffset ){ 1822 jQuery('.sticky_enable').removeClass('sticky_active'); 1823 stickyMenu.hide(); 1824 displaySticky = 0; 1825 } 1826 1827 tempScroll = currentScroll; 1828 }); 1829 1830 } 1831} 1832 1833function cws_vc_responsive(){ 1834 if( !not_desktop() ){ 1835 jQuery('div[class*="desktop_vc_custom"]'); 1836 } 1837} 1838 1839function mainSearchForm(){ 1840 jQuery('.menu_box .search_icon').on('click', function() { 1841 jQuery('.site_search_wrapper').addClass('active'); 1842 jQuery('.site_search_wrapper').find('.search-field').focus(); 1843 }); 1844 1845 jQuery('.site_search_wrapper .close_search').on('click', function(){ 1846 jQuery('.site_search_wrapper').removeClass('active'); 1847 }); 1848} 1849/****\ Header scripts declaration \****/ 1850 1851 1852/***** Other libraries declaration *****/ 1853function vimeo_init() { 1854 var element; 1855 var vimeoId; 1856 var chek; 1857 jQuery(".cws_Vimeo_video_bg").each(function(){ 1858 element = jQuery(this); 1859 var el_width; 1860 var el_height; 1861 vimeoId = jQuery(".cws_Vimeo_video_bg").attr('data-video-id'); 1862 1863 jQuery("#"+vimeoId).vimeo("play"); 1864 jQuery("#"+vimeoId).vimeo("setVolume", 0); 1865 jQuery("#"+vimeoId).vimeo("setLoop", true); 1866 el_width = element[0].offsetWidth; 1867 1868 if (element[0].offsetHeight<((el_width/16)*9)) { 1869 el_height = (element[0].offsetWidth/16)*9; 1870 }else{ 1871 el_height = element[0].offsetHeight; 1872 el_width = (el_height/9)*16; 1873 } 1874 jQuery("#"+vimeoId)[0].style.width = el_width+'px'; 1875 jQuery("#"+vimeoId)[0].style.height = el_height+'px'; 1876 setInterval(check_on_page, 1000); 1877 }) 1878 1879 function check_on_page (){ 1880 if (document.getElementsByTagName('html')[0].hasAttribute('data-focus-chek')) { 1881 if (chek < 1) { 1882 chek++ 1883 jQuery("#"+vimeoId).vimeo("play"); 1884 }else{ 1885 chek = 1 1886 } 1887 }else{ 1888 jQuery("#"+vimeoId).vimeo("pause"); 1889 chek = 0; 1890 } 1891 } 1892} 1893 1894function cws_self_hosted_video (){ 1895 var element,el_width,video 1896 jQuery('.cws_self_hosted_video').each(function(){ 1897 element = jQuery(this) 1898 video = element.find('video') 1899 el_width = element[0].offsetWidth; 1900 1901 if (element[0].offsetHeight<((el_width/16)*9)) { 1902 el_height = (element[0].offsetWidth/16)*9; 1903 }else{ 1904 el_height = element[0].offsetHeight; 1905 el_width = (el_height/9)*16; 1906 } 1907 video[0].style.width = el_width+'px'; 1908 video[0].style.height = el_height+'px'; 1909 }) 1910} 1911 1912function wow_init (){ 1913 if( typeof WOW === 'function' ){ 1914 new WOW().init(); 1915 } 1916} 1917 1918function cws_fancybox_init(){ 1919 //Check if function exist 1920 if( typeof fancybox === 'function' ){ 1921 jQuery(".fancy").fancybox(); 1922 } 1923} 1924 1925function isotope_init (){ 1926 jQuery(".news.news-pinterest .isotope").each(function(item, value){ 1927 jQuery(this).isotope({ 1928 itemSelector: ".item" 1929 }); 1930 }); 1931 jQuery(".blog_gallery_grid.isotope").each(function(item, value){ 1932 jQuery(this).isotope({ 1933 // percentPosition: true, 1934 itemSelector: ".pic" 1935 }); 1936 }); 1937} 1938 1939/* -----> Youtube Video <----- */ 1940var i, 1941 currTime, 1942 duration, 1943 video_source, 1944 video_id, 1945 el_height, 1946 element, 1947 el_width, 1948 el_quality, 1949 player; 1950 1951 element = document.getElementsByClassName("cws_Yt_video_bg"); 1952 1953function onYouTubePlayerAPIReady() { 1954 if(typeof element === 'undefined') 1955 return; 1956 for (var i = element.length - 1; i >= 0; i--) { 1957 video_source = element[i].getAttribute("data-video-source"); 1958 video_id = element[i].getAttribute("data-video-id"); 1959 el_width = element[i].offsetWidth; 1960 1961 1962 1963 if (element[i].offsetHeight<((el_width/16)*9)) { 1964 el_height = (element[i].offsetWidth/16)*9; 1965 }else{ 1966 el_height = element[i].offsetHeight; 1967 el_width = (el_height/9)*16; 1968 } 1969 if (el_width > 1920){ 1970 el_quality = 'highres'; 1971 } 1972 if (el_width < 1920){ 1973 el_quality = 'hd1080'; 1974 } 1975 if (el_width < 1280) { 1976 el_quality = 'hd720'; 1977 } 1978 if (el_width < 853) { 1979 el_quality = 'large'; 1980 } 1981 if (el_width < 640) { 1982 el_quality = 'medium'; 1983 }; 1984 rev (video_id,video_source,el_width,el_height); 1985 1986 }; 1987} 1988function rev (video_id,video_source,el_width,el_height){ 1989 window.setTimeout(function() { 1990 if (!YT.loaded) { 1991 console.log('not loaded yet'); 1992 window.setTimeout(arguments.callee, 50) 1993 } else { 1994 var curplayer = video_control(video_id,video_source,el_width,el_height); 1995 } 1996 }, 50); 1997} 1998 1999var chek = 0; 2000var YouTube; 2001 2002function video_control (uniqid,video_source,el_width,el_height) { 2003 var interval; 2004 2005 player = new YT.Player(uniqid, { 2006 height: el_height, 2007 width: el_width, 2008 videoId: video_source, 2009 playerVars: { 2010 'autoplay' : 1, 2011 'rel' : 0, 2012 'showinfo' : 0, 2013 'showsearch' : 0, 2014 'controls' : 0, 2015 'loop' : 1, 2016 'enablejsapi' : 1, 2017 'theme' : 'dark', 2018 'modestbranding' : 0, 2019 'wmode' : 'transparent', 2020 }, 2021 events: { 2022 'onReady': onPlayerReady, 2023 'onStateChange': onPlayerStateChange 2024 } 2025 } 2026 ); 2027} 2028 2029window.addEventListener('focus', function() { 2030 checkPlayer(); 2031 return true; 2032}); 2033function onPlayerReady(event){ 2034 YouTube = event.target; 2035 YouTube.mute(); 2036 YouTube.setPlaybackQuality(el_quality); 2037} 2038function onPlayerStateChange(event) { 2039 YouTube.playVideo(); 2040} 2041function seekTo(event) { 2042 player.seekTo(0); 2043} 2044function checkPlayer() { 2045 if (undefined !== player && undefined !== player.getCurrentTime) { 2046 currTime = player.getCurrentTime(); //get video position 2047 duration = player.getDuration(); //get video duration 2048 (currTime > (duration - 0.8)) ? seekTo(event) : ''; 2049 }; 2050 2051} 2052function chek_on_page (){ 2053 if (document.getElementsByTagName('html')[0].hasAttribute('data-focus-chek')) { 2054 if (chek < 1 && undefined !== player.playVideo) { 2055 chek++ 2056 player.playVideo(); 2057 }else{ 2058 chek = 1 2059 } 2060 }else if (undefined !== player.pauseVideo) { 2061 player.pauseVideo(); 2062 chek = 0; 2063 } 2064} 2065/*\ ----> Youtube Video <---- \*/ 2066/****\ Other libraries declaration \****/ 2067 2068 2069/***** Pages filter/pagination/carousel declaration *****/ 2070function cws_carousel($class, area){ 2071 jQuery( $class, area ).each( function() { 2072 2073 var this_is = jQuery(this); 2074 2075 /* -----> Getting carousel attributes <-----*/ 2076 var slidesToShow = this_is.data('columns'); 2077 var slidesToScroll = jQuery.isNumeric(this_is.data('slides-to-scroll')) ? this_is.data('slides-to-scroll') : 1; 2078 var infinite = this_is.data('infinite') == 'on'; 2079 var pagination = this_is.data('pagination') == 'on'; 2080 var navigation = this_is.data('navigation') == 'on'; 2081 var autoHeight = this_is.data('auto-height') == 'on'; 2082 var draggable = this_is.data('draggable') == 'on'; 2083 var autoplay = this_is.data('autoplay') == 'on'; 2084 var autoplaySpeed = this_is.data('autoplay-speed');
2085 var pauseOnHover = this_is.data('pause-on-hover') == 'on'; 2086 var vertical = this_is.data('vertical') == 'on'; 2087 var verticalSwipe = this_is.data('vertical-swipe') == 'on'; 2088 var tabletPortrait = this_is.data('tablet-portrait'); 2089 var landscapeMobile = this_is.data('mobile-landscape'); 2090 var carousel = this_is.children('.cws_carousel'); 2091 if( carousel.length == 0 ){ 2092 carousel = this_is.find('.products.cws_carousel'); //Need for woocommerce shortcodes 2093 } 2094 var responsive = ''; 2095 2096 /* -----> Collect attributes in aruments object <-----*/ 2097 var args = { 2098 slidesToShow: slidesToShow, 2099 slidesToScroll: slidesToScroll, 2100 infinite: infinite, 2101 dots: pagination, 2102 arrows: navigation, 2103 adaptiveHeight: autoHeight, 2104 draggable: draggable, 2105 autoplay: autoplay, 2106 autoplaySpeed: autoplaySpeed, 2107 pauseOnHover: pauseOnHover, 2108 vertical: vertical, 2109 verticalSwiping: verticalSwipe, 2110 margin: 20, 2111 } 2112 2113 /* -----> Responsive rules <----- */ 2114 if( typeof tabletPortrait !== 'undefined' && typeof landscapeMobile !== "undefined" ){ 2115 responsive = { 2116 responsive: [ 2117 { 2118 breakpoint: 992, 2119 settings: { 2120 slidesToShow: tabletPortrait, 2121 } 2122 }, 2123 { 2124 breakpoint: 768, 2125 settings: { 2126 slidesToShow: landscapeMobile, 2127 } 2128 }, 2129 { 2130 breakpoint: 480, 2131 settings: { 2132 slidesToShow: 1, 2133 slidesToScroll: 1, 2134 dots: true, 2135 arrows: false 2136 } 2137 }, 2138 ] 2139 } 2140 } else if( typeof tabletPortrait !== 'undefined' ){ 2141 responsive = { 2142 responsive: [ 2143 { 2144 breakpoint: 992, 2145 settings: { 2146 slidesToShow: tabletPortrait, 2147 } 2148 }, 2149 { 2150 breakpoint: 768, 2151 settings: { 2152 slidesToShow: 1, 2153 slidesToScroll: 1, 2154 } 2155 } 2156 ] 2157 } 2158 } else if( landscapeMobile !== "undefined" ){ 2159 responsive = { 2160 responsive: [ 2161 { 2162 breakpoint: 768, 2163 settings: { 2164 slidesToShow: landscapeMobile, 2165 } 2166 }, 2167 { 2168 breakpoint: 480, 2169 settings: { 2170 slidesToShow: 1, 2171 slidesToScroll: 1, 2172 } 2173 } 2174 ] 2175 } 2176 } else { 2177 responsive = { 2178 responsive: [ 2179 { 2180 breakpoint: 768, 2181 settings: { 2182 slidesToShow: 1, 2183 slidesToScroll: 1, 2184 dots: true, 2185 arrows: false, 2186 } 2187 } 2188 ] 2189 } 2190 } 2191 2192 args = jQuery.extend({}, args, responsive); 2193 2194 /* -----> Carousel init <-----*/ 2195 carousel.slick(args); 2196 2197 /* -----> Move buttons into dots container <-----*/ 2198 var dots = this_is.find('.slick-dots'); 2199 var prev_button = this_is.find('.slick-prev'); 2200 var next_button = this_is.find('.slick-next'); 2201 2202 if( dots.length > 0 && prev_button.length > 0 && next_button.length > 0 ){ 2203 jQuery('<div class="cws_navigation_wrapper"></div>').appendTo(carousel); 2204 2205 var paginationContainer = this_is.find('.cws_navigation_wrapper'); 2206 2207 prev_button.appendTo(paginationContainer); 2208 dots.appendTo(paginationContainer); 2209 next_button.appendTo(paginationContainer); 2210 } 2211 2212 }); 2213} 2214 2215function cws_portfolio_pagination_init (){ 2216 jQuery( ".cws_portfolio .pagination" ).each( function (){ 2217 var pagination = jQuery( this ); 2218 cws_portfolio_pagination ( pagination ); 2219 }); 2220 2221 jQuery('.cws_portfolio_fw .pagination').each( function (){ 2222 var pagination = jQuery( this ); 2223 cws_portfolio_pagination ( pagination , true ); 2224 }); 2225} 2226 2227function cws_portfolio_pagination ( pagination , is_fw ){ 2228 if ( pagination == undefined ) return; 2229 if (is_fw != undefined){ 2230 is_fw == is_fw ; 2231 }else{ 2232 is_fw == false ; 2233 } 2234 var old_page_links = pagination.find( ".page_links" ); 2235 var items = old_page_links.find( ".page-numbers:not(.dots)" ).not( ".current" ); 2236 if (is_fw) { 2237 var parent = pagination.closest( ".cws_portfolio_fw" ); 2238 }else{ 2239 var parent = pagination.closest( ".cws_portfolio" ); 2240 } 2241 2242 if (is_fw) { 2243 var grid = parent.find( ".grid_fw" ); 2244 }else{ 2245 var grid = parent.find( ".cws_portfolio_items" ); 2246 } 2247 2248 if (is_fw) { 2249 var ajax_data_input = parent.find( "input.cws_portfolio_fw_ajax_data" ); 2250 }else{ 2251 var ajax_data_input = parent.find( "input.cws_portfolio_ajax_data" ); 2252 } 2253 2254 items.each( function (){ 2255 var item = jQuery( this ); 2256 var url = item.attr( "href" ); 2257 var ajax_data = JSON.parse( ajax_data_input.val() ); 2258 var action_func; 2259 ajax_data['url'] = url; 2260 if (is_fw) { 2261 action_func = 'cws_portfolio_fw_pagination'; 2262 }else{ 2263 action_func = 'cws_portfolio_pagination'; 2264 } 2265 2266 item.on( "click", function ( e ){ 2267 e.preventDefault(); 2268 if ( wait_load_portfolio ) return; 2269 wait_load_portfolio = true; 2270 if (is_fw) { 2271 pagination.closest('.cws_portfolio_fw').find('.portfolio_loader_wraper').show(); 2272 }else{ 2273 pagination.closest('.cws_portfolio').find('.portfolio_loader_wraper').show(); 2274 } 2275 jQuery.post( ajaxurl, { 2276 "action" : action_func, 2277 "data" : ajax_data 2278 }, function ( data, status ){ 2279 var img_loader; 2280 var parent_offset = parent.offset().top; 2281 var old_items = jQuery( ".item", grid ); 2282 var new_items = jQuery( ".item", jQuery( data ) ); 2283 var new_page_links = jQuery( ".pagination .page_links", jQuery( data ) ); 2284 var new_page_links_exists = Boolean( new_page_links.children().length ); 2285 new_items.css( "display", "none" ); 2286 if (ajax_data['pagination_style'] != 'load_more') { 2287 grid.isotope( 'remove', old_items ); 2288 if ( window.scrollY > parent_offset ){ 2289 jQuery( 'html, body' ).stop().animate({ 2290 scrollTop : parent_offset 2291 }, 300); 2292 } 2293 } 2294 grid.append( new_items ); 2295 img_loader = imagesLoaded( grid ); 2296 img_loader.on( "always", function (){ 2297 grid.isotope( 'appended', new_items ); 2298 if (is_fw) { 2299 pagination.closest('.cws_portfolio_fw').find('.portfolio_loader_wraper').hide(); 2300 }else{ 2301 pagination.closest('.cws_portfolio').find('.portfolio_loader_wraper').hide(); 2302 } 2303 grid.isotope( 'layout' ); 2304 old_page_links.fadeOut( function (){ 2305 old_page_links.remove(); 2306 wait_load_portfolio = false;
2307 if ( new_page_links_exists ){ 2308 new_page_links.css( "display", "none" ); 2309 pagination.append( new_page_links ); 2310 new_page_links.fadeIn(); 2311 if (is_fw){ 2312 cws_portfolio_pagination ( pagination , true ); 2313 }else{ 2314 cws_portfolio_pagination ( pagination ); 2315 } 2316 } 2317 else{ 2318 pagination.remove(); 2319 } 2320 if (Retina.isRetina()) { 2321 jQuery(window.retina.root).trigger( "load" ); 2322 } 2323 cws_fancybox_init (); 2324 }); 2325 }); 2326 }); 2327 }); 2328 }); 2329} 2330 2331function cws_portfolio_filter_init (){ 2332 var els = jQuery( ".cws_portfolio .cws_portfolio_filter" ); 2333 els.each( function (){ 2334 var el = jQuery( this ); 2335 var parent = el.closest( ".cws_portfolio" ); 2336 var grid = parent.find( ".cws_portfolio_items" ); 2337 var ajax_data_input = parent.find( "input.cws_portfolio_ajax_data" ); 2338 var filter_el = el.children("a"); 2339 filter_el.on( "click", function (e){ 2340 2341 e.preventDefault(); 2342 jQuery( this ).addClass('active').siblings().removeClass('active'); 2343 var val = jQuery( this ).attr('data-filter'); 2344 var ajax_data = JSON.parse( ajax_data_input.val() ); 2345 ajax_data["filter"] = val; 2346 var old_pagination = parent.find( ".pagination" ); 2347 var old_page_links = jQuery( ".page_links", old_pagination ); 2348 2349 el.closest('.cws_portfolio_header').siblings( '.cws_wrapper' ).find('.portfolio_loader_wraper').show(); 2350 jQuery.post( ajaxurl, { 2351 "action" : "cws_portfolio_filter", 2352 "data" : ajax_data 2353 }, function ( data, status ){ 2354 var img_loader; 2355 var old_items = jQuery( ".item", grid ); 2356 var new_items = jQuery( ".item", jQuery( data ) ); 2357 var new_pagination = jQuery( ".pagination", jQuery( data ) ); 2358 var new_page_links = jQuery( ".page_links", new_pagination ); 2359 var new_page_links_exists = Boolean( new_page_links.children().length ); 2360 new_items.css( "display", "none" ); 2361 grid.isotope( 'remove', old_items ); 2362 grid.append( new_items ); 2363 el.closest('.cws_portfolio_header').siblings( '.cws_wrapper' ).find('.portfolio_loader_wraper').hide(); 2364 img_loader = imagesLoaded( grid ); 2365 img_loader.on( "always", function (){ 2366 grid.isotope( 'appended', new_items ); 2367 grid.isotope( 'layout' ); 2368 ajax_data_input.attr( "value", JSON.stringify( ajax_data ) ); 2369 if ( old_pagination.length ){ 2370 if ( new_page_links_exists ){ 2371 new_page_links.css( "display", "none" ); 2372 old_page_links.fadeOut( function (){ 2373 old_page_links.remove(); 2374 old_pagination.append( new_page_links ); 2375 new_page_links.fadeIn(); 2376 cws_portfolio_pagination ( old_pagination ); 2377 }); 2378 } 2379 else{ 2380 old_pagination.fadeOut( function (){ 2381 old_pagination.remove(); 2382 }); 2383 } 2384 } 2385 else{ 2386 if ( new_page_links_exists ){ 2387 new_pagination.css( "display", "none" ); 2388 parent.append( new_pagination ); 2389 new_pagination.fadeIn(); 2390 cws_portfolio_pagination ( new_pagination ); 2391 } 2392 } 2393 if (Retina.isRetina()) { 2394 jQuery(window.retina.root).trigger( "load" ); 2395 } 2396 cws_fancybox_init (); 2397 }); 2398 }); 2399 }); 2400 }); 2401} 2402 2403function cws_ourteam_pagination_init (){ 2404 var els = jQuery( ".cws_ourteam .pagination" ); 2405 els.each( function (){ 2406 var pagination = jQuery( this ); 2407 cws_ourteam_pagination( pagination ); 2408 }); 2409} 2410 2411function cws_ourteam_pagination ( pagination ){ 2412 if ( pagination == undefined ) return; 2413 var old_page_links = pagination.find( ".page_links" ); 2414 var items = old_page_links.find( ".page-numbers" ).not( ".current" ); 2415 var parent = pagination.closest( ".cws_ourteam" ); 2416 var grid = parent.find( ".cws_ourteam_items" ); 2417 var ajax_data_input = parent.find( "input.cws_ourteam_ajax_data" ); 2418 items.each( function (){ 2419 var item = jQuery( this ); 2420 var url = item.attr( "href" ); 2421 var ajax_data = JSON.parse( ajax_data_input.val() ); 2422 ajax_data['url'] = url; 2423 item.on( "click", function ( e ){ 2424 e.preventDefault(); 2425 jQuery.post( ajaxurl, { 2426 "action" : "cws_ourteam_pagination", 2427 "data" : ajax_data 2428 }, function ( data, status ){ 2429 var img_loader; 2430 var parent_offset = parent.offset().top; 2431 var old_items = jQuery( ".item", grid ); 2432 var new_items = jQuery( ".item", jQuery( data ) ); 2433 var new_page_links = jQuery( ".pagination .page_links", jQuery( data ) ); 2434 var new_page_links_exists = Boolean( new_page_links.children().length ); 2435 new_items.css( "display", "none" ); 2436 grid.isotope( 'remove', old_items ); 2437 if ( window.scrollY > parent_offset ){ 2438 jQuery( 'html, body' ).stop().animate({ 2439 scrollTop : parent_offset 2440 }, 300); 2441 } 2442 grid.append( new_items ); 2443 img_loader = imagesLoaded( grid ); 2444 img_loader.on( "always", function (){ 2445 grid.isotope( 'appended', new_items ); 2446 grid.isotope( 'layout' ); 2447 old_page_links.fadeOut( function (){ 2448 old_page_links.remove(); 2449 if ( new_page_links_exists ){ 2450 new_page_links.css( "display", "none" ); 2451 pagination.append( new_page_links ); 2452 new_page_links.fadeIn(); 2453 cws_ourteam_pagination ( pagination ); 2454 } 2455 else{ 2456 pagination.remove(); 2457 } 2458 if (Retina.isRetina()) { 2459 jQuery(window.retina.root).trigger( "load" ); 2460 } 2461 cws_fancybox_init (); 2462 }); 2463 }); 2464 2465 }); 2466 }); 2467 }); 2468} 2469 2470function cws_ourteam_filter_init (){ 2471 var els = jQuery( ".cws_ourteam select.cws_ourteam_filter" ); 2472 els.each( function (){ 2473 var el = jQuery( this ); 2474 var parent = el.closest( ".cws_ourteam" ); 2475 var grid = parent.find( ".cws_ourteam_items" ); 2476 var ajax_data_input = parent.find( "input.cws_ourteam_ajax_data" ); 2477 el.on( "change", function (){ 2478 var val = el.val(); 2479 var ajax_data = JSON.parse( ajax_data_input.val() ); 2480 ajax_data["filter"] = val; 2481 var old_pagination = parent.find( ".pagination" ); 2482 var old_page_links = jQuery( ".page_links", old_pagination ); 2483 jQuery.post( ajaxurl, { 2484 "action" : "cws_ourteam_filter", 2485 "data" : ajax_data 2486 }, function ( data, status ){ 2487 console.log(data); 2488 var img_loader; 2489 var old_items = jQuery( ".item", grid ); 2490 var new_items = jQuery( ".item", jQuery( data ) ); 2491 var new_pagination = jQuery( ".pagination", jQuery( data ) ); 2492 var new_page_links = jQuery( ".page_links", new_pagination ); 2493 var new_page_links_exists = Boolean( new_page_links.children().length ); 2494 new_items.css( "display", "none" ); 2495 grid.isotope( 'remove', old_items ); 2496 grid.append( new_items ); 2497 img_loader = imagesLoaded( grid ); 2498 img_loader.on( "always", function (){ 2499 grid.isotope( 'appended', new_items ); 2500 grid.isotope( 'layout' ); 2501 ajax_data_input.attr( "value", JSON.stringify( ajax_data ) ); 2502 if ( old_pagination.length ){ 2503 if ( new_page_links_exists ){ 2504 new_page_links.css( "display", "none" ); 2505 old_page_links.fadeOut( function (){ 2506 old_page_links.remove(); 2507 old_pagination.append( new_page_links ); 2508 new_page_links.fadeIn(); 2509 cws_ourteam_pagination ( old_pagination ); 2510 }); 2511 } 2512 else{ 2513 old_pagination.fadeOut( function (){ 2514 old_pagination.remove(); 2515 }); 2516 } 2517 } 2518 else{ 2519 if ( new_page_links_exists ){ 2520 new_pagination.css( "display", "none" ); 2521 parent.append( new_pagination ); 2522 new_pagination.fadeIn(); 2523 cws_ourteam_pagination ( new_pagination ); 2524 } 2525 } 2526 if (Retina.isRetina()) { 2527 jQuery(window.retina.root).trigger( "load" ); 2528 } 2529 cws_fancybox_init (); 2530 }); 2531 }); 2532 }); 2533 }); 2534} 2535 2536function widget_archives_hierarchy_init (){ 2537 widget_archives_hierarchy_controller ( ".cws-widget>ul li", "ul.children", "parent_archive", "widget_archive_opener" ); 2538 widget_archives_hierarchy_controller ( ".cws-widget .menu li", "ul.sub-menu", "menu-item-has-children", "opener" ); 2539} 2540 2541function widget_archives_hierarchy_controller ( list_item_selector, sublist_item_selector, parent_class, opener_class ){ 2542 jQuery( list_item_selector ).has( sublist_item_selector ).each( function (){ 2543 jQuery( this ).addClass( parent_class ); 2544 var sublist = jQuery( this ).children( sublist_item_selector ).first(); 2545 var level_height = jQuery( this ).outerHeight() - sublist.outerHeight(); 2546 jQuery(this).append( "<span class='fa fa-angle-right " + opener_class + "'></span>" ); 2547 }); 2548 jQuery( list_item_selector + ">" + sublist_item_selector ).css( "display", "none" ); 2549 2550 jQuery( document ).on( "click", "." + opener_class, function (){ 2551 var el = jQuery(this); 2552 var sublist = el.siblings( sublist_item_selector ); 2553 2554 if ( !sublist.length ) return; 2555 sublist = sublist.first(); 2556 2557 el.parent().toggleClass( "active" ); 2558 sublist.slideToggle( 300 ); 2559 }); 2560} 2561/****\ Pages filter/pagination/carousel declaration \****/ 2562 2563 2564/***** CWS Features declaration *****/ 2565 2566function cws_fs_video_bg_init (){ 2567 var slider_wrappers, header_height_is_set; 2568 header_height_is_set = document.getElementsByClassName( 'header_video_fs_view' ); 2569 2570 2571 if ( !header_height_is_set.length) return;
2572 cws_fs_video_slider_controller( header_height_is_set[0] ); 2573 window.addEventListener( 'resize', function (){ 2574 cws_fs_video_slider_controller( header_height_is_set[0] ); 2575 }); 2576} 2577function cws_fs_video_slider_controller ( el ){ 2578 cws_set_window_width( el ); 2579 cws_set_window_height( el ); 2580} 2581 2582function cws_slider_video_height (element){ 2583 var height_coef = element.attr('data-wrapper-height') 2584 if (height_coef) { 2585 if (window.innerWidth<960) { 2586 element.height(window.innerWidth/height_coef) 2587 }else{ 2588 element.height(960/height_coef) 2589 } 2590 } 2591} 2592 2593function boxed_var_init (){ 2594 var body_el = document.body; 2595 var children = body_el.childNodes; 2596 var child_class = ""; 2597 var match; 2598 window.boxed_layout = false; 2599 for ( var i=0; i<children.length; i++ ){ 2600 child_class = children[i].className; 2601 if ( child_class != undefined ){ 2602 match = /page_boxed/.test( child_class ); 2603 if ( match ){ 2604 window.boxed_layout = true; 2605 break; 2606 } 2607 } 2608 } 2609} 2610 2611var wait_load_posts = false; 2612 2613function reload_scripts(){ 2614 wp_standard_processing(); 2615 cws_fancybox_init(); 2616} 2617 2618function load_more_init (){ 2619 jQuery( document ).on( "click", ".cws_load_more", function (e){ 2620 e.preventDefault(); 2621 if ( wait_load_posts ) return; 2622 var el = jQuery(this); 2623 var url = el.attr( "href" ); 2624 var paged = parseInt( el.data( "paged" ) ); 2625 var max_paged = parseInt( el.data( "max-paged" ) ); 2626 var template = el.data( "template" ); 2627 var item_cont = el.parent().siblings( ".grid" ); 2628 var isotope = false; 2629 var args = { ajax : "true", paged : paged, template: template }; 2630 2631 if ( !item_cont.length ) return; 2632 el.closest('.cws_wrapper').find('.portfolio_loader_wraper').show(); 2633 wait_load_posts = true; 2634 jQuery.post( url, args, function ( data ){ 2635 var new_items = jQuery(data).filter( '.item' ); 2636 if ( !new_items.length ) return; 2637 new_items.css( 'display' , 'none' ); 2638 jQuery(item_cont).append( new_items ); 2639 el.closest('.cws_wrapper').find('.portfolio_loader_wraper').hide(); 2640 wait_load_posts = false; 2641 var img_loader = imagesLoaded( jQuery(item_cont) ); 2642 img_loader.on ('always', function (){ 2643 reload_scripts(); 2644 new_items.css( 'display', 'block' ); 2645 if ( jQuery(item_cont).isotope ){ 2646 jQuery(item_cont).isotope( 'appended', new_items); 2647 jQuery(item_cont).isotope( 'layout' ); 2648 } 2649 if (Retina.isRetina()) { 2650 jQuery(window.retina.root).trigger( "load" ); 2651 } 2652 if ( paged == max_paged ){ 2653 el.fadeOut( { duration : 300, complete : function (){ 2654 el.remove(); 2655 }}) 2656 } 2657 else{ 2658 el.data( "paged", String( paged + 1 ) ); 2659 } 2660 }); 2661 }); 2662 }); 2663} 2664 2665function cws_go_to_page_init(){ 2666 if(!not_desktop()){ 2667 var hashTagActive = false; 2668 2669 jQuery('.menu-item a').on('click', function(event) { 2670 if(!jQuery(this).hasClass("fancy") && jQuery(this).attr("href") != "#" && jQuery(this).attr("target") != "_blank"){ 2671 event.stopPropagation(); 2672 var anchor = jQuery(this).attr("href"); 2673 var link = anchor.replace('/#','#') 2674 var re = new RegExp( "^#.*$" ); 2675 var matches = re.exec( link ); 2676 2677 if ((matches == null && jQuery(this).attr("href").indexOf("#") != -1) || (!!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/))){ 2678 return true; 2679 } else { 2680 event.preventDefault(); 2681 } 2682 2683 if (hashTagActive) return; 2684 hashTagActive = true; 2685 2686 if (jQuery(this).attr("href").indexOf("#") != -1 && matches !== null){ 2687 2688 if (jQuery(link).length){ 2689 jQuery('html, body').animate({ 2690 scrollTop: jQuery(link).offset().top 2691 }, animation_curve_speed, animation_curve_menu, function () { 2692 hashTagActive = false; 2693 }); 2694 } 2695 2696 } else { 2697 jQuery('body').fadeOut(1000, newpage(anchor)); 2698 } 2699 2700 } 2701 }); 2702 2703 function newpage(e) { 2704 window.location = e; 2705 } 2706 } 2707} 2708 2709function cws_parallax_init(){ 2710 if (jQuery( ".cws_prlx_section" ).length) { 2711 jQuery( ".cws_prlx_section" ).cws_prlx(); 2712 }; 2713} 2714 2715function cws_clone_obj ( src_obj ){ 2716 var new_obj, keys, i, key, val; 2717 if ( src_obj == undefined || typeof src_obj != 'object' ) return false;
2718 new_obj = {}; 2719 keys = Object.keys( src_obj ); 2720 for ( i = 0; i < keys.length; i++ ){ 2721 key = keys[i]; 2722 val = src_obj[key]; 2723 new_obj[key] = val; 2724 } 2725 return new_obj; 2726} 2727 2728function cws_prlx_init_waiter (){ 2729 var interval, layers, layer_ids, i, layer_id, layer_obj, layer_loaded; 2730 if ( window.cws_prlx == undefined ){ 2731 return; 2732 } 2733 layers = cws_clone_obj( window.cws_prlx.layers ); 2734 interval = setInterval( function (){ 2735 layer_ids = Object.keys( layers ); 2736 for ( i = 0; i < layer_ids.length; i++ ){ 2737 layer_id = layer_ids[i]; 2738 layer_obj = window.cws_prlx.layers[layer_id]; 2739 layer_loaded = layer_obj.loaded; 2740 if ( layer_loaded ){ 2741 delete layers[layer_id]; 2742 } 2743 } 2744 if ( !Object.keys( layers ).length ){ 2745 clearInterval ( interval ); 2746 } 2747 }, 100); 2748} 2749 2750function cws_message_box_init (){ 2751 jQuery( document ).on( 'click', '.cws_msg_box_module .close_btn', function (){ 2752 var cls_btn = jQuery(this); 2753 var el = cls_btn.closest( ".cws_msg_box_module" ); 2754 el.fadeOut( function (){ 2755 el.remove(); 2756 }); 2757 }); 2758} 2759 2760function cws_milestone_init (){ 2761 jQuery.fn.cws_milestone = function (){ 2762 jQuery(this).each( function (){ 2763 var el = jQuery(this); 2764 var number_container = el.find(".cws_milestone_number"); 2765 var done = false; 2766 if (number_container.length){ 2767 if ( !done ) done = milestone_controller (el, number_container); 2768 jQuery(window).scroll(function (){ 2769 if ( !done ) done = milestone_controller (el, number_container); 2770 }); 2771 } 2772 }); 2773 } 2774} 2775 2776function milestone_controller (el, number_container){ 2777 var od, args; 2778 var speed = number_container.data( 'speed' ); 2779 var number = number_container.text(); 2780 if (el.is_visible()){ 2781 args= { 2782 el: number_container[0], 2783 format: 'd', 2784 }; 2785 if ( speed ) args['duration'] = speed; 2786 od = new Odometer( args ); 2787 od.update( number ); 2788 return true; 2789 } 2790 return false; 2791} 2792 2793function get_digit (number, digit){ 2794 var exp = Math.pow(10, digit); 2795 return Math.round(number/exp%1*10); 2796} 2797 2798function cws_progress_bar_init (){ 2799 jQuery.fn.cws_progress_bar = function (){ 2800 jQuery(this).each( function (){ 2801 var el = jQuery(this); 2802 var done = false; 2803 if (!done) done = progress_bar_controller(el); 2804 jQuery(window).scroll(function (){ 2805 if (!done) done = progress_bar_controller(el); 2806 }); 2807 }); 2808 } 2809} 2810 2811function progress_bar_controller (el){ 2812 if (el.is_visible()){ 2813 var progress = el.find(".progress_bar"); 2814 var value = parseInt( progress.attr("data-value") ); 2815 var width = parseInt(progress.css('width').replace(/%|(px)|(pt)/,"")); 2816 var ind = el.find(".indicator"); 2817 if ( width < value ){ 2818 var progress_interval = setInterval( function(){ 2819 width ++; 2820 progress.css("width", width+"%"); 2821 ind.text(width+'%'); 2822 if (width == value){ 2823 clearInterval(progress_interval); 2824 } 2825 }, 5); 2826 } 2827 return true; 2828 } 2829 return false; 2830} 2831 2832function cws_sticky_sidebars_init(){ 2833 //Check if function exist 2834 if (typeof jQuery.fn.theiaStickySidebar === 'function') { 2835 if (sticky_sidebars == 1 && !is_mobile() ){ 2836 jQuery('aside.sb_left, aside.sb_right').theiaStickySidebar({ 2837 additionalMarginTop: 60, 2838 additionalMarginBottom: 60 2839 }); 2840 } 2841 } 2842} 2843 2844function cws_set_window_width ( el ){ 2845 var window_w; 2846 if ( el != undefined ){ 2847 window_w = document.body.clientWidth; 2848 el.style.width = window_w + 'px'; 2849 } 2850} 2851function cws_set_window_height ( el ){ 2852 var window_h; 2853 if ( el != undefined ){ 2854 window_h = window.innerHeight; 2855 el.style.height = window_h + 'px'; 2856 } 2857} 2858 2859function single_sticky_content() { 2860 var item = jQuery(".cws_portfolio_single_content.sticky_cont"); 2861 var item_p = item.parent(); 2862 if(typeof item_p.theiaStickySidebar != 'undefined'){ 2863 item_p.theiaStickySidebar({ 2864 additionalMarginTop: 80, 2865 additionalMarginBottom: 30 2866 }); 2867 } 2868} 2869 2870function smooth_comment_link(){ 2871 if( jQuery('body').hasClass('single-post') || jQuery('body').hasClass('attachment') ){ 2872 jQuery('.post_comments a').on('click', function(e) { 2873 e.preventDefault(); 2874 2875 var href = jQuery(this).attr('href'); 2876 var anchor = href.split('#')[1]; 2877 2878 jQuery('html, body').animate({ 2879 scrollTop: jQuery('#'+anchor).offset().top 2880 }, 500) 2881 }); 2882 } 2883} 2884 2885function cws_widgets_on_tablet(){ 2886 if( cws_is_tablet_viewport() ){ 2887 var body = jQuery('body'); 2888 var widgetsTrigger = jQuery('.sidebar-tablet-trigger'); 2889 var aside = jQuery('.page_content aside'); 2890 var windowHeight = jQuery(window).height(); 2891 2892 var showTrigger = body.height() * 0.4; 2893 var widgetsPos = aside.attr('class'); 2894 2895 widgetsPos = 'trigger_'+widgetsPos; 2896 widgetsTrigger.addClass(widgetsPos); 2897 2898 jQuery(window).on('scroll', function() { 2899 if( jQuery(this).scrollTop() > showTrigger ) { 2900 widgetsTrigger.addClass('active'); 2901 } else { 2902 widgetsTrigger.removeClass('active'); 2903 } 2904 }); 2905 2906 widgetsTrigger.on('click', function() { 2907 aside.addClass('active'); 2908 body.addClass('oveflow-hidden'); 2909 jQuery('.aside_widgets_overlay').addClass('active'); 2910 }); 2911 2912 jQuery('.aside_widgets_overlay').on('click', function() { 2913 jQuery(this).removeClass('active'); 2914 aside.removeClass('active'); 2915 body.removeClass('oveflow-hidden'); 2916 }); 2917 } 2918} 2919 2920function cws_footer_on_bottom(){ 2921 if( jQuery(window).height() > jQuery('body').height() ){ 2922 jQuery('.copyrights_area').addClass('bottom_fixed'); 2923 } else { 2924 jQuery('.copyrights_area').removeClass('bottom_fixed'); 2925 } 2926} 2927 2928function scroll_to_top(){ 2929 jQuery(window).on('scroll', function() { 2930 if( jQuery(this).scrollTop() > 500 ){ 2931 jQuery('.scroll_to_top').addClass('active'); 2932 } else { 2933 jQuery('.scroll_to_top').removeClass('active'); 2934 } 2935 }); 2936 2937 jQuery('.scroll_to_top').on('click', function() { 2938 jQuery('html, body').animate({ 2939 scrollTop: 0 2940 }, 1000) 2941 }); 2942} 2943 2944function navigation_hold_post(){ 2945 jQuery('.nav_post_links .nav_post').on('click', function() { 2946 jQuery(this).addClass('active'); 2947 }); 2948} 2949 2950function cws_icons_wheel_init(){ 2951 jQuery('.cws_icons_wheel_module').each(function(i, el){ 2952 //Animate icons when module is visible 2953 var module_offset = jQuery(el).offset().top; 2954 2955 jQuery(window).on('scroll', function() { 2956 if( jQuery(window).scrollTop() + (jQuery(window).height() * 0.6) >= module_offset ){ 2957 jQuery(el).find('.icons_wheel_wrapper').addClass('active'); 2958 jQuery(el).find('.circle_wrapper').addClass('active'); 2959 2960 setTimeout(function(){ 2961 jQuery(el).find('.icons_wheel_wrapper').addClass('done'); 2962 }, 1400); 2963 } 2964 }); 2965 2966 //Wait for animation 2967 setTimeout(function(){ 2968 //Init main icons_wheel script 2969 if( jQuery(el).hasClass('on_hover') && !not_desktop() ){ 2970 cws_icons_wheel(jQuery(el), 'hover'); 2971 } else { 2972 cws_icons_wheel(jQuery(el), 'click'); 2973 } 2974 2975 //Module Autoplay 2976 if( jQuery(el).hasClass('autoplay') ){ 2977 var speed = jQuery(el).data('speed'); 2978 2979 //Autoplay init 2980 var wheel_interval = setInterval(function() { 2981 cws_icons_wheel_autoplay(jQuery(el)); 2982 }, speed); 2983 2984 if( jQuery(el).hasClass('on_hover') && !not_desktop() ){ 2985 //Remove autoplay on hover and start on hover off 2986 jQuery(el).find('.icon_wrapper').hover(function() { 2987 window.clearInterval(wheel_interval); 2988 }, function() { 2989 wheel_interval = setInterval(function() { 2990 cws_icons_wheel_autoplay( jQuery(el) ); 2991 }, speed); 2992 }); 2993 } else { 2994 //Remove autoplay on click 2995 jQuery(el).find('.icon_wrapper').on('click', function() { 2996 window.clearInterval(wheel_interval); 2997 }); 2998 } 2999 } 3000 }, 1400); 3001 }); 3002} 3003 3004function cws_icons_wheel(el, active_trigger){ 3005 jQuery(el).find('.icon_wrapper').on(active_trigger, function() { 3006 var trigger = jQuery(this).parent().data('trigger'); 3007 3008 jQuery(this).closest('.icons_wheel_wrapper').find('.icon_wrapper').removeClass('active'); 3009 jQuery(this).addClass('active'); 3010 3011 jQuery(this).closest('.icons_wheel_wrapper').find('.icons_wheel_info').removeClass('active'); 3012 jQuery(this).closest('.icons_wheel_wrapper').find('.icons_wheel_info[data-id="'+trigger+'"]').addClass('active'); 3013 }); 3014} 3015 3016function cws_icons_wheel_autoplay(el, speed){ 3017 var active_el = jQuery(el).find('.icon_wrapper.active'); 3018 var nextEl = active_el.parent().nextAll('.icons_wheel_icon'); 3019 nextEl = nextEl[0]; 3020 3021 if( typeof nextEl == 'undefined'){ 3022 nextEl = jQuery(el).find('.icons_wheel_icon:first-child'); 3023 } 3024 3025 jQuery(el).find('.icon_wrapper').removeClass('active'); 3026 jQuery(nextEl).find('.icon_wrapper').addClass('active'); 3027 3028 jQuery(el).find('.icons_wheel_info').removeClass('active'); 3029 jQuery(nextEl).next('.icons_wheel_info').addClass('active'); 3030} 3031 3032function cws_roadmap_before_end_point(){ 3033 if( jQuery('body').hasClass('rtl') ){ 3034 jQuery('.roadmap_row.breakpoint').find('.end_point').nextAll().addClass('before_end'); 3035 } else { 3036 jQuery('.roadmap_row.breakpoint').find('.end_point').prevAll().addClass('before_end'); 3037 } 3038} 3039 3040function cws_roadmap_animation(){ 3041 jQuery('.roadmap_row').each(function(i, el){ 3042 //Animate icons when module is visible 3043 var module_offset = jQuery(el).offset().top; 3044 3045 if( jQuery(window).scrollTop() + (jQuery(window).height() * 0.7) >= module_offset ){ 3046 jQuery(el).addClass('active'); 3047 } else { 3048 jQuery(window).on('scroll', function() { 3049 if( jQuery(window).scrollTop() + (jQuery(window).height() * 0.7) >= module_offset ){ 3050 jQuery(el).addClass('active'); 3051 } 3052 }); 3053 } 3054 }); 3055} 3056 3057function cws_benefits_init(){ 3058 if( !not_desktop() ){ 3059 cws_benefits_animation('hover'); 3060 } else { 3061 cws_benefits_animation('click'); 3062 } 3063 3064 cws_benefits_equal_height(); 3065} 3066function cws_benefits_animation(trigger){ 3067 jQuery('.cws_benefits_module').on(trigger, function() { 3068 jQuery(this).closest('.vc_row').find('.cws_benefits_module').addClass('hidden'); 3069 jQuery(this).removeClass('hidden'); 3070 }); 3071} 3072function cws_benefits_equal_height(){ 3073 jQuery('.cws_benefits_module').each(function(i, el){ 3074 if( jQuery(el).closest('.vc_row').hasClass('vc_row-o-equal-height') ){ 3075 jQuery(el).parent('.wpb_wrapper').css('height', '100%'); 3076 jQuery(el).css('height', '100%'); 3077 } 3078 }); 3079} 3080 3081function cws_infinite_autoplay(){ 3082 if( jQuery('.top_bar_ticker').length != 0 ){ 3083 jQuery('.top_bar_ticker').simplemarquee(); 3084 } 3085} 3086 3087function cws_countdown(){ 3088 if( jQuery('.countdown_clock').length != 0 ){ 3089 3090 var clock; 3091 var futureDate; 3092 var diff; 3093 var currentDate = new Date(); 3094 3095 jQuery('.countdown_clock').each(function(i, el){ 3096 futureDate = new Date(jQuery(el).data('time')); 3097 diff = futureDate.getTime() / 1000 - currentDate.getTime() / 1000; 3098 3099 clock = jQuery(el).FlipClock(diff, { 3100 clockFace: 'DailyCounter', 3101 countdown: true 3102 }); 3103 }); 3104 } 3105} 3106 3107function cws_calculator(){ 3108 jQuery('.calculate_form .quantity').on('input', function(){ 3109 var count = jQuery('.calculate_form .quantity').val(); 3110 var price = jQuery('.calculate_form .crypto_price').data('price'); 3111 3112 var result = count * price; 3113 3114 jQuery('.calculate_form .crypto_price').val(result); 3115 }); 3116} 3117/****\ CWS Features declaration \****/ 3118 3119/***** CWS Fixes declaration *****/ 3120 3121function cws_revslider_pause_init (){ 3122 var slider_els, slider_el, slider_id, id_parts, revapi_ind, revapi_id, i; 3123 var slider_els = document.getElementsByClassName( "rev_slider" ); 3124 window.cws_revsliders = {}; 3125 if ( !slider_els.length ) return; 3126 for ( i = 0; i < slider_els.length; i++ ){ 3127 slider_el = slider_els[i]; 3128 slider_id = slider_el.id; 3129 id_parts = /rev_slider_(\d+)(_\d+)?/.exec( slider_id ); 3130 if ( id_parts == null ) continue; 3131 if ( id_parts[1] == undefined ) continue; 3132 revapi_ind = id_parts[1]; 3133 revapi_id = "revapi" + revapi_ind; 3134 window.cws_revsliders[slider_id] = { 3135 'el' : slider_el, 3136 'api_id' : revapi_id, 3137 'stopped' : false 3138 } 3139 window[revapi_id].on( 'bind', 'revolution.slide.onloaded', function (){ 3140 cws_revslider_scroll_controller ( slider_id ); 3141 }); 3142 window.addEventListener( 'scroll', function (){ 3143 cws_revslider_scroll_controller ( slider_id ); 3144 }); 3145 } 3146} 3147function cws_revslider_scroll_controller ( slider_id ){ 3148 var slider_obj, is_visible; 3149 if ( slider_id == undefined ) return; 3150 slider_obj = window.cws_revsliders[slider_id];
3151 is_visible = jQuery( slider_obj.el ).is_visible(); 3152 if ( is_visible && slider_obj.stopped ){ 3153 window[slider_obj.api_id].revresume(); 3154 slider_obj.stopped = false; 3155 } 3156 else if ( !is_visible && !slider_obj.stopped ){ 3157 window[slider_obj.api_id].revpause(); 3158 slider_obj.stopped = true; 3159 } 3160} 3161 3162function cws_first_place_col(){ 3163 jQuery('.first_col_trigger').each(function(i, el) { 3164 jQuery(el).next().addClass('vc_inner_col-first-place'); 3165 }); 3166 3167 jQuery('.vc_col-first-place').closest('.vc_row').addClass('custom_flex_row'); 3168 jQuery('.vc_inner_col-first-place').closest('.vc_row').addClass('custom_inner_flex_row'); 3169} 3170 3171function staff_advanced_hover() { 3172 if( not_desktop() ){ 3173 jQuery('.staff_module_wrapper.style_advanced .staff_item_inner').on('click', function(e) { 3174 jQuery(this).closest('.cws_vc_shortcode_grid').find('.staff_item_inner').removeClass('active'); 3175 jQuery(this).addClass('active'); 3176 3177 e.preventDefault(); 3178 return false; 3179 }); 3180 } 3181} 3182 3183function cws_custom_inputs() { 3184 jQuery('.cws_input_mail').closest('p').addClass('cws_input_mail'); 3185 jQuery('.cws_submit_mail').closest('p').addClass('cws_submit_mail'); 3186 3187 jQuery('.big_input').closest('p').addClass('big_input'); 3188 jQuery('.submit_inside').closest('p').addClass('submit_inside'); 3189 jQuery('.second_color').closest('p').addClass('second_color'); 3190 jQuery('.full_width').closest('p').addClass('full_width'); 3191 jQuery('.width_50').closest('p').addClass('width_50'); 3192 jQuery('.float_right').closest('p').addClass('float_right'); 3193 3194 jQuery('.cws_standart_form').closest('form').addClass('cws_standart_form'); 3195 3196 jQuery('.wpcf7-form-control-wrap').children().each(function(i, el) { 3197 if( el.tagName == 'SELECT' ){ 3198 jQuery(el).parent().addClass('cws_custom_select'); 3199 } 3200 }); 3201} 3202 3203function cws_fix_styles_init(){ 3204 //Full width map fix 3205 jQuery('#wpgmza_map').closest('.cws-column').addClass('full_width_map'); 3206 3207 var browser = cws_detect_browser(); 3208 jQuery('body').addClass('browser_'+browser); 3209} 3210 3211function cryptop_services_hover(){ 3212 if( !not_desktop() ){ 3213 jQuery('.cws_service_module.scale_on_hover').hover( function() { 3214 jQuery(this).closest('.vc_row').find('.cws_column_wrapper').css('z-index', '1'); 3215 jQuery(this).closest('.cws_column_wrapper').css('z-index', '2'); 3216 }); 3217 } 3218} 3219 3220function cryptop_portfolio_tablet_hover(){ 3221 if( not_desktop() ){ 3222 jQuery('.portfolio_module_wrapper.cws_carousel_wrapper .item .item_content, .cws_vc_shortcode_grid .item .item_content').on('click', function(e) { 3223 if( !jQuery(this).hasClass('active') ){ 3224 jQuery('.item .item_content').removeClass('active'); 3225 jQuery(this).addClass('active'); 3226 e.preventDefault(); 3227 return false; 3228 } 3229 }); 3230 } 3231} 3232 3233function Video_resizer (){ 3234 if (element.length) { 3235 for (var i = element.length - 1; i >= 0; i--) { 3236 video_source = element[i].getAttribute("data-video-source"); 3237 video_id = element[i].getAttribute("data-video-id"); 3238 el_width = element[i].offsetWidth; 3239 3240 3241 if (element[i].offsetHeight<((el_width/16)*9)) { 3242 el_height = (element[i].offsetWidth/16)*9; 3243 }else{ 3244 el_height = element[i].offsetHeight; 3245 el_width = (el_height/9)*16; 3246 } 3247 var el_iframe = document.getElementById(element[i].getAttribute("data-video-id")); 3248 el_iframe.style.width = el_width+'px'; 3249 el_iframe.style.height = el_height+'px'; 3250 }; 3251 }; 3252} 3253 3254function vc_accordion_fix(){ 3255 jQuery('.vc_tta-panel-title').each(function(i, el){ 3256 if( jQuery(el).hasClass('vc_tta-controls-icon-position-right') ){ 3257 jQuery(el).closest('.vc_tta-panel').find('.vc_tta-panel-body').addClass('vc_tta-content-position-right'); 3258 } 3259 }); 3260} 3261 3262function embed_videos_height(){ 3263 jQuery('.cws_oembed_wrapper').each(function(i, el) { 3264 if( typeof jQuery(el).children('iframe').attr('src') !== 'undefined' && jQuery(el).children('iframe').attr('src') != '' ){ 3265 jQuery(el).addClass('video_inside'); 3266 } 3267 }); 3268} 3269 3270function cws_megamenu_active(){ 3271 jQuery('.menu-item-object-megamenu_item').each(function(i, el) { 3272 if( jQuery(el).find('.current_page_item').length != 0 ){ 3273 jQuery(el).addClass('current_page_ancestor'); 3274 } 3275 }); 3276} 3277 3278/****\ CWS Fixes declaration \****/ 3279 3280/********************************** 3281****** /SCRIPTS DECLARATION ******* 3282**********************************/ 3283 3284 3285/******************************************* 3286******** OTHER SCRIPTS DECLARATION ********* 3287*******************************************/ 3288 3289function is_visible_init (){ 3290 jQuery.fn.is_visible = function (){ 3291 return ( jQuery(this).offset().top >= jQuery(window).scrollTop() ) && ( jQuery(this).offset().top <= jQuery(window).scrollTop() + jQuery(window).height() ); 3292 } 3293} 3294
3295function cws_is_rtl(){ 3296 return jQuery("body").hasClass("rtl"); 3297} 3298 3299function cws_widget_divider_init (){ 3300 jQuery.fn.cws_widget_divider = function (){ 3301 jQuery(this).each( function (){ 3302 var el = jQuery(this); 3303 var done = false; 3304 if (!done) done = cws_widget_divider_controller(el); 3305 jQuery(window).scroll(function (){ 3306 if (!done) done = cws_widget_divider_controller(el); 3307 }); 3308 }); 3309 } 3310} 3311 3312function cws_widget_divider_controller (el){ 3313 if (el.is_visible()){ 3314 jQuery(el).addClass('divider_init'); 3315 return true; 3316 } 3317 return false; 3318} 3319 3320function cws_widget_services_init (){ 3321 jQuery.fn.cws_services_icon = function (){ 3322 jQuery(this).each( function (){ 3323 var el = jQuery(this); 3324 var done = false; 3325 if (!done) done = cws_icon_animation_controller(el); 3326 jQuery(window).scroll(function (){ 3327 if (!done) done = cws_icon_animation_controller(el); 3328 }); 3329 }); 3330 } 3331} 3332 3333function cws_icon_animation_controller (el){ 3334 if (el.is_visible() && jQuery(el).hasClass('add_animation_icon') ){ 3335 jQuery(el).addClass('icon_init'); 3336 return true; 3337 } 3338 return false; 3339} 3340 3341function hexdec(hex_string) { 3342 hex_string = (hex_string + '') 3343 .replace(/[^a-f0-9]/gi, ''); 3344 return parseInt(hex_string, 16); 3345} 3346 3347function cws_Hex2RGB(hex) { 3348 var hex = hex.replace("#", ""); 3349 var color = ''; 3350 if (hex.length == 3) { 3351 color = hexdec(hex.substr(0,1))+','; 3352 color = color + hexdec(hex.substr(1,1))+','; 3353 color = color + hexdec(hex.substr(2,1)); 3354 }else if(hex.length == 6){ 3355 color = hexdec(hex.substr(0,2))+','; 3356 color = color + hexdec(hex.substr(2,2))+','; 3357 color = color + hexdec(hex.substr(4,2)); 3358 } 3359 return color; 3360} 3361 3362function cws_detect_browser() { 3363 if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 ) 3364 { 3365 return 'Opera'; 3366 } 3367 else if(navigator.userAgent.indexOf("Chrome") != -1 ) 3368 { 3369 return 'Chrome'; 3370 } 3371 else if(navigator.userAgent.indexOf("Safari") != -1) 3372 { 3373 return 'Safari'; 3374 } 3375 else if(navigator.userAgent.indexOf("Firefox") != -1 ) 3376 { 3377 return 'Firefox'; 3378 } 3379 else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10 3380 { 3381 return 'IE'; 3382 } 3383 else 3384 { 3385 return 'unknown'; 3386 } 3387} 3388 3389/******************************************* 3390******* /OTHER SCRIPTS DECLARATION ********* 3391*******************************************/ 3392 3393 3394/************************************* 3395************** RETINA **************** 3396*************************************/ 3397 3398var retina = {}; 3399retina.root = (typeof exports === 'undefined' ? window : exports); 3400retina.config = { 3401 // An option to choose a suffix for 2x images 3402 retinaImageSuffix : '@2x', 3403 3404 // Ensure Content-Type is an image before trying to load @2x image 3405 // https://github.com/imulus/retinajs/pull/45) 3406 check_mime_type: true, 3407 3408 // Resize high-resolution images to original image's pixel dimensions 3409 // https://github.com/imulus/retinajs/issues/8 3410 force_original_dimensions: true 3411 }; 3412retina.config.retinaImagePattern = new RegExp( retina.config.retinaImageSuffix + "." ); 3413 3414(function() { 3415 function Retina() {} 3416 3417 window.retina.root.Retina = Retina; 3418 3419 Retina.configure = function(options) { 3420 if (options === null) { 3421 options = {}; 3422 } 3423 3424 for (var prop in options) { 3425 if (options.hasOwnProperty(prop)) { 3426 window.retina.config[prop] = options[prop]; 3427 } 3428 } 3429 }; 3430 3431 Retina.init = function(context) { 3432 if (context === null) { 3433 context = window.retina.root; 3434 } 3435 3436 var existing_onload = context.onload || function(){}; 3437 3438 context.onload = function() { 3439 var images = document.getElementsByTagName('img'), retinaImages = [], i, image; 3440 for (i = 0; i < images.length; i += 1) { 3441 image = images[i]; 3442 if ( !retina.config.retinaImagePattern.test(image.getAttribute("src")) ){ 3443 if (!!!image.getAttributeNode('data-no-retina')) { 3444 retinaImages.push(new RetinaImage(image)); 3445 } 3446 } 3447 } 3448 existing_onload(); 3449 }; 3450 }; 3451 3452 Retina.isRetina = function(){ 3453 var mediaQuery = '(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)'; 3454 3455 if (window.retina.root.devicePixelRatio > 1) { 3456 return true; 3457 } 3458 3459 if (window.retina.root.matchMedia && window.retina.root.matchMedia(mediaQuery).matches) { 3460 return true; 3461 } 3462 3463 return false;
3464 }; 3465 3466 3467 var regexMatch = /\.\w+$/; 3468 function suffixReplace (match) { 3469 return window.retina.config.retinaImageSuffix + match; 3470 } 3471 3472 function RetinaImagePath(path, at_2x_path) { 3473 this.path = path || ''; 3474 if (typeof at_2x_path !== 'undefined' && at_2x_path !== null) { 3475 this.at_2x_path = at_2x_path; 3476 this.perform_check = false; 3477 } else { 3478 if (undefined !== document.createElement) { 3479 var locationObject = document.createElement('a'); 3480 locationObject.href = this.path; 3481 locationObject.pathname = locationObject.pathname.replace(regexMatch, suffixReplace); 3482 this.at_2x_path = locationObject.href; 3483 } else { 3484 var parts = this.path.split('?'); 3485 parts[0] = parts[0].replace(regexMatch, suffixReplace); 3486 this.at_2x_path = parts.join('?'); 3487 } 3488 this.perform_check = true; 3489 } 3490 } 3491 3492 window.retina.root.RetinaImagePath = RetinaImagePath; 3493 3494 RetinaImagePath.confirmed_paths = []; 3495 3496 RetinaImagePath.prototype.is_external = function() { 3497 return !!(this.path.match(/^https?\:/i) && !this.path.match('//' + document.domain) ); 3498 }; 3499 3500 RetinaImagePath.prototype.check_2x_variant = function(callback) { 3501 var http, that = this; 3502 if (this.is_external()) { 3503 return callback(false); 3504 } else if (!this.perform_check && typeof this.at_2x_path !== 'undefined' && this.at_2x_path !== null) { 3505 return callback(true); 3506 } else if (this.at_2x_path in RetinaImagePath.confirmed_paths) { 3507 return callback(true); 3508 } else { 3509 return callback(false); 3510 } 3511 }; 3512 3513 3514 function RetinaImage(el) { 3515 this.el = el; 3516 this.path = new RetinaImagePath(this.el.getAttribute('src'), this.el.getAttribute('data-at2x')); 3517 var that = this; 3518 this.path.check_2x_variant(function(hasVariant) { 3519 if (hasVariant) { 3520 that.swap(); 3521 } 3522 }); 3523 } 3524 3525 window.retina.root.RetinaImage = RetinaImage; 3526 3527 RetinaImage.prototype.swap = function(path) { 3528 if (typeof path === 'undefined') { 3529 path = this.path.at_2x_path; 3530 } 3531 3532 var that = this; 3533 function load() { 3534 var width = that.el.offsetWidth; 3535 var height = that.el.offsetHeight; 3536 if ( !that.el.complete || !width || !height ) { 3537 setTimeout(load, 5); 3538 } else { 3539 if (window.retina.config.force_original_dimensions) { 3540 that.el.setAttribute('width', width); 3541 that.el.setAttribute('height', height); 3542 } 3543 3544 that.el.setAttribute('src', path); 3545 } 3546 } 3547 load(); 3548 }; 3549 3550 3551 if (Retina.isRetina()) { 3552 Retina.init(window.retina.root); 3553 } 3554})(); 3555 3556/************************************** 3557************** \RETINA **************** 3558**************************************/ 3559 3560 3561/******************************************************* 3562************** TIPR **************** 3563*******************************************************/ 3564(function($){$.fn.tipr=function(options){var set=$.extend({'speed':200,'mode':'bottom'},options);return this.each(function(){var tipr_cont='.tipr_container_'+set.mode;$(this).hover( function() 3565{var d_m=set.mode;if($(this).attr('data-mode')) 3566{d_m=$(this).attr('data-mode') 3567tipr_cont='.tipr_container_'+d_m;} 3568var out='<div class="tipr_container_'+d_m+'"><div class="tipr_point_'+d_m+'"><div class="tipr_content">'+$(this).attr('data-tip')+'</div></div></div>';$(this).append(out);var w_t=$(tipr_cont).outerWidth();var w_e=$(this).width();var m_l=(w_e / 2)-(w_t / 2);$(tipr_cont).css('margin-left',m_l+'px');$(this).removeAttr('title alt');$(tipr_cont).fadeIn(set.speed);},function() 3569{$(tipr_cont).remove();});});};})(jQuery); 3570/******************************************************* 3571************** \TIPR **************** 3572*******************************************************/
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.