for(var editor=CKEDITOR.replace("t"),searchPastTense=!0,edata,sobv="is be am are was were been has have had do does did can could shall should will would may might must being".split(" "),wc=" .,\n:'\"|!?<>&".split(""),i=0;i<sobv.length;i++)sobv[i]="."+sobv[i]+".";for(var other_words=["due date","sample text","sample title"],hwords=sobv.concat(other_words),i=0;i<hwords.length;i++)hwords[i]=new RegExp(hwords[i],"ig");
var ptv=[/\swas\s/ig,/\sgot\s/ig,/\sdrank\s/ig,/\shad\s/ig,/\sbought\s/ig,/\sate\s/ig,/\swent\s/ig,/\swere\s/ig,/\sran\s/ig,/\ssat\s/ig,/\Sed\s/ig],stats={sobv:0,sobv_all:0,pastTense:0,pastTense_all:0};function createString(a){for(var b="",c=0;c<(void 0!=a?a:16);c++)b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(62*Math.random()));return b}var quotePos={start:[],end:[]};editor.addCommand("ct",{exec:function(){markText()}});
editor.ui.addButton("checkTextButton",{label:"Check Text",command:"ct",toolbar:"others",icon:"highlighter.png"});function checkForQuote(a){var b=0,c=0;if(quotePos.start[c]>a)return!1;for(;a>=quotePos.start[c]&&c<=quotePos.start.length;)b=c,c++;return a<=quotePos.end[b]?!0:!1}
function replacer(a,b){var c=a.slice(a.length-1,a.length),f=a.slice(0,1);if(-1!==other_words.indexOf(a.toLowerCase())){stats.sobv_all++;var d=checkForQuote(b);d||stats.sobv++;return f+'<span style="background-color: #'+(d?"fff9d5":"ffce00")+">"+a+"</span>"+c}return-1!==wc.indexOf(c)&&-1!==wc.indexOf(f)?(stats.sobv_all++,(d=checkForQuote(b))||stats.sobv++,f+'<span style="background-color: #'+(d?"fff9d5":"ffce00")+'">'+a.slice(1,a.length-1)+"</span>"+c):a}var gq=0;
function grayQuotes(a,b){if(0===gq)return gq=1,'<span style="color: #888">'+a;gq=0;return a+"</span>"}function markQuotes(a){quotePos={start:[],end:[]};var b;b=a.replace(/“|”/g,"" ");for(var c=0,f=0;"string"===typeof a&&-1!==b.indexOf(""");)0===f?(f=1,quotePos.start[quotePos.start.length]=b.indexOf(""")+c):(f=0,quotePos.end[quotePos.end.length]=b.indexOf(""")+c),c+=b.indexOf(""")+1,b=b.slice(b.indexOf(""")+1)}var ptmarked=[];
function ptreplacer(a,b){if(-1!==["bed","red"].indexOf(a.toLocaleLowerCase()))return a;var c=a.slice(a.length-1,a.length),f=a.slice(0,1),d=createString(6);ptmarked[ptmarked.length]=b;var e=checkForQuote(b);stats.pastTense_all++;e||(stats.pastTense++,ptmarked[ptmarked.length]=d);return f+"<span data-pt"+d+' style="text-decoration:underline">'+a.slice(1,a.length-1)+"</span>"+c}
function ptmark(){for(var a=0;a<ptmarked.length;a++){for(var b=edata.indexOf("pt"+ptmarked[a]),c=edata,f=!1,d=b;!f&&0<d;){var d=d-1,e=edata.slice(d,d+1);if("""===e||"."===e||","===e||"!"===e||";"===e||"?"===e||"<p>"===edata.slice(d-2,d+1))f=!0}for(f=!1;!f&&b<c.length;)if(b+=1,e=edata.slice(b,b+1),"""===e||"."===e||","===e||"!"===e||";"===e||"?"===e)f=!0;-1!==d&&(e=0," "===c.slice(0,1)&&(e=1),edata=c.slice(e,d+1)+'<span style="background-color: #c4ddff">'+c.slice(d+1,b+1)+"</span>"+edata.slice(b+
1))}ptmarked=[]}
function markText(){stats.sobv=0;stats.sobv_all=0;stats.pastTense=0;stats.pastTense_all=0;quotePos={start:[],end:[]};edata=editor.getData();edata=edata.replace(/"|“|”/ig,grayQuotes);if(searchPastTense)for(var a=0;a<ptv.length;a++)markQuotes(edata),edata=edata.replace(ptv[a],ptreplacer),ptmark(edata);for(a=0;a<hwords.length;a++)markQuotes(edata),edata=edata.replace(hwords[a],replacer);editor.setData(edata);0<stats.sobv?alertify.success("Found "+stats.sobv+" State of Being Verbs (Gold)"):alertify.success("No instances to highlight");
0<stats.pastTense&&alertify.success("Found "+stats.pastTense+" Past Tense Sentences (Blue)")}
function cl(){alertify.alert('<b>Changes</b><br><ul style="text-align:left"><li>Better, simpler, updated editor</li><li>Now uses MLA styling: "12px" font (16px actual size) w/ Double Spacing (Customizable)</li><li>Results now differentiate between verbs in quotes and verbs outside of quotes</li><li>Basic past tense checker (looks for sentences written with past tense verbs)</li><li>Different colored highlighting for SOBV/Past Tense</li></ul>')}
function formatEditor(a){0===a?(bfe0.disabled=!0,bfe1.disabled=!1,altStyle.innerHTML="",localStorage.sobvcFormat="0"):(bfe0.disabled=!1,bfe1.disabled=!0,altStyle.innerHTML=".cke_editable{font-family: 'Arial', sans-serif;font-size: 14px;line-height: 1.15;}",localStorage.sobvcFormat="1")}
function togglePTVS(){searchPastTense?(searchPastTense=!1,localStorage.sobvcSPT="0",bptv.style.backgroundColor="#f9ffce",bptv.innerHTML="Inactive"):(searchPastTense=!0,localStorage.sobvcSPT="1",bptv.style.backgroundColor="#daffe7",bptv.innerHTML="Active")}"1"===localStorage.sobvcFormat&&formatEditor(1);"0"===localStorage.sobvcSPT&&togglePTVS();