;(function(){WMDEditor=function(options){this.options=WMDEditor.util.extend({},WMDEditor.defaults,options||{});wmdBase(this,this.options);this.startEditor();};window.WMDEditor=WMDEditor;WMDEditor.defaults={version:2.1,output_format:"markdown",lineLength:40,button_bar:"wmd-button-bar",preview:"wmd-preview",output:"wmd-output",input:"wmd-input",imageDialogText:"

Enter the image URL.

You can also add a title, which will be displayed as a tool tip.

Example:
http://i.imgur.com/1cZl4.jpg

",linkDialogText:"

Enter the web address.

You can also add a title, which will be displayed as a tool tip.

Example:
http://www.google.com/

",imageDefaultText:"http://",linkDefaultText:"http://",imageDirectory:"images/",helpLink:"/wmd/markdownhelp.html",helpHoverTitle:"Markdown Syntax",helpTarget:"_blank",previewPollInterval:500,pastePollInterval:100,buttons:"bold italic link blockquote code image ol ul heading hr undo redo help",autoFormatting:{list:true,quote:true,code:true,},modifierKeys:{bold:"b",italic:"i",link:"l",quote:"q",code:"k",image:"g",orderedList:"o",unorderedList:"u",heading:"h",horizontalRule:"r",redo:"y",undo:"z"},tagFilter:{enabled:false,allowedTags:/^(<\/?(b|blockquote|code|del|dd|dl|dt|em|h1|h2|h3|i|kbd|li|ol|p|pre|s|sup|sub|strong|strike|ul)>|<(br|hr)\s?\/?>)$/i,patternLink:/^(]+")?\s?>|<\/a>)$/i,patternImage:/^(]*")?(\stitle="[^"<>]*")?\s?\/?>)$/i}};WMDEditor.prototype={getPanels:function(){return{buttonBar:(typeof this.options.button_bar=='string')?document.getElementById(this.options.button_bar):this.options.button_bar,preview:(typeof this.options.preview=='string')?document.getElementById(this.options.preview):this.options.preview,output:(typeof this.options.output=='string')?document.getElementById(this.options.output):this.options.output,input:(typeof this.options.input=='string')?document.getElementById(this.options.input):this.options.input};},startEditor:function(){this.panels=this.getPanels();this.previewMgr=new PreviewManager(this);edit=new this.editor(this.previewMgr.refresh);this.previewMgr.refresh(true);}};var util={isVisible:function(elem){return elem.offsetWidth>0||elem.offsetHeight>0;},addEvent:function(elem,event,listener){if(elem.attachEvent){elem.attachEvent("on"+event,listener);} else{elem.addEventListener(event,listener,false);}},removeEvent:function(elem,event,listener){if(elem.detachEvent){elem.detachEvent("on"+event,listener);} else{elem.removeEventListener(event,listener,false);}},fixEolChars:function(text){text=text.replace(/\r\n/g,"\n");text=text.replace(/\r/g,"\n");return text;},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);},createImage:function(img){var imgPath=imageDirectory+img;var elem=document.createElement("img");elem.className="wmd-button";elem.src=imgPath;return elem;},prompt:function(text,defaultInputText,makeLinkMarkdown,promptType){var dialog;var background;var input;var titleInput;var newWinCheckbox;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(document.body,"keydown",checkEscape);var text=input.value+(titleInput.value?' "'+titleInput.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(promptType=='link'&&newWinCheckbox.checked)text='!'+text;} dialog.parentNode.removeChild(dialog);background.parentNode.removeChild(background);makeLinkMarkdown(text);return false;};var createBackground=function(){background=document.createElement("div");background.className="wmd-prompt-background";style=background.style;style.position="absolute";style.top="0";style.zIndex="10000";if(browser.isKonqueror){style.backgroundColor="transparent";} else if(browser.isIE){style.filter="alpha(opacity=50)";} else{style.opacity="0.5";} var pageSize=position.getPageSize();style.height=pageSize[1]+"px";if(browser.isIE){style.left=document.documentElement.scrollLeft;style.width=document.documentElement.clientWidth;} else{style.left="0";style.width="100%";} document.body.appendChild(background);};var createDialog=function(){dialog=document.createElement("div");dialog.className="wmd-prompt-dialog";dialog.style.padding="10px;";dialog.style.position="fixed";dialog.style.width="400px";dialog.style.zIndex="10001";var question=document.createElement("div");question.innerHTML=text;question.style.padding="5px";dialog.appendChild(question);var form=document.createElement("form");form.onsubmit=function(){return close(false);};var style=form.style;style.padding="0";style.margin="0";style.cssFloat="left";style.width="100%";style.textAlign="center";style.position="relative";dialog.appendChild(form);var label=document.createElement("label");style=label.style;style.display="block";style.width="80%";style.marginLeft=style.marginRight="auto";style.textAlign="left";form.appendChild(label);label.appendChild(document.createTextNode(promptType+" URL:"));input=document.createElement("input");input.type="text";input.value=defaultInputText;style=input.style;style.display="block";style.width="100%";style.marginLeft=style.marginRight="auto";label.appendChild(input);label=document.createElement("label");style=label.style;style.display="block";style.width="80%";style.marginLeft=style.marginRight="auto";style.textAlign="left";form.appendChild(label);label.appendChild(document.createTextNode(promptType+" Title (Hover Text):"));titleInput=document.createElement("input");titleInput.type="text";style=titleInput.style;style.display="block";style.width="100%";style.marginLeft=style.marginRight="auto";label.appendChild(titleInput);if(promptType=='link'){label=document.createElement("label");style=label.style;style.display="block";style.textAlign="center";form.appendChild(label);newWinCheckbox=document.createElement("input");newWinCheckbox.type='checkbox';newWinCheckbox.value='!';label.appendChild(newWinCheckbox);label.appendChild(document.createTextNode(" Have this link open in a new window"));} var okButton=document.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=document.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(document.body,"keydown",checkEscape);dialog.style.top="50%";dialog.style.left="50%";dialog.style.display="block";if(browser.isIE_5or6){dialog.style.position="absolute";dialog.style.top=document.documentElement.scrollTop+200+"px";dialog.style.left="50%";} document.body.appendChild(dialog);dialog.style.marginTop=-(position.getHeight(dialog)/2)+"px";dialog.style.marginLeft=-(position.getWidth(dialog)/2)+"px";};createBackground();window.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);},extend:function(){function _update(a,b){for(var k in b)if(b.hasOwnProperty(k)){if(typeof a[k]==='object'&&typeof b[k]==='object')_update(a[k],b[k]);else a[k]=b[k];} return a;} var d={};for(var i=0;idocument.body.offsetHeight){scrollWidth=document.body.scrollWidth;scrollHeight=document.body.scrollHeight;} else{scrollWidth=document.body.offsetWidth;scrollHeight=document.body.offsetHeight;} if(self.innerHeight){innerWidth=self.innerWidth;innerHeight=self.innerHeight;} else if(document.documentElement&&document.documentElement.clientHeight){innerWidth=document.documentElement.clientWidth;innerHeight=document.documentElement.clientHeight;} else if(document.body){innerWidth=document.body.clientWidth;innerHeight=document.body.clientHeight;} var maxWidth=Math.max(scrollWidth,innerWidth);var maxHeight=Math.max(scrollHeight,innerHeight);return[maxWidth,maxHeight,innerWidth,innerHeight];}};var TextareaState=function(textarea,wmd){var stateObj=this;var inputArea=textarea;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&&!browser.isOpera){inputArea.focus();inputArea.selectionStart=stateObj.start;inputArea.selectionEnd=stateObj.end;inputArea.scrollTop=stateObj.scrollTop;} else if(document.selection){if(typeof(document.activeElement)!="unknown"&&document.activeElement&&document.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(document.selection){stateObj.text=util.fixEolChars(inputArea.value);var range;if(wmd.ieRetardedClick&&wmd.ieCachedRange){range=wmd.ieCachedRange;wmd.ieRetardedClick=false;} else{range=document.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 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(browser.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();};var Chunks=function(){};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"";});}};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;}};Chunks.prototype.addBlankLines=function(nLinesBefore,nLinesAfter,findExtraNewlines){if(nLinesBefore===undefined){nLinesBefore=1;} if(nLinesAfter===undefined){nLinesAfter=1;} nLinesBefore++;nLinesAfter++;var regexText;var replacementText;var match=/(^\n*)/.exec(this.selection);this.selection=this.selection.replace(/(^\n*)/,"");this.startTag=this.startTag+(match?match[1]:"");match=/(\n*$)/.exec(this.selection);this.selection=this.selection.replace(/(\n*$)/,"");this.endTag=this.endTag+(match?match[1]:"");match=/(^\n*)/.exec(this.startTag);this.startTag=this.startTag.replace(/(^\n*)/,"");this.before=this.before+(match?match[1]:"");match=/(\n*$)/.exec(this.endTag);this.endTag=this.endTag.replace(/(\n*$)/,"");this.after=this.after+(match?match[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);}};var InputPoller=function(textarea,callback,interval){var pollerObj=this;var inputArea=textarea;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=window.setInterval(doTickCallback,interval);};this.destroy=function(){window.clearInterval(killHandle);};assignInterval();};var PreviewManager=function(wmd){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 InputPoller(wmd.panels.input,listener,wmd.options.previewPollInterval);};var getDocScrollTop=function(){var result=0;if(window.innerHeight){result=window.pageYOffset;} else if(document.documentElement&&document.documentElement.scrollTop){result=document.documentElement.scrollTop;} else if(document.body){result=document.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){window.clearTimeout(timeout);timeout=undefined;} if(startType!=="manual"){var delay=0;if(startType==="delayed"){delay=elapsedTime;} if(delay>maxDelay){delay=maxDelay;} timeout=window.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;} else{var newText=text.replace(/&/g,"&");newText=newText.replace(/"+newText+"";}} if(wmd.panels.preview){if(wmd.options.tagFilter.enabled){text=text.replace(/<[^<>]*>?/gi,function(tag){return(tag.match(wmd.options.tagFilter.allowedTags)||tag.match(wmd.options.tagFilter.patternLink)||tag.match(wmd.options.tagFilter.patternImage))?tag:"";});} wmd.panels.preview.innerHTML=text;} setPanelScrollTops();if(isFirstTimeFilled){isFirstTimeFilled=false;return;} var fullTop=position.getTop(wmd.panels.input)-getDocScrollTop();if(browser.isIE){window.setTimeout(function(){window.scrollBy(0,fullTop-emptyTop);},0);} else{window.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();};var UndoManager=function(wmd,textarea,pastePollInterval,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(!browser.isIE||mode!="moving"){timer=window.setTimeout(refreshState,1);} else{inputStateObj=null;}};var refreshState=function(){inputStateObj=new TextareaState(textarea,wmd);poller.tick();timer=undefined;};this.setCommandMode=function(){mode="command";saveState();timer=window.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 TextareaState(textarea,wmd);undoStack[--stackPtr].restore();if(callback){callback();}}} mode="none";textarea.focus();refreshState();};this.redo=function(){if(undoObj.canRedo()){undoStack[++stackPtr].restore();if(callback){callback();}} mode="none";textarea.focus();refreshState();};var saveState=function(){var currState=inputStateObj||new TextareaState(textarea,wmd);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(window.event){window.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(textarea,"keypress",function(event){if((event.ctrlKey||event.metaKey)&&(event.keyCode==89||event.keyCode==90)){event.preventDefault();}});var handlePaste=function(){if(browser.isIE||(inputStateObj&&inputStateObj.text!=textarea.value)){if(timer==undefined){mode="paste";saveState();refreshState();}}};poller=new InputPoller(textarea,handlePaste,pastePollInterval);util.addEvent(textarea,"keydown",handleCtrlYZ);util.addEvent(textarea,"keydown",handleModeChange);util.addEvent(textarea,"mousedown",function(){setMode("moving");});textarea.onpaste=handlePaste;textarea.ondrop=handlePaste;};var init=function(){setEventHandlers();refreshState();saveState();};this.destroy=function(){if(poller){poller.destroy();}};init();};WMDEditor.util=util;WMDEditor.position=position;WMDEditor.TextareaState=TextareaState;WMDEditor.InputPoller=InputPoller;WMDEditor.PreviewManager=PreviewManager;WMDEditor.UndoManager=UndoManager;var doc=window.document;var re=window.RegExp;var nav=window.navigator;function get_browser(){var b={};b.isIE=/msie/.test(nav.userAgent.toLowerCase());b.isIE_5or6=/msie 6/.test(nav.userAgent.toLowerCase())||/msie 5/.test(nav.userAgent.toLowerCase());b.isIE_7plus=b.isIE&&!b.isIE_5or6;b.isOpera=/opera/.test(nav.userAgent.toLowerCase());b.isKonqueror=/konqueror/.test(nav.userAgent.toLowerCase());return b;} var browser=get_browser();var wmdBase=function(wmd,wmd_options){wmd.Command={};wmd.Global={};wmd.buttons={};wmd.showdown=window.Showdown;var util=WMDEditor.util;var position=WMDEditor.position;var command=wmd.Command;wmd.ieCachedRange=null;wmd.ieRetardedClick=false;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 TextareaState(wmd.panels.input,wmd);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){if(wmd.buttons["wmd-undo-button"])setupButton(wmd.buttons["wmd-undo-button"],undoMgr.canUndo());if(wmd.buttons["wmd-redo-button"])setupButton(wmd.buttons["wmd-redo-button"],undoMgr.canRedo());}};var setupButton=function(button,isEnabled){if(isEnabled){button.className=button.className.replace(new RegExp("(^|\\s+)disabled(\\s+|$)"),' ');if(browser.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.className+=(button.className?' ':'')+'disabled';button.onmouseover=button.onmouseout=button.onclick=function(){};}};var makeSpritedButtonRow=function(){var buttonBar=(typeof wmd_options.button_bar=='string')?document.getElementById(wmd_options.button_bar||"wmd-button-bar"):wmd_options.button_bar;var normalYShift="0px";var disabledYShift="-20px";var highlightYShift="-40px";var buttonRow=document.createElement("ul");buttonRow.className="wmd-button-row";buttonRow=buttonBar.appendChild(buttonRow);var xoffset=0;function createButton(name,title,textOp){var button=document.createElement("li");wmd.buttons[name]=button;button.className="wmd-button "+name;button.XShift=xoffset+"px";xoffset-=20;if(title)button.title=title;if(textOp)button.textOp=textOp;return button;} function addButton(name,title,textOp){var button=createButton(name,title,textOp);setupButton(button,true);buttonRow.appendChild(button);return button;} function addSpacer(){var spacer=document.createElement("li");spacer.className="wmd-spacer";buttonRow.appendChild(spacer);return spacer;} var modifierKey=(navigator.appVersion.indexOf("Mac")!=-1)?"Cmd":"Ctrl";var buttonlist=wmd_options.buttons.split(' ');for(var i=0;i "+modifierKey+"+B",command.doBold);break;case"italic":addButton("wmd-italic-button","Emphasis "+modifierKey+"+I",command.doItalic);break;case'link':addButton("wmd-link-button","Hyperlink "+modifierKey+"+L",function(chunk,postProcessing,useDefaultText){return command.doLinkOrImage(chunk,postProcessing,false);});break;case'blockquote':addButton("wmd-quote-button","Blockquote
"+modifierKey+"+Q",command.doBlockquote);break;case'code':addButton("wmd-code-button","Code Sample
 "+modifierKey+"+K",command.doCode);break;case'image':addButton("wmd-image-button","Image  "+modifierKey+"+G",function(chunk,postProcessing,useDefaultText){return command.doLinkOrImage(chunk,postProcessing,true);});break;case'ol':addButton("wmd-olist-button","Numbered List 
    "+modifierKey+"+O",function(chunk,postProcessing,useDefaultText){command.doList(chunk,postProcessing,true,useDefaultText);});break;case'ul':addButton("wmd-ulist-button","Bulleted List