var isMobile = false;
var isTablet = false;
// footer animation
var aniPlayed_1 = false;
// bring to life animation
var aniPlayed_2 = false;
document.addEventListener('DOMContentLoaded', function() {
if ( qs('#hero_vid') != null ) {
fader('hero_vid', 0, 1, 750, new Date().getTime());
}
if ( window.location.href.indexOf('caseview') > -1 ) { // disable page-swipe lock on caseviews having actual size ad overflows
if ( isMobile && ! isTablet ) {
qsa('.gwd-case-ad-bg')[0].style.display='none';
}
if ( isTablet ) {
document.body.style.overflowX='auto';
document.getElementsByTagName('html')[0].style.overflowX='auto';
}
}
});
function gwdStop(v) {
isPlaying = false;
v = '#'+v;
qs(v).pause();
qs(v).currentTime = 0;
qs(v).load();
}
function gwdEnded(v) {
isPlaying = false;
_sect = v.split('')[0];
if ( isMobile ) {
$('#' + _sect + 'Vid-mobile').get(0).webkitExitFullscreen(); // close ios native overlay
qs('#feat-vid-'+_sect).click(); // close modal
}
// clicks next paginate button in feat carousel (carousel_car.*.jinja)
qs(v).click();
}
function gwdPlay( v, isModal, modalPlay ) {
if (!isModal) {
isModal = false;
}
if (!modalPlay) {
modalPlay = false;
}
if (qs(v) === undefined ) return;
if ( isModal && ! modalPlay || v === null ) return;
var _promise, _v;
if ( v.id != null ) { // passed via 'this'
_promise = qs(v.id).play();
_v = document.getElementById(v.id);
} else if ( v != null ) { // else passed by id
_v = document.getElementById(v);
_promise = _v.play();
}
_v.addEventListener('webkitendfullscreen',
function() {closefs(_v);}, false);
isPlaying = true;
if ( _promise !== undefined ) {}
}
function closefs( v ) {
if ( ! ( document.fullScreenElement || document.webkitIsFullScreen == true || document.mozFullScreen || document.msFullscreenElement ) ) {
$('#' + v.id).get(0).webkitExitFullscreen(); // close ios modal
Object.keys(qsa('.glue-c-modal__close')).forEach(function(e) {
qsa('.glue-c-modal__close')[e].click();
});
}
}
var legalAccepted = false;
function openLegal(lang_pref) {
// var language = lang_pref.match(/\/intl\/([A-Za-z-]+)/);
// if ( language )
// qs('legal-iframe').src='https://www.google.com/policies/terms/embedded/?hl='+ language[1];
// else
// qs('legal-iframe').src='https://www.google.com/policies/terms/embedded/';
qsa('.gweb-lightbox-bg')[0].style.display = 'block';
qsa('.gweb-lightbox')[0].style.display = 'block';
$('html, body').animate({scrollTop: 0}, 'slow');
}
function closeLegal() {
qsa('.gweb-lightbox-bg')[0].style.display = 'none';
qsa('.gweb-lightbox')[0].style.display = 'none';
}
var feat_videos = {
//
// prefix semantics - i: interaction, f: flexible, a: animation, w: workflow
//
'i0': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Design_Interactive_Ads_Events_SCREEN.mp4?2|Events.png',
'i1': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Design_Interactive_Ads_Components_SCREEN.mp4?2|Components.png',
'i2': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Design_Interactive_Ads_Pages_SCREEN.mp4?2|Pages.png',
'f0': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Build_Responsive_Ads_Responsive_SCREEN.mp4?2|Responsive.png',
'f1': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Build_Responsive_Ads_Dynamic_SCREEN.mp4?2|Dynamic.png',
'a0': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Robust_Animation_Tools_Mode_SCREEN.mp4?2|timeline.png',
'a1': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Robust_Animation_Tools_3D_SCREEN.mp4?2|3D.png',
'w0': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Easy_Intuitive_Workflow_CCT_SCREEN.mp4?2|CCT.png',
'w1': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/Easy_Intuitive_Workflow_SGI_SCREEN.mp4?2|SGI.png',
't0': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/GWD-TempGlly-Video.mp4?2|template-gallery.png',
't1': 'https://storage.googleapis.com/bracket-web-designer.appspot.com/GWD-EasyMode-Video.mp4?2|easy-mode.png',
};
/*
vC: videoChanger (mobile thumb too)
video qs('#wVid').play();
compare current vid src to li's assigned source
and current section (cs) if different then
reassign current vid to new src
then animate between _next and _live
then swap classes and push next video in section
onto _next
*/
var _fids = ['a', 'w', 't', 'f', 'i'];
var isPlaying = false;
function vC( cs, isModal, jump ) {
if (!isModal) {
isModal = false;
}
if (!jump) {
jump = false;
}
if ( isPlaying && ! jump ) return;
if ( isMobile ) {
setTimeout(cb, 1); // pause to allow glue animation to complete
function cb() {
Object.keys(feat_videos).forEach(function(e) {
var es = e.split('')[0]; // element section
if ( qs(e) != null && ( ! qs(e).hasAttribute('aria-hidden')) && cs.valueOf() == e.split('')[0].valueOf() ) {
debounce( mobChange(), 1000 );
}
function mobChange() {
if ( qs(cs+'Vid-mobile').src === feat_videos[e].split('|')[0] ) return;
var _idx =_fids.indexOf(cs);
var _em = qsa('.feat-vid-mobile')[_idx];
if ( qs(cs+'Vid-mobile').src != feat_videos[e].split('|')[0] )
qs(cs+'Vid-mobile').src = feat_videos[e].split('|')[0];
_em.innerHTML = '\

\
';
if ( qs(_fids[_idx] + 'Vid-img').style.opacity != 1 )
qs(_fids[_idx] + 'Vid-img').style.opacity=1;
}
});
return; // return or not mobile and run cb() below
}
}
setTimeout(cb, 1100); // pause to allow glue animation to complete
function cb() {
Object.keys(feat_videos).forEach(function(e) {
var es = e.split('')[0]; // element section
var ep = e.split('')[1]; // element position
if ( $('#'+e).is(':visible') && cs.valueOf() == e.split('')[0].valueOf() &&
( ! qs( es +'Vid').classList.contains('gwd-fadein') || ! qs( es +'Vid').classList.contains('gwd-fadeout') ) ) {
if ( feat_videos[e].valueOf().split('|')[0] != qs( es +'Vid').src.valueOf() ) {
if ( feat_videos[e].valueOf().split('|')[0] != qs( es +'Vid').src ) {
qs( es +'Vid').classList.add('gwd-fadeout');
setTimeout( function() {
qs( es +'Vid').src = feat_videos[e].valueOf().split('|')[0];
qs( es +'Vid').classList.remove('gwd-fadeout');
qs( es +'Vid').classList.add('gwd-fadein');
}, 1000);
}
}
}
});
}
}
function fader(eid, initOp, finalOp, TimeToFade, time ) {
if ( initOp == 0 ) qs(eid).style.visibility='visible';
var curTick = new Date().getTime();
var elapsedTicks = curTick - time;
var newOp = initOp + ( finalOp-initOp ) * elapsedTicks / TimeToFade;
if ( Math.abs( newOp - initOp ) > Math.abs( finalOp-initOp ) ) {
qs(eid).style.opacity = finalOp;
if ( finalOp <= 0 ) qs(eid).style.visibility = 'hidden';
return false;
}
qs(eid).style.opacity=newOp;
setTimeout('fader( \'' + eid + '\',' + initOp + ',' + finalOp + ',' + TimeToFade + ',' + time + ')', TimeToFade/100);
return true;
}
var _iL;
var _iL2;
var _div;
var _div2;
var _div3;
function zoomIn( eid ) {
_eid = qs(eid);
_eid.classList.add('gwd-focusZoom');
_eid.style.opacity=1;
function scalez() {
if ( window.innerWidth < 951 )
qs('#gwd-focus-img').style.top=(950-window.innerWidth)/1.90+'px';
if ( window.innerWidth < 501 )
qs('#gwd-focus-img').style.top=-94+'px';
else
qs('#gwd-focus-img').style.top=0+'px';
}
window.addEventListener('resize', function() {
scalez();
});
scalez();
}
/* getParameterByName: util for debugging -- delete later */
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
function qs( e ) {
if ( typeof(e) === 'object') return e;
if ( e.indexOf('#') < 0 ) e = '#'+e;
return document.querySelector(e);
}
function qsa( e ) {
return document.querySelectorAll(e);
}
var platform_type;
$(document).ready( function() {
sd();
if (isMobileDevice()) {
isMobile = true; //(getParameterByName('mobile')) === 'true' ? getParameterByName('mobile') : false;
}
if ( getParameterByName('mobile') === 'true' ) { isMobile=true; }
makeFeatTags();
// formatsMode();
function isMobileDevice() {
if ( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
if (navigator.userAgent.match(/Tablet|iPad/i))
isTablet = true;
return true;
} else {
return false;
}
}
function sd() {
function isMacintosh() {
if (navigator.platform.indexOf('Mac') > -1 ) platform_type='mac';
return navigator.userAgent.indexOf('Mac') > -1
}
function isWindows() {
if (navigator.platform.indexOf('Win') > -1 ) platform_type='win';
return navigator.userAgent.indexOf('Win') > -1
}
function isLinux() {
if (navigator.platform.indexOf('Linux') > -1 && !navigator.platform.match(/Android/i)) {
platform_type='lin';
}
console.log('ptye: ' + platform_type)
return navigator.userAgent.indexOf('Linux') > -1
}
isMacintosh();
isWindows();
isLinux();
if (platform_type === 'win' || platform_type === 'mac') {
[].slice.call(document.querySelectorAll('.linux-selection')).forEach(function(el) { el.style.display = 'none' });
}
return ( isMacintosh() || isWindows() || isLinux() );
}
qs('#hamburger_cta').style.display = isMobile ? 'none' : 'initial';
if ( isMobile ) qsa('.h-c-header__drawer-cta')[0].style.boxShadow = 'none';
if ( qs('#gwd-footer-cta') && isMobile ) {
qs('#gwd-footer-cta').style.display = 'none';
}
if ( qs('#gwd-cta-1') ) {
qs('#gwd-footer-cta').style.display = isMobile ? 'none' : 'initial';
qs('#gwd-cta-1').disabled = isMobile ? true : false;
qs('#gwd-cta-1').innerHTML = isMobile ? document.getElementById("dyndl").getAttribute("button-var-false") : document.getElementById("dyndl").getAttribute("button-var-true");
qsa('.gwd-requirements')[0].style.display = isMobile ? 'none' : '';
qsa('.gwd-requirements')[0].style.opacity = qs('#gwd-cta-1').style.opacity=1;
}
if ( qs('#gwd-header_cta_1') ) {
qs('#gwd-header_cta_1').style.display = sd() ? 'block !important' : 'none !important';
qs('#gwd-header_cta_2').style.display = sd() ? 'block !important' : 'none !important';
}
function makeFeatTags() {
Object.keys( qsa('.feat-vid') ).forEach(function(e) {
var _e = qsa('.feat-vid')[e];
var _em = qsa('.feat-vid-mobile')[e];
if ( ! isMobile ) {
_e.innerHTML = '\
';
}
else {
_e.style.display = 'none';
_em.style.display = 'flex';
_em.innerHTML = '\

\
';
Object.keys( qsa('.gwd-car-row-desk') ).forEach(function(f) {
var _f = qsa('.gwd-car-row-desk')[f];
_f.classList.add('gwd-car-row-mobile')
_f.classList.remove('gwd-car-row-desktop');
});
}
});
}
function formatsMode() {
if ( isMobile ) {
qs('#carDesk').style.display = 'none';
qs('#carMobile').style.display = 'flex';
} else {
qs('#carDesk').style.display = 'grid';
qs('#carMobile').style.display = 'none';
}
}
}); // end of document ready
function isInViewport(e) {
if ( e === null || $(e).offset() === null ) return;
var et = $(e).offset().top;
var eb = et + $(e).outerHeight();
var vt = $(window).scrollTop();
var vb = vt + $(window).height();
var _test = eb > vt && et < vb;
return _test;
};
$(window).scroll(function() {
runBoundaryTests();
});
// var aniPlayed_3;
function runBoundaryTests() {
Object.keys(feat_videos).forEach(function(e) {
var es = e.split('')[0]; // element section
if ( qs(es+'Vid') === null ) return;
if ( isInViewport( '#' + es + 'Vid') ) {
gwdPlay( es + 'Vid', false, false);
qs( es +'Vid').classList.add('gwd-fadein');
} else {
if ( qs( es +'Vid') != null ) qs( es +'Vid').pause();
}
});
// ideas to life (upper) animation
if ( qs('#bound_test_1') ) {
_div2 = qs('#bound_test_1')
var bounding = _div2.getBoundingClientRect();
if (
isInViewport(_div2)
) {
if ( ! aniPlayed_2 ) {
// window.clearInterval( _iL2 );
aniPlayed_2 = true;
setTimeout(function() {
fader('gwd-life_bg', 0, 1, 600, new Date().getTime());
}, 1000);
setTimeout(function() {
fader('gwd-life_fg', 0, 1, 1000, new Date().getTime());
}, 600);
}
} else {
}
}
// footer focus design/develop animation
if ( qs('#gwd-focus-img') ) {
_div = qs('#gwd-focus-img')
var bounding = _div.getBoundingClientRect();
if (
isInViewport(_div)
) {
if ( ! aniPlayed_1 ) {
aniPlayed_1 = true;
setTimeout(function() {
fader('gwd-focus_bg', 0, 1, 600, new Date().getTime());
}, 1000);
setTimeout(function() {
fader('gwd-focus_codes', 0, 1, 600, new Date().getTime());
}, 1000);
setTimeout(function() {
fader('gwd-focus_mrec', 0, 1, 1000, new Date().getTime());
}, 600);
}
} else {
}
}
}