diff --git a/inc/actions.php b/inc/actions.php
index ecf09036f773dabc23af9a2c33f502fcbea3bc5c..1a0ae4028c19d740a409a5cb6c516200e0d1d3b6 100644
--- a/inc/actions.php
+++ b/inc/actions.php
@@ -227,7 +227,7 @@ function act_clean($act){
                     'preview','search','show','check','index','revisions',
                     'diff','recent','backlink','admin','subscribe','revert',
                     'unsubscribe','profile','resendpwd','recover',
-                    'draftdel','subscribens','unsubscribens','sitemap')) && substr($act,0,7) != 'export_' ) {
+                    'draftdel','subscribens','unsubscribens','sitemap','media')) && substr($act,0,7) != 'export_' ) {
         msg('Command unknown: '.htmlspecialchars($act),-1);
         return 'show';
     }
diff --git a/inc/media.php b/inc/media.php
index be55f8044043b462b4c8706112b410b3ba8a7c33..d98e225b951ebad67f33ebf055c63ae261ec87f7 100644
--- a/inc/media.php
+++ b/inc/media.php
@@ -74,8 +74,9 @@ function media_metasave($id,$auth,$data){
  * Display the form to edit image meta data
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ * @author Kate Arzamastseva <pshns@ukr.net>
  */
-function media_metaform($id,$auth){
+function media_metaform($id,$auth,$fullscreen = false){
     if($auth < AUTH_UPLOAD) return false;
     global $lang, $config_cascade;
 
@@ -96,8 +97,13 @@ function media_metaform($id,$auth){
     $src = mediaFN($id);
 
     // output
-    echo '<h1>'.hsc(noNS($id)).'</h1>'.NL;
-    echo '<form action="'.DOKU_BASE.'lib/exe/mediamanager.php" accept-charset="utf-8" method="post" class="meta">'.NL;
+    if (!$fullscreen) {
+        echo '<h1>'.hsc(noNS($id)).'</h1>'.NL;
+        echo '<form action="'.DOKU_BASE.'lib/exe/mediamanager.php" accept-charset="utf-8" method="post" class="meta">'.NL;
+    } else {
+        echo '<form action="'.media_managerURL(array('tab_details' => 'view')).
+            '" accept-charset="utf-8" method="post" class="meta">'.NL;
+    }
     formSecurityToken();
     foreach($fields as $key => $field){
         // get current value
@@ -132,8 +138,11 @@ function media_metaform($id,$auth){
     }
     echo '<div class="buttons">'.NL;
     echo '<input type="hidden" name="img" value="'.hsc($id).'" />'.NL;
-    echo '<input name="do[save]" type="submit" value="'.$lang['btn_save'].
+    if (!$fullscreen) $do = 'do';
+    else $do = 'mediado';
+    echo '<input name="'.$do.'[save]" type="submit" value="'.$lang['btn_save'].
         '" title="'.$lang['btn_save'].' [S]" accesskey="s" class="button" />'.NL;
+    if (!$fullscreen)
     echo '<input name="do[cancel]" type="submit" value="'.$lang['btn_cancel'].
         '" title="'.$lang['btn_cancel'].' [C]" accesskey="c" class="button" />'.NL;
     echo '</div>'.NL;
@@ -476,7 +485,7 @@ function media_notify($id,$file,$mime){
 /**
  * List all files in a given Media namespace
  */
-function media_filelist($ns,$auth=null,$jump=''){
+function media_filelist($ns,$auth=null,$jump='',$fullscreenview=false){
     global $conf;
     global $lang;
     $ns = cleanID($ns);
@@ -484,13 +493,13 @@ function media_filelist($ns,$auth=null,$jump=''){
     // check auth our self if not given (needed for ajax calls)
     if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
 
-    echo '<h1 id="media__ns">:'.hsc($ns).'</h1>'.NL;
+    if (!$fullscreenview) echo '<h1 id="media__ns">:'.hsc($ns).'</h1>'.NL;
 
     if($auth < AUTH_READ){
         // FIXME: print permission warning here instead?
         echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
     }else{
-        media_uploadform($ns, $auth);
+        if (!$fullscreenview) media_uploadform($ns, $auth);
 
         $dir = utf8_encodeFN(str_replace(':','/',$ns));
         $data = array();
@@ -500,10 +509,248 @@ function media_filelist($ns,$auth=null,$jump=''){
         if(!count($data)){
             echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
         }else foreach($data as $item){
-            media_printfile($item,$auth,$jump);
+            if (!$fullscreenview) media_printfile($item,$auth,$jump);
+            else if ($fullscreenview == 'thumbs') media_printfile_thumbs($item,$auth,$jump);
+        }
+    }
+    if (!$fullscreenview) media_searchform($ns);
+}
+
+/**
+ * Prints tabs for files list actions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param string $selected - opened tab
+ */
+function media_tabs_files($selected=false){
+    global $lang;
+
+    echo '<div class="mediamanager-tabs" id="id-mediamanager-tabs">';
+    $tab = '<a href="'.media_managerURL(array('tab_files' => 'files')).
+        '" rel=".mediamanager-tab-files"';
+    if (!empty($selected) && $selected == 'files') $class = 'files selected';
+    else $class = 'files';
+    $tab .= ' class="'.$class.'" >Files</a>';
+    echo $tab;
+
+    $tab = '<a href="'.media_managerURL(array('tab_files' => 'upload')).
+        '" rel=".mediamanager-tab-upload"';
+    if (!empty($selected) && $selected == 'upload') $class = 'upload selected';
+    else $class = 'upload';
+    $tab .= ' class="'.$class.'" >Upload</a>';
+    echo $tab;
+
+    $tab = '<a href="'.media_managerURL(array('tab_files' => 'search')).
+        '" rel=".mediamanager-tab-search"';
+    if (!empty($selected) && $selected == 'search') $class = 'search selected';
+    else $class = 'search';
+    $tab .= ' class="'.$class.'" >Search</a>';
+    echo $tab;
+
+    echo '<div class="mediamanager-clear">&nbsp;</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tabs for files details actions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param string $selected - opened tab
+ */
+function media_tabs_details($selected=false){
+    global $lang;
+
+    echo '<div class="mediamanager-tabs" id="id-mediamanager-tabs-detail">';
+    $tab = '<a href="'.media_managerURL(array('tab_details' => 'view')).
+        '" rel=".mediamanager-tab-view"';
+    if (!empty($selected) && $selected == 'view') $class = 'view selected';
+    else $class = 'view';
+    $tab .= ' class="'.$class.'" >View</a>';
+    echo $tab;
+
+    $tab = '<a href="'.media_managerURL(array('tab_details' => 'edit')).
+        '" rel=".mediamanager-tab-edit"';
+    if (!empty($selected) && $selected == 'edit') $class = 'edit selected';
+    else $class = 'edit';
+    $tab .= ' class="'.$class.'" >Edit</a>';
+    echo $tab;
+
+    $tab = '<a href="'.media_managerURL(array('tab_details' => 'history')).
+        '" rel=".mediamanager-tab-history"';
+    if (!empty($selected) && $selected == 'history') $class = 'history selected';
+    else $class = 'history';
+    $tab .= ' class="'.$class.'" >History</a>';
+    echo $tab;
+
+    echo '<div class="mediamanager-clear">&nbsp;</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints options for the tab that displays a list of all files
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_files_options(){
+    global $lang;
+
+    echo '<div class="background-container">';
+    echo '<div id="id-mediamanager-tabs-files" style="display: inline;">';
+    echo '<a href="'.media_managerURL(array('view' => 'thumbs')).'"
+        rel=".mediamanager-files-thumbnails-tab" class="mediamanager-link-thumbnails">
+        Thumbs</a>';
+    echo '<a href="'.media_managerURL(array('view' => 'list')).'"
+        rel=".mediamanager-files-list-tab" class="mediamanager-link-list"
+        title="View as list">List</a>';
+
+    echo '</div>';
+    echo '<div class="mediamanager-block-sort">Sort';
+    //select
+    echo '</div>';
+    echo '<div class="mediamanager-clear">&nbsp;</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays a list of all files
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_files($ns,$auth=null,$jump='') {
+    global $lang;
+    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+    echo '<div class="mediamanager-tab-files">';
+    media_tab_files_options();
+    echo '<div class="scroll-container">';
+
+    $view = $_REQUEST['view'];
+    if($auth < AUTH_READ){
+        echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
+    }else{
+        if ($view == 'list') {
+            echo '<div class="mediamanager-files-list-tab">';
+            echo '</div>';
+        } else {
+            echo '<div class="mediamanager-files-thumbnails-tab">';
+            media_filelist($ns,$auth,$jump,'thumbs');
+            echo '</div>';
         }
     }
-    media_searchform($ns);
+    echo '</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays uploading form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_upload($ns,$auth=null,$jump='') {
+    global $lang;
+    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+    echo '<div class="mediamanager-tab-upload"">';
+    echo '<div class="background-container">';
+    echo $lang['mediaupload'];
+    echo '</div>';
+
+    echo '<div class="scroll-container">';
+    media_uploadform($ns, $auth, true);
+    echo '</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays search form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_search($ns,$auth=null) {
+    global $lang;
+
+    $do = $_REQUEST['mediado'];
+    $query = $_REQUEST['q'];
+    if (!$query) $query = '';
+
+    echo '<div class="mediamanager-tab-search">';
+    echo '<div class="background-container">';
+    echo 'Search';
+    echo'</div>';
+
+    echo '<div class="scroll-container">';
+    media_searchform($ns, $query, true);
+
+    if($do == 'searchlist'){
+        media_searchlist($query,$ns,$auth,true);
+    }
+    echo '</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays mediafile details
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_view($image, $ns, $auth=null) {
+    global $lang, $conf;
+    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+    echo '<div class="mediamanager-tab-detail-view">';
+    echo '<div class="background-container">';
+    echo 'Preview of image';
+    echo '</div>';
+
+    echo '<div class="scroll-container">';
+    if($auth < AUTH_READ) return false;
+
+    $info = new JpegMeta(mediaFN($image));
+    $w = (int) $info->getField('File.Width');
+    $src = ml($image);
+    echo '<img src="'.$src.'" alt="" width="99%" style="max-width: '.$w.'px;" />';
+    echo '</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays form for editing mediafile metadata
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_edit($image, $ns, $auth=null) {
+    global $lang;
+    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+    echo '<div class="mediamanager-tab-detail-edit">';
+    echo '<div class="background-container">';
+    echo 'Edit';
+    echo '</div>';
+
+    echo '<div class="scroll-container">';
+    media_metaform($image,$auth,true);
+    echo '</div>';
+    echo '</div>';
+}
+
+/**
+ * Prints tab that displays mediafile revisions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_tab_history($image, $ns, $auth=null) {
+    global $lang;
+    if(is_null($auth)) $auth = auth_quickaclcheck("$ns:*");
+
+    echo '<div class="mediamanager-tab-detail-history">';
+    echo '<div class="background-container">';
+    echo 'History';
+    echo '</div>';
+
+    echo '<div class="scroll-container">';
+
+    echo '</div>';
+    echo '</div>';
 }
 
 /**
@@ -511,9 +758,10 @@ function media_filelist($ns,$auth=null,$jump=''){
  *
  * @author Tobias Sarnowski <sarnowski@cosmocode.de>
  * @author Andreas Gohr <gohr@cosmocode.de>
+ * @author Kate Arzamastseva <pshns@ukr.net>
  * @triggers MEDIA_SEARCH
  */
-function media_searchlist($query,$ns,$auth=null){
+function media_searchlist($query,$ns,$auth=null,$fullscreen=false){
     global $conf;
     global $lang;
     $ns = cleanID($ns);
@@ -538,13 +786,16 @@ function media_searchlist($query,$ns,$auth=null){
         unset($evt);
     }
 
-    echo '<h1 id="media__ns">'.sprintf($lang['searchmedia_in'],hsc($ns).':*').'</h1>'.NL;
-    media_searchform($ns,$query);
+    if (!$fullscreen) {
+        echo '<h1 id="media__ns">'.sprintf($lang['searchmedia_in'],hsc($ns).':*').'</h1>'.NL;
+        media_searchform($ns,$query);
+    }
 
     if(!count($evdata['data'])){
         echo '<div class="nothing">'.$lang['nothingfound'].'</div>'.NL;
     }else foreach($evdata['data'] as $item){
-        media_printfile($item,$item['perm'],'',true);
+        if (!$fullscreen) media_printfile($item,$item['perm'],'',true);
+        else media_printfile_thumbs($item,$item['perm'],'',true);
     }
 }
 
@@ -552,7 +803,7 @@ function media_searchlist($query,$ns,$auth=null){
  * Print action links for a file depending on filetype
  * and available permissions
  */
-function media_fileactions($item,$auth){
+function media_fileactions($item,$auth,$fullscreen=false){
     global $lang;
 
     // view button
@@ -565,15 +816,20 @@ function media_fileactions($item,$auth){
 
     // delete button
     if($auth >= AUTH_DELETE){
-        echo ' <a href="'.DOKU_BASE.'lib/exe/mediamanager.php?delete='.rawurlencode($item['id']).
-            '&amp;sectok='.getSecurityToken().'" class="btn_media_delete" title="'.$item['id'].'">'.
+        if (!$fullscreen) $link = DOKU_BASE.'lib/exe/mediamanager.php?delete='.rawurlencode($item['id']).
+            '&amp;sectok='.getSecurityToken();
+        else $link = media_managerURL(array('delete' => $item['id'],
+            'sectok' => getSecurityToken()));
+        echo ' <a href="'.$link.'" class="btn_media_delete" title="'.$item['id'].'">'.
             '<img src="'.DOKU_BASE.'lib/images/trash.png" alt="'.$lang['btn_delete'].'" '.
             'title="'.$lang['btn_delete'].'" class="btn" /></a>';
     }
 
     // edit button
     if($auth >= AUTH_UPLOAD && $item['isimg'] && $item['meta']->getField('File.Mime') == 'image/jpeg'){
-        echo ' <a href="'.DOKU_BASE.'lib/exe/mediamanager.php?edit='.rawurlencode($item['id']).'">'.
+        if (!$fullscreen) $link = DOKU_BASE.'lib/exe/mediamanager.php?edit='.rawurlencode($item['id']);
+        else $link = media_managerURL(array('edit' => $item['id']));
+        echo ' <a href="'.$link.'">'.
             '<img src="'.DOKU_BASE.'lib/images/pencil.png" alt="'.$lang['metaedit'].'" '.
             'title="'.$lang['metaedit'].'" class="btn" /></a>';
     }
@@ -637,15 +893,50 @@ function media_printfile($item,$auth,$jump,$display_namespace=false){
     echo '</div>'.NL;
 }
 
+/**
+ * Formats and prints one file in the list in the thumbnails view
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function media_printfile_thumbs($item,$auth,$jump){
+    global $lang;
+    global $conf;
+
+    // Prepare filename
+    $file = utf8_decodeFN($item['file']);
+
+    // Prepare info
+    $info = '';
+    if($item['isimg']){
+        $info .= (int) $item['meta']->getField('File.Width');
+        $info .= '&#215;';
+        $info .= (int) $item['meta']->getField('File.Height');
+        $info .= '<br/>';
+    }
+    $info .= '<i>'.dformat($item['mtime']).'</i><br/>';
+    $info .= filesize_h($item['size']);
+
+    // output
+    echo '<div class="float-image" >';
+    if($item['isimg']) media_printimgdetail($item, true);
+    echo '<br/><a href="'.media_managerURL(array('image' => hsc($item['id']))).'" name=
+        "h_:'.$item['id'].'"  >'.hsc($file).'</a><br/>';
+    echo '<span>'.$info.'</span><br/>';
+    media_fileactions($item,$auth,true);
+    echo '</div>'.NL;
+}
+
 /**
  * Prints a thumbnail and metainfos
  */
-function media_printimgdetail($item){
+function media_printimgdetail($item, $fullscreen=false){
     // prepare thumbnail
+    if (!$fullscreen) $size = 120;
+    else $size = 90;
     $w = (int) $item['meta']->getField('File.Width');
     $h = (int) $item['meta']->getField('File.Height');
-    if($w>120 || $h>120){
-        $ratio = $item['meta']->getResizeRatio(120);
+    if($w>$size || $h>$size){
+        $ratio = $item['meta']->getResizeRatio($size);
         $w = floor($w * $ratio);
         $h = floor($h * $ratio);
     }
@@ -658,6 +949,13 @@ function media_printimgdetail($item){
     $att = buildAttributes($p);
 
     // output
+    if ($fullscreen) {
+        echo '<a name="d_:'.$item['id'].'" >';
+        echo '<img src="'.$src.'" '.$att.' />';
+        echo '</a>';
+        return 1;
+    }
+
     echo '<div class="detail">';
     echo '<div class="thumb">';
     echo '<a name="d_:'.$item['id'].'" class="select">';
@@ -684,21 +982,59 @@ function media_printimgdetail($item){
     echo '</div>';
 }
 
+/**
+ * Build link based on the current, adding/rewriting
+ * parameters
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ * @param array $params
+ * @param string $amp - separator
+ * @return string - link
+ */
+function media_managerURL($params=false, $amp='&') {
+    global $conf;
+    global $ID;
+
+    $url = $_SERVER['REQUEST_URI'];
+
+    $urlArray = explode('?', $url, 2);
+    $gets = @$urlArray[1];
+    parse_str($gets, $gets);
+
+    if ($gets['edit']) $gets['image'] = $gets['edit'];
+    unset($gets['edit']);
+    unset($gets['sectok']);
+    unset($gets['delete']);
+
+    if ($params) {
+        foreach ($params as $k => $v) {
+            $gets[$k] = $v;
+        }
+    }
+    unset($gets['id']);
+
+    return wl($ID,$gets,false,$amp);
+}
+
 /**
  * Print the media upload form if permissions are correct
  *
  * @author Andreas Gohr <andi@splitbrain.org>
+ * @author Kate Arzamastseva <pshns@ukr.net>
  */
-function media_uploadform($ns, $auth){
+function media_uploadform($ns, $auth, $fullscreen = false){
     global $lang;
 
     if($auth < AUTH_UPLOAD) return; //fixme print info on missing permissions?
 
     // The default HTML upload form
-    $form = new Doku_Form(array('id'      => 'dw__upload',
-                                'action'  => DOKU_BASE.'lib/exe/mediamanager.php',
-                                'enctype' => 'multipart/form-data'));
-    $form->addElement('<div class="upload">' . $lang['mediaupload'] . '</div>');
+    $params = array('id'      => 'dw__upload',
+                    'enctype' => 'multipart/form-data');
+    if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
+    else $params['action'] = media_managerURL(array('tab_files' => 'files'));
+
+    $form = new Doku_Form($params);
+    if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediaupload'] . '</div>');
     $form->addElement(formSecurityToken());
     $form->addHidden('ns', hsc($ns));
     $form->addElement(form_makeOpenTag('p'));
@@ -757,16 +1093,21 @@ function media_uploadform($ns, $auth){
  * Print the search field form
  *
  * @author Tobias Sarnowski <sarnowski@cosmocode.de>
+ * @author Kate Arzamastseva <pshns@ukr.net>
  */
-function media_searchform($ns,$query=''){
+function media_searchform($ns,$query='',$fullscreen=false){
     global $lang;
 
     // The default HTML search form
-    $form = new Doku_Form(array('id' => 'dw__mediasearch', 'action' => DOKU_BASE.'lib/exe/mediamanager.php'));
-    $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>');
+    $params = array('id' => 'dw__mediasearch');
+    if (!$fullscreen) $params['action'] = DOKU_BASE.'lib/exe/mediamanager.php';
+    else $params['action'] = media_managerURL();
+    $form = new Doku_Form($params);
+    if (!$fullscreen) $form->addElement('<div class="upload">' . $lang['mediasearch'] . '</div>');
     $form->addElement(formSecurityToken());
     $form->addHidden('ns', $ns);
-    $form->addHidden('do', 'searchlist');
+    if (!$fullscreen) $form->addHidden('do', 'searchlist');
+    else $form->addHidden('mediado', 'searchlist');
     $form->addElement(form_makeOpenTag('p'));
     $form->addElement(form_makeTextField('q', $query,$lang['searchmedia'],'','',array('title'=>sprintf($lang['searchmedia_in'],hsc($ns).':*'))));
     $form->addElement(form_makeButton('submit', '', $lang['btn_search']));
@@ -820,7 +1161,9 @@ function media_nstree_item($item){
     if(!$item['label']) $item['label'] = $label;
 
     $ret  = '';
+    if (!($_REQUEST['do'] == 'media'))
     $ret .= '<a href="'.DOKU_BASE.'lib/exe/mediamanager.php?ns='.idfilter($item['id']).'" class="idx_dir">';
+    else $ret .= '<a href="'.media_managerURL(array('ns' => idfilter($item['id']))).'" class="idx_dir">';
     $ret .= $item['label'];
     $ret .= '</a>';
     return $ret;
diff --git a/inc/template.php b/inc/template.php
index d2d66220c8db4421e638d235ca31dcfa2af172e5..4bbb501fce6406eabf3b857d8b2bf32f18a73eb0 100644
--- a/inc/template.php
+++ b/inc/template.php
@@ -123,6 +123,9 @@ function tpl_content_core(){
         case 'subscribe':
             tpl_subscribe();
             break;
+        case 'media':
+            tpl_media();
+            break;
         default:
             $evt = new Doku_Event('TPL_ACT_UNKNOWN',$ACT);
             if ($evt->advise_before())
@@ -1123,6 +1126,56 @@ function tpl_mediaContent($fromajax=false){
 
 }
 
+/**
+ * Prints the central column in full-screen media manager
+ * Depending on the opened tab this may be a list of
+ * files in a namespace, upload form or search form
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_fileList(){
+    global $AUTH;
+    global $NS;
+    global $JUMPTO;
+
+    $opened_tab = $_REQUEST['tab_files'];
+    if (!$opened_tab) $opened_tab = 'files';
+
+    media_tabs_files($opened_tab);
+    if ($opened_tab == 'files') media_tab_files($NS,$AUTH,$JUMPTO);
+    if ($opened_tab == 'upload') media_tab_upload($NS,$AUTH,$JUMPTO);
+    if ($opened_tab == 'search') media_tab_search($NS,$AUTH);
+
+}
+
+/**
+ * Prints the third column in full-screen media manager
+ * Depending on the opened tab this may be details of the
+ * selected file, the meta editing dialog or
+ * list of file revisions
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_fileDetails(){
+    global $AUTH;
+    global $NS;
+    global $IMG;
+
+    $opened_tab = $_REQUEST['tab_details'];
+    if (!$opened_tab) $opened_tab = 'view';
+    if ($_REQUEST['edit']) $opened_tab = 'edit';
+    media_tabs_details($opened_tab);
+
+    $image = $_REQUEST['image'];
+    if (!$image && !$IMG) return false;
+    if ($opened_tab == 'view') media_tab_view($image, $NS, $AUTH);
+    if ($opened_tab == 'edit') {
+        if ($IMG) media_tab_edit($IMG, $NS, $AUTH);
+        else if ($image) media_tab_edit($image, $NS, $AUTH);
+    }
+    if ($opened_tab == 'history') media_tab_history($image,$NS,$AUTH);
+}
+
 /**
  * prints the namespace tree in the mediamanger popup
  *
@@ -1130,10 +1183,10 @@ function tpl_mediaContent($fromajax=false){
  *
  * @author Andreas Gohr <andi@splitbrain.org>
  */
-function tpl_mediaTree(){
+function tpl_mediaTree($fullscreen = false){
     global $NS;
-
-    ptln('<div id="media__tree">');
+    if ($fullscreen) ptln('<div id="media-menu">');
+    else ptln('<div id="media__tree">');
     media_nstree($NS);
     ptln('</div>');
 }
@@ -1359,6 +1412,36 @@ function tpl_getFavicon($abs=false) {
     return DOKU_TPL.'images/favicon.ico';
 }
 
+/**
+ * Prints full-screen media manager
+ *
+ * @author Kate Arzamastseva <pshns@ukr.net>
+ */
+function tpl_media() {
+    //
+    global $DEL, $NS, $IMG, $AUTH, $JUMPTO;
+    require_once(DOKU_INC.'lib/exe/mediamanager.php');
+
+    echo '<div class="mediamanager" id="id-mediamanager">';
+    echo '<div class="mediamanager-slider" id="id-mediamanager-layout">';
+    echo '<div id="id-mediamanager-layout-namespaces" class="layout" style="width: 25%;">';
+    html_msgarea();
+    echo hsc('Namespaces:');
+    echo '<br /><br />';
+    echo '<div class="scroll-container">';
+    tpl_mediaTree(true);
+    echo '</div>';
+    echo '</div>';
+    echo '<div id="id-mediamanager-layout-list" class="layout" style="width: 40%;">';
+    tpl_fileList();
+    echo '</div>';
+    echo '<div id="id-mediamanager-layout-detail" class="layout" style="width: 30%;">';
+    tpl_fileDetails();
+    echo '</div>';
+    echo '<div class="mediamanager-clear">&nbsp;</div>';
+    echo '</div>';
+    echo '</div>';
+}
 
 //Setup VIM: ex: et ts=4 :
 
diff --git a/lib/exe/mediamanager.php b/lib/exe/mediamanager.php
index 02fde5a8d4908c818d3cf211f668797c99783c3b..d4ebc2d387f65bc6ff22b1b91aa08a553995edbd 100644
--- a/lib/exe/mediamanager.php
+++ b/lib/exe/mediamanager.php
@@ -76,7 +76,11 @@
     }
 
     // handle meta saving
-    if($IMG && $_REQUEST['do']['save']){
+    if($IMG && @array_key_exists('save', $_REQUEST['do'])){
+        $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']);
+    }
+
+    if($IMG && @array_key_exists('save', $_REQUEST['mediado'])){
         $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']);
     }
 
@@ -102,9 +106,11 @@
             msg(sprintf($lang['deletefail'],noNS($DEL)),-1);
         }
     }
-
     // finished - start output
-    header('Content-Type: text/html; charset=utf-8');
-    include(template('mediamanager.php'));
+
+    if (!($_REQUEST['do'] == 'media')) {
+        header('Content-Type: text/html; charset=utf-8');
+        include(template('mediamanager.php'));
+    }
 
 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
diff --git a/lib/tpl/default/style.ini b/lib/tpl/default/style.ini
index c5b2c31a530a2f77afe9e4b55aec1eb9c0e520e1..bc28d1bbc9575e6fe62d0a3febe40fcdd5fd13d7 100644
--- a/lib/tpl/default/style.ini
+++ b/lib/tpl/default/style.ini
@@ -15,6 +15,7 @@ _mediaoptions.css = screen
 _admin.css        = screen
 _linkwiz.css      = screen
 _subscription.css = screen
+mediamanager.css  = screen
 
 rtl.css        = rtl
 print.css      = print