BASH script problem using find, ideas?

Hi, I'm trying to write a script to search through my computer and
find all .jpg files and put them all in a directory. So far I have
this:

for i in `find /home -name '*.jpg' ` ; do mv $i home/allen/Pictures/PicturesFound ; done 

When I run it, I get this error (this is only part of it, it goes on
for a while)

mv: cannot stat `-': No such file or directory 
mv: cannot stat `A': No such file or directory 
mv: cannot stat `Decade': No such file or directory 
mv: cannot stat `of': No such file or directory 
mv: cannot stat `Hits': No such file or directory 
mv: cannot stat `(1969-1979)/front.jpg': No such file or directory 
mv: cannot stat `/home/allen/.local/share/Trash/files/2011/03/19/00.': 
No such file or directory 
mv: cannot stat `Protest': No such file or directory 
mv: cannot stat `The': No such file or directory 
mv: cannot stat `Hero': No such file or directory 
mv: cannot stat `-': No such file or directory 
mv: cannot stat `Scurrilous': No such file or directory 
mv: cannot stat `2011': No such file or directory 

Any Ideas what's wrong? I'm new to BASH, obviously. Please don't
criticize me, and try not to change my whole code, as I know there are
probably way better ways to get what I want accomplished, I just want
to get this to work. Thanks very much! hope to get a reply.

Unix shell doesn't work well with files with spaces with their names. Here you can read what's your problem and what you should do:
BashPitfalls - Greg's Wiki
Btw, this site (their guide, faq and pitfalls) is the best place to learn bash.

Command:
find /home -name /home/allen/Pictures/PicturesFound -prune -o -type f -name \*.jpg -exec mv "{}" /home/allen/Pictures/PicturesFound \;

Explanation:
the -prune strips out whatever has been found so far (ie it will filter the PicturesFound directory)
the -o is an OR operator that allows the next statement to work
-type f f is for files
-name *.jpg only jpgs
-exec runs a command
mv "{}" <directory> \; the {} is replaced with the file name found. The " allows for spaces. the \; ends the exec command.

You can run it with mv -i to be safe and confirm the mv before it does it just in case something goes crazy.