///NOTE TO SELF: switch to monobook skin to use production scripts
// <nowiki><pre>
mw.loader.load( "https://meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript" );//importScript('User:Ucucha/HarvErrors.js');
importScript("User:PleaseStand/segregate-refs.js");
importScript("User:Ohconfucius/test/EngvarB.js");	//Engvar
importScript("User:Ohconfucius/dashes.js");
importScript("User:Splarka/diffreveal.js");       //reveals unicode characters when viewing diffs
importScript("User:Ohconfucius/script/flagcruft.js");   //flagcruft, tablesort
importScript("User:Ohconfucius/test/formatgeneral.js");
importScript("User:Ohconfucius/script/tometricunits.js");
importScript("User:Ohconfucius/test/MOSNUM dates.js");
importScript("User:Ohconfucius/test/Common Terms.js");
importScript("User:Ohconfucius/test/Sources.js");
importScript("User:Ohconfucius/script/foreigndates.js");
mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript');

importScript('User:Evad37/duplinks-alt.js'); // ]

// a collection of single-purpos regexes are stored at "User:Ohconfucius/test/throwaway_regexes"

/**** dyk ****/
// ]
importScript('User:Dr pda/prosesize.js'); //]


/**** afd helper ****/
mw.loader.load//en.wikipedia.org/w/index.php?title=User:Jnothman/afd_helper/script.js&action=raw&ctype=text/javascript');

/* This is to keep track of who is using this extension: ] */

/** ------------------------------------------------------------------------ **/
/// EDIT SUMMARIES & USE DMY TEMPLATE

function Ohc_edit_summary1() {
	//Add a tag to the summary box
//	setoptions(minor='true')	//removed ",watch='false'" in response to user notification 13 Nov. 2010
	setreason(']-assisted ] fixes', 'appendonce');
	doaction('diff');
}

function Ohc_edit_summary2(editor) {
	editor
		.options({ minor: false, watch: false })
		.appendEditSummary(']-assisted ] fixes and per ]')
		.clickDiff();
}

function Ohc_for_AWB(editor) {
	editor
		.replace(/(+)(?:regex|txt.value=txt.value.replace)\(\//gi, '$1ArticleText=Regex.Replace(ArticleText, @"(?i)')
		.replace(/\/gi, /gi, '", "')
		.replace(/\'(\);*)/gi, '"$1');
}

function Ohc_transcripts() {
	regex(/(\d?:|)\d\d?:\d\d\n/gi, '');
	regex(/(\w,?)\s?\n/gi, '$1 ');

}

function Ohc_for_Petscan() {
	regex(/\\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+) (\s]+) (\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+) (\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+) (\s]+)\|(]*)\]\]/gi, '');
	regex(/\\s]+)\|(]*)\]\]/gi, '');
}

function Ohc_insert_tag() {
 var txt=document.editform.wpTextbox1;
// current month-year
    var currentDate = new Date();
    var currmonth = currentDate.getMonth();
    var curryear  = currentDate.getFullYear();
    var myMonths = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var curryyyymm = myMonths + ' ' + curryear;

/// insert 'use British English' template
    txt.value=txt.value.replace(/\{\{(Use Australian English\s?)(\|*)?\}\}/gi, '{{$1|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{(Use (?:Bangladeshi|Commonwealth|Pakistani|Irish|Scottish|Singapore|Hong Kong|Indian|New Zealand|South African) English\s?)(\|*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{(?:use British(?: \(Oxford\)|) English)(\|*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');
    txt.value=txt.value.replace(/\{\{Engvar*\s?(\|*)?\}\}/gi, '{{EngvarB|date='+curryyyymm+'}}');

    var rxpdd = new RegExp("{{(Use (?:Australian|Scottish|British|Indian|New Zealand|South African) English|EngvarB)\\|date="+curryyyymm+"}}", "gi");
    var dflagfound = txt.value.search(rxpdd);
    if (dflagfound == -1)
    {
        txt.value='{{EngvarB|date='+curryyyymm+'}}\r\n'+txt.value;
    }
}

/** ------------------------------------------------------------------------ **/
/// COMPOSITE SCRIPT DRIVERS

function ONETOUCH_DMY(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
	//Ohc_ref_format();
	Ohc_retrain_links();
	Ohc_CommonTerms();
	//ohc_replaceflag();
	ohc_delink_dates(editor);
	ohc_expand_ref_dates(editor);
	ohc_protect_dates(editor);
	ohc_fix_unambiguous_dates(editor);
	ohc_body_dates_to_dmy(editor);
	ohc_delink_year_in_X(editor);
	ohc_dmy_publication_dates(editor);
	ohc_delink_ISO_to_dmy(editor);
	ohc_unprotect_dates(editor);
	autoEdFunctions(); //dashes
	Ohc_formatgeneral();
	ohc_sources_driver(editor);
	Ohc_edit_summary2(editor);
}

function ONETOUCH_MDY(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
//	Ohc_ref_format();
	Ohc_CommonTerms();

	ohc_delink_dates(editor);
	ohc_expand_ref_dates(editor);
	ohc_protect_dates(editor);
	ohc_fix_unambiguous_dates(editor);
	ohc_body_dates_to_mdy(editor);
	ohc_delink_year_in_X(editor);
	ohc_mdy_publication_dates(editor);
	ohc_delink_ISO_to_mdy(editor);
	ohc_unprotect_dates(editor);
	autoEdFunctions(); //dashes
	Ohc_formatgeneral();
	ohc_sources_driver(editor);
	Ohc_edit_summary2(editor);
}

function ohc_sources_driver(editor) {
      Ohc_remove_urls();
      ohc_protect_urls();
      Ohc_sources_prep();
      ohc_foreign_dates();
      Ohc_unpipe();
      Ohc_dab_news_sources();
      Ohc_sourcename();
      Ohc_sourcework();
      Ohc_sourcepub();
      Ohc_sourceagency();
      Ohc_redo_pipe();
      Ohc_publishers();
      Ohc_sources_cleanup();
      ohc_unprotect_urls();
}

function ONETOUCH_FMT(editor) {
// Add a tag to the summary box
 var txt=document.editform.wpTextbox1;
	Ohc_CommonTerms();
	autoEdFunctions(); //dashes
	ohc_sources_driver(editor);
	Ohc_formatgeneral();
	Ohc_edit_summary2(editor);
}

/** ------------------------------------------------------------------------ **/


/**
 * TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
 * @see https://meta.wikimedia.orghttps://wiki95.com/en/TemplateScript
 * @update-token ]
 */
$.ajax('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js', { dataType:'script', cache:true }).then(function() {
	pathoschild.TemplateScript.add(
		[
			//{ name: 'delink dates', script: function(editor) { ohc_delink_dates(editor); }, tooltip: 'delink dates' },
			{ name: 'One Touch: DMY', script: function(editor) { ONETOUCH_DMY(editor); }, tooltip: 'day month + CT' },
			{ name: 'One Touch: MDY', script: function(editor) { ONETOUCH_MDY(editor); }, tooltip: 'month day + CT' },
			{ name: 'One Touch: FORMAT', script: function(editor) { ONETOUCH_FMT(editor); }, tooltip: 'general fmt, CT + cites' },
			//{ name: 'Make AWB', script: function(editor) { Ohc_for_AWB(editor); }, tooltip: 'Make AWB code' },
			//{ name: 'Expand dates', script: function(editor) { ohc_refs_to_yyyymmdd(editor); }, tooltip: 'yyyy-mm-dd' },
			{ name: 'SLASH-US', script: function(editor) { ohc_US_slash_dates_to_mdy(editor); }, tooltip: 'US-slash' },
			{ name: 'SLASH-UK', script: function(editor) { ohc_UK_slash_dates_to_dmy(editor); }, tooltip: 'UK-slash' },
		],
		{ category: 'General' }
	);
});
// </pre></nowiki>