/**
  * generate_custom_js
  * 
  * Generate custom javascript code in head of page that will not be cached
  */
 function generte_custom_js_precompiled()
 {
     if ($this->is_plugin_deactivated_on()) {
         return;
     }
     // -- loading non cachble and noasync code first
     if (count($this->js_social_apis) > 0) {
         if (!ESSBCoreHelper::is_module_deactivate_on('native')) {
             foreach ($this->js_social_apis as $network => $loaded) {
                 $this->load_social_api_code($network);
             }
         }
     }
     if (count($this->js_static_noasync_footer)) {
         foreach ($this->js_static_noasync_footer as $key => $file) {
             $this->manual_script_load($key, $file);
         }
     }
     // loading in precompiled cache mode
     $cache_key = "essb-precompiled";
     $cached_data = ESSBPrecompiledResources::get_resource($cache_key, 'js');
     if ($cached_data != '') {
         echo "<script type='text/javascript' src='" . $cached_data . "' async></script>";
         return;
     }
     $static_content = array();
     $scripts = array();
     $current_site_url = get_site_url();
     $scripts[] = implode(" ", $this->js_code);
     if (count($this->js_static) > 0) {
         foreach ($this->js_static as $key => $file) {
             $relative_path = ESSBPrecompiledResources::get_asset_relative_path($current_site_url, $file);
             $code = file_get_contents(ABSPATH . $relative_path);
             $scripts[] = $code;
             $static_content[$key] = $file;
         }
     }
     if (count($this->js_static_footer)) {
         foreach ($this->js_static_footer as $key => $file) {
             $relative_path = ESSBPrecompiledResources::get_asset_relative_path($current_site_url, $file);
             $code = file_get_contents(ABSPATH . $relative_path);
             $scripts[] = $code;
             $static_content[$key] = $file;
         }
     }
     $toc = array();
     foreach ($static_content as $handle => $item_content) {
         $toc[] = sprintf(' - %s', $handle . '-' . $item_content);
     }
     $scripts[] = sprintf("\n\n\n/* TOC:\n%s\n*/", implode("\n", $toc));
     ESSBPrecompiledResources::put_resource($cache_key, implode(' ', $scripts), 'js');
     $cached_data = ESSBPrecompiledResources::get_resource($cache_key, 'js');
     if ($cached_data != '') {
         echo "<script type='text/javascript' src='" . $cached_data . "' async></script>";
     }
 }