<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.5730.11" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>
<DIV><FONT size=2>it seems you have the dreadfull "mainmap not defined" 
error</FONT></DIV>
<DIV><FONT size=2>this will cause the whole tooltips javascript to not work, as 
you noticed.</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>to be more precise, the initialisation function of tooltips 
tries to access an object (mainmap) which is not ready yet. And then, later, 
when you try to pass the mouse on the map, it will throw the first 
error&nbsp;you reported in your mail.</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>you are using cartoweb 3.3? this problem was fixed in cartoweb 
cvs.</FONT></DIV>
<DIV><FONT size=2>if you do not want to update your cartoweb, you can simply 
replace, in dhtmlcode.tpl</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp; {literal}<BR>&nbsp; function initToolTips() 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (typeof(AjaxPlugins.ToolTips) != 
'undefined') {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{/literal}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.serviceUrl = 
'{$selfUrl}?toolTips=1';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.charSet = 
'{$charset}';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.lang = 
'{$toolTips_currentLanguage}';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{literal}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // init the imagemap (area 
tags)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($('map1')) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var imagemapTag = 
$('map1');<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
xAppendChild(mainmap.getDisplay('map').rootDisplayLayer, imagemapTag); 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.useMap();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp; 
}<BR>&nbsp; {/literal}</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>by</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp; {literal}<BR>&nbsp; function initToolTips() 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (typeof(AjaxPlugins.ToolTips) != 
'undefined') {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{/literal}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.serviceUrl = 
'{$selfUrl}?toolTips=1';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.charSet = 
'{$charset}';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
AjaxPlugins.ToolTips.lang = 
'{$toolTips_currentLanguage}';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
{literal}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // init the imagemap (area 
tags)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($('map1')) 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var imagemapTag = 
$('map1');<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args = new 
Array();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; args[0] = 
imagemapTag;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
checkMainmapExistence('callToolTips', args);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp; /*<BR>&nbsp;&nbsp; * args is an array containing all 
the arguments passed originally<BR>&nbsp;&nbsp; */<BR>&nbsp; function 
callToolTips(args) {<BR>&nbsp;&nbsp;&nbsp; 
xAppendChild(mainmap.getDisplay('map').rootDisplayLayer, args[0]); 
<BR>&nbsp;&nbsp;&nbsp; AjaxPlugins.ToolTips.useMap();<BR>&nbsp; }</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>&nbsp; /*<BR>&nbsp;&nbsp; * generic loop function to wait till 
the mainmap object is ready<BR>&nbsp;&nbsp; * receive the name of the output 
function and an array containing the parameters to pass to this 
function<BR>&nbsp;&nbsp; */<BR>&nbsp; function 
checkMainmapExistence(functionCall, args) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mainmap<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch 
(e){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setTimeout(function() { 
checkMainmapExistence(functionCall, args); }, 
100);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
call to dynamically named function<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
this[functionCall](args);<BR>&nbsp; }<BR>&nbsp; {/literal}<BR></FONT></DIV>
<DIV><FONT size=2>this will solve the first error.</FONT></DIV>
<DIV><FONT size=2>let see if it will fix the second too :)</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Oliver</FONT></DIV></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=oliver.christen@camptocamp.com 
  href="mailto:oliver.christen@camptocamp.com">Oliver Christen</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=frequens@gmail.com 
  href="mailto:frequens@gmail.com">frequens</A> ; <A 
  title=cartoweb-users@lists.maptools.org 
  href="mailto:cartoweb-users@lists.maptools.org">cartoweb-users@lists.maptools.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, February 05, 2007 12:32 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Cartoweb-users] ToolTips 
  addendum</DIV>
  <DIV><BR></DIV>
  <DIV><FONT size=2>this seems to be triggered by one of the Event.observe(..) 
  in the ToolTips.ajax.js</FONT></DIV>
  <DIV><FONT size=2>i cant say which one as I dont have that error 
  here.</FONT></DIV>
  <DIV><FONT size=2>Could you add a few alert() in your ToolTips.ajax.js to see 
  which one of the Event.observe(..)&nbsp; trigger the error ?</FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT size=2>Oliver</FONT></DIV>
  <BLOCKQUOTE 
  style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
    <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
    <DIV 
    style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
    <A title=frequens@gmail.com href="mailto:frequens@gmail.com">frequens</A> 
    </DIV>
    <DIV style="FONT: 10pt arial"><B>To:</B> <A 
    title=cartoweb-users@lists.maptools.org 
    href="mailto:cartoweb-users@lists.maptools.org">cartoweb-users@lists.maptools.org</A> 
    </DIV>
    <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, February 05, 2007 11:57 
    AM</DIV>
    <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Cartoweb-users] ToolTips 
    addendum</DIV>
    <DIV><BR></DIV><BR><BR>
    <DIV><SPAN class=gmail_quote>On 2/5/07, <B class=gmail_sendername>Oliver 
    Christen</B> &lt;<A 
    href="mailto:oliver.christen@camptocamp.com">oliver.christen@camptocamp.com</A>&gt; 
    wrote:</SPAN> 
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
      <DIV bgcolor="#ffffff">
      <DIV><FONT size=2>the addEventListener error is 
    strange.</FONT></DIV></DIV></BLOCKQUOTE>
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
      <DIV bgcolor="#ffffff">
      <DIV><FONT size=2>It is as if the object&nbsp;isnt available when IE try 
      to use it.</FONT></DIV>
      <DIV><FONT size=2>I had this kind of problem a few time with IE, but not 
      when using tooltips.</FONT></DIV>
      <DIV><FONT size=2>IE tries to access a property or object that hasnt been 
      initialised yet.</FONT></DIV>
      <DIV><FONT size=2>The easy way to find if that is the problem is to try on 
      an old computer ^_^. It will work there because js will be handled more 
      slowly.</FONT></DIV></DIV></BLOCKQUOTE>
    <DIV><BR>....<BR>&nbsp; _observeAndCache: function(element, name, observer, 
    useCapture) {<BR>&nbsp;&nbsp;&nbsp; if (!this.observers) this.observers = 
    [];<BR>&nbsp;&nbsp;&nbsp; if (element.addEventListener) { ((((THE SCRIPT 
    STOPS HERE)))) <SPAN 
    style="FONT-WEIGHT: bold"></SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    this.observers.push([element, name, observer, 
    useCapture]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    element.addEventListener(name, observer, useCapture);<BR>&nbsp;&nbsp;&nbsp; 
    } else if (element.attachEvent) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    this.observers.push([element, name, observer, 
    useCapture]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; element.attachEvent('on' + 
    name, observer);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; 
    },<BR>......<BR>&nbsp;<BR>Yes, it is prototype.js, see up where the debugger 
    complains<BR></DIV><BR>
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
      <DIV bgcolor="#ffffff">
      <DIV><FONT size=2>Im not even sure where the error is triggered, as its 
      not said in your error message :(</FONT></DIV>
      <DIV>Line 1727 seems to refer to prototype.js but as to why&nbsp;the error 
      would be thrown there...</DIV></DIV></BLOCKQUOTE>
    <DIV><BR>&nbsp;</DIV><BR></DIV>The other two are from the ToolTipsAjax.js: 
    <BR><BR><BR>line 140<BR>&nbsp;mouseMove: function() 
    {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
    (AjaxPlugins.ToolTips.isAjaxActive()) 
    {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    clearTimeout( 
    AjaxPlugins.ToolTips._timerMouseMove);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    AjaxPlugins.ToolTips._timerMouseMove = 
    setTimeout(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    "AjaxPlugins.ToolTips.checkMove()",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    AjaxPlugins.ToolTips.toolTipsTimeout 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    AjaxPlugins.ToolTips._result.hide(); (STOPS 
    HERE)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; 
    },<BR><BR><BR>and 219 (220)<BR><BR>&nbsp; sendRequest: function(argObject) 
    {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    this.abortRequest();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    this._result.reset();&nbsp; (STOPS HERE) 
    <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    this._result.wait();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var 
    url = this.serviceUrl + '&amp;' + 
    this.buildQueryString(argObject);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    Logger.send('Request sent with url :' + 
    url);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this._ajaxRequest = new 
    Ajax.Request 
    (<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    url,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    {method: 'get', onComplete: showResponse, onFailure: 
    reportError}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<BR><BR>Thank 
    you for going this through,<BR><BR>frequens<BR>
    <P>
    <HR>

    <P></P>_______________________________________________<BR>Cartoweb-users 
    mailing 
    list<BR>Cartoweb-users@lists.maptools.org<BR>http://lists.maptools.org/mailman/listinfo/cartoweb-users<BR></BLOCKQUOTE>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Cartoweb-users 
  mailing 
  list<BR>Cartoweb-users@lists.maptools.org<BR>http://lists.maptools.org/mailman/listinfo/cartoweb-users<BR></BLOCKQUOTE></BODY></HTML>