Tool Tip / GUI-script battle

I've got a slider that invokes a handler that performs some AppleScript GUI scripting ( ... unfortunate, yes, but there's no other way.)
The slider has a Tool Tip.
If I click and drag outside of the slider's mouseDown region, no problem. The GUI stuff works as expected.
If I drag inside the slider's mouseDown region, the ToolTip appears at it designated time, as if I were hovering. This causes a NSReceiverEvaluationScriptError: 4 (1) error. Certainly makes sense that I'd get an error when the Tool Tip comes to the front. But I'm confused as to why it appears. None of my non-GUI related sliders have this problem.
Suggestions?
Here are a few other Tool Tip questions:
1) Can I increase or decrease the display length for all tool tips?
2) Is it possible to keep tool tips visible indefinitely while the user hovers the mouse over the object, closing on mouseLeave?
3) Can I toggle all Tool Tips to enabled or disabled?
Thanks, John

I've got a slider that invokes a handler that
performs some AppleScript GUI scripting ( ...
unfortunate, yes, but there's no other way.)
The slider has a Tool Tip.
If I click and drag outside of the slider's mouseDown
region, no problem. The GUI stuff works as expected.
If I drag inside the slider's mouseDown region, the
ToolTip appears at it designated time, as if I were
hovering. This causes a
NSReceiverEvaluationScriptError: 4 (1) error.
Certainly makes sense that I'd get an error when the
Tool Tip comes to the front. But I'm confused as to
why it appears. None of my non-GUI related sliders
have this problem.
Suggestions?
Just noticed: on another computer (a powerBook) I get the NSReceiver error at any click or drag. Cleaned all targets and got the same result.
I set a one second delay to make sure the GUI window gets time to come to the front but to no avail. There's a error at every click or drag.
John

Similar Messages

  • GUI scripting question -am I sunk?

    Hi all,
    I am working on an Applescript to bring up two different non-Applescript-able applications (ie. ones w/o a dictionary) and am getting the error:
    NSReceiverEvaluationScriptError : 4 from Applescript.
    I have "Enable access for assitive devices" checked in SystemPreferences and am GUI scripting.
    Here's the snippet of code that gives the error:
    tell application "System Events"
    if UI elements enabled then
    activate application "TRx Recorder"
    tell button " Record " of tool bar 1 of window "TRx Recorder"
    click
    end tell
    end if
    end tell
    I generated the code "tell button ..." from the Prefab's UI Browser.
    I've tried clicking via the name of the button, and via the position of the button. Same error.
    Does this mean I'm sunk and can't get the app to respond to my Applescript?
    When I select the Action of button " Record " from within the UI Browser, it works fine.
    What am I doing wrong?
    Thanks!
    Ed

    Hi Camelot,
    Yes indeed I needed a "tell process ..." block, as well as, 2 extra spaces in the label for the Record button.
    I got the following to work:
    tell application "System Events"
    if UI elements enabled then
    activate application "TRx Recorder"
    tell process "TRx Recorder"
    click button " Record " of tool bar 1 of window "TRx Recorder"
    end tell
    end if
    end tell
    I dug around using UI Browser and discovered that I needed 2 blanks in front of and 2 blanks behind of the label "Record" to correctly access the button. I originally had 1 space in front of Record and 1 space after Record within the quotes. With only 1 space I get the Applescript error I mentioned. With 2 I don't get the error.
    Many thanks for the tip, it made me look closer at the labels of the buttons in UI Browser.
    Ed

  • How to implement tool-tip for the list items for the Choice column in SharePoint 2013

    I had created a simple list with a "Choice" column, i have three entries in my drop-down, 
    First Entry
    Second Entry
    Third Entry.
    If i select any entries in drop-down and hour-over (Second Entry), a
    tool-tip need need to show. 
    Is it possible? If yes how to implement any help will be appreciated.

    Hi,
    We can use JavaScript to achieve it.
    The following code for your reference:
    <script type="text/javascript" src="/sites/DennisSite/Shared%20Documents/js/wz_tooltip.js"></script>
    <script type="text/javascript" src="/sites/DennisSite/Shared%20Documents/js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
    $(function () {
    $("select[title='Choice']").change(function(){
    Tip($(this).val());
    $("select[title='Choice']").mouseout(function(){
    UnTip();
    </script>
    Download wz_tooltip.js:
    http://www.walterzorn.de/en/tooltip/tooltip_e.htm#download
    Best Regards
    Dennis Guo
    TechNet Community Support

  • I would like to see the actual email address in a Tool Tip when I mouse over the From address

    I use Thunderbird to access my IMAP email account with a non-enormous ISP. Thunderbird is a great email client.
    One thing I really miss when using Thunderbird vs. going to my email using a browser: in the browser, when I mouse over the From email address, a tool tip pops up showing me the actual email address, not the alias (or whatever it's called). Please see the attached image for an example of the mouse over tool tip. Is there a way to do this in Thunderbird?

    more misinformation and urban myths here than facts.
    1. Thunderbird blocks remote images by default.
    2. Thunderbird does not allow scripts in mail. If they are there they do not run.
    3. The only link SPAMMERS or anybody in marketing gets to you is when you download their remote images, run scripts in the mail or click on links to go to their web sites.
    4. When I or a spammer send a mail to say [email protected] Most mail servers will refuse delivery unless the address exists on their server.
    5. True spammers do not care if a large percentage of the mail they send is to dead email addresses and they make little or no effort to validate active addresses. Corporations like Walmart, Woolworths here in Australia, Ebay and Paypal are very interested.
    With that knowledge, you are now aware that opening the mail tells a spammer nothing even in the remote chance they are interested.
    Oh and the source of the urban myth is Microsoft whose mail clients allow scripting, remote images and uses the file extension of the file not it's mime type to determine how to open it.
    That is the difference between a mail client where the developers think security first and one where the developers give the user what they want and try to tack on security after the fact.

  • My custom Tool tip on spark data Grid don't work ?

    I want to add panel component as my tooltip for each row in my Spark DataGrid. So when mouse rollover the user can see the information for each the ship. I want a panel as my tooltip for dataGrid cause I want to organize my data neatly and also place a image in the panel.
    I came across :http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf60d65-7ff6.html  where they show an example of "Implementing the IToolTip interface" using the panel.I tried manipulating the codes but it didt work for my spark dataGrid.
    So my question :
    Can some one pls show me how I can use the Panel as my tool tip for each row in spark data grid.
    I have been struggling for quite some time.If possible pls Give me an example.
    This is my codes below (I tried to follow the example from :http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf60d65-7ff6.html#WS2d b454920e96a9e51e63e3d11c0bf60d65-7ff4 -"Implementing the IToolTip interface")
    My MXML Application codes :
        <fx:Script>
        <![CDATA[
            import DesignItemRenderer.PanelToolTip;
            import mx.events.ToolTipEvent;
            import mx.collections.ArrayCollection;         
            import mx.controls.Alert;  
            import spark.events.GridEvent; 
            [Bindable]
            private var myArrivalShips:ArrayCollection = new ArrayCollection([
                {arrivalShipsName:"Ship A", ETD:"12 March"},
                {arrivalShipsName:"Ship B", ETD:"25 March"}            
            private function createCustomTip(event:ToolTipEvent):void {
                var ptt:PanelToolTip = new PanelToolTip();
                ptt.title = "my Ship Info";
                ptt.bodyText = "my data for the ship";
                event.toolTip = ptt;
        ]]>
    </fx:Script>
    <s:BorderContainer x="267" y="11" width="331" height="586">
        <s:DataGrid id="arrivalTable" x="10" y="326" width="302" height="205" requestedRowCount="4" dataProvider="{myArrivalShips}" toolTipCreate="createCustomTip(event)">
            <s:columns>
                <s:ArrayList>
                    <s:GridColumn dataField="arrivalShipsName" headerText="Arrival Ships" ></s:GridColumn>
                    <s:GridColumn dataField="ETD" headerText="ETD"></s:GridColumn>             
                </s:ArrayList>
            </s:columns>           
        </s:DataGrid>
        <s:BorderContainer x="10" y="19" width="302" height="285">
        </s:BorderContainer>
    </s:BorderContainer>
    My Custom Panel codes :
    <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark"
         xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
         implements="mx.core.IToolTip" >
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            [Bindable]
            public var bodyText:String = "";
            //  Implement required methods of the IToolTip interface; these
            //  methods are not used in this example, though.
            public var _text:String;
            public function get text():String {
                return _text;
            public function set text(value:String):void {
        ]]>
    </fx:Script>
    <s:RichText text="{bodyText}" percentWidth="100"/>
    </s:Panel>

    Ok I was getting ready to post the renderer code and then found the problem. I had copied this code from another renderer which had contentBackgroundAlpha=0 in the MXAdvancedDataGridItemRenderer tag. When I removed it, the style of the TextArea worked as intended. Your comment helped me to take a closer look at the renderer code, so thank you.

  • SAP GUI Scripting Wizzard Windows7 does not work

    Dear Experts,
    I am quite a novice when it comes to SAP GUI scripting (let alone any other development), therefore my question might be rather stupid. After my PC was migrated from XP to Windows 7 it is no longer possible to use the SAP GUI scripting wizzard. When you select it from the menue, simply nothing happens.
    Does anyone have an idea what I need to do to have this useful tool back on my PC?
    We are running SAP GUi 7.1
    Thanks for your help
    Theo

      Here is SAP GUI wizard replacement tool...its in auto IT - enjoy
    http://www.autoitscript.com/forum/topic/149540-sapwizardudf/
    I had the tech guys here install ,  the latest GUI patch level 15,
    and the script development tools not working issue has been fixed
    They (SAP?) removed the 'script development tools' menu option!?
    I have not installed the MS hotfix, but
    My question is,  it true the 'Script development tools' is gone?
    Other methods
    a) This (free) non SAP solution seems to work however...any other ideas?
    Scripting Tracker Lite
    http://scn.sap.com/docs/DOC-32728
    b) The Activate GuiXT tool in SAP GUI also does give you some clues in the element window
    and could be an alternative way , to get control names.
    eg a radio button is R[P_CONTROL_ID] when it should be radP_CONTROL_ID
    c) The SAP script recording and playback ,  to a vbs script will give you the control names also, if you edit the script.
    You must of course have GUI scripting on in rz11
    I can't read this note https://service.sap.com/sap/support/notes/1633639 - need a password!

  • Spry tool tip does not work in template or child pages within an editable region. Why not?

    Ok. so I am getting pretty frustrated. I take the time to learn how to use CSS and to create a template page for a Contractor Site (www.ContractorInsurance.net). The idea is to create a page that I can use for different classes of Contractors...right?
    Then I get all happy about being able to insert ToolTip onto pages to help the user. Great!
    LIfe to turn to Sorrow after nearly five hours of searching for a "eeking" answer.
    So what good does it do to have an Editable region to update if we cannot have the flexibility to insert a tool tip on child pages?  Ok so the fast solution is to what... Have a question mark image, insert another apDiv, name it toolTip_Not and provide it with a show=hide behavior?
    RRRRRrrr...
    This really sucks not being able to find a solution within a reasonable amount of time.

    I have tried thank you. However...it is still not working.
    www.ContractorInsurance.net/course_of_construction.php
    The error message is "Making this change would require code that is locked by a template translator"
        Re: Spry tool tip does not work in template or child pages within an editable region. Why not?
        created by altruistic gramps in Spry Framework for Ajax - View the full discussion
    If you have a look at the following simple document with a tooltipTooltip trigger goes here.
    Tooltip content goes here.
    you will notice that a couple of lines have been placed in the HEAD section of the document. When using DW templates, the HEAD section is usually not editable, hence the error mesaage. By default, your template should have an editable region in it just before the closing tag. It looks like this: <!-- TemplateBeginEditable name="head" > <! TemplateEndEditable --> Dreamweaver should be able to find that editable region and insert the
    <script> tag there automatically. Because you don't have an editable region like that in the <head>, open the master template, and paste the code above just before the closing </head>
    tag. Gramps
    Edited to remove personal data

  • JCOP tools without GUI

    Hello,
    i would like to know, what scripts is JCOP tools exactly running while building Java files (generating class files) and converting them to CAP files. I.e. what does "Build autoimatically" exactly do in ECLIPSE IDE with JCOP plug-in? What .jar files are also used?
    I.e. i want to be able to rebuild my Java Card projects for different version os java cards without opening the Eclipse IDE, openning projects and building them in IDE.
    I would appreciate nay information.
    Thanks a lot,
    best regards,
    newbie.

    Hello.
    Thanks a lot lexdabear for your reply.
    The post you've noticed above was very useful for me. I have solved the problem with tric.jar and also would like to add my 50 cents regarding some solutions proposed by Lillesand.
    The error listed below can be simply avoided by explicitly declaring the whole name of the applet, i.e. -a 0xF3:0xF3:0xF3:0xF3:0xF3:0xA1:0xA1:0xA1:0xA1:0xA1 no.qfree.keyexport.KeyDiversification.
    E:\tools\captest2>java -cp e:\eclipse\plugins\com.ibm.bluez.jcop.eclipse_3.1.2\tric.jar com.ibm.jc.apps.tric.jc.Converter
    -dd e:\tools\captest2\
    -cp e:\workspace\KeyExport\bin\;e:\tools\java_card_kit-2_2_2\lib\api.jar
    -ep E:\tools\java_card_kit-2_2_2\api_export_files
    -a 0xF3:0xF3:0xF3:0xF3:0xF3:0xA1:0xA1:0xA1:0xA1:0xA1 KeyDiversification 0xF3:0xF3:0xF3:0xF3:0xF3:0xA2:0xA2:0xA2:0xA2:0xA2 StringStorage
    no.qfree.keyexport 0xF3:0xF3:0xF3:0xF3:0xF3 1 0
    Error: class java.lang.RuntimeException, no such applet class LKeyDiversification; found in package no/qfree/keyexportAlso my there are some facts that i have figured out during the usage of tric.jar through command line:
    1. Eclipse IDE produces slightly different .class files than i do by using
    javac -source 1.3 -target 1.2 -g options during the compilation. May be it uses additional options?
    2. Perhaps, as a result, a bit different CAP files are produced that the ones built automatically using Eclipse IDE GUI. Those CAP files also slightly differ in size (usually smaller tha mines). The only components that differ in size are:
    Method.cap
    Debug.cap.
    The files produced through command line work just fine. I guess, that JCOP tools may additionally optimize the .class files to produce a bit smaller .CAP files.
    3. Regarding the version information JCOP tools tric.jar produces
    CAP files with version M=2, m=1 when using JC211 API, and
    CAP files with version M=2, M=2 when using JC221.
    I also converted the same files uding JCDKv2.2.1. It produces CAP files of version M=2, M=1.
    In my opinion, all the problems that occured in the aforementioned post by Lillesand were caused by wrong usage of the JC2.2.2 export files.
    I totally agree with you, lexdabear regarding choosing only one solution. In case you are using JCOP tools (through GUI or command line) you must use JCOP JC API .jar files and tric.jar converter.
    If you are using JCDK, you must use its api.jar library with export files and converter from JCDK (coverter.bat).
    I hope this info might be useful.
    Best regards,
    Eve
    Edited by: Ieva on Nov 5, 2007 4:11 AM

  • Is spry tool tips supposed to work after inserting it in DW Cs6 ?

    Is spry tool tips supposed to work after inserting it in DW Cs6 or am I supposed to get it from Adobe Labs somwhere. I get a message to GET but clicking does nothing.

    Hi,
    if you resist using DW tooltips you have to use one of the elder DW versions. So you can (from my German DW) > insert  > Spry > Spry-QuickInfo.
    From one of my elder websites I can give you the code (you have to adapt it). It will work, provided that you have hold your "SpryAssets" files/directory.:
    <head>
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryTooltip.js" type="text/javascript"></script>
    and
    <script type="text/javascript">
    var sprytooltip2 = new Spry.Widget.Tooltip("sprytooltip", "#sprytrigger2", {followMouse:true});
    </script>
    </body>
    Hans-Günter

  • Tool tip to not move

    Hi I'm a big fan. long time lurker first time poster
    Currently the position of the tool tip depends on where the cursor first hovers over the image.  Is there a way for the tool tip to appear in the same place no mater where the image is hovered?
    below is the js and css
    thanks
    // SpryTooltip.js - version 0.9 - Spry 1.6.1
    (function() { // BeginSpryComponent
    if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
    Spry.Widget.BrowserSniff = function()
    var b = navigator.appName.toString();
    var up = navigator.platform.toString();
    var ua = navigator.userAgent.toString();
    this.mozilla = this.ie = this.opera = this.safari = false;
    var re_opera = /Opera.([0-9\.]*)/i;
    var re_msie = /MSIE.([0-9\.]*)/i;
    var re_gecko = /gecko/i;
    var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
    var r = false;
    if ( (r = ua.match(re_opera))) {
    this.opera = true;
    this.version = parseFloat(r[1]);
    } else if ( (r = ua.match(re_msie))) {
    this.ie = true;
    this.version = parseFloat(r[1]);
    } else if ( (r = ua.match(re_safari))) {
    this.safari = true;
    if(parseFloat(r[2]) < 420)
    this.version = 2;
    else
    this.version = 3;
    } else if (ua.match(re_gecko)) {
    var re_gecko_version = /rv:\s*([0-9\.]+)/i;
    r = ua.match(re_gecko_version);
    this.mozilla = true;
    this.version = parseFloat(r[1]);
    this.windows = this.mac = this.linux = false;
    this.Platform = ua.match(/windows/i) ? "windows" :
    (ua.match(/linux/i) ? "linux" :
    (ua.match(/mac/i) ? "mac" :
    ua.match(/unix/i)? "unix" : "unknown"));
    this[this.Platform] = true;
    this.v = this.version;
    if (this.safari && this.mac && this.mozilla) {
    this.mozilla = false;
    Spry.is = new Spry.Widget.BrowserSniff();
    Spry.Widget.Tooltip = function(tooltip_element, trigger_selector, options)
    options = Spry.Widget.Utils.firstValid(options, {});
    this.init(trigger_selector, tooltip_element, options);
    if (Spry.Widget.Tooltip.onloadDidFire)
    this.attachBehaviors();
    Spry.Widget.Tooltip.loadQueue.push(this);
    Spry.Widget.Tooltip.prototype.init = function(trigger_element, tooltip_element, options)
    var Utils = Spry.Widget.Utils;
    this.triggerElements = Utils.getElementsByClassName(trigger_element);
    this.tooltipElement = Utils.getElement(tooltip_element);
    options.showDelay = parseInt(Utils.firstValid(options.showDelay, 0), 10);
    options.hideDelay = parseInt(Utils.firstValid(options.hideDelay, 0), 10);
    if (typeof this.triggerElements == 'undefined' || !(this.triggerElements.length > 0))
    this.showError('The element(s) "' + trigger_element + '" do not exist in the page');
    return false;
    if (typeof this.tooltipElement == 'undefined' || !this.tooltipElement)
    this.showError('The element "' + tooltip_element + '" do not exists in the page');
    return false;
    this.listenersAttached = false;
    this.hoverClass = "";
    this.followMouse = false;
    this.offsetX = 15;
    this.offsetY = 15;
    this.closeOnTooltipLeave = false;
    this.useEffect = false;
    Utils.setOptions(this, options);
    this.animator = null;
    for (var i =0; i < this.triggerElements.length; i++)
    if (!this.triggerElements[i].className)
    this.triggerElements[i].className = '';
    if (this.useEffect){
    switch (this.useEffect.toString().toLowerCase()){
    case 'blind': this.useEffect = 'Blind'; break;
    case 'fade': this.useEffect = 'Fade'; break;
    default:
    this.useEffect = false;
    this.visibleTooltip = false;
    // Hack for FF 3 - Safari 3: force painting of the element, in order to have the correct display
    this.tooltipElement.offsetHeight;
    // Optimisation: save browser work if display is already 'none'
    if (Spry.Widget.Utils.getStyleProperty(this.tooltipElement, 'display') != 'none')
    this.tooltipElement.style.display = 'none';
    if (typeof this.offsetX != 'numeric')
    this.offsetX = parseInt(this.offsetX, 10);
    if (isNaN(this.offsetX))
    this.offsetX = 0;
    if (typeof this.offsetY != 'numeric')
    this.offsetY = parseInt(this.offsetY, 10);
    if (isNaN(this.offsetY))
    this.offsetY = 0;
    this.tooltipElement.style.position = 'absolute';
    this.tooltipElement.style.top = '0px';
    this.tooltipElement.style.left = '0px';
    Spry.Widget.Tooltip.onloadDidFire = false;
    Spry.Widget.Tooltip.loadQueue = [];
    Spry.Widget.Tooltip.addLoadListener = function(handler)
    if (typeof window.addEventListener != 'undefined')
    window.addEventListener('load', handler, false);
    else if (typeof document.addEventListener != 'undefined')
    document.addEventListener('load', handler, false);
    else if (typeof window.attachEvent != 'undefined')
    window.attachEvent('onload', handler);
    Spry.Widget.Tooltip.processLoadQueue = function(handler)
    Spry.Widget.Tooltip.onloadDidFire = true;
    var q = Spry.Widget.Tooltip.loadQueue;
    var qlen = q.length;
    for (var i = 0; i < qlen; i++)
    if (!q[i].listenersAttached)
    q[i].attachBehaviors();
    Spry.Widget.Tooltip.addLoadListener(Spry.Widget.Tooltip.processLoadQueue);
    Spry.Widget.Tooltip.prototype.addClassName = function(ele, className)
    if (!ele || !className)
    return;
    if (ele.className.indexOf(className) == -1)
    ele.className += (ele.className ? " " : "") + className;
    Spry.Widget.Tooltip.prototype.removeClassName = function(ele, className)
    if (!ele || !className )
    return;
    ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
    Spry.Widget.Tooltip.prototype.showTooltip = function()
    if (!this.visibleTooltip)
    this.tooltipElement.style.visibility = 'hidden';
    this.tooltipElement.style.zIndex = '9999';
    this.tooltipElement.style.display = 'block';
    Spry.Widget.Utils.putElementAt(this.tooltipElement, this.pos, {x:this.offsetX, y:this.offsetY}, true);
    if(Spry.is.ie && Spry.is.version == '6')
    this.createIframeLayer(this.tooltipElement);
    if (!this.visibleTooltip)
    if (this.useEffect)
    if (typeof this.showEffect == 'undefined')
    this.showEffect = new Spry.Widget.Tooltip[this.useEffect](this.tooltipElement, {from: 0, to: 1});
    this.showEffect.start();
    else
    this.tooltipElement.style.visibility = 'visible';
    this.visibleTooltip = true;
    Spry.Widget.Tooltip.prototype.hideTooltip = function(quick)
    if (this.useEffect && !quick)
    if (typeof this.hideEffect == 'undefined')
    this.hideEffect = new Spry.Widget.Tooltip[this.useEffect](this.tooltipElement, {from: 1, to: 0});
    this.hideEffect.start();
    else
    if (typeof this.showEffect != 'undefined')
    this.showEffect.stop();
    this.tooltipElement.style.display = 'none';
    if(Spry.is.ie && Spry.is.version == '6')
    this.removeIframeLayer(this.tooltipElement);
    if (this.hoverClass && !this.hideTimer)
    for (var i = 0; i < this.triggerElements.length; i++)
    this.removeClassName(this.triggerElements[i], this.hoverClass);
    this.visibleTooltip = false;
    Spry.Widget.Tooltip.prototype.displayTooltip = function(show) {
    if (this.tooltipElement)
    if (this.hoverClass){
    for (var i = 0; i < this.triggerElements.length; i++)
    this.removeClassName(this.triggerElements[i], this.hoverClass);
    if (show)
    if (this.hideTimer)
    clearInterval(this.hideTimer);
    delete(this.hideTimer);
    if (this.hoverClass)
    if (typeof this.triggerHighlight != 'undefined')
    this.addClassName(this.triggerHighlight, this.hoverClass);
    var self = this;
    this.showTimer = setTimeout(function(){self.showTooltip()}, this.showDelay);
    else
    if (this.showTimer)
    clearInterval(this.showTimer);
    delete(this.showTimer);
    var self = this;
    this.hideTimer = setTimeout(function(){self.hideTooltip();}, this.hideDelay);
    this.refreshTimeout();
    Spry.Widget.Tooltip.prototype.onMouseOverTrigger = function(e)
    var target = '';
    if (Spry.is.ie)
    target = e.srcElement;
    else
    target = e.target;
    var contains = Spry.Widget.Utils.contains;
    for (var i = 0; i < this.triggerElements.length; i++)
    if (contains(this.triggerElements[i], target))
    target = this.triggerElements[i];
    break;
    if (i == this.triggerElements.length) return;
    if (this.visibleTooltip && this.triggerHighlight && this.triggerHighlight == target)
    if (this.hideTimer)
    clearInterval(this.hideTimer);
    delete(this.hideTimer);
    if (this.hoverClass)
    if (typeof this.triggerHighlight != 'undefined')
    this.addClassName(this.triggerHighlight, this.hoverClass);
    return;
    var pos = Spry.Widget.Utils.getAbsoluteMousePosition(e);
    this.pos = {x: pos.x + this.offsetX, y: pos.y + this.offsetY};
    this.triggerHighlight = target;
    Spry.Widget.Tooltip.closeAll();
    this.displayTooltip(true);
    Spry.Widget.Tooltip.prototype.onMouseMoveTrigger = function(e)
    var pos = Spry.Widget.Utils.getAbsoluteMousePosition(e);
    this.pos = {x: pos.x + this.offsetX, y: pos.y + this.offsetY};
    if (this.visibleTooltip)
    this.showTooltip();
    Spry.Widget.Tooltip.prototype.onMouseOutTrigger = function(e)
    var target = '';
    if (Spry.is.ie)
    target = e.toElement;
    else
    target = e.relatedTarget;
    var contains = Spry.Widget.Utils.contains;
    for (var i=0; i < this.triggerElements.length; i++)
    if (contains(this.triggerElements[i], target))
    return;
    this.displayTooltip(false);
    Spry.Widget.Tooltip.prototype.onMouseOutTooltip = function(e)
    var target = '';
    if (Spry.is.ie)
    target = e.toElement;
    else
    target = e.relatedTarget;
    var contains = Spry.Widget.Utils.contains;
    if (contains(this.tooltipElement, target))
    return;
    this.displayTooltip(false);
    Spry.Widget.Tooltip.prototype.onMouseOverTooltip = function(e)
    if (this.hideTimer)
    clearInterval(this.hideTimer);
    delete(this.hideTimer);
    if (this.hoverClass)
    if (typeof this.triggerHighlight != 'undefined')
    this.addClassName(this.triggerHighlight, this.hoverClass);
    Spry.Widget.Tooltip.prototype.refreshTimeout = function()
    if (Spry.Widget.Tooltip.refreshTimeout != null)
    clearTimeout(Spry.Widget.Tooltip.refreshTimeout);
    Spry.Widget.Tooltip.refreshTimeout = null;
    Spry.Widget.Tooltip.refreshTimeout = setTimeout(Spry.Widget.Tooltip.refreshAll, 100);
    Spry.Widget.Tooltip.prototype.destroy = function()
    for (var k in this)
    try{
    if (typeof this.k == 'object' && typeof this.k.destroy == 'function') this.k.destroy();
    delete this.k;
    }catch(err){}
    Spry.Widget.Tooltip.prototype.checkDestroyed = function()
    // checks the parent node. If it exists, then the element is still in the DOM
    if (!this.tooltipElement || this.tooltipElement.parentNode == null)
    return true;
    return false;
    Spry.Widget.Tooltip.prototype.attachBehaviors = function()
    var self = this;
    var ev = Spry.Widget.Utils.addEventListener;
    for (var i=0; i< this.triggerElements.length; i++)
    ev(this.triggerElements[i], 'mouseover', function(e) {self.onMouseOverTrigger(e || event); return true;}, false);
    ev(this.triggerElements[i], 'mouseout', function(e) {self.onMouseOutTrigger(e || event); return true;}, false);
    if (this.followMouse)
    ev(this.triggerElements[i], 'mousemove', function(e) {self.onMouseMoveTrigger(e || event); return true;}, false);
    if (this.closeOnTooltipLeave)
    ev(this.tooltipElement, 'mouseover', function(e){self.onMouseOverTooltip(e || event); return true;}, false);
    ev(this.tooltipElement, 'mouseout', function(e){self.onMouseOutTooltip(e || event); return true;}, false);
    this.listenersAttached = true;
    // createIframeLayer for Tooltip
    // creates an IFRAME underneath a tooltip element so that it will show above form controls and ActiveX
    Spry.Widget.Tooltip.prototype.createIframeLayer = function(tooltip)
    if (typeof this.iframeLayer == 'undefined')
    var layer = document.createElement('iframe');
    layer.tabIndex = '-1';
    layer.src = 'javascript:"";';
    layer.scrolling = 'no';
    layer.frameBorder = '0';
    layer.className = 'iframeTooltip';
    tooltip.parentNode.appendChild(layer);
    this.iframeLayer = layer;
    this.iframeLayer.style.left = tooltip.offsetLeft + 'px';
    this.iframeLayer.style.top = tooltip.offsetTop + 'px';
    this.iframeLayer.style.width = tooltip.offsetWidth + 'px';
    this.iframeLayer.style.height = tooltip.offsetHeight + 'px';
    this.iframeLayer.style.display = 'block';
    // removeIframeLayer for Tooltip Element
    // removes an IFRAME underneath a tooltip to reveal any form controls and ActiveX
    Spry.Widget.Tooltip.prototype.removeIframeLayer =  function(tooltip)
    if (this.iframeLayer)
    this.iframeLayer.style.display = 'none';
    Spry.Widget.Tooltip.prototype.showError = function(msg)
    alert('Spry.Widget.Tooltip ERR: ' + msg);
    Spry.Widget.Tooltip.refreshAll = function()
    var q = Spry.Widget.Tooltip.loadQueue;
    var qlen = q.length;
    for (var i = 0; i < qlen ; i++)
    if (q[i].checkDestroyed())
    // the trigger element is no longer in the dom, we should remove the current widget.
    q[i].destroy();
    q.splice(i, 1);
    i--;
    qlen = q.length;
    Spry.Widget.Tooltip.closeAll = function()
    var q = Spry.Widget.Tooltip.loadQueue;
    var qlen = q.length;
    for (var i = 0; i < qlen ; i++)
    if (q[i].visibleTooltip)
    q[i].hideTooltip(true);
    if (q[i].showTimer)
    clearTimeout(q[i].showTimer);
    if (q[i].hideTimer)
    clearTimeout(q[i].hideTimer);
    Spry.Widget.Tooltip.Animator = function(element, opts)
    this.timer = null;
    this.fps = 60;
    this.duration = 500;
    this.startTime = 0;
    this.transition = Spry.Widget.Tooltip.Animator.defaultTransition;
    this.onComplete = null;
    if (typeof element == 'undefined') return;
    this.element = Spry.Widget.Utils.getElement(element);
    Spry.Widget.Utils.setOptions(this, opts, true);
    this.interval = this.duration / this.fps;
    Spry.Widget.Tooltip.Animator.defaultTransition = function(time, begin, finish, duration) { time /= duration; return begin + ((2 - time) * time * finish); };
    Spry.Widget.Tooltip.Animator.prototype.start = function()
    var self = this;
    this.startTime = (new Date).getTime();
    this.beforeStart();
    this.timer = setInterval(function() { self.stepAnimation(); }, this.interval);
    Spry.Widget.Tooltip.Animator.prototype.stop = function()
    if (this.timer)
    clearTimeout(this.timer);
    this.timer = null;
    Spry.Widget.Tooltip.Animator.prototype.stepAnimation = function(){};
    Spry.Widget.Tooltip.Animator.prototype.beforeStart = function(){};
    Spry.Widget.Tooltip.Animator.prototype.destroy = function()
    for (var k in this)
    try
    delete this.k;
    }catch(err){}
    Spry.Widget.Tooltip.Fade = function(element, opts)
    Spry.Widget.Tooltip.Animator.call(this, element, opts);
    if (Spry.is.ie)
    this.origOpacity = this.element.style.filter;
    else
    this.origOpacity = this.element.style.opacity;
    Spry.Widget.Tooltip.Fade.prototype = new Spry.Widget.Tooltip.Animator();
    Spry.Widget.Tooltip.Fade.prototype.constructor = Spry.Widget.Tooltip.Fade;
    Spry.Widget.Tooltip.Fade.prototype.stepAnimation = function()
    var curTime = (new Date).getTime();
    var elapsedTime = curTime - this.startTime;
    var i, obj;
    if (elapsedTime >= this.duration)
    this.beforeStop();
    this.stop();
    return;
    var ht = this.transition(elapsedTime, this.from, this.to - this.from, this.duration);
    if (Spry.is.ie)
    var filter = this.element.style.filter.replace(/alpha\s*\(\s*opacity\s*=\s*[0-9\.]{1,3}\)/, '');
    this.element.style.filter = filter + 'alpha(opacity=' + parseInt(ht * 100, 10) + ')';
    else
    this.element.style.opacity = ht;
    this.element.style.visibility = 'visible';
    this.element.style.display = 'block';
    Spry.Widget.Tooltip.Fade.prototype.beforeStop = function()
    if (this.from > this.to)
    this.element.style.display = 'none';
    if (Spry.is.mozilla)
    this.element.style.filter = this.origOpacity;
    else
    this.element.style.opacity = this.origOpacity;
    Spry.Widget.Tooltip.Blind = function(element, opts)
    this.from = 0;
    this.to = 100;
    Spry.Widget.Tooltip.Animator.call(this, element, opts);
    this.element.style.visibility = 'hidden';
    this.element.style.display = 'block';
    this.origHeight = parseInt(Spry.Widget.Utils.getStyleProperty(this.element, 'height'),10);
    if (isNaN(this.origHeight))
    this.origHeight = this.element.offsetHeight;
    if (this.to == 0)
    this.from = this.origHeight;
    else
    this.to = this.origHeight;
    Spry.Widget.Tooltip.Blind.prototype = new Spry.Widget.Tooltip.Animator();
    Spry.Widget.Tooltip.Blind.prototype.constructor = Spry.Widget.Tooltip.Blind;
    Spry.Widget.Tooltip.Blind.prototype.beforeStart = function()
    this.origOverflow = Spry.Widget.Utils.getStyleProperty(this.element, 'overflow');
    this.element.style.overflow = 'hidden';
    Spry.Widget.Tooltip.Blind.prototype.stepAnimation = function()
    var curTime = (new Date).getTime();
    var elapsedTime = curTime - this.startTime;
    var i, obj;
    if (elapsedTime >= this.duration)
    this.beforeStop();
    this.stop();
    return;
    var ht = this.transition(elapsedTime, this.from, this.to - this.from, this.duration);
    this.element.style.height = Math.floor(ht) + 'px';
    this.element.style.visibility = 'visible';
    this.element.style.display = 'block';
    Spry.Widget.Tooltip.Blind.prototype.beforeStop = function()
    this.element.style.overflow = this.origOverflow;
    if (this.from > this.to)
    this.element.style.display = 'none';
    this.element.style.height = this.origHeight + 'px';
    // Spry.Widget.Utils
    if (!Spry.Widget.Utils) Spry.Widget.Utils = {};
    Spry.Widget.Utils.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
    if (!optionsObj)
    return;
    for (var optionName in optionsObj)
    if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
    continue;
    obj[optionName] = optionsObj[optionName];
    Spry.Widget.Utils.getElement = function(ele)
    if (ele && typeof ele == "string")
    return document.getElementById(ele);
    return ele;
    Spry.Widget.Utils.getElementsByClassName = function(sel)
    if (!sel.length > 0)
    return null;
    var selectors = sel.split(',');
    var el = [];
    for (var i =0; i < selectors.length; i++)
    var cs = selectors[i];
    var chunk = cs.split(' ');
    var parents = [];
    parents[0] = [];
    parents[0][0] = document.body;
    for (var j = 0; j < chunk.length; j++)
    var tokens = Spry.Widget.Utils.getSelectorTokens(chunk[j]);
    for (var k =0; k < parents[j].length; k++)
    var childs = parents[j][k].getElementsByTagName('*');
    parents[j+1] = [];
    for (var l=0; l < childs.length; l++)
    if (Spry.Widget.Utils.hasSelector(childs[l], tokens))
    parents[j+1].push(childs[l]);
    if (parents[j])
    for (var k = 0; k < parents[j].length; k++)
    el.push(parents[j][k]);
    return el;
    Spry.Widget.Utils.firstValid = function()
    var ret = null;
    var a = Spry.Widget.Utils.firstValid;
    for(var i=0; i< a.arguments.length; i++)
    if (typeof(a.arguments[i]) != 'undefined')
    ret = a.arguments[i];
    break;
    return ret;
    Spry.Widget.Utils.getSelectorTokens = function(str)
    str = str.replace(/\./g, ' .');
    str = str.replace(/\#/g, ' #');
    str = str.replace(/^\s+|\s+$/g,"");
    return str.split(' ');
    Spry.Widget.Utils.hasSelector = function(el, tokens)
    for (var i =0; i< tokens.length; i++)
    switch (tokens[i].charAt(0))
    case '.': if (!el.className || el.className.indexOf(tokens[i].substr(1)) == -1) return false; break;
    case '#': if (!el.id || el.id != tokens[i].substr(1)) return false; break;
    default: if (el.nodeName.toLowerCase != tokens[i]) return false; break;
    return true;
    Spry.Widget.Utils.addEventListener = function(element, eventType, handler, capture)
    try
    if (element.addEventListener)
    element.addEventListener(eventType, handler, capture);
    else if (element.attachEvent)
    element.attachEvent("on" + eventType, handler);
    catch (e) {}
    Spry.Widget.Utils.getStyleProperty = function(element, prop)
    var value;
    var camelized = Spry.Widget.Utils.camelize(prop);
    try
    if (element.style)
    value = element.style[camelized];
    if (!value)
    if (document.defaultView && document.defaultView.getComputedStyle)
    var css = document.defaultView.getComputedStyle(element, null);
    value = css ? css.getPropertyValue(prop) : null;
    else if (element.currentStyle)
    value = element.currentStyle[camelized];
    catch (e) {}
    return value == 'auto' ? null : value;
    Spry.Widget.Utils.camelize = function(str)
    if (str.indexOf('-') == -1)
    return str;
    var oStringList = str.split('-');
    var isFirstEntry = true;
    var camelizedString = '';
    for(var i=0; i < oStringList.length; i++)
    if(oStringList[i].length>0)
    if(isFirstEntry)
    camelizedString = oStringList[i];
    isFirstEntry = false;
    else
    var s = oStringList[i];
    camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
    return camelizedString;
    * Spry.Widget.Utils.getPixels
    * returns the value of a CSS property as Int, converting medium to 2
    * @param {DOMElement} m - elements
    * @param {String} s -
    Spry.Widget.Utils.getPixels = function (m, s)
    var v = Spry.Widget.Utils.getStyleProperty(m, s);
    if (v == "medium") {
    v = 2;
    } else {
    v = parseInt(v, 10);
    v = isNaN(v)?0:v;
    return v;
    Spry.Widget.Utils.getAbsoluteMousePosition = function(ev)
    var pos = {x:0, y:0};
    if (ev.pageX)
    pos.x = ev.pageX;
    else if (ev.clientX)
    pos.x = ev.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    if (isNaN(pos.x)) pos.x = 0;
    if (ev.pageY)
    pos.y = ev.pageY;
    else if (ev.clientY)
    pos.y = ev.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    if (isNaN(pos.y)) pos.y = 0;
    return pos;
    * Spry.Widget.Utils.getBorderBox
    * returns a border box object (x,y,width,height) which perfectly covers the el element and its borders
    * the x, y are absolute coordinates measured from from the window viewport
    * use the box as the second parameter in Spry.Widget.Utils.setBorderBox
    * @param {DOMElement or String} el -
    * @param {DOMDocument,optional} doc -
    Spry.Widget.Utils.getBorderBox = function (el, doc)
    doc = doc || document;
    if (typeof el == 'string')
    el = doc.getElementById(el);
    if (!el)
    return false;
    if (el.parentNode === null || Spry.Widget.Utils.getStyleProperty(el, 'display') == 'none')
    //element must be visible to have a box
    return false;
    var ret = {x:0, y:0, width:0, height:0};
    var parent = null;
    var box;
    if (el.getBoundingClientRect) { // IE
    box = el.getBoundingClientRect();
    var scrollTop = doc.documentElement.scrollTop || doc.body.scrollTop;
    var scrollLeft = doc.documentElement.scrollLeft || doc.body.scrollLeft;
    ret.x = box.left + scrollLeft;
    ret.y = box.top + scrollTop;
    ret.width = box.right - box.left;
    ret.height = box.bottom - box.top;
    } else if (doc.getBoxObjectFor) { // gecko
    box = doc.getBoxObjectFor(el);
    ret.x = box.x;
    ret.y = box.y;
    ret.width = box.width;
    ret.height = box.height;
    var btw = Spry.Widget.Utils.getPixels(el, "border-top-width");
    var blw = Spry.Widget.Utils.getPixels(el, "border-left-width");
    ret.x -= blw;
    ret.y -= btw;
    } else { // safari/opera
    ret.x = el.offsetLeft;
    ret.y = el.offsetTop;
    ret.width = el.offsetWidth;
    ret.height = el.offsetHeight;
    parent = el.offsetParent;
    if (parent != el)
    while (parent)
    ret.x += parent.offsetLeft;
    ret.y += parent.offsetTop;
    parent = parent.offsetParent;
    var blw = Spry.Widget.Utils.getPixels(el, "border-left-width");
    var btw = Spry.Widget.Utils.getPixels(el, "border-top-width");
    ret.x -= blw;
    ret.y -= btw;
    // opera & (safari absolute) incorrectly account for body offsetTop
    var ua = navigator.userAgent.toLowerCase();
    if (Spry.is.opera || Spry.is.safari && Spry.Widget.Utils.getStyleProperty(el, 'position') == 'absolute')
    ret.y -= doc.body.offsetTop;
    if (el.parentNode)
    parent = el.parentNode;
    else
    parent = null;
    while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML')
    ret.x -= (isNaN(parent.scrollLeft) ? 0 : parent.scrollLeft);
    ret.y -= (isNaN(parent.scrollTop)  ? 0 : parent.scrollTop);
    if (parent.parentNode)
    parent = parent.parentNode;
    else
    parent = null;
    return ret;
    * Spry.Widget.Utils.setBorderBox
    * puts the element el to the location specified by box
    * @param {DOMElement} el - the element to be placed
    * @param {Object} box - hash containing the x and y coordinates where to put el
    Spry.Widget.Utils.setBorderBox = function (el, box) {
    var pos = Spry.Widget.Utils.getBorderBox(el, el.ownerDocument);
    if (pos === false)
    return false;
    var delta = {
    x:Spry.Widget.Utils.getPixels(el, 'left'),
    y:Spry.Widget.Utils.getPixels(el, 'top')
    var new_pos = {x:0, y:0, w:0, h:0};
    if (typeof box.x == 'number') {
    new_pos.x = box.x - pos.x + delta.x;
    if (typeof box.y == 'number') {
    new_pos.y = box.y - pos.y + delta.y;
    if (typeof box.x == 'number') {
    el.style.left = new_pos.x + 'px';
    if (typeof box.y == 'number') {
    el.style.top = new_pos.y + 'px';
    return true;
    Spry.Widget.Utils.putElementAt = function (source, target, offset, biv)
    biv = Spry.Widget.Utils.firstValid(biv, true);
    var source_box = Spry.Widget.Utils.getBorderBox(source, source.ownerDocument);
    Spry.Widget.Utils.setBorderBox(source, target);
    if (biv)
    Spry.Widget.Utils.bringIntoView(source);
    return true;
    * Spry.Widget.Utils.bringIntoView
    * set the position of the source element so it is completely visible in the window
    * @param {DOMElemenet} source - the element to be
    Spry.Widget.Utils.bringIntoView = function (source) {
    var box = Spry.Widget.Utils.getBorderBox(source, source.ownerDocument);
    if (box === false) {
    return false;
    var current = {
    x:Spry.Widget.Utils.getPixels(source, 'left'),
    y:Spry.Widget.Utils.getPixels(source, 'top')
    var delta = {x:0, y:0};
    var offset_fix = {x:0, y:0};
    var strictm = source.ownerDocument.compatMode == "CSS1Compat";
    var doc = (Spry.is.ie && strictm || Spry.is.mozilla)?source.ownerDocument.documentElement:source.ownerDocument.body;
    offset_fix.x = Spry.Widget.Utils.getPixels(doc, 'border-left-width');
    offset_fix.y = Spry.Widget.Utils.getPixels(doc, 'border-top-width');
    var st = doc.scrollTop;
    var ch = self.innerHeight ? self.innerHeight : doc.clientHeight;
    var t = box.y + (Spry.is.ie?-offset_fix.y:offset_fix.y);
    var b = box.y + box.height + (Spry.is.ie?-offset_fix.y:offset_fix.y);
    if ( b - st > ch) {
    delta.y = ch - (b - st);
    if (t + delta.y < st) {
    delta.y = st-t;
    } else if (t < st) {
    delta.y = st - t;
    if (delta.y != 0) {
    source.style.top = (current.y + delta.y) + 'px';
    var sl = doc.scrollLeft;
    var cw = doc.clientWidth;
    var l = box.x + (Spry.is.ie?-offset_fix.x:offset_fix.x);
    var r = box.x + box.width + (Spry.is.ie?-offset_fix.x:offset_fix.x);
    if ( r - sl > cw) {
    delta.x = cw - (r - sl);
    if (l + delta.x < sl) {
    delta.x = sl-l;
    } else if (l < sl) {
    delta.x = sl - l;
    if (delta.x != 0) {
    source.style.left = (current.x + delta.x) + 'px';
    Spry.Widget.Utils.contains = function (who, what) {
    if (typeof who.contains == 'object') {
    return what && who && (who == what || who.contains(what));
    } else {
    var el = what;
    while(el) {
    try{
    if (el == who) {
    return true;
    el = el.parentNode;
    }catch(a){return false;}
    return false;
    })(); // EndSpryComponent
    @charset "UTF-8";
    /* SpryTooltip.css - version 0.2 - Spry 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    /* HACK FOR IE: to make sure the tooltips show above form controls, we underlay each tooltip with an iframe */
    .iframeTooltip
    position: absolute;
    z-index: 1010;
    filter:alpha(opacity:0.1);
    .tooltipContent
    font-size: 11px;
    font-style: italic;
    color: #332c40;
    width: 96px;
    height: 51px;
    background: url(../_images/recipe/bubble2.png) no-repeat;
    font-family: "Comic Sans MS", cursive;
    margin: 0px;
    left: -200px;
    top: -200px;
    padding-top: 5px;
    vertical-align: middle;
    position: fixed;

    I couldn't get this script to work with my code:
    <a id="greensource" href="a"><img src="images/greensource.png" alt="Greensource Initiative" width="193" height="71" border="0" usemap="#Map7" id="sprytrigger6" title="Greensource Initiative" />
    <map name="Map7" id="Map7">
    <area shape="rect" coords="-22,-15,197,79" href="#" />
    </map>
    </a>
    <div class="tooltipContent" id="green">
    <div class="secondback">
    <div style="padding: 15px;">
    <h1>GREENSOURCE</h1>
    <h2>INITIATIVE&#8482;</h2>
    <p>Manufactred within Greensource Initiative&#8482; guildelines for use of recycled materials, renewable energy and non-hazardous packaging materials. RoHS Compliant.</p>
    <p class="morebutton"><a href="#">LEARN MORE</a></p>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    <!--
    var sprytooltip7 = new Spry.Widget.Tooltip("green", "#greensource");
    //-->
    </script>
    Maybe someone can point out my problem?
    CSS:
    .tooltipContent
        margin: 0;
        padding: 0;
        background: #FFF url(../images/bottom-gradient.png) repeat-x bottom left;
        font-family: "Myriad Pro", Tahoma, Geneva, sans-serif;
        text-align: left;
        box-shadow: 2px 2px 4px #b6b5b6;
        -webkit-box-shadow: 2px 2px 4px #b6b5b6;
        -moz-box-shadow: 2px 2px 4px #b6b5b6;
        position: fixed;
    #green {
        position: absolute;
        border: none;
        top: 200px;
        left: 200px;

  • Dynamic tool tip

    Hi guys
    I'm wondering if it is possible to have the tool tip for a dropdown box based on the entries in the drop down box.
    so if the user could select "a", "b", or "c" from the drop down box, the tool tip would read "a / b / c"
    I could of course type it out manually, but I have several dozen and a universal script would be much quicker.
    Thank you

    Hi,
    Adobe have an excellent guide to "Calculations and Scripts", it goes back to v6 but is still applicable today. I can't find it on the Adobe web site so I will upload it.
    It covers a lot of visual feedback script and is grouped by object type which is very handy. The information is probably available elsewhere, like the help file (but sometimes you need to know what you are looking for; in order to find it).
    Anyway something like this in the exit event:
    var vAnswer = this rawValue;
    switch(vAnswer)
         case "a":
         DropDownList1.assist.toolTip = "You have selected A";
         break;
         case "b":
         DropDownList1.assist.toolTip = "You have selected B";   
         break;
         case "c":
         DropDownList1.assist.toolTip = "You have selected C";   
         break;
         default:
         DropDownList1.assist.toolTip = "Please select between a, b, or c";   
         break;
    Hope that helps,
    Niall

  • OBIEE 11g : Tool tip on a report link

    Hello All,
    Is it possible to add a mouse over tool tip to a report link on a dashboard page (not on column heading) ?
    The dashboard currently has descriptions for the report links to see what is the report usage and it is eating up a lot of space , the idea is to eliminate this notes section and provide information to the user so as to what the report is as a tool tip.
    I have seen OTN threads on tool tips on to reports and column headers but I would like to just specifically add the mouse over pop-up to a report link that exists on a dashboard page.
    Any suggestions , please advice.
    Thanks,
    -VS

    There is a way using JavaScript, right now I dont have code to share with you.
    Assuming your report name is "Summary Report", using JavaScript search for this "Summary Report" on dashboard and apply CSS script something like mouseover.
    You may get code in pieces on net, try it out.
    I too try to help you with code but take some time ;)

  • Tool tips/ java

    Hi-
    I am working on a form in ES with a submit button. I am currently having issues with people hitting submit more than once, because when the PDF is submitted it takes time, and they are not sure they have done it right instead of waiting for the confo page.
    To fix this, I have entered a tool tip on my submit button, which does work, however... wondering if anyone has a simple script for either postSumit or on click that pops up a subform or other so that I can enter some large red "please be patient" text by my button.
    Thanks in advance.

    I'm sorry. My explanation didn't have much substance, did it.
    Here's the idea:
    1) change the submit button to hidden (let's call this button submitBtn)
    2) add a second button (a plain old button) and label it "Submit" (le'ts call this button callSubmitBtn)
    3) on the click event of callSubmitBtn, call the click event of submitBtn and set the presence of callSubmitBtn to "readOnly"
         form1.page1.subform1.submitBtn.execEvent("click");
         form1.page1.subform1.callSubmitBtn.presence = "readOnly";
    Steve

  • Tool tip problem

    Hi there
    In CS3 when you converted an object to a button you could add a description (tooltip) whcih would then show up in the exported PDF.
    In CS4 this feature has been removed (as far as I can see) and you have to use the form editing function in Acrobat. So subsequently if you have to re-edit your Indesign document you have to re-do all your tool tips again.
    Does anyone know if the tool tip feature is in CS4 or a work around to this problem.
    Many thanks

    Do you mean the description as in
    this older discussion? (And on the Mac side of the world.)
    (D/L the mentioned script from
    my site.)
    Apparently, "Some Useful Features Have Been Removed".

  • Spry Tool tip on Tabbed panels

    I am having a problem with the new spry tool tip widget. I
    have a Tabbed panels table with 4 tabs. For some reason the spry
    widget only works when I have 4 seperate div's with the tool tip
    content and 4 separate js variables placed after the divs. One must
    be on each tab. Is there any way to make it work so there is one
    div and one variable creation on the page rather than 1 for each
    panel?. heres how my code works:
    <head>
    <body>
    <div class="TabbedPanels" id="tp1">
    <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">TAB
    1</li>
    <li class="TabbedPanelsTab" tabindex="1">TAB
    2</li>
    <li class="TabbedPanelsTab" tabindex="2">TAB
    3</li>
    <li class="TabbedPanelsTab" tabindex="3">TAB
    4</li>
    </ul>
    <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">
    <div id="Funds_DIV1" spry:region="ds1"
    class="SpryHiddenRegion" >
    <table>
    <div id="blindMe" class="toolTip"> <%=accesstxt
    %> </div>
    <script type="text/javascript">
    var blindTooltip = new Spry.Widget.Tooltip('blindMe',
    '.blindTrigger');
    var blindToolTipClosed = new
    Spry.Widget.Tooltip('blindMeClosed', '.blindClosedTrigger');
    </script>
    </table>
    </div>
    </div>
    <div class="TabbedPanelsContent">
    <div id="Funds_DIV2" class="SpryHiddenRegion"
    spry:region="ds2">
    <table>
    <div id="blindMe" class="toolTip"> <%=accesstxt
    %> </div>
    <script type="text/javascript">
    var blindTooltip = new Spry.Widget.Tooltip('blindMe',
    '.blindTrigger');
    var blindToolTipClosed = new
    Spry.Widget.Tooltip('blindMeClosed', '.blindClosedTrigger');
    </script>
    </table>
    Repeat two more times . You get the idea

    Sorry i just kinda threw that together as a mock up
    id="blindMe" becomes id="blindMe2" and so on for each subsequent
    use. I had already checked for that. The same thing goes for the
    associated script variable. It works as is, i just dont want to
    have to duplicate it.
    The problem is, if i remove all the duplicated divs and
    scripts, then place that script and div on the bottom of the page
    after the </div> for the tabbed panels div, the hover state
    no longer works. Same is true if i keep it within the </div>
    the only way it does work is if i duplicate it within each tabbed
    panels content divs. (With different id values of course)

Maybe you are looking for

  • Gif loader for background image

    I simply want to run an animated gif while my background image loads for a slideshow. I've searched the web and this forum for hours and can't get the various bits of code tips (ajax, jquery) to work because I'm a totaly idiot when it comes to code..

  • FCC in receiver file adapter

    Hi,    My scenario is proxy to flat file(FCC). The incoming structure has following format: Header1 Item1 Header2 Item1 Item2 Item3 Header3 Item1 Item2 Control Each Header can have multiple item fields. The last line is control record. So the structu

  • Itunes on windows 8 cannot authorize second computer

    When trying to authorize a second computer (running Windows 8) for iTunes I get an error that the iTunes store is unavailable.  I am able to deauthorize / reauthorize the first computer (runing Windows 7) with no errors.

  • Mac OSX Maverics (Ver 10.9.4) Reboots after installing and removing Trend Micro Smart Surfing

    Hi, I have recently installed Trend Micro Smart surfing with serial number starting with TCEF. I am currently running my mac book pro on OSX Maverics Version 10.9.4. As soon as I installed the software, I got the error message that the software is no

  • Immediate reply needed

    HOW TO DISPLAY THE SAME TABLE IN TWO DATABLOCKS. ONE FOR VIEW MODE AND ANOTHER FOR INSERTING. AND BASED ON A CONDITION THE DATA FROM THE INSERT BLOCK HAS TO BE GO TO DATABLOCK IN VIEW MODE