function removeCollaborator(kind,d_pk,u_pk){clearInfoAndError();var url="/editor/collaboration/";var callback={success:function(o){de("collaborators").innerHTML=o.responseText;},failure:function(o){de("error").innerHTML=o.responseText;}};var postData="d_pk="+d_pk+"&u_pk="+u_pk;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}function de(div){return document.getElementById(div);}function clearInfoAndError(){de("info").innerHTML="<br />";de("error").innerHTML="<br />";}function clearDiv(div){try{if(div=="error"||div=="info"){de(div).innerHTML="<br />";}else{de(div).innerHTML="";}}catch(e){}}function setLoading(){try{de("loading").innerHTML='<font style="color: #F3E9C3; background-color: #723800;">Loading...</font>';}catch(e){}}function unsetLoading(){try{de("loading").innerHTML="<br />";}catch(e){}}function showSaved(kind,pk,name){clearInfoAndError();setLoading();var url="/editor/show/";var callback={success:function(o){unsetLoading();var doc=o.responseText.replace(/^\\%2B/g,"+");try{cp.edit(doc,"latex");}catch(e){document.forms[0].ta.value=doc;}document.controls.fn.value=name;},failure:function(o){unsetLoading();de("error").innerHTML=o.responseText;}};var postData="kind="+kind+"&pk="+pk;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}function removeSaved(kind,pk){var remove=confirm("Are you sure you wish to permanently delete this file?");if(remove){var url="/editor/delete/";var callback={success:function(o){de("info").innerHTML=o.responseText;updateSaved(kind);},failure:function(o){de("error").innerHTML=o.responseText;}};var postData="kind="+kind+"&pk="+pk;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}}function updateSaved(kind){var url="/editor/saved/";var callback_div="saved_"+kind;var small_div="small_"+callback_div;var scroll_div=small_div+"_child";var callback={success:function(o){var vScrollTop=de(scroll_div).scrollTop;de(callback_div).className="hidden";de(callback_div).innerHTML=o.responseText;de(callback_div).className="";ashow(small_div);de(scroll_div).scrollTop=vScrollTop;},failure:function(o){de("error").innerHTML=o.responseText;}};var postData="kind="+kind;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}function hideSaved(kind){var url="/editor/saved/";var callback_div="saved_"+kind;var small_div="small_"+callback_div;var callback={success:function(o){ahide(small_div);de(callback_div).innerHTML=o.responseText;},failure:function(o){de("error").innerHTML=o.responseText;}};var postData="kind="+kind+"&hide=1";var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}function spellCheck(text){arr=text.split(/[^a-zA-Z]+/);check="";for(var i=0;i<arr.length;i++){var word=arr[i];word=word.replace(/\s/,"");if(word!=""){check=arr[i]+","+check;}}check=check.substring(0,check.length-1);check=check.toLowerCase();check=prepareText(check);setLoading();var callback={success:function(o){unsetLoading();de("info").innerHTML=o.responseText;},failure:function(o){unsetLoading();de("error").innerHTML=o.responseText;}};var url="/editor/spellcheck/";var postData="words="+check;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}function typeset(text,file){clearInfoAndError();var max_chars=35;var len=file.length;if(len==0){de("error").innerHTML="You must specify a file name for this file.";}else{if(len>max_chars){de("error").innerHTML="Please use "+max_chars+" or fewer characters for your file name. (You have used "+len+".)";}else{if(file.substring(len-4,len)!=".tex"&&file.substring(len-4,len)!=".bib"&&file.substring(len-4,len)!=".sty"&&file.substring(len-4,len)!=".cls"){de("error").innerHTML="Your file name must end in '.tex', '.bib', '.sty', or '.cls'.";}else{setLoading();var url="/editor/typeset/";var kind=file.substring(len-3,len);var callback={success:function(o){unsetLoading();de("info").innerHTML=o.responseText;updateSaved(kind);},failure:function(o){unsetLoading();de("error").innerHTML=o.responseText;}};text=prepareText(text);var postData="text="+text+"&file="+file;var request=YAHOO.util.Connect.asyncRequest("POST",url,callback,postData);}}}}function prepareText(text){text=text.replace(/\+/g,"%2B").replace(/&/g,"%26").replace(/\;/g,"%3B");text=escape(text);return text;}function newFile(name,pword){document.controls.fn.value="";cp.edit(" ","latex");}function loadWindow(txt){var w=window.open();w.document.write(txt);}function mouseOver(msg){de("info").innerHTML=msg;}function mouseOut(msg){if(!de("info").innerHTML.match("error")&&!de("info").innerHTML.match("successful")){clearInfoAndError();}}function toggleViewStatus(pk){setLoading();var url="/editor/toggle/?pk="+pk;var callback={success:function(o){unsetLoading();if(o.responseText=="1"){de("info").innerHTML="Your document is now public.";updateSaved("tex");}else{de("info").innerHTML="Your document is now private.";updateSaved("tex");}},failure:function(o){unsetLoading();de("error").innerHTML=o.responseText;}};var request=YAHOO.util.Connect.asyncRequest("GET",url,callback);}function revisions(){if(document.controls.fn.value.length>0){var a=Array(".tex",".bib",".sty",".cls");var ok=0;for(var i=0;i<a.length;i++){if(document.controls.fn.value.match(a[i])){ok=1;}}if(ok==1){window.open("/editor/revisions/?file="+document.controls.fn.value,"MonkeyTeX: Online LaTeX Editor");}}}function makeShortcut(cmd){var t=cp.getHighlighted();var begin=0;var end=1;t=t.substring(0,begin)+"\\"+cmd+"{"+t.substring(begin,end)+"}"+t.substring(end,t.length);cp.setCode(t);cp.putCursor(begin);}function makeBold(){return makeShortcut("textbf");}function makeItalic(){return makeShortcut("textit");}function ashow(x){var obj=$O(x);obj.style.display="block";obj.style.overflow="hidden";var attrs={opacity:{from:0,to:1},height:{from:0,to:obj.getElementsByTagName("div")[0].offsetHeight}};var ani=new YAHOO.util.Anim(obj,attrs,0.9,YAHOO.util.Easing.easeOutStrong);ani.onComplete.subscribe(function(){obj.style.overflow="visible";});ani.animate();}function ahide(x){obj=$O(x);var attrs={opacity:{from:1,to:0},height:{to:0}};obj.style.overflow="hidden";var ani=new YAHOO.util.Anim(obj,attrs,0.6,YAHOO.util.Easing.easeOutStrong);ani.onComplete.subscribe(function(){obj.style.display="none";});ani.animate();}function atoggle(x){var obj=$O(x);if(obj.style.display=="none"){ashow(obj);}else{ahide(obj);}}function $O(x){if(typeof x=="string"){return de(x);}if(typeof x=="object"){return x;}}