Hi guys,

I've go ahead and added a jira issue for struts2 dojo migration, Its at 
http://issues.apache.org/struts/browse/WW-1484

rgds

Musachy Barroso <[EMAIL PROTECTED]> wrote: I'm using defineWidget, and it is 
cool. I will be looking into hostedqa 
given that it is being used in struts already, as per Don's comment 
somewhere on this thread.

musachy

tm jee wrote:
> Hi guys,
>
> sorry for jumping into this late. I think we should do the followings for 
> struts2 dojo widgets.
>
> - use dojo.widget.defineWidget instead of the old-way of using dojo.provide, 
> dojo.extends etc. Dojo got most of its widget rewritten using this way.
>
> - have struts2 widgets/utils as a separate module and add them in using 
> dojo.setModulePrefix(...) (0.3) I think the method is renamed in 0.4 and the 
> concept of module is namespace in 0.4
>
> - have javadoc comments in our widget, hopefully it would be easier to follow 
> and maybe if possible able to generate docs like http://dojotoolkit.org/api 
> But I am not sure about how to do this yet. Definitely interested in finding 
> out more.
>
> - have a test folder, like dojo's where we could have pages that test the 
> widget, we could use Pat's product to do test the pages (something like 
> HostedQA or Selenium)
>
> What you guys think? :-)
>
> Rainer Hermanns  wrote: I'll wait for your patch against 0.4 then.
> As soon as I get it, I'll update Dojo first and commit your patches for
> the tags separately.
>
> just let me know, when you are done :)
> tia,
> Rainer
>
>   
>> :) I know. What I meant is that it shouldn't be applied yet 'cause I
>> made it using 0.3 and I haven't tried it on 0.4 yet.
>>
>> musachy
>>
>> Martin Cooper wrote:
>>     
>>> On 10/30/06, Musachy Barroso  wrote:
>>>       
>>>> Oh, ok. Then just don't apply the patch.
>>>>         
>>> No, no - I'm not saying that it shouldn't be applied, only that it
>>> should be
>>> a separate commit.
>>>
>>> By the way, do we have a Jira
>>>       
>>>> issue for the dojo upgrade?
>>>>         
>>> Not that I can see. Feel free to add one, and one with your patch, if
>>> there
>>> isn't one already.
>>>
>>> --
>>> Martin.
>>>
>>>
>>> musachy
>>>       
>>>> Martin Cooper wrote:
>>>>         
>>>>> On 10/30/06, Musachy Barroso  wrote:
>>>>>           
>>>>>> Hi Rainer
>>>>>>
>>>>>> Give me a couple of days so I can test it against 0.4 (I made the
>>>>>>             
>>>> patch
>>>>         
>>>>>> using 0.3) and finish some changes(for BindButton) that I have for a
>>>>>>             
>>>> new
>>>>         
>>>>>> patch. I will give you a new patch soon with the changes for Bind,
>>>>>> BindDiv, BindAnchor, BindButton and TabbedPanel tested on dojo
>>>>>>             
>>>> 0.4. If
>>>>         
>>>>>> you want to go ahead and upgrade to 0.4 and apply the patch later,
>>>>>> that's fine. (I will just be bothering with another patch soon :) )
>>>>>>             
>>>>> Well, the upgrade and the patch should certainly be separate
>>>>>           
>>>> commits, so
>>>>         
>>>>> that we can track the changes separately, and so that we can revert
>>>>> one or
>>>>> the other if that ever becomes necessary. Beyond that, it's up to the
>>>>> prospective committer to determine timing. ;-)
>>>>>
>>>>> --
>>>>> Martin Cooper
>>>>>
>>>>>
>>>>> musachy
>>>>>           
>>>>>> Rainer Hermanns wrote:
>>>>>>             
>>>>>>> Musachy,
>>>>>>>
>>>>>>> I could upgrade the embedded Dojo files to the 0.4 release
>>>>>>>               
>>>> during the
>>>>         
>>>>>> week.
>>>>>>             
>>>>>>> If your patches for the s2 ajax tags already are against the
>>>>>>>               
>>>>>> 0.4release,
>>>>>>             
>>>>>>> I could apply those as well.
>>>>>>>
>>>>>>> What do you (and others of course) think?
>>>>>>>
>>>>>>> regards,
>>>>>>> Rainer
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Any idea on when is Dojo going to be bumped up to 0.4?
>>>>>>>>
>>>>>>>> musachy
>>>>>>>>
>>>>>>>> Don Brown wrote:
>>>>>>>>
>>>>>>>>                 
>>>>>>>>> Yes, let's start with bumping up Dojo to 0.4, then apply
>>>>>>>>>                   
>>>> patches to
>>>>         
>>>>>>>>> update the tags.  How much work do you think it'll be to upgrade
>>>>>>>>>                   
>>>>>> Dojo?
>>>>>>             
>>>>>>>>> Don
>>>>>>>>>
>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>>>> I attached a new patch to WW-205, this one includes the new
>>>>>>>>>> TabbedPanel, BindDiv  and BindAnchor. It needs Dojo 0.3.1.Do
>>>>>>>>>>                     
>>>> you
>>>>         
>>>>>> want
>>>>>>             
>>>>>>>>>> me to create a patch to update to Dojo 0.3.1?(We just need to
>>>>>>>>>>                     
>>>>>> replace
>>>>>>             
>>>>>>>>>> dojo distribution under static/dojo.)
>>>>>>>>>>
>>>>>>>>>> I modified the examples in showcase and the test cases. Let me
>>>>>>>>>>                     
>>>> know
>>>>         
>>>>>>>>>> if something is missing or wrong (bear with me on my first
>>>>>>>>>>                     
>>>> patch
>>>> :)
>>>>         
>>>>>> ).
>>>>>>             
>>>>>>>>>> musachy
>>>>>>>>>>
>>>>>>>>>> Don Brown wrote:
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>>>>>>> Ok, then put those two under one ticket.  You know best :)
>>>>>>>>>>>
>>>>>>>>>>> Don
>>>>>>>>>>>
>>>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>>>
>>>>>>>>>>>                       
>>>>>>>>>>>> That's ok, the only problem is that this one by itself would
>>>>>>>>>>>>                         
>>>>>> break
>>>>>>             
>>>>>>>>>>>> anchor and tabbed panel.
>>>>>>>>>>>>
>>>>>>>>>>>> musachy
>>>>>>>>>>>>
>>>>>>>>>>>> Don Brown wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>                         
>>>>>>>>>>>>> I'd prefer separate issues, with attached patches.  As for
>>>>>>>>>>>>> testing, we started to use Patrick's hostedqa stuff, but we
>>>>>>>>>>>>>                           
>>>> need
>>>>         
>>>>>>>>>>>>> to use it more.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Don
>>>>>>>>>>>>>
>>>>>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>                           
>>>>>>>>>>>>>> I have everything (I think :)) for the ajax Div Tag, do you
>>>>>>>>>>>>>>                             
>>>>>> want
>>>>>>             
>>>>>>>>>>>>>> me to create a patch for it, or wait and create a big one
>>>>>>>>>>>>>>                             
>>>> when
>>>>         
>>>>>>>>>>>>>> I'm done with the other widgets (anchor, tree...dojo 0.2 ->
>>>>>>>>>>>>>>                             
>>>>>> 0.3)?
>>>>>>             
>>>>>>>>>>>>>> musachy
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> //Have you guys consider anything to test this ajax stuff?
>>>>>>>>>>>>>> (Selenium maybe?)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>                             
>>>>>>>>>>>>>>> This was with 0.3.1 which is the current release. I
>>>>>>>>>>>>>>>                               
>>>> posted a
>>>>         
>>>>>>>>>>>>>>> message on their mailing list.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> musachy
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Don Brown wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>> Have you tried this with the Dojo 0.4 release?  Any
>>>>>>>>>>>>>>>>                                 
>>>> reason
>>>> we
>>>>         
>>>>>>>>>>>>>>>> shouldn't upgrade to it?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Don
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>>>>>>>>>>>>>>>> Would something like this include all the current
>>>>>>>>>>>>>>>>> functionality in BindDiv? (events for stop/start timer,
>>>>>>>>>>>>>>>>> refresh, start after a delay, advisor via dojo's
>>>>>>>>>>>>>>>>>                                   
>>>> "handler"
>>>>         
>>>>>>>>>>>>>>>>> property). This way BindDiv will be easier to maintain
>>>>>>>>>>>>>>>>>                                   
>>>>>> (dojo's
>>>>>>             
>>>>>>>>>>>>>>>>> ContentPane + timer) and the Tab widget can be deleted
>>>>>>>>>>>>>>>>> (doesn't add anything to this one). By the way this
>>>>>>>>>>>>>>>>>                                   
>>>> doesn't
>>>>         
>>>>>>>>>>>>>>>>> work on AMD 64/firefox/linux due to a dojo's bug.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> dojo.provide("struts.widgets.BindDiv");
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> dojo.require("dojo.widget.*");
>>>>>>>>>>>>>>>>> dojo.require("dojo.io.*");
>>>>>>>>>>>>>>>>> dojo.require("dojo.widget.Container");
>>>>>>>>>>>>>>>>> dojo.require("dojo.widget.ContentPane");
>>>>>>>>>>>>>>>>> dojo.require("dojo.animation.Timer");
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> struts.widgets.BindDiv = function() {
>>>>>>>>>>>>>>>>>  dojo.widget.html.ContentPane.call(this);
>>>>>>>>>>>>>>>>>  var self = this;
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.widgetType = "BindDiv";
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.href = "";
>>>>>>>>>>>>>>>>>  this.extractContent = false;
>>>>>>>>>>>>>>>>>  this.parseContent = false;
>>>>>>>>>>>>>>>>>  this.cacheContent = false;
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.frequency = 0;
>>>>>>>>>>>>>>>>>  this.delay = 0;
>>>>>>>>>>>>>>>>>  this.startTimer = false;
>>>>>>>>>>>>>>>>>  this.timer = null;
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  //pub/sub events
>>>>>>>>>>>>>>>>>  this.refreshListenTopics = "";
>>>>>>>>>>>>>>>>>  this.stopTimerListenTopics = "";
>>>>>>>>>>>>>>>>>  this.startTimerListenTopics = "";
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.postCreate = function() {
>>>>>>>>>>>>>>>>>    if(self.frequency > 0) {
>>>>>>>>>>>>>>>>>      self.timer = new
>>>>>>>>>>>>>>>>>                                   
>>>> dojo.animation.Timer(self.frequency);
>>>>         
>>>>>>>>>>>>>>>>>      self.timer.onTick = self.reloadContents;
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>      //start the timer
>>>>>>>>>>>>>>>>>      if(self.startTimer) {
>>>>>>>>>>>>>>>>>        //start after delay
>>>>>>>>>>>>>>>>>        dojo.debug("starting timer after " + self.delay);
>>>>>>>>>>>>>>>>>        dojo.lang.setTimeout(self.delay,
>>>>>>>>>>>>>>>>>                                   
>>>> self.startTimer);
>>>>         
>>>>>>>>>>>>>>>>>      }
>>>>>>>>>>>>>>>>>    }
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>    //attach listeners
>>>>>>>>>>>>>>>>>    if(!dojo.string.isBlank(self.refreshListenTopics)) {
>>>>>>>>>>>>>>>>>      dojo.debug("Listening to " +
>>>>>>>>>>>>>>>>>                                   
>>>> self.refreshListenTopics
>>>> );
>>>>         
>>>>>>>>>>>>>>>>>      dojo.event.topic.subscribe(self.refreshListenTopics,
>>>>>>>>>>>>>>>>> self, "reloadContents");
>>>>>>>>>>>>>>>>>    }
>>>>>>>>>>>>>>>>>    if(!dojo.string.isBlank(self.stopTimerListenTopics))
>>>>>>>>>>>>>>>>>                                   
>>>> {
>>>>         
>>>>>>>>>>>>>>>>>      dojo.debug("Listening to " +
>>>>>>>>>>>>>>>>>                                   
>>>>>> self.stopTimerListenTopics);
>>>>>>             
>>>> dojo.event.topic.subscribe(self.stopTimerListenTopics,
>>>>         
>>>>>>>>>>>>>>>>> self, "stopTimer");
>>>>>>>>>>>>>>>>>    }
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>                                   
>>>> if(!dojo.string.isBlank(self.startTimerListenTopics)) {
>>>>         
>>>>>>>>>>>>>>>>>      dojo.debug("Listening to " +
>>>>>>>>>>>>>>>>>                                   
>>>>>> self.startTimerListenTopics
>>>>>> );
>>>>>>             
>>>> dojo.event.topic.subscribe(self.startTimerListenTopics
>>>> ,
>>>>         
>>>>>>>>>>>>>>>>> self, "startTimer");
>>>>>>>>>>>>>>>>>    }
>>>>>>>>>>>>>>>>>  };
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.reloadContents = function() {
>>>>>>>>>>>>>>>>>    //refresh is not visible in ContentPane
>>>>>>>>>>>>>>>>>    self.isLoaded = false;
>>>>>>>>>>>>>>>>>    self.loadContents();
>>>>>>>>>>>>>>>>>  };
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.stopTimer = function() {
>>>>>>>>>>>>>>>>>    dojo.debug("stopping timer");
>>>>>>>>>>>>>>>>>    self.timer.stop();
>>>>>>>>>>>>>>>>>  };
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>  this.startTimer = function() {
>>>>>>>>>>>>>>>>>    dojo.debug("starting timer with frequency " +
>>>>>>>>>>>>>>>>> self.frequency);
>>>>>>>>>>>>>>>>>    self.timer.start();
>>>>>>>>>>>>>>>>>  };
>>>>>>>>>>>>>>>>> };
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> dojo.inherits(struts.widgets.BindDiv,
>>>>>>>>>>>>>>>>> dojo.widget.html.ContentPane);
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> dojo.widget.tags.addParseTreeHandler("dojo:BindDiv");
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Musachy Barroso wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>                                   
>>>>>>>>>>>>>>>>>> I was looking at the Div/Panel classes and I think we
>>>>>>>>>>>>>>>>>>                                     
>>>>>> need to
>>>>>>             
>>>>>>>>>>>>>>>>>> do some changes, right now Panel extends Div and
>>>>>>>>>>>>>>>>>>                                     
>>>> PanelTag
>>>>         
>>>>>>>>>>>>>>>>>> exteds DivTag. The problem is that the new PanelTag
>>>>>>>>>>>>>>>>>>                                     
>>>> wraps
>>>>         
>>>>>>>>>>>>>>>>>> dojo's ContentPane, while DivTag wraps HTMLBindDiv(from
>>>>>>>>>>>>>>>>>> struts), and they are quite different. I think we
>>>>>>>>>>>>>>>>>>                                     
>>>> should
>>>>         
>>>>>>>>>>>>>>>>>> replace HTMLBindDiv with an implementation that extends
>>>>>>>>>>>>>>>>>> dojo's ContentPane and add a timer to it for the auto
>>>>>>>>>>>>>>>>>>                                     
>>>>>> refresh.
>>>>>>             
>>>>>>>>>>>>>>>>>> what do you guys think?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> musachy
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Ian Roughley wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>                                     
>>>>>>>>>>>>>>>>>>> Yes - this was the direction that we wanted to go
>>>>>>>>>>>>>>>>>>>                                       
>>>> in.  Try
>>>>         
>>>>>>>>>>>>>>>>>>> to do as much as possible in dojo and provide light
>>>>>>>>>>>>>>>>>>>                                       
>>>>>> wrappers
>>>>>>             
>>>>>>>>>>>>>>>>>>> in Struts.  When we first implemented the tabs, there
>>>>>>>>>>>>>>>>>>>                                       
>>>>>> was no
>>>>>>             
>>>>>>>>>>>>>>>>>>> such dojo implementation.  The one feature that we had
>>>>>>>>>>>>>>>>>>>                                       
>>>>>> that
>>>>>>             
>>>>>>>>>>>>>>>>>>> you should check that has been implemented in dojo
>>>>>>>>>>>>>>>>>>>                                       
>>>> is the
>>>>         
>>>>>>>>>>>>>>>>>>> pub/sub events - so there should be events that each
>>>>>>>>>>>>>>>>>>>                                       
>>>> tabs
>>>>         
>>>>>>>>>>>>>>>>>>> listens to to refresh itself.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I think as Don pointed out, we want to keep a very
>>>>>>>>>>>>>>>>>>> lightweight wrapper in struts and have all the work
>>>>>>>>>>>>>>>>>>>                                       
>>>> being
>>>>         
>>>>>>>>>>>>>>>>>>> done in dojo.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> The other big thing that would be a great help is
>>>>>>>>>>>>>>>>>>>                                       
>>>>>> converting
>>>>>>             
>>>>>>>>>>>>>>>>>>> the code from dojo 0.2 to 0.3 :)
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Ian
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>                                       
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>>                                     
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>>                                     
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>                                     
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>>>>>>>>>>>                                   
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>>                                   
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>                                   
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>>                                 
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>>>>>>>>>                               
>>>> [EMAIL PROTECTED]
>>>>         
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>                               
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>                             
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>                           
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                         
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                       
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>> ---------------------------------------------------------------------
>>>>>>             
>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                   
>>>> ---------------------------------------------------------------------
>>>>         
>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>
>>>>>>>               
>>>> ---------------------------------------------------------------------
>>>>         
>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>>
>>>>>>
>>>>>>             
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>>         
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>     
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>  Send instant messages to your online friends http://uk.messenger.yahoo.com 
>   

---------------------------------------------------------------------

=== message truncated ===

 Send instant messages to your online friends http://uk.messenger.yahoo.com 

Reply via email to