1/*jslint white: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: false, strict: true, newcap: true, immed: true */ 2/*global jQuery, window, DOKU_BASE*/ 3"use strict"; 4 5/** 6 * JavaScript functionality for the media management popup 7 * 8 * @author Andreas Gohr <andi@splitbrain.org> 9 * @author Pierre Spring <pierre.spring@caillou.ch> 10 */ 11(function ($) { 12 /** 13 * Open or close a subtree using AJAX 14 * 15 * @author Andreas Gohr <andi@splitbrain.org> 16 */ 17 toggle = function (event) { 18 var clicky, listitem, sublist, link, ul; 19 20 var clicky = $(this); 21 var listitem = clicky.parent(); 22 23 // if already open, close by removing the sublist 24 var sublist = listitem.find('ul').first(); 25 if(sublist.size()){ 26 sublist.remove(); // TODO: really? we could just hide it, right? 27 clicky.attr('src', DOKU_BASE + 'lib/images/plus.gif'); 28 event.preventDefault(); // TODO: really here? 29 return; 30 } 31 32 // get the enclosed link (is always the first one) 33 link = listitem.find('a').first(); 34 35 //prepare the new ul 36 ul = $('<ul/>'); 37 38 //fixme add classname here 39 40 $.post( 41 DOKU_BASE + 'lib/exe/ajax.php', 42 link.attr('search').substr(1) + '&call=medians', 43 function (data) { 44 ul.html(data) 45 listitem.append(ul); 46 }, 47 'html' 48 ); 49 50 clicky.attr('src', DOKU_BASE + 'lib/images/minus.gif'); 51 }; 52 53 $(function () { 54 $('#media__tree').delegate('img', 'click', toggle); 55 }); 56}(jQuery)); 57 58var media_manager = { 59 keepopen: false, 60 hide: false, 61 align: false, 62 popup: false, 63 id: false, 64 display: false, 65 link: false, 66 size: false, 67 ext: false, 68 69 /** 70 * Attach event handlers to all "folders" below the given element 71 * 72 * @author Andreas Gohr <andi@splitbrain.org> 73 */ 74 treeattach: function(obj){ 75 if(!obj) return; 76 77 var items = obj.getElementsByTagName('li'); 78 for(var i=0; i<items.length; i++){ 79 var elem = items[i]; 80 81 // attach action to make the +/- clickable 82 var clicky = elem.getElementsByTagName('img')[0]; 83 clicky.style.cursor = 'pointer'; 84 //addEvent(clicky,'click',function(event){ return media_manager.toggle(event,this); }); 85 86 // attach action load folder list via AJAX 87 var link = elem.getElementsByTagName('a')[0]; 88 link.style.cursor = 'pointer'; 89 addEvent(link,'click',function(event){ return media_manager.list(event,this); }); 90 } 91 }, 92 93 /** 94 * Attach the image selector action to all links below the given element 95 * also add the action to autofill the "upload as" field 96 * 97 * @author Andreas Gohr <andi@splitbrain.org> 98 */ 99 selectorattach: function(obj){ 100 if(!obj) return; 101 102 var items = getElementsByClass('select',obj,'a'); 103 for(var i=0; i<items.length; i++){ 104 var elem = items[i]; 105 elem.style.cursor = 'pointer'; 106 addEvent(elem,'click',function(event){ return media_manager.select(event,this); }); 107 } 108 109 // hide syntax example 110 items = getElementsByClass('example',obj,'div'); 111 for(var i=0; i<items.length; i++){ 112 elem = items[i]; 113 elem.style.display = 'none'; 114 } 115 116 var file = $('upload__file'); 117 if(!file) return; 118 addEvent(file,'change',media_manager.suggest); 119 }, 120 121 /** 122 * Attach deletion confirmation dialog to the delete buttons. 123 * 124 * Michael Klier <chi@chimeric.de> 125 */ 126 confirmattach: function(obj){ 127 if(!obj) return; 128 129 items = getElementsByClass('btn_media_delete',obj,'a'); 130 for(var i=0; i<items.length; i++){ 131 var elem = items[i]; 132 addEvent(elem,'click',function(e){ 133 if(e.target.tagName == 'IMG'){ 134 var name = e.target.parentNode.title; 135 }else{ 136 var name = e.target.title; 137 } 138 if(!confirm(LANG['del_confirm'] + "\n" + name)) { 139 e.preventDefault(); 140 return false; 141 } else { 142 return true; 143 } 144 }); 145 } 146 }, 147 148 /** 149 * Creates checkboxes for additional options 150 * 151 * @author Andreas Gohr <andi@splitbrain.org> 152 */ 153 attachoptions: function(obj){ 154 if(!obj) return; 155 156 // keep open 157 if(opener){ 158 var kobox = document.createElement('input'); 159 kobox.type = 'checkbox'; 160 kobox.id = 'media__keepopen'; 161 if(DokuCookie.getValue('keepopen')){ 162 kobox.checked = true; 163 kobox.defaultChecked = true; //IE wants this 164 media_manager.keepopen = true; 165 } 166 addEvent(kobox,'click',function(event){ return media_manager.togglekeepopen(event,this); }); 167 168 var kolbl = document.createElement('label'); 169 kolbl.htmlFor = 'media__keepopen'; 170 kolbl.innerHTML = LANG['keepopen']; 171 172 var kobr = document.createElement('br'); 173 174 obj.appendChild(kobox); 175 obj.appendChild(kolbl); 176 obj.appendChild(kobr); 177 } 178 179 // hide details 180 var hdbox = document.createElement('input'); 181 hdbox.type = 'checkbox'; 182 hdbox.id = 'media__hide'; 183 if(DokuCookie.getValue('hide')){ 184 hdbox.checked = true; 185 hdbox.defaultChecked = true; //IE wants this 186 media_manager.hide = true; 187 } 188 addEvent(hdbox,'click',function(event){ return media_manager.togglehide(event,this); }); 189 190 var hdlbl = document.createElement('label'); 191 hdlbl.htmlFor = 'media__hide'; 192 hdlbl.innerHTML = LANG['hidedetails']; 193 194 var hdbr = document.createElement('br'); 195 196 obj.appendChild(hdbox); 197 obj.appendChild(hdlbl); 198 obj.appendChild(hdbr); 199 media_manager.updatehide(); 200 }, 201 202 /** 203 * Toggles the keep open state 204 * 205 * @author Andreas Gohr <andi@splitbrain.org> 206 */ 207 togglekeepopen: function(event,cb){ 208 if(cb.checked){ 209 DokuCookie.setValue('keepopen',1); 210 media_manager.keepopen = true; 211 }else{ 212 DokuCookie.setValue('keepopen',''); 213 media_manager.keepopen = false; 214 } 215 }, 216 217 /** 218 * Toggles the hide details state 219 * 220 * @author Andreas Gohr <andi@splitbrain.org> 221 */ 222 togglehide: function(event,cb){ 223 if(cb.checked){ 224 DokuCookie.setValue('hide',1); 225 media_manager.hide = true; 226 }else{ 227 DokuCookie.setValue('hide',''); 228 media_manager.hide = false; 229 } 230 media_manager.updatehide(); 231 }, 232 233 /** 234 * Sets the visibility of the image details accordingly to the 235 * chosen hide state 236 * 237 * @author Andreas Gohr <andi@splitbrain.org> 238 */ 239 updatehide: function(){ 240 var obj = $('media__content'); 241 if(!obj) return; 242 var details = getElementsByClass('detail',obj,'div'); 243 for(var i=0; i<details.length; i++){ 244 if(media_manager.hide){ 245 details[i].style.display = 'none'; 246 }else{ 247 details[i].style.display = ''; 248 } 249 } 250 }, 251 252 /** 253 * shows the popup for a image link 254 */ 255 select: function(event,link){ 256 var id = link.name.substr(2); 257 258 media_manager.id = id; 259 if(!opener){ 260 // if we don't run in popup display example 261 var ex = $('ex_'+id.replace(/:/g,'_')); 262 if(ex.style.display == ''){ 263 ex.style.display = 'none'; 264 } else { 265 ex.style.display = ''; 266 } 267 return false; 268 } 269 270 media_manager.ext = false; 271 var dot = id.lastIndexOf("."); 272 if (dot != -1) { 273 var ext = id.substr(dot,id.length); 274 275 if (ext != '.jpg' && ext != '.jpeg' && ext != '.png' && ext != '.gif' && ext != '.swf') { 276 media_manager.insert(null); 277 return false; 278 } 279 } else { 280 media_manager.insert(null); 281 return false; 282 } 283 284 media_manager.popup.style.display = 'inline'; 285 media_manager.popup.style.left = event.pageX + 'px'; 286 media_manager.popup.style.top = event.pageY + 'px'; 287 288 // set all buttons to outset 289 media_manager.outSet('media__linkbtn1'); 290 media_manager.outSet('media__linkbtn2'); 291 media_manager.outSet('media__linkbtn3'); 292 media_manager.outSet('media__linkbtn4'); 293 294 media_manager.outSet('media__alignbtn0'); 295 media_manager.outSet('media__alignbtn1'); 296 media_manager.outSet('media__alignbtn2'); 297 media_manager.outSet('media__alignbtn3'); 298 299 media_manager.outSet('media__sizebtn1'); 300 media_manager.outSet('media__sizebtn2'); 301 media_manager.outSet('media__sizebtn3'); 302 media_manager.outSet('media__sizebtn4'); 303 304 305 if (ext == '.swf') { 306 media_manager.ext = 'swf'; 307 308 // disable display buttons for detail and linked image 309 $('media__linkbtn1').style.display = 'none'; 310 $('media__linkbtn2').style.display = 'none'; 311 312 // set the link button to default 313 if (media_manager.link != false) { 314 if ( media_manager.link == '2' || media_manager.link == '1') { 315 media_manager.inSet('media__linkbtn3'); 316 media_manager.link = '3'; 317 DokuCookie.setValue('link','3'); 318 } else { 319 media_manager.inSet('media__linkbtn'+media_manager.link); 320 } 321 } else if (DokuCookie.getValue('link')) { 322 if ( DokuCookie.getValue('link') == '2' || DokuCookie.getValue('link') == '1') { 323 // this options are not availible 324 media_manager.inSet('media__linkbtn3'); 325 media_manager.link = '3'; 326 DokuCookie.setValue('link','3'); 327 } else { 328 media_manager.inSet('media__linkbtn'+DokuCookie.getValue('link')); 329 media_manager.link = DokuCookie.getValue('link'); 330 } 331 } else { 332 // default case 333 media_manager.link = '3'; 334 media_manager.inSet('media__linkbtn3'); 335 DokuCookie.setValue('link','3'); 336 } 337 338 // disable button for original size 339 $('media__sizebtn4').style.display = 'none'; 340 341 } else { 342 media_manager.ext = 'img'; 343 344 // ensure that the display buttons are there 345 $('media__linkbtn1').style.display = 'inline'; 346 $('media__linkbtn2').style.display = 'inline'; 347 $('media__sizebtn4').style.display = 'inline'; 348 349 // set the link button to default 350 if (DokuCookie.getValue('link')) { 351 media_manager.link = DokuCookie.getValue('link'); 352 } 353 if (media_manager.link == false) { 354 // default case 355 media_manager.link = '1'; 356 DokuCookie.setValue('link','1'); 357 } 358 media_manager.inSet('media__linkbtn'+media_manager.link); 359 } 360 361 if (media_manager.link == '4') { 362 media_manager.align = false; 363 media_manager.size = false; 364 $('media__align').style.display = 'none'; 365 $('media__size').style.display = 'none'; 366 } else { 367 $('media__align').style.display = 'block'; 368 $('media__size').style.display = 'block'; 369 370 // set the align button to default 371 if (media_manager.align != false) { 372 media_manager.inSet('media__alignbtn'+media_manager.align); 373 } else if (DokuCookie.getValue('align')) { 374 media_manager.inSet('media__alignbtn'+DokuCookie.getValue('align')); 375 media_manager.align = DokuCookie.getValue('align'); 376 } else { 377 // default case 378 media_manager.align = '0'; 379 media_manager.inSet('media__alignbtn0'); 380 DokuCookie.setValue('align','0'); 381 } 382 383 // set the size button to default 384 if (DokuCookie.getValue('size')) { 385 media_manager.size = DokuCookie.getValue('size'); 386 } 387 if (media_manager.size == false || (media_manager.size === '4' && ext === '.swf')) { 388 // default case 389 media_manager.size = '2'; 390 DokuCookie.setValue('size','2'); 391 } 392 media_manager.inSet('media__sizebtn'+media_manager.size); 393 394 $('media__sendbtn').focus(); 395 } 396 397 return false; 398 }, 399 400 /** 401 * build the popup window 402 * 403 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 404 */ 405 initpopup: function() { 406 407 media_manager.popup = document.createElement('div'); 408 media_manager.popup.setAttribute('id','media__popup'); 409 410 var root = document.getElementById('media__manager'); 411 if (root == null) return; 412 root.appendChild(media_manager.popup); 413 414 var headline = document.createElement('h1'); 415 headline.innerHTML = LANG.mediatitle; 416 var headlineimg = document.createElement('img'); 417 headlineimg.src = DOKU_BASE + 'lib/images/close.png'; 418 headlineimg.id = 'media__closeimg'; 419 addEvent(headlineimg,'click',function(event){ return media_manager.closePopup(event,this); }); 420 headline.insertBefore(headlineimg, headline.firstChild); 421 media_manager.popup.appendChild(headline); 422 drag.attach(media_manager.popup,headline); 423 424 // link 425 426 var linkp = document.createElement('p'); 427 428 linkp.id = "media__linkstyle"; 429 if (media_manager.display == "2") { 430 linkp.style.display = "none"; 431 } 432 433 var linkl = document.createElement('label'); 434 linkl.innerHTML = LANG.mediatarget; 435 linkp.appendChild(linkl); 436 437 var linkbtns = ['lnk', 'direct', 'nolnk', 'displaylnk']; 438 for (var i = 0 ; i < linkbtns.length ; ++i) { 439 var linkbtn = document.createElement('button'); 440 linkbtn.className = 'button'; 441 linkbtn.value = i + 1; 442 linkbtn.id = "media__linkbtn" + (i + 1); 443 linkbtn.title = LANG['media' + linkbtns[i]]; 444 linkbtn.style.borderStyle = 'outset'; 445 addEvent(linkbtn,'click',function(event){ return media_manager.setlink(event,this); }); 446 447 var linkimg = document.createElement('img'); 448 linkimg.src = DOKU_BASE + 'lib/images/media_link_' + linkbtns[i] + '.png'; 449 450 linkbtn.appendChild(linkimg); 451 linkp.appendChild(linkbtn); 452 } 453 454 media_manager.popup.appendChild(linkp); 455 456 // align 457 458 var alignp = document.createElement('p'); 459 var alignl = document.createElement('label'); 460 461 alignp.appendChild(alignl); 462 alignp.id = 'media__align'; 463 if (media_manager.display == "2") { 464 alignp.style.display = "none"; 465 } 466 alignl.innerHTML = LANG['mediaalign']; 467 468 var alignbtns = ['noalign', 'left', 'center', 'right']; 469 for (var n = 0 ; n < alignbtns.length ; ++n) { 470 var alignbtn = document.createElement('button'); 471 var alignimg = document.createElement('img'); 472 alignimg.src = DOKU_BASE + 'lib/images/media_align_' + alignbtns[n] + '.png'; 473 474 alignbtn.id = "media__alignbtn" + n; 475 alignbtn.value = n; 476 alignbtn.title = LANG['media' + alignbtns[n]]; 477 alignbtn.className = 'button'; 478 alignbtn.appendChild(alignimg); 479 alignbtn.style.borderStyle = 'outset'; 480 addEvent(alignbtn,'click',function(event){ return media_manager.setalign(event,this); }); 481 482 alignp.appendChild(alignbtn); 483 } 484 485 media_manager.popup.appendChild(alignp); 486 487 // size 488 489 var sizep = document.createElement('p'); 490 var sizel = document.createElement('label'); 491 492 sizep.id = 'media__size'; 493 if (media_manager.display == "2") { 494 sizep.style.display = "none"; 495 } 496 sizep.appendChild(sizel); 497 sizel.innerHTML = LANG['mediasize']; 498 499 var sizebtns = ['small', 'medium', 'large', 'original']; 500 for (var size = 0 ; size < sizebtns.length ; ++size) { 501 var sizebtn = document.createElement('button'); 502 var sizeimg = document.createElement('img'); 503 504 sizep.appendChild(sizebtn); 505 sizeimg.src = DOKU_BASE + 'lib/images/media_size_' + sizebtns[size] + '.png'; 506 507 sizebtn.className = 'button'; 508 sizebtn.appendChild(sizeimg); 509 sizebtn.value = size + 1; 510 sizebtn.id = 'media__sizebtn' + (size + 1); 511 sizebtn.title = LANG['media' + sizebtns[size]]; 512 sizebtn.style.borderStyle = 'outset'; 513 addEvent(sizebtn,'click',function(event){ return media_manager.setsize(event,this); }); 514 } 515 516 media_manager.popup.appendChild(sizep); 517 518 // send and close button 519 520 var btnp = document.createElement('p'); 521 media_manager.popup.appendChild(btnp); 522 btnp.setAttribute('class','btnlbl'); 523 524 var btn = document.createElement('input'); 525 btn.type = 'button'; 526 btn.id = 'media__sendbtn'; 527 btn.setAttribute('class','button'); 528 btn.value = LANG['mediainsert']; 529 btnp.appendChild(btn); 530 addEvent(btn,'click',function(event){ return media_manager.insert(event); }); 531 }, 532 533 /** 534 * Insert the clicked image into the opener's textarea 535 * 536 * @author Andreas Gohr <andi@splitbrain.org> 537 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 538 */ 539 insert: function(event){ 540 var id = media_manager.id; 541 // set syntax options 542 $('media__popup').style.display = 'none'; 543 544 var opts = ''; 545 var optsstart = ''; 546 var alignleft = ''; 547 var alignright = ''; 548 549 if (media_manager.ext == 'img' || media_manager.ext == 'swf') { 550 551 if (media_manager.link == '4') { 552 opts = '?linkonly'; 553 } else { 554 555 if (media_manager.link == "3" && media_manager.ext == 'img') { 556 opts = '?nolink'; 557 optsstart = true; 558 } else if (media_manager.link == "2" && media_manager.ext == 'img') { 559 opts = '?direct'; 560 optsstart = true; 561 } 562 563 var s = parseInt(media_manager.size); 564 565 if (s && s >= 1) { 566 opts += (optsstart)?'&':'?'; 567 if (s=="1") { 568 opts += '100'; 569 if (media_manager.ext == 'swf') { 570 opts += 'x62'; 571 } 572 } else if (s=="2") { 573 opts += '200'; 574 if (media_manager.ext == 'swf') { 575 opts += 'x123'; 576 } 577 } else if (s=="3"){ 578 opts += '300'; 579 if (media_manager.ext == 'swf') { 580 opts += 'x185'; 581 } 582 } 583 } 584 if (media_manager.align == '1') { 585 alignleft = ''; 586 alignright = ' '; 587 } 588 if (media_manager.align == '2') { 589 alignleft = ' '; 590 alignright = ' '; 591 } 592 if (media_manager.align == '3') { 593 alignleft = ' '; 594 alignright = ''; 595 } 596 } 597 } 598 opener.insertTags('wiki__text','{{'+alignleft+id+opts+alignright+'|','}}',''); 599 600 if(!media_manager.keepopen) window.close(); 601 opener.focus(); 602 return false; 603 }, 604 605 /** 606 * list the content of a namespace using AJAX 607 * 608 * @author Andreas Gohr <andi@splitbrain.org> 609 */ 610 list: function(event,link){ 611 // prepare an AJAX call to fetch the subtree 612 var ajax = new sack(DOKU_BASE + 'lib/exe/ajax.php'); 613 ajax.AjaxFailedAlert = ''; 614 ajax.encodeURIString = false; 615 if(ajax.failed) return true; 616 617 cleanMsgArea(); 618 619 var content = $('media__content'); 620 content.innerHTML = '<img src="'+DOKU_BASE+'lib/images/loading.gif" alt="..." class="load" />'; 621 622 ajax.elementObj = content; 623 ajax.afterCompletion = function(){ 624 media_manager.selectorattach(content); 625 media_manager.confirmattach(content); 626 media_manager.updatehide(); 627 media_manager.initFlashUpload(); 628 }; 629 ajax.runAJAX(link.search.substr(1)+'&call=medialist'); 630 return false; 631 }, 632 633 /** 634 * Prefills the wikiname. 635 * 636 * @author Andreas Gohr <andi@splitbrain.org> 637 */ 638 suggest: function(){ 639 var file = $('upload__file'); 640 var name = $('upload__name'); 641 if(!file || !name) return; 642 643 var text = file.value; 644 text = text.substr(text.lastIndexOf('/')+1); 645 text = text.substr(text.lastIndexOf('\\')+1); 646 name.value = text; 647 }, 648 649 650 initFlashUpload: function(){ 651 if(!hasFlash(8)) return; 652 var oform = $('dw__upload'); 653 var oflash = $('dw__flashupload'); 654 if(!oform || !oflash) return; 655 656 var clicky = document.createElement('img'); 657 clicky.src = DOKU_BASE+'lib/images/multiupload.png'; 658 clicky.title = LANG['mu_btn']; 659 clicky.alt = LANG['mu_btn']; 660 clicky.style.cursor = 'pointer'; 661 clicky.onclick = function(){ 662 oform.style.display = 'none'; 663 oflash.style.display = ''; 664 }; 665 oform.appendChild(clicky); 666 }, 667 668 /** 669 * closes the link type popup 670 */ 671 closePopup: function(event) { 672 $('media__popup').style.display = 'none'; 673 }, 674 675 /** 676 * set the align 677 * 678 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 679 */ 680 setalign: function(event,cb){ 681 if(cb.value){ 682 DokuCookie.setValue('align',cb.value); 683 media_manager.align = cb.value; 684 media_manager.outSet("media__alignbtn0"); 685 media_manager.outSet("media__alignbtn1"); 686 media_manager.outSet("media__alignbtn2"); 687 media_manager.outSet("media__alignbtn3"); 688 media_manager.inSet("media__alignbtn"+cb.value); 689 }else{ 690 DokuCookie.setValue('align',''); 691 media_manager.align = false; 692 } 693 }, 694 /** 695 * set the link type 696 * 697 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 698 */ 699 setlink: function(event,cb){ 700 if(cb.value){ 701 DokuCookie.setValue('link',cb.value); 702 media_manager.link = cb.value; 703 media_manager.outSet("media__linkbtn1"); 704 media_manager.outSet("media__linkbtn2"); 705 media_manager.outSet("media__linkbtn3"); 706 media_manager.outSet("media__linkbtn4"); 707 media_manager.inSet("media__linkbtn"+cb.value); 708 var size = document.getElementById("media__size"); 709 var align = document.getElementById("media__align"); 710 if (cb.value != '4') { 711 size.style.display = "block"; 712 align.style.display = "block"; 713 } else { 714 size.style.display = "none"; 715 align.style.display = "none"; 716 } 717 }else{ 718 DokuCookie.setValue('link',''); 719 media_manager.link = false; 720 } 721 }, 722 723 /** 724 * set the display type 725 * 726 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 727 */ 728 setdisplay: function(event,cb){ 729 if(cb.value){ 730 DokuCookie.setValue('display',cb.value); 731 media_manager.display = cb.value; 732 media_manager.outSet("media__displaybtn1"); 733 media_manager.outSet("media__displaybtn2"); 734 media_manager.inSet("media__displaybtn"+cb.value); 735 736 }else{ 737 DokuCookie.setValue('display',''); 738 media_manager.align = false; 739 } 740 }, 741 742 /** 743 * sets the border to outset 744 */ 745 outSet: function(id) { 746 var ele = document.getElementById(id); 747 if (ele == null) return; 748 ele.style.borderStyle = "outset"; 749 }, 750 /** 751 * sets the border to inset 752 */ 753 inSet: function(id) { 754 var ele = document.getElementById(id); 755 if (ele == null) return; 756 ele.style.borderStyle = "inset"; 757 }, 758 759 /** 760 * set the image size 761 * 762 * @author Dominik Eckelmann <eckelmann@cosmocode.de> 763 */ 764 setsize: function(event,cb){ 765 if (cb.value) { 766 DokuCookie.setValue('size',cb.value); 767 media_manager.size = cb.value; 768 for (var i = 1 ; i <= 4 ; ++i) { 769 media_manager.outSet("media__sizebtn" + i); 770 } 771 media_manager.inSet("media__sizebtn"+cb.value); 772 } else { 773 DokuCookie.setValue('size',''); 774 media_manager.width = false; 775 } 776 } 777}; 778 779addInitEvent(function(){ 780 //media_manager.treeattach($('media__tree')); 781 media_manager.selectorattach($('media__content')); 782 media_manager.confirmattach($('media__content')); 783 media_manager.attachoptions($('media__opts')); 784 media_manager.initpopup(); 785 media_manager.initFlashUpload(); 786}); 787