Loading ...
Sorry, an error occurred while loading the content.

drag drop performance

Expand Messages
  • blicksky
    I m working with a board game, containing a 15x15 grid with 225 DragDrop targets, and a small number of draggable objects. Due to the large number of drag
    Message 1 of 7 , Oct 8, 2007
    • 0 Attachment
      I'm working with a board game, containing a 15x15 grid with 225 DragDrop
      targets, and a small number of draggable objects. Due to the large
      number of drag targets, moving around the draggable objects is slow and
      choppy. The documentation says this is expected because there are
      events being fired many times for each move of the mouse. It suggests
      using DDProxy, and that helps a little, but not quite enough.

      For my purposes, I do not need to react to a draggable object being
      moved over a drag target; I only need to know what target the draggable
      object was over when the mouse button is released so that it can be
      attached there. Is there any way to configure the YUI DD objects so
      that there are no events fired for each mousemove aside from updating
      the position of the draggable object?
    • blicksky
      I m working with a board game, containing a 15x15 grid with 225 DragDrop targets, and a small number of draggable objects. Due to the large number of drag
      Message 2 of 7 , Oct 8, 2007
      • 0 Attachment
        I'm working with a board game, containing a 15x15 grid with 225 DragDrop
        targets, and a small number of draggable objects. Due to the large
        number of drag targets, moving around the draggable objects is slow and
        choppy. The documentation says this is expected because there are
        events being fired many times for each move of the mouse. It suggests
        using DDProxy, and that helps a little, but not quite enough.

        For my purposes, I do not need to react to a draggable object being
        moved over a drag target; I only need to know what target the draggable
        object was over when the mouse button is released so that it can be
        attached there. Is there any way to configure the YUI DD objects so
        that there are no events fired for each mousemove aside from updating
        the position of the draggable object?
      • krisheehaw
        ... If you don t find a way to do that, if the grid is a fixed width (i.e. not a scalable unit of measurement) you *could* get the x,y coords of the element
        Message 3 of 7 , Oct 8, 2007
        • 0 Attachment
          --- In ydn-javascript@yahoogroups.com, "blicksky" <blicksky@...> wrote:
          >
          > I'm working with a board game, containing a 15x15 grid with 225 DragDrop
          > targets, and a small number of draggable objects. Due to the large
          > number of drag targets, moving around the draggable objects is slow and
          > choppy. The documentation says this is expected because there are
          > events being fired many times for each move of the mouse. It suggests
          > using DDProxy, and that helps a little, but not quite enough.
          >
          > For my purposes, I do not need to react to a draggable object being
          > moved over a drag target; I only need to know what target the draggable
          > object was over when the mouse button is released so that it can be
          > attached there. Is there any way to configure the YUI DD objects so
          > that there are no events fired for each mousemove aside from updating
          > the position of the draggable object?
          >

          If you don't find a way to do that, if the grid is a fixed width (i.e.
          not a scalable unit of measurement) you *could* get the x,y coords of
          the element you are dragging and calculate the square it is over on
          mouse move (by dividing x and y respectively by the square's pixel
          width and round down). You will then have a row and column number,
          you might then be able to dynamically make it a drop target rather
          than having them all be drop targets by default.

          I'm not fully up on the use of YUI DnD events, but in theory this
          sounds feasable.
        • dav.glass@yahoo.com
          blicksky -- Here s a simple way to get what you want: http://blog.davglass.com/files/yui/dd13/ Hope that helps :) Dav Dav Glass dav.glass@yahoo.com
          Message 4 of 7 , Oct 8, 2007
          • 0 Attachment
            blicksky --

            Here's a simple way to get what you want:
            http://blog.davglass.com/files/yui/dd13/

            Hope that helps :)
            Dav
             
            Dav Glass
            dav.glass@...
            blog.davglass.com
             
             
            + Windows: n. - The most successful computer virus, ever. +
            + A computer without a Microsoft operating system is like a dog
            without bricks tied to its head +
            + A Microsoft Certified Systems Engineer is to computing what a
            McDonalds Certified Food Specialist is to fine cuisine +


            ----- Original Message ----
            From: blicksky <blicksky@...>
            To: ydn-javascript@yahoogroups.com
            Sent: Monday, October 8, 2007 8:02:45 AM
            Subject: [ydn-javascript] drag drop performance

            I'm working with a board game, containing a 15x15 grid with 225 DragDrop
            targets, and a small number of draggable objects. Due to the large
            number of drag targets, moving around the draggable objects is slow and
            choppy. The documentation says this is expected because there are
            events being fired many times for each move of the mouse. It suggests
            using DDProxy, and that helps a little, but not quite enough.

            For my purposes, I do not need to react to a draggable object being
            moved over a drag target; I only need to know what target the draggable
            object was over when the mouse button is released so that it can be
            attached there. Is there any way to configure the YUI DD objects so
            that there are no events fired for each mousemove aside from updating
            the position of the draggable object?


          • blicksky
            Thanks! that definitely helped. There s still one problem that I m wondering if you can help me with: At the beginning of the drag, there is about a 1 second
            Message 5 of 7 , Oct 8, 2007
            • 0 Attachment
              Thanks! that definitely helped. There's still one problem that I'm
              wondering if you can help me with:

              At the beginning of the drag, there is about a 1 second delay before
              the draggable element is moved to where the mouse is and begins to
              follow the mouse. I've already set
              YAHOO.util.DragDropMgr.clickPixelThresh = 1;
              in case setting it to 0 caused it to be considered unset and revert to
              it's default of 1000 (1 second), but it doesn't seem to help. Am I
              not setting this value properly, or is there some intensive work being
              done onStartDrag that is causing the delay?

              --- In ydn-javascript@yahoogroups.com, dav.glass@... wrote:
              >
              > blicksky --
              >
              > Here's a simple way to get what you want:
              > http://blog.davglass.com/files/yui/dd13/
              >
              > Hope that helps :)
              > Dav
              >
              > Dav Glass
              > dav.glass@...
              > blog.davglass.com
              >
              > + Windows: n. - The most successful computer virus, ever. +
              > + A computer without a Microsoft operating system is like a dog
              > without bricks tied to its head +
              > + A Microsoft Certified Systems Engineer is to computing what a
              > McDonalds Certified Food Specialist is to fine cuisine +
              >
              > ----- Original Message ----
              > From: blicksky <blicksky@...>
              > To: ydn-javascript@yahoogroups.com
              > Sent: Monday, October 8, 2007 8:02:45 AM
              > Subject: [ydn-javascript] drag drop performance
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              > I'm working with a board game, containing a 15x15 grid
              with 225 DragDrop
              >
              > targets, and a small number of draggable objects. Due to the large
              >
              > number of drag targets, moving around the draggable objects is slow and
              >
              > choppy. The documentation says this is expected because there are
              >
              > events being fired many times for each move of the mouse. It suggests
              >
              > using DDProxy, and that helps a little, but not quite enough.
              >
              >
              >
              > For my purposes, I do not need to react to a draggable object being
              >
              > moved over a drag target; I only need to know what target the draggable
              >
              > object was over when the mouse button is released so that it can be
              >
              > attached there. Is there any way to configure the YUI DD objects so
              >
              > that there are no events fired for each mousemove aside from updating
              >
              > the position of the draggable object?
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              >
              > <!--
              >
              > #ygrp-mkp{
              > border:1px solid #d8d8d8;font-family:Arial;margin:14px
              0px;padding:0px 14px;}
              > #ygrp-mkp hr{
              > border:1px solid #d8d8d8;}
              > #ygrp-mkp #hd{
              >
              color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px
              0px;}
              > #ygrp-mkp #ads{
              > margin-bottom:10px;}
              > #ygrp-mkp .ad{
              > padding:0 0;}
              > #ygrp-mkp .ad a{
              > color:#0000ff;text-decoration:none;}
              > -->
              >
              >
              >
              > <!--
              >
              > #ygrp-sponsor #ygrp-lc{
              > font-family:Arial;}
              > #ygrp-sponsor #ygrp-lc #hd{
              > margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
              > #ygrp-sponsor #ygrp-lc .ad{
              > margin-bottom:10px;padding:0 0;}
              > -->
              >
              >
              >
              > <!--
              >
              > #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean,
              sans-serif;}
              > #ygrp-mlmsg table {font-size:inherit;font:100%;}
              > #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica,
              clean, sans-serif;}
              > #ygrp-mlmsg pre, code {font:115% monospace;}
              > #ygrp-mlmsg * {line-height:1.22em;}
              > #ygrp-text{
              > font-family:Georgia;
              > }
              > #ygrp-text p{
              > margin:0 0 1em 0;}
              > #ygrp-tpmsgs{
              > font-family:Arial;
              > clear:both;}
              > #ygrp-vitnav{
              > padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
              > #ygrp-vitnav a{
              > padding:0 1px;}
              > #ygrp-actbar{
              > clear:both;margin:25px
              0;white-space:nowrap;color:#666;text-align:right;}
              > #ygrp-actbar .left{
              > float:left;white-space:nowrap;}
              > .bld{font-weight:bold;}
              > #ygrp-grft{
              > font-family:Verdana;font-size:77%;padding:15px 0;}
              > #ygrp-ft{
              > font-family:verdana;font-size:77%;border-top:1px solid #666;
              > padding:5px 0;
              > }
              > #ygrp-mlmsg #logo{
              > padding-bottom:10px;}
              >
              > #ygrp-vital{
              > background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
              > #ygrp-vital #vithd{
              >
              font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
              > #ygrp-vital ul{
              > padding:0;margin:2px 0;}
              > #ygrp-vital ul li{
              > list-style-type:none;clear:both;border:1px solid #e0ecee;
              > }
              > #ygrp-vital ul li .ct{
              >
              font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
              > #ygrp-vital ul li .cat{
              > font-weight:bold;}
              > #ygrp-vital a{
              > text-decoration:none;}
              >
              > #ygrp-vital a:hover{
              > text-decoration:underline;}
              >
              > #ygrp-sponsor #hd{
              > color:#999;font-size:77%;}
              > #ygrp-sponsor #ov{
              > padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
              > #ygrp-sponsor #ov ul{
              > padding:0 0 0 8px;margin:0;}
              > #ygrp-sponsor #ov li{
              > list-style-type:square;padding:6px 0;font-size:77%;}
              > #ygrp-sponsor #ov li a{
              > text-decoration:none;font-size:130%;}
              > #ygrp-sponsor #nc{
              > background-color:#eee;margin-bottom:20px;padding:0 8px;}
              > #ygrp-sponsor .ad{
              > padding:8px 0;}
              > #ygrp-sponsor .ad #hd1{
              >
              font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
              > #ygrp-sponsor .ad a{
              > text-decoration:none;}
              > #ygrp-sponsor .ad a:hover{
              > text-decoration:underline;}
              > #ygrp-sponsor .ad p{
              > margin:0;}
              > o{font-size:0;}
              > .MsoNormal{
              > margin:0 0 0 0;}
              > #ygrp-text tt{
              > font-size:120%;}
              > blockquote{margin:0 0 0 4px;}
              > .replbq{margin:4;}
              > -->
              >
            • Dav Glass
              Do you think you could send me a link? Then I could see it in action :) Dav Dav Glass dav.glass@yahoo.com Sent from my iPhone On Oct 8, 2007, at 5:00 PM,
              Message 6 of 7 , Oct 8, 2007
              • 0 Attachment
                Do you think you could send me a link?

                Then I could see it in action :)

                Dav

                Dav Glass
                dav.glass@...
                Sent from my iPhone

                On Oct 8, 2007, at 5:00 PM, "blicksky" <blicksky@...> wrote:

                Thanks! that definitely helped. There's still one problem that I'm
                wondering if you can help me with:

                At the beginning of the drag, there is about a 1 second delay before
                the draggable element is moved to where the mouse is and begins to
                follow the mouse. I've already set
                YAHOO.util.DragDrop Mgr.clickPixelTh resh = 1;
                in case setting it to 0 caused it to be considered unset and revert to
                it's default of 1000 (1 second), but it doesn't seem to help. Am I
                not setting this value properly, or is there some intensive work being
                done onStartDrag that is causing the delay?

                --- In ydn-javascript@ yahoogroups. com , dav.glass@.. . wrote:
                >
                > blicksky --
                >
                > Here's a simple way to get what you want:
                > http://blog. davglass. com/files/ yui/dd13/
                >
                > Hope that helps :)
                > Dav
                >
                > Dav Glass
                > dav.glass@.. .
                > blog.davglass. com
                >
                > + Windows: n. - The most successful computer virus, ever. +
                > + A computer without a Microsoft operating system is like a dog
                > without bricks tied to its head +
                > + A Microsoft Certified Systems Engineer is to computing what a
                > McDonalds Certified Food Specialist is to fine cuisine +
                >
                > ----- Original Message ----
                > From: blicksky <blicksky@.. .>
                > To: ydn-javascript@ yahoogroups. com
                > Sent: Monday, October 8, 2007 8:02:45 AM
                > Subject: [ydn-javascript] drag drop performance
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                > I'm working with a board game, containing a 15x15 grid
                with 225 DragDrop
                >
                > targets, and a small number of draggable objects. Due to the large
                >
                > number of drag targets, moving around the draggable objects is slow and
                >
                > choppy. The documentation says this is expected because there are
                >
                > events being fired many times for each move of the mouse. It suggests
                >
                > using DDProxy, and that helps a little, but not quite enough.
                >
                >
                >
                > For my purposes, I do not need to react to a draggable object being
                >
                > moved over a drag target; I only need to know what target the draggable
                >
                > object was over when the mouse button is released so that it can be
                >
                > attached there. Is there any way to configure the YUI DD objects so
                >
                > that there are no events fired for each mousemove aside from updating
                >
                > the position of the draggable object?
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                >
                > <!--
                >
                > #ygrp-mkp{
                > border:1px solid #d8d8d8;font- family:Arial; margin:14px
                0px;padding: 0px 14px;}
                > #ygrp-mkp hr{
                > border:1px solid #d8d8d8;}
                > #ygrp-mkp #hd{
                >
                color:#628c2a; font-size: 85%;font- weight:bold; line-height: 122%;margin: 10px
                0px;}
                > #ygrp-mkp #ads{
                > margin-bottom: 10px;}
                > #ygrp-mkp .ad{
                > padding:0 0;}
                > #ygrp-mkp .ad a{
                > color:#0000ff; text-decoration: none;}
                > -->
                >
                >
                >
                > <!--
                >
                > #ygrp-sponsor #ygrp-lc{
                > font-family: Arial;}
                > #ygrp-sponsor #ygrp-lc #hd{
                > margin:10px 0px;font-weight: bold;font- size:78%; line-height: 122%;}
                > #ygrp-sponsor #ygrp-lc .ad{
                > margin-bottom: 10px;padding: 0 0;}
                > -->
                >
                >
                >
                > <!--
                >
                > #ygrp-mlmsg {font-size:13px; font-family: arial, helvetica, clean,
                sans-serif;}
                > #ygrp-mlmsg table {font-size:inherit; font:100% ;}
                > #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica,
                clean, sans-serif;}
                > #ygrp-mlmsg pre, code {font:115% monospace;}
                > #ygrp-mlmsg * {line-height: 1.22em;}
                > #ygrp-text{
                > font-family: Georgia;
                > }
                > #ygrp-text p{
                > margin:0 0 1em 0;}
                > #ygrp-tpmsgs{
                > font-family: Arial;
                > clear:both;}
                > #ygrp-vitnav{
                > padding-top: 10px;font- family:Verdana; font-size: 77%;margin: 0;}
                > #ygrp-vitnav a{
                > padding:0 1px;}
                > #ygrp-actbar{
                > clear:both;margin: 25px
                0;white-space: nowrap;color: #666;text- align:right; }
                > #ygrp-actbar .left{
                > float:left;white- space:nowrap; }
                > .bld{font-weight: bold;}
                > #ygrp-grft{
                > font-family: Verdana;font- size:77%; padding:15px 0;}
                > #ygrp-ft{
                > font-family: verdana;font- size:77%; border-top: 1px solid #666;
                > padding:5px 0;
                > }
                > #ygrp-mlmsg #logo{
                > padding-bottom: 10px;}
                >
                > #ygrp-vital{
                > background-color: #e0ecee;margin- bottom:20px; padding:2px 0 8px 8px;}
                > #ygrp-vital #vithd{
                >
                font-size:77% ;font-family: Verdana;font- weight:bold; color:#333; text-transform: uppercase; }
                > #ygrp-vital ul{
                > padding:0;margin: 2px 0;}
                > #ygrp-vital ul li{
                > list-style-type: none;clear: both;border: 1px solid #e0ecee;
                > }
                > #ygrp-vital ul li .ct{
                >
                font-weight: bold;color: #ff7900;float: right;width: 2em;text- align:right; padding-right: .5em;}
                > #ygrp-vital ul li .cat{
                > font-weight: bold;}
                > #ygrp-vital a{
                > text-decoration: none;}
                >
                > #ygrp-vital a:hover{
                > text-decoration: underline; }
                >
                > #ygrp-sponsor #hd{
                > color:#999;font- size:77%; }
                > #ygrp-sponsor #ov{
                > padding:6px 13px;background- color:#e0ecee; margin-bottom: 20px;}
                > #ygrp-sponsor #ov ul{
                > padding:0 0 0 8px;margin:0; }
                > #ygrp-sponsor #ov li{
                > list-style-type: square;padding: 6px 0;font-size: 77%;}
                > #ygrp-sponsor #ov li a{
                > text-decoration: none;font- size:130% ;}
                > #ygrp-sponsor #nc{
                > background-color: #eee;margin- bottom:20px; padding:0 8px;}
                > #ygrp-sponsor .ad{
                > padding:8px 0;}
                > #ygrp-sponsor .ad #hd1{
                >
                font-family: Arial;font- weight:bold; color:#628c2a; font-size: 100%;line- height:122% ;}
                > #ygrp-sponsor .ad a{
                > text-decoration: none;}
                > #ygrp-sponsor .ad a:hover{
                > text-decoration: underline; }
                > #ygrp-sponsor .ad p{
                > margin:0;}
                > o{font-size: 0;}
                > .MsoNormal{
                > margin:0 0 0 0;}
                > #ygrp-text tt{
                > font-size:120% ;}
                > blockquote{margin: 0 0 0 4px;}
                > .replbq{margin: 4;}
                > -->
                >

                or .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight: bold; color: #628c2a; font-size: 100%; line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin: 0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; } #ygrp-text tt{ font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq{margin:4} -->
              • blicksky
                You can take a look at it here: http://blicksky.com/brabble/yui/. This is a new attempt (since being introduced to YUI) at an old project at
                Message 7 of 7 , Oct 8, 2007
                • 0 Attachment
                  You can take a look at it here: http://blicksky.com/brabble/yui/.

                  This is a new attempt (since being introduced to YUI) at an old
                  project at http://blicksky.com/brabble. The old drag code I wrote
                  from scratch, while broken in terms of when you drop a piece, is much
                  faster.

                  Thanks so much for your help.

                  --- In ydn-javascript@yahoogroups.com, Dav Glass <dav.glass@...> wrote:
                  >
                  > Do you think you could send me a link?
                  >
                  > Then I could see it in action :)
                  >
                  > Dav
                  >
                  > Dav Glass
                  > dav.glass@...
                  > Sent from my iPhone
                  >
                  > On Oct 8, 2007, at 5:00 PM, "blicksky" <blicksky@...> wrote:
                  >
                  > Thanks! that definitely helped. There's still one problem that I'm
                  > wondering if you can help me with:
                  >
                  > At the beginning of the drag, there is about a 1 second delay before
                  > the draggable element is moved to where the mouse is and begins to
                  > follow the mouse. I've already set
                  > YAHOO.util.DragDropMgr.clickPixelThresh = 1;
                  > in case setting it to 0 caused it to be considered unset and revert to
                  > it's default of 1000 (1 second), but it doesn't seem to help. Am I
                  > not setting this value properly, or is there some intensive work being
                  > done onStartDrag that is causing the delay?
                  >
                  > --- In ydn-javascript@yahoogroups.com, dav.glass@ wrote:
                  > >
                  > > blicksky --
                  > >
                  > > Here's a simple way to get what you want:
                  > > http://blog.davglass.com/files/yui/dd13/
                  > >
                  > > Hope that helps :)
                  > > Dav
                  > >
                  > > Dav Glass
                  > > dav.glass@
                  > > blog.davglass.com
                  > >
                  > > + Windows: n. - The most successful computer virus, ever. +
                  > > + A computer without a Microsoft operating system is like a dog
                  > > without bricks tied to its head +
                  > > + A Microsoft Certified Systems Engineer is to computing what a
                  > > McDonalds Certified Food Specialist is to fine cuisine +
                  > >
                  > > ----- Original Message ----
                  > > From: blicksky <blicksky@>
                  > > To: ydn-javascript@yahoogroups.com
                  > > Sent: Monday, October 8, 2007 8:02:45 AM
                  > > Subject: [ydn-javascript] drag drop performance
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > > I'm working with a board game, containing a 15x15 grid
                  > with 225 DragDrop
                  > >
                  > > targets, and a small number of draggable objects. Due to the large
                  > >
                  > > number of drag targets, moving around the draggable objects is
                  slow and
                  > >
                  > > choppy. The documentation says this is expected because there are
                  > >
                  > > events being fired many times for each move of the mouse. It suggests
                  > >
                  > > using DDProxy, and that helps a little, but not quite enough.
                  > >
                  > >
                  > >
                  > > For my purposes, I do not need to react to a draggable object being
                  > >
                  > > moved over a drag target; I only need to know what target the
                  draggable
                  > >
                  > > object was over when the mouse button is released so that it can be
                  > >
                  > > attached there. Is there any way to configure the YUI DD objects so
                  > >
                  > > that there are no events fired for each mousemove aside from updating
                  > >
                  > > the position of the draggable object?
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > >
                  > > <!--
                  > >
                  > > #ygrp-mkp{
                  > > border:1px solid #d8d8d8;font-family:Arial;margin:14px
                  > 0px;padding:0px 14px;}
                  > > #ygrp-mkp hr{
                  > > border:1px solid #d8d8d8;}
                  > > #ygrp-mkp #hd{
                  > >
                  >
                  color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px
                  > 0px;}
                  > > #ygrp-mkp #ads{
                  > > margin-bottom:10px;}
                  > > #ygrp-mkp .ad{
                  > > padding:0 0;}
                  > > #ygrp-mkp .ad a{
                  > > color:#0000ff;text-decoration:none;}
                  > > -->
                  > >
                  > >
                  > >
                  > > <!--
                  > >
                  > > #ygrp-sponsor #ygrp-lc{
                  > > font-family:Arial;}
                  > > #ygrp-sponsor #ygrp-lc #hd{
                  > > margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
                  > > #ygrp-sponsor #ygrp-lc .ad{
                  > > margin-bottom:10px;padding:0 0;}
                  > > -->
                  > >
                  > >
                  > >
                  > > <!--
                  > >
                  > > #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean,
                  > sans-serif;}
                  > > #ygrp-mlmsg table {font-size:inherit;font:100%;}
                  > > #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica,
                  > clean, sans-serif;}
                  > > #ygrp-mlmsg pre, code {font:115% monospace;}
                  > > #ygrp-mlmsg * {line-height:1.22em;}
                  > > #ygrp-text{
                  > > font-family:Georgia;
                  > > }
                  > > #ygrp-text p{
                  > > margin:0 0 1em 0;}
                  > > #ygrp-tpmsgs{
                  > > font-family:Arial;
                  > > clear:both;}
                  > > #ygrp-vitnav{
                  > > padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
                  > > #ygrp-vitnav a{
                  > > padding:0 1px;}
                  > > #ygrp-actbar{
                  > > clear:both;margin:25px
                  > 0;white-space:nowrap;color:#666;text-align:right;}
                  > > #ygrp-actbar .left{
                  > > float:left;white-space:nowrap;}
                  > > .bld{font-weight:bold;}
                  > > #ygrp-grft{
                  > > font-family:Verdana;font-size:77%;padding:15px 0;}
                  > > #ygrp-ft{
                  > > font-family:verdana;font-size:77%;border-top:1px solid #666;
                  > > padding:5px 0;
                  > > }
                  > > #ygrp-mlmsg #logo{
                  > > padding-bottom:10px;}
                  > >
                  > > #ygrp-vital{
                  > > background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
                  > > #ygrp-vital #vithd{
                  > >
                  >
                  font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
                  > > #ygrp-vital ul{
                  > > padding:0;margin:2px 0;}
                  > > #ygrp-vital ul li{
                  > > list-style-type:none;clear:both;border:1px solid #e0ecee;
                  > > }
                  > > #ygrp-vital ul li .ct{
                  > >
                  >
                  font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
                  > > #ygrp-vital ul li .cat{
                  > > font-weight:bold;}
                  > > #ygrp-vital a{
                  > > text-decoration:none;}
                  > >
                  > > #ygrp-vital a:hover{
                  > > text-decoration:underline;}
                  > >
                  > > #ygrp-sponsor #hd{
                  > > color:#999;font-size:77%;}
                  > > #ygrp-sponsor #ov{
                  > > padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
                  > > #ygrp-sponsor #ov ul{
                  > > padding:0 0 0 8px;margin:0;}
                  > > #ygrp-sponsor #ov li{
                  > > list-style-type:square;padding:6px 0;font-size:77%;}
                  > > #ygrp-sponsor #ov li a{
                  > > text-decoration:none;font-size:130%;}
                  > > #ygrp-sponsor #nc{
                  > > background-color:#eee;margin-bottom:20px;padding:0 8px;}
                  > > #ygrp-sponsor .ad{
                  > > padding:8px 0;}
                  > > #ygrp-sponsor .ad #hd1{
                  > >
                  >
                  font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
                  > > #ygrp-sponsor .ad a{
                  > > text-decoration:none;}
                  > > #ygrp-sponsor .ad a:hover{
                  > > text-decoration:underline;}
                  > > #ygrp-sponsor .ad p{
                  > > margin:0;}
                  > > o{font-size:0;}
                  > > .MsoNormal{
                  > > margin:0 0 0 0;}
                  > > #ygrp-text tt{
                  > > font-size:120%;}
                  > > blockquote{margin:0 0 0 4px;}
                  > > .replbq{margin:4;}
                  > > -->
                  > >
                  >
                  >
                  > or .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{ font-family:
                  Arial; font-weight: bold; color: #628c2a; font-size: 100%;
                  line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; }
                  #ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor
                  .ad p{ margin: 0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; }
                  #ygrp-text tt{ font-size: 120%; } blockquote{margin: 0 0 0 4px;}
                  .replbq{margin:4} -->
                  >
                Your message has been successfully submitted and would be delivered to recipients shortly.