[jawsscripts] Re: Another public beta of JAWS Script Exchange 2.0

  • From: "Donald Marang" <donald.marang@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Tue, 10 Mar 2009 14:20:53 -0400

Thanks!  I will try that out later today.

Regarding the "default.jss" files, is capitalization significant?  I have
noticed that sometimes it is all uppercase and other times it is all lower
case.  The same is true for extensions like jss, jsb, and so on.  Is this a
remnant of the earlier DOS days of 8.3 filenames where capitalization  is
ignored?  Does it matter in this Merge statement or in a Use or Include
statement?

Don Marang


----- Original Message ----- 
From: "Jamal Mazrui" <empower@xxxxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Monday, March 09, 2009 3:06 PM
Subject: [jawsscripts] Re: Another public beta of JAWS Script Exchange 2.0


> Hi Donald,
> In your merge statements, try default.jss rather than default (include
> the extension).  That seems to work under XP.  I notice you are using
> Vista and can't test that right now.
>
> Jamal
> On Mon, 9 Mar 2009, Donald Marang
> wrote:
>
>> Date: Mon, 9 Mar 2009 01:20:58 -0400
>> From: Donald Marang <donald.marang@xxxxxxxxx>
>> Reply-To: jawsscripts@xxxxxxxxxxxxx
>> To: jawsscripts@xxxxxxxxxxxxx
>> Subject: [jawsscripts] Re: Another public beta of JAWS Script Exchange
>> 2.0
>>
>> Hey Jamal and fellow listers,
>>
>> I must be doing something wrong using jsx.  I seem to be able to create
>> the
>> zip and self installing executable files from my JAWS 10 directory where
>> I
>> developed my scripts.  I upload them to a personal webpage area on my ISP
>> at:
>> http://mysite.verizon.net/marangs/VerizonCallAssistant.html
>> I then clean out all temporary files in my system, reboot, and close JAWS
>> 10
>> and load JAWS 9.  I then go to my webpage and download the self
>> installing
>> executable version package to a completely different directory and run
>> the
>> installer into the JAWS 9 directory.  I select the desired options and
>> press
>> the Install button.  It complains right after announcing that it is
>> compiling, with the following incomplete error message:
>> C:\Users\Don\AppData\Local\Temp\is-6315G.tmp\VZCallAssist... graphic 798
>> graphic 603
>> OK Cancel
>> 0.95) Self Installing Version
>>
>> It will then ask me for confirmation for two files where I have a
>> question
>> mark in the ";?Merge..." directive at the top of the script files that I
>> wish to have merged with default.jss.  It then has another error message
>> before completing:
>> Location is not available
>> C:\Users\Don\AppData\Local\Temp\is-6315G.tmp refers to a location that is
>> unavailable. It
>> could be on a hard drive on this computer, or on a network. Check to make
>> sure that the disk
>> is properly inserted, or that you are connected to the Internet or your
>> network, and then try
>> again. If it still cannot be located, the information might have been
>> moved
>> to a different
>> location.
>> OK
>>
>>
>> Watch out.  I have not fully debugged all of the new code in this package
>> yet!
>>
>> Can anyone shed light on what I am doing wrong?  I am using JAWS 9 and 10
>> on
>> a laptop running Vista Home Premium.  Thanks for your help.
>> Don Marang
>>
>>
>> ----- Original Message -----
>> From: "Jamal Mazrui" <empower@xxxxxxxxx>
>> To: <jawsscripts@xxxxxxxxxxxxx>
>> Sent: Tuesday, February 24, 2009 2:07 PM
>> Subject: [jawsscripts] Re: Another public beta of JAWS Script Exchange
>> 2.0
>>
>>
>> > Thanks for your interest in JSX.  Below is an excerpt from the current
>> > documentation.  The merging capability is an advanced option that is a
>> > bit hard to explain, unfortunately.  I'll gladly answer questions
>> > though, and if I discover that something desirable is not possible,
>> > I'll
>> > try to enhance the feature.  I'd be glad to work with the author of the
>> > Twitter scripts if he wants to build a JSX-based installer for them.
>> >
>> > Jamal
>> >
>> > JSX 1.4 introduced a second, usually better way of merging.  In this
>> > example, the file HomerIE.jss contains enhancements to the Internet
>> > Explorer scripts supplied with JAWS.  Place the following line at the
>> > top of the file:
>> >
>> > ;Merge "BrowseUI"
>> >
>> > This tells JSX to merge HomerIE.jss into the script set associated with
>> > the base name BrowsUI (the file name is BrowseUI.dll).  JSX looks up
>> > the
>> > association in ConfigNames.ini.  With JAWS 8 and above, the main file
>> > of
>> > the script set is "Internet Explorer.jss."  With lower JAWS versions,
>> > it
>> > is "Internet Explorer 5-6.jss."
>> >
>> > JSX creates a container file with a set of Use statements that load
>> > script components in a particular order, thereby governing the
>> > inheritance chain of scripts and functions.  The file also contains a
>> > dummy function at the bottom, which is needed so that the JAWS script
>> > compiler considers the file to be a valid script file, thus creating a
>> > valid .jsb version after compilation.  The factory-supplied version of
>> > the .jsb is copied from the All Users script folder to a file in the
>> > user script folder with a modified name.  A suffix of _fs (standing for
>> > Freedom Scientific) is added to the base name, e.g., Internet
>> > Explorer.jsb would become Internet Explorer_fs.jsb, or default.jsb
>> > would
>> > become default_fs.jsb.
>> >
>> > The order of Use statements in the generated container file is
>> > determined by the following algorithm.  If there is an existing
>> > container file, its component order is the starting sequence; otherwise
>> > it is an empty string.  If there is a vertical bar (|) delimited list
>> > of
>> > components after the Merge word on the top line, its sequence is
>> > appended to the starting sequence after removing any duplicate items
>> > from the starting sequence.  If the resulting sequence does not contain
>> > the _fs component, it is prepended to the sequence (so it serves as
>> > base
>> > functionality at the top level of the inheritance chain).  If the
>> > current script component is not contained in the sequence, it is
>> > appended.
>> >
>> > In our example, a container file called Internet Explorer.jss would be
>> > created and compiled with the following content:
>> >
>> > ; This is a container file, structured with conventions to support
>> > merging by the JAWS Script Exchange program.
>> > ; Rather than code of its own, the file contains a sequence of Use
>> > statements, followed by a dummy function to satisfy the JAWS script
>> > compiler.
>> >
>> > Use "Internet Explorer_fs.Jsb"
>> > Use "HomerIE.jsb"
>> >
>> > Void Function _Filler()
>> > SayString("This is to complete a container .jss so that it compiles to
>> > a
>> > valid .jsb")
>> > EndFunction
>> >
>> >
>> > Suppose we wanted to add AnotherIE.jsb to the sequence.  We could do so
>> > with the following syntax on the top line:
>> >
>> > ;Merge AnotherIE.jsb "BrowseUI"
>> >
>> > Now the container file would begin with the following statements:
>> >
>> > Use "Internet Explorer_fs.Jsb"
>> > Use "AnotherIE.jsb"
>> > Use "HomerIE.jsb"
>> >
>> > The merge algorithm is intended to accomplish several objectives:
>> >
>> > * Previous JSX syntax for merging remains compatible.
>> >
>> > *  If no container file already exists, the component sequence will be
>> > the _FS file followed by the current file.
>> >
>> > *  If a container file already exists and no post sequence is
>> > specified,
>> > the existing sequence will be preserved.
>> >
>> > *  If a post sequence is specified, it can override the existing
>> > sequence.
>> >
>> > JSX would also merge related .jkm and .jcf files, which are in .ini
>> > format, as follows.  It iterates through all sections of the new file,
>> > and all keys within each section, writing the key/value pair to the
>> > existing file.  Thus, if a key already exists, its value is replaced.
>> > If it does not already exist, it is created.
>> >
>> > The merge target may be a delimited list of files rather than a single
>> > file, e.g.,
>> >
>> > ;Merge "BrowseUI|IEFrame"
>> >
>> > If a question mark follows the semicolon, JSX asks for confirmation
>> > about whether to perform the merge, prompting with a warning on the
>> > remainder of the line, e.g.,
>> >
>> > ;?Merge "Microsoft Outlook.jss|Microsoft Outlook XP-2003.jss" For Homer
>> > benefits that require configuring Outlook for plain text email,
>> >
>> > On Tue, 24
>> > Feb 2009, Donald Marang wrote:
>> >
>> >> Date: Tue, 24 Feb 2009 11:08:57 -0500
>> >> From: Donald Marang <donald.marang@xxxxxxxxx>
>> >> Reply-To: jawsscripts@xxxxxxxxxxxxx
>> >> To: jawsscripts@xxxxxxxxxxxxx
>> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script Exchange
>> >> 2.0
>> >>
>> >> Hey Jamal,
>> >>
>> >> Sorry for the ignorance in the use of your exchange software as a
>> >> developer
>> >> and the automation of the "merge" process!  I plan to use it soon for
>> >> my
>> >> Verizon project and others.  I downloaded the version several months
>> >> ago,
>> >> but have not yet taken the time  to learn your program or use it.  I
>> >> guess I
>> >> will need to visit your site again and check out your new beta
>> >> version.
>> >> Is
>> >> there any documentation for these conventions you talk about for the
>> >> Use
>> >> statement and container script files available anywhere?  I hope I
>> >> have
>> >> followed them to this point.  I think my next release will have two
>> >> application script files and two container script files.  One of the
>> >> user
>> >> default container script file has a key map file I would like to
>> >> automatically merge with the default key map file.  Of course, both
>> >> container script files have a Use statements that need to be merged.
>> >> Is
>> >> this possible?  If it is, I am surprised that the merge features of
>> >> your
>> >> exchange program were not used for an interesting new set of scripts,
>> >> "Jawter".  This looks like a fantastic container script file to
>> >> monitor
>> >> Twitter activity and respond without ever running any application.
>> >> His
>> >> scripts do it all from any application!  I am now considering getting
>> >> a
>> >> Twitter account just to check it out.  It can be found at:
>> >> http://randylaptop.com/
>> >>
>> >> I discovered it on an MP3 podcast on the BlindCoolTech RSS feed at:
>> >> http://feeds.feedburner.com/blindcooltech
>> >>
>> >> Thanks.
>> >>
>> >> Don Marang
>> >>
>> >>
>> >> ----- Original Message -----
>> >> From: "Jamal Mazrui" <empower@xxxxxxxxx>
>> >> To: <jawsscripts@xxxxxxxxxxxxx>
>> >> Sent: Monday, February 23, 2009 1:53 PM
>> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script Exchange
>> >> 2.0
>> >>
>> >>
>> >> > Thanks for more detail.  I'll reflect on this to possibly make it
>> >> > more
>> >> > flexible.  Since there is not a defined API for merging files,
>> >> > however,
>> >> > I think the best solution involves following conventions.  If the
>> >> > scripter knows that JSX expects a certain organization for a
>> >> > container.jss
>> >> > file, then he or she can make sure to place Use statements
>> >> > above the dummy function, and to put additional code in a .jsb that
>> >> > is
>> >> > referenced by a Use statement.  I do want to try to ensure that
>> >> > complete
>> >> > functionality is possible with these conventions, however, so if you
>> >> > think of a situation that cannot be accommodated successfully by
>> >> > this
>> >> > organization, let me know.
>> >> >
>> >> > Jamal
>> >> > On Mon, 23 Feb 2009, Bryan Garaventa wrote:
>> >> >
>> >> >> Date: Mon, 23 Feb 2009 10:32:43 -0800
>> >> >> From: Bryan Garaventa <bgaraventa11@xxxxxxxxxxxxxx>
>> >> >> Reply-To: jawsscripts@xxxxxxxxxxxxx
>> >> >> To: jawsscripts@xxxxxxxxxxxxx
>> >> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script
>> >> >> Exchange
>> >> >> 2.0
>> >> >>
>> >> >> My only concern is that there appears to be a loop hole for data
>> >> >> loss,
>> >> >> this
>> >> >> area being for anything below the dummy function. For instance, if
>> >> >> the
>> >> >> user
>> >> >> were to add their own Use statement, but instead of adding this at
>> >> >> the
>> >> >> top
>> >> >> of the page, they added it to the bottom instead. Also, if the user
>> >> >> were
>> >> >> to
>> >> >> add their own function or script to this default.jss file at a
>> >> >> later
>> >> >> date,
>> >> >> it too would be broken if this code is not included in the merge.
>> >> >> If there was a way to keep all of the current dummy jss content and
>> >> >> add
>> >> >> the
>> >> >> new Use statement without the risk of any data loss, the whole
>> >> >> process
>> >> >> would
>> >> >> be continually seamless. Sorry if I wasn't too clear earlier.
>> >> >>
>> >> >> ----- Original Message -----
>> >> >> From: "Jamal Mazrui" <empower@xxxxxxxxx>
>> >> >> To: <jawsscripts@xxxxxxxxxxxxx>
>> >> >> Sent: Monday, February 23, 2009 9:48 AM
>> >> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script
>> >> >> Exchange
>> >> >> 2.0
>> >> >>
>> >> >>
>> >> >> > Are you talking about a container type of .jss file?  By this, I
>> >> >> > mean
>> >> >> > one with no significant code of its own -- basically, a list of
>> >> >> > Use
>> >> >> > statements followed by a dummy function.  If JSX finds a dummy
>> >> >> > function
>> >> >> > with the conventional name, it does recognize references to the
>> >> >> > .jsb
>> >> >> > that is about to be merged, and does not duplicate such a
>> >> >> > reference.
>> >> >> >
>> >> >> > I want to better understand what you are hoping to achieve.  Is
>> >> >> > the
>> >> >> > a
>> >> >> > problem with organizing a .jss so that it follows the JSX
>> >> >> > conventions
>> >> >> > for
>> >> >> > a container.jss file?
>> >> >> >
>> >> >> > Jamal
>> >> >> > On Mon, 23 Feb 2009, Bryan Garaventa wrote:
>> >> >> >
>> >> >> >> Date: Mon, 23 Feb 2009 09:38:06 -0800
>> >> >> >> From: Bryan Garaventa <bgaraventa11@xxxxxxxxxxxxxx>
>> >> >> >> Reply-To: jawsscripts@xxxxxxxxxxxxx
>> >> >> >> To: jawsscripts@xxxxxxxxxxxxx
>> >> >> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script
>> >> >> >> Exchange
>> >> >> >> 2.0
>> >> >> >>
>> >> >> >> No problem,
>> >> >> >>
>> >> >> >> Is it possible to use a Find String command to see if the
>> >> >> >> currently
>> >> >> >> merged
>> >> >> >> Use statement is already present in the default.jss file?
>> >> >> >>
>> >> >> >> If Void Function _Filler() was not detected at this time, then
>> >> >> >> the
>> >> >> >> new
>> >> >> >> default.jss file could be generated as it currently is.
>> >> >> >>
>> >> >> >> If the Void Function _Filler() is found though, but the new Use
>> >> >> >> statement
>> >> >> >> is
>> >> >> >> not, then the new Use statement could be prepended to the top of
>> >> >> >> the
>> >> >> >> complete default.jss file and compiled.
>> >> >> >>
>> >> >> >> If it were done in such a way, you would never have to be
>> >> >> >> concerned
>> >> >> >> about
>> >> >> >> any data loss, even if the user wrote their own functions and
>> >> >> >> added
>> >> >> >> these
>> >> >> >> to
>> >> >> >> the new default.jss file. It would just keep on working
>> >> >> >> regardless,
>> >> >> >> no
>> >> >> >> matter how many times the same installer, or different
>> >> >> >> installers
>> >> >> >> for
>> >> >> >> different scripts were used.
>> >> >> >>
>> >> >> >> Do you think this might be possible?
>> >> >> >>
>> >> >> >>
>> >> >> >> ----- Original Message -----
>> >> >> >> From: "Jamal Mazrui" <empower@xxxxxxxxx>
>> >> >> >> To: <jawsscripts@xxxxxxxxxxxxx>
>> >> >> >> Sent: Monday, February 23, 2009 7:23 AM
>> >> >> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script
>> >> >> >> Exchange
>> >> >> >> 2.0
>> >> >> >>
>> >> >> >>
>> >> >> >> > Thanks for your feedback, Bryan, as I want to finalize this
>> >> >> >> > version
>> >> >> >> > of
>> >> >> >> > JSX.  It should treat default.jss as you intend if it contains
>> >> >> >> > a
>> >> >> >> > dummy
>> >> >> >> > function with a particular naming convention for this purpose,
>> >> >> >> > which
>> >> >> >> > I
>> >> >> >> > recall adoptingg from Doug Lee.  If JSX finds the following
>> >> >> >> > line
>> >> >> >> > in
>> >> >> >> > a
>> >> >> >> > .jss
>> >> >> >> > merge target:
>> >> >> >> >
>> >> >> >> > Void Function _Filler()
>> >> >> >> >
>> >> >> >> > it assumes the .jss is a container file with Use statements
>> >> >> >> > above
>> >> >> >> > that
>> >> >> >> > dummy function, and nothing significant afterward.  If that
>> >> >> >> > does
>> >> >> >> > not
>> >> >> >> > work,
>> >> >> >> > let me know.
>> >> >> >> >
>> >> >> >> > Jamal
>> >> >> >> > On Sat, 21 Feb 2009, Bryan Garaventa wrote:
>> >> >> >> >
>> >> >> >> >> Date: Sat, 21 Feb 2009 21:35:14 -0800
>> >> >> >> >> From: Bryan Garaventa <bgaraventa11@xxxxxxxxxxxxxx>
>> >> >> >> >> Reply-To: jawsscripts@xxxxxxxxxxxxx
>> >> >> >> >> To: jawsscripts@xxxxxxxxxxxxx
>> >> >> >> >> Subject: [jawsscripts] Re: Another public beta of JAWS Script
>> >> >> >> >> Exchange
>> >> >> >> >> 2.0
>> >> >> >> >>
>> >> >> >> >> Hi Jamal, I was finally able to try out the new version, and
>> >> >> >> >> it's
>> >> >> >> >> working
>> >> >> >> >> much better than it used to. Excellent!
>> >> >> >> >>
>> >> >> >> >> Only one thing though, is there any way to make the string
>> >> >> >> >> parser
>> >> >> >> >> detect
>> >> >> >> >> pre-existing use statements within the default.jss file as
>> >> >> >> >> well?
>> >> >> >> >> For
>> >> >> >> >> instance, I use a lot of internal use statements for projects
>> >> >> >> >> I
>> >> >> >> >> develop
>> >> >> >> >> at
>> >> >> >> >> different times, and I always use the use statement to
>> >> >> >> >> reference
>> >> >> >> >> these
>> >> >> >> >> script sets during development. Plus some of my scripts
>> >> >> >> >> depend
>> >> >> >> >> on
>> >> >> >> >> the
>> >> >> >> >> addition of the use statement, such as the online chat page
>> >> >> >> >> scripts
>> >> >> >> >> at
>> >> >> >> >> http://gutterstar.net/dynamic_live_chat.php
>> >> >> >> >> So the static use of specific use statements within the
>> >> >> >> >> installer
>> >> >> >> >> can't
>> >> >> >> >> always be relied upon to keep these custom use statements as
>> >> >> >> >> well.
>> >> >> >> >>
>> >> >> >> >> I'm unfamiliar with the programming language used for this
>> >> >> >> >> purpose
>> >> >> >> >> within
>> >> >> >> >> the installer, but would it be possible to parse the string
>> >> >> >> >> content
>> >> >> >> >> line
>> >> >> >> >> by
>> >> >> >> >> line for default.jss, and save or copy all of the statements
>> >> >> >> >> beginning
>> >> >> >> >> with
>> >> >> >> >> Use for inclusion within the new Default.jss output file?
>> >> >> >> >> Please
>> >> >> >> >> forgive
>> >> >> >> >> my
>> >> >> >> >> ignorance if this is more complicated than I understand. This
>> >> >> >> >> really
>> >> >> >> >> is a
>> >> >> >> >> great product, and you've done a great job.
>> >> >> >> >>
>> >> >> >> >>  Best wishes,
>> >> >> >> >>
>> >> >> >> >> Bryan
>> >> >> >> >>
>> >> >> >> >> ----- Original Message -----
>> >> >> >> >> From: "Jamal Mazrui" <empower@xxxxxxxxx>
>> >> >> >> >> To: <jawsscripts@xxxxxxxxxxxxx>
>> >> >> >> >> Sent: Monday, February 16, 2009 8:23 AM
>> >> >> >> >> Subject: [jawsscripts] Another public beta of JAWS Script
>> >> >> >> >> Exchange
>> >> >> >> >> 2.0
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >> > http://EmpowermentZone.com/jsxsetup.exe
>> >> >> >> >> >
>> >> >> >> >> > This version enhances merge support, and bundles optional
>> >> >> >> >> > script
>> >> >> >> >> > sets.
>> >> >> >> >> > The JSX installer engine now recognizes an existing
>> >> >> >> >> > container.jss
>> >> >> >> >> > file
>> >> >> >> >> > that it previously created, a script file containing a set
>> >> >> >> >> > of
>> >> >> >> >> > Use
>> >> >> >> >> > statements followed by a dummy function to satisfy the JAWS
>> >> >> >> >> > script
>> >> >> >> >> > compiler.  A merge operation incorporates the components
>> >> >> >> >> > referenced
>> >> >> >> >> > in
>> >> >> >> >> > such a file.
>> >> >> >> >> >
>> >> >> >> >> > At the end of the installation process for the complete JSX
>> >> >> >> >> > application
>> >> >> >> >> > (using the above URL), three script sets are offerred.
>> >> >> >> >> > These
>> >> >> >> >> > options
>> >> >> >> >> > are
>> >> >> >> >> > unchecked by default.  You can check one ore more of them
>> >> >> >> >> > to
>> >> >> >> >> > install
>> >> >> >> >> > their
>> >> >> >> >> > zip archives with JSX.. i.e.,
>> >> >> >> >> >
>> >> >> >> >> > BX, the Jaws toolbox by Doug Lee (BSD license)
>> >> >> >> >> >
>> >> >> >> >> > HomerKit, the Homer script library and editor interface by
>> >> >> >> >> > Jamal
>> >> >> >> >> > Mazrui
>> >> >> >> >> > (LGPL license)
>> >> >> >> >> >
>> >> >> >> >> > Visual Studio scripts by contributors from the blind
>> >> >> >> >> > programming
>> >> >> >> >> > community
>> >> >> >> >> > (public domain)
>> >> >> >> >> >
>> >> >> >> >> > Jamal
>> >> >> >> >> >
>> >> >> >> >> > __________
>> >> >> >> >> > Visit and contribute to The JAWS Script Repository
>> >> >> >> >> > http://jawsscripts.com
>> >> >> >> >> >
>> >> >> >> >> > View the list's information and change your settings at
>> >> >> >> >> > http://www.freelists.org/list/jawsscripts
>> >> >> >> >> >
>> >> >> >> >> >
>> >> >> >> >> > _______________________________________
>> >> >> >> >> > No viruses found in this incoming message
>> >> >> >> >> > Scanned by iolo AntiVirus 1.5.6.3
>> >> >> >> >> > http://www.iolo.com
>> >> >> >> >> >
>> >> >> >> >>
>> >> >> >> >> __________
>> >> >> >> >> Visit and contribute to The JAWS Script Repository
>> >> >> >> >> http://jawsscripts.com
>> >> >> >> >>
>> >> >> >> >> View the list's information and change your settings at
>> >> >> >> >> http://www.freelists.org/list/jawsscripts
>> >> >> >> >>
>> >> >> >> > __________
>> >> >> >> > Visit and contribute to The JAWS Script Repository
>> >> >> >> > http://jawsscripts.com
>> >> >> >> >
>> >> >> >> > View the list's information and change your settings at
>> >> >> >> > http://www.freelists.org/list/jawsscripts
>> >> >> >> >
>> >> >> >>
>> >> >> >> __________
>> >> >> >> Visit and contribute to The JAWS Script Repository
>> >> >> >> http://jawsscripts.com
>> >> >> >>
>> >> >> >> View the list's information and change your settings at
>> >> >> >> http://www.freelists.org/list/jawsscripts
>> >> >> >>
>> >> >> > __________
>> >> >> > Visit and contribute to The JAWS Script Repository
>> >> >> > http://jawsscripts.com
>> >> >> >
>> >> >> > View the list's information and change your settings at
>> >> >> > http://www.freelists.org/list/jawsscripts
>> >> >> >
>> >> >>
>> >> >> __________
>> >> >> Visit and contribute to The JAWS Script Repository
>> >> >> http://jawsscripts.com
>> >> >>
>> >> >> View the list's information and change your settings at
>> >> >> http://www.freelists.org/list/jawsscripts
>> >> >>
>> >> > __________
>> >> > Visit and contribute to The JAWS Script Repository
>> >> > http://jawsscripts.com
>> >> >
>> >> > View the list's information and change your settings at
>> >> > http://www.freelists.org/list/jawsscripts
>> >> >
>> >>
>> >> __________
>> >> Visit and contribute to The JAWS Script Repository
>> >> http://jawsscripts.com
>> >>
>> >> View the list's information and change your settings at
>> >> http://www.freelists.org/list/jawsscripts
>> >>
>> > __________
>> > Visit and contribute to The JAWS Script Repository
>> > http://jawsscripts.com
>> >
>> > View the list's information and change your settings at
>> > http://www.freelists.org/list/jawsscripts
>> >
>>
>> __________
>> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>>
>> View the list's information and change your settings at
>> http://www.freelists.org/list/jawsscripts
>>
> __________
> Visit and contribute to The JAWS Script Repository http://jawsscripts.com
>
> View the list's information and change your settings at
> http://www.freelists.org/list/jawsscripts
>

__________ 
Visit and contribute to The JAWS Script Repository http://jawsscripts.com

View the list's information and change your settings at 
http://www.freelists.org/list/jawsscripts

Other related posts: