From a3f149eb5729ef1ba6d1c05b29fead1058f4c888 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 19 Sep 2008 13:01:57 -0400
Subject: [PATCH] Fix search box on Safari and make pages validate

---
 program/include/html.php           |    2 +-
 skins/default/watermark.html       |    1 +
 skins/default/mail.css             |    1 -
 program/include/rcube_browser.php  |    3 ++-
 program/include/rcube_template.php |    9 ++++++---
 5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/program/include/html.php b/program/include/html.php
index 8d3144d..50689f2 100644
--- a/program/include/html.php
+++ b/program/include/html.php
@@ -248,7 +248,7 @@
 {
     protected $tagname = 'input';
     protected $type = 'text';
-    protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked','onchange','onclick','disabled','readonly','spellcheck');
+    protected $allowed = array('type','name','value','size','tabindex','autocomplete','checked','onchange','onclick','disabled','readonly','spellcheck','results');
 
     public function __construct($attrib = array())
     {
diff --git a/program/include/rcube_browser.php b/program/include/rcube_browser.php
index 0d47664..162844f 100644
--- a/program/include/rcube_browser.php
+++ b/program/include/rcube_browser.php
@@ -43,7 +43,8 @@
         $this->ns  = ($this->ns4 || stristr($HTTP_USER_AGENT, 'netscape'));
         $this->ie  = stristr($HTTP_USER_AGENT, 'compatible; msie') && !$this->opera;
         $this->mz  = stristr($HTTP_USER_AGENT, 'mozilla/5');
-        $this->safari = stristr($HTTP_USER_AGENT, 'safari');
+        $this->khtml = stristr($HTTP_USER_AGENT, 'khtml');
+        $this->safari = ($this->khtml || stristr($HTTP_USER_AGENT, 'safari'));
 
         if ($this->ns) {
             $test = eregi("mozilla\/([0-9\.]+)", $HTTP_USER_AGENT, $regs);
diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index 61e4975..2108ed7 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -54,6 +54,7 @@
 
         $this->app = rcmail::get_instance();
         $this->config = $this->app->config->all();
+        $this->browser = new rcube_browser();
         
         //$this->framed = $framed;
         $this->set_env('task', $task);
@@ -707,8 +708,6 @@
             return '';
         }
 
-        $browser   = new rcube_browser();
-
         // try to find out the button type
         if ($attrib['type']) {
             $attrib['type'] = strtolower($attrib['type']);
@@ -755,7 +754,7 @@
             $attrib['alt'] = Q(rcube_label($attrib['alt']));
         }
         // set title to alt attribute for IE browsers
-        if ($browser->ie && $attrib['title'] && !$attrib['alt']) {
+        if ($this->browser->ie && $attrib['title'] && !$attrib['alt']) {
             $attrib['alt'] = $attrib['title'];
             unset($attrib['title']);
         }
@@ -1018,6 +1017,10 @@
         if (empty($attrib['id'])) {
             $attrib['id'] = 'rcmqsearchbox';
         }
+        if ($attrib['type'] == 'search' && !$this->browser->khtml) {
+          unset($attrib['type'], $attrib['results']);
+        }
+        
         $input_q = new html_inputfield($attrib);
         $out = $input_q->show();
 
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 81e4cff..ec78cd7 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -755,7 +755,6 @@
 #messagebody
 {
   position:relative;
-  min-height: 300px;
   padding-bottom: 10px;
   background-color: #FFFFFF;
 }
diff --git a/skins/default/watermark.html b/skins/default/watermark.html
index 85e5365..6202b8f 100644
--- a/skins/default/watermark.html
+++ b/skins/default/watermark.html
@@ -1,6 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
+  <title></title>
 </head>
 <body style="background-color:#F2F2F2;">
 

--
Gitblit v1.9.1