diff --git a/eh22.easterhegg.eu/lib/exe/sprintdoc-de-informal.js b/eh22.easterhegg.eu/lib/exe/sprintdoc-de-informal.js index 6653885..71cca36 100644 --- a/eh22.easterhegg.eu/lib/exe/sprintdoc-de-informal.js +++ b/eh22.easterhegg.eu/lib/exe/sprintdoc-de-informal.js @@ -1 +1,37588 @@ -var DOKU_BASE='/';var DOKU_TPL='/lib/tpl/sprintdoc/';var DOKU_COOKIE_PARAM={"path":"\/","secure":true};Object.defineProperty(window,'DOKU_UHN',{get:function(){console.warn('Using DOKU_UHN is deprecated. Please use JSINFO.useHeadingNavigation instead');return JSINFO.useHeadingNavigation;}});Object.defineProperty(window,'DOKU_UHC',{get:function(){console.warn('Using DOKU_UHC is deprecated. Please use JSINFO.useHeadingContent instead');return JSINFO.useHeadingContent;}});LANG={"search_toggle_tools":"Suchwerkzeuge umschalten","willexpire":"Die Sperre zur Bearbeitung dieser Seite l\u00e4uft in einer Minute ab.\\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verl\u00e4ngern.","notsavedyet":"Nicht gespeicherte \u00c4nderungen gehen verloren!","searchmedia":"Suche nach Dateien","keepopen":"Fenster nach Auswahl nicht schlie\u00dfen","hidedetails":"Details ausblenden","mediatitle":"Link-Eigenschaften","mediadisplay":"Linktyp","mediaalign":"Ausrichtung","mediasize":"Bildgr\u00f6\u00dfe","mediatarget":"Linkziel","mediaclose":"Schlie\u00dfen","mediainsert":"Einf\u00fcgen","mediadisplayimg":"Bild anzeigen","mediadisplaylnk":"Nur den Link anzeigen","mediasmall":"Bild in kleiner Aufl\u00f6sung","mediamedium":"Bild in mittlerer Aufl\u00f6sung","medialarge":"Bild in hoher Aufl\u00f6sung","mediaoriginal":"Originalaufl\u00f6sung","medialnk":"Link zur Detailseite","mediadirect":"Direkter Link zum Original","medianolnk":"Kein Link","medianolink":"Bild nicht verlinken","medialeft":"Bild linksb\u00fcndig ausrichten.","mediaright":"Bild rechtsb\u00fcndig ausrichten.","mediacenter":"Bild horizontal zentriert ausrichten","medianoalign":"Bild ohne bestimmte Ausrichtung lassen","nosmblinks":"Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet-Explorer.\\nDer Link kann jedoch zum Einf\u00fcgen kopiert werden.","linkwiz":"Link-Assistent","linkto":"Link zu:","del_confirm":"Die ausgew\u00e4hlten Dateien wirklich l\u00f6schen?","restore_confirm":"Wirklich diese Version wiederherstellen?","media_diff":"Unterschiede anzeigen:","media_diff_both":"Nebeneinander","media_diff_opacity":"\u00dcberblenden","media_diff_portions":"\u00dcbergang","media_select":"Dateien ausw\u00e4hlen\u2026","media_upload_btn":"Hochladen","media_done_btn":"Fertig","media_drop":"Dateien hier hinziehen um sie hochzuladen","media_cancel":"Entfernen","media_overwrt":"Existierende Dateien \u00fcberschreiben","data_insecure":"WARNING: It seems your data directory is not properly secured. Please read about Web Access Security in DokuWiki<\/a>.","plugins":{"edittable":{"toggle_header":"Kopfzeile an\/aus","align_left":"Links ausrichten","align_center":"Mittig ausrichten","align_right":"Rechts ausrichten","confirmdeleterow":"Zeile wirklich l\u00f6schen?","confirmdeletecol":"Spalte wirklich l\u00f6schen?","row_above":"Zeile dar\u00fcber einf\u00fcgen","remove_row":"Zeile entfernen","row_below":"Zeile darunter einf\u00fcgen","col_left":"Spalte links hinzuf\u00fcgen","remove_col":"Spalte entfernen","col_right":"Spalte rechts hinzuf\u00fcgen","merge_cells":"Zellen verbinden","unmerge_cells":"Zellen trennen"},"extension":{"reallydel":"M\u00f6chtest du diese Erweiterung wirklich deinstallieren","display_viewoptions":"Einstellungen anzeigen:","display_enabled":"aktiviert","display_disabled":"deaktiviert","display_updatable":"Update verf\u00fcgbar","close":"Click to close","filter":"Show updatable extensions only"},"logviewer":{"filter":"Protokolleintr\u00e4ge filtern"},"styling":{"loader":"Vorschau l\u00e4dt...
Falls diese Nachricht nicht verschwindet, k\u00f6nnten deine Werte fehlerhaft sein","popup":"\u00d6ffne als Popup"}}};var toolbar=[{"type":"format","title":"Fetter Text","icon":"bold.png","key":"b","open":"**","close":"**","block":false},{"type":"format","title":"Kursiver Text","icon":"italic.png","key":"i","open":"\/\/","close":"\/\/","block":false},{"type":"format","title":"Unterstrichener Text","icon":"underline.png","key":"u","open":"__","close":"__","block":false},{"type":"format","title":"Code Text","icon":"mono.png","key":"m","open":"''","close":"''","block":false},{"type":"format","title":"Durchgestrichener Text","icon":"strike.png","key":"d","open":"","close":"<\/del>","block":false},{"type":"autohead","title":"\u00dcberschrift auf selber Ebene","icon":"hequal.png","key":"8","text":"\u00dcberschrift","mod":0,"block":true},{"type":"autohead","title":"\u00dcberschrift eine Ebene runter","icon":"hminus.png","key":"9","text":"\u00dcberschrift","mod":1,"block":true},{"type":"autohead","title":"\u00dcberschrift eine Ebene h\u00f6her","icon":"hplus.png","key":"0","text":"\u00dcberschrift","mod":-1,"block":true},{"type":"picker","title":"W\u00e4hle eine \u00dcberschrift","icon":"h.png","class":"pk_hl","list":[{"type":"format","title":"Level 1 \u00dcberschrift","icon":"h1.png","key":"1","open":"====== ","close":" ======\\n"},{"type":"format","title":"Level 2 \u00dcberschrift","icon":"h2.png","key":"2","open":"===== ","close":" =====\\n"},{"type":"format","title":"Level 3 \u00dcberschrift","icon":"h3.png","key":"3","open":"==== ","close":" ====\\n"},{"type":"format","title":"Level 4 \u00dcberschrift","icon":"h4.png","key":"4","open":"=== ","close":" ===\\n"},{"type":"format","title":"Level 5 \u00dcberschrift","icon":"h5.png","key":"5","open":"== ","close":" ==\\n"}],"block":true},{"type":"linkwiz","title":"Interner Link","icon":"link.png","key":"l","open":"[[","close":"]]","block":false},{"type":"format","title":"Externer Link","icon":"linkextern.png","open":"[[","close":"]]","sample":"http:\/\/example.com|Externer Link","block":false},{"type":"formatln","title":"Nummerierter Listenpunkt","icon":"ol.png","open":" - ","close":"","key":"-","block":true},{"type":"formatln","title":"Listenpunkt","icon":"ul.png","open":" * ","close":"","key":".","block":true},{"type":"insert","title":"Horizontale Linie","icon":"hr.png","insert":"\\n----\\n","block":true},{"type":"mediapopup","title":"Bilder und andere Dateien hinzuf\u00fcgen","icon":"image.png","url":"lib\/exe\/mediamanager.php?ns=","name":"mediaselect","options":"width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes","block":false},{"type":"picker","title":"Smileys","icon":"smiley.png","list":{"8-)":"cool.svg","8-O":"eek.svg","8-o":"eek.svg",":-(":"sad.svg",":-)":"smile.svg","=)":"smile2.svg",":-\/":"doubt.svg",":-\\":"doubt2.svg",":-?":"confused.svg",":-D":"biggrin.svg",":-P":"razz.svg",":-o":"surprised.svg",":-O":"surprised.svg",":-x":"silenced.svg",":-X":"silenced.svg",":-|":"neutral.svg",";-)":"wink.svg","m(":"facepalm.svg","^_^":"fun.svg",":?:":"question.svg",":!:":"exclaim.svg","LOL":"lol.svg","FIXME":"fixme.svg","DELETEME":"deleteme.svg"},"icobase":"smileys","block":false},{"type":"picker","title":"Sonderzeichen","icon":"chars.png","list":["\u00c0","\u00e0","\u00c1","\u00e1","\u00c2","\u00e2","\u00c3","\u00e3","\u00c4","\u00e4","\u01cd","\u01ce","\u0102","\u0103","\u00c5","\u00e5","\u0100","\u0101","\u0104","\u0105","\u00c6","\u00e6","\u0106","\u0107","\u00c7","\u00e7","\u010c","\u010d","\u0108","\u0109","\u010a","\u010b","\u00d0","\u0111","\u00f0","\u010e","\u010f","\u00c8","\u00e8","\u00c9","\u00e9","\u00ca","\u00ea","\u00cb","\u00eb","\u011a","\u011b","\u0112","\u0113","\u0116","\u0117","\u0118","\u0119","\u0122","\u0123","\u011c","\u011d","\u011e","\u011f","\u0120","\u0121","\u0124","\u0125","\u00cc","\u00ec","\u00cd","\u00ed","\u00ce","\u00ee","\u00cf","\u00ef","\u01cf","\u01d0","\u012a","\u012b","\u0130","\u0131","\u012e","\u012f","\u0134","\u0135","\u0136","\u0137","\u0139","\u013a","\u013b","\u013c","\u013d","\u013e","\u0141","\u0142","\u013f","\u0140","\u0143","\u0144","\u00d1","\u00f1","\u0145","\u0146","\u0147","\u0148","\u00d2","\u00f2","\u00d3","\u00f3","\u00d4","\u00f4","\u00d5","\u00f5","\u00d6","\u00f6","\u01d1","\u01d2","\u014c","\u014d","\u0150","\u0151","\u0152","\u0153","\u00d8","\u00f8","\u0154","\u0155","\u0156","\u0157","\u0158","\u0159","\u015a","\u015b","\u015e","\u015f","\u0160","\u0161","\u015c","\u015d","\u0162","\u0163","\u0164","\u0165","\u00d9","\u00f9","\u00da","\u00fa","\u00db","\u00fb","\u00dc","\u00fc","\u01d3","\u01d4","\u016c","\u016d","\u016a","\u016b","\u016e","\u016f","\u01d6","\u01d8","\u01da","\u01dc","\u0172","\u0173","\u0170","\u0171","\u0174","\u0175","\u00dd","\u00fd","\u0178","\u00ff","\u0176","\u0177","\u0179","\u017a","\u017d","\u017e","\u017b","\u017c","\u00de","\u00fe","\u00df","\u0126","\u0127","\u00bf","\u00a1","\u00a2","\u00a3","\u00a4","\u00a5","\u20ac","\u00a6","\u00a7","\u00aa","\u00ac","\u00af","\u00b0","\u00b1","\u00f7","\u2030","\u00bc","\u00bd","\u00be","\u00b9","\u00b2","\u00b3","\u00b5","\u00b6","\u2020","\u2021","\u00b7","\u2022","\u00ba","\u2200","\u2202","\u2203","\u018f","\u0259","\u2205","\u2207","\u2208","\u2209","\u220b","\u220f","\u2211","\u203e","\u2212","\u2217","\u00d7","\u2044","\u221a","\u221d","\u221e","\u2220","\u2227","\u2228","\u2229","\u222a","\u222b","\u2234","\u223c","\u2245","\u2248","\u2260","\u2261","\u2264","\u2265","\u2282","\u2283","\u2284","\u2286","\u2287","\u2295","\u2297","\u22a5","\u22c5","\u25ca","\u2118","\u2111","\u211c","\u2135","\u2660","\u2663","\u2665","\u2666","\u03b1","\u03b2","\u0393","\u03b3","\u0394","\u03b4","\u03b5","\u03b6","\u03b7","\u0398","\u03b8","\u03b9","\u03ba","\u039b","\u03bb","\u03bc","\u039e","\u03be","\u03a0","\u03c0","\u03c1","\u03a3","\u03c3","\u03a4","\u03c4","\u03c5","\u03a6","\u03c6","\u03c7","\u03a8","\u03c8","\u03a9","\u03c9","\u2605","\u2606","\u260e","\u261a","\u261b","\u261c","\u261d","\u261e","\u261f","\u2639","\u263a","\u2714","\u2718","\u201e","\u201c","\u201d","\u201a","\u2018","\u2019","\u00ab","\u00bb","\u2039","\u203a","\u2014","\u2013","\u2026","\u2190","\u2191","\u2192","\u2193","\u2194","\u21d0","\u21d1","\u21d2","\u21d3","\u21d4","\u00a9","\u2122","\u00ae","\u2032","\u2033","[","]","{","}","~","(",")","%","\u00a7","$","#","|","@"],"block":false},{"type":"signature","title":"Unterschrift einf\u00fcgen","icon":"sig.png","key":"y","block":false},{"title":"Neue Tabelle einf\u00fcgen","type":"NewTable","icon":"..\/..\/plugins\/edittable\/images\/add_table.png","block":true},{"type":"picker","title":"Wrap-Plugin","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/picker.png","list":[{"type":"format","title":"Spalten","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/column.png","open":"\\n\\n","close":"\\n<\/WRAP>\\n\\n\\n\\n<\/WRAP>\\n<\/WRAP>\\n"},{"type":"format","title":"einfache zentrierte Box","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/box.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Info-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/info.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Tip-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/tip.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Wichtig-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/important.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Warn-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/alert.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Hilfe-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/help.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Download-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/download.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"format","title":"Zu-Erledigen-Box","icon":"..\/..\/plugins\/wrap\/images\/note\/16\/todo.png","open":"\\n","close":"\\n<\/WRAP>\\n"},{"type":"insert","title":"Floats beseitigen","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/clear.png","insert":"\\n"},{"type":"format","title":"wichtig","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/em.png","open":"","close":"<\/wrap>"},{"type":"format","title":"markieren","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/hi.png","open":"","close":"<\/wrap>"},{"type":"format","title":"weniger wichtig","icon":"..\/..\/plugins\/wrap\/images\/toolbar\/lo.png","open":"","close":"<\/wrap>"}]}];(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports==='object'){factory(require('jquery'));}else{factory(jQuery);}}(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s);}function decode(s){return config.raw?s:decodeURIComponent(s);}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value));}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');}try{s=decodeURIComponent(s.replace(pluses,' '));return config.json?JSON.parse(s):s;}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value;}var config=$.cookie=function(key,value,options){if(value!==undefined&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setTime(+t+days*864e+5);}return(document.cookie=[encode(key),'=',stringifyCookieValue(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split('; '):[];for(var i=0,l=cookies.length;ithis._options.sizeLimit){this._error('sizeError',name);return false;}else if(size&&size33){name=name.slice(0,19)+'...'+name.slice(-13);}return name;},_isAllowedExtension:function(fileName){var ext=(-1!==fileName.indexOf('.'))?fileName.replace(/.*[.]/,'').toLowerCase():'';var allowed=this._options.allowedExtensions;if(!allowed.length){return true;}for(var i=0;i99);return Math.max(bytes,0.1).toFixed(1)+['kB','MB','GB','TB','PB','EB'][i];}};qq.FileUploader=function(o){qq.FileUploaderBasic.apply(this,arguments);qq.extend(this._options,{element:null,listElement:null,template:'
'+'
Drop files here to upload
'+'
Upload a file
'+'
    '+'
    ',fileTemplate:'
  • '+''+''+''+'Cancel'+'Failed'+'
  • ',classes:{button:'qq-upload-button',drop:'qq-upload-drop-area',dropActive:'qq-upload-drop-area-active',list:'qq-upload-list',file:'qq-upload-file',spinner:'qq-upload-spinner',size:'qq-upload-size',cancel:'qq-upload-cancel',success:'qq-upload-success',fail:'qq-upload-fail'}});qq.extend(this._options,o);this._element=this._options.element;this._element.innerHTML=this._options.template;this._listElement=this._options.listElement||this._find(this._element,'list');this._classes=this._options.classes;this._button=this._createUploadButton(this._find(this._element,'button'));this._bindCancelEvent();this._setupDragDrop();};qq.extend(qq.FileUploader.prototype,qq.FileUploaderBasic.prototype);qq.extend(qq.FileUploader.prototype,{_find:function(parent,type){var element=qq.getByClass(parent,this._options.classes[type])[0];if(!element){throw new Error('element not found '+type);}return element;},_setupDragDrop:function(){var self=this,dropArea=this._find(this._element,'drop');var dz=new qq.UploadDropZone({element:dropArea,onEnter:function(e){qq.addClass(dropArea,self._classes.dropActive);e.stopPropagation();},onLeave:function(e){e.stopPropagation();},onLeaveNotDescendants:function(e){qq.removeClass(dropArea,self._classes.dropActive);},onDrop:function(e){dropArea.style.display='none';qq.removeClass(dropArea,self._classes.dropActive);self._uploadFileList(e.dataTransfer.files);}});dropArea.style.display='none';qq.attach(document,'dragenter',function(e){if(!dz._isValidFileDrag(e))return;dropArea.style.display='block';});qq.attach(document,'dragleave',function(e){if(!dz._isValidFileDrag(e))return;var relatedTarget=document.elementFromPoint(e.clientX,e.clientY);if(!relatedTarget||relatedTarget.nodeName=="HTML"){dropArea.style.display='none';}});},_onSubmit:function(id,fileName){qq.FileUploaderBasic.prototype._onSubmit.apply(this,arguments);this._addToList(id,fileName);},_onProgress:function(id,fileName,loaded,total){qq.FileUploaderBasic.prototype._onProgress.apply(this,arguments);var item=this._getItemByFileId(id);var size=this._find(item,'size');size.style.display='inline';var text;if(loaded!=total){text=Math.round(loaded/total*100)+'% from '+this._formatSize(total);}else{text=this._formatSize(total);}qq.setText(size,text);},_onComplete:function(id,fileName,result){qq.FileUploaderBasic.prototype._onComplete.apply(this,arguments);var item=this._getItemByFileId(id);qq.remove(this._find(item,'cancel'));qq.remove(this._find(item,'spinner'));if(result.success){qq.addClass(item,this._classes.success);}else{qq.addClass(item,this._classes.fail);}},_addToList:function(id,fileName){var item=qq.toElement(this._options.fileTemplate);item.qqFileId=id;var fileElement=this._find(item,'file');qq.setText(fileElement,this._formatFileName(fileName));this._find(item,'size').style.display='none';this._listElement.appendChild(item);},_getItemByFileId:function(id){var item=this._listElement.firstChild;while(item){if(item.qqFileId==id)return item;item=item.nextSibling;}},_bindCancelEvent:function(){var self=this,list=this._listElement;qq.attach(list,'click',function(e){e=e||window.event;var target=e.target||e.srcElement;if(qq.hasClass(target,self._classes.cancel)){qq.preventDefault(e);var item=target.parentNode;self._handler.cancel(item.qqFileId);qq.remove(item);}});}});qq.UploadDropZone=function(o){this._options={element:null,onEnter:function(e){},onLeave:function(e){},onLeaveNotDescendants:function(e){},onDrop:function(e){}};qq.extend(this._options,o);this._element=this._options.element;this._disableDropOutside();this._attachEvents();};qq.UploadDropZone.prototype={_disableDropOutside:function(e){if(!qq.UploadDropZone.dropOutsideDisabled){qq.attach(document,'dragover',function(e){if(e.dataTransfer){e.dataTransfer.dropEffect='none';e.preventDefault();}});qq.UploadDropZone.dropOutsideDisabled=true;}},_attachEvents:function(){var self=this;qq.attach(self._element,'dragover',function(e){if(!self._isValidFileDrag(e))return;var effect=e.dataTransfer.effectAllowed;if(effect=='move'||effect=='linkMove'){e.dataTransfer.dropEffect='move';}else{e.dataTransfer.dropEffect='copy';}e.stopPropagation();e.preventDefault();});qq.attach(self._element,'dragenter',function(e){if(!self._isValidFileDrag(e))return;self._options.onEnter(e);});qq.attach(self._element,'dragleave',function(e){if(!self._isValidFileDrag(e))return;self._options.onLeave(e);var relatedTarget=document.elementFromPoint(e.clientX,e.clientY);if(qq.contains(this,relatedTarget))return;self._options.onLeaveNotDescendants(e);});qq.attach(self._element,'drop',function(e){if(!self._isValidFileDrag(e))return;e.preventDefault();self._options.onDrop(e);});},_isValidFileDrag:function(e){var dt=e.dataTransfer,isWebkit=navigator.userAgent.indexOf("AppleWebKit")>-1;return dt&&dt.effectAllowed!='none'&&(dt.files||(!isWebkit&&dt.types.contains&&dt.types.contains('Files')));}};qq.UploadButton=function(o){this._options={element:null,multiple:false,name:'file',onChange:function(input){},hoverClass:'qq-upload-button-hover',focusClass:'qq-upload-button-focus'};qq.extend(this._options,o);this._element=this._options.element;qq.css(this._element,{position:'relative',overflow:'hidden',direction:'ltr'});this._input=this._createInput();};qq.UploadButton.prototype={getInput:function(){return this._input;},reset:function(){if(this._input.parentNode){qq.remove(this._input);}qq.removeClass(this._element,this._options.focusClass);this._input=this._createInput();},_createInput:function(){var input=document.createElement("input");if(this._options.multiple){input.setAttribute("multiple","multiple");}input.setAttribute("type","file");input.setAttribute("name",this._options.name);qq.css(input,{position:'absolute',right:0,top:0,fontFamily:'Arial',fontSize:'118px',margin:0,padding:0,cursor:'pointer',opacity:0});this._element.appendChild(input);var self=this;qq.attach(input,'change',function(){self._options.onChange(input);});qq.attach(input,'mouseover',function(){qq.addClass(self._element,self._options.hoverClass);});qq.attach(input,'mouseout',function(){qq.removeClass(self._element,self._options.hoverClass);});qq.attach(input,'focus',function(){qq.addClass(self._element,self._options.focusClass);});qq.attach(input,'blur',function(){qq.removeClass(self._element,self._options.focusClass);});if(window.attachEvent){input.setAttribute('tabIndex',"-1");}return input;}};qq.UploadHandlerAbstract=function(o){this._options={debug:false,action:'/upload.php',maxConnections:999,onProgress:function(id,fileName,loaded,total){},onComplete:function(id,fileName,response){},onCancel:function(id,fileName){}};qq.extend(this._options,o);this._queue=[];this._params=[];};qq.UploadHandlerAbstract.prototype={log:function(str){if(this._options.debug&&window.console)console.log('[uploader] '+str);},add:function(file){},upload:function(id,params){var len=this._queue.push(id);var copy={};qq.extend(copy,params);this._params[id]=copy;if(len<=this._options.maxConnections){this._upload(id,this._params[id]);}},cancel:function(id){this._cancel(id);this._dequeue(id);},cancelAll:function(){for(var i=0;i=max&&i');iframe.setAttribute('id',id);iframe.style.display='none';document.body.appendChild(iframe);return iframe;},_createForm:function(iframe,params){var form=qq.toElement('
    ');var queryString=qq.obj2url(params,this._options.action);form.setAttribute('action',queryString);form.setAttribute('target',iframe.name);form.style.display='none';document.body.appendChild(form);return form;}});qq.UploadHandlerXhr=function(o){qq.UploadHandlerAbstract.apply(this,arguments);this._files=[];this._xhrs=[];this._loaded=[];};qq.UploadHandlerXhr.isSupported=function(){var input=document.createElement('input');input.type='file';return('multiple'in input&&typeof File!="undefined"&&typeof(new XMLHttpRequest()).upload!="undefined");};qq.extend(qq.UploadHandlerXhr.prototype,qq.UploadHandlerAbstract.prototype);qq.extend(qq.UploadHandlerXhr.prototype,{add:function(file){if(!(file instanceof File)){throw new Error('Passed obj in not a File (in qq.UploadHandlerXhr)');}return this._files.push(file)-1;},getName:function(id){var file=this._files[id];return file.fileName!=null?file.fileName:file.name;},getSize:function(id){var file=this._files[id];return file.fileSize!=null?file.fileSize:file.size;},getLoaded:function(id){return this._loaded[id]||0;},_upload:function(id,params){var file=this._files[id],name=this.getName(id),size=this.getSize(id);this._loaded[id]=0;var xhr=this._xhrs[id]=new XMLHttpRequest();var self=this;xhr.upload.onprogress=function(e){if(e.lengthComputable){self._loaded[id]=e.loaded;self._options.onProgress(id,name,e.loaded,e.total);}};xhr.onreadystatechange=function(){if(xhr.readyState==4){self._onComplete(id,xhr);}};params=params||{};params['qqfile']=name;var queryString=qq.obj2url(params,this._options.action);xhr.open("POST",queryString,true);xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("X-File-Name",encodeURIComponent(name));xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.send(file);},_onComplete:function(id,xhr){if(!this._files[id])return;var name=this.getName(id);var size=this.getSize(id);this._options.onProgress(id,name,size,size);if(xhr.status==200){this.log("xhr - server response received");this.log("responseText = "+xhr.responseText);var response;try{response=eval("("+xhr.responseText+")");}catch(err){response={};}this._options.onComplete(id,name,response);}else{this._options.onComplete(id,name,{});}this._files[id]=null;this._xhrs[id]=null;this._dequeue(id);},_cancel:function(id){this._options.onCancel(id,this.getName(id));this._files[id]=null;if(this._xhrs[id]){this._xhrs[id].abort();this._xhrs[id]=null;}}});qq.extend(qq.FileUploader.prototype,{_createUploadHandler:function(){var self=this,handlerClass;if(qq.UploadHandlerXhr.isSupported()){handlerClass='UploadHandlerXhr';}else{handlerClass='UploadHandlerForm';}var handler=new qq[handlerClass]({debug:this._options.debug,action:this._options.action,maxConnections:this._options.maxConnections,onProgress:function(id,fileName,loaded,total){self._onProgress(id,fileName,loaded,total);self._options.onProgress(id,fileName,loaded,total);},onComplete:function(id,fileName,result){self._onComplete(id,fileName,result);self._options.onComplete(id,fileName,result);},onCancel:function(id,fileName){self._onCancel(id,fileName);self._options.onCancel(id,fileName);},onUpload:function(){self._onUpload();}});return handler;},_onUpload:function(){this._handler.uploadAll(this._options.params);},_uploadFile:function(fileContainer){var id=this._handler.add(fileContainer);var fileName=this._handler.getName(id);if(this._options.onSubmit(id,fileName)!==false){this._onSubmit(id,fileName);}},_addToList:function(id,fileName){var item=qq.toElement(this._options.fileTemplate);item.qqFileId=id;var fileElement=this._find(item,'file');qq.setText(fileElement,fileName);this._find(item,'size').style.display='none';var nameElement=this._find(item,'nameInput');fileName=fileName.toLowerCase();fileName=fileName.replace(/([ !"#$%&\'()+,\/;<=>?@[\]^`{|}~:]+)/g,'_');fileName=fileName.replace(/^_+/,'');nameElement.value=fileName;nameElement.id='mediamanager__upload_item'+id;this._listElement.appendChild(item);}});qq.FileUploaderExtended=function(o){qq.FileUploaderBasic.apply(this,arguments);qq.extend(this._options,{element:null,listElement:null,template:'
    '+'
    '+LANG.media_drop+'
    '+'
    '+LANG.media_select+'
    '+'
      '+'
      '+' '+' '+'
      '+'
      ',fileTemplate:'
    • '+''+' '+' '+' '+' '+LANG.media_cancel+''+' Failed'+'
    • ',classes:{button:'qq-upload-button',drop:'qq-upload-drop-area',dropActive:'qq-upload-drop-area-active',list:'qq-upload-list',nameInput:'qq-upload-name-input',overwriteInput:'qq-overwrite-check',uploadButton:'qq-upload-action',file:'qq-upload-file',spinner:'qq-upload-spinner',size:'qq-upload-size',cancel:'qq-upload-cancel',success:'qq-upload-success',fail:'qq-upload-fail',failedText:'qq-upload-failed-text'}});qq.extend(this._options,o);this._element=this._options.element;this._element.innerHTML=this._options.template;this._listElement=this._options.listElement||this._find(this._element,'list');this._classes=this._options.classes;this._button=this._createUploadButton(this._find(this._element,'button'));this._bindCancelEvent();this._bindUploadEvent();this._setupDragDrop();};qq.extend(qq.FileUploaderExtended.prototype,qq.FileUploader.prototype);qq.extend(qq.FileUploaderExtended.prototype,{_bindUploadEvent:function(){var self=this,list=this._listElement;qq.attach(document.getElementById('mediamanager__upload_button'),'click',function(e){e=e||window.event;var target=e.target||e.srcElement;qq.preventDefault(e);self._handler._options.onUpload();jQuery(".qq-upload-name-input").each(function(i){jQuery(this).prop('disabled',true);});});},_onComplete:function(id,fileName,result){this._filesInProgress--;var item=this._getItemByFileId(id);qq.remove(this._find(item,'cancel'));qq.remove(this._find(item,'spinner'));var nameInput=this._find(item,'nameInput');var fileElement=this._find(item,'file');qq.setText(fileElement,nameInput.value);qq.removeClass(fileElement,'hidden');qq.remove(nameInput);jQuery('.qq-upload-button, #mediamanager__upload_button').remove();jQuery('.dw__ow').parent().hide();jQuery('.qq-upload-drop-area').remove();if(result.success){qq.addClass(item,this._classes.success);$link=''+nameInput.value+'';jQuery(fileElement).html($link);}else{qq.addClass(item,this._classes.fail);var fail=this._find(item,'failedText');if(result.error)qq.setText(fail,result.error);}if(document.getElementById('media__content')&&!document.getElementById('mediamanager__done_form')){var action=document.location.href;var i=action.indexOf('?');if(i)action=action.substr(0,i);var button='
      ';button+='';button+='';button+='
      ';jQuery('#mediamanager__uploader').append(button);}}});qq.extend(qq.UploadHandlerForm.prototype,{uploadAll:function(params){this._uploadAll(params);},getName:function(id){var file=this._inputs[id];var name=document.getElementById('mediamanager__upload_item'+id);if(name!=null){return name.value;}else{if(file!=null){return file.value.replace(/.*(\/|\\)/,"");}else{return null;}}},_uploadAll:function(params){jQuery(".qq-upload-spinner").each(function(i){jQuery(this).removeClass('hidden');});for(key in this._inputs){this.upload(key,params);}},_upload:function(id,params){var input=this._inputs[id];if(!input){throw new Error('file with passed id was not added, or already uploaded or cancelled');}var fileName=this.getName(id);var iframe=this._createIframe(id);var form=this._createForm(iframe,params);form.appendChild(input);var nameInput=qq.toElement('');form.appendChild(nameInput);var checked=jQuery('.dw__ow').is(':checked');var owCheckbox=jQuery('.dw__ow').clone();owCheckbox.attr('checked',checked);jQuery(form).append(owCheckbox);var self=this;this._attachLoadEvent(iframe,function(){self.log('iframe loaded');var response=self._getIframeContentJSON(iframe);self._options.onComplete(id,fileName,response);self._dequeue(id);delete self._inputs[id];setTimeout(function(){qq.remove(iframe);},1);});form.submit();qq.remove(form);return id;}});qq.extend(qq.UploadHandlerXhr.prototype,{uploadAll:function(params){this._uploadAll(params);},getName:function(id){var file=this._files[id];var name=document.getElementById('mediamanager__upload_item'+id);if(name!=null){return name.value;}else{if(file!=null){return file.fileName!=null?file.fileName:file.name;}else{return null;}}},getSize:function(id){var file=this._files[id];if(file==null)return null;return file.fileSize!=null?file.fileSize:file.size;},_upload:function(id,params){var file=this._files[id],name=this.getName(id),size=this.getSize(id);if(name==null||size==null)return;this._loaded[id]=0;var xhr=this._xhrs[id]=new XMLHttpRequest();var self=this;xhr.upload.onprogress=function(e){if(e.lengthComputable){self._loaded[id]=e.loaded;self._options.onProgress(id,name,e.loaded,e.total);}};xhr.onreadystatechange=function(){if(xhr.readyState==4){self._onComplete(id,xhr);}};params=params||{};params['qqfile']=name;params['ow']=jQuery('.dw__ow').is(':checked');var queryString=qq.obj2url(params,this._options.action);xhr.open("POST",queryString,true);xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("X-File-Name",encodeURIComponent(name));xhr.setRequestHeader("Content-Type","application/octet-stream");xhr.send(file);},_uploadAll:function(params){jQuery(".qq-upload-spinner").each(function(i){jQuery(this).removeClass('hidden');});for(key in this._files){this.upload(key,params);}}});function substr_replace(str,replace,start,length){var a2,b1;a2=(start<0?str.length:0)+start;if(typeof length==='undefined'){length=str.length-a2;}else if(length<0&&start<0&&length<=start){length=0;}b1=(length<0?str.length:a2)+length;return str.substring(0,a2)+replace+str.substring(b1);}function bind(fnc){var Aps=Array.prototype.slice,static_args=Aps.call(arguments,1);return function(){return fnc.apply(this,static_args.concat(Aps.call(arguments,0)));};}function logError(e,file){if(window.console&&console.error){console.error('The error "%s: %s" occurred in file "%s". '+'If this is in a plugin try updating or disabling the plugin, '+'if this is in a template try updating the template or switching to the "dokuwiki" template.',e.name,e.message,file);if(e.stack){console.error(e.stack);}}}var timer={_cur_id:0,_handlers:{},execDispatch:function(id){timer._handlers[id]();},add:function(func,timeout){var id=++timer._cur_id;timer._handlers[id]=func;return window.setTimeout('timer.execDispatch('+id+')',timeout);}};function Delay(func,timeout){this.func=func;if(timeout){this.timeout=timeout;}}Delay.prototype={func:null,timeout:500,delTimer:function(){if(this.timer!==null){window.clearTimeout(this.timer);this.timer=null;}},start:function(){DEPRECATED('don\'t use the Delay object, use window.timeout with a callback instead');this.delTimer();var _this=this;this.timer=timer.add(function(){_this.exec.call(_this);},this.timeout);this._data={_this:arguments[0],_params:Array.prototype.slice.call(arguments,2)};},exec:function(){this.delTimer();this.func.call(this._data._this,this._data._params);}};var DokuCookie={data:{},name:'DOKU_PREFS',setValue:function(key,val){var text=[],_this=this;this.init();if(val===false){delete this.data[key];}else{val=val+"";this.data[key]=val;}jQuery.each(_this.data,function(key,val){if(_this.data.hasOwnProperty(key)){text.push(encodeURIComponent(key)+'#'+encodeURIComponent(val));}});jQuery.cookie(this.name,text.join('#'),{expires:365,path:DOKU_COOKIE_PARAM.path,secure:DOKU_COOKIE_PARAM.secure});},getValue:function(key,def){this.init();return this.data.hasOwnProperty(key)?this.data[key]:def;},init:function(){var text,parts,i;if(!jQuery.isEmptyObject(this.data)){return;}text=jQuery.cookie(this.name);if(text){parts=text.split('#');for(i=0;imax;};}$links.each(function(){var start,length,replace,nsL,nsR,eli,runaway;if(!too_big(this)){return;}nsL=this.textContent.indexOf('(');nsR=this.textContent.indexOf(')');eli=0;runaway=0;while((nsR-nsL>3)&&too_big(this)&&runaway++<500){if(eli!==0){if((eli-nsL)>(nsR-eli)){start=eli-2;length=2;}else{start=eli+1;length=1;}replace='';}else{start=Math.floor(nsL+((nsR-nsL)/2));length=1;replace='…';}this.textContent=substr_replace(this.textContent,replace,start,length);eli=this.textContent.indexOf('…');nsL=this.textContent.indexOf('(');nsR=this.textContent.indexOf(')');}});dw_qsearch.$outObj.find('li').css('overflow','hidden').css('text-overflow','ellipsis');}};jQuery.extend(dw_qsearch,overrides);if(!overrides.deferInit){dw_qsearch.init();}return dw_qsearch;};jQuery(function(){jQuery('#qsearch__in').dw_qsearch({output:'#qsearch__out'});});jQuery(function(){'use strict';var $searchForm=jQuery('.search-results-form');if(!$searchForm.length){return;}var $toggleAssistanceButton=jQuery(''+'';},renderWeek=function(d,m,y){var onejan=new Date(y,0,1),weekNum=Math.ceil((((new Date(y,m,d)-onejan)/86400000)+onejan.getDay()+1)/7);return''+weekNum+'';},renderRow=function(days,isRTL){return''+(isRTL?days.reverse():days).join('')+'';},renderBody=function(rows){return''+rows.join('')+'';},renderHead=function(opts){var i,arr=[];if(opts.showWeekNumber){arr.push('');}for(i=0;i<7;i++){arr.push(''+renderDayName(opts,i,true)+'');}return''+(opts.isRTL?arr.reverse():arr).join('')+'';},renderTitle=function(instance,c,year,month,refYear,randId){var i,j,arr,opts=instance._o,isMinYear=year===opts.minYear,isMaxYear=year===opts.maxYear,html='
      ',monthHtml,yearHtml,prev=true,next=true;for(arr=[],i=0;i<12;i++){arr.push('');}monthHtml='
      '+opts.i18n.months[month]+'
      ';if(isArray(opts.yearRange)){i=opts.yearRange[0];j=opts.yearRange[1]+1;}else{i=year-opts.yearRange;j=1+year+opts.yearRange;}for(arr=[];i=opts.minYear){arr.push('');}}yearHtml='
      '+year+opts.yearSuffix+'
      ';if(opts.showMonthAfterYear){html+=yearHtml+monthHtml;}else{html+=monthHtml+yearHtml;}if(isMinYear&&(month===0||opts.minMonth>=month)){prev=false;}if(isMaxYear&&(month===11||opts.maxMonth<=month)){next=false;}if(c===0){html+='';}if(c===(instance._o.numberOfMonths-1)){html+='';}return html+='
      ';},renderTable=function(opts,data,randId){return''+renderHead(opts)+renderBody(data)+'
      ';},Pikaday=function(options){var self=this,opts=self.config(options);self._onMouseDown=function(e){if(!self._v){return;}e=e||window.event;var target=e.target||e.srcElement;if(!target){return;}if(!hasClass(target,'is-disabled')){if(hasClass(target,'pika-button')&&!hasClass(target,'is-empty')&&!hasClass(target.parentNode,'is-disabled')){self.setDate(new Date(target.getAttribute('data-pika-year'),target.getAttribute('data-pika-month'),target.getAttribute('data-pika-day')));if(opts.bound){sto(function(){self.hide();if(opts.field){opts.field.blur();}},100);}}else if(hasClass(target,'pika-prev')){self.prevMonth();}else if(hasClass(target,'pika-next')){self.nextMonth();}}if(!hasClass(target,'pika-select')){if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;return false;}}else{self._c=true;}};self._onChange=function(e){e=e||window.event;var target=e.target||e.srcElement;if(!target){return;}if(hasClass(target,'pika-select-month')){self.gotoMonth(target.value);}else if(hasClass(target,'pika-select-year')){self.gotoYear(target.value);}};self._onKeyChange=function(e){e=e||window.event;if(self.isVisible()){switch(e.keyCode){case 13:case 27:opts.field.blur();break;case 37:e.preventDefault();self.adjustDate('subtract',1);break;case 38:self.adjustDate('subtract',7);break;case 39:self.adjustDate('add',1);break;case 40:self.adjustDate('add',7);break;}}};self._onInputChange=function(e){var date;if(e.firedBy===self){return;}if(hasMoment){date=moment(opts.field.value,opts.format,opts.formatStrict);date=(date&&date.isValid())?date.toDate():null;}else{date=new Date(Date.parse(opts.field.value));}if(isDate(date)){self.setDate(date);}if(!self._v){self.show();}};self._onInputFocus=function(){self.show();};self._onInputClick=function(){self.show();};self._onInputBlur=function(){var pEl=document.activeElement;do{if(hasClass(pEl,'pika-single')){return;}}while((pEl=pEl.parentNode));if(!self._c){self._b=sto(function(){self.hide();},50);}self._c=false;};self._onClick=function(e){e=e||window.event;var target=e.target||e.srcElement,pEl=target;if(!target){return;}if(!hasEventListeners&&hasClass(target,'pika-select')){if(!target.onchange){target.setAttribute('onchange','return;');addEvent(target,'change',self._onChange);}}do{if(hasClass(pEl,'pika-single')||pEl===opts.trigger){return;}}while((pEl=pEl.parentNode));if(self._v&&target!==opts.trigger&&pEl!==opts.trigger){self.hide();}};self.el=document.createElement('div');self.el.className='pika-single'+(opts.isRTL?' is-rtl':'')+(opts.theme?' '+opts.theme:'');addEvent(self.el,'mousedown',self._onMouseDown,true);addEvent(self.el,'touchend',self._onMouseDown,true);addEvent(self.el,'change',self._onChange);addEvent(document,'keydown',self._onKeyChange);if(opts.field){if(opts.container){opts.container.appendChild(self.el);}else if(opts.bound){document.body.appendChild(self.el);}else{opts.field.parentNode.insertBefore(self.el,opts.field.nextSibling);}addEvent(opts.field,'change',self._onInputChange);if(!opts.defaultDate){if(hasMoment&&opts.field.value){opts.defaultDate=moment(opts.field.value,opts.format).toDate();}else{opts.defaultDate=new Date(Date.parse(opts.field.value));}opts.setDefaultDate=true;}}var defDate=opts.defaultDate;if(isDate(defDate)){if(opts.setDefaultDate){self.setDate(defDate,true);}else{self.gotoDate(defDate);}}else{self.gotoDate(new Date());}if(opts.bound){this.hide();self.el.className+=' is-bound';addEvent(opts.trigger,'click',self._onInputClick);addEvent(opts.trigger,'focus',self._onInputFocus);addEvent(opts.trigger,'blur',self._onInputBlur);}else{this.show();}};Pikaday.prototype={config:function(options){if(!this._o){this._o=extend({},defaults,true);}var opts=extend(this._o,options,true);opts.isRTL=!!opts.isRTL;opts.field=(opts.field&&opts.field.nodeName)?opts.field:null;opts.theme=(typeof opts.theme)==='string'&&opts.theme?opts.theme:null;opts.bound=!!(opts.bound!==undefined?opts.field&&opts.bound:opts.field);opts.trigger=(opts.trigger&&opts.trigger.nodeName)?opts.trigger:opts.field;opts.disableWeekends=!!opts.disableWeekends;opts.disableDayFn=(typeof opts.disableDayFn)==='function'?opts.disableDayFn:null;var nom=parseInt(opts.numberOfMonths,10)||1;opts.numberOfMonths=nom>4?4:nom;if(!isDate(opts.minDate)){opts.minDate=false;}if(!isDate(opts.maxDate)){opts.maxDate=false;}if((opts.minDate&&opts.maxDate)&&opts.maxDate100){opts.yearRange=100;}}return opts;},toString:function(format){return!isDate(this._d)?'':hasMoment?moment(this._d).format(format||this._o.format):this._d.toDateString();},getMoment:function(){return hasMoment?moment(this._d):null;},setMoment:function(date,preventOnSelect){if(hasMoment&&moment.isMoment(date)){this.setDate(date.toDate(),preventOnSelect);}},getDate:function(){return isDate(this._d)?new Date(this._d.getTime()):new Date();},setDate:function(date,preventOnSelect){if(!date){this._d=null;if(this._o.field){this._o.field.value='';fireEvent(this._o.field,'change',{firedBy:this});}return this.draw();}if(typeof date==='string'){date=new Date(Date.parse(date));}if(!isDate(date)){return;}var min=this._o.minDate,max=this._o.maxDate;if(isDate(min)&&datemax){date=max;}this._d=new Date(date.getTime());setToStartOfDay(this._d);this.gotoDate(this._d);if(this._o.field){this._o.field.value=this.toString();fireEvent(this._o.field,'change',{firedBy:this});}if(!preventOnSelect&&typeof this._o.onSelect==='function'){this._o.onSelect.call(this,this.getDate());}},gotoDate:function(date){var newCalendar=true;if(!isDate(date)){return;}if(this.calendars){var firstVisibleDate=new Date(this.calendars[0].year,this.calendars[0].month,1),lastVisibleDate=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),visibleDate=date.getTime();lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);lastVisibleDate.setDate(lastVisibleDate.getDate()-1);newCalendar=(visibleDate=maxYear){this._y=maxYear;if(!isNaN(maxMonth)&&this._m>maxMonth){this._m=maxMonth;}}randId='pika-title-'+Math.random().toString(36).replace(/[^a-z]+/g,'').substr(0,2);for(var c=0;c'+renderTitle(this,c,this.calendars[c].year,this.calendars[c].month,this.calendars[0].year,randId)+this.render(this.calendars[c].year,this.calendars[c].month,randId)+'';}this.el.innerHTML=html;if(opts.bound){if(opts.field.type!=='hidden'){sto(function(){opts.trigger.focus();},1);}}if(typeof this._o.onDraw==='function'){this._o.onDraw(this);}if(opts.bound){opts.field.setAttribute('aria-label','Use the arrow keys to pick a date');}},adjustPosition:function(){var field,pEl,width,height,viewportWidth,viewportHeight,scrollTop,left,top,clientRect;if(this._o.container)return;this.el.style.position='absolute';field=this._o.trigger;pEl=field;width=this.el.offsetWidth;height=this.el.offsetHeight;viewportWidth=window.innerWidth||document.documentElement.clientWidth;viewportHeight=window.innerHeight||document.documentElement.clientHeight;scrollTop=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop;if(typeof field.getBoundingClientRect==='function'){clientRect=field.getBoundingClientRect();left=clientRect.left+window.pageXOffset;top=clientRect.bottom+window.pageYOffset;}else{left=pEl.offsetLeft;top=pEl.offsetTop+pEl.offsetHeight;while((pEl=pEl.offsetParent)){left+=pEl.offsetLeft;top+=pEl.offsetTop;}}if((this._o.reposition&&left+width>viewportWidth)||(this._o.position.indexOf('right')>-1&&left-width+field.offsetWidth>0)){left=left-width+field.offsetWidth;}if((this._o.reposition&&top+height>viewportHeight+scrollTop)||(this._o.position.indexOf('top')>-1&&top-height-field.offsetHeight>0)){top=top-height-field.offsetHeight;}this.el.style.left=left+'px';this.el.style.top=top+'px';},render:function(year,month,randId){var opts=this._o,now=new Date(),days=getDaysInMonth(year,month),before=new Date(year,month,1).getDay(),data=[],row=[];setToStartOfDay(now);if(opts.firstDay>0){before-=opts.firstDay;if(before<0){before+=7;}}var previousMonth=month===0?11:month-1,nextMonth=month===11?0:month+1,yearOfPreviousMonth=month===0?year-1:year,yearOfNextMonth=month===11?year+1:year,daysInPreviousMonth=getDaysInMonth(yearOfPreviousMonth,previousMonth);var cells=days+before,after=cells;while(after>7){after-=7;}cells+=7-after;for(var i=0,r=0;i=(days+before),dayNumber=1+(i-before),monthNumber=month,yearNumber=year,isStartRange=opts.startRange&&compareDates(opts.startRange,day),isEndRange=opts.endRange&&compareDates(opts.endRange,day),isInRange=opts.startRange&&opts.endRange&&opts.startRangeopts.maxDate)||(opts.disableWeekends&&isWeekend(day))||(opts.disableDayFn&&opts.disableDayFn(day));if(isEmpty){if(i'+LANG.plugins.edittable.unmerge_cells+'';}else{return'
      '+LANG.plugins.edittable.merge_cells+'
      ';}},disabled:function(){var selection=this.getSelected();var startRow=selection[0];var startCol=selection[1];var endRow=selection[2];var endCol=selection[3];return startRow===endRow&&startCol===endCol;}}}};};}(window.edittable));window.edittable=window.edittable||{};window.edittable_plugins=window.edittable_plugins||{};(function(edittable,edittable_plugins){'use strict';edittable.moveRow=function moveRow(movingRowIndexes,target,dmarray){var startIndex=movingRowIndexes[0];var endIndex=movingRowIndexes[movingRowIndexes.length-1];var moveForward=target1||meta[row][col].hasOwnProperty('colspan')&&meta[row][col].colspan>1){var merge={};merge.row=row;merge.col=col;merge.rowspan=meta[row][col].rowspan;merge.colspan=meta[row][col].colspan;merges.push(merge);}}}return merges;};edittable.isTargetInMerge=function isTargetInMerge(merges,target,direction){return merges.some(function(merge){return(merge[direction]1){jQuery('textarea.handsontableInput:not(:last)').remove();jQuery('textarea.handsontableInput').attr('id','handsontable__input');}},afterRemoveRow:function(index,amount){meta.splice(index,amount);},afterCreateCol:function(index,amount){for(var row=0;row0){v=1;}if(v<0){v=-1;}var h=c-lastselect.col;if(h>0){h=1;}if(h<0){h=-1;}if(v!==0){x=r;do{x+=v;if(!meta[x][c].hide){this.selectCell(x,c);return;}}while(x>0&&x0&&x0){this.alter('insert_row',undefined,missingRows,'paste');}if(missingCols>0){this.alter('insert_col',undefined,missingCols,'paste');}return true;}};if(window.JSINFO.plugins.edittable['default columnwidth']){handsontable_config.colWidths=window.JSINFO.plugins.edittable['default columnwidth'];}for(var plugin in edittable_plugins){if(edittable_plugins.hasOwnProperty(plugin)){if(typeof edittable_plugins[plugin].modifyHandsontableConfig==='function'){edittable_plugins[plugin].modifyHandsontableConfig(handsontable_config,$form);}}}$container.handsontable(handsontable_config);};jQuery(document).ready(edittable.loadEditor);}(window.edittable,window.edittable_plugins));window.addBtnActionNewTable=function addBtnActionNewTable($btn,props,edid){'use strict';$btn.click(function(){var editform=jQuery('#dw__editform')[0];var ed=jQuery('#'+edid)[0];function addField(name,val){var pos_field=document.createElement('textarea');pos_field.name='edittable__new['+name+']';pos_field.value=val;pos_field.style.display='none';editform.appendChild(pos_field);}var sel;if(window.DWgetSelection){sel=window.DWgetSelection(ed);}else{sel=window.getSelection(ed);}addField('pre',ed.value.substr(0,sel.start));addField('text',ed.value.substr(sel.start,sel.end-sel.start));addField('suf',ed.value.substr(sel.end));var range=document.createElement('input');range.name='range';range.value='0-0';range.type='hidden';editform.appendChild(range);var editbutton=document.createElement('input');editbutton.name='do[edit]';editbutton.type='submit';editbutton.style.display='none';editform.appendChild(editbutton);window.textChanged=false;editbutton.click();});return'click';};jQuery(function(){'use strict';var $editbutton=jQuery('.dokuwiki div.editbutton_table');if(!$editbutton.length){return;}$editbutton.show();var margin=0;var $tablediv=$editbutton.prev('div.table');if(!$tablediv.length){return;}margin+=parseFloat($tablediv.css('margin-bottom'));margin+=parseFloat($tablediv.find('table').css('margin-bottom'));margin+=1;$editbutton.css('margin-top',margin*-1);});jQuery(function(){const $extmgr=jQuery('#extension__manager');$extmgr.on('click','button.uninstall',function(e){if(!window.confirm(LANG.plugins.extension.reallydel)){e.preventDefault();return false;}return true;});$extmgr.on('click','a.extension_screenshot',function(e){e.preventDefault();const image_href=jQuery(this).attr("href");let $lightbox=jQuery('#plugin__extensionlightbox');if(!$lightbox.length){$lightbox=jQuery('

      '+LANG.plugins.extension.close+'

      ').appendTo(jQuery('body')).hide().on('click',function(){$lightbox.hide();});}$lightbox .show().find('div').html('');return false;});$extmgr.on('click','button.disable, button.enable',function(e){e.preventDefault();const $btn=jQuery(this);const $section=$btn.parents('section');$btn.attr('disabled','disabled');$btn.css('cursor','wait');jQuery.get(DOKU_BASE+'lib/exe/ajax.php',{call:'plugin_extension',ext:$section.data('ext'),act:'toggle',sectok:$btn.parents('form').find('input[name=sectok]').val()},function(html){$section.replaceWith(html);}).fail(function(data){$btn.css('cursor','').removeAttr('disabled');window.alert(data.responseText);});});if($extmgr.find('.plugins, .templates').hasClass('active')){const $extlist=jQuery('#extension__list');const $displayOpts=jQuery('

      ').appendTo($extmgr.find('.panelHeader'));const $label=jQuery('

      '+LANG.plugins.styling.loader+'
      ');$loader.css({'position':'absolute','width':'100%','height':'100%','top':0,'left':0,'z-index':5000,'background-color':'#fff','opacity':'0.7','color':'#000','font-size':'2.5em','text-align':'center','line-height':1.5,'padding-top':'2em'});target.jQuery('body').append($loader);}setTimeout(function(){var now=new Date().getTime();$style.attr('href',DOKU_BASE+'lib/exe/css.php?preview=1&tseed='+now);},500);}var doreload=1;var $styling_plugin=jQuery('#plugin__styling');if(!$styling_plugin.length){if(DokuCookie.getValue('styling_plugin')==1){applyPreview(window);}return;}if(!$styling_plugin.hasClass('ispopup')){var $form=$styling_plugin.find('form.styling').first();var $btn=jQuery('');$form.prepend($btn);$btn.on('click',function(e){var windowFeatures="menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500";window.open(DOKU_BASE+'lib/plugins/styling/popup.php','styling_popup',windowFeatures);e.preventDefault();e.stopPropagation();}).wrap('

      ');return;}window.onunload=function(e){if(doreload){DokuCookie.setValue('styling_plugin',0);if(window.opener)window.opener.document.location.reload();}return null;};jQuery(':button').click(function(e){doreload=false;});if(window.opener)applyPreview(window.opener);DokuCookie.setValue('styling_plugin',1);});jQuery(function(){jQuery('#usrmgr__del').on('click',function(){return confirm(LANG.del_confirm);});});jQuery(function(){dw_locktimer.init(840,1);}); +var DOKU_BASE = '/'; +var DOKU_TPL = '/lib/tpl/sprintdoc/'; +var DOKU_COOKIE_PARAM = { + "path": "\/", + "secure": true +}; +Object.defineProperty(window, 'DOKU_UHN', { + get: function () { + console.warn('Using DOKU_UHN is deprecated. Please use JSINFO.useHeadingNavigation instead'); + return JSINFO.useHeadingNavigation; + } +}); +Object.defineProperty(window, 'DOKU_UHC', { + get: function () { + console.warn('Using DOKU_UHC is deprecated. Please use JSINFO.useHeadingContent instead'); + return JSINFO.useHeadingContent; + } +}); +LANG = { + "search_toggle_tools": "Suchwerkzeuge umschalten", + "willexpire": "Die Sperre zur Bearbeitung dieser Seite l\u00e4uft in einer Minute ab.\\nUm Bearbeitungskonflikte zu vermeiden, solltest du sie durch einen Klick auf den Vorschau-Knopf verl\u00e4ngern.", + "notsavedyet": "Nicht gespeicherte \u00c4nderungen gehen verloren!", + "searchmedia": "Suche nach Dateien", + "keepopen": "Fenster nach Auswahl nicht schlie\u00dfen", + "hidedetails": "Details ausblenden", + "mediatitle": "Link-Eigenschaften", + "mediadisplay": "Linktyp", + "mediaalign": "Ausrichtung", + "mediasize": "Bildgr\u00f6\u00dfe", + "mediatarget": "Linkziel", + "mediaclose": "Schlie\u00dfen", + "mediainsert": "Einf\u00fcgen", + "mediadisplayimg": "Bild anzeigen", + "mediadisplaylnk": "Nur den Link anzeigen", + "mediasmall": "Bild in kleiner Aufl\u00f6sung", + "mediamedium": "Bild in mittlerer Aufl\u00f6sung", + "medialarge": "Bild in hoher Aufl\u00f6sung", + "mediaoriginal": "Originalaufl\u00f6sung", + "medialnk": "Link zur Detailseite", + "mediadirect": "Direkter Link zum Original", + "medianolnk": "Kein Link", + "medianolink": "Bild nicht verlinken", + "medialeft": "Bild linksb\u00fcndig ausrichten.", + "mediaright": "Bild rechtsb\u00fcndig ausrichten.", + "mediacenter": "Bild horizontal zentriert ausrichten", + "medianoalign": "Bild ohne bestimmte Ausrichtung lassen", + "nosmblinks": "Das Verlinken von Windows-Freigaben funktioniert nur im Microsoft Internet-Explorer.\\nDer Link kann jedoch zum Einf\u00fcgen kopiert werden.", + "linkwiz": "Link-Assistent", + "linkto": "Link zu:", + "del_confirm": "Die ausgew\u00e4hlten Dateien wirklich l\u00f6schen?", + "restore_confirm": "Wirklich diese Version wiederherstellen?", + "media_diff": "Unterschiede anzeigen:", + "media_diff_both": "Nebeneinander", + "media_diff_opacity": "\u00dcberblenden", + "media_diff_portions": "\u00dcbergang", + "media_select": "Dateien ausw\u00e4hlen\u2026", + "media_upload_btn": "Hochladen", + "media_done_btn": "Fertig", + "media_drop": "Dateien hier hinziehen um sie hochzuladen", + "media_cancel": "Entfernen", + "media_overwrt": "Existierende Dateien \u00fcberschreiben", + "data_insecure": "WARNING: It seems your data directory is not properly secured. Please read about Web Access Security in DokuWiki<\/a>.", + "plugins": { + "edittable": { + "toggle_header": "Kopfzeile an\/aus", + "align_left": "Links ausrichten", + "align_center": "Mittig ausrichten", + "align_right": "Rechts ausrichten", + "confirmdeleterow": "Zeile wirklich l\u00f6schen?", + "confirmdeletecol": "Spalte wirklich l\u00f6schen?", + "row_above": "Zeile dar\u00fcber einf\u00fcgen", + "remove_row": "Zeile entfernen", + "row_below": "Zeile darunter einf\u00fcgen", + "col_left": "Spalte links hinzuf\u00fcgen", + "remove_col": "Spalte entfernen", + "col_right": "Spalte rechts hinzuf\u00fcgen", + "merge_cells": "Zellen verbinden", + "unmerge_cells": "Zellen trennen" + }, + "extension": { + "reallydel": "M\u00f6chtest du diese Erweiterung wirklich deinstallieren", + "display_viewoptions": "Einstellungen anzeigen:", + "display_enabled": "aktiviert", + "display_disabled": "deaktiviert", + "display_updatable": "Update verf\u00fcgbar", + "close": "Click to close", + "filter": "Show updatable extensions only" + }, + "logviewer": { + "filter": "Protokolleintr\u00e4ge filtern" + }, + "styling": { + "loader": "Vorschau l\u00e4dt...
      Falls diese Nachricht nicht verschwindet, k\u00f6nnten deine Werte fehlerhaft sein", + "popup": "\u00d6ffne als Popup" + } + } +}; +var toolbar = [{ + "type": "format", + "title": "Fetter Text", + "icon": "bold.png", + "key": "b", + "open": "**", + "close": "**", + "block": false +}, { + "type": "format", + "title": "Kursiver Text", + "icon": "italic.png", + "key": "i", + "open": "\/\/", + "close": "\/\/", + "block": false +}, { + "type": "format", + "title": "Unterstrichener Text", + "icon": "underline.png", + "key": "u", + "open": "__", + "close": "__", + "block": false +}, { + "type": "format", + "title": "Code Text", + "icon": "mono.png", + "key": "m", + "open": "''", + "close": "''", + "block": false +}, { + "type": "format", + "title": "Durchgestrichener Text", + "icon": "strike.png", + "key": "d", + "open": "", + "close": "<\/del>", + "block": false +}, { + "type": "autohead", + "title": "\u00dcberschrift auf selber Ebene", + "icon": "hequal.png", + "key": "8", + "text": "\u00dcberschrift", + "mod": 0, + "block": true +}, { + "type": "autohead", + "title": "\u00dcberschrift eine Ebene runter", + "icon": "hminus.png", + "key": "9", + "text": "\u00dcberschrift", + "mod": 1, + "block": true +}, { + "type": "autohead", + "title": "\u00dcberschrift eine Ebene h\u00f6her", + "icon": "hplus.png", + "key": "0", + "text": "\u00dcberschrift", + "mod": -1, + "block": true +}, { + "type": "picker", + "title": "W\u00e4hle eine \u00dcberschrift", + "icon": "h.png", + "class": "pk_hl", + "list": [{ + "type": "format", + "title": "Level 1 \u00dcberschrift", + "icon": "h1.png", + "key": "1", + "open": "====== ", + "close": " ======\\n" + }, { + "type": "format", + "title": "Level 2 \u00dcberschrift", + "icon": "h2.png", + "key": "2", + "open": "===== ", + "close": " =====\\n" + }, { + "type": "format", + "title": "Level 3 \u00dcberschrift", + "icon": "h3.png", + "key": "3", + "open": "==== ", + "close": " ====\\n" + }, { + "type": "format", + "title": "Level 4 \u00dcberschrift", + "icon": "h4.png", + "key": "4", + "open": "=== ", + "close": " ===\\n" + }, { + "type": "format", + "title": "Level 5 \u00dcberschrift", + "icon": "h5.png", + "key": "5", + "open": "== ", + "close": " ==\\n" + }], + "block": true +}, { + "type": "linkwiz", + "title": "Interner Link", + "icon": "link.png", + "key": "l", + "open": "[[", + "close": "]]", + "block": false +}, { + "type": "format", + "title": "Externer Link", + "icon": "linkextern.png", + "open": "[[", + "close": "]]", + "sample": "http:\/\/example.com|Externer Link", + "block": false +}, { + "type": "formatln", + "title": "Nummerierter Listenpunkt", + "icon": "ol.png", + "open": " - ", + "close": "", + "key": "-", + "block": true +}, { + "type": "formatln", + "title": "Listenpunkt", + "icon": "ul.png", + "open": " * ", + "close": "", + "key": ".", + "block": true +}, { + "type": "insert", + "title": "Horizontale Linie", + "icon": "hr.png", + "insert": "\\n----\\n", + "block": true +}, { + "type": "mediapopup", + "title": "Bilder und andere Dateien hinzuf\u00fcgen", + "icon": "image.png", + "url": "lib\/exe\/mediamanager.php?ns=", + "name": "mediaselect", + "options": "width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes", + "block": false +}, { + "type": "picker", + "title": "Smileys", + "icon": "smiley.png", + "list": { + "8-)": "cool.svg", + "8-O": "eek.svg", + "8-o": "eek.svg", + ":-(": "sad.svg", + ":-)": "smile.svg", + "=)": "smile2.svg", + ":-\/": "doubt.svg", + ":-\\": "doubt2.svg", + ":-?": "confused.svg", + ":-D": "biggrin.svg", + ":-P": "razz.svg", + ":-o": "surprised.svg", + ":-O": "surprised.svg", + ":-x": "silenced.svg", + ":-X": "silenced.svg", + ":-|": "neutral.svg", + ";-)": "wink.svg", + "m(": "facepalm.svg", + "^_^": "fun.svg", + ":?:": "question.svg", + ":!:": "exclaim.svg", + "LOL": "lol.svg", + "FIXME": "fixme.svg", + "DELETEME": "deleteme.svg" + }, + "icobase": "smileys", + "block": false +}, { + "type": "picker", + "title": "Sonderzeichen", + "icon": "chars.png", + "list": ["\u00c0", "\u00e0", "\u00c1", "\u00e1", "\u00c2", "\u00e2", "\u00c3", "\u00e3", "\u00c4", "\u00e4", "\u01cd", "\u01ce", "\u0102", "\u0103", "\u00c5", "\u00e5", "\u0100", "\u0101", "\u0104", "\u0105", "\u00c6", "\u00e6", "\u0106", "\u0107", "\u00c7", "\u00e7", "\u010c", "\u010d", "\u0108", "\u0109", "\u010a", "\u010b", "\u00d0", "\u0111", "\u00f0", "\u010e", "\u010f", "\u00c8", "\u00e8", "\u00c9", "\u00e9", "\u00ca", "\u00ea", "\u00cb", "\u00eb", "\u011a", "\u011b", "\u0112", "\u0113", "\u0116", "\u0117", "\u0118", "\u0119", "\u0122", "\u0123", "\u011c", "\u011d", "\u011e", "\u011f", "\u0120", "\u0121", "\u0124", "\u0125", "\u00cc", "\u00ec", "\u00cd", "\u00ed", "\u00ce", "\u00ee", "\u00cf", "\u00ef", "\u01cf", "\u01d0", "\u012a", "\u012b", "\u0130", "\u0131", "\u012e", "\u012f", "\u0134", "\u0135", "\u0136", "\u0137", "\u0139", "\u013a", "\u013b", "\u013c", "\u013d", "\u013e", "\u0141", "\u0142", "\u013f", "\u0140", "\u0143", "\u0144", "\u00d1", "\u00f1", "\u0145", "\u0146", "\u0147", "\u0148", "\u00d2", "\u00f2", "\u00d3", "\u00f3", "\u00d4", "\u00f4", "\u00d5", "\u00f5", "\u00d6", "\u00f6", "\u01d1", "\u01d2", "\u014c", "\u014d", "\u0150", "\u0151", "\u0152", "\u0153", "\u00d8", "\u00f8", "\u0154", "\u0155", "\u0156", "\u0157", "\u0158", "\u0159", "\u015a", "\u015b", "\u015e", "\u015f", "\u0160", "\u0161", "\u015c", "\u015d", "\u0162", "\u0163", "\u0164", "\u0165", "\u00d9", "\u00f9", "\u00da", "\u00fa", "\u00db", "\u00fb", "\u00dc", "\u00fc", "\u01d3", "\u01d4", "\u016c", "\u016d", "\u016a", "\u016b", "\u016e", "\u016f", "\u01d6", "\u01d8", "\u01da", "\u01dc", "\u0172", "\u0173", "\u0170", "\u0171", "\u0174", "\u0175", "\u00dd", "\u00fd", "\u0178", "\u00ff", "\u0176", "\u0177", "\u0179", "\u017a", "\u017d", "\u017e", "\u017b", "\u017c", "\u00de", "\u00fe", "\u00df", "\u0126", "\u0127", "\u00bf", "\u00a1", "\u00a2", "\u00a3", "\u00a4", "\u00a5", "\u20ac", "\u00a6", "\u00a7", "\u00aa", "\u00ac", "\u00af", "\u00b0", "\u00b1", "\u00f7", "\u2030", "\u00bc", "\u00bd", "\u00be", "\u00b9", "\u00b2", "\u00b3", "\u00b5", "\u00b6", "\u2020", "\u2021", "\u00b7", "\u2022", "\u00ba", "\u2200", "\u2202", "\u2203", "\u018f", "\u0259", "\u2205", "\u2207", "\u2208", "\u2209", "\u220b", "\u220f", "\u2211", "\u203e", "\u2212", "\u2217", "\u00d7", "\u2044", "\u221a", "\u221d", "\u221e", "\u2220", "\u2227", "\u2228", "\u2229", "\u222a", "\u222b", "\u2234", "\u223c", "\u2245", "\u2248", "\u2260", "\u2261", "\u2264", "\u2265", "\u2282", "\u2283", "\u2284", "\u2286", "\u2287", "\u2295", "\u2297", "\u22a5", "\u22c5", "\u25ca", "\u2118", "\u2111", "\u211c", "\u2135", "\u2660", "\u2663", "\u2665", "\u2666", "\u03b1", "\u03b2", "\u0393", "\u03b3", "\u0394", "\u03b4", "\u03b5", "\u03b6", "\u03b7", "\u0398", "\u03b8", "\u03b9", "\u03ba", "\u039b", "\u03bb", "\u03bc", "\u039e", "\u03be", "\u03a0", "\u03c0", "\u03c1", "\u03a3", "\u03c3", "\u03a4", "\u03c4", "\u03c5", "\u03a6", "\u03c6", "\u03c7", "\u03a8", "\u03c8", "\u03a9", "\u03c9", "\u2605", "\u2606", "\u260e", "\u261a", "\u261b", "\u261c", "\u261d", "\u261e", "\u261f", "\u2639", "\u263a", "\u2714", "\u2718", "\u201e", "\u201c", "\u201d", "\u201a", "\u2018", "\u2019", "\u00ab", "\u00bb", "\u2039", "\u203a", "\u2014", "\u2013", "\u2026", "\u2190", "\u2191", "\u2192", "\u2193", "\u2194", "\u21d0", "\u21d1", "\u21d2", "\u21d3", "\u21d4", "\u00a9", "\u2122", "\u00ae", "\u2032", "\u2033", "[", "]", "{", "}", "~", "(", ")", "%", "\u00a7", "$", "#", "|", "@"], + "block": false +}, { + "type": "signature", + "title": "Unterschrift einf\u00fcgen", + "icon": "sig.png", + "key": "y", + "block": false +}, { + "title": "Neue Tabelle einf\u00fcgen", + "type": "NewTable", + "icon": "..\/..\/plugins\/edittable\/images\/add_table.png", + "block": true +}, { + "type": "picker", + "title": "Wrap-Plugin", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/picker.png", + "list": [{ + "type": "format", + "title": "Spalten", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/column.png", + "open": "\\n\\n", + "close": "\\n<\/WRAP>\\n\\n\\n\\n<\/WRAP>\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "einfache zentrierte Box", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/box.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Info-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/info.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Tip-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/tip.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Wichtig-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/important.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Warn-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/alert.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Hilfe-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/help.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Download-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/download.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "format", + "title": "Zu-Erledigen-Box", + "icon": "..\/..\/plugins\/wrap\/images\/note\/16\/todo.png", + "open": "\\n", + "close": "\\n<\/WRAP>\\n" + }, { + "type": "insert", + "title": "Floats beseitigen", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/clear.png", + "insert": "\\n" + }, { + "type": "format", + "title": "wichtig", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/em.png", + "open": "", + "close": "<\/wrap>" + }, { + "type": "format", + "title": "markieren", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/hi.png", + "open": "", + "close": "<\/wrap>" + }, { + "type": "format", + "title": "weniger wichtig", + "icon": "..\/..\/plugins\/wrap\/images\/toolbar\/lo.png", + "open": "", + "close": "<\/wrap>" + }] +}]; +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof exports === 'object') { + factory(require('jquery')); + } else { + factory(jQuery); + } +}(function ($) { + var pluses = /\+/g; + + function encode(s) { + return config.raw ? s : encodeURIComponent(s); + } + + function decode(s) { + return config.raw ? s : decodeURIComponent(s); + } + + function stringifyCookieValue(value) { + return encode(config.json ? JSON.stringify(value) : String(value)); + } + + function parseCookieValue(s) { + if (s.indexOf('"') === 0) { + s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); + } + try { + s = decodeURIComponent(s.replace(pluses, ' ')); + return config.json ? JSON.parse(s) : s; + } catch (e) { } + } + + function read(s, converter) { + var value = config.raw ? s : parseCookieValue(s); + return $.isFunction(converter) ? converter(value) : value; + } + var config = $.cookie = function (key, value, options) { + if (value !== undefined && !$.isFunction(value)) { + options = $.extend({}, config.defaults, options); + if (typeof options.expires === 'number') { + var days = options.expires, + t = options.expires = new Date(); + t.setTime(+t + days * 864e+5); + } + return (document.cookie = [encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join('')); + } + var result = key ? undefined : {}; + var cookies = document.cookie ? document.cookie.split('; ') : []; + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + var name = decode(parts.shift()); + var cookie = parts.join('='); + if (key && key === name) { + result = read(cookie, value); + break; + } + if (!key && (cookie = read(cookie)) !== undefined) { + result[name] = cookie; + } + } + return result; + }; + config.defaults = {}; + $.removeCookie = function (key, options) { + if ($.cookie(key) === undefined) { + return false; + } + $.cookie(key, '', $.extend({}, options, { + expires: -1 + })); + return !$.cookie(key); + }; +})); +(function (factory) { + "use strict"; + if (typeof define === "function" && define.amd) { + define(["../widgets/datepicker"], factory); + } else { + factory(jQuery.datepicker); + } +})(function (datepicker) { + "use strict"; + datepicker.regional.de = { + closeText: "Schließen", + prevText: "Zurück", + nextText: "Vor", + currentText: "Heute", + monthNames: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], + monthNamesShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"], + dayNames: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], + dayNamesShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], + dayNamesMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], + weekHeader: "KW", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" + }; + datepicker.setDefaults(datepicker.regional.de); + return datepicker.regional.de; +}); +var qq = qq || {}; +qq.extend = function (first, second) { + for (var prop in second) { + first[prop] = second[prop]; + } +}; +qq.indexOf = function (arr, elt, from) { + if (arr.indexOf) return arr.indexOf(elt, from); + from = from || 0; + var len = arr.length; + if (from < 0) from += len; + for (; from < len; from++) { + if (from in arr && arr[from] === elt) { + return from; + } + } + return -1; +}; +qq.getUniqueId = (function () { + var id = 0; + return function () { + return id++; + }; +})(); +qq.attach = function (element, type, fn) { + if (element.addEventListener) { + element.addEventListener(type, fn, false); + } else if (element.attachEvent) { + element.attachEvent('on' + type, fn); + } +}; +qq.detach = function (element, type, fn) { + if (element.removeEventListener) { + element.removeEventListener(type, fn, false); + } else if (element.attachEvent) { + element.detachEvent('on' + type, fn); + } +}; +qq.preventDefault = function (e) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + } +}; +qq.insertBefore = function (a, b) { + b.parentNode.insertBefore(a, b); +}; +qq.remove = function (element) { + element.parentNode.removeChild(element); +}; +qq.contains = function (parent, descendant) { + if (parent == descendant) return true; + if (parent.contains) { + return parent.contains(descendant); + } else { + return !!(descendant.compareDocumentPosition(parent) & 8); + } +}; +qq.toElement = (function () { + var div = document.createElement('div'); + return function (html) { + div.innerHTML = html; + var element = div.firstChild; + div.removeChild(element); + return element; + }; +})(); +qq.css = function (element, styles) { + if (styles.opacity != null) { + if (typeof element.style.opacity != 'string' && typeof (element.filters) != 'undefined') { + styles.filter = 'alpha(opacity=' + Math.round(100 * styles.opacity) + ')'; + } + } + qq.extend(element.style, styles); +}; +qq.hasClass = function (element, name) { + var re = new RegExp('(^| )' + name + '( |$)'); + return re.test(element.className); +}; +qq.addClass = function (element, name) { + if (!qq.hasClass(element, name)) { + element.className += ' ' + name; + } +}; +qq.removeClass = function (element, name) { + var re = new RegExp('(^| )' + name + '( |$)'); + element.className = element.className.replace(re, ' ').replace(/^\s+|\s+$/g, ""); +}; +qq.setText = function (element, text) { + element.innerText = text; + element.textContent = text; +}; +qq.children = function (element) { + var children = [], + child = element.firstChild; + while (child) { + if (child.nodeType == 1) { + children.push(child); + } + child = child.nextSibling; + } + return children; +}; +qq.getByClass = function (element, className) { + if (element.querySelectorAll) { + return element.querySelectorAll('.' + className); + } + var result = []; + var candidates = element.getElementsByTagName("*"); + var len = candidates.length; + for (var i = 0; i < len; i++) { + if (qq.hasClass(candidates[i], className)) { + result.push(candidates[i]); + } + } + return result; +}; +qq.obj2url = function (obj, temp, prefixDone) { + var uristrings = [], + prefix = '&', + add = function (nextObj, i) { + var nextTemp = temp ? (/\[\]$/.test(temp)) ? temp : temp + '[' + i + ']' : i; + if ((nextTemp != 'undefined') && (i != 'undefined')) { + uristrings.push((typeof nextObj === 'object') ? qq.obj2url(nextObj, nextTemp, true) : (Object.prototype.toString.call(nextObj) === '[object Function]') ? encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj()) : encodeURIComponent(nextTemp) + '=' + encodeURIComponent(nextObj)); + } + }; + if (!prefixDone && temp) { + prefix = (/\?/.test(temp)) ? (/\?$/.test(temp)) ? '' : '&' : '?'; + uristrings.push(temp); + uristrings.push(qq.obj2url(obj)); + } else if ((Object.prototype.toString.call(obj) === '[object Array]') && (typeof obj != 'undefined')) { + for (var i = 0, len = obj.length; i < len; ++i) { + add(obj[i], i); + } + } else if ((typeof obj != 'undefined') && (obj !== null) && (typeof obj === "object")) { + for (var i in obj) { + if (obj.hasOwnProperty(i) && typeof obj[i] != 'function') { + add(obj[i], i); + } + } + } else { + uristrings.push(encodeURIComponent(temp) + '=' + encodeURIComponent(obj)); + } + return uristrings.join(prefix).replace(/^&/, '').replace(/%20/g, '+'); +}; +var qq = qq || {}; +qq.FileUploaderBasic = function (o) { + this._options = { + debug: false, + action: '/server/upload', + params: {}, + button: null, + multiple: true, + maxConnections: 3, + allowedExtensions: [], + sizeLimit: 0, + minSizeLimit: 0, + onSubmit: function (id, fileName) { }, + onProgress: function (id, fileName, loaded, total) { }, + onComplete: function (id, fileName, responseJSON) { }, + onCancel: function (id, fileName) { }, + messages: { + typeError: "{file} has invalid extension. Only {extensions} are allowed.", + sizeError: "{file} is too large, maximum file size is {sizeLimit}.", + minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.", + emptyError: "{file} is empty, please select files again without it.", + onLeave: "The files are being uploaded, if you leave now the upload will be cancelled." + }, + showMessage: function (message) { + alert(message); + } + }; + qq.extend(this._options, o); + this._filesInProgress = 0; + this._handler = this._createUploadHandler(); + if (this._options.button) { + this._button = this._createUploadButton(this._options.button); + } + this._preventLeaveInProgress(); +}; +qq.FileUploaderBasic.prototype = { + setParams: function (params) { + this._options.params = params; + }, + getInProgress: function () { + return this._filesInProgress; + }, + _createUploadButton: function (element) { + var self = this; + return new qq.UploadButton({ + element: element, + multiple: this._options.multiple && qq.UploadHandlerXhr.isSupported(), + onChange: function (input) { + self._onInputChange(input); + } + }); + }, + _createUploadHandler: function () { + var self = this, + handlerClass; + if (qq.UploadHandlerXhr.isSupported()) { + handlerClass = 'UploadHandlerXhr'; + } else { + handlerClass = 'UploadHandlerForm'; + } + var handler = new qq[handlerClass]({ + debug: this._options.debug, + action: this._options.action, + maxConnections: this._options.maxConnections, + onProgress: function (id, fileName, loaded, total) { + self._onProgress(id, fileName, loaded, total); + self._options.onProgress(id, fileName, loaded, total); + }, + onComplete: function (id, fileName, result) { + self._onComplete(id, fileName, result); + self._options.onComplete(id, fileName, result); + }, + onCancel: function (id, fileName) { + self._onCancel(id, fileName); + self._options.onCancel(id, fileName); + } + }); + return handler; + }, + _preventLeaveInProgress: function () { + var self = this; + qq.attach(window, 'beforeunload', function (e) { + if (!self._filesInProgress) { + return; + } + var e = e || window.event; + e.returnValue = self._options.messages.onLeave; + return self._options.messages.onLeave; + }); + }, + _onSubmit: function (id, fileName) { + this._filesInProgress++; + }, + _onProgress: function (id, fileName, loaded, total) { }, + _onComplete: function (id, fileName, result) { + this._filesInProgress--; + if (result.error) { + this._options.showMessage(result.error); + } + }, + _onCancel: function (id, fileName) { + this._filesInProgress--; + }, + _onInputChange: function (input) { + if (this._handler instanceof qq.UploadHandlerXhr) { + this._uploadFileList(input.files); + } else { + if (this._validateFile(input)) { + this._uploadFile(input); + } + } + this._button.reset(); + }, + _uploadFileList: function (files) { + for (var i = 0; i < files.length; i++) { + if (!this._validateFile(files[i])) { + return; + } + } + for (var i = 0; i < files.length; i++) { + this._uploadFile(files[i]); + } + }, + _uploadFile: function (fileContainer) { + var id = this._handler.add(fileContainer); + var fileName = this._handler.getName(id); + if (this._options.onSubmit(id, fileName) !== false) { + this._onSubmit(id, fileName); + this._handler.upload(id, this._options.params); + } + }, + _validateFile: function (file) { + var name, size; + if (file.value) { + name = file.value.replace(/.*(\/|\\)/, ""); + } else { + name = file.fileName != null ? file.fileName : file.name; + size = file.fileSize != null ? file.fileSize : file.size; + } + if (!this._isAllowedExtension(name)) { + this._error('typeError', name); + return false; + } else if (size === 0) { + this._error('emptyError', name); + return false; + } else if (size && this._options.sizeLimit && size > this._options.sizeLimit) { + this._error('sizeError', name); + return false; + } else if (size && size < this._options.minSizeLimit) { + this._error('minSizeError', name); + return false; + } + return true; + }, + _error: function (code, fileName) { + var message = this._options.messages[code]; + + function r(name, replacement) { + message = message.replace(name, replacement); + } + r('{file}', this._formatFileName(fileName)); + r('{extensions}', this._options.allowedExtensions.join(', ')); + r('{sizeLimit}', this._formatSize(this._options.sizeLimit)); + r('{minSizeLimit}', this._formatSize(this._options.minSizeLimit)); + this._options.showMessage(message); + }, + _formatFileName: function (name) { + if (name.length > 33) { + name = name.slice(0, 19) + '...' + name.slice(-13); + } + return name; + }, + _isAllowedExtension: function (fileName) { + var ext = (-1 !== fileName.indexOf('.')) ? fileName.replace(/.*[.]/, '').toLowerCase() : ''; + var allowed = this._options.allowedExtensions; + if (!allowed.length) { + return true; + } + for (var i = 0; i < allowed.length; i++) { + if (allowed[i].toLowerCase() == ext) { + return true; + } + } + return false; + }, + _formatSize: function (bytes) { + var i = -1; + do { + bytes = bytes / 1024; + i++; + } while (bytes > 99); + return Math.max(bytes, 0.1).toFixed(1) + ['kB', 'MB', 'GB', 'TB', 'PB', 'EB'][i]; + } +}; +qq.FileUploader = function (o) { + qq.FileUploaderBasic.apply(this, arguments); + qq.extend(this._options, { + element: null, + listElement: null, + template: '
      ' + '
      Drop files here to upload
      ' + '
      Upload a file
      ' + '
        ' + '
        ', + fileTemplate: '
      • ' + '' + '' + '' + 'Cancel' + 'Failed' + '
      • ', + classes: { + button: 'qq-upload-button', + drop: 'qq-upload-drop-area', + dropActive: 'qq-upload-drop-area-active', + list: 'qq-upload-list', + file: 'qq-upload-file', + spinner: 'qq-upload-spinner', + size: 'qq-upload-size', + cancel: 'qq-upload-cancel', + success: 'qq-upload-success', + fail: 'qq-upload-fail' + } + }); + qq.extend(this._options, o); + this._element = this._options.element; + this._element.innerHTML = this._options.template; + this._listElement = this._options.listElement || this._find(this._element, 'list'); + this._classes = this._options.classes; + this._button = this._createUploadButton(this._find(this._element, 'button')); + this._bindCancelEvent(); + this._setupDragDrop(); +}; +qq.extend(qq.FileUploader.prototype, qq.FileUploaderBasic.prototype); +qq.extend(qq.FileUploader.prototype, { + _find: function (parent, type) { + var element = qq.getByClass(parent, this._options.classes[type])[0]; + if (!element) { + throw new Error('element not found ' + type); + } + return element; + }, + _setupDragDrop: function () { + var self = this, + dropArea = this._find(this._element, 'drop'); + var dz = new qq.UploadDropZone({ + element: dropArea, + onEnter: function (e) { + qq.addClass(dropArea, self._classes.dropActive); + e.stopPropagation(); + }, + onLeave: function (e) { + e.stopPropagation(); + }, + onLeaveNotDescendants: function (e) { + qq.removeClass(dropArea, self._classes.dropActive); + }, + onDrop: function (e) { + dropArea.style.display = 'none'; + qq.removeClass(dropArea, self._classes.dropActive); + self._uploadFileList(e.dataTransfer.files); + } + }); + dropArea.style.display = 'none'; + qq.attach(document, 'dragenter', function (e) { + if (!dz._isValidFileDrag(e)) return; + dropArea.style.display = 'block'; + }); + qq.attach(document, 'dragleave', function (e) { + if (!dz._isValidFileDrag(e)) return; + var relatedTarget = document.elementFromPoint(e.clientX, e.clientY); + if (!relatedTarget || relatedTarget.nodeName == "HTML") { + dropArea.style.display = 'none'; + } + }); + }, + _onSubmit: function (id, fileName) { + qq.FileUploaderBasic.prototype._onSubmit.apply(this, arguments); + this._addToList(id, fileName); + }, + _onProgress: function (id, fileName, loaded, total) { + qq.FileUploaderBasic.prototype._onProgress.apply(this, arguments); + var item = this._getItemByFileId(id); + var size = this._find(item, 'size'); + size.style.display = 'inline'; + var text; + if (loaded != total) { + text = Math.round(loaded / total * 100) + '% from ' + this._formatSize(total); + } else { + text = this._formatSize(total); + } + qq.setText(size, text); + }, + _onComplete: function (id, fileName, result) { + qq.FileUploaderBasic.prototype._onComplete.apply(this, arguments); + var item = this._getItemByFileId(id); + qq.remove(this._find(item, 'cancel')); + qq.remove(this._find(item, 'spinner')); + if (result.success) { + qq.addClass(item, this._classes.success); + } else { + qq.addClass(item, this._classes.fail); + } + }, + _addToList: function (id, fileName) { + var item = qq.toElement(this._options.fileTemplate); + item.qqFileId = id; + var fileElement = this._find(item, 'file'); + qq.setText(fileElement, this._formatFileName(fileName)); + this._find(item, 'size').style.display = 'none'; + this._listElement.appendChild(item); + }, + _getItemByFileId: function (id) { + var item = this._listElement.firstChild; + while (item) { + if (item.qqFileId == id) return item; + item = item.nextSibling; + } + }, + _bindCancelEvent: function () { + var self = this, + list = this._listElement; + qq.attach(list, 'click', function (e) { + e = e || window.event; + var target = e.target || e.srcElement; + if (qq.hasClass(target, self._classes.cancel)) { + qq.preventDefault(e); + var item = target.parentNode; + self._handler.cancel(item.qqFileId); + qq.remove(item); + } + }); + } +}); +qq.UploadDropZone = function (o) { + this._options = { + element: null, + onEnter: function (e) { }, + onLeave: function (e) { }, + onLeaveNotDescendants: function (e) { }, + onDrop: function (e) { } + }; + qq.extend(this._options, o); + this._element = this._options.element; + this._disableDropOutside(); + this._attachEvents(); +}; +qq.UploadDropZone.prototype = { + _disableDropOutside: function (e) { + if (!qq.UploadDropZone.dropOutsideDisabled) { + qq.attach(document, 'dragover', function (e) { + if (e.dataTransfer) { + e.dataTransfer.dropEffect = 'none'; + e.preventDefault(); + } + }); + qq.UploadDropZone.dropOutsideDisabled = true; + } + }, + _attachEvents: function () { + var self = this; + qq.attach(self._element, 'dragover', function (e) { + if (!self._isValidFileDrag(e)) return; + var effect = e.dataTransfer.effectAllowed; + if (effect == 'move' || effect == 'linkMove') { + e.dataTransfer.dropEffect = 'move'; + } else { + e.dataTransfer.dropEffect = 'copy'; + } + e.stopPropagation(); + e.preventDefault(); + }); + qq.attach(self._element, 'dragenter', function (e) { + if (!self._isValidFileDrag(e)) return; + self._options.onEnter(e); + }); + qq.attach(self._element, 'dragleave', function (e) { + if (!self._isValidFileDrag(e)) return; + self._options.onLeave(e); + var relatedTarget = document.elementFromPoint(e.clientX, e.clientY); + if (qq.contains(this, relatedTarget)) return; + self._options.onLeaveNotDescendants(e); + }); + qq.attach(self._element, 'drop', function (e) { + if (!self._isValidFileDrag(e)) return; + e.preventDefault(); + self._options.onDrop(e); + }); + }, + _isValidFileDrag: function (e) { + var dt = e.dataTransfer, + isWebkit = navigator.userAgent.indexOf("AppleWebKit") > -1; + return dt && dt.effectAllowed != 'none' && (dt.files || (!isWebkit && dt.types.contains && dt.types.contains('Files'))); + } +}; +qq.UploadButton = function (o) { + this._options = { + element: null, + multiple: false, + name: 'file', + onChange: function (input) { }, + hoverClass: 'qq-upload-button-hover', + focusClass: 'qq-upload-button-focus' + }; + qq.extend(this._options, o); + this._element = this._options.element; + qq.css(this._element, { + position: 'relative', + overflow: 'hidden', + direction: 'ltr' + }); + this._input = this._createInput(); +}; +qq.UploadButton.prototype = { + getInput: function () { + return this._input; + }, + reset: function () { + if (this._input.parentNode) { + qq.remove(this._input); + } + qq.removeClass(this._element, this._options.focusClass); + this._input = this._createInput(); + }, + _createInput: function () { + var input = document.createElement("input"); + if (this._options.multiple) { + input.setAttribute("multiple", "multiple"); + } + input.setAttribute("type", "file"); + input.setAttribute("name", this._options.name); + qq.css(input, { + position: 'absolute', + right: 0, + top: 0, + fontFamily: 'Arial', + fontSize: '118px', + margin: 0, + padding: 0, + cursor: 'pointer', + opacity: 0 + }); + this._element.appendChild(input); + var self = this; + qq.attach(input, 'change', function () { + self._options.onChange(input); + }); + qq.attach(input, 'mouseover', function () { + qq.addClass(self._element, self._options.hoverClass); + }); + qq.attach(input, 'mouseout', function () { + qq.removeClass(self._element, self._options.hoverClass); + }); + qq.attach(input, 'focus', function () { + qq.addClass(self._element, self._options.focusClass); + }); + qq.attach(input, 'blur', function () { + qq.removeClass(self._element, self._options.focusClass); + }); + if (window.attachEvent) { + input.setAttribute('tabIndex', "-1"); + } + return input; + } +}; +qq.UploadHandlerAbstract = function (o) { + this._options = { + debug: false, + action: '/upload.php', + maxConnections: 999, + onProgress: function (id, fileName, loaded, total) { }, + onComplete: function (id, fileName, response) { }, + onCancel: function (id, fileName) { } + }; + qq.extend(this._options, o); + this._queue = []; + this._params = []; +}; +qq.UploadHandlerAbstract.prototype = { + log: function (str) { + if (this._options.debug && window.console) console.log('[uploader] ' + str); + }, + add: function (file) { }, + upload: function (id, params) { + var len = this._queue.push(id); + var copy = {}; + qq.extend(copy, params); + this._params[id] = copy; + if (len <= this._options.maxConnections) { + this._upload(id, this._params[id]); + } + }, + cancel: function (id) { + this._cancel(id); + this._dequeue(id); + }, + cancelAll: function () { + for (var i = 0; i < this._queue.length; i++) { + this._cancel(this._queue[i]); + } + this._queue = []; + }, + getName: function (id) { }, + getSize: function (id) { }, + getQueue: function () { + return this._queue; + }, + _upload: function (id) { }, + _cancel: function (id) { }, + _dequeue: function (id) { + var i = qq.indexOf(this._queue, id); + this._queue.splice(i, 1); + var max = this._options.maxConnections; + if (this._queue.length >= max && i < max) { + var nextId = this._queue[max - 1]; + this._upload(nextId, this._params[nextId]); + } + } +}; +qq.UploadHandlerForm = function (o) { + qq.UploadHandlerAbstract.apply(this, arguments); + this._inputs = {}; +}; +qq.extend(qq.UploadHandlerForm.prototype, qq.UploadHandlerAbstract.prototype); +qq.extend(qq.UploadHandlerForm.prototype, { + add: function (fileInput) { + fileInput.setAttribute('name', 'qqfile'); + var id = 'qq-upload-handler-iframe' + qq.getUniqueId(); + this._inputs[id] = fileInput; + if (fileInput.parentNode) { + qq.remove(fileInput); + } + return id; + }, + getName: function (id) { + return this._inputs[id].value.replace(/.*(\/|\\)/, ""); + }, + _cancel: function (id) { + this._options.onCancel(id, this.getName(id)); + delete this._inputs[id]; + var iframe = document.getElementById(id); + if (iframe) { + iframe.setAttribute('src', 'javascript:false;'); + qq.remove(iframe); + } + }, + _upload: function (id, params) { + var input = this._inputs[id]; + if (!input) { + throw new Error('file with passed id was not added, or already uploaded or cancelled'); + } + var fileName = this.getName(id); + var iframe = this._createIframe(id); + var form = this._createForm(iframe, params); + form.appendChild(input); + var self = this; + this._attachLoadEvent(iframe, function () { + self.log('iframe loaded'); + var response = self._getIframeContentJSON(iframe); + self._options.onComplete(id, fileName, response); + self._dequeue(id); + delete self._inputs[id]; + setTimeout(function () { + qq.remove(iframe); + }, 1); + }); + form.submit(); + qq.remove(form); + return id; + }, + _attachLoadEvent: function (iframe, callback) { + qq.attach(iframe, 'load', function () { + if (!iframe.parentNode) { + return; + } + if (iframe.contentDocument && iframe.contentDocument.body && iframe.contentDocument.body.innerHTML == "false") { + return; + } + callback(); + }); + }, + _getIframeContentJSON: function (iframe) { + var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document, + response; + this.log("converting iframe's innerHTML to JSON"); + this.log("innerHTML = " + doc.body.innerHTML); + try { + response = eval("(" + doc.body.innerHTML + ")"); + } catch (err) { + response = {}; + } + return response; + }, + _createIframe: function (id) { + var iframe = qq.toElement('