function createToolButton(icon,label,key,id,classname){var btn=document.createElement('button');var ico=document.createElement('img');btn.className='toolbutton';if(classname){btn.className+=' '+classname;}
btn.title=label;if(key){btn.title+=' ['+key.toUpperCase()+']';btn.accessKey=key;}
if(id){btn.id=id;ico.id=id+'_ico';}
if(icon.substr(0,1)=='/'){ico.src=icon;}else{ico.src=DOKU_BASE+'lib/images/toolbar/'+icon;}
btn.appendChild(ico);return btn;}
function createPicker(id,props,edid){var icobase=props['icobase'];var list=props['list'];var picker=document.createElement('div');picker.className='picker';if(props['class']){picker.className+=' '+props['class'];}
picker.id=id;picker.style.position='absolute';picker.style.marginLeft='-10000px';picker.style.marginTop='-10000px';for(var key in list){if(!list.hasOwnProperty(key))continue;if(isNaN(key)){var btn=document.createElement('button');btn.className='pickerbutton';var ico=document.createElement('img');if(list[key].substr(0,1)=='/'){ico.src=list[key];}else{ico.src=DOKU_BASE+'lib/images/'+icobase+'/'+list[key];}
btn.title=key;btn.appendChild(ico);addEvent(btn,'click',bind(pickerInsert,key,edid));picker.appendChild(btn);}else if(isString(list[key])){var btn=document.createElement('button');btn.className='pickerbutton';var txt=document.createTextNode(list[key]);btn.title=list[key];btn.appendChild(txt);addEvent(btn,'click',bind(pickerInsert,list[key],edid));picker.appendChild(btn);}else{initToolbar(picker,edid,list);break;}}
var body=document.getElementsByTagName('body')[0];body.appendChild(picker);return picker;}
function pickerInsert(text,edid){insertAtCarret(edid,text);pickerClose();}
function addBtnActionSignature(btn,props,edid){if(typeof(SIG)!='undefined'&&SIG!=''){addEvent(btn,'click',bind(insertAtCarret,edid,SIG));return true;}
return false;}
function keyHandler(e){if(e.keyCode!=13&&e.keyCode!=8&&e.keyCode!=32)return;var field=e.target;var selection=getSelection(field);if(selection.getLength())return;var search="\n"+field.value.substr(0,selection.start);var linestart=Math.max(search.lastIndexOf("\n"),search.lastIndexOf("\r"));search=search.substr(linestart);if(e.keyCode==13){var match=search.match(/(\n  +([\*-] ?)?)/);if(match){var scroll=field.scrollHeight;var match2=search.match(/^\n  +[\*-]\s*$/);if(match2&&field.value.substr(selection.start).match(/^($|\r?\n)/)){field.value=field.value.substr(0,linestart)+"\n"+
field.value.substr(selection.start);selection.start=linestart+ 1;selection.end=linestart+ 1;setSelection(selection);}else{insertAtCarret(field.id,match[1]);}
field.scrollTop+=(field.scrollHeight- scroll);e.preventDefault();return false;}}else if(e.keyCode==8){var match=search.match(/(\n  +)([*-] ?)$/);if(match){var spaces=match[1].length-1;if(spaces>3){field.value=field.value.substr(0,linestart)+
field.value.substr(linestart+2);selection.start=selection.start- 2;selection.end=selection.start;}else{field.value=field.value.substr(0,linestart)+
field.value.substr(selection.start);selection.start=linestart;selection.end=linestart;}
setSelection(selection);e.preventDefault();return false;}}else if(e.keyCode==32){var match=search.match(/(\n  +)([*-] )$/);if(match){field.value=field.value.substr(0,linestart)+'  '+
field.value.substr(linestart);selection.start=selection.start+ 2;selection.end=selection.start;setSelection(selection);e.preventDefault();return false;}}}
addInitEvent(function(){var field=$('wiki__text');if(!field)return;if(is_opera){addEvent(field,'keypress',keyHandler);}else{addEvent(field,'keydown',keyHandler);}});function currentHeadlineLevel(textboxId){var field=$(textboxId);var selection=getSelection(field);var search="\n"+field.value.substr(0,selection.start);var lasthl=search.lastIndexOf("\n==");if(lasthl==-1&&field.form.prefix){search=field.form.prefix.value;lasthl=search.lastIndexOf("\n==");}
search=search.substr(lasthl+1,6);if(search=='======')return 1;if(search.substr(0,5)=='=====')return 2;if(search.substr(0,4)=='====')return 3;if(search.substr(0,3)=='===')return 4;if(search.substr(0,2)=='==')return 5;return 0;}
window.textChanged=false;function deleteDraft(){if(is_opera)return;if(window.keepDraft)return;var dwform=$('dw__editform');if(dwform){var params='call=draftdel';params+='&id='+encodeURIComponent(dwform.elements.id.value);var sackobj=new sack(DOKU_BASE+'lib/exe/ajax.php');sackobj.asynchronous=false;sackobj.method='GET';sackobj.AjaxFailedAlert='';sackobj.encodeURIString=false;sackobj.runAJAX(params);}}
addInitEvent(function(){var editform=$('dw__editform');if(!editform)return;var edit_text=$('wiki__text');if(edit_text){if(edit_text.readOnly)return;var sel=getSelection(edit_text);sel.start=0;sel.end=0;setSelection(sel);edit_text.focus();}
var checkfunc=function(){window.textChanged=true;summaryCheck();};addEvent(editform,'change',checkfunc);addEvent(editform,'keydown',checkfunc);window.onbeforeunload=function(){if(window.textChanged){return LANG.notsavedyet;}};window.onunload=deleteDraft;addEvent($('edbtn__save'),'click',function(){window.onbeforeunload='';window.textChanged=false;});addEvent($('edbtn__preview'),'click',function(){window.onbeforeunload='';window.textChanged=false;window.keepDraft=true;});var summary=$('edit__summary');addEvent(summary,'change',summaryCheck);addEvent(summary,'keyup',summaryCheck);if(window.textChanged)summaryCheck();});function summaryCheck(){var sum=document.getElementById('edit__summary');if(sum.value===''){sum.className='missing';}else{sum.className='edit';}}
