diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index b965319510c72c7b472f4d4414cef8b12deca0c9..0adc1abcb6bd3347ad7ba425e7de588e1a1fd908 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -335,123 +335,8 @@ class TicketsAjaxAPI extends AjaxController {
         if(!$thisstaff || !($ticket=Ticket::lookup($tid)) || !$ticket->checkStaffAccess($thisstaff))
             Http::response(404, 'No such ticket');
 
-        $staff=$ticket->getStaff();
-        $lock=$ticket->getLock();
-        $error=$msg=$warn=null;
-
-        if($lock && $lock->getStaffId()==$thisstaff->getId())
-            $warn.='&nbsp;<span class="Icon lockedTicket">Ticket is locked by '.$lock->getStaffName().'</span>';
-        elseif($ticket->isOverdue())
-            $warn.='&nbsp;<span class="Icon overdueTicket">Marked overdue!</span>';
-
         ob_start();
-        echo sprintf(
-                '<div style="width:500px; padding: 2px 2px 0 5px;">
-                 <h2>%s</h2><br>',Format::htmlchars($ticket->getSubject()));
-
-        if($error)
-            echo sprintf('<div id="msg_error">%s</div>',$error);
-        elseif($msg)
-            echo sprintf('<div id="msg_notice">%s</div>',$msg);
-        elseif($warn)
-            echo sprintf('<div id="msg_warning">%s</div>',$warn);
-
-        echo '<table border="0" cellspacing="" cellpadding="1" width="100%" class="ticket_info">';
-
-        $ticket_state=sprintf('<span>%s</span>',ucfirst($ticket->getStatus()));
-        if($ticket->isOpen()) {
-            if($ticket->isOverdue())
-                $ticket_state.=' &mdash; <span>Overdue</span>';
-            else
-                $ticket_state.=sprintf(' &mdash; <span>%s</span>',$ticket->getPriority());
-        }
-
-        echo sprintf('
-                <tr>
-                    <th width="100">Ticket State:</th>
-                    <td>%s</td>
-                </tr>
-                <tr>
-                    <th>Create Date:</th>
-                    <td>%s</td>
-                </tr>',$ticket_state,
-                Format::db_datetime($ticket->getCreateDate()));
-        if($ticket->isClosed()) {
-            echo sprintf('
-                    <tr>
-                        <th>Close Date:</th>
-                        <td>%s   <span class="faded">by %s</span></td>
-                    </tr>',
-                    Format::db_datetime($ticket->getCloseDate()),
-                    ($staff?$staff->getName():'staff')
-                    );
-        } elseif($ticket->getEstDueDate()) {
-            echo sprintf('
-                    <tr>
-                        <th>Due Date:</th>
-                        <td>%s</td>
-                    </tr>',
-                    Format::db_datetime($ticket->getEstDueDate()));
-        }
-        echo '</table>';
-
-
-        echo '<hr>
-            <table border="0" cellspacing="" cellpadding="1" width="100%" class="ticket_info">';
-        if($ticket->isOpen()) {
-            echo sprintf('
-                    <tr>
-                        <th width="100">Assigned To:</th>
-                        <td>%s</td>
-                    </tr>',$ticket->isAssigned()?implode('/', $ticket->getAssignees()):' <span class="faded">&mdash; Unassigned &mdash;</span>');
-        }
-        echo sprintf(
-            '   <tr>
-                    <th width="100">Department:</th>
-                    <td>%s</td>
-                </tr>
-                <tr>
-                    <th>Help Topic:</th>
-                    <td>%s</td>
-                </tr>
-                <tr>
-                    <th>From:</th>
-                    <td>%s <span class="faded">%s</span></td>
-                </tr>',
-            Format::htmlchars($ticket->getDeptName()),
-            Format::htmlchars($ticket->getHelpTopic()),
-            Format::htmlchars($ticket->getName()),
-            $ticket->getEmail());
-        echo '
-            </table>';
-
-        $options = array();
-        $options[]=array('action'=>'Thread ('.$ticket->getThreadCount().')','url'=>"tickets.php?id=$tid");
-        if($ticket->getNumNotes())
-            $options[]=array('action'=>'Notes ('.$ticket->getNumNotes().')','url'=>"tickets.php?id=$tid#notes");
-
-        if($ticket->isOpen())
-            $options[]=array('action'=>'Reply','url'=>"tickets.php?id=$tid#reply");
-
-        if($thisstaff->canAssignTickets())
-            $options[]=array('action'=>($ticket->isAssigned()?'Reassign':'Assign'),'url'=>"tickets.php?id=$tid#assign");
-
-        if($thisstaff->canTransferTickets())
-            $options[]=array('action'=>'Transfer','url'=>"tickets.php?id=$tid#transfer");
-
-        $options[]=array('action'=>'Post Note','url'=>"tickets.php?id=$tid#note");
-
-        if($thisstaff->canEditTickets())
-            $options[]=array('action'=>'Edit Ticket','url'=>"tickets.php?id=$tid&a=edit");
-
-        if($options) {
-            echo '<ul class="tip_menu">';
-            foreach($options as $option)
-                echo sprintf('<li><a href="%s">%s</a></li>',$option['url'],$option['action']);
-            echo '</ul>';
-        }
-
-        echo '</div>';
+        include STAFFINC_DIR . 'templates/ticket-preview.tmpl.php';
         $resp = ob_get_contents();
         ob_end_clean();
 
@@ -578,9 +463,6 @@ class TicketsAjaxAPI extends AjaxController {
                 || !$ticket->checkStaffAccess($thisstaff))
             Http::response(404, 'No such ticket');
 
-        if (!$ticket->getCollaborators())
-            Http::response(404, 'No such ticket');
-
         ob_start();
         include STAFFINC_DIR . 'templates/collaborators-preview.tmpl.php';
         $resp = ob_get_contents();
diff --git a/include/staff/templates/collaborators-preview.tmpl.php b/include/staff/templates/collaborators-preview.tmpl.php
index f41150b7b6f29e8786802b497bbaa71f603deb8a..bd9a3b6d0d25199c94664b86566da1ca8eec6a1d 100644
--- a/include/staff/templates/collaborators-preview.tmpl.php
+++ b/include/staff/templates/collaborators-preview.tmpl.php
@@ -12,17 +12,33 @@ if (($users=$ticket->getCollaborators())) {?>
                 $user->getEmail());
     }
 }  else {
-    echo "Bro, not sure how you got here!";
+    echo "<strong>Ticket doesn't have collaborators.</strong>";
 }?>
 </table>
 <?php
 $options = array();
-//TODO: Add options to manage collaborators
+
+$options[] = sprintf(
+        '<a class="collaborators" id="managecollab" href="#tickets/%d/collaborators">%s</a>',
+        $ticket->getId(),
+        $ticket->getNumCollaborators()
+        ? 'Manage Collaborators' : 'Add Collaborator'
+        );
+
 if ($options) {
     echo '<ul class="tip_menu">';
     foreach($options as $option)
-        echo sprintf('<li><a href="%s">%s</a></li>', $option['url'], $option['action']);
+        echo sprintf('<li>%s</li>', $option);
     echo '</ul>';
 }
 ?>
 </div>
+<script type="text/javascript">
+$(function() {
+    $(document).on('click', 'a#managecollab', function (e) {
+        e.preventDefault();
+        $('.tip_box').remove();
+        return false;
+    });
+});
+</script>
diff --git a/include/staff/templates/collaborators.tmpl.php b/include/staff/templates/collaborators.tmpl.php
index 20e5192ca74e2b3a372f4b9eb6981def33cbd792..2c0de2a2ed82404b4ea3f0dbf39d9f7a79321df3 100644
--- a/include/staff/templates/collaborators.tmpl.php
+++ b/include/staff/templates/collaborators.tmpl.php
@@ -69,3 +69,57 @@ if ($_POST && $ticket && $ticket->getNumCollaborators()) {
 <?php
 }
 ?>
+
+<script type="text/javascript">
+$(function() {
+
+    $(document).on('click', 'form.collaborators a#addcollaborator', function (e) {
+        e.preventDefault();
+        $('div#manage_collaborators').hide();
+        $('div#add_collaborator').fadeIn();
+        return false;
+     });
+
+    $(document).on('click', 'form.collaborators a.remove', function (e) {
+        e.preventDefault();
+        var fObj = $(this).closest('form');
+        $('input'+$(this).attr('href'))
+            .val($(this).attr('href').substr(2))
+            .trigger('change');
+        $(this).closest('tr').addClass('strike');
+
+        return false;
+     });
+
+    $(document).on('change', 'form.collaborators input:checkbox, input[name="del[]"]', function (e) {
+       var fObj = $(this).closest('form');
+       $('div#savewarning', fObj).fadeIn();
+       $('input:submit', fObj).css('color', 'red');
+     });
+
+    $(document).on('click', 'form.collaborators input:reset', function(e) {
+        var fObj = $(this).closest('form');
+        fObj.find('input[name="del[]"]').val('');
+        fObj.find('tr').removeClass('strike');
+        $('div#savewarning', fObj).hide();
+        $('input:submit', fObj).removeAttr('style');
+    });
+
+    $(document).on('click', 'form.collaborators input.cancel', function (e) {
+        e.preventDefault();
+        var $elem = $(this);
+
+        if($elem.attr('data-href')) {
+            var href = $elem.data('href').substr(1);
+            $('.dialog.collaborators .body').load('ajax.php/'+href, function () {
+                });
+        } else {
+
+            $('div#manage_collaborators').show();
+            $('div#add_collaborator').hide();
+        }
+        return false;
+    });
+
+});
+</script>
diff --git a/include/staff/templates/ticket-preview.tmpl.php b/include/staff/templates/ticket-preview.tmpl.php
new file mode 100644
index 0000000000000000000000000000000000000000..82c3e392f80c91441330a5c9befee4e50e870752
--- /dev/null
+++ b/include/staff/templates/ticket-preview.tmpl.php
@@ -0,0 +1,172 @@
+<?php
+/*
+ * Ticket Preview popup template
+ *
+ */
+
+$staff=$ticket->getStaff();
+$lock=$ticket->getLock();
+$error=$msg=$warn=null;
+
+if($lock && $lock->getStaffId()==$thisstaff->getId())
+    $warn.='&nbsp;<span class="Icon lockedTicket">Ticket is locked by '.$lock->getStaffName().'</span>';
+elseif($ticket->isOverdue())
+    $warn.='&nbsp;<span class="Icon overdueTicket">Marked overdue!</span>';
+
+echo sprintf(
+        '<div style="width:600px; padding: 2px 2px 0 5px;" id="t%s">
+         <h2>Ticket #%s: %s</h2><br>',
+         $ticket->getNumber(),
+         $ticket->getNumber(),
+         Format::htmlchars($ticket->getSubject()));
+
+if($error)
+    echo sprintf('<div id="msg_error">%s</div>',$error);
+elseif($msg)
+    echo sprintf('<div id="msg_notice">%s</div>',$msg);
+elseif($warn)
+    echo sprintf('<div id="msg_warning">%s</div>',$warn);
+
+echo '<ul class="tabs">';
+
+echo '
+        <li><a id="preview_tab" href="#preview" class="active"
+            ><i class="icon-list-alt"></i>&nbsp;Ticket Summary</a></li>';
+if ($ticket->getNumCollaborators()) {
+echo sprintf('
+        <li><a id="collab_tab" href="#collab"
+            ><i class="icon-fixed-width icon-group
+            faded"></i>&nbsp;Collaborators (%d)</a></li>',
+            $ticket->getNumCollaborators());
+}
+echo '</ul>';
+
+echo '<div class="tab_content" id="preview">';
+echo '<table border="0" cellspacing="" cellpadding="1" width="100%" class="ticket_info">';
+
+$ticket_state=sprintf('<span>%s</span>',ucfirst($ticket->getStatus()));
+if($ticket->isOpen()) {
+    if($ticket->isOverdue())
+        $ticket_state.=' &mdash; <span>Overdue</span>';
+    else
+        $ticket_state.=sprintf(' &mdash; <span>%s</span>',$ticket->getPriority());
+}
+
+echo sprintf('
+        <tr>
+            <th width="100">Ticket State:</th>
+            <td>%s</td>
+        </tr>
+        <tr>
+            <th>Create Date:</th>
+            <td>%s</td>
+        </tr>',$ticket_state,
+        Format::db_datetime($ticket->getCreateDate()));
+if($ticket->isClosed()) {
+    echo sprintf('
+            <tr>
+                <th>Close Date:</th>
+                <td>%s   <span class="faded">by %s</span></td>
+            </tr>',
+            Format::db_datetime($ticket->getCloseDate()),
+            ($staff?$staff->getName():'staff')
+            );
+} elseif($ticket->getEstDueDate()) {
+    echo sprintf('
+            <tr>
+                <th>Due Date:</th>
+                <td>%s</td>
+            </tr>',
+            Format::db_datetime($ticket->getEstDueDate()));
+}
+echo '</table>';
+
+
+echo '<hr>
+    <table border="0" cellspacing="" cellpadding="1" width="100%" class="ticket_info">';
+if($ticket->isOpen()) {
+    echo sprintf('
+            <tr>
+                <th width="100">Assigned To:</th>
+                <td>%s</td>
+            </tr>',$ticket->isAssigned()?implode('/', $ticket->getAssignees()):' <span class="faded">&mdash; Unassigned &mdash;</span>');
+}
+echo sprintf(
+    '
+        <tr>
+            <th>From:</th>
+            <td>%s <span class="faded">%s</span></td>
+        </tr>
+        <tr>
+            <th width="100">Department:</th>
+            <td>%s</td>
+        </tr>
+        <tr>
+            <th>Help Topic:</th>
+            <td>%s</td>
+        </tr>',
+    Format::htmlchars($ticket->getName()),
+    $ticket->getEmail(),
+    Format::htmlchars($ticket->getDeptName()),
+    Format::htmlchars($ticket->getHelpTopic()));
+
+echo '
+    </table>';
+echo '</div>'; // ticket preview content.
+?>
+<div class="tab_content" id="collab" style="display:none;">
+    <table border="0" cellspacing="" cellpadding="1">
+        <colgroup><col style="min-width: 250px;"></col></colgroup>
+        <?php
+        if (($users=$ticket->getCollaborators())) {?>
+        <?php
+            foreach($users as $user) {
+                echo sprintf('<tr><td %s><i class="icon-%s"></i> %s <em>&lt;%s&gt;</em></td></tr>',
+                        ($user->isActive()? '' : 'class="faded"'),
+                        ($user->isActive()? 'comments' :  'comment-alt'),
+                        $user->getName(),
+                        $user->getEmail());
+            }
+        }  else {
+            echo "Ticket doesn't have collaborators.";
+        }?>
+    </table>
+    <br>
+    <?php
+    echo sprintf('<span><a class="collaborators"
+                            href="#tickets/%d/collaborators">%s</a></span>',
+                            $ticket->getId(),
+                            $ticket->getNumCollaborators()
+                                ? 'Manage Collaborators' : 'Add Collaborator'
+                                );
+    ?>
+</div>
+<?php
+$options = array();
+$options[]=array('action'=>'Thread ('.$ticket->getThreadCount().')','url'=>"tickets.php?id=$tid");
+if($ticket->getNumNotes())
+    $options[]=array('action'=>'Notes ('.$ticket->getNumNotes().')','url'=>"tickets.php?id=$tid#notes");
+
+if($ticket->isOpen())
+    $options[]=array('action'=>'Reply','url'=>"tickets.php?id=$tid#reply");
+
+if($thisstaff->canAssignTickets())
+    $options[]=array('action'=>($ticket->isAssigned()?'Reassign':'Assign'),'url'=>"tickets.php?id=$tid#assign");
+
+if($thisstaff->canTransferTickets())
+    $options[]=array('action'=>'Transfer','url'=>"tickets.php?id=$tid#transfer");
+
+$options[]=array('action'=>'Post Note','url'=>"tickets.php?id=$tid#note");
+
+if($thisstaff->canEditTickets())
+    $options[]=array('action'=>'Edit Ticket','url'=>"tickets.php?id=$tid&a=edit");
+
+if($options) {
+    echo '<ul class="tip_menu">';
+    foreach($options as $option)
+        echo sprintf('<li><a href="%s">%s</a></li>',$option['url'],$option['action']);
+    echo '</ul>';
+}
+
+echo '</div>';
+?>
diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php
index 4829fd6676b8c711a121fb1fb053e99e0ee7c2fa..7449197a12b02c09961373d12703935d3d53d16b 100644
--- a/include/staff/ticket-view.inc.php
+++ b/include/staff/ticket-view.inc.php
@@ -459,7 +459,7 @@ $tcount+= $ticket->getNumNotes();
                                 $ticket->getNumActiveCollaborators(),
                                 $ticket->getNumCollaborators());
 
-                    echo sprintf('<span><a class="collaborators" id="manageCollab"
+                    echo sprintf('<span><a class="collaborators preview"
                             href="#tickets/%d/collaborators"><span id="recipients">%s</span></a></span>',
                             $ticket->getId(),
                             $recipients);
diff --git a/scp/css/scp.css b/scp/css/scp.css
index d3eaceb6637dec2e8e7071a371c6c74635cee883..81c0e176375bed89111cf0c39dc9db5752c71be0 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -842,23 +842,29 @@ h2 .reload {
     padding:0 10px;
 }
 
-#response_options ul.tabs {
-    padding:4px 0 0 190px;
+ul.tabs {
+    padding:4px 0 0 20px;
     margin:0;
+    margin-bottom: 5px;
     text-align:center;
     height:29px;
     border-bottom:1px solid #aaa;
     background:#eef3f8;
 }
 
-#response_options ul.tabs li {
+#response_options ul.tabs {
+    padding-left:190px;
+}
+
+
+ul.tabs li {
     margin:0;
     padding:0;
     display:inline;
     list-style:none;
 }
 
-#response_options ul.tabs li a {
+ul.tabs li a {
     width:130px;
     font-weight:bold;
     padding:5px;
@@ -882,7 +888,7 @@ h2 .reload {
     background-repeat:no-repeat;
 }
 
-#response_options ul.tabs li a.active {
+ul.tabs li a.active {
     height:18px;
     color:#184E81;
     background-color:#f9f9f9;
@@ -946,7 +952,7 @@ h2 .reload {
     display:block;
     height:30px;
     position:absolute;
-    z-index:1000;
+    z-index:3;
 }
 
 .tip_arrow {
@@ -955,7 +961,7 @@ h2 .reload {
     top:5px;
     left:-12px;
     width:12px;
-    z-index:700;
+    z-index:4;
 }
 
 .tip_box.right .tip_arrow {
@@ -986,7 +992,7 @@ h2 .reload {
     -moz-box-shadow: 3px 3px 3px #666;
     -webkit-box-shadow: 3px 3px 3px #666;
     box-shadow: 3px 3px 3px #666;
-    z-index:500;
+    z-index:3;
     position:absolute;
     top:0;
     left:-1px;
@@ -1256,7 +1262,7 @@ time {
     background:#f8f8f8;
     border:2px solid #2a67ac;
     display:none;
-    z-index:5;
+    z-index:6;
     box-shadow: 0 5px 60px #001;
     border-radius: 5px;
     max-height: 72%;
@@ -1264,7 +1270,7 @@ time {
 }
 
 .redactor_air {
-    z-index: 6 !important;
+    z-index: 7 !important;
 }
 
 .dialog#advanced-search {
@@ -1479,7 +1485,7 @@ ul.progress li.no small {color:red;}
     width: 100%;
     height: 100%;
     background: #000;
-    z-index: 1;
+    z-index: 5;
     -webkit-transform: translate3d(0,0,0);
 }
 
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 30458bcaa9a76c51b02ae1fdc35ae014519a41ef..6e2ae6ea829afbe03f15d9722a5264a5213b7074 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -548,6 +548,31 @@ $(document).ready(function(){
            });
        }
    });
+
+   //Tabs
+   $(document).on('click.tab', 'ul.tabs li a', function(e) {
+        e.preventDefault();
+        if ($('.tab_content'+$(this).attr('href')).length) {
+            $('ul.tabs li a').removeClass('active');
+            $(this).addClass('active');
+            $('.tab_content').hide();
+            $('.tab_content'+$(this).attr('href')).show();
+        }
+    });
+
+    //Collaborators
+    $(document).on('click', 'a.collaborator, a.collaborators', function(e) {
+        e.preventDefault();
+        var url = 'ajax.php/'+$(this).attr('href').substr(1);
+        $.dialog(url, 201, function (resp) {
+           $('input#emailcollab').show();
+           $('#recipients').text(resp);
+           $('.tip_box').remove();
+        }, {
+            onshow: function() { $('#user-search').focus(); }
+        });
+        return false;
+     });
 });
 
 // NOTE: getConfig should be global
diff --git a/scp/js/ticket.js b/scp/js/ticket.js
index 66d5881dc7f4893043f76f37e28b57457b11ece1..aa808746c9b84e305eefbfb8db04d04cc78496b3 100644
--- a/scp/js/ticket.js
+++ b/scp/js/ticket.js
@@ -363,69 +363,6 @@ jQuery(function($) {
         return false;
     });
 
-    //Collaborators
-    $(document).on('click', 'a.collaborator, a.collaborators', function(e) {
-        e.preventDefault();
-        var url = 'ajax.php/'+$(this).attr('href').substr(1);
-        $.dialog(url, 201, function (resp) {
-           $('input#emailcollab').show();
-           $('#recipients').text(resp);
-        }, {
-            onshow: function() { $('#user-search').focus(); }
-        });
-;
-        return false;
-     });
-
-    $(document).on('click', 'form.collaborators a#addcollaborator', function (e) {
-        e.preventDefault();
-        $('div#manage_collaborators').hide();
-        $('div#add_collaborator').fadeIn();
-        return false;
-     });
-
-    $(document).on('click', 'form.collaborators a.remove', function (e) {
-        e.preventDefault();
-        var fObj = $(this).closest('form');
-        $('input'+$(this).attr('href'))
-            .val($(this).attr('href').substr(2))
-            .trigger('change');
-        $(this).closest('tr').addClass('strike');
-
-        return false;
-     });
-
-    $(document).on('change', 'form.collaborators input:checkbox, input[name="del[]"]', function (e) {
-       var fObj = $(this).closest('form');
-       $('div#savewarning', fObj).fadeIn();
-       $('input:submit', fObj).css('color', 'red');
-     });
-
-    $(document).on('click', 'form.collaborators input:reset', function(e) {
-        var fObj = $(this).closest('form');
-        fObj.find('input[name="del[]"]').val('');
-        fObj.find('tr').removeClass('strike');
-        $('div#savewarning', fObj).hide();
-        $('input:submit', fObj).removeAttr('style');
-    });
-
-
-    $(document).on('click', 'form.collaborators input.cancel', function (e) {
-        e.preventDefault();
-        var $elem = $(this);
-
-        if($elem.attr('data-href')) {
-            var href = $elem.data('href').substr(1);
-            $('.dialog.collaborators .body').load('ajax.php/'+href, function () {
-                });
-        } else {
-
-            $('div#manage_collaborators').show();
-            $('div#add_collaborator').hide();
-        }
-        return false;
-    });
-
     $(document).on('change', 'form#reply select#emailreply', function(e) {
          var $cc = $('form#reply tbody#cc_sec');
         if($(this).val() == 0)
diff --git a/scp/js/tips.js b/scp/js/tips.js
index db94a1acb362cb5b64e4b56178a5d6d780e3b00a..fb7ccbf93e693b2f5b2df6a55716e49a9406a3fa 100644
--- a/scp/js/tips.js
+++ b/scp/js/tips.js
@@ -161,7 +161,7 @@ jQuery(function() {
     });
 
 
-    $('a#manageCollab').live('mouseover', function(e) {
+    $('a.collaborators.preview').live('mouseover', function(e) {
         e.preventDefault();
         var elem = $(this);
 
@@ -183,7 +183,7 @@ jQuery(function() {
 
 
     //Ticket preview
-    $('.ticketPreview').live('mouseover', function(e) {
+    $('.ticketPreview').live('mouseover click', function(e) {
         e.preventDefault();
         var elem = $(this);
 
@@ -192,18 +192,19 @@ jQuery(function() {
         var id='t'+vars[1];
         var xoffset = 80;
 
-
-        elem.data('id',id);
-        elem.data('timer',0);
-        if($('.' + id).length == 0) {
+        elem.data('timer', 0);
+        if(!elem.data('id')) {
+            elem.data('id', id);
             if(e.type=='mouseover') {
                  /* wait about 1 sec - before showing the tip - mouseout kills the timeout*/
                  elem.data('timer',setTimeout(function() { showtip(url,elem,xoffset);},750))
             }else{
+                clearTimeout(elem.data('timer'));
                 showtip(url,elem,xoffset);
             }
         }
     }).live('mouseout', function(e) {
+        $(this).data('id', 0);
         clearTimeout($(this).data('timer'));
     });