var Attacklab=Attacklab||{}
Attacklab.showdown=Attacklab.showdown||{}
Attacklab.showdown.converter=function(){var g_urls;var g_titles;var g_html_blocks;var g_list_level=0;this.makeHtml=function(text){g_urls=new Array();g_titles=new Array();g_html_blocks=new Array();text=text.replace(/~/g,"~T");text=text.replace(/\$/g,"~D");text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");text="\n\n"+text+"\n\n";text=_Detab(text);text=text.replace(/^[ \t]+$/mg,"");text=_HashHTMLBlocks(text);text=_StripLinkDefinitions(text);text=_RunBlockGamut(text);text=_UnescapeSpecialChars(text);text=text.replace(/~D/g,"$$");text=text.replace(/~T/g,"~");return text;}
var _StripLinkDefinitions=function(text){var text=text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm,function(wholeMatch,m1,m2,m3,m4){m1=m1.toLowerCase();g_urls[m1]=_EncodeAmpsAndAngles(m2);if(m3){return m3+m4;}else if(m4){g_titles[m1]=m4.replace(/"/g,"&quot;");}
return"";});return text;}
var _HashHTMLBlocks=function(text){text=text.replace(/\n/g,"\n\n");var block_tags_a="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del"
var block_tags_b="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math"
text=text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,hashElement);text=text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,hashElement);text=text.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,hashElement);text=text.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,hashElement);text=text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,hashElement);text=text.replace(/\n\n/g,"\n");return text;}
var hashElement=function(wholeMatch,m1){var blockText=m1;blockText=blockText.replace(/\n\n/g,"\n");blockText=blockText.replace(/^\n/,"");blockText=blockText.replace(/\n+$/g,"");blockText="\n\n~K"+(g_html_blocks.push(blockText)-1)+"K\n\n";return blockText;};var _RunBlockGamut=function(text){text=_DoHeaders(text);var key=hashBlock("<hr />");text=text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,key);text=text.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm,key);text=text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm,key);text=_DoLists(text);text=_DoCodeBlocks(text);text=_DoBlockQuotes(text);text=_HashHTMLBlocks(text);text=_FormParagraphs(text);return text;}
var _RunSpanGamut=function(text){text=_DoCodeSpans(text);text=_EscapeSpecialCharsWithinTagAttributes(text);text=_EncodeBackslashEscapes(text);text=_DoImages(text);text=_DoAnchors(text);text=_DoAutoLinks(text);text=_EncodeAmpsAndAngles(text);text=_DoItalicsAndBold(text);text=text.replace(/  +\n/g," <br />\n");return text;}
var _EscapeSpecialCharsWithinTagAttributes=function(text){var regex=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;text=text.replace(regex,function(wholeMatch){var tag=wholeMatch.replace(/(.)<\/?code>(?=.)/g,"$1`");tag=escapeCharacters(tag,"\\`*_");return tag;});return text;}
var _DoAnchors=function(text){text=text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeAnchorTag);text=text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeAnchorTag);text=text.replace(/(\[([^\[\]]+)\])()()()()()/g,writeAnchorTag);return text;}
var writeAnchorTag=function(wholeMatch,m1,m2,m3,m4,m5,m6,m7){if(m7==undefined)m7="";var whole_match=m1;var link_text=m2;var link_id=m3.toLowerCase();var url=m4;var title=m7;if(url==""){if(link_id==""){link_id=link_text.toLowerCase().replace(/ ?\n/g," ");}
url="#"+link_id;if(g_urls[link_id]!=undefined){url=g_urls[link_id];if(g_titles[link_id]!=undefined){title=g_titles[link_id];}}
else{if(whole_match.search(/\(\s*\)$/m)>-1){url="";}else{return whole_match;}}}
url=escapeCharacters(url,"*_");var result="<a href=\""+url+"\"";if(title!=""){title=title.replace(/"/g,"&quot;");title=escapeCharacters(title,"*_");result+=" title=\""+title+"\"";}
result+=">"+link_text+"</a>";return result;}
var _DoImages=function(text){text=text.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeImageTag);text=text.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeImageTag);return text;}
var writeImageTag=function(wholeMatch,m1,m2,m3,m4,m5,m6,m7){var whole_match=m1;var alt_text=m2;var link_id=m3.toLowerCase();var url=m4;var title=m7;if(!title)title="";if(url==""){if(link_id==""){link_id=alt_text.toLowerCase().replace(/ ?\n/g," ");}
url="#"+link_id;if(g_urls[link_id]!=undefined){url=g_urls[link_id];if(g_titles[link_id]!=undefined){title=g_titles[link_id];}}
else{return whole_match;}}
alt_text=alt_text.replace(/"/g,"&quot;");url=escapeCharacters(url,"*_");var result="<img src=\""+url+"\" alt=\""+alt_text+"\"";title=title.replace(/"/g,"&quot;");title=escapeCharacters(title,"*_");result+=" title=\""+title+"\"";result+=" />";return result;}
var _DoHeaders=function(text){text=text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(wholeMatch,m1){return hashBlock("<h1>"+_RunSpanGamut(m1)+"</h1>");});text=text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(matchFound,m1){return hashBlock("<h2>"+_RunSpanGamut(m1)+"</h2>");});text=text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(wholeMatch,m1,m2){var h_level=m1.length;return hashBlock("<h"+h_level+">"+_RunSpanGamut(m2)+"</h"+h_level+">");});return text;}
var _ProcessListItems;var _DoLists=function(text){text+="~0";var whole_list=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;if(g_list_level){text=text.replace(whole_list,function(wholeMatch,m1,m2){var list=m1;var list_type=(m2.search(/[*+-]/g)>-1)?"ul":"ol";list=list.replace(/\n{2,}/g,"\n\n\n");;var result=_ProcessListItems(list);result=result.replace(/\s+$/,"");result="<"+list_type+">"+result+"</"+list_type+">\n";return result;});}else{whole_list=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g;text=text.replace(whole_list,function(wholeMatch,m1,m2,m3){var runup=m1;var list=m2;var list_type=(m3.search(/[*+-]/g)>-1)?"ul":"ol";var list=list.replace(/\n{2,}/g,"\n\n\n");;var result=_ProcessListItems(list);result=runup+"<"+list_type+">\n"+result+"</"+list_type+">\n";return result;});}
text=text.replace(/~0/,"");return text;}
_ProcessListItems=function(list_str){g_list_level++;list_str=list_str.replace(/\n{2,}$/,"\n");list_str+="~0";list_str=list_str.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(wholeMatch,m1,m2,m3,m4){var item=m4;var leading_line=m1;var leading_space=m2;if(leading_line||(item.search(/\n{2,}/)>-1)){item=_RunBlockGamut(_Outdent(item));}
else{item=_DoLists(_Outdent(item));item=item.replace(/\n$/,"");item=_RunSpanGamut(item);}
return"<li>"+item+"</li>\n";});list_str=list_str.replace(/~0/g,"");g_list_level--;return list_str;}
var _DoCodeBlocks=function(text){text+="~0";text=text.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(wholeMatch,m1,m2){var codeblock=m1;var nextChar=m2;codeblock=_EncodeCode(_Outdent(codeblock));codeblock=_Detab(codeblock);codeblock=codeblock.replace(/^\n+/g,"");codeblock=codeblock.replace(/\n+$/g,"");codeblock="<pre><code>"+codeblock+"\n</code></pre>";return hashBlock(codeblock)+nextChar;});text=text.replace(/~0/,"");return text;}
var hashBlock=function(text){text=text.replace(/(^\n+|\n+$)/g,"");return"\n\n~K"+(g_html_blocks.push(text)-1)+"K\n\n";}
var _DoCodeSpans=function(text){text=text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(wholeMatch,m1,m2,m3,m4){var c=m3;c=c.replace(/^([ \t]*)/g,"");c=c.replace(/[ \t]*$/g,"");c=_EncodeCode(c);return m1+"<code>"+c+"</code>";});return text;}
var _EncodeCode=function(text){text=text.replace(/&/g,"&amp;");text=text.replace(/</g,"&lt;");text=text.replace(/>/g,"&gt;");text=escapeCharacters(text,"\*_{}[]\\",false);return text;}
var _DoItalicsAndBold=function(text){text=text.replace(/(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\1/g,"<strong>$2</strong>");text=text.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>");return text;}
var _DoBlockQuotes=function(text){text=text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(wholeMatch,m1){var bq=m1;bq=bq.replace(/^[ \t]*>[ \t]?/gm,"~0");bq=bq.replace(/~0/g,"");bq=bq.replace(/^[ \t]+$/gm,"");bq=_RunBlockGamut(bq);bq=bq.replace(/(^|\n)/g,"$1  ");bq=bq.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(wholeMatch,m1){var pre=m1;pre=pre.replace(/^  /mg,"~0");pre=pre.replace(/~0/g,"");return pre;});return hashBlock("<blockquote>\n"+bq+"\n</blockquote>");});return text;}
var _FormParagraphs=function(text){text=text.replace(/^\n+/g,"");text=text.replace(/\n+$/g,"");var grafs=text.split(/\n{2,}/g);var grafsOut=new Array();var end=grafs.length;for(var i=0;i<end;i++){var str=grafs[i];if(str.search(/~K(\d+)K/g)>=0){grafsOut.push(str);}
else if(str.search(/\S/)>=0){str=_RunSpanGamut(str);str=str.replace(/^([ \t]*)/g,"<p>");str+="</p>"
grafsOut.push(str);}}
end=grafsOut.length;for(var i=0;i<end;i++){while(grafsOut[i].search(/~K(\d+)K/)>=0){var blockText=g_html_blocks[RegExp.$1];blockText=blockText.replace(/\$/g,"$$$$");grafsOut[i]=grafsOut[i].replace(/~K\d+K/,blockText);}}
return grafsOut.join("\n\n");}
var _EncodeAmpsAndAngles=function(text){text=text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;");text=text.replace(/<(?![a-z\/?\$!])/gi,"&lt;");return text;}
var _EncodeBackslashEscapes=function(text){text=text.replace(/\\(\\)/g,escapeCharacters_callback);text=text.replace(/\\([`*_{}\[\]()>#+-.!])/g,escapeCharacters_callback);return text;}
var _DoAutoLinks=function(text){text=text.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,"<a href=\"$1\">$1</a>");text=text.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(wholeMatch,m1){return _EncodeEmailAddress(_UnescapeSpecialChars(m1));});return text;}
var _EncodeEmailAddress=function(addr){function char2hex(ch){var hexDigits='0123456789ABCDEF';var dec=ch.charCodeAt(0);return(hexDigits.charAt(dec>>4)+hexDigits.charAt(dec&15));}
var encode=[function(ch){return"&#"+ch.charCodeAt(0)+";";},function(ch){return"&#x"+char2hex(ch)+";";},function(ch){return ch;}];addr="mailto:"+addr;addr=addr.replace(/./g,function(ch){if(ch=="@"){ch=encode[Math.floor(Math.random()*2)](ch);}else if(ch!=":"){var r=Math.random();ch=(r>.9?encode[2](ch):r>.45?encode[1](ch):encode[0](ch));}
return ch;});addr="<a href=\""+addr+"\">"+addr+"</a>";addr=addr.replace(/">.+:/g,"\">");return addr;}
var _UnescapeSpecialChars=function(text){text=text.replace(/~E(\d+)E/g,function(wholeMatch,m1){var charCodeToReplace=parseInt(m1);return String.fromCharCode(charCodeToReplace);});return text;}
var _Outdent=function(text){text=text.replace(/^(\t|[ ]{1,4})/gm,"~0");text=text.replace(/~0/g,"")
return text;}
var _Detab=function(text){text=text.replace(/\t(?=\t)/g,"    ");text=text.replace(/\t/g,"~A~B");text=text.replace(/~B(.+?)~A/g,function(wholeMatch,m1,m2){var leadingText=m1;var numSpaces=4-leadingText.length%4;for(var i=0;i<numSpaces;i++)leadingText+=" ";return leadingText;});text=text.replace(/~A/g,"    ");text=text.replace(/~B/g,"");return text;}
var escapeCharacters=function(text,charsToEscape,afterBackslash){var regexString="(["+charsToEscape.replace(/([\[\]\\])/g,"\\$1")+"])";if(afterBackslash){regexString="\\\\"+regexString;}
var regex=new RegExp(regexString,"g");text=text.replace(regex,escapeCharacters_callback);return text;}
var escapeCharacters_callback=function(wholeMatch,m1){var charCodeToEscape=m1.charCodeAt(0);return"~E"+charCodeToEscape+"E";}}
var Showdown=Attacklab.showdown;if(Attacklab.fileLoaded){Attacklab.fileLoaded("showdown.js");}wmd_options={output:"Markdown"};var Attacklab=Attacklab||{};Attacklab.wmdBase=function(){var wmd=top.Attacklab;var doc=top.document;var re=top.RegExp;var nav=top.navigator;wmd.Util={};wmd.Position={};wmd.Command={};wmd.Global={};var util=wmd.Util;var position=wmd.Position;var command=wmd.Command;var global=wmd.Global;global.isIE=/msie/.test(nav.userAgent.toLowerCase());global.isIE_5or6=/msie 6/.test(nav.userAgent.toLowerCase())||/msie 5/.test(nav.userAgent.toLowerCase());global.isIE_7plus=global.isIE&&!global.isIE_5or6;global.isOpera=/opera/.test(nav.userAgent.toLowerCase());global.isKonqueror=/konqueror/.test(nav.userAgent.toLowerCase());var imageDialogText="<p style='margin-top: 0px'><b>Enter the image URL.</b></p><p>You can also add a title, which will be displayed as a tool tip.</p><p>Example:<br />http://wmd-editor.com/images/cloud1.jpg   \"Optional title\"</p>";var linkDialogText="<p style='margin-top: 0px'><b>Enter the web address.</b></p><p>You can also add a title, which will be displayed as a tool tip.</p><p>Example:<br />http://wmd-editor.com/   \"Optional title\"</p>";var imageDefaultText="http://";var linkDefaultText="http://";var imageDirectory="images/";var previewPollInterval=500;var pastePollInterval=100;var helpLink="http://wmd-editor.com/";var helpHoverTitle="WMD website";var helpTarget="_blank";wmd.PanelCollection=function(){this.buttonBar=doc.getElementById("wmd-button-bar");this.preview=doc.getElementById("wmd-preview");this.output=doc.getElementById("wmd-output");this.input=doc.getElementById("wmd-input");};wmd.panels=undefined;wmd.ieCachedRange=null;wmd.ieRetardedClick=false;util.isVisible=function(elem){if(window.getComputedStyle){return window.getComputedStyle(elem,null).getPropertyValue("display")!=="none";}
else if(elem.currentStyle){return elem.currentStyle["display"]!=="none";}};util.addEvent=function(elem,event,listener){if(elem.attachEvent){elem.attachEvent("on"+event,listener);}
else{elem.addEventListener(event,listener,false);}};util.removeEvent=function(elem,event,listener){if(elem.detachEvent){elem.detachEvent("on"+event,listener);}
else{elem.removeEventListener(event,listener,false);}};util.fixEolChars=function(text){text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");return text;};util.extendRegExp=function(regex,pre,post){if(pre===null||pre===undefined)
{pre="";}
if(post===null||post===undefined)
{post="";}
var pattern=regex.toString();var flags="";var result=pattern.match(/\/([gim]*)$/);if(result===null){flags=result[0];}
else{flags="";}
pattern=pattern.replace(/(^\/|\/[gim]*$)/g,"");pattern=pre+pattern+post;return new RegExp(pattern,flags);}
util.createImage=function(img){var imgPath=imageDirectory+img;var elem=doc.createElement("img");elem.className="wmd-button";elem.src=imgPath;return elem;};util.prompt=function(text,defaultInputText,makeLinkMarkdown){var dialog;var background;var input;if(defaultInputText===undefined){defaultInputText="";}
var checkEscape=function(key){var code=(key.charCode||key.keyCode);if(code===27){close(true);}};var close=function(isCancel){util.removeEvent(doc.body,"keydown",checkEscape);var text=input.value;if(isCancel){text=null;}
else{text=text.replace('http://http://','http://');text=text.replace('http://https://','https://');text=text.replace('http://ftp://','ftp://');if(text.indexOf('http://')===-1&&text.indexOf('ftp://')===-1&&text.indexOf('https://')===-1){text='http://'+text;}}
dialog.parentNode.removeChild(dialog);background.parentNode.removeChild(background);makeLinkMarkdown(text);return false;};var createBackground=function(){background=doc.createElement("div");background.className="wmd-prompt-background";style=background.style;style.position="absolute";style.top="0";style.zIndex="1000";if(global.isKonqueror){style.backgroundColor="transparent";}
else if(global.isIE){style.filter="alpha(opacity=50)";}
else{style.opacity="0.5";}
var pageSize=position.getPageSize();style.height=pageSize[1]+"px";if(global.isIE){style.left=doc.documentElement.scrollLeft;style.width=doc.documentElement.clientWidth;}
else{style.left="0";style.width="100%";}
doc.body.appendChild(background);};var createDialog=function(){dialog=doc.createElement("div");dialog.className="wmd-prompt-dialog";dialog.style.padding="10px;";dialog.style.position="fixed";dialog.style.width="400px";dialog.style.zIndex="1001";var question=doc.createElement("div");question.innerHTML=text;question.style.padding="5px";dialog.appendChild(question);var form=doc.createElement("form");form.onsubmit=function(){return close(false);};style=form.style;style.padding="0";style.margin="0";style.cssFloat="left";style.width="100%";style.textAlign="center";style.position="relative";dialog.appendChild(form);input=doc.createElement("input");input.type="text";input.value=defaultInputText;style=input.style;style.display="block";style.width="80%";style.marginLeft=style.marginRight="auto";form.appendChild(input);var okButton=doc.createElement("input");okButton.type="button";okButton.onclick=function(){return close(false);};okButton.value="OK";style=okButton.style;style.margin="10px";style.display="inline";style.width="7em";var cancelButton=doc.createElement("input");cancelButton.type="button";cancelButton.onclick=function(){return close(true);};cancelButton.value="Cancel";style=cancelButton.style;style.margin="10px";style.display="inline";style.width="7em";if(/mac/.test(nav.platform.toLowerCase())){form.appendChild(cancelButton);form.appendChild(okButton);}
else{form.appendChild(okButton);form.appendChild(cancelButton);}
util.addEvent(doc.body,"keydown",checkEscape);dialog.style.top="50%";dialog.style.left="50%";dialog.style.display="block";if(global.isIE_5or6){dialog.style.position="absolute";dialog.style.top=doc.documentElement.scrollTop+200+"px";dialog.style.left="50%";}
doc.body.appendChild(dialog);dialog.style.marginTop=-(position.getHeight(dialog)/2)+"px";dialog.style.marginLeft=-(position.getWidth(dialog)/2)+"px";};createBackground();top.setTimeout(function(){createDialog();var defTextLen=defaultInputText.length;if(input.selectionStart!==undefined){input.selectionStart=0;input.selectionEnd=defTextLen;}
else if(input.createTextRange){var range=input.createTextRange();range.collapse(false);range.moveStart("character",-defTextLen);range.moveEnd("character",defTextLen);range.select();}
input.focus();},0);};position.getTop=function(elem,isInner){var result=elem.offsetTop;if(!isInner){while(elem=elem.offsetParent){result+=elem.offsetTop;}}
return result;};position.getHeight=function(elem){return elem.offsetHeight||elem.scrollHeight;};position.getWidth=function(elem){return elem.offsetWidth||elem.scrollWidth;};position.getPageSize=function(){var scrollWidth,scrollHeight;var innerWidth,innerHeight;if(self.innerHeight&&self.scrollMaxY){scrollWidth=doc.body.scrollWidth;scrollHeight=self.innerHeight+self.scrollMaxY;}
else if(doc.body.scrollHeight>doc.body.offsetHeight){scrollWidth=doc.body.scrollWidth;scrollHeight=doc.body.scrollHeight;}
else{scrollWidth=doc.body.offsetWidth;scrollHeight=doc.body.offsetHeight;}
if(self.innerHeight){innerWidth=self.innerWidth;innerHeight=self.innerHeight;}
else if(doc.documentElement&&doc.documentElement.clientHeight){innerWidth=doc.documentElement.clientWidth;innerHeight=doc.documentElement.clientHeight;}
else if(doc.body){innerWidth=doc.body.clientWidth;innerHeight=doc.body.clientHeight;}
var maxWidth=Math.max(scrollWidth,innerWidth);var maxHeight=Math.max(scrollHeight,innerHeight);return[maxWidth,maxHeight,innerWidth,innerHeight];};wmd.inputPoller=function(callback,interval){var pollerObj=this;var inputArea=wmd.panels.input;var lastStart;var lastEnd;var markdown;var killHandle;this.tick=function(){if(!util.isVisible(inputArea)){return;}
if(inputArea.selectionStart||inputArea.selectionStart===0){var start=inputArea.selectionStart;var end=inputArea.selectionEnd;if(start!=lastStart||end!=lastEnd){lastStart=start;lastEnd=end;if(markdown!=inputArea.value){markdown=inputArea.value;return true;}}}
return false;};var doTickCallback=function(){if(!util.isVisible(inputArea)){return;}
if(pollerObj.tick()){callback();}};var assignInterval=function(){killHandle=top.setInterval(doTickCallback,interval);};this.destroy=function(){top.clearInterval(killHandle);};assignInterval();};wmd.undoManager=function(callback){var undoObj=this;var undoStack=[];var stackPtr=0;var mode="none";var lastState;var poller;var timer;var inputStateObj;var setMode=function(newMode,noSave){if(mode!=newMode){mode=newMode;if(!noSave){saveState();}}
if(!global.isIE||mode!="moving"){timer=top.setTimeout(refreshState,1);}
else{inputStateObj=null;}};var refreshState=function(){inputStateObj=new wmd.TextareaState();poller.tick();timer=undefined;};this.setCommandMode=function(){mode="command";saveState();timer=top.setTimeout(refreshState,0);};this.canUndo=function(){return stackPtr>1;};this.canRedo=function(){if(undoStack[stackPtr+1]){return true;}
return false;};this.undo=function(){if(undoObj.canUndo()){if(lastState){lastState.restore();lastState=null;}
else{undoStack[stackPtr]=new wmd.TextareaState();undoStack[--stackPtr].restore();if(callback){callback();}}}
mode="none";wmd.panels.input.focus();refreshState();};this.redo=function(){if(undoObj.canRedo()){undoStack[++stackPtr].restore();if(callback){callback();}}
mode="none";wmd.panels.input.focus();refreshState();};var saveState=function(){var currState=inputStateObj||new wmd.TextareaState();if(!currState){return false;}
if(mode=="moving"){if(!lastState){lastState=currState;}
return;}
if(lastState){if(undoStack[stackPtr-1].text!=lastState.text){undoStack[stackPtr++]=lastState;}
lastState=null;}
undoStack[stackPtr++]=currState;undoStack[stackPtr+1]=null;if(callback){callback();}};var handleCtrlYZ=function(event){var handled=false;if(event.ctrlKey||event.metaKey){var keyCode=event.charCode||event.keyCode;var keyCodeChar=String.fromCharCode(keyCode);switch(keyCodeChar){case"y":undoObj.redo();handled=true;break;case"z":if(!event.shiftKey){undoObj.undo();}
else{undoObj.redo();}
handled=true;break;}}
if(handled){if(event.preventDefault){event.preventDefault();}
if(top.event){top.event.returnValue=false;}
return;}};var handleModeChange=function(event){if(!event.ctrlKey&&!event.metaKey){var keyCode=event.keyCode;if((keyCode>=33&&keyCode<=40)||(keyCode>=63232&&keyCode<=63235)){setMode("moving");}
else if(keyCode==8||keyCode==46||keyCode==127){setMode("deleting");}
else if(keyCode==13){setMode("newlines");}
else if(keyCode==27){setMode("escape");}
else if((keyCode<16||keyCode>20)&&keyCode!=91){setMode("typing");}}};var setEventHandlers=function(){util.addEvent(wmd.panels.input,"keypress",function(event){if((event.ctrlKey||event.metaKey)&&(event.keyCode==89||event.keyCode==90)){event.preventDefault();}});var handlePaste=function(){if(global.isIE||(inputStateObj&&inputStateObj.text!=wmd.panels.input.value)){if(timer==undefined){mode="paste";saveState();refreshState();}}};poller=new wmd.inputPoller(handlePaste,pastePollInterval);util.addEvent(wmd.panels.input,"keydown",handleCtrlYZ);util.addEvent(wmd.panels.input,"keydown",handleModeChange);util.addEvent(wmd.panels.input,"mousedown",function(){setMode("moving");});wmd.panels.input.onpaste=handlePaste;wmd.panels.input.ondrop=handlePaste;};var init=function(){setEventHandlers();refreshState();saveState();};this.destroy=function(){if(poller){poller.destroy();}};init();};wmd.editor=function(previewRefreshCallback){if(!previewRefreshCallback){previewRefreshCallback=function(){};}
var inputBox=wmd.panels.input;var offsetHeight=0;var editObj=this;var mainDiv;var mainSpan;var div;var creationHandle;var undoMgr;var doClick=function(button){inputBox.focus();if(button.textOp){if(undoMgr){undoMgr.setCommandMode();}
var state=new wmd.TextareaState();if(!state){return;}
var chunks=state.getChunks();var fixupInputArea=function(){inputBox.focus();if(chunks){state.setChunks(chunks);}
state.restore();previewRefreshCallback();};var useDefaultText=true;var noCleanup=button.textOp(chunks,fixupInputArea,useDefaultText);if(!noCleanup){fixupInputArea();}}
if(button.execute){button.execute(editObj);}};var setUndoRedoButtonStates=function(){if(undoMgr){setupButton(document.getElementById("wmd-undo-button"),undoMgr.canUndo());setupButton(document.getElementById("wmd-redo-button"),undoMgr.canRedo());}};var setupButton=function(button,isEnabled){var normalYShift="0px";var disabledYShift="-20px";var highlightYShift="-40px";if(isEnabled){button.style.backgroundPosition=button.XShift+" "+normalYShift;button.onmouseover=function(){this.style.backgroundPosition=this.XShift+" "+highlightYShift;};button.onmouseout=function(){this.style.backgroundPosition=this.XShift+" "+normalYShift;};if(global.isIE){button.onmousedown=function(){wmd.ieRetardedClick=true;wmd.ieCachedRange=document.selection.createRange();};}
if(!button.isHelp)
{button.onclick=function(){if(this.onmouseout){this.onmouseout();}
doClick(this);return false;}}}
else{button.style.backgroundPosition=button.XShift+" "+disabledYShift;button.onmouseover=button.onmouseout=button.onclick=function(){};}}
var makeSpritedButtonRow=function(){var buttonBar=document.getElementById("wmd-button-bar");var normalYShift="0px";var disabledYShift="-20px";var highlightYShift="-40px";var buttonRow=document.createElement("ul");buttonRow.id="wmd-button-row";buttonRow=buttonBar.appendChild(buttonRow);var boldButton=document.createElement("li");boldButton.className="wmd-button";boldButton.id="wmd-bold-button";boldButton.title="Strong <strong> Ctrl+B";boldButton.XShift="0px";boldButton.textOp=command.doBold;setupButton(boldButton,true);buttonRow.appendChild(boldButton);var italicButton=document.createElement("li");italicButton.className="wmd-button";italicButton.id="wmd-italic-button";italicButton.title="Emphasis <em> Ctrl+I";italicButton.XShift="-20px";italicButton.textOp=command.doItalic;setupButton(italicButton,true);buttonRow.appendChild(italicButton);var spacer1=document.createElement("li");spacer1.className="wmd-spacer";spacer1.id="wmd-spacer1";buttonRow.appendChild(spacer1);var linkButton=document.createElement("li");linkButton.className="wmd-button";linkButton.id="wmd-link-button";linkButton.title="Hyperlink <a> Ctrl+L";linkButton.XShift="-40px";linkButton.textOp=function(chunk,postProcessing,useDefaultText){return command.doLinkOrImage(chunk,postProcessing,false);};setupButton(linkButton,true);buttonRow.appendChild(linkButton);var quoteButton=document.createElement("li");quoteButton.className="wmd-button";quoteButton.id="wmd-quote-button";quoteButton.title="Blockquote <blockquote> Ctrl+Q";quoteButton.XShift="-60px";quoteButton.textOp=command.doBlockquote;setupButton(quoteButton,true);buttonRow.appendChild(quoteButton);var codeButton=document.createElement("li");codeButton.className="wmd-button";codeButton.id="wmd-code-button";codeButton.title="Code Sample <pre><code> Ctrl+K";codeButton.XShift="-80px";codeButton.textOp=command.doCode;setupButton(codeButton,true);buttonRow.appendChild(codeButton);var imageButton=document.createElement("li");imageButton.className="wmd-button";imageButton.id="wmd-image-button";imageButton.title="Image <img> Ctrl+G";imageButton.XShift="-100px";imageButton.textOp=function(chunk,postProcessing,useDefaultText){return command.doLinkOrImage(chunk,postProcessing,true);};setupButton(imageButton,true);buttonRow.appendChild(imageButton);var spacer2=document.createElement("li");spacer2.className="wmd-spacer";spacer2.id="wmd-spacer2";buttonRow.appendChild(spacer2);var olistButton=document.createElement("li");olistButton.className="wmd-button";olistButton.id="wmd-olist-button";olistButton.title="Numbered List <ol> Ctrl+O";olistButton.XShift="-120px";olistButton.textOp=function(chunk,postProcessing,useDefaultText){command.doList(chunk,postProcessing,true,useDefaultText);};setupButton(olistButton,true);buttonRow.appendChild(olistButton);var ulistButton=document.createElement("li");ulistButton.className="wmd-button";ulistButton.id="wmd-ulist-button";ulistButton.title="Bulleted List <ul> Ctrl+U";ulistButton.XShift="-140px";ulistButton.textOp=function(chunk,postProcessing,useDefaultText){command.doList(chunk,postProcessing,false,useDefaultText);};setupButton(ulistButton,true);buttonRow.appendChild(ulistButton);var headingButton=document.createElement("li");headingButton.className="wmd-button";headingButton.id="wmd-heading-button";headingButton.title="Heading <h1>/<h2> Ctrl+H";headingButton.XShift="-160px";headingButton.textOp=command.doHeading;setupButton(headingButton,true);buttonRow.appendChild(headingButton);var hrButton=document.createElement("li");hrButton.className="wmd-button";hrButton.id="wmd-hr-button";hrButton.title="Horizontal Rule <hr> Ctrl+R";hrButton.XShift="-180px";hrButton.textOp=command.doHorizontalRule;setupButton(hrButton,true);buttonRow.appendChild(hrButton);var spacer3=document.createElement("li");spacer3.className="wmd-spacer";spacer3.id="wmd-spacer3";buttonRow.appendChild(spacer3);var undoButton=document.createElement("li");undoButton.className="wmd-button";undoButton.id="wmd-undo-button";undoButton.title="Undo - Ctrl+Z";undoButton.XShift="-200px";undoButton.execute=function(manager){manager.undo();};setupButton(undoButton,true);buttonRow.appendChild(undoButton);var redoButton=document.createElement("li");redoButton.className="wmd-button";redoButton.id="wmd-redo-button";redoButton.title="Redo - Ctrl+Y";if(/win/.test(nav.platform.toLowerCase())){redoButton.title="Redo - Ctrl+Y";}
else{redoButton.title="Redo - Ctrl+Shift+Z";}
redoButton.XShift="-220px";redoButton.execute=function(manager){manager.redo();};setupButton(redoButton,true);buttonRow.appendChild(redoButton);var helpButton=document.createElement("li");helpButton.className="wmd-button";helpButton.id="wmd-help-button";helpButton.XShift="-240px";helpButton.isHelp=true;var helpAnchor=document.createElement("a");helpAnchor.href=helpLink;helpAnchor.target=helpTarget
helpAnchor.title=helpHoverTitle;helpButton.appendChild(helpAnchor);setupButton(helpButton,true);buttonRow.appendChild(helpButton);setUndoRedoButtonStates();}
var setupEditor=function(){if(/\?noundo/.test(doc.location.href)){wmd.nativeUndo=true;}
if(!wmd.nativeUndo){undoMgr=new wmd.undoManager(function(){previewRefreshCallback();setUndoRedoButtonStates();});}
makeSpritedButtonRow();var keyEvent="keydown";if(global.isOpera){keyEvent="keypress";}
util.addEvent(inputBox,keyEvent,function(key){if(key.ctrlKey||key.metaKey){var keyCode=key.charCode||key.keyCode;var keyCodeStr=String.fromCharCode(keyCode).toLowerCase();switch(keyCodeStr){case"b":doClick(document.getElementById("wmd-bold-button"));break;case"i":doClick(document.getElementById("wmd-italic-button"));break;case"l":doClick(document.getElementById("wmd-link-button"));break;case"q":doClick(document.getElementById("wmd-quote-button"));break;case"k":doClick(document.getElementById("wmd-code-button"));break;case"g":doClick(document.getElementById("wmd-image-button"));break;case"o":doClick(document.getElementById("wmd-olist-button"));break;case"u":doClick(document.getElementById("wmd-ulist-button"));break;case"h":doClick(document.getElementById("wmd-heading-button"));break;case"r":doClick(document.getElementById("wmd-hr-button"));break;case"y":doClick(document.getElementById("wmd-redo-button"));break;case"z":if(key.shiftKey){doClick(document.getElementById("wmd-redo-button"));}
else{doClick(document.getElementById("wmd-undo-button"));}
break;default:return;}
if(key.preventDefault){key.preventDefault();}
if(top.event){top.event.returnValue=false;}}});util.addEvent(inputBox,"keyup",function(key){if(!key.shiftKey&&!key.ctrlKey&&!key.metaKey){var keyCode=key.charCode||key.keyCode;if(keyCode===13){fakeButton={};fakeButton.textOp=command.doAutoindent;doClick(fakeButton);}}});if(global.isIE){util.addEvent(inputBox,"keydown",function(key){var code=key.keyCode;if(code===27){return false;}});}
if(inputBox.form){var submitCallback=inputBox.form.onsubmit;inputBox.form.onsubmit=function(){convertToHtml();if(submitCallback){return submitCallback.apply(this,arguments);}};}};var convertToHtml=function(){if(wmd.showdown){var markdownConverter=new wmd.showdown.converter();}
var text=inputBox.value;var callback=function(){inputBox.value=text;};if(!/markdown/.test(wmd.wmd_env.output.toLowerCase())){if(markdownConverter){inputBox.value=markdownConverter.makeHtml(text);top.setTimeout(callback,0);}}
return true;};this.undo=function(){if(undoMgr){undoMgr.undo();}};this.redo=function(){if(undoMgr){undoMgr.redo();}};var init=function(){setupEditor();};this.destroy=function(){if(undoMgr){undoMgr.destroy();}
if(div.parentNode){div.parentNode.removeChild(div);}
if(inputBox){inputBox.style.marginTop="";}
top.clearInterval(creationHandle);};init();};wmd.TextareaState=function(){var stateObj=this;var inputArea=wmd.panels.input;this.init=function(){if(!util.isVisible(inputArea)){return;}
this.setInputAreaSelectionStartEnd();this.scrollTop=inputArea.scrollTop;if(!this.text&&inputArea.selectionStart||inputArea.selectionStart===0){this.text=inputArea.value;}}
this.setInputAreaSelection=function(){if(!util.isVisible(inputArea)){return;}
if(inputArea.selectionStart!==undefined&&!global.isOpera){inputArea.focus();inputArea.selectionStart=stateObj.start;inputArea.selectionEnd=stateObj.end;inputArea.scrollTop=stateObj.scrollTop;}
else if(doc.selection){if(doc.activeElement&&doc.activeElement!==inputArea){return;}
inputArea.focus();var range=inputArea.createTextRange();range.moveStart("character",-inputArea.value.length);range.moveEnd("character",-inputArea.value.length);range.moveEnd("character",stateObj.end);range.moveStart("character",stateObj.start);range.select();}};this.setInputAreaSelectionStartEnd=function(){if(inputArea.selectionStart||inputArea.selectionStart===0){stateObj.start=inputArea.selectionStart;stateObj.end=inputArea.selectionEnd;}
else if(doc.selection){stateObj.text=util.fixEolChars(inputArea.value);var range;if(wmd.ieRetardedClick&&wmd.ieCachedRange){range=wmd.ieCachedRange;wmd.ieRetardedClick=false;}
else{range=doc.selection.createRange();}
var fixedRange=util.fixEolChars(range.text);var marker="\x07";var markedRange=marker+fixedRange+marker;range.text=markedRange;var inputText=util.fixEolChars(inputArea.value);range.moveStart("character",-markedRange.length);range.text=fixedRange;stateObj.start=inputText.indexOf(marker);stateObj.end=inputText.lastIndexOf(marker)-marker.length;var len=stateObj.text.length-util.fixEolChars(inputArea.value).length;if(len){range.moveStart("character",-fixedRange.length);while(len--){fixedRange+="\n";stateObj.end+=1;}
range.text=fixedRange;}
this.setInputAreaSelection();}};this.restore=function(){if(stateObj.text!=undefined&&stateObj.text!=inputArea.value){inputArea.value=stateObj.text;}
this.setInputAreaSelection();inputArea.scrollTop=stateObj.scrollTop;};this.getChunks=function(){var chunk=new wmd.Chunks();chunk.before=util.fixEolChars(stateObj.text.substring(0,stateObj.start));chunk.startTag="";chunk.selection=util.fixEolChars(stateObj.text.substring(stateObj.start,stateObj.end));chunk.endTag="";chunk.after=util.fixEolChars(stateObj.text.substring(stateObj.end));chunk.scrollTop=stateObj.scrollTop;return chunk;};this.setChunks=function(chunk){chunk.before=chunk.before+chunk.startTag;chunk.after=chunk.endTag+chunk.after;if(global.isOpera){chunk.before=chunk.before.replace(/\n/g,"\r\n");chunk.selection=chunk.selection.replace(/\n/g,"\r\n");chunk.after=chunk.after.replace(/\n/g,"\r\n");}
this.start=chunk.before.length;this.end=chunk.before.length+chunk.selection.length;this.text=chunk.before+chunk.selection+chunk.after;this.scrollTop=chunk.scrollTop;};this.init();};wmd.Chunks=function(){};wmd.Chunks.prototype.findTags=function(startRegex,endRegex){var chunkObj=this;var regex;if(startRegex){regex=util.extendRegExp(startRegex,"","$");this.before=this.before.replace(regex,function(match){chunkObj.startTag=chunkObj.startTag+match;return"";});regex=util.extendRegExp(startRegex,"^","");this.selection=this.selection.replace(regex,function(match){chunkObj.startTag=chunkObj.startTag+match;return"";});}
if(endRegex){regex=util.extendRegExp(endRegex,"","$");this.selection=this.selection.replace(regex,function(match){chunkObj.endTag=match+chunkObj.endTag;return"";});regex=util.extendRegExp(endRegex,"^","");this.after=this.after.replace(regex,function(match){chunkObj.endTag=match+chunkObj.endTag;return"";});}};wmd.Chunks.prototype.trimWhitespace=function(remove){this.selection=this.selection.replace(/^(\s*)/,"");if(!remove){this.before+=re.$1;}
this.selection=this.selection.replace(/(\s*)$/,"");if(!remove){this.after=re.$1+this.after;}};wmd.Chunks.prototype.addBlankLines=function(nLinesBefore,nLinesAfter,findExtraNewlines){if(nLinesBefore===undefined){nLinesBefore=1;}
if(nLinesAfter===undefined){nLinesAfter=1;}
nLinesBefore++;nLinesAfter++;var regexText;var replacementText;this.selection=this.selection.replace(/(^\n*)/,"");this.startTag=this.startTag+re.$1;this.selection=this.selection.replace(/(\n*$)/,"");this.endTag=this.endTag+re.$1;this.startTag=this.startTag.replace(/(^\n*)/,"");this.before=this.before+re.$1;this.endTag=this.endTag.replace(/(\n*$)/,"");this.after=this.after+re.$1;if(this.before){regexText=replacementText="";while(nLinesBefore--){regexText+="\\n?";replacementText+="\n";}
if(findExtraNewlines){regexText="\\n*";}
this.before=this.before.replace(new re(regexText+"$",""),replacementText);}
if(this.after){regexText=replacementText="";while(nLinesAfter--){regexText+="\\n?";replacementText+="\n";}
if(findExtraNewlines){regexText="\\n*";}
this.after=this.after.replace(new re(regexText,""),replacementText);}};command.prefixes="(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)";command.unwrap=function(chunk){var txt=new re("([^\\n])\\n(?!(\\n|"+command.prefixes+"))","g");chunk.selection=chunk.selection.replace(txt,"$1 $2");};command.wrap=function(chunk,len){command.unwrap(chunk);var regex=new re("(.{1,"+len+"})( +|$\\n?)","gm");chunk.selection=chunk.selection.replace(regex,function(line,marked){if(new re("^"+command.prefixes,"").test(line)){return line;}
return marked+"\n";});chunk.selection=chunk.selection.replace(/\s+$/,"");};command.doBold=function(chunk,postProcessing,useDefaultText){return command.doBorI(chunk,2,"strong text");};command.doItalic=function(chunk,postProcessing,useDefaultText){return command.doBorI(chunk,1,"emphasized text");};command.doBorI=function(chunk,nStars,insertText){chunk.trimWhitespace();chunk.selection=chunk.selection.replace(/\n{2,}/g,"\n");chunk.before.search(/(\**$)/);var starsBefore=re.$1;chunk.after.search(/(^\**)/);var starsAfter=re.$1;var prevStars=Math.min(starsBefore.length,starsAfter.length);if((prevStars>=nStars)&&(prevStars!=2||nStars!=1)){chunk.before=chunk.before.replace(re("[*]{"+nStars+"}$",""),"");chunk.after=chunk.after.replace(re("^[*]{"+nStars+"}",""),"");}
else if(!chunk.selection&&starsAfter){chunk.after=chunk.after.replace(/^([*_]*)/,"");chunk.before=chunk.before.replace(/(\s?)$/,"");var whitespace=re.$1;chunk.before=chunk.before+starsAfter+whitespace;}
else{if(!chunk.selection&&!starsAfter){chunk.selection=insertText;}
var markup=nStars<=1?"*":"**";chunk.before=chunk.before+markup;chunk.after=markup+chunk.after;}
return;};command.stripLinkDefs=function(text,defsToAdd){text=text.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm,function(totalMatch,id,link,newlines,title){defsToAdd[id]=totalMatch.replace(/\s*$/,"");if(newlines){defsToAdd[id]=totalMatch.replace(/["(](.+?)[")]$/,"");return newlines+title;}
return"";});return text;};command.addLinkDef=function(chunk,linkDef){var refNumber=0;var defsToAdd={};chunk.before=command.stripLinkDefs(chunk.before,defsToAdd);chunk.selection=command.stripLinkDefs(chunk.selection,defsToAdd);chunk.after=command.stripLinkDefs(chunk.after,defsToAdd);var defs="";var regex=/(\[(?:\[[^\]]*\]|[^\[\]])*\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g;var addDefNumber=function(def){refNumber++;def=def.replace(/^[ ]{0,3}\[(\d+)\]:/,"  ["+refNumber+"]:");defs+="\n"+def;};var getLink=function(wholeMatch,link,id,end){if(defsToAdd[id]){addDefNumber(defsToAdd[id]);return link+refNumber+end;}
return wholeMatch;};chunk.before=chunk.before.replace(regex,getLink);if(linkDef){addDefNumber(linkDef);}
else{chunk.selection=chunk.selection.replace(regex,getLink);}
var refOut=refNumber;chunk.after=chunk.after.replace(regex,getLink);if(chunk.after){chunk.after=chunk.after.replace(/\n*$/,"");}
if(!chunk.after){chunk.selection=chunk.selection.replace(/\n*$/,"");}
chunk.after+="\n\n"+defs;return refOut;};command.doLinkOrImage=function(chunk,postProcessing,isImage){chunk.trimWhitespace();chunk.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\[.*?\])?/);if(chunk.endTag.length>1){chunk.startTag=chunk.startTag.replace(/!?\[/,"");chunk.endTag="";command.addLinkDef(chunk,null);}
else{if(/\n\n/.test(chunk.selection)){command.addLinkDef(chunk,null);return;}
var makeLinkMarkdown=function(link){if(link!==null){chunk.startTag=chunk.endTag="";var linkDef=" [999]: "+link;var num=command.addLinkDef(chunk,linkDef);chunk.startTag=isImage?"![":"[";chunk.endTag="]["+num+"]";if(!chunk.selection){if(isImage){chunk.selection="alt text";}
else{chunk.selection="link text";}}}
postProcessing();};if(isImage){util.prompt(imageDialogText,imageDefaultText,makeLinkMarkdown);}
else{util.prompt(linkDialogText,linkDefaultText,makeLinkMarkdown);}
return true;}};util.makeAPI=function(){wmd.wmd={};wmd.wmd.editor=wmd.editor;wmd.wmd.previewManager=wmd.previewManager;};util.startEditor=function(){if(wmd.wmd_env.autostart===false){util.makeAPI();return;}
var edit;var previewMgr;var loadListener=function(){wmd.panels=new wmd.PanelCollection();previewMgr=new wmd.previewManager();var previewRefreshCallback=previewMgr.refresh;edit=new wmd.editor(previewRefreshCallback);previewMgr.refresh(true);};util.addEvent(top,"load",loadListener);};wmd.previewManager=function(){var managerObj=this;var converter;var poller;var timeout;var elapsedTime;var oldInputText;var htmlOut;var maxDelay=3000;var startType="delayed";var setupEvents=function(inputElem,listener){util.addEvent(inputElem,"input",listener);inputElem.onpaste=listener;inputElem.ondrop=listener;util.addEvent(inputElem,"keypress",listener);util.addEvent(inputElem,"keydown",listener);poller=new wmd.inputPoller(listener,previewPollInterval);};var getDocScrollTop=function(){var result=0;if(top.innerHeight){result=top.pageYOffset;}
else
if(doc.documentElement&&doc.documentElement.scrollTop){result=doc.documentElement.scrollTop;}
else
if(doc.body){result=doc.body.scrollTop;}
return result;};var makePreviewHtml=function(){if(!wmd.panels.preview&&!wmd.panels.output){return;}
var text=wmd.panels.input.value;if(text&&text==oldInputText){return;}
else{oldInputText=text;}
var prevTime=new Date().getTime();if(!converter&&wmd.showdown){converter=new wmd.showdown.converter();}
if(converter){text=converter.makeHtml(text);}
var currTime=new Date().getTime();elapsedTime=currTime-prevTime;pushPreviewHtml(text);htmlOut=text;};var applyTimeout=function(){if(timeout){top.clearTimeout(timeout);timeout=undefined;}
if(startType!=="manual"){var delay=0;if(startType==="delayed"){delay=elapsedTime;}
if(delay>maxDelay){delay=maxDelay;}
timeout=top.setTimeout(makePreviewHtml,delay);}};var getScaleFactor=function(panel){if(panel.scrollHeight<=panel.clientHeight){return 1;}
return panel.scrollTop/(panel.scrollHeight-panel.clientHeight);};var setPanelScrollTops=function(){if(wmd.panels.preview){wmd.panels.preview.scrollTop=(wmd.panels.preview.scrollHeight-wmd.panels.preview.clientHeight)*getScaleFactor(wmd.panels.preview);;}
if(wmd.panels.output){wmd.panels.output.scrollTop=(wmd.panels.output.scrollHeight-wmd.panels.output.clientHeight)*getScaleFactor(wmd.panels.output);;}};this.refresh=function(requiresRefresh){if(requiresRefresh){oldInputText="";makePreviewHtml();}
else{applyTimeout();}};this.processingTime=function(){return elapsedTime;};this.output=function(){return htmlOut;};this.setUpdateMode=function(mode){startType=mode;managerObj.refresh();};var isFirstTimeFilled=true;var pushPreviewHtml=function(text){var emptyTop=position.getTop(wmd.panels.input)-getDocScrollTop();if(wmd.panels.output){if(wmd.panels.output.value!==undefined){wmd.panels.output.value=text;wmd.panels.output.readOnly=true;}
else{var newText=text.replace(/&/g,"&amp;");newText=newText.replace(/</g,"&lt;");wmd.panels.output.innerHTML="<pre><code>"+newText+"</code></pre>";}}
if(wmd.panels.preview){wmd.panels.preview.innerHTML=text;}
setPanelScrollTops();if(isFirstTimeFilled){isFirstTimeFilled=false;return;}
var fullTop=position.getTop(wmd.panels.input)-getDocScrollTop();if(global.isIE){top.setTimeout(function(){top.scrollBy(0,fullTop-emptyTop);},0);}
else{top.scrollBy(0,fullTop-emptyTop);}};var init=function(){setupEvents(wmd.panels.input,applyTimeout);makePreviewHtml();if(wmd.panels.preview){wmd.panels.preview.scrollTop=0;}
if(wmd.panels.output){wmd.panels.output.scrollTop=0;}};this.destroy=function(){if(poller){poller.destroy();}};init();};command.doAutoindent=function(chunk,postProcessing,useDefaultText){chunk.before=chunk.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/,"\n\n");chunk.before=chunk.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/,"\n\n");chunk.before=chunk.before.replace(/(\n|^)[ \t]+\n$/,"\n\n");useDefaultText=false;if(/(\n|^)[ ]{0,3}([*+-])[ \t]+.*\n$/.test(chunk.before)){if(command.doList){command.doList(chunk,postProcessing,false,true);}}
if(/(\n|^)[ ]{0,3}(\d+[.])[ \t]+.*\n$/.test(chunk.before)){if(command.doList){command.doList(chunk,postProcessing,true,true);}}
if(/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(chunk.before)){if(command.doBlockquote){command.doBlockquote(chunk,postProcessing,useDefaultText);}}
if(/(\n|^)(\t|[ ]{4,}).*\n$/.test(chunk.before)){if(command.doCode){command.doCode(chunk,postProcessing,useDefaultText);}}};command.doBlockquote=function(chunk,postProcessing,useDefaultText){chunk.selection=chunk.selection.replace(/^(\n*)([^\r]+?)(\n*)$/,function(totalMatch,newlinesBefore,text,newlinesAfter){chunk.before+=newlinesBefore;chunk.after=newlinesAfter+chunk.after;return text;});chunk.before=chunk.before.replace(/(>[ \t]*)$/,function(totalMatch,blankLine){chunk.selection=blankLine+chunk.selection;return"";});var defaultText=useDefaultText?"Blockquote":"";chunk.selection=chunk.selection.replace(/^(\s|>)+$/,"");chunk.selection=chunk.selection||defaultText;if(chunk.before){chunk.before=chunk.before.replace(/\n?$/,"\n");}
if(chunk.after){chunk.after=chunk.after.replace(/^\n?/,"\n");}
chunk.before=chunk.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/,function(totalMatch){chunk.startTag=totalMatch;return"";});chunk.after=chunk.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/,function(totalMatch){chunk.endTag=totalMatch;return"";});var replaceBlanksInTags=function(useBracket){var replacement=useBracket?"> ":"";if(chunk.startTag){chunk.startTag=chunk.startTag.replace(/\n((>|\s)*)\n$/,function(totalMatch,markdown){return"\n"+markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm,replacement)+"\n";});}
if(chunk.endTag){chunk.endTag=chunk.endTag.replace(/^\n((>|\s)*)\n/,function(totalMatch,markdown){return"\n"+markdown.replace(/^[ ]{0,3}>?[ \t]*$/gm,replacement)+"\n";});}};if(/^(?![ ]{0,3}>)/m.test(chunk.selection)){command.wrap(chunk,wmd.wmd_env.lineLength-2);chunk.selection=chunk.selection.replace(/^/gm,"> ");replaceBlanksInTags(true);chunk.addBlankLines();}
else{chunk.selection=chunk.selection.replace(/^[ ]{0,3}> ?/gm,"");command.unwrap(chunk);replaceBlanksInTags(false);if(!/^(\n|^)[ ]{0,3}>/.test(chunk.selection)&&chunk.startTag){chunk.startTag=chunk.startTag.replace(/\n{0,2}$/,"\n\n");}
if(!/(\n|^)[ ]{0,3}>.*$/.test(chunk.selection)&&chunk.endTag){chunk.endTag=chunk.endTag.replace(/^\n{0,2}/,"\n\n");}}
if(!/\n/.test(chunk.selection)){chunk.selection=chunk.selection.replace(/^(> *)/,function(wholeMatch,blanks){chunk.startTag+=blanks;return"";});}};command.doCode=function(chunk,postProcessing,useDefaultText){var hasTextBefore=/\S[ ]*$/.test(chunk.before);var hasTextAfter=/^[ ]*\S/.test(chunk.after);if((!hasTextAfter&&!hasTextBefore)||/\n/.test(chunk.selection)){chunk.before=chunk.before.replace(/[ ]{4}$/,function(totalMatch){chunk.selection=totalMatch+chunk.selection;return"";});var nLinesBefore=1;var nLinesAfter=1;if(/\n(\t|[ ]{4,}).*\n$/.test(chunk.before)||chunk.after===""){nLinesBefore=0;}
if(/^\n(\t|[ ]{4,})/.test(chunk.after)){nLinesAfter=0;}
chunk.addBlankLines(nLinesBefore,nLinesAfter);if(!chunk.selection){chunk.startTag="    ";chunk.selection=useDefaultText?"enter code here":"";}
else{if(/^[ ]{0,3}\S/m.test(chunk.selection)){chunk.selection=chunk.selection.replace(/^/gm,"    ");}
else{chunk.selection=chunk.selection.replace(/^[ ]{4}/gm,"");}}}
else{chunk.trimWhitespace();chunk.findTags(/`/,/`/);if(!chunk.startTag&&!chunk.endTag){chunk.startTag=chunk.endTag="`";if(!chunk.selection){chunk.selection=useDefaultText?"enter code here":"";}}
else if(chunk.endTag&&!chunk.startTag){chunk.before+=chunk.endTag;chunk.endTag="";}
else{chunk.startTag=chunk.endTag="";}}};command.doList=function(chunk,postProcessing,isNumberedList,useDefaultText){var previousItemsRegex=/(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/;var nextItemsRegex=/^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/;var bullet="-";var num=1;var getItemPrefix=function(){var prefix;if(isNumberedList){prefix=" "+num+". ";num++;}
else{prefix=" "+bullet+" ";}
return prefix;};var getPrefixedItem=function(itemText){if(isNumberedList===undefined){isNumberedList=/^\s*\d/.test(itemText);}
itemText=itemText.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm,function(_){return getItemPrefix();});return itemText;};chunk.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/,null);if(chunk.before&&!/\n$/.test(chunk.before)&&!/^\n/.test(chunk.startTag)){chunk.before+=chunk.startTag;chunk.startTag="";}
if(chunk.startTag){var hasDigits=/\d+[.]/.test(chunk.startTag);chunk.startTag="";chunk.selection=chunk.selection.replace(/\n[ ]{4}/g,"\n");command.unwrap(chunk);chunk.addBlankLines();if(hasDigits){chunk.after=chunk.after.replace(nextItemsRegex,getPrefixedItem);}
if(isNumberedList==hasDigits){return;}}
var nLinesBefore=1;chunk.before=chunk.before.replace(previousItemsRegex,function(itemText){if(/^\s*([*+-])/.test(itemText)){bullet=re.$1;}
nLinesBefore=/[^\n]\n\n[^\n]/.test(itemText)?1:0;return getPrefixedItem(itemText);});if(!chunk.selection){chunk.selection=useDefaultText?"List item":" ";}
var prefix=getItemPrefix();var nLinesAfter=1;chunk.after=chunk.after.replace(nextItemsRegex,function(itemText){nLinesAfter=/[^\n]\n\n[^\n]/.test(itemText)?1:0;return getPrefixedItem(itemText);});chunk.trimWhitespace(true);chunk.addBlankLines(nLinesBefore,nLinesAfter,true);chunk.startTag=prefix;var spaces=prefix.replace(/./g," ");command.wrap(chunk,wmd.wmd_env.lineLength-spaces.length);chunk.selection=chunk.selection.replace(/\n/g,"\n"+spaces);};command.doHeading=function(chunk,postProcessing,useDefaultText){chunk.selection=chunk.selection.replace(/\s+/g," ");chunk.selection=chunk.selection.replace(/(^\s+|\s+$)/g,"");if(!chunk.selection){chunk.startTag="## ";chunk.selection="Heading";chunk.endTag=" ##";return;}
var headerLevel=0;chunk.findTags(/#+[ ]*/,/[ ]*#+/);if(/#+/.test(chunk.startTag)){headerLevel=re.lastMatch.length;}
chunk.startTag=chunk.endTag="";chunk.findTags(null,/\s?(-+|=+)/);if(/=+/.test(chunk.endTag)){headerLevel=1;}
if(/-+/.test(chunk.endTag)){headerLevel=2;}
chunk.startTag=chunk.endTag="";chunk.addBlankLines(1,1);var headerLevelToCreate=headerLevel==0?2:headerLevel-1;if(headerLevelToCreate>0){var headerChar=headerLevelToCreate>=2?"-":"=";var len=chunk.selection.length;if(len>wmd.wmd_env.lineLength){len=wmd.wmd_env.lineLength;}
chunk.endTag="\n";while(len--){chunk.endTag+=headerChar;}}};command.doHorizontalRule=function(chunk,postProcessing,useDefaultText){chunk.startTag="----------\n";chunk.selection="";chunk.addBlankLines(2,1,true);}};Attacklab.wmd_env={};Attacklab.account_options={};Attacklab.wmd_defaults={version:1,output:"HTML",lineLength:40,delayLoad:false};if(!Attacklab.wmd)
{Attacklab.wmd=function()
{Attacklab.loadEnv=function()
{var mergeEnv=function(env)
{if(!env)
{return;}
for(var key in env)
{Attacklab.wmd_env[key]=env[key];}};mergeEnv(Attacklab.wmd_defaults);mergeEnv(Attacklab.account_options);mergeEnv(top["wmd_options"]);Attacklab.full=true;var defaultButtons="bold italic link blockquote code image ol ul heading hr";Attacklab.wmd_env.buttons=Attacklab.wmd_env.buttons||defaultButtons;};Attacklab.loadEnv();};Attacklab.wmd();Attacklab.wmdBase();Attacklab.Util.startEditor();};(function($){$.fn.example=function(text,args){var isCallback=$.isFunction(text);var options=$.extend({},args,{example:text});return this.each(function(){var $this=$(this);if($.metadata){var o=$.extend({},$.fn.example.defaults,$this.metadata(),options);}else{var o=$.extend({},$.fn.example.defaults,options);}
if(!$.fn.example.boundClassNames[o.className]){$(window).unload(function(){$('.'+o.className).val('');});$('form').submit(function(){$(this).find('.'+o.className).val('');});$.fn.example.boundClassNames[o.className]=true;}
if($.browser.msie&&!$this.attr('defaultValue')&&(isCallback||$this.val()==o.example))
$this.val('');if($this.val()==''&&this!=document.activeElement){$this.addClass(o.className);$this.val(isCallback?o.example.call(this):o.example);}
$this.focus(function(){if($(this).is('.'+o.className)){$(this).val('');$(this).removeClass(o.className);}});$this.change(function(){if($(this).is('.'+o.className)){$(this).removeClass(o.className);}});$this.blur(function(){if($(this).val()==''){$(this).addClass(o.className);$(this).val(isCallback?o.example.call(this):o.example);}});});};$.fn.example.defaults={className:'example'};$.fn.example.boundClassNames=[];})(jQuery);(function(jQuery){jQuery.fn.__bind__=jQuery.fn.bind;jQuery.fn.__unbind__=jQuery.fn.unbind;jQuery.fn.__find__=jQuery.fn.find;var hotkeys={version:'0.7.9',override:/keypress|keydown|keyup/g,triggersMap:{},specialKeys:{27:'esc',9:'tab',32:'space',13:'return',8:'backspace',145:'scroll',20:'capslock',144:'numlock',19:'pause',45:'insert',36:'home',46:'del',35:'end',33:'pageup',34:'pagedown',37:'left',38:'up',39:'right',40:'down',109:'-',112:'f1',113:'f2',114:'f3',115:'f4',116:'f5',117:'f6',118:'f7',119:'f8',120:'f9',121:'f10',122:'f11',123:'f12',191:'/'},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"},newTrigger:function(type,combi,callback){var result={};result[type]={};result[type][combi]={cb:callback,disableInInput:false};return result;}};hotkeys.specialKeys=jQuery.extend(hotkeys.specialKeys,{96:'0',97:'1',98:'2',99:'3',100:'4',101:'5',102:'6',103:'7',104:'8',105:'9',106:'*',107:'+',109:'-',110:'.',111:'/'});jQuery.fn.find=function(selector){this.query=selector;return jQuery.fn.__find__.apply(this,arguments);};jQuery.fn.unbind=function(type,combi,fn){if(jQuery.isFunction(combi)){fn=combi;combi=null;}
if(combi&&typeof combi==='string'){var selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();var hkTypes=type.split(' ');for(var x=0;x<hkTypes.length;x++){delete hotkeys.triggersMap[selectorId][hkTypes[x]][combi];}}
return this.__unbind__(type,fn);};jQuery.fn.bind=function(type,data,fn){var handle=type.match(hotkeys.override);if(jQuery.isFunction(data)||!handle){return this.__bind__(type,data,fn);}
else{var result=null,pass2jq=jQuery.trim(type.replace(hotkeys.override,''));if(pass2jq){result=this.__bind__(pass2jq,data,fn);}
if(typeof data==="string"){data={'combi':data};}
if(data.combi){for(var x=0;x<handle.length;x++){var eventType=handle[x];var combi=data.combi.toLowerCase(),trigger=hotkeys.newTrigger(eventType,combi,fn),selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();trigger[eventType][combi].disableInInput=data.disableInInput;if(!hotkeys.triggersMap[selectorId]){hotkeys.triggersMap[selectorId]=trigger;}
else if(!hotkeys.triggersMap[selectorId][eventType]){hotkeys.triggersMap[selectorId][eventType]=trigger[eventType];}
var mapPoint=hotkeys.triggersMap[selectorId][eventType][combi];if(!mapPoint){hotkeys.triggersMap[selectorId][eventType][combi]=[trigger[eventType][combi]];}
else if(mapPoint.constructor!==Array){hotkeys.triggersMap[selectorId][eventType][combi]=[mapPoint];}
else{hotkeys.triggersMap[selectorId][eventType][combi][mapPoint.length]=trigger[eventType][combi];}
this.each(function(){var jqElem=jQuery(this);if(jqElem.attr('hkId')&&jqElem.attr('hkId')!==selectorId){selectorId=jqElem.attr('hkId')+";"+selectorId;}
jqElem.attr('hkId',selectorId);});result=this.__bind__(handle.join(' '),data,hotkeys.handler)}}
return result;}};hotkeys.findElement=function(elem){if(!jQuery(elem).attr('hkId')){if(jQuery.browser.opera||jQuery.browser.safari){while(!jQuery(elem).attr('hkId')&&elem.parentNode){elem=elem.parentNode;}}}
return elem;};hotkeys.handler=function(event){var target=hotkeys.findElement(event.currentTarget),jTarget=jQuery(target),ids=jTarget.attr('hkId');if(ids){ids=ids.split(';');var code=event.which,type=event.type,special=hotkeys.specialKeys[code],character=!special&&String.fromCharCode(code).toLowerCase(),shift=event.shiftKey,ctrl=event.ctrlKey,alt=event.altKey||event.originalEvent.altKey,mapPoint=null;for(var x=0;x<ids.length;x++){if(hotkeys.triggersMap[ids[x]][type]){mapPoint=hotkeys.triggersMap[ids[x]][type];break;}}
if(mapPoint){var trigger;if(!shift&&!ctrl&&!alt){trigger=mapPoint[special]||(character&&mapPoint[character]);}
else{var modif='';if(alt)modif+='alt+';if(ctrl)modif+='ctrl+';if(shift)modif+='shift+';trigger=mapPoint[modif+special];if(!trigger){if(character){trigger=mapPoint[modif+character]||mapPoint[modif+hotkeys.shiftNums[character]]||(modif==='shift+'&&mapPoint[hotkeys.shiftNums[character]]);}}}
if(trigger){var result=false;for(var x=0;x<trigger.length;x++){if(trigger[x].disableInInput){var elem=jQuery(event.target);if(jTarget.is("input")||jTarget.is("textarea")||jTarget.is("select")||elem.is("input")||elem.is("textarea")||elem.is("select")){return true;}}
result=result||trigger[x].cb.apply(this,[event]);}
return result;}}}};window.hotkeys=hotkeys;return jQuery;})(jQuery);function autoComplete(){var url=new Array();url['ajax_auto_tag']='/autocomplete/tags/?user_input=';url['ajax_auto_tag_fav']='/autocomplete/tags/?user_input=';url['ajax_auto_tag_ignore']='/autocomplete/tags/?user_input=';var conf=new Array();conf['list-color']='#3465A4';conf['list-background']='#D3D7CF';conf['list-color-active']='#fff';conf['list-background-active']='#729FCF';conf['strict']='true';conf['min-search']=1;conf['result-type']='json';$('.auto_complete').each(function(){var active=-1;var keybind=0;var inputBefore='';var position='';var ua=$.browser;var textBox=$(this);textBox.attr('autocomplete','off');var width=textBox.outerWidth();var height=textBox.outerHeight();if($(this).next().attr('tagName')!='UL'){$(this).after('<ul class="auto_complete_dropdown"></ul>');}
var box=$(this).next();box.css({'display':'none','z-index':'2147483647','overflow-x':'hidden'});var borderWidth=0;if(box.css('border-left-width').match(/^\d+px$/)){borderWidth+=Number(box.css('border-left-width').replace(/px$/,''));}
if(box.css('border-right-width').match(/^\d+px$/)){borderWidth+=Number(box.css('border-right-width').replace(/px$/,''));}
box.width(width-borderWidth);if(box.css('max-height')=='none'){box.css('max-height','350px');}
var maxHeight=0;if(box.css('max-height')){maxHeight=box.css('max-height').replace(/px$/,'');}else{maxHeight=350;}
var list=box.find('li');createList();textBox.click(function(){actionBox(list);});textBox.keyup(function(event){if(event.keyCode!=37&&event.keyCode!=38&&event.keyCode!=39&&event.keyCode!=40&&event.keyCode!=13){if(textBox.attr('id')&&url[textBox.attr('id')]&&inputBefore!=input&&textBox.val().length>=conf['min-search']){var input=textBox.val();inputBefore=input;if(conf['result-type']=='json'){$.getJSON(url[textBox.attr('id')]+input,function(data){box.empty();$.each(data.results,function(i,result){var li=$('<li>'+this.name+'<input type="hidden" value="'+this.completion+'" /></li>');box.append(li);});list=box.find('li');createList();var ajax=1;actionBox(list,ajax);});}else{jQuery.ajax({url:url[textBox.attr('id')]+input,cache:true,success:function(data){box.empty();jQuery.each(data.split("\n"),function(i,item){if(String(this).length>0){var li=$('<li>'+item+'</li>');box.append(li);}});list=box.find('li');createList();var ajax=1;actionBox(list,ajax);}});}}else{actionBox(list);}}});function createList(){list.css({'overflow-x':'hidden','white-space':'nowrap'});list.width(width-8);list.each(function(){$(this).data('text',$(this).text().replace(/\s+$/,''));$(this).data('textLC',$(this).data('text').toLowerCase());});}
function actionBox(list,ajax){if((!textBox.val()||ajax)&&list.size()>0){active=-1;box.scrollTop(0);list.css({'background':conf['list-background'],'color':conf['list-color']});list.each(function(){$(this).css('display','block');$(this).addClass('select-list');});selectBoxOn();}else{var boxon=0;var input=textBox.val();var inputLC=textBox.val().toLowerCase();active=-1;box.scrollTop(0);list.css({'background':conf['list-background'],'color':conf['list-color']});list.each(function(){var re=new RegExp('^'+inputLC,'i');if(!$(this).data('textLC').match(re)||$(this).data('text')==input){$(this).css('display','none');$(this).removeClass('select-list');}else{$(this).css('display','block');$(this).addClass('select-list');boxon=1;}});if(boxon){selectBoxOn();}else{selectBoxOff();}}}
function selectBoxOn(){if(box.css('display')!='block'){active=-1;}
var width=textBox.outerWidth();if(box.height()>maxHeight){box.css({width:width+'px',height:maxHeight+'px',overflowY:'scroll'});}else{box.css({width:width+'px',overflowY:'auto'});}
fixBox();$(textBox).bind('blur',selectBoxOff);box.mouseover(function(){$(textBox).unbind('blur',selectBoxOff);});box.mouseout(function(){$(textBox).bind('blur',selectBoxOff);});list.bind('mouseover',listMouseOver);list.bind('click',listClick);$(document).bind('keydown','down',listDown);$(document).bind('keydown','up',listUp);$(document).bind('keydown','return',listEnter);$(window).bind('resize',fixBox);keybind=1;}
function fixBox(){var offset=textBox.position();var left=offset.left;var top=offset.top;box.css({'position':'absolute','left':left+'px'});var bHeight=getBrowserHeight();var scrollTop=getScrollTop();box.css('display','block');if(bHeight<top+height+box.height()-scrollTop&&top+height-scrollTop>box.height()){box.css('top',(top-box.height()-1)+'px');position='up';scrollTopNew=(box.find('li.select-list').size()-1)*list.outerHeight()-(maxHeight-list.outerHeight());if(box.scrollTop()-scrollTopNew<list.height()){box.scrollTop(scrollTopNew);}}else{box.css('top',(top+textBox.outerHeight()-1)+'px');position='down';}}
function selectBoxOff(){list.unbind('mouseover',listMouseOver);list.unbind('click',listClick);if(keybind){$(document).unbind('keydown','down',listDown);$(document).unbind('keydown','up',listUp);$(document).unbind('keydown','return',listEnter);$(window).unbind('resize',fixBox);keybind=0;}
box.scrollTop(0);list.css({'background':conf['list-background'],'color':conf['list-color']});box.css('display','none');}
function listMouseOver(){list.css({'background':conf['list-background'],'color':conf['list-color']});$(this).css({'background':conf['list-background-active'],'color':conf['list-color-active']});active=box.find('li.select-list').index(this);}
function listClick(){completion=getCompletion($(this))
textBox.val(completion);selectBoxOff();textBox.focus();}
function listDown(){var next=0;if(position=='up'&&active==-1){return true;}else{next=active+1;}
if(box.find('li.select-list').eq(active+1).size()){list.css({'background':conf['list-background'],'color':conf['list-color']});active+=1;box.find('li.select-list').eq(active).css({'background':conf['list-background-active'],'color':conf['list-color-active']});scrollTopNew=active*list.outerHeight()-(maxHeight-list.outerHeight());if(box.scrollTop()-scrollTopNew<list.height()){box.scrollTop(scrollTopNew);}
return true;}}
function listUp(){var next=0;if(active-1<-1){if(position=='up'){next=box.find('li.select-list').size()-1;}else{return true;}}else{next=active-1;}
if(box.find('li.select-list').eq(next).size()){list.css({'background':conf['list-background'],'color':conf['list-color']});active=next;box.find('li.select-list').eq(active).css({'background':conf['list-background-active'],'color':conf['list-color-active']});scrollTopNew=active*list.outerHeight();if(scrollTopNew-box.scrollTop()<list.height()){box.scrollTop(scrollTopNew);}
return true;}}
function listEnter(event){var selected=box.find('li.select-list').eq(active);var completion=getCompletion(selected);if(conf['strict']=='false'){if(text){textBox.val(completion);selectBoxOff();textBox.focus();enableEnter(event);}}else if(conf['strict']=='true'){textBox.val(completion);textBox.focus();selectBoxOff();enableEnter(event);}}
function enableEnter(e){if(e.srcElement){o=e.srcElement;}else{o=e.target;}
if(o.tagName!='TEXTAREA'&&e.keyCode==13){if(e.preventDefault){e.preventDefault();e.stopPropagation();}
e.returnValue=false;e.cancelBubble=true;}}
function getBrowserHeight(){if(window.innerHeight){return window.innerHeight;}
else if(document.documentElement&&document.documentElement.clientHeight!=0){return document.documentElement.clientHeight;}
else if(document.body){return document.body.clientHeight;}
return 0;}
function getScrollTop(){var scrollTop=document.body.scrollTop||document.documentElement.scrollTop;return scrollTop;}
function getCompletion(selected){var completion=selected.find("input").val();if(!completion){completion=selected.text().replace(/\s+$/,'');}
return completion;}});}
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};(function($){$.fn.konami=function(callback,code){if(code==undefined)code="38,38,40,40,37,39,37,39,66,65";return this.each(function(){var kkeys=[];$(this).keydown(function(e){kkeys.push(e.keyCode);if(kkeys.toString().indexOf(code)>=0){$(this).unbind('keydown',arguments.callee);callback(e);}},true);});}})(jQuery);function konami_callback(){alert("you entered the konami code... \n\nWhat do you want, a badge or something?");}
function do_mod(post_vote,mod,cant_vote_message){post_vote.blur();if(!post_vote.hasClass("can_vote")){alert(cant_vote_message);return false;}
if(post_vote.hasClass("is_me")){alert("You can't vote on yourself ~_- ");return false;}
var opp,mod_val,net_mod,new_score,post
post=post_vote.parent().parent();if(mod=="down"){opp="up";mod_val=-1;}
else if(mod=="up"){opp="down";mod_val=1;}
else{mod="up";opp="down";mod_val=1;}
value=post.find(".value")
score=parseInt(value.html());if(post.hasClass(mod+"mod")){net_mod=0;post.removeClass(mod+"mod");new_score=score-mod_val;}
else if(post.hasClass(opp+"mod")){net_mod=mod_val;post.addClass(mod+"mod").removeClass(opp+"mod");new_score=score+(2*mod_val);}
else{net_mod=mod_val;post.addClass(mod+"mod");new_score=score+mod_val;}
if(new_score==0){new_score="0";}
value.html(new_score);var action_url=$(post_vote).parent().siblings(".vote_"+net_mod).val();$.post(action_url,{x:"1"});}
function imposeMaxLength(Object,MaxLen)
{if(Object.value.length>MaxLen){Object.value=Object.value.substr(0,MaxLen);}}
(function($){var textarea,staticOffset;var iLastMousePos=0;var iMin=32;var grip;$.fn.TextAreaResizer=function(){return this.each(function(){textarea=$(this).addClass('processed'),staticOffset=null;$(this).wrap('<div class="resizable-textarea"><span></span></div>').parent().append($('<div class="grippie"></div>').bind("mousedown",{el:this},startDrag));var grippie=$('div.grippie',$(this).parent())[0];grippie.style.marginRight=(grippie.offsetWidth-$(this)[0].offsetWidth)+'px';});};function startDrag(e){textarea=$(e.data.el);textarea.blur();iLastMousePos=mousePosition(e).y;staticOffset=textarea.height()-iLastMousePos;textarea.css('opacity',0.25);$(document).mousemove(performDrag).mouseup(endDrag);return false;}
function performDrag(e){var iThisMousePos=mousePosition(e).y;var iMousePos=staticOffset+iThisMousePos;if(iLastMousePos>=(iThisMousePos)){iMousePos-=5;}
iLastMousePos=iThisMousePos;iMousePos=Math.max(iMin,iMousePos);textarea.height(iMousePos+'px');if(iMousePos<iMin){endDrag(e);}
return false;}
function endDrag(e){$(document).unbind('mousemove',performDrag).unbind('mouseup',endDrag);textarea.css('opacity',1);textarea.focus();textarea=null;staticOffset=null;iLastMousePos=0;}
function mousePosition(e){return{x:e.clientX+document.documentElement.scrollLeft,y:e.clientY+document.documentElement.scrollTop};};})(jQuery);$(function(){$("#site_wide_announcements ul").slideDown("slow");$("#messages").slideDown("slow");$("#id_title").focus();$(".delete").click(function(){return confirm("Are you sure you want to delete this post?");});$(".undelete").click(function(){return confirm("Are you sure you want to undelete this post?\n  Everyone will be able to see it again.\n\n");});$("#searchinput").example("search");$("#new_post_tabs").tabs();$(".uparrow").click(function(){cant_vote_message="You need at least 15 karma to upvote";do_mod($(this),"up",cant_vote_message);return false;});$(".downarrow").click(function(){cant_vote_message="You need at least 100 karma to downvote";do_mod($(this),"down",cant_vote_message);return false;});var hide_text_link=$(".postBody a[href=hidden]");hide_text_link.each(function(){var next_element=$(this).parent().next();if(next_element.is("blockquote")||next_element.is("pre")){next_element.hide();}});hide_text_link.live("click",function(){var next_element=$(this).parent().next();if(next_element.is("blockquote")||next_element.is("pre")){if(next_element.is(":hidden")){next_element.slideDown("slow");}
else{next_element.slideUp("slow");}
return false;}});$(window).konami(konami_callback);$(".add_comment_form button").click(function(event,comment_body){if(!comment_body){var comment_body=$(this).siblings("textarea").val();}
if(comment_body.length<10){alert("Comments must be at least 10 characters long");return false;}});$(".add_comment_link").click(function(){var form=$(this).siblings(".add_comment_form")
if(form.hasClass("can_comment")){if(form.is(":visible")&&form.find("textarea").val()){var comment_body=form.find("textarea").val();return form.find("button").click(false,comment_body);}
else{form.show();form.find('textarea').focus();return false;}}
else{alert("You need at least 50 karma to leave a comment");return false;}});autoComplete();$(".wmd-editor-input-container textarea").addClass("resizable");$('textarea.resizable:not(.processed)').TextAreaResizer();});