var certificate ;

function sign_log(text)
{   $j('#sign_comment').css('display','block') ;
    $j('#sign_comment_text').val($j('#sign_comment_text').val()+text+"\n") ;
    var ms = new Date();
    var t=ms.getHours()+":"+ms.getMinutes()+":"+ms.getSeconds()+"."+ms.getMilliseconds() ;
    //if (LS_trace_sign_JS==1) send_ajax_request({cmd:'cryptopro/reg_log',text:text,t:t}) ;
    //var data={cmd:'cryptopro/reg_log',text:text,t:t,uid:session_sign_uid} ;
    //if (LS_trace_sign_JS) $j.ajax({url:'/cab/ajax.php',async:false,type:'POST',dataType:'xml',success:exec_ajax_cmd_success_JQ,data:data});

    if (LS_trace_sign_JS==1) send_ajax_request({cmd:'log/log_json',theme:'debug_signature',log_fname:'debug_signature_'+sign_uid,title:t,text:text,time:t}) ;

}

function GetErrorMessage(e) {
    var err = e.message;
    if (!err) {
        err = e;
    } else if (e.number) {
        err += " (" + e.number + ")";
    }
    return err;
}

function ESMO_Common_CheckForPlugIn()
{   console.log('ESMO_Common_CheckForPlugIn') ;
        //cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_DEBUG);
    cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_INFO);
    //cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_ERROR);

    var canAsync = !!cadesplugin.CreateObjectAsync;
    console.log('canAsync='+canAsync) ;
    if(canAsync && AsyncMode)
    {   sign_log('2. Подключение плагина, ASYNC mode') ;
        include_async_code().then(function()
        {
            // запускаем событие что плагин успешно загружен
            $j('body').trigger('cadesplugin_completted');
            // получаем данные по версии плагина
            var CurrentPluginVersion;
            cadesplugin.async_spawn(function *(arg)
            {   var oAbout = yield cadesplugin.CreateObjectAsync("CAdESCOM.About");
                CurrentPluginVersion = yield oAbout.PluginVersion;
                var ver = yield oAbout.CSPVersion("", 75);
                var ret = (yield ver.MajorVersion) + "." + (yield ver.MinorVersion) + "." + (yield ver.BuildVersion);
                try {  var sCSPName = yield oAbout.CSPName(75); }  catch(err){}
                let cp_params={} ;
                cp_params.cryptopro={} ;
                cp_params.cryptopro.PlugInVersion = yield CurrentPluginVersion.toString() ;
                cp_params.cryptopro.CSPVersion = ret ;
                cp_params.cryptopro.CSPName = sCSPName ;
                cp_params.cryptopro.Browser = $j.browser.name+" "+$j.browser.version ;
                // отпправляем событие получения данных по версии CP
                $j('body').trigger('cadesplugin_cp_versions',[cp_params]);
            });
        });
    }
}
