<?php
namespace W3TC;

class UserExperience_LazyLoad_GoogleMaps_WPGoogleMapPlugin {
	public function w3tc_lazyload_mutator_before( $data ) {
		$buffer = $data['buffer'];
		if (strpos( $buffer, '<script>jQuery(document).ready(function($) {var map' ) === false ) {
			return $data;
		}

		$buffer = str_replace(
			'<script>jQuery(document).ready(function($) {var map',
			'<script>window.w3tc_wpgmp_load = (function($) {var map',
			$buffer
		);

		add_filter( 'w3tc_lazyload_on_initialized_javascript', array(
			$this, 'w3tc_lazyload_on_initialized_javascript' ) );

		$data['buffer'] = $buffer;
		$data['modified'] = true;

		return $data;
	}



	public function w3tc_lazyload_on_initialized_javascript() {
		return 'window.w3tc_lazyLazy_googlemaps_wpmapplugin = new LazyLoad({' .
			'elements_selector: ".wpgmp_map_container",'.
			'callback_enter: function(e){' .
				'window.w3tc_wpgmp_load(jQuery)'.
			'}});';
	}
}