132,133d131
<   global $user;
< 
143,170c141
<         //$block['content'] = 'Mail Content';
<         $imap = new IMAPService();
<         $accounts = db_query('SELECT * FROM {pontomail_servers} WHERE uid = %d AND enabled = 1', $user->uid);
<         while($row = db_fetch_object($accounts)) {
<           $items[] = array('path' => 'pontomail/viewmailbox/accounts/' . $row->sid, 'title' => $row->server_name);
< 	  if((arg(1) == 'viewmailbox' || arg(0) == 'pontomail') && arg(3) == $row->sid) {
<             $block['content'] .= '<li class="expanded">'. l($row->server_name, 'pontomail/viewmailbox/accounts/'. $row->sid) .'</li>'."\n";
<             // List Subscribed Mail Boxes for this Account
<             $imap->connect($row->server_address, $row->server_port, $row->user, $row->password, "", (array)($row));
< 	    $block['content'] .= '<ul>'."\n";
<             if($imap->open()) {
<               $subs = $imap->get_subscriptions();
<               foreach ($subs as $key => $folder) {
< 	        $folders[] = IMAPService::get_folder_name($folder->name);
< 	      }
<               sort($folders);
<               $curbox = 0;
< 	      while ($curbox < count($folders)) {
<                 $block['content'] .= _pontomail_compute_folder_children($row->sid, $imap, $folders, $subs[0]->delimiter, $curbox);
<               }
<             }
<             $block['content'] .= '</ul>'."\n";
<           }
< 	  else {
<             $block['content'] .= '<li class="collapsed">'. l($row->server_name, 'pontomail/viewmailbox/accounts/'. $row->sid) .'</li>'."\n";
<           }
<         }
< 	$block['content'] = "\n".'<ul class="menu">'."\n". $block['content'] .'</ul>'."\n";
---
>         $block['content'] = 'Mail Content';
172d142
< 
182,234d151
< /**
<  * Recurent function generates folder list.
<  * %html_tags holds start and end html tags
<  * $account imap account number
<  * $imap imap connection
<  * @folders folder namesn
<  * $delimiter separates folder names
<  * $parbox number of current box
<  * $return folder list HTML
<  */
< function _pontomail_compute_folder_children($account, $imap, $folders, $delimiter, &$parbox) {
<   $nextbox = $parbox + 1;
<   $childs = '';
<   while (($nextbox < count($folders)) && (_pontomail_is_parent_folder($delimiter, $folders[$nextbox], $folders[$parbox]))) {
<     $childs .= _pontomail_compute_folder_children($account, $imap, $folders, $delimiter, $nextbox);
<   }
<   $curparts = explode($delimiter, $folders[$parbox]);
<   $real_name = $curparts[count($curparts)-1];
<   $folder_status = $imap->folder_status($folders[$parbox]);
<   if ($folder_status->rescent > 0 || $folder_status->unseen > 0) {
<     $string = $real_name .' ('. $folder_status->unseen .')';
<   }
<   else {
<     $string = $real_name;
<   }
<   $string = l($string, 'pontomail/viewmailbox/accounts/'. $account .'/'. $folders[$parbox]);
<   if ($childs) { 
<     $string = '<li class="expanded">'. $string .'</li>'."\n".'<ul>'."\n". $childs .'</ul>'."\n"; 
<   }
<   else {
<     $string = '<li class="leaf">'. $string .'</li>'."\n";
<   }
<   $parbox = $nextbox;
<   return $string;
< 
< }
< 
< /**
<  * Compares imap folder names to check if one folder is child of the other.
<  * $delimiter separates folder names
<  * $curbox_name name of the next folder
<  * $parbox_name name of the current folder
<  * $return true if one folder is child of the other
<  */
< function _pontomail_is_parent_folder($delimiter, $curbox_name, $parbox_name) {
<   $curparts = explode($delimiter, $curbox_name);
<   $curname = array_pop($curparts);
<   $actual_parname = implode($delimiter, $curparts);
<   $actual_parname = substr($actual_parname,0,strlen($parbox_name));
< 
<   return ($parbox_name == $actual_parname);
< }
< 
