Four In A Row Online - Connect all 4 | Coolmath Games (2022)

You'll Also Like

'; } else { signupPromoTop = ''; signupContainerTop = '

' + signupPromoTop + '

'; } if (typeof signupPromoBottom !== 'undefined' && signupPromoBottom !== '') { signupContainerBottom = '

' + signupPromoBottom + '

'; } else { signupPromoBottom = ''; signupContainerBottom = '

' + signupPromoBottom + '

'; } function preroll_signup_top_handler() { trackEvent('Preroll Signup Clicked', 'Preroll Signup Top', document.title); } function preroll_signup_bottom_handler() { trackEvent('Preroll Signup Clicked', 'Preroll Signup Bottom', document.title);}

'); jQuery('#does-not-support-ie').show(); jQuery('#afg_preloader').css('display', 'none').html('

');; jQuery('#does-not-support-ie').html('Four In A Row Online - Connect all 4 | Coolmath Games (18) '); jQuery('.load-wrap').hide(); jQuery('#continue-container').hide(); jQuery('#afg_preloader').hide(); } function getGameName() { var url = window.location.href; var lastPart = url.split("/").pop(); return lastPart; } var coep_frame_type = 'crossorigin="use-credentials"'; if(/(Firefox)/.test(navigator.userAgent)) { coep_frame_type = 'allow="cross-origin-isolated"'; } function setIframeHeight(iframe) { if (iframe) { /* var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow; if (iframeWin.document.body) { iframe.height = iframeWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; } */ var gamename = getGameName(); if (gamename == "0-chess") { iframe.height = "620px"; } } }; jQuery(function(){ setIframeHeight(document.getElementById('html5game')); }); /** For big screen promo with list of games to appear */ function checkBigScreenPromoURL() { bigScreenPromoGame = false; if (bs_promo_pages.test(location.pathname)) { bigScreenPromoGame = true; jQuery(document).ready(function () { jQuery(".pane-bean-new-go-ad-free").html('Go Big Screen!'); jQuery('#right-rail-big-screen-promo').show(); }); } } checkBigScreenPromoURL(); /** ** check for marketing game promo for game page. check for specific games to make this popover appear. */ function checkAdfreeMktCmpgnURL() { AdfreeMktCmpGame = false; if ((typeof adfreeMktPages != 'undefined' && adfreeMktPages.test(location.pathname)) || (location.pathname == "/0-cannon-basketball") || (location.pathname == "/0-parking-fury")) { AdfreeMktCmpGame = true; jQuery(document).ready(function () { jQuery(".pane-bean-new-go-ad-free").html('Go Big Screen!'); jQuery('#right-rail-adfree-marketing-promo').show(); }); } } checkAdfreeMktCmpgnURL(); /** ** check for playlist marketing game promo for game page. check for specific games to make this popover appear. */ function checkPlaylistMktCmpgnURL() { playListMktCmpGame = false; if (playlistMktPages.test(location.pathname)) { playListMktCmpGame = true; jQuery(document).ready(function () { jQuery('.playlist-right-side-promo').show(); }); } } checkPlaylistMktCmpgnURL(); function checkPremiumAvatarURL() { premiumAvatarGame = false; if(typeof premiumAvatarMktPages != 'undefined' && premiumAvatarMktPages.test(location.pathname) || (location.pathname == "/0-moto-x3m-winter") || ( location.pathname == '/0-redline-pong')) { if (gamesPlayed == 2 || gamesPlayed == 8) { schoolHours = false;//display all the time premiumAvatarGame = true; } // setting the default premiumAvatarGameABTest if (getCookie('cmg_fx') !== null && getCookie('cmg_sx') == null) { var planToSubscription = '67361110'; } else { var planToSubscription = '553bdf22'; } // logged in free user jQuery(document).ready(function () { jQuery(".pane-bean-new-go-ad-free").html('Go Big Screen!'); jQuery('.premium-avatar-right-side-promo').show(); }); var gamePageBarPromo = 'GET THE AVATAR: GO PREMIUM'; gamePageBarPromoActionText = 'Get Premium '; var pathpromobarsubscriptionform = '/subscribe/' + planToSubscription; jQuery('.gamepage-signup-promo').hide(); jQuery('#block-cmatgame-cmatgame-system-main').append('

' + gamePageBarPromo + '

' + gamePageBarPromoActionText + '

'); } } function checkPlayedGames() { // this is for supportCMG A/B Test gamesPlayed = navigator.cookieEnabled ? parseInt(localStorage.getItem('gamesPlayed') || 0) : 0; sessionGamesPlayed = navigator.cookieEnabled ? parseInt(sessionStorage.getItem('sessionGamesPlayed') || 0) : 0; //localStorage.setItem('gamesPlayed', ++ gamesPlayed) if(navigator.cookieEnabled) { localStorage.setItem('gamesPlayed', 0); sessionStorage.setItem('sessionGamesPlayed', ++ sessionGamesPlayed); } checkPremiumAvatarURL(); } /** ** For CMG default screen promo with list of games to appear */ function checkCMGDefaultExceptionURL() { supportCMG = false; if(!cmgDefaultGameUrl.test(location.pathname) && (typeof gamesPlayed != "undefined" && (gamesPlayed == 2 || gamesPlayed == 8))) { supportCMG = true; schoolHours = false; // display all the time if (getCookie('cmg_fx') !== null && getCookie('cmg_sx') == null) { var planToSubscription = 'd61242ac'; } else { var planToSubscription = '0735a1f2'; } // logged in free user jQuery(document).ready(function () { jQuery(".pane-bean-new-go-ad-free").html('Go Big Screen!'); jQuery('.cmgdefault-right-side-promo').show(); }); var gamePageBarPromo = 'GO PREMIUM: THE BEST GAMING EXPERIENCE'; gamePageBarPromoActionText = 'Get Premium '; var pathpromobarsubscriptionform = '/subscribe/' + planToSubscription; jQuery('.gamepage-signup-promo').hide(); jQuery('#block-cmatgame-cmatgame-system-main').append('

' + gamePageBarPromo + '

' + gamePageBarPromoActionText + '

'); } } checkPlayedGames(); // need to comment this settimebased();function call to prevent it run on page load, it should start work on // game load. //settimebased(); checkCMGDefaultExceptionURL(); if (isUserValidFreeUserOrSubscriber()) { var userprofileData = JSON.parse(localStorage.getItem("userprofile")); var levelofcompletedgame = 1; for (var i = 0; i < userprofileData.mygameslist.length; i++) { if (userprofileData.mygameslist[i].id == gameId) { var levelbasedCompletedStatus = userprofileData.mygameslist[i].timebasedcompletedSt; var levelofcompletedgame = userprofileData.mygameslist[i].level; } } } var workerstatusvar = "no"; var count = 0; var myInterval; // Active function chkIdleOnpage() { var userActivityTime = Date.now(); // check if user activity is not there more than 55 min 60000*55 = 3300000 if (userActivityTime - lastKeyBoardorMouseActivityTime > 3300000) { if (typeof(w) != "undefined") { workerstatusvar = "terminated"; w.terminate(); w = undefined; } } else { // May be keyboard is active start new worker settimebased(); } } // Inactive if (!is_level_based) { // check idle time in every 5 min 60000 * 5 = 300000 idleOnPageCheckTimer = setInterval(function () { chkIdleOnpage() }, 300000); } function settimebased() { if (!is_level_based) { jQuery(document).ready(function () { if (isUserValidFreeUserOrSubscriber()) { window.addEventListener("beforeunload", function (e) { saveUserProgress(); }); if (typeof(Worker) !== "undefined") { if (typeof(w) == "undefined") { w = new Worker("/modules/custom/cmatgame_userprofile/js/userprogress_workers.js"); w.onmessage = function (event) { var userActivityTime = Date.now(); // save userprofile object back to localstorage // if(userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) { userprofile = event.data; localStorage.setItem("userprofile", JSON.stringify(userprofile)); // display game progressbar on game pages if (typeof gameId != "undefined") { display_game_progressbar(gameId); } // display user progressbar display_user_profile_progressbar(); //adding save userprogress back to api server saveUserProgress(); // } }; var userprofile = localStorage.getItem("userprofile"); setTimeout(function () { var userprofile = localStorage.getItem("userprofile"); var currentGameData = searchGamesById(gameId); if(typeof drupalSettings.cmatgame != "undefined" && typeof drupalSettings.cmatgame.flash_emulation != "undefined" && drupalSettings.cmatgame.flash_emulation == 0 ) { //Do nothing here } else if (typeof w != 'undefined') { w.postMessage([ gameId, xp_per_level, userprofile, currentGameData, cmatgameSearchGames, userprofile_level_xpData ]); } }, 60000); // setInterval(function () { updateMyGamesTimeSpent1(gameId) }, 60000); } } } }); } } // Stop timer function stopTimer() { count = 0; if (workerstatusvar == "terminated") { settimebased(); workerstatusvar = "started"; } window.clearInterval(myInterval); } function checkKeyboardOrMouseActivity() { lastKeyBoardorMouseActivityTime = Date.now(); if (!is_level_based) { if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { // html 5 game } else { stopTimer(); } } } function startTimer() { // for flash based game check idle time in every 5 min 60000 * 5 = 300000 myInterval = window.setInterval(timerHandler, 30000); } function timerHandler() { count++; // count of flash based game will for 55 rounds if (count == 55) { workerstatusvar = "terminated"; if (typeof w !== 'undefined') { w.terminate(); w = undefined; } } } document.addEventListener("mousemove", checkKeyboardOrMouseActivity, false); document.addEventListener('keydown', checkKeyboardOrMouseActivity, false); document.addEventListener("keypress", checkKeyboardOrMouseActivity, false); document.addEventListener("touchmove", checkKeyboardOrMouseActivity, false); if(!is_level_based) { if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { // html 5 game document.addEventListener("visibilitychange", function() { if(document.visibilityState == 'hidden') { //startTimer(); if(typeof idleOnPageCheckTimer !== 'undefined') { clearInterval(idleOnPageCheckTimer); } /*** need to remove below workerstatusvar variable. position changed . it should be under if codition where worker undefine ***/ // workerstatusvar = "terminated"; if (typeof w !== 'undefined') { w.terminate(); w = undefined; workerstatusvar = "terminated"; } } else if (document.visibilityState == 'visible') { stopTimer(); // starts worker. } }, false); } else { // flash game window.addEventListener('focus', stopTimer); window.addEventListener('blur', startTimer); // Check browser minimize document.addEventListener("visibilitychange", function () { if (document.visibilityState == 'hidden') { startTimer(); } else if (document.visibilityState == 'visible') { stopTimer(); } }, false); startTimer(); } } // end of !is_level_based function putSharedObjectsInDB(syncData) { flashStorage = syncData; saveUserProgress(); } isRemoveAdSwfJWPLayer = false; prerollAdDisplayed = false; //use this when switching from mobile view to desktop view and preroll ad was not shown earlier prerollAdStart = ""; prerollAdEnd = ""; // Testing Overlay for Watch Ad To Unlock Games // var watchAdtoUnlockGame = true; // var schoolHours = false; // //console.log('supportCMG is true'); window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { // console.log("message received2 from " + event.origin + " : " + event.data); var valid_domain_msg = false; if (/coolmathgames\.com|coolmathgames\.local|coolmathgames/.test(event.origin)) { valid_domain_msg = true; } if(valid_domain_msg && event.data == "cmgGameEventStatic") { ga4_trackEvent("cmgGameEventStatic", ); } else if (event.data == "continue-without-big-screen" && jQuery('#big-screen-overlay').length && valid_domain_msg) { // close overlay if (jQuery('#big-screen-overlay').length) { jQuery('#big-screen-overlay').hide(); if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } cmg_bigscreen_trackevent('closesignup', cmg_bsft); } } else if (event.data == "continue-with-login-big-screen" && jQuery('#big-screen-overlay').length && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data); cmg_bigscreen_trackevent('closesignup2login', cmg_bsft); jQuery('#big-screen-overlay').hide(); if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } window.location = "/login?destination=" + window.location.pathname; } else if (event.data == "continue-premium-big-screen" && (jQuery('#big-screen-overlay').length || jQuery('#pr-profile-screen-overlay').length) && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data); cmg_bigscreen_trackevent('playgame after signup', cmg_bsft); jQuery('#big-screen-overlay').hide(); jQuery('#pr-profile-screen-overlay').hide(); if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } window.location.reload(); } else if (event.data == "big-screen-profile-customize" && (jQuery('#big-screen-overlay').length || jQuery('#pr-profile-screen-overlay').length) && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data); cmg_bigscreen_trackevent('profile customize after signup', cmg_bsft); jQuery('#big-screen-overlay').hide(); jQuery('#pr-profile-screen-overlay').hide(); if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } if (getCookie('cmg_fx') !== null) { window.location = '/profile/' + getCookie('cmg_fx').toLowerCase() + '/edit'; } } else if (event.data == "big-screen-premium-benefits" && jQuery('#big-screen-overlay').length && valid_domain_msg) { // console.log("BIGSCREEN message received2 from " + event.origin + " : " + event.data); cmg_bigscreen_trackevent('see premium benefits after signup', cmg_bsft); jQuery('#big-screen-overlay').hide(); if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } if (getCookie('cmg_fx') !== null) { window.location = '/premium-benefits'; } } else if (event.data == "keypress-from-game") { checkKeyboardOrMouseActivity(); } else if (event.origin === "https://copterroyale.coolmathgames.com" || event.origin === "https://copterroyale2.coolmathgames.com" || event.origin === "https://powerline.coolmathgames.com") { var eventObject = JSON.parse(event.data); if (eventObject.eventType == "gameEvent") { cmgGameEvent(eventObject.key, eventObject.value); } else if (eventObject.eventType == "dataEvent") { cmgDataEvent(eventObject.key, eventObject.value); } } else if (event.origin == 'https://hangman-backend.coolmathgames.com' || event.origin == 'https://hangman-frontend.coolmathgames.com' || event.origin == 'https://hangmanqa-frontend.coolmathgames.com' || event.origin == 'https://hangmanqa.coolmathgames.com') { var eventObject = JSON.parse(event.data); if (eventObject.eventType == "gameEvent") { cmgGameEvent("Hangman "+eventObject.key, eventObject.value); } else if (eventObject.eventType == "dataEvent") { cmgDataEvent("Hangman "+eventObject.key, eventObject.value); } } else if (event.origin == 'https://wordrace-4inrow-stage.coolmathgames.com' || event.origin == 'https://wordrace-4inrow.coolmathgames.com' ) { var eventObject = JSON.parse(event.data); var eventGame = "wordrace"; if(/0-four-in-a-row/.test(location.pathname)) { eventGame = "fourinarow"; } if (eventObject.eventType == "gameEvent") { cmgGameEvent(eventGame+" "+eventObject.key, eventObject.value); } else if (eventObject.eventType == "dataEvent") { cmgDataEvent(eventGame+" "+eventObject.key, eventObject.value); } } else if (event.origin == 'https://hexanaut.coolmathgames.com') { var eventObject = JSON.parse(event.data); var eventGame = "hexanaut"; if (eventObject.eventType == "gameEvent") { cmgGameEvent(eventGame+" "+eventObject.key, eventObject.value); } else if (eventObject.eventType == "dataEvent") { cmgDataEvent(eventGame+" "+eventObject.key, eventObject.value); } } else if (event.origin == 'https://cheerpx.coolmathgames.com' || event.origin == 'https://cheerpx-prod.coolmathgames.com') { console.log("cmg cheerpx: cmgHandleMessage "+event.data); //close loading screen closeCmgCheerpxLoadingScreen(); // Remove Narrow screen loading closeCmgCheerpxLoadingScreenResized(); } else if (event.origin == 'https://www.coolmath-games.com' || event.origin != 'https://d8-dev.coolmathgames.com') { if (event.data.eventType == "syncEventPut") { syncData = event.data.syncJSON; putSharedObjectsInDB(syncData); } if (event.data.eventType == "syncEventGet") { if (typeof flashStorageFromDB != "undefined") { // restoring flash shared objects from DB for (var i = 0; i < flashStorageFromDB.length; i++) { flashStorageFromDB[i].swfdata = decodeURI(flashStorageFromDB[i].swfdata); } document.getElementById('swfgame').contentWindow.postMessage({ 'eventType': 'syncEventGet', 'soData': flashStorageFromDB }, '*'); } else { document.getElementById('swfgame').contentWindow.postMessage({ 'eventType': 'gamePlay' }, '*'); } } } else { return; } } // var signupPromoTop = 'Join to Play Ad-Free'; var signupPromoBottom = 'Join to Skip All Ads'; if (typeof signupPromoTop !== 'undefined' && signupPromoTop !== '') { signupContainerTop = '

' + signupPromoTop + '

'; } else { signupPromoTop = ''; signupContainerTop = '

' + signupPromoTop + '

(Video) Four in a row hack Game Pigeon(CONNECT FOUR STRATEGY) 2022 *it works!!*(Online Business, E-Commerce)

'; } if (typeof signupPromoBottom !== 'undefined' && signupPromoBottom !== '') { signupContainerBottom = '

' + signupPromoBottom + '

'; } else { signupPromoBottom = ''; signupContainerBottom = '

' + signupPromoBottom + '

'; } function preroll_signup_top_handler() { trackEvent('Preroll Signup Clicked', 'Preroll Signup Top', document.title); } function preroll_signup_bottom_handler() { trackEvent('Preroll Signup Clicked', 'Preroll Signup Bottom', document.title); } // we will define this varialbe signUpURLABTest in experiments.js var cmg_upg_days_limit = 180; var user_dst = window.location.pathname; user_dst = user_dst.replace("\/", ""); if (window.location.host !== 'cmatgame.local') { if (typeof signUpURL === 'undefined' || signUpURL === '') { signUpURL = '/premium-access/ b2df5a33?origin=' + user_dst; } else { signUpURL = signUpURL + '?origin=' + user_dst; } } else if (typeof signUpURLABTest === "undefined" || signUpURLABTest === null) { signUpURL = 'https://' + window.location.hostname + '/premium-access/ b2df5a33?origin=' + user_dst; } else { signUpURL = signUpURLABTest; } function subscription_promo_handler() { if (typeof freeTrialUser !== 'undefined' && freeTrialUser) { trackEvent('Premium Subscription ' + subscriberLeg, 'Subscription overlay clicked', userPlayedGames); trackGoalVirtualPV('/virtual/subscription-overlay-click'); } return; } function subscriptionSignUpUrl() { var user_played_games = ''; var zeroFreeGamesLeftUsers = localStorage.getItem("zeroFreeGamesLeftUsers"); if (typeof userPlayedGames !== 'undefined' && userPlayedGames) { user_played_games = "upg=" + userPlayedGames; } else { user_played_games = "upg=0"; } if (zeroFreeGamesLeftUsers !== null && user_played_games !== '') { user_played_games = user_played_games + '&zfg=' + zeroFreeGamesLeftUsers; } else if (zeroFreeGamesLeftUsers !== null) { user_played_games = 'zfg=' + zeroFreeGamesLeftUsers; } if (typeof signUpURL !== 'undefined' && signUpURL !== null && signUpURL.indexOf('upg') === -1) { if (signUpURL.indexOf('?random_true') > -1) { signUpURL = signUpURL.replace('?random_true', ''); } if (signUpURL.indexOf('?') > -1) { signUpURL = signUpURL + '&' + user_played_games; } else { signUpURL = signUpURL + '?' + user_played_games; } } } function updateMyGamesTimeSpent(gameId) { var userActivityTime = Date.now(); // if(userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) { //user is active on page for last 60 seconds, so we can add this as his XP if (currentTimeInterval >= 2) { currentTimeInterval = 0; if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers saveMyGames(gameId, 0, 1); currentTime = userActivityTime; } } else { currentTimeInterval = currentTimeInterval + 1; saveUserProgress(); // save user progress every 20 sec } // } } function updateMyGamesTimeSpent1(gameId) { if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers if (userActivityTime - lastKeyBoardorMouseActivityTime <= 60000) { saveMyGames(gameId, 0, 1); } } } function updateMyGamesTimeSpentLevelBase(gameId, level) { if (isUserValidFreeUserOrSubscriber()) { // save MyGames only for subscribers saveMyGames(gameId, 1, level); } } /* if(!is_level_based) { var objGameNode = {}; objGameNode[gameId] = "yes"; localStorage.setItem("runoncestarted", JSON.stringify(objGameNode)); setInterval(function () { updateMyGamesTimeSpent1(gameId) }, 60000); } */ if (is_level_based) { var userActivityTime = Date.now(); // for level based game. check if user activity is not there more than 55 min 60000*55 = 3300000 if (userActivityTime - lastKeyBoardorMouseActivityTime <= 3300000) { var objGameNode = {}; objGameNode[gameId] = "no"; var localgamestrate = "storagelocal-" + gameId + "-storagelocal"; localStorage.setItem("runoncestarted", JSON.stringify(objGameNode)); localStorage.setItem(localgamestrate, "no"); updateMyGamesTimeSpentLevelBase(gameId, levelofcompletedgame) } } function cmgGetCheerpxUrl() { var cheerpxUrl = 'https://cheerpx-prod.coolmathgames.com/cheerpx.html?f='; if(location.host != "www.coolmathgames.com" && !/(Firefox)/.test(navigator.userAgent)) { cheerpxUrl = 'https://cheerpx.coolmathgames.com/cheerpx.html?f='; } return cheerpxUrl; } function displayCmgCheerpxLoadingScreen() { //todo -- use the iframe widht and height //jQuery("#swfgame").parent().before("

Loading...

") jQuery("#swfgame").parent().before('

Your Flash game is loading
it may take longer than usual

'); } // Narrow Screen Loading Screen function displayCmgCheerpxLoadingScreenResized(){ jQuery("#swfgame").parent().before('

Your Flash game is loading
it may take longer than usual

'); } function closeCmgCheerpxLoadingScreen() { jQuery("#cmg-cheerpxloading-screen").remove(); } // Removing Narrow Screen Loading Screen function closeCmgCheerpxLoadingScreenResized(){ if($("#cmg-cheerpxloading-screen-resized").length > 0){ jQuery("#cmg-cheerpxloading-screen-resized").remove(); } } /* * Remove remove Preroll And Display Game. Old function name: removePrerollAndDisplayGame(). */ function cmg_remove_padg() { //homepage continue playing lastplayedgame - cmg_lpg if(gameId) { localStorage.setItem("cmg_lpg", gameId); } settimebased(); prerollAdDisplayed = true;//This is to be invoked after preroll ad is done; if(document.documentElement.clientWidth >= 960 - ( window.innerWidth-jQuery(document).width() )) { prerollAdEnd = "dtp"; } else { prerollAdEnd = "mob"; } if (isRemoveAdSwfJWPLayer) { // remove preroll only once } else { // record current time to calculate how much time user spent on playing the current game currentTime = Date.now(); currentTimeInterval = 0; // call this only for timebased games // TODO save game progress /*if(!is_level_based) { setInterval(function () { updateMyGamesTimeSpent(gameId) }, 20000); } */ jQuery("#my-content").css("opacity", "1"); if (typeof intervalId != "undefined") { clearInterval(intervalId); } jQuery("#afg_container").remove(); jQuery("#afg_preloader").remove(); jQuery("#continue-container").remove(); if (!drupalSettings.cmatgame.swfembed) { // html5 game game width, game height and game type game_width = jQuery("#html5game").attr("width"); game_height = jQuery("#html5game").attr("height"); game_type = "html5"; // IE Detection and Version grabbing ie = false; var html5_game_url = jQuery("#html5game").attr("src"); var swf_game_url = jQuery("#swfgame").attr("src"); if( (/hangman/.test(html5_game_url) || /85380/.test(gameId) ) && typeof getParameterByName != "undefined") { var qLobby = getParameterByName("private-lobby"); var qPlay = getParameterByName("play"); var qXid = getParameterByName("xid"); if(typeof qLobby != "undefined" && typeof qXid != "undefined" && qLobby !== "" && qXid !== "" && html5_game_url.indexOf("hangman") && html5_game_url.indexOf("/home") ) { html5_game_url = html5_game_url.replace("/home", "/private-lobby/" +qLobby + "/" +qXid); } else if(typeof qPlay != "undefined" && typeof qXid != "undefined" && qPlay !== "" && qXid !== "" && html5_game_url.indexOf("hangman") && html5_game_url.indexOf("/home")) { html5_game_url = html5_game_url.replace("/home", "/play/" + qPlay + "/" +qXid); } } else if( /bloobio|bloob\.io/.test(html5_game_url) && typeof getParameterByName != "undefined") { var qLobby = getParameterByName("private-lobby"); if(typeof qLobby != "undefined" && qLobby !== "") { html5_game_url = html5_game_url + '/'+qLobby; } if(typeof drupalSettings.language != "undefined" && drupalSettings.language != "en") { if(!/locale=/.test(html5_game_url)) { html5_game_url = html5_game_url + "?locale="+drupalSettings.language; } var isMobile = cmg_is_mobile_device(); if(isMobile && !/mobile=/.test(html5_game_url)) { html5_game_url = html5_game_url + "&mobile=true"; } } } if (typeof swf_game_url !== 'undefined') { if (!cmg_flash_emulated_game()) { // console.log('flash is undefined'); flashDetectionMessage(); } } if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") === 0) { swf_game_url = window.location.protocol + swf_game_url; } else if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") > 0) { swf_game_url = swf_game_url.replace("http:", window.location.protocol); } if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") === 0) { html5_game_url = window.location.protocol + html5_game_url; } else if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") > 0) { html5_game_url = html5_game_url.replace("http:", window.location.protocol); } if (navigator.appName == "Microsoft Internet Explorer") { ie = true; var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (re.exec(ua) != null) { ieVersion = parseInt(RegExp.$1) } } if (ie && ieVersion < 9) { nothtml5browser = '

Hey, you\'re using an older web browser that can\'t play HTML5 games like this one.

Please switch to another browser or just enjoy a different Coolmath game!' + 'div>

Get a new Internet Explorer browser from Microsoft

'; jQuery("#html5game").replaceWith(nothtml5browser); jQuery("#swfgame").replaceWith(nothtml5browser); } else { sandbox = jQuery("#html5game").attr("sandbox"); if (sandbox !== undefined) { sandbox = ' sandbox=\"' + sandbox + '\"'; } else { sandbox = ''; } if(cmg_is_mobile_device() || document.documentElement.clientWidth < 960 - (window.innerWidth-jQuery(document).width()) ) { newiframe = '

'; newswfiframe = '

'; } else { newiframe = '

'; newswfiframe = '

'; } if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { jQuery("#html5game").replaceWith(newiframe); if (cmg_flash_emulated_game() || drupalSettings.cmatgame.flash_emulation === "1") { jQuery("#swfgame").replaceWith(newswfiframe); } else if(cmg_flash_emulated_game() && drupalSettings.cmatgame.flash_emulation === "2"){ //console.log("Cheerpx load 1"); game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width; game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height; game_type = "html5"; var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u; var swfURLArray = swfURLObject.split("/"); //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1]; swf_1_game_movie_param = swfURLArray[swfURLArray.length-1]; //cheerpx js var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height; //allow="cross-origin-isolated" --> origin trial use: crossorigin="use-credentials" newswfiframe = '

'; jQuery("#swfgame").replaceWith(newswfiframe); //console.log("Cheerpx replace iframe 3"); } } } } else { if (!cmg_flash_emulated_game() && (drupalSettings.cmatgame.flash_emulation !== "1" || drupalSettings.cmatgame.flash_emulation !== "2" )) { // console.log('flash is undefined'); /* CLSS-1614 to load html5 as backup - START */ var html5_game_url = jQuery("#html5game").attr("src"); if (typeof html5_game_url !== 'undefined') { game_width = jQuery("#html5game").attr("width"); game_height = jQuery("#html5game").attr("height"); game_type = "html5"; // IE Detection and Version grabbing ie = false; if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") === 0) { html5_game_url = window.location.protocol + html5_game_url; } else if (typeof html5_game_url !== 'undefined' && html5_game_url.indexOf("//") > 0) { html5_game_url = html5_game_url.replace("http:", window.location.protocol); } if (navigator.appName == "Microsoft Internet Explorer") { ie = true; var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (re.exec(ua) != null) { ieVersion = parseInt(RegExp.$1) } } if (ie && ieVersion < 9) { nothtml5browser = '

Hey, you\'re using an older web browser that can\'t play HTML5 games like this one.

Please switch to another browser or just enjoy a different Coolmath game!' + 'div>

Get a new Internet Explorer browser from Microsoft

'; jQuery("#html5game").replaceWith(nothtml5browser); } else { sandbox = jQuery("#html5game").attr("sandbox"); if (sandbox !== undefined) { sandbox = ' sandbox=\"' + sandbox + '\"'; } else { sandbox = ''; } newiframe = '

'; if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { jQuery("#html5game").replaceWith(newiframe); } } } else { /* CLSS-1614 to load html5 as backup - END */ flashDetectionMessage(); } } else { // flash game game width, game height and game type game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width; game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height; if(drupalSettings.cmatgame.flash_emulation === "1"){ //ruffle game_type = "html5"; var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u; var swfURLArray = swfURLObject.split("/"); var swf_game_url = 'https://www.coolmath-games.com/sites/cmatgame/files/ruffle1/ruffle.html?f='+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height; newswfiframe = '

'; jQuery("#swfgame").replaceWith(newswfiframe); } else if(drupalSettings.cmatgame.flash_emulation === "2"){ //cheerpx game_type = "html5"; if (navigator.appName == "Microsoft Internet Explorer") { ie = true; var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})"); if (re.exec(ua) != null) { ieVersion = parseInt(RegExp.$1) } } if (ie && ieVersion <= 11) { notCheerpxBrowser = '

NO IE

'; //console.log("Cheerpx avoid load completely on IE"); jQuery("#html5game").replaceWith(notCheerpxBrowser); } //console.log("Cheerpx load 2"); game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width; game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height; var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u; var swfURLArray = swfURLObject.split("/"); //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1]; swf_1_game_movie_param = swfURLArray[swfURLArray.length-1]; //cheerpx js var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height; //allow="cross-origin-isolated" --> origin trial use: crossorigin="use-credentials" newswfiframe = '

'; jQuery("#swfgame").replaceWith(newswfiframe); console.log("Cheerpx replace iframe and loading screen"); displayCmgCheerpxLoadingScreen(); } else { game_type = "flash"; if (typeof isRemoveAdSwfJWPLayer === "undefined" || !isRemoveAdSwfJWPLayer) { var swf_game_url = jQuery("#swfgame").attr("src"); if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") === 0) { swf_game_url = window.location.protocol + swf_game_url; } else if (typeof swf_game_url !== 'undefined' && swf_game_url.indexOf("//") > 0) { swf_game_url = swf_game_url.replace("http:", window.location.protocol); } newswfiframe = '

'; jQuery("#swfgame").replaceWith(newswfiframe); var gameInstructions = document.getElementById('game-instructions'); // insert fix flash div before game instructions field if (typeof gameInstructions !== 'undefined' && gameInstructions !== null && typeof gameInstructions.innerHTML !== 'undefined' && gameInstructions.innerHTML !== null) { gameInstructions.innerHTML = '

If this flash game doesn\'t work on your computer, go here for help.

' + gameInstructions.innerHTML; } } } isRemoveAdSwfJWPLayer = true; } } } jQuery('.game-xp-bar-immerse-button').addClass('enabled'); jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block'); //Deferred js is breaking the display of bigscreen button deferredbigscreenbtn = setTimeout(function () { if(jQuery('.btn.btn-primary.btn-sm.requestfullscreen').length && !jQuery('.btn.btn-primary.btn-sm.requestfullscreen').is(":visible")) { jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block'); } }, 2000); if(typeof display_game_progressbar === "function"){ display_game_progressbar(gameId); } } function cmatgame_premium_subscription_game_display() { var cmatgame_subscriber = getCookie('cmg_sx'); var validSubscriber = false; if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) { validSubscriber = true; } if(getCookie("cmg_wl") !== null) { validSubscriber = true; } var cmatgame_free_user = getCookie('cmg_fx'); var validFreeUser = false; if (typeof cmatgame_free_user !== 'undefined' && cmatgame_free_user !== null) { validFreeUser = true; } if (typeof subscribeNowAlienClass === 'undefined' || subscribeNowAlienClass === null || subscribeNowAlienClass === '') { // if (drupalSettings.cmatgame.isSubscriptionActive == false) { // subscribeNowAlienClass = "subscribe-now-alien-subscribe"; // } else { // subscribeNowAlienClass = "subscribe-now-alien-signup"; // } } freeGamesExceeded = true; // Display Ads to anonymous users the time from 7am to 13pm, display ads to anonymous users from 13pm to 11:59pm and 00 to 7am only if the user is not from New York city // TODO --> Need to add day of the week for school hours logic, day < 6 do not display Ads when GDPR cookie is set abd GDPR_All cookie is not set // Remove preroll-ads for whitelist users if (validSubscriber || getCookie("cmg_wl") !== null) { // retrieve user progress retrieveUserProgress(); cmg_remove_padg(); jQuery(document).ready(function () { $('.game-xp-bar-immerse-button').addClass('enabled'); jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block'); display_game_progressbar(gameId); immersive_mode_display_controller(); }); } else if (getCookie('cmg_schwl') !== null || typeof cmg_no_ads !== 'undefined' || (! validSubscriber && schoolHours || (!schoolHours && !targetStateUser) || (!schoolHours && targetStateUser && getCookie('cmg_active_anonymous_user') !== null))) { // TODO Display Game cmg_remove_padg(); jQuery(document).ready(function () { $('.game-xp-bar-immerse-button').addClass('enabled'); jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block'); display_game_progressbar(gameId); }); if (!/0-chess/.test(window.location.pathname)) { // setCookie('cmg_active_anonymous_user', 'active', 30*60*1000); } } else if (! validSubscriber && !schoolHours && targetStateUser && getCookie('cmg_active_anonymous_user') === null && getCookie('cmg_editor') === null) { // if user comes from google dont show the subscription paywall var ref = document.referrer; // count number of games played by the user this month userPlayedGames = 0; var userFreeGameList = []; var freeGameNid = 95552; if (sessionStorage.getItem("userFreeGameList") !== null && navigator.cookieEnabled) { userFreeGameList = JSON.parse(sessionStorage.getItem("userFreeGameList")); } if ((localStorage.getItem("userPlayedGames") == null || getCookie('cmg_upg') === null) && freeGameLimit !== 0 && navigator.cookieEnabled) { userPlayedGames = 1; localStorage.setItem("userPlayedGames", userPlayedGames); // TODO monthly cookie setCookie('cmg_upg', 'true', cmg_upg_days_limit * 24 * 60 * 60 * 1000); userFreeGameList = [freeGameNid]; sessionStorage.setItem("userFreeGameList", JSON.stringify(userFreeGameList)); // TODO Display Game cmg_remove_padg(); jQuery(document).ready(function () { display_game_progressbar(gameId); }); } else { // userPlayedGames = parseInt(localStorage.getItem("userPlayedGames"+currentMonth+currentYear)); Monthly limit if (localStorage.getItem("userPlayedGames") !== null && getCookie('cmg_upg') !== null) { userPlayedGames = parseInt(localStorage.getItem("userPlayedGames")); } else { userPlayedGames = 0; setCookie('cmg_upg', 'true', cmg_upg_days_limit * 24 * 60 * 60 * 1000); } if (freeGameLimit != 0 && userPlayedGames < freeGameLimit && userFreeGameList.indexOf(freeGameNid) === -1) { userPlayedGames ++; freeGamesExceeded = false; if (userFreeGameList.length > 0) { userFreeGameList = userFreeGameList.concat(freeGameNid); } else { userFreeGameList = [freeGameNid]; } localStorage.setItem("userPlayedGames", userPlayedGames); sessionStorage.setItem("userFreeGameList", JSON.stringify(userFreeGameList)); } else { freeGamesExceeded = true; } // console.log("Number of games user has played "+ userPlayedGames ); var validReferer = false; var validGameSession = false; if (userFreeGameList.indexOf(freeGameNid) > -1) { validGameSession = true; } if (ref.match("google.com") !== null || ref.match("yahoo.com") !== null || ref.match("bing.com") !== null) { validReferer = true; } subscriptionSignUpUrl(); if (! validReferer && userPlayedGames >= freeGameLimit && ! validGameSession) { // subscription paywall // block anonymous users for New York City from 0-7am and 13pm to 11:59pm console.log("Free games limit exceeded and referer is not google"); clearInterval(intervalId); jQuery("#afg_container").remove(); jQuery(".game-instructions").remove(); var alreadySubscriberText = '

Already a Subscriber? Login

'; if (getCookie('cmg_l') != null) { alreadySubscriberText = ''; } var headLine = '

Please Sign up to keep playing

'; if (getCookie('cmg_l') != null && getCookie('cmg_sx') != null) { headLine = '

PLEASE SUBSCRIBE NOW TO KEEP PLAYING

(Video) 4 in a row multiplayer 2021 [ Online Four in Line Game ]

'; } jQuery(".field-game").html('

' + headLine + '

The World\'s Best Collection of Games
For Logic, Reasoning & Fun. Subscribe Now' + alreadySubscriberText + '

'); jQuery("#videoplayer").remove(); } else { // console.log("User may have come from google or is within the free game limit "+ (freeGameLimit-userPlayedGames) ); // TODO Display Game cmg_remove_padg(); jQuery(document).ready(function () { display_game_progressbar(gameId); }); } } } } function unlockAllLevels() { trackEvent('Unlock All Levels category', 'unlock all levels button clicked', document.title); alllevels = '

levels-unlocked

'; jQuery("#subscriber-banner").replaceWith(alllevels); var cmgorigindomain = /coolmath-games/; var cmgtargetdomain = window.location.protocol + 'www.coolmath-games.com'; if (/edit-stage/.test(window.location.hostname)) { cmgtargetdomain = window.location.protocol + 'edit-stage.coolmath-games.com'; } else if (/d8-dev/.test(window.location.hostname)) { cmgtargetdomain = window.location.protocol + 'stage.coolmath-games.com'; } else if (/cmatgame.local|dev.coolmath.games.com/.test(window.location.hostname)) { cmgtargetdomain = window.location.protocol + 'stage.coolmath-games.com'; } if (game_type == "html5") { document.getElementById("html5game").contentWindow.unlockAllLevels(); } else { if (cmgorigindomain.test(window.location.hostname)) { document.getElementById("swfObjID").unlockAllLevels(); } else { var recievergameFrame = document.getElementById("swfgame"); gDate = new Date(); recievergameFrame.contentWindow.postMessage('unlockAllLevels', cmgtargetdomain); // TODO -- put target origin } } } function addSubToUnlockGAEvent() { trackEvent('Unlock All Levels category', 'subscribe to unlock button clicked', document.title); trackGoalVirtualPV('/virtual/unlock-button-click'); window.location.href = "https://www.coolmathgames.com/signup/ b2df5a33?origin= /0-four-in-a-row&stual=1" } var immersive_mode_enabled = false; // Rules for big screen free trial function valid_big_screen_ft() { validUserMode = false; cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0; // Logged in user if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); if (cmg_uid_bsft !== null) { cmg_bsft = parseInt(cmg_uid_bsft); } else { cmg_bsft = 0; } } if (cmg_bsft <= 3) { validUserMode = true; } return validUserMode; } function immersive_mode_display_controller() { var validUserMode = false; if (getCookie('cmg_sx') !== null || getCookie("cmg_wl") !== null) { // display xp bar for premium users $('.game-xp-bar-immerse-button').addClass('enabled'); jQuery('.btn.btn-primary.btn-sm.requestfullscreen').css('display', 'inline-block'); validUserMode = true; } else if (getCookie('cmg_fx') !== null) { // Is valid Freemium user free trial ? if (valid_big_screen_ft()) { validUserMode = true; } else { validUserMode = true; // console.log("User reached FT limit. Display Big screen button ?"); } } else { // Is valid Anonymous user free trial ? if (valid_big_screen_ft()) { validUserMode = true; } } if (validUserMode && ! immersive_mode_enabled) { immersive_mode_enabled = true; immersive_mode_display(); } } var bigScreenTimer = null; bigScreenActive = false; function cmg_bigscreen_trackevent(type, trial_num) { if (jQuery('#big-screen-truex-overlay').length) { jQuery('#big-screen-truex-overlay').hide(); } var tCat = 'BigScreen-Trial'; if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') { var tCat = 'BigScreen-TrueX-Promo'; } var tUsr = 'Anonymous user'; if (typeof getCookie === 'function' && (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null)) { tUsr = 'Subscriber'; } else if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null) { tUsr = 'Freemium user'; } var tEvt = tUsr + ' trial ' + trial_num + ' - ' + type; if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') { tEvt = tUsr + ' TrueX Promo' + ' - ' + type; } else { if (trial_num > 3) { tEvt = tUsr + ' no more trial ' + ' - ' + type; } } if (type === 'enter' || type === 'exit' || type === 'closesignup' || type == 'closepromo' || type == 'bigscreen-exit') { trackEvent(tCat, tEvt, document.title); } else if (type === 'exit2signup' || type === 'signup') { if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') { var sLeg = get_premium_access_leg_desc('849ef809'); if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) { sLeg = get_premium_access_leg_desc('e180e28d'); } trackEvent(tCat, tEvt + ' - Leg - ' + sLeg, document.title); } else { var sLeg = get_premium_access_leg_desc('1bb008bd'); if (typeof getCookie === 'function' && getCookie('cmg_fx') !== null && (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) { sLeg = get_premium_access_leg_desc('7859e605'); } trackEvent(tCat, tEvt + ' - Leg - ' + sLeg, document.title); } } else { trackEvent(tCat, type, document.title); } } popover_login_click = false; function cmg_display_login_page() { //console.log("login link clicked in popup message"); popover_login_click = true; if (jQuery('#popover' + gameId).length) { jQuery('#popover' + gameId).remove(); immerse_hover_on = 0; } window.location = "/login?destination=" + window.location.pathname } function display_cmg_overlay_signupform(variant) { // console.log("BIG SCREEN display_cmg_overlay_signupform: "+new Date()); if (jQuery('#popover' + gameId).length) { jQuery('#popover' + gameId).remove(); immerse_hover_on = 0; } // track event of type 'signup' if (typeof cmg_bsft === 'undefined') { cmg_bsft = 0; if (getCookie('cmg_fx') === null) { cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0; } else if (getCookie('cmg_uid') !== null && getCookie('cmg_bsft_' + getCookie('cmg_uid')) !== null) { cmg_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); } } cmg_bigscreen_trackevent('signup', cmg_bsft); if ((getCookie('cmg_sx') === null && getCookie('cmg_wl') === null)) { myStopFunction(); } // Check if A/B test is available if (typeof signup_abtest_cmg_bsft !== 'undefined') { //variant = signup_abtest_cmg_bsft; } if (typeof variant === 'undefined' || variant === '') { variant = '/16'; // 14b, 15c, 16 } if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes' && jQuery('#big-screen-overlay').length) { jQuery('#big-screen-overlay').show(); } else if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { var big_screen_url = ''; if (getCookie('cmg_fx') === null) { // big_screen_url = '/premium-access/1bb008bd' + variant + '?ts='+new Date().getTime();//Bigscreen trial plans // big_screen_url = '/premium-access/849ef809' + variant + '?ts=' + new Date().getTime(); // BSWOJ anon plan if(drupalSettings.language == 'en') { big_screen_url = '/premium-access/6ea95de6' + variant + '?ts='+new Date().getTime();//BSWOJ anon plan } else{ big_screen_url = '/'+drupalSettings.language+'/premium-access/6ea95de6' + variant + '?ts='+new Date().getTime();//BSWOJ anon plan } } else { // big_screen_url = '/premium-access/7859e605' + variant + '?ts='+new Date().getTime();//BSFT logged-in user plan if(drupalSettings.language == 'en') { big_screen_url = '/profile/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan } else{ big_screen_url = '/'+drupalSettings.language+'/profile/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan } } if (variant == 'thankyou') { if(drupalSettings.language == 'en') { big_screen_url = '/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/1bb008bd/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1'; } else{ big_screen_url = '/'+drupalSettings.language+'/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/1bb008bd/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1'; } } if (/coolmathgames/.test(location.host)) { // big_screen_url = "https://" + location.host + big_screen_url; } var ov_css = 'style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.4);" min-height="1040px"'; var ovc_css = 'style="margin: auto; padding: 10px; width: 850px;" min-height="540px"'; var iframe_overlay = '

'; // TODO Add this iframe at the correct place that it needs to go. jQuery('.global-wrapper').before(iframe_overlay); // TODO jQuery('#big_screen_iframe').css('height', '800px'); jQuery('#big-screen-overlay').fadeIn(1000); jQuery('.big-screen-signup-container .btn-close').on('click', function (e) { e.preventDefault(); jQuery('#big-screen-overlay').hide(); }); } else { var big_screen_url = ''; if (getCookie('cmg_fx') === null) { // big_screen_url = '/premium-access/1bb008bd' + variant + '?ts='+new Date().getTime(); if(drupalSettings.language == 'en') { big_screen_url = '/premium-access/849ef809' + variant + '?ts=' + new Date().getTime(); // BSWOJ anon plan } else{ big_screen_url = '/'+drupalSettings.language+'/premium-access/849ef809' + variant + '?ts=' + new Date().getTime(); // BSWOJ anon plan } } else { // big_screen_url = '/premium-access/7859e605' + variant + '?ts='+new Date().getTime(); if(drupalSettings.language == 'en') { big_screen_url = '/profile/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan } else{ big_screen_url = '/'+drupalSettings.language+'/profile/premium-access/e180e28d' + variant + '?ts=' + new Date().getTime(); // BSWOJ logged-in user plan } } if (variant == 'thankyou') { if(drupalSettings.language == 'en') { big_screen_url = '/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/849ef809/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1'; } else{ big_screen_url = '/'+drupalSettings.language+'/signup/thank-you/overlay?ts=1596827222&src=wc&origin=/premium-access/849ef809/14b&sp=0&cmgtypl=1bb008bd&cmgovly=1'; } } if (/coolmathgames/.test(location.host)) { // big_screen_url = "https://" + location.host + big_screen_url; } var ov_css = 'style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.4);" min-height="1040px"'; var ovc_css = 'style="margin: auto; padding: 10px; width: 850px;" min-height="540px"'; var iframe_overlay = '

'; // TODO Add this iframe at the correct place that it needs to go. jQuery('.global-wrapper').before(iframe_overlay); // TODO jQuery('#big_screen_iframe').css('height', '800px'); jQuery('#big-screen-overlay').fadeIn(1000); jQuery('.big-screen-signup-container .btn-close').on('click', function (e) { e.preventDefault(); jQuery('#big-screen-overlay').hide(); }); } } function immersive_mode_exit_handler(variant) { start_full_screen_without_ad = false;//clss-3207 no ad after 1st trial bigScreenActive = false; cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0; // we do not increment in exit handler // Logged in user if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); if (cmg_uid_bsft !== null) { cmg_bsft = parseInt(cmg_uid_bsft); } else { cmg_bsft = 0; } } if (cmg_bsft >= 3 && getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) { // Redirect the user to signup page if (jQuery.fullscreen.isFullScreen()) { jQuery.fullscreen.exit(); } if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { // track event of type 'exit2signup' cmg_bigscreen_trackevent('exit2signup', cmg_bsft); display_cmg_overlay_signupform(variant); } else { cmg_bigscreen_trackevent('bigscreen-exit', cmg_bsft); } } else if (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) { myTimerAction(); } if (bigScreenTimer) { clearTimeout(bigScreenTimer); bigScreenTimer = null; } if (cmg_bsft < 3) { // track event of type 'exit' cmg_bigscreen_trackevent('exit', cmg_bsft); } } function bigScreenTimerAction() { cmg_bsft = 3; if (typeof bigScreenActive !== 'undefined' && bigScreenActive) { if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { // Logged in user cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); if (cmg_uid_bsft !== null) { // cmg_bsft = parseInt(cmg_uid_bsft) + 1; cmg_bsft = 3; // 3011 } else { cmg_bsft = 3; // 3011 } // Ajax request to update user object url = "/ajax/cmgbsft/" + getCookie('cmg_uid') + '/' + cmg_bsft; // + '?' + new Date().getTime(); status = 0; jQuery.getJSON(url, function (data) { if (typeof data.uid !== 'undefined' && data.cmgbsft !== 'undefined') { status = 1; } }); // setCookie('cmg_bsft_'+getCookie('cmg_uid'), cmg_bsft, 365 * 24 * 60 * 60 * 1000); } else { // Anon user // cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) + 1 : 1; cmg_bsft = 3; // 3011 setCookie('cmg_bsft', cmg_bsft, 365 * 24 * 60 * 60 * 1000); } clearTimeout(bigScreenTimer); bigScreenTimer = null; } } var immerse_hover_on = 0; var immerse_hover_in = 0; var big_screen_msg_on = 0; function immersive_popover_msg() { var popover_msg = "New Premium Feature! Try it for FREE now"; if ((getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null)) { popover_msg = "New Premium Feature! Try it now!"; } else { cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0; // Logged in user if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); if (cmg_uid_bsft !== null) { cmg_bsft = parseInt(cmg_uid_bsft); } else { cmg_bsft = 0; } } // setCookie('cmg_bsft', cmg_bsft, 365*24*60*60*1000);todo in timer function after bigscreen is active for a minute if (cmg_bsft === 1) { popover_msg = "2 Free Trials Remaining"; } else if (cmg_bsft === 2) { popover_msg = "1 Free Trial Remaining"; } else if (cmg_bsft >= 3) { var variant = ''; if (typeof signup_abtest_2_variations_adfree_modular !== 'undefined') { variant = '/'.signup_abtest_2_variations_adfree_modular; } if (getCookie('cmg_fx') !== null) { popover_msg = 'BIG SCREEN is a Premium Feature.
Please Sign Up'; } else { popover_msg = 'BIG SCREEN is a Premium Feature.
Please Sign Up or Log In.'; } } } return popover_msg; } var cmg_bs_popover_prefix = '

PLAY BIG SCREEN AFTER THIS 30 SECOND AD

'); myStopFunction(); trueXTimer = setTimeout(function () { jQuery('#big-screen-truex-header-text').css('background-color', '#16202c').css('padding-top', '14px').html('

PLEASE INTERACT WITH THIS AD TO CONTINUE

'); // .css('margin-top', '150px'); }, 25 * 1000); }); truexAd.onCredit(function (engagement) { // user spent 30 seconds and interacted at least once log("Bigscreen Truex Ad credit"); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Credited', document.title); //

text to write ▶

jQuery('#big-screen-truex-header-text').css('background-color', '#16202c').css('padding-top', '14px').html('

'); document.getElementById("truex-bigscreen-activate-id").onclick = function () { event.preventDefault(); if (typeof bigScreenActive === 'undefined' || typeof bigScreenActive !== 'undefined' && !bigScreenActive) { jQuery('#big-screen-signup-container-id').html(""); jQuery('#big-screen-truex-overlay').remove(); cmg_start_game_full_screen('truex'); } } // console.log(engagement); }); truexAd.onClose(function (activity) { // user closed the ad unit log("Bigscreen Truex Ad close"); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Closed', document.title); containerClose(); requestTrueXAdsAndDisplay(client); }); truexAd.onFinish(function (activity) { // user got to end of ad log("Bigscreen Truex Ad finish"); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Finished', document.title); jQuery('#big-screen-signup-container-id').html(""); jQuery('#big-screen-truex-overlay').remove(); // full screen cmg_start_game_full_screen("truex"); }); truexAd.onMessage(function (payload) { // log("onMessage = " + payload); }); // track TrueX Trigger Point Impression // client.trackTriggerPointImpression(truexAd); // handle opt-in click event // add TrueX Opt-in to DOM if (jQuery("#cmg-big-screen-truex-activity").length) { var truex_container = document.getElementById("cmg-big-screen-truex-activity"); document.getElementById("cmg-big-screen-truex-activity").onclick = function () { // truex_preroll_display_handler(); event.preventDefault(); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Button clicked', document.title); jQuery('.big-screen-options-container').hide(); if (truex_ad_available && typeof client !== 'undefined') { // BigScreen-TrueX-Promo log("Bigscreen Truex ad available. Show Truex activity"); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Loading', document.title); client.loadActivityIntoContainer(truexAd, 'big-screen-signup-container-id', { width: "960px", height: "540px" }); // show_big_screen_preroll_ad();//test preroll } else { log("Bigscreen Truex ad not available. Instead show preroll video"); // TODO: Show preroll truex_overlay_preroll_ad_display = true; show_big_screen_preroll_ad(); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Preroll Ad Loading', document.title); } }; } // cmg-big-screen-truex-signup if (jQuery("#cmg-big-screen-truex-signup").length) { document.getElementById("cmg-big-screen-truex-signup").onclick = function () { log("Bigscreen button clicked"); event.preventDefault(); // jQuery('.big-screen-options-container').hide(); jQuery('#big-screen-truex-overlay').remove(); display_cmg_overlay_signupform(); }; } } function truex_preroll_display_handler() { // log("Truex ad is available. Show truex activity"); event.preventDefault(); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Button clicked', document.title); jQuery('.big-screen-options-container').hide(); if (truex_ad_available && (typeof client !== 'undefined' || cmg_truex_client != null) ) { // BigScreen-TrueX-Promo if(typeof client == "undefined") { client = cmg_truex_client; truexAd = cmg_truexAd; } trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: TrueX Ad Loading', document.title); client.loadActivityIntoContainer(truexAd, 'big-screen-signup-container-id', { width: "960px", height: "540px" }); // show_big_screen_preroll_ad();//test preroll } else { // log("Truex ad not available. Instead show preroll video"); // TODO: Show preroll truex_overlay_preroll_ad_display = true; show_big_screen_preroll_ad(); trackEvent('BigScreen-TrueX-Promo', 'View a Sponsored Video: Preroll Ad Loading', document.title); } } function containerClose() { // log("containerClose called."); } function log(msg) { console.log("CMG [%s] - %s", new Date().toLocaleTimeString(), msg); } cmg_truex_promo_events_added = 0; function display_big_screen_truex_options_overlay() { // initialize trueX ad client w/ options hash trackEvent('BigScreen-TrueX-Promo', 'Bigscreen button clicked', document.title); //console.log("big screen button click position 1 -"+ new Date()); if (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null || getCookie('cmg_editor') !== null ) { event.preventDefault(); //console.log("big screen button click -"+ new Date()); cmg_start_game_full_screen('truex'); } else { network_user_id = getCookie('_ga'); if (typeof network_user_id !== 'undefined' && network_user_id !== '') { network_user_id = network_user_id.replace('GA', 'cmg').replaceAll("\.", ""); } // TRUEX Test Hash // truex_options = {'network_user_id': network_user_id, 'partner_config_hash': '83f879b26797c723882473d6435e6361c105d86b'}; // TRUEX Live Hash truex_options = { 'network_user_id': network_user_id, 'partner_config_hash': '375f2f2b728700cd991bb24601b3841c98375886' }; if (typeof truex !== 'undefined') { truex.client(truex_options, function (client) { requestTrueXAdsAndDisplay(client); }); } var ov_css = ' style="display:none; position: fixed; z-index: 100000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.7);" min-height="1040px" '; var ovc_css = ' style="margin: auto; margin-top: 200px; padding: 10px; width: 424px; height: initial; background-color: #1f4f77; border:3px solid #286aa1;" '; var ovc_css_id = ' style="margin: auto; margin-top: 150px; width: 960px; " '; var truex_css = ' '; var truex_options1 = "

"; // onclick="truex_preroll_display_handler(); return false; --> below" var truex_options2 = "

View a Sponsored Video

"; var truex_optionsOR = "

"; var truex_options3 = "

"; if(getCookie("cmg_sac") == "no"){ truex_optionsOR = ""; truex_options3 = ""; } var truex_options4 = "

"; var truex_options_prefix = '

'; var truex_options_suffix = '

'; truex_options = truex_options_prefix + truex_options1 + truex_options2 + truex_optionsOR + truex_options3 + truex_options4 + truex_options_suffix; var truex_options_heading = '

' + '

'; var preroll_container = '

' + '

' + // '

Continue in

'+ // '15'; '

(Video) Connect 4 online - 4 in a row All Sides Edition - Android

'; var bs_truex_options = '

' + '

' + '

' + '' + truex_options + '

' + '

' + '

' + truex_options_heading + '

' + preroll_container + '

' + '

'; // TODO Add this iframe at the correct place that it needs to go. jQuery('.global-wrapper').before(bs_truex_options); // TODO jQuery('#big_screen_iframe').css('height', '800px'); jQuery('.big-screen-options-container').show(); jQuery('#big-screen-truex-overlay').fadeIn(1000); // if(!cmg_truex_promo_events_added) { // cmg_truex_promo_events_added = 1; jQuery('.big-screen-options-container .btn-close').on('click', function (e) { e.preventDefault(); jQuery('#big-screen-truex-overlay').hide(); }); jQuery('#cmg-big-screen-truex-promo-close').on('click', function (e) { e.preventDefault(); jQuery('#big-screen-truex-overlay').hide(); }); // } } } function show_big_screen_preroll_ad() { event.preventDefault(); jQuery('#big-screen-truex-header-text').css('padding-top', '14px').html("

PLAY BIG SCREEN AFTER THIS AD

"); jQuery('.big-screen-options-container').hide(); var cmatgame_subscriber = getCookie('cmg_sx'); var validSubscriber = false; if (typeof cmatgame_subscriber !== 'undefined' && cmatgame_subscriber !== null) { validSubscriber = true; } // preroll ads var prerollUrls = /0\-testing/; if (! validSubscriber) { // display preroll ads window.scrollTo(0, 0); var modal = document.getElementById('big-screen-preroll-container'); // modal.style.display = 'block'; // clear refresh timer if (typeof refreshTimer !== "undefined") { clearTimeout(refreshTimer); refreshTimer = null; } var adTagUrl = 'https://pubads.g.doubleclick.net/gampad/ads?iu=/137548614/1023174/71134/1023174-71134-video&description_url=https%3A%2F%2Fwww.coolmathgames.com%2F&env=vp&impl=s&correlator=&tfcd=0&npa=0&gdfp_req=1&output=vast&sz=640x480&unviewed_position_start=1'; if (typeof window.PW_CMG != "undefined") { var auctionCallback = function (displayAds, videoUrl) { application = new Application(displayAds, videoUrl); }; window.PW_CMG.startAuction(auctionCallback); } else { // adblock application = new Application(false, adTagUrl); } bs_preroll_timer = 15; bs_preroll_intervalId = setInterval(function () { bs_preroll_timer --; jQuery('#big-screen-truex-header-text').html('

PLAY BIG SCREEN AFTER THIS AD: ' + bs_preroll_timer + '

'); // document.getElementById("preroll_timer_id").innerHTML = seconds_left; if (bs_preroll_timer <= 0) { jQuery('#big-screen-truex-header-text').html('

PLAY BIG SCREEN NOW ▶

'); document.getElementById("truex-bigscreen-activate-id").onclick = function () { event.preventDefault(); $('a.requestfullscreen>span.big-screen-popover-span').html('Play Big Screen'); if (typeof bigScreenActive === 'undefined' || typeof bigScreenActive !== 'undefined' && !bigScreenActive) { jQuery('#big-screen-signup-container-id').html(""); jQuery('#big-screen-truex-overlay').remove(); start_full_screen_without_ad = false; cmg_start_game_full_screen('truex'); } } clearInterval(bs_preroll_intervalId); } }, 1000); } } // TRUEX end function cmg_start_game_full_screen(cmgsource) { myStopFunction(); // no ad refresh bigScreenActive = true; // console.log("Starting fullscreen"); if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { // trackEvent('BigScreen-Trial', 'Bigscreen activated', document.title); cmg_bigscreen_trackevent('enter', cmg_bsft); bigScreenTimer = setTimeout(function () { bigScreenTimerAction(); }, 60 * 1000); } else { // trackEvent('BigScreen-TrueX-Promo', 'Bigscreen activated', document.title); cmg_bigscreen_trackevent('enter', 0); } var elem = document.getElementById('block-system-main'); if (jQuery('html').hasClass('mobile-device')) { requestFullscreenModal(elem, document.title); return false; } if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.mozRequestFullScreen) { /* Firefox */ elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */ elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { /* IE/Edge */ elem.msRequestFullscreen(); } else { requestFullscreenModal(elem, document.title); return false; } adjustWidthHeightGame(); } function immersive_mode_display() { var popover_msg = immersive_popover_msg(); var immerse_prefix = ''; // do not add title var immerse_suffix = ''; var immerse_html = "Watch Ad To Play Big Screen"; var immerse_html_sub = "PLAY BIG SCREEN"; if (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null) { $(".immerse-button").html(immerse_prefix + immerse_html_sub + immerse_suffix); } else { $(".immerse-button").html(immerse_prefix + immerse_html + immerse_suffix); } if (getCookie('cmg_fx') !== null) { jQuery('.node-type-game.logged-in .requestfullscreen').css('display', 'inline-block'); } // get game var elem = document.getElementById('block-system-main'); // open game in fullscreen $('.immerse-button .requestfullscreen').on('click', function (e) { e.preventDefault(); //console.log("function immerse button onclick handler" + new Date()); // If mobile view show full screen without any ads // if($("html").hasClass("mobile-device")) { // cmg_start_game_full_screen(); // } if(/\/test-game\//.test(window.location.pathname)){ //console.log("test page"); cmg_start_game_full_screen(); } if (cmg_stop_truex_promo === '' || cmg_stop_truex_promo !== 'yes') { // TODO: Return from here or not? if (start_full_screen_without_ad) { display_big_screen_truex_options_overlay(); } else { cmg_start_game_full_screen(); } } return; if (jQuery('#popover' + gameId).length) { jQuery('#popover' + gameId).remove(); immerse_hover_on = 0; } cmg_bsft = getCookie('cmg_bsft') !== null ? parseInt(getCookie('cmg_bsft')) : 0; // Logged in user if (getCookie('cmg_fx') !== null && getCookie('cmg_uid') !== null) { cmg_uid_bsft = getCookie('cmg_bsft_' + getCookie('cmg_uid')); if (cmg_uid_bsft !== null) { cmg_bsft = parseInt(cmg_uid_bsft); } else { cmg_bsft = 0; } } if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { if (cmg_bsft < 3) { // track event of type 'enter' cmg_bigscreen_trackevent('enter', cmg_bsft + 1); } if (getCookie('cmg_sx') !== null || getCookie("cmg_wl") !== null || cmg_bsft < 3) { cmg_start_game_full_screen(); } else { //console.log("BIG SCREEN You have reached a FT limit"); //Display signup form if(getCookie('cmg_sx') === null && getCookie('cmg_wl') === null && !popover_login_click) { display_cmg_overlay_signupform(); } // track event of type 'signup' // cmg_bigscreen_trackevent('signup', cmg_bsft+1); } } else { //Big Screen - TrueX Integration //TODO conditions to check or when to display the overlay if (getCookie('cmg_sx') === null && getCookie('cmg_wl') === null) { //console.log("Big screen button clicked. display the overlay with options"); display_big_screen_truex_options_overlay(); } else { if (cmg_bsft < 3) { // track event of type 'enter' cmg_bigscreen_trackevent('enter', cmg_bsft + 1); } if (getCookie('cmg_sx') !== null || getCookie('cmg_wl') !== null || cmg_bsft < 3) { cmg_start_game_full_screen(); } else { //console.log("BIG SCREEN You have reached a FT limit"); //Display signup form if(getCookie('cmg_sx') === null && getCookie('cmg_wl') === null && !popover_login_click) { //display_cmg_overlay_signupform(); } // track event of type 'signup' // cmg_bigscreen_trackevent('signup', cmg_bsft+1); } } } }); if (cmg_stop_truex_promo !== '' && cmg_stop_truex_promo === 'yes') { $('.immerse-button .requestfullscreen').hover(function () { // hover in // console.log("Bigscreen button hover in "+new Date()); immerse_hover_in = 1; if (!immerse_hover_on) { popover_msg = immersive_popover_msg(); var popover_html = cmg_bs_popover_prefix + cmg_bs_popover_suffix1 + popover_msg + cmg_bs_popover_suffix2; $(".immerse-button .big-screen-popover-span").after(popover_html); var width = $(".immerse-button").find('.requestfullscreen').width(); var height = $(".immerse-button").find('.popover').height(); var xPos = '-' + (width/2); var yPos = '-' + (height + 5); $(".immerse-button").find('.popover').css("transform","translate3d("+ xPos +"px, "+ yPos + "px, 0)"); immerse_hover_on = 1; if (jQuery('#popover' + gameId).length) { jQuery('#popover' + gameId).hover(function () { //console.log("Popover message hover in "+ new Date()); big_screen_msg_on = 1 }, function () { //console.log("Popover message hover out "+ new Date()); big_screen_msg_on = 0; }); } } }, function () { // hover out // console.log("Bigscreen button hover out "+ new Date()); immerse_hover_in = 0; setTimeout(function () { if (immerse_hover_on && !immerse_hover_in && !big_screen_msg_on) { jQuery('#popover' + gameId).remove(); immerse_hover_on = 0; } }, 1 * 1000); }); } // close game fullscreen $('#block-system-main .close-full-screen').on('click', function (e) { e.preventDefault(); immersive_mode_exit_handler(); jQuery.fullscreen.exit(); }); $('body').keypress(function (e) { if (e.which == 27) { if ($('.immerse-button .requestfullscreen').length && typeof bigScreenActive !== 'undefined' && bigScreenActive) { immersive_mode_exit_handler(); // jQuery.fullscreen.exit(); } } }); var screen_change_events = "webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange"; // toggle full screen window class jQuery(document).on(screen_change_events, function () { if (jQuery.fullscreen.isFullScreen()) { /* elem.classList.add('full-screen-window'); var iframe = document.getElementById('html5game') ? document.getElementById('html5game') : document.getElementById('swfgame'); var iframeWidth = parseInt(iframe.width); var iframeHeight = parseInt(iframe.height); var windowWidth = parseInt(screen.width); var windowHeight = parseInt(screen.height) - 75; var xpbarPos = (windowHeight + 75 - iframeHeight) / 2 + iframeHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); if ($("body").hasClass("game-scalable")) { if (iframeHeight > windowHeight) { var ratio = iframeHeight / windowHeight; } else { var ratio = windowHeight / iframeHeight; } // Calculating game width based on window height var gameWidth = iframeWidth * ratio; // apply new width and height with iframe and xp bar iframe.style.width = gameWidth + "px"; iframe.style.height = windowHeight + "px"; var xpbarPos = windowHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); } else if ($("body").hasClass("game-full-screen")) { // apply new width and height with iframe and xp bar iframe.style.width = windowWidth + "px"; iframe.style.height = windowHeight + "px"; var xpbarPos = windowHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); } */ if (jQuery('html').hasClass('mobile-device')) { jQuery("#block-system-main #html5game").attr('src', jQuery('#playNowButton').attr('href')); } $("body").addClass('immersiveActive'); elem.classList.add('full-screen-window'); // add zoomed alert chkZoomValues(); // Adjusted width and height of iframe game adjustWidthHeightGame(); } else { if (jQuery('html').hasClass('mobile-device')) { jQuery("#block-system-main #html5game").removeAttr('src'); } immersive_mode_exit_handler(); $("body").removeClass('immersiveActive'); elem.classList.remove('full-screen-window'); // remove zoomed alert $('.zoomedalert').remove(); $('#html5game').removeAttr("style"); $('#swfgame').removeAttr("style"); $('.game-xp-bar-immerse-button').removeAttr("style"); } }); } function adjustWidthHeightGame() { var iframe = document.getElementById('html5game') ? document.getElementById('html5game') : document.getElementById('swfgame'); var iframeWidth = parseInt(iframe.width); var iframeHeight = parseInt(iframe.height); // var windowWidth = parseInt(screen.width); // var windowHeight = parseInt(screen.height) - 75; var windowWidth = parseInt($(window).width()); var windowHeight = parseInt($(window).height()); var xpbarPos = (windowHeight + 75 - iframeHeight) / 2 + iframeHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); if ($("body").hasClass("game-scalable")) { if (iframeHeight > windowHeight) { var ratio = iframeHeight / windowHeight; } else { var ratio = windowHeight / iframeHeight; } // Calculating game width based on window height var gameWidth = iframeWidth * ratio; // apply new width and height with iframe and xp bar iframe.style.width = gameWidth + "px"; iframe.style.height = windowHeight + "px"; var xpbarPos = windowHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); } else if ($("body").hasClass("game-full-screen")) { // apply new width and height with iframe and xp bar iframe.style.width = windowWidth + "px"; iframe.style.height = windowHeight + "px"; var xpbarPos = windowHeight + 10; $('.game-xp-bar-immerse-button').css('top', xpbarPos + "px"); } } function adjustWidthHeightModalGame(is_resize) { var iframe = $('#immersiveModal').find('#html5game'); var iframeWidth = parseInt(iframe.attr('width')); var iframeHeight = parseInt(iframe.attr('height')); var time_out = (is_resize === true) ? 500 : 0; // setTimeout(function(){ var wdWidth = parseInt($(window).width()); var wdHeight = parseInt($(window).height()); var oTwdWidth = parseInt($(window).outerWidth()); var oTwdHeight = parseInt($(window).outerHeight()); var windowWidth = (oTwdWidth > wdWidth) ? oTwdWidth : wdWidth; var windowHeight = (oTwdHeight > wdHeight) ? oTwdHeight : wdHeight; if ($("body").hasClass("game-scalable")) { if (iframeHeight > windowHeight) { var ratio = iframeHeight / windowHeight; } else { var ratio = windowHeight / iframeHeight; } // Calculating game width based on window height var gameWidth = iframeWidth * ratio; // apply new width and height with iframe iframe.css("width", windowWidth); iframe.css("height", windowHeight); } else if ($("body").hasClass("game-full-screen")) { iframe.css("width", windowWidth); iframe.css("height", windowHeight); } // }, time_out); } // adjust game width/height if screen rotate from portrait to landscape window.addEventListener("resize", function () { if ($("body").hasClass("immersiveActive")) { adjustWidthHeightGame(); } if ($("body").hasClass("isFullScreen")) { adjustWidthHeightGame(); } if ($("body").find("#immersiveModal").length) { adjustWidthHeightModalGame(true); } if($("#swfgamewrapper #html5game").prop("tagName") == "IFRAME1" && !cmg_is_mobile_device() && document.documentElement.clientWidth >= 960 - ( window.innerWidth-jQuery(document).width() ) ) { if(hide_preroll_ads == false && (prerollAdDisplayed == false || prerollAdEnd != "" && prerollAdStart != prerollAdEnd ) && prerollAdEnd != "mob") {//TODO: isRemoveAdSwfJWPLayer or prerollAdDisplayed //console.log("CMGResize: gamenode-inline resizeed from mobile to desktop and game not loaded. TODO - Display preroll ad and then game - "+new Date()); displayPrerollAd_Desktop(); //TODO: 06/21/2022 Ads not displaying and hence game after it //cmg_remove_padg(); } else if(hide_preroll_ads == true || prerollAdDisplayed == true) { //console.log("CMGResize: gamenode-inline resizeed from mobile to desktop and game not loaded. Preroll ad already displayed. Display game - "+new Date()); cmg_remove_padg(); } } }, false); var cmg_mmg_html = ''; var cmg_mmg_swf_html = ''; var cmg_game_modal_attached = false; function attachModalHtml(elem, title) { cmg_game_modal_attached = true; var elem = document.getElementById('block-system-main'); html = '

'; $('body').append(html); var gamewrapper = jQuery("#swfgamewrapper"); jQuery('#immersiveModal .modal-body').html(gamewrapper); if(cmg_is_mobile_device() || (jQuery(".game-page-mobile .playNow").length && jQuery(".game-page-mobile .playNow").is(':visible') ) ) { sandbox = jQuery("#html5game").attr("sandbox"); if (sandbox !== undefined) { sandbox = ' sandbox=\"' + sandbox + '\"'; } else { sandbox = ''; } newiframe = '

'; if(jQuery("#html5game").length) { cmg_mmg_html = '

'; } newswfiframe = '

'; if(jQuery("#swfgame").length) { cmg_mmg_swf_html = '

'; } if (cmg_flash_emulated_game()) { if(drupalSettings.cmatgame.flash_emulation === "1"){ //ruffle game_type = "html5"; var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u; var swfURLArray = swfURLObject.split("/"); game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width; game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height; var swf_game_url = 'https://www.coolmath-games.com/sites/cmatgame/files/ruffle1/ruffle.html?f='+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height; cmg_mmg_swf_html = '

'; } else if(drupalSettings.cmatgame.flash_emulation === "2"){ //ruffle //console.log("Cheerpx load 3"); game_type = "html5"; game_width = drupalSettings.cmatgame.swfembed.swf.swf_1.width; game_height = drupalSettings.cmatgame.swfembed.swf.swf_1.height; game_type = "html5"; var swfURLObject = drupalSettings.cmatgame.swfembed.swf.u; var swfURLArray = swfURLObject.split("/"); //swf_1_game_url = "/sites/default/files/games/" + swfURLArray[swfURLArray.length-1]; swf_1_game_movie_param = swfURLArray[swfURLArray.length-1]; //cheerpx js var swf_game_url = cmgGetCheerpxUrl()+swfURLArray[swfURLArray.length-1]+'&w='+game_width+'&h='+game_height; newswfiframe = '

'; jQuery("#swfgame").replaceWith(newswfiframe); //console.log("Cheerpx replace iframe 2"); } } } } function requestFullscreenModal(elem, title) { $("#immersiveModal").addClass('modal fade show full-screen-modal').css({"display":"block", "z-index":10000000}); $('body').addClass('isModalPlay'); $('#immersiveModal').find('#swfgamewrapper').show(); if($('#html5game').length || cmg_mmg_html) { jQuery("#swfgamewrapper").html(cmg_mmg_html); if (cmg_flash_emulated_game()) { jQuery("#swfgamewrapper").html(cmg_mmg_swf_html); } } else if(jQuery('#swfgame').length) { if (cmg_flash_emulated_game()) { if(drupalSettings.cmatgame.flash_emulation === "2"){ jQuery("#swfgamewrapper").html(newswfiframe); } else { jQuery("#swfgamewrapper").html(cmg_mmg_swf_html); } } } if(drupalSettings.cmatgame.flash_emulation === "2"){ displayCmgCheerpxLoadingScreenResized(); } $('#immersiveModal').find('.close').click(function () { $("#immersiveModal").remove(); }); window.location.hash = "immersiveModal"; $(window).on('hashchange', function (event) { if (window.location.hash != "#immersiveModal") { $("#immersiveModal").hide(); if($('#html5game').length) { $('#html5game').remove(); } else if(jQuery('#swfgame').length) { jQuery('#swfgame').remove(); } $('body').removeClass('isModalPlay'); } }); adjustWidthHeightModalGame(false); if (typeof browser !== "undefined" && browser == "Microsoft Internet Explorer") { if ("function" === typeof checkVersionBrowser) { ieVersion = checkVersionBrowser(); if(ieVersion == "IE 11" && !jQuery('#html5game').length) { jQuery("#swfgamewrapper").html(cmg_mmg_html); //console.log("requestFullscreenModal immersiveModal ieVersion ? "+ieVersion.length); } } } }

' + signupContainerTop).prependTo('.load-wrap'); }

Skip All Ads: Go Premium Now

Continue in

15

Click the Ad Blocker extension icon in the upper
right area of your browser window.

' + '

  • 2

    Choose “Don\’t run on this domain” or similar
    option to disable it for all Coolmath Pages.

  • ' + '

  • 3

    Refresh the Page


    Having problems or need more info? Click here
  • ' + '' + '

    ' + '

    (Video) Connect 4 - Four in a row - Gameplay Review Strategy WebGL 2Player Online Game

    Four In A Row Online - Connect all 4 | Coolmath Games (19)

    ' + '

    FAQs

    Is there a way to win Connect 4 every time? ›

    Connect Four is what mathematicians call a "solved game," meaning you can play it perfectly every time, no matter what your opponent does. You will need to get the first move, but as long as you do so, you can always win within 41 moves.

    Has Connect 4 been solved? ›

    Connect Four has since been solved with brute-force methods, beginning with John Tromp's work in compiling an 8-ply database (February 4, 1995).

    How do you play 4 in a row online? ›

    Connect 4 pieces horizontally, vertically or diagonally to win the match. You can play against the computer, a friend, or challenge players online. Take turns dropping chips into the columns in order to get four in a row. To drop a chip, click on a column on the board or click and drag your chip into a column.

    What is the perfect game of Connect 4? ›

    So connect 4 is a board game where two players drop discs of different colors. And the object of the

    How do you win Connect 4 fast? ›

    Center. If you could win diagonally. Like this you could do diagonally all the way up here. Or you

    How do you trap in Connect 4? ›

    The simplest trap involves placing a second piece next to the first. Piece like we do right here now

    How do you win connect for every time? ›

    How to Win at Connect 4
    1. Anticipate Your Opponent's Moves. Connect 4 is indeed very similar to other strategy games, but for players who are not used to the rack, it can be almost intimidating. ...
    2. Stay in the Middle. ...
    3. Look Ahead. ...
    4. Never Play Directly Below the Game-Ending Space.
    17 Sept 2022

    How do you win Connect 4 every time Reddit? ›

    If you're starting player, you start in the middle, and you can win every single time. If you're second player and first player starts adjacent to the middle, you can force a draw every time, or win if they start in the outer columns.

    Can you get 5 in a row Connect 4? ›

    There are three ways to get four checkers in a row in Connect Four: horizontally, vertically, and diagonally. Some versions of Connect Four have an additional game where you attach an extra column to the grid and attempt to get five checkers in row.

    Can you play Connect 4 by yourself? ›

    The average game time of a Connect 4 game is ten minutes. In this version, you can choose to play with other people through local multiplayer, with players taking turns to control the mouse. Alternatively, challenge yourself against a computer!

    How do you make a Connect 4 game? ›

    All. Right I've got forty to one. And a quarter inch discs to make I have a one and a quarter inch

    How do you beat Connect 4 as 2? ›

    The game another thing about second player is that we're gonna have to watch out for traps more

    How do you not lose in Connect 4? ›

    Block your opponent.

    A very basic strategy of any game is that if you don't want to lose, you must prevent your opponent from winning. In Connect 4, this means defending against your opponent's tactics and placing your disks in the open spots that would allow them to complete a four-disk connection.

    Who is the best Connect 4 player in the world? ›

    manuelsousa

    How often does Connect 4 end in draw? ›

    That is awesome, thanks for sharing! I am kind of surprised the draw percentage is so high, hovering around 0.25%.

    Can you win Connect 4 diagonally? ›

    Play alternates until one player gets FOUR checkers of his or her color in a row. The four in a row can be horizontal, vertical or diagonal. See Figures 2, 3 and 4. If you're the first player to get four of your checkers in a row, you win the game!

    Can checkers be solved? ›

    Checkers is the largest game that has been solved to date, with a search space of 5×1020. The number of calculations involved was 1014, which were done over a period of 18 years. The process involved from 200 desktop computers at its peak down to around 50.

    Is chess solved? ›

    At this time, the game of chess has not been solved, but there is no reason why it is impossible, or intractable.

    What's the oldest board game? ›

    The Royal Game of Ur

    Wood and shell, found in the Royal Cemetery of Ur, south Iraq, 2600–2400 BC. The Royal Game of Ur is the oldest playable boardgame in the world, originating around 4,600 years ago in ancient Mesopotamia. The game's rules were written on a cuneiform tablet by a Babylonian astronomer in 177 BC.

    Is go solvable? ›

    There is only a finite number of possible go games, and so it can be solved. That is, one or more "best games for both players" can be found by looking at every possible game.

    How many combinations are there in Connect 4? ›

    Re: How many possible connect 4 games are there? The number of possible Connect-Four game situations after n plies (n turns) is tabulated at OEISA212693. The total is 4531985219092.

    What is the orange ball for in Connect 4 shots? ›

    The included orange ball is the tiebreaker ball. Players take turns to throw the orange ball, and whoever sinks it in the grid first, wins.

    What are the blue blockers in Connect 4? ›

    This edition of the connect 4 game offers an alternative way to play the popular strategy game. It includes 4 blue Blocker discs that players can use to block an opponent space or to lift a player checkers to quickly get 4-in-a-row to win.

    Does a square win in Connect Four? ›

    A winner is declared when one player gets four of their colored checkers in a row vertically, horizontally or diagonally. Other configurations, such as squares, don't count as winning combinations. The game is declared a stalemate or tie if all the pieces are played but nobody has four in a row.

    How old is Connect 4? ›

    Milton Bradley Releases Connect 4 in 1974

    Connect 4, as you know it today, is the game that was trademarked and released by Milton Bradley in 1974. If you have a Connect 4 game that was bought after 1974, then you have the original Milton Bradley version of the game.

    Can u do a square in Connect 4? ›

    Now I formed a square there that was one of my strategies try and get a square squares are really

    Who created the game Connect 4? ›

    Toy Story: Catching Up with Howard Wexler, Inventor of the Classic Game Connect 4. Above: Howard Wexler's home studio features some of the 120-plus toys and games he has invented and licensed during the past five decades.

    How many coins are there in Connect 4? ›

    In short, it´s a vertical board with 42 windows distributed in 6 rows and 7 columns. Both players have a set of 21 thin pieces (like coins); each of them uses a different colour.

    How many circles are there in Connect 4? ›

    Step 1: How to Make a Connect Four Game

    Cut out 21 circles, 1" in diameter, of each color.

    What is the fastest game of Connect 4? ›

    The fastest time to complete a giant connect four board by a team of two is 57.27 sec and was achieved by Ruby Fothergill (UK) & Taya Frearson (UK) at Blackpool Pleasure Beach, in Blackpool, UK, on 25 July 2019. The attempt was achieved at a week of record breaking at Blackpool Pleasure Beach.

    Is Connect 4 based on luck? ›

    Connect Four is a widely-known board game in which the ultimate goal is beat the opponent by being the first to first to form a horizontal, vertical, or diagonal line of four of one's own disc. As with all games, players typically need elements of both skill and luck.

    Why are some people good at Connect 4? ›

    In order to be good at Connect 4, players need to be able to look at the rack and quickly recognize patterns. When you are so focused on creating a 4 in a row pattern of your own discs, while constantly watching out for possible opportunities; recognizing patterns makes dominating the rack a lot easier.

    How do you win Connect 4 every time Reddit? ›

    If you're starting player, you start in the middle, and you can win every single time. If you're second player and first player starts adjacent to the middle, you can force a draw every time, or win if they start in the outer columns.

    How do you play Connect 4 strategy? ›

    Players choose where to put their disc into the grid, and then spin the column to line them up. They need to get 4 in a row--horizontally, vertically, or diagonally --to win. But they also need to keep an eye out for their opponent's disc placement before spinning or they might throw them a victory.

    How do you win everything? ›

    How to Win at Everything explores human physiology and psychology, physics, technology and mathematics to show how people can 'win' in any scenario. Each episode reveals how and why certain tricks or cheats work when they're put to the test by experts and a pair of identical twins in everyday scenarios.

    Is chess solved? ›

    At this time, the game of chess has not been solved, but there is no reason why it is impossible, or intractable.

    Can Checkers be solved? ›

    Checkers is the largest game that has been solved to date, with a search space of 5×1020. The number of calculations involved was 1014, which were done over a period of 18 years. The process involved from 200 desktop computers at its peak down to around 50.

    What is the best first move in checkers? ›

    We begin with red strongest move on the board and that's this move right here. It's from the single

    How do you win in 3 moves in checkers? ›

    You move white jumps from 92 to gets a king now his turn is over right 3 to 8 do you move he jumps.

    Who is the best checkers player in the world? ›

    Alexander Schwarzman. Born in 1967 in Moscow, Russia, Alexander Schwarzman is one of the best checkers players competing right now, having taken home the World Champion title from the International Draughts tournament in 2021. His first title in this tournament was won in 1998.

    Does a square win in Connect 4? ›

    A winner is declared when one player gets four of their colored checkers in a row vertically, horizontally or diagonally. Other configurations, such as squares, don't count as winning combinations. The game is declared a stalemate or tie if all the pieces are played but nobody has four in a row.

    Why do I always need to win? ›

    Your desire to win could be related to a chemical in your brain called dopamine, which is linked to pleasure. Besting your buddy on the golf course not only gives you bragging rights, it also triggers a good feeling in the reward area of your brain.

    Why do people like to win? ›

    The reason why winning feels so good is because it is actually largely chemical. There is a hormone in our brain called dopamine, which is linked to pleasure. And when we win, we produce more dopamine, which triggers a good feeling in the reward area of your brain, that you want to experience again and again.

    Videos

    1. Quickest Ways to Win at Connect 4!
    (Keith Galli)
    2. Giant Connect 4 Family Game with 1 hour Kids Activities with Ryan
    (Ryan's World)
    3. Addition Math Games for Kids - Four in a Row/Connect 4
    (LearningMole)
    4. Clubhouse Games: 51 Worldwide Classics (Switch) - Game #4: Four in a Row
    (MetalSmasherGaming)
    5. Hasbro Gaming CONNECT 4 - Classic four in a row game - Board Games and Toys for Kids, boys, girls -
    (Kids Educational Center)
    6. Connect 4 Online Unblocked - Four in a Row
    (UnblockedGames7766)

    Top Articles

    Latest Posts

    Article information

    Author: Errol Quitzon

    Last Updated: 12/02/2022

    Views: 6297

    Rating: 4.9 / 5 (79 voted)

    Reviews: 86% of readers found this page helpful

    Author information

    Name: Errol Quitzon

    Birthday: 1993-04-02

    Address: 70604 Haley Lane, Port Weldonside, TN 99233-0942

    Phone: +9665282866296

    Job: Product Retail Agent

    Hobby: Computer programming, Horseback riding, Hooping, Dance, Ice skating, Backpacking, Rafting

    Introduction: My name is Errol Quitzon, I am a fair, cute, fancy, clean, attractive, sparkling, kind person who loves writing and wants to share my knowledge and understanding with you.