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

  • From: "Donald Marang" <donald.marang@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Wed, 11 Mar 2009 14:17:21 -0400

Thanks!  That fixed most of the problems.  I can now successfully install 
and merge my scripts into my JAWS 9 settings!  I still get an error 
regarding accessing a temporary file after the merge has completed.  I am 
assuming that is trying to open my "ReadMe" text file when finished.  My 
main script, "VZCallAssistant" is not the last script in the package 
alphabetically.  I will double check the documentation regarding the rules 
for having the text file opened when finished.  Currently, I have 
"VZCallAssistant" entered into the file association field.  Would adding the 
.exe file extension in this field be advisable as well?  Does the file 
association effect which text file is searched for when done?  I will work 
on this tonight.

I have been restoring my JAWS 9 user settings directory by simply deleting 
all files and folders and copying a safely backed up version.  Is there a 
better way to "undo" any changes.  Will this restore everything properly? 
Is there a method to uninstall these programs?  When I installed the BX 
toolbox, there is an item in the Start menu to uninstall it.  Is there 
something similar for Homer?  Should I provide a method to uninstall my 
scripts?  Do these uninstallers need a method to unmerge the scripts without 
effecting other scripts that have been merged with jsx?

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: