// ==UserScript==
// @name Fast-Codeforces-dev
// @namespace Violentmonkey Scripts
// @version 0.2.0
// @match *://codeforces.com/*
// @match *://codeforc.es/*
// @match *://codeforces.ml/*
// @description 使您更方便地使用Codeforces
// @author xcxxcx
// @require https://code.jquery.com/jquery-3.4.1.min.js
// @downloadURL none
// ==/UserScript==
const Name="fast-codeforces-",JPar=JSON.parse,JStr=JSON.stringify;
function gets(dir){
if((Name+dir) in localStorage ===false||localStorage[Name+dir]==="undefined")return void 0;
return JPar(localStorage[Name+dir]);
}
function puts(dir,val){
if(val!==void 0)localStorage[Name+dir]=JStr(val);
else localStorage[Name+dir]="undefined";
}
var user=$(".lang-chooser>div:eq(1)>a:eq(0)").html(),user_csrf=$("[name=X-Csrf-Token]").attr("content");
function Ajax(url){
return $.ajax({
async:false,
method:"GET",
url:url,
data:{},
success:function(e){return e;},
error:function(e){console.log("ERROR");return e;}
}).responseText;
}
function show_pre(){$("#pageContent,#pre-bar").show();}
function hide_pre(){$("#pageContent,#pre-bar").hide();}
function show_sub(){$("#fc-submit").show();$("#fc-menu-submit").css("background-color","#AAAAAA");}
function hide_sub(){$("#fc-submit").hide();$("#fc-menu-submit").css("background-color","white");}
function getsub(){
var sub=gets("submit");
if(sub!==void 0){$("#fc-submit-form").html(sub);return;}
sub=$(Ajax("/problemset/submit")).find(".submit-form");
sub.find(".aceEditorTd").html(``);
$("#fc-submit-form").html(sub.html());puts("submit",sub.html());
}
function init_sub(){
$("#pageContent").after($(`
`));
getsub();
}
var prolist=gets("problem"),focpro;
if(prolist===void 0){puts("problem",[]);prolist=[];}
function showpro(ID){$("#fc-problem-menu-"+ID).addClass("focpro");$("#fc-problem-"+ID+",#fc-bar-problem-"+ID).show();}
function hidepro(ID){$("#fc-problem-menu-"+ID).removeClass("focpro");$("#fc-problem-"+ID+",#fc-bar-problem-"+ID).hide();}
function show_pro(){$("#fc-problem,#fc-bar-problem").show();$("#fc-menu-problem").css("background-color","#AAAAAA");}
function hide_pro(){$("#fc-problem,#fc-bar-problem").hide();$("#fc-menu-problem").css("background-color","white");}
function getpro(url){
x=$(Ajax("/problemset/problem/"+url));
return [x.find(`.problem-statement`),x.find(`#sidebar`)];
}
function addpro(x,y){
$("#fc-problem-menu-add").before(`