Revise DropDownDemo

Remove all ClientScripting based examples (AutoSuggest is preferred)
Remove theming example (RAP 2.2 should provide alternatives)
Use layout from AutoSuggestSnippet
Fix replacement text
Restore userText when selection is -1
Move data to own package
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
index d14e565..44bdef2 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestDemo.java
@@ -16,6 +16,7 @@
 import org.eclipse.rap.addons.autosuggest.DataProvider;
 import org.eclipse.rap.addons.autosuggest.DataSource;
 import org.eclipse.rap.addons.autosuggest.SuggestionSelectedListener;
+import org.eclipse.rap.addons.dropdown.demo.data.KFZ;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.application.AbstractEntryPoint;
 import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
@@ -157,6 +158,7 @@
     button.setText( "Dispose!" );
     button.addListener( SWT.Selection, new Listener() {
       public void handleEvent( Event event ) {
+        autoSuggest.setDataSource( at );
         text.dispose();
       }
     } );
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestSnippet.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestSnippet.java
index 2879bd2..9e3e602 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestSnippet.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/AutoSuggestSnippet.java
@@ -18,6 +18,8 @@
 import org.eclipse.rap.addons.autosuggest.ColumnTemplate;
 import org.eclipse.rap.addons.autosuggest.DataSource;
 import org.eclipse.rap.addons.autosuggest.SuggestionSelectedListener;
+import org.eclipse.rap.addons.dropdown.demo.data.KFZ;
+import org.eclipse.rap.addons.dropdown.demo.data.Movies;
 import org.eclipse.rap.rwt.application.AbstractEntryPoint;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.FormAttachment;
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ButtonEventHandler.js b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ButtonEventHandler.js
deleted file mode 100644
index df8d4bc..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ButtonEventHandler.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    EclipseSource - initial API and implementation
- ******************************************************************************/
-
-function handleEvent( event ) {
-  var widget = event.widget;
-  var dropdown = rap.getObject( widget.getData( "dropdown" ) );
-  // TODO : should not autoamtically hide if programmatically shown
-  dropdown.setVisible( !dropdown.getVisible() );
-  if( dropdown.getVisible() ) {
-    // TODO : set focus to text or list, currently neither is possible
-    dropdown.setItems( rap.getObject( dropdown.getData( "data" ) ) );
-  }
-}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownApplicationConfiguration.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownApplicationConfiguration.java
deleted file mode 100644
index c71f28f..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownApplicationConfiguration.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    EclipseSource - initial API and implementation
- ******************************************************************************/
-package org.eclipse.rap.addons.dropdown.demo;
-
-import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.application.Application;
-import org.eclipse.rap.rwt.application.ApplicationConfiguration;
-
-
-public class DropDownApplicationConfiguration implements ApplicationConfiguration {
-
-  public void configure( Application application ) {
-    application.addStyleSheet( RWT.DEFAULT_THEME_ID, "theme/theme.css" );
-    application.addEntryPoint( "/dropdown", DropDownDemo.class, null );
-  }
-
-}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
index ce5232f..aa93248 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
@@ -14,168 +14,81 @@
 import java.util.List;
 
 import org.eclipse.rap.addons.dropdown.DropDown;
-import org.eclipse.rap.clientscripting.ClientListener;
+import org.eclipse.rap.addons.dropdown.demo.data.Movies;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.application.AbstractEntryPoint;
-import org.eclipse.rap.rwt.client.service.JavaScriptLoader;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteList;
-import org.eclipse.rap.rwt.internal.client.WidgetDataWhiteListImpl;
-import org.eclipse.rap.rwt.lifecycle.WidgetUtil;
-import org.eclipse.rap.rwt.remote.RemoteObject;
-import org.eclipse.rap.rwt.service.ResourceManager;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Text;
 
 
-@SuppressWarnings("restriction")
 public class DropDownDemo extends AbstractEntryPoint {
 
-  private final String PATH_PREFIX = "/org/eclipse/rap/addons/dropdown/demo/";
+  private String[] currentTexts = new String[ 0 ] ;
+  private String userText = "";
 
   @Override
   protected void createContents( Composite parent ) {
-    getShell().setLayout( new GridLayout( 1, false ) );
-    WidgetDataWhiteListImpl list
-      = ( WidgetDataWhiteListImpl )RWT.getClient().getService( WidgetDataWhiteList.class );
-    list.setKeys( new String[]{ "dropdown", "text", "data" } );
-    createNationsExample( parent );
-    create90sMoviesExample( parent );
-    create80sMoviesExample( parent );
-  }
-
-  private void createNationsExample( Composite parent ) {
-    // TODO : Use CSS Theming on textBox / open button
-    Group group = new Group( parent, SWT.NONE );
-    group.setText( "DropDown + client expand button, 192 entries cached" );
-    group.setLayout( new GridLayout( 1, true ) );
-    Composite textBox = new Composite( group, SWT.BORDER );
-    GridLayout layout = new GridLayout( 2, false );
-    layout.marginHeight = 0;
-    layout.marginWidth = 0;
-    textBox.setLayout( layout );
-    Text text = createText( textBox, SWT.NONE );
-    text.setMessage( "Nations" );
-    Button open = new Button( textBox, SWT.ARROW | SWT.DOWN );
-    open.setLayoutData( new GridData( SWT.RIGHT, SWT.FILL, false, true ) );
-    addButtonClientListener( open );
-    final DropDown dropdown = createDropDown( text );
-    open.setData( "dropdown", WidgetUtil.getId( dropdown ) );
-    dropdown.setVisibleItemCount( 3 );
-    dropdown.setData( "data", getClientData( "Nations" ) );
-  }
-
-  private void create90sMoviesExample( Composite parent ) {
-    Group group = new Group( parent, SWT.NONE );
-    group.setText( "DropDown only, 1157 entries cached" );
-    group.setLayout( new GridLayout( 1, true ) );
-    Text text = createText( group, SWT.BORDER );
-    text.setMessage( "90's Movies" );
-    DropDown dropdown = createDropDown( text );
-    dropdown.setData( "data", getClientData( "Movies" ) );
-  }
-
-  private static void create80sMoviesExample( Composite parent ) {
-    Group group = new Group( parent, SWT.NONE );
-    group.setText( "DropDown only, 760 entries, no ClientScripting, markup" );
-    group.setLayout( new GridLayout( 1, true ) );
-    final Text text = new Text( group, SWT.BORDER );
-    GridData gridData = new GridData( 200, 23 );
-    gridData.verticalAlignment = SWT.TOP;
-    text.setLayoutData( gridData );
+    parent.setLayout( new FormLayout() );
+    final Text text = new Text( parent, SWT.BORDER );
+    text.setLayoutData( createLayoutData() );
     text.setMessage( "80's Movies" );
     final DropDown dropdown = new DropDown( text );
     dropdown.setData( RWT.MARKUP_ENABLED, Boolean.TRUE );
+    addModifyListener( text, dropdown );
+    addSelectionListener( text, dropdown );
+    addDefaultSelectionListener( text, dropdown );
+    dropdown.setData( "columns", new int[] { 300, 60 } ); // provisional API!
+  }
+
+  public void addModifyListener( final Text text, final DropDown dropdown ) {
     text.addListener( SWT.Modify, new Listener() {
       public void handleEvent( Event event ) {
         if( text.getData( "selecting" ) != Boolean.TRUE ) {
-          if( text.getText().length() >= 2 ) {
+          userText = text.getText();
+          if( userText.length() >= 2 ) {
             dropdown.show();
-            dropdown.setItems( filter( Movies.VALUES, text.getText().toLowerCase(), 10 ) );
+            String searchStr = userText.toLowerCase();
+            currentTexts = filter( Movies.VALUES, searchStr, 10 );
+            dropdown.setItems( format( currentTexts, searchStr ) );
           } else {
             dropdown.hide();
           }
         }
       }
     } );
+  }
+
+  public void addSelectionListener( final Text text, final DropDown dropdown ) {
     dropdown.addListener( SWT.Selection, new Listener() {
       public void handleEvent( Event event ) {
-        if( event.text.length() > 0 ) {
+        if( event.index != -1 ) {
           text.setData( "selecting", Boolean.TRUE );
-          text.setText( event.text );
+          text.setText( currentTexts[ event.index ] );
           text.setData( "selecting", Boolean.FALSE );
           text.selectAll();
+        } else {
+          text.setText( userText );
+          text.setSelection( userText.length(), userText.length() );
+          text.setFocus();
         }
       }
     } );
+  }
+
+  public void addDefaultSelectionListener( final Text text, final DropDown dropdown ) {
     dropdown.addListener( SWT.DefaultSelection, new Listener() {
       public void handleEvent( Event event ) {
-        text.setText( event.text );
+        text.setText( currentTexts[ event.index ] );
         text.setSelection( event.text.length() );
         dropdown.hide();
       }
     } );
-    dropdown.setData( "columns", new int[] { 300, 60 } );
-  }
-
-  private Text createText( Composite parent, int style ) {
-    Text text = new Text( parent, style );
-    GridData gridData = new GridData( 200, 23 );
-    gridData.verticalAlignment = SWT.TOP;
-    text.setLayoutData( gridData );
-    addTextClientListener( text );
-    return text;
-  }
-
-  private DropDown createDropDown( Text text ) {
-    DropDown dropdown = new DropDown( text );
-    dropdown.setData( "text", WidgetUtil.getId( text ) );
-    text.setData( "dropdown", WidgetUtil.getId( dropdown ) );
-    addDropDownClientListener( dropdown );
-    return dropdown;
-  }
-
-  private void addDropDownClientListener( DropDown dropdown ) {
-    String script = ResourceLoaderUtil.readTextContent( PATH_PREFIX + "DropDownEventHandler.js" );
-    ClientListener listener = new ClientListener( script );
-    dropdown.addListener( SWT.Selection, listener );
-    dropdown.addListener( SWT.DefaultSelection, listener );
-  }
-
-  private void addButtonClientListener( Button button ) {
-    String script = ResourceLoaderUtil.readTextContent( PATH_PREFIX + "ButtonEventHandler.js" );
-    ClientListener listener = new ClientListener( script );
-    button.addListener( SWT.MouseDown, listener );
-  }
-
-  private void addTextClientListener( Text text ) {
-    String script = ResourceLoaderUtil.readTextContent( PATH_PREFIX + "TextEventHandler.js" );
-     // TODO: should take inputStream or loader + path
-    ClientListener listener = new ClientListener( script );
-    text.addListener( SWT.Modify, listener );
-    text.addListener( SWT.Verify, listener );
-    text.addListener( SWT.KeyDown, listener );
-  }
-
-  // Experimental: Uses internal API, but allows to use cacheable data without polluting the
-  // public namespace.
-  private String getClientData( String type ) {
-    ResourceManager manager = RWT.getResourceManager();
-    String registerFilename = "clientData/" + type + ".js";
-    if( !manager.isRegistered( registerFilename ) ) {
-      manager.register( registerFilename, getClass().getResourceAsStream( type + ".js" ) );
-    }
-    JavaScriptLoader jsl = RWT.getClient().getService( JavaScriptLoader.class );
-    jsl.require( manager.getLocation( registerFilename ) );
-    RemoteObject remoteObject
-      = RWT.getUISession().getConnection().createRemoteObject( "clientData." + type );
-    return remoteObject.getId();
   }
 
   private static String[] filter( String[] values, String text, int limit ) {
@@ -183,14 +96,34 @@
     for( int i = 0; result.size() < limit && i < values.length; i++ ) {
       String item = values[ i ];
       if( item.toLowerCase().startsWith( text ) ) {
-        int length = text.length();
-        int rating = ( int )( Math.random() * 10 );
-        result.add(
-          "<b>" + item.substring( 0, length ) + "</b>" + item.substring( length ) + "\t" + rating + "/10"
-        );
+        result.add( item );
       }
     }
     return result.toArray( new String[ result.size() ] );
   }
 
+  private static String[] format( String[] values, String text ) {
+    String[] result = new String[ values.length ];
+    for( int i = 0; i < values.length; i++ ) {
+      String item = values[ i ];
+      int length = text.length();
+      int rating = ( int )( Math.random() * 10 );
+      result[ i ] =  "<b>"
+                    + item.substring( 0, length )
+                    + "</b>"
+                    + item.substring( length )
+                    + "\t"
+                    + rating
+                    + "/10";
+    }
+    return result;
+  }
+
+  private static FormData createLayoutData() {
+    FormData formData = new FormData();
+    formData.top = new FormAttachment( 0, 100 );
+    formData.left = new FormAttachment( 50, -150 );
+    formData.right = new FormAttachment( 50, 150 );
+    return formData;
+  }
 }
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownEventHandler.js b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownEventHandler.js
deleted file mode 100644
index 0490311..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownEventHandler.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    EclipseSource - initial API and implementation
- ******************************************************************************/
-
-function handleEvent( event ) {
-  switch( event.type ) {
-    case SWT.Selection:
-      handleSelection( event );
-    break;
-    case SWT.DefaultSelection:
-      handleDefaultSelection( event );
-    break;
-//    case SWT.KeyDown:
-//      handleKeyDown( event ); // not supported (yet?)
-//    break;
-  }
-}
-
-function handleSelection( event ) {
-  if( event.text.length > 0 ) {
-    var dropdown = event.widget;
-    var text = rap.getObject( dropdown.getData( "text" ) );
-    text.setData( "selecting", true );
-    text.setText( event.text );
-    text.setSelection( [ 0, event.text.length ] );
-  }
-}
-
-function handleDefaultSelection( event ) {
-  var dropdown = event.widget;
-  dropdown.setSelectionIndex( -1 ); // should this happen automatically?
-//  var text = rap.getObject( dropdown.getData( "text" ) );
-//  text.forceFocus(); // TODO : currently not possible
-}
-
-function handleKeyDown( event ) {
-  if( event.keyCode === SWT.ESC ) { // make default behavior? (Only effective when focused)
-    event.widget.hide();
-  }
-}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.js b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.js
deleted file mode 100644
index 866ef8d..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.js
+++ /dev/null
@@ -1,1171 +0,0 @@
-(function() {
-
-  rap.registerTypeHandler( "clientData.Movies", {
-
-    factory : function() {
-      return movies;
-    }
-
-  } );
-
-var movies = [
-  "Above the Rim",
-  "A Bug's Life",
-  "Ace Ventura series:",
-  "Ace Ventura: Pet Detective",
-  "Ace Ventura: When Nature Calls",
-  "Addams Family series:",
-  "The Addams Family",
-  "Addams Family Values",
-  "Addicted to Love",
-  "Adventures in Dinosaur City",
-  "The Adventures of Elmo in Grouchland",
-  "The Adventures of Ford Fairlane",
-  "The Adventures of Huck Finn",
-  "The Adventures of Priscilla: Queen of the Desert",
-  "Affliction",
-  "After Life",
-  "The Age of Innocence",
-  "Aimée and Jaguar",
-  "Air Bud series:",
-  "Air Bud",
-  "Air Bud: Golden Receiver",
-  "Air Force One",
-  "Airborne",
-  "Airheads",
-  "Aladdin series:",
-  "Aladdin",
-  "Aladdin: The Return of Jafar",
-  "Aladdin and the King of Thieves",
-  "An Alan Smithee Film: Burn Hollywood Burn",
-  "Alien 3",
-  "Alien Resurrection",
-  "Alive",
-  "All Dogs Go to Heaven 2",
-  "All Over Me",
-  "Almost Heroes",
-  "American Beauty",
-  "American History X",
-  "American Me",
-  "American Movie",
-  "American Pie",
-  "The American President",
-  "An American Tail: Fievel Goes West",
-  "An American Tail: The Treasure of Manhattan Island",
-  "Anaconda",
-  "Analyze This",
-  "Anastasia",
-  "Andre",
-  "Angela's Ashes",
-  "Angels & Insects",
-  "Angels in the Outfield",
-  "Anglo-Saxon Attitudes",
-  "Angus",
-  "Animal Farm",
-  "Another 48 Hours",
-  "Another Stakeout",
-  "Another Woman",
-  "Antz",
-  "Apollo 13",
-  "Apt Pupil",
-  "Arachnophobia",
-  "Arcade",
-  "Arizona Dream",
-  "Armageddon",
-  "Army of Darkness",
-  "Art Museum by the Zoo",
-  "As Good as It Gets",
-  "Ashes of Time",
-  "Assassins",
-  "The Astronaut's Wife",
-  "Austin Powers: International Man of Mystery",
-  "Austin Powers: The Spy Who Shagged Me",
-  "The Avengers",
-  "Awakenings",
-  "Babe",
-  "Babe: Pig in the City",
-  "Baby Geniuses",
-  "Baby's Day Out",
-  "The Bachelor",
-  "Backbeat",
-  "Backdraft",
-  "Back to the Future Part III",
-  "Bad Boys",
-  "Bad Moon",
-  "Balto",
-  "Baraka",
-  "Barb Wire",
-  "Bartok the Magnificent",
-  "Barton Fink",
-  "BASEketball",
-  "Basic Instinct",
-  "Basquiat",
-  "The Basketball Diaries",
-  "Batman & Robin",
-  "Batman Forever",
-  "Batman: Mask of the Phantasm",
-  "Batman Returns",
-  "Bean",
-  "The Beast",
-  "The Beautician and the Beast",
-  "Beauty and the Beast series:",
-  "Beauty and the Beast",
-  "Beauty and the Beast: The Enchanted Christmas",
-  "Beauty and the Beast: Belle's Magical World",
-  "Beauty and the Beast",
-  "Beavis and Butt-head Do America",
-  "Before Sunrise",
-  "Being Human",
-  "Benny & Joon",
-  "Betsy's Wedding",
-  "Better Than Chocolate",
-  "The Beverly Hillbillies",
-  "Beverly Hills Ninja",
-  "Bicentennial Man",
-  "Big Bully",
-  "Big Daddy",
-  "The Big Green",
-  "The Big Lebowski",
-  "Bill & Ted's Bogus Journey",
-  "Billboard Dad",
-  "Billy Madison",
-  "Bio-Dome",
-  "Bitter Moon",
-  "Bird on a Wire",
-  "The Birdcage",
-  "The Birds II: Land's End",
-  "Black Sheep",
-  "Blade",
-  "The Blair Witch Project",
-  "Blank Check",
-  "Blankman",
-  "Blast from the Past",
-  "Blue Chips",
-  "Blue Streak",
-  "The Bodyguard",
-  "Body of Evidence",
-  "Boiling Point",
-  "The Bonfire of the Vanities",
-  "Bongwater",
-  "Boogie Nights",
-  "The Boondock Saints",
-  "Booty Call",
-  "Bordello of Blood",
-  "Born Yesterday",
-  "Bottle Rocket",
-  "Bound",
-  "Bowfinger",
-  "Boxing Helena",
-  "Boys Don't Cry",
-  "Boys on the Side",
-  "Boyz n the Hood",
-  "The Brady Bunch Movie",
-  "Brain Candy",
-  "Braindead",
-  "Bram Stoker's Dracula",
-  "Brassed Off",
-  "The Brave",
-  "Braveheart",
-  "Bride of Re-Animator",
-  "Bride of Chucky",
-  "The Bridges of Madison County",
-  "Bringing Out the Dead",
-  "Brokedown Palace",
-  "Broken Arrow",
-  "A Bucket of Blood",
-  "Bugged!",
-  "Bugsy",
-  "A Bug's Life",
-  "Bulletproof",
-  "Bullets Over Broadway",
-  "Bulworth",
-  "But I'm a Cheerleader",
-  "Butch Camp",
-  "Cabin Boy",
-  "The Cable Guy",
-  "Cadillac Man",
-  "Camp Nowhere",
-  "Camping Cosmos",
-  "Cannibal! The Musical",
-  "Cape Fear",
-  "Captain America",
-  "Carlito's Way",
-  "Casino",
-  "Carpool",
-  "Casper series:",
-  "Casper",
-  "Casper: A Spirited Beginning",
-  "Casper Meets Wendy",
-  "Chain Reaction",
-  "Chaplin",
-  "Chasing Amy",
-  "Child's Play 2",
-  "Child's Play 3",
-  "Chopper Chicks in Zombietown",
-  "Christopher Columbus: The Discovery",
-  "Chungking Express",
-  "The Cider House Rules",
-  "City Hall",
-  "City of Angels",
-  "City Slickers",
-  "City Slickers 2: The Legend of Curly's Gold",
-  "Class Act",
-  "Class Action",
-  "Class of Nuke 'Em High 2: Subhumanoid Meltdown",
-  "Class of Nuke 'Em High 3: The Good, the Bad and the Subhumanoid",
-  "Clear and Present Danger",
-  "Clerks",
-  "The Client",
-  "Cliffhanger",
-  "Clueless",
-  "The Commitments",
-  "Cobb",
-  "Color of a Brisk and Leaping Day",
-  "Color of Night",
-  "Come See The Paradise",
-  "Con Air",
-  "Coneheads",
-  "Congo",
-  "Consenting Adults",
-  "Conspiracy Theory",
-  "Contact",
-  "Cool As Ice",
-  "Cool Runnings",
-  "Cool World",
-  "Cop and a Half",
-  "Copycat",
-  "Courage Under Fire",
-  "Coven",
-  "The Cowboy Way",
-  "The Craft",
-  "Crash",
-  "Crazy in Alabama",
-  "Crazy People",
-  "Crimson Tide",
-  "Cronos",
-  "The Crow",
-  "The Crucible",
-  "Cruel Intentions",
-  "The Crush",
-  "Cry-Baby",
-  "The Crying Game",
-  "Cube",
-  "Curse of the Puppet Master",
-  "Cutthroat Island",
-  "Cyrano de Bergerac",
-  "Dances with Wolves",
-  "Dante's Peak",
-  "Dark City",
-  "Darkman",
-  "Darkman II: The Return of Durant",
-  "Darkman III: Die Darkman Die",
-  "Daylight",
-  "Days of Being Wild",
-  "Days of Thunder",
-  "Dazed and Confused",
-  "Dead Man on Campus",
-  "Dead Man Walking",
-  "Dead Presidents",
-  "Dear God",
-  "Death Becomes Her",
-  "Deep Blue Sea",
-  "Deep Impact",
-  "Deep Rising",
-  "Def by Temptation",
-  "Defending Your Life",
-  "Delicatessen",
-  "Delta Force 2",
-  "Demolition Man",
-  "Demon Knight",
-  "Dennis the Menace",
-  "The Dentist",
-  "The Dentist 2",
-  "Desperado",
-  "Deterrence",
-  "Deuce Bigalow: Male Gigolo",
-  "The Devil's Advocate",
-  "The Devil's Own",
-  "Dexter's Laboratory: Ego Trip",
-  "Dick Tracy",
-  "Die Hard 2",
-  "Die Hard with a Vengeance",
-  "Different Strokes",
-  "Dirty Work",
-  "Disclosure",
-  "Disturbing Behavior",
-  "Doc Hollywood",
-  "Dog Park",
-  "Dog Years",
-  "Dogma",
-  "Don Juan DeMarco",
-  "Donnie Brasco",
-  "Don't Be a Menace to South Central While Drinking Your Juice in the Hood",
-  "The Doors",
-  "Double, Double, Toil and Trouble",
-  "Double Dragon",
-  "Double Impact",
-  "Double Jeopardy",
-  "The Double Life of Véronique",
-  "Double Team",
-  "Doug's 1st Movie",
-  "Down in the Delta",
-  "Dr. Dolittle",
-  "Dr. Giggles",
-  "Dr. Jekyll and Ms. Hyde",
-  "Dracula: Dead and Loving It",
-  "Dragon Ball series",
-  "Dragon Ball Z: The World's Strongest",
-  "Dragon Ball Z: The Tree of Might",
-  "Dragon Ball Z: Bardock – The Father of Goku",
-  "Dragon Ball Z: Lord Slug",
-  "Dragon Ball Z: Cooler's Revenge",
-  "Dragon Ball Z: The Return of Cooler",
-  "Dragon Ball Z: Super Android 13!",
-  "Dragon Ball Z: The History of Trunks",
-  "Dragon Ball Z: Broly – The Legendary Super Saiyan",
-  "Dragon Ball Z: Bojack Unbound",
-  "Dragon Ball Z Side Story: Plan to Eradicate the Saiyans",
-  "Dragon Ball Z: Broly – Second Coming",
-  "Dragon Ball Z: Bio-Broly",
-  "Dragon Ball Z: Fusion Reborn",
-  "Dragon Ball Z: Wrath of the Dragon",
-  "Dragon Ball: The Path to Power",
-  "Dragon Ball GT: A Hero's Legacy",
-  "Dragonheart",
-  "Drop Dead Fred",
-  "Drop Zone",
-  "DuckTales the Movie: Treasure of the Lost Lamp",
-  "Dumb and Dumber",
-  "Dunston Checks In",
-  "Dying Young",
-  "East is East",
-  "Ed",
-  "Ed Wood",
-  "Edtv",
-  "Edward Scissorhands",
-  "Elizabeth",
-  "Empire Records",
-  "Los Enchiladas!",
-  "Encino Man",
-  "The End of Innocence",
-  "The English Patient",
-  "The Englishman Who Went Up a Hill But Came Down a Mountain",
-  "Entrapment",
-  "Eraser",
-  "Ernest Goes to Jail",
-  "Ernest Goes to School",
-  "Eternity and a Day",
-  "Europa Europa",
-  "Even Cowgirls Get the Blues",
-  "Event Horizon",
-  "Ever After",
-  "Everest",
-  "Everyone Says I Love You",
-  "Evita",
-  "Eye for an Eye",
-  "Eyes Wide Shut",
-  "The Ex",
-  "Executive Decision",
-  "eXistenZ",
-  "Exit to Eden",
-  "The Exorcist III",
-  "Face/Off",
-  "Faces of Death IV",
-  "Faces of Death V",
-  "Faces of Death VI",
-  "The Faculty",
-  "Fair Game",
-  "FairyTale: A True Story",
-  "Fallen",
-  "Fallen Angels",
-  "Falling Down",
-  "Fantasia 2000",
-  "The Fantastic Four",
-  "Fargo",
-  "Far and Away",
-  "Far Out Man",
-  "Fatal Instinct",
-  "Fathers' Day",
-  "Faust",
-  "Fear",
-  "Fear of a Black Hat",
-  "Fear and Loathing in Las Vegas",
-  "Fearless",
-  "Feeling Minnesota",
-  "FernGully: The Last Rainforest",
-  "FernGully 2: The Magical Rescue",
-  "A Few Good Men",
-  "The Fifth Element",
-  "Fight Club",
-  "Final Analysis",
-  "Fire Down Below",
-  "The Firm",
-  "First Daughter",
-  "First Kid",
-  "The First Wives Club",
-  "The Fisher King",
-  "Flashback",
-  "Flatliners",
-  "The Flintstones",
-  "Flirting with Disaster",
-  "Flubber",
-  "Fly Away Home",
-  "Folks!",
-  "For Richer or Poorer",
-  "For the Boys",
-  "Forgotten Silver",
-  "Forrest Gump",
-  "Four Rooms",
-  "Four Weddings and a Funeral",
-  "The Fox with Nine Tails",
-  "Frankie and Johnny",
-  "Freddy's Dead: The Final Nightmare",
-  "Freejack",
-  "Free Willy",
-  "Free Willy 2: The Adventure Home",
-  "Free Willy 3: The Rescue",
-  "French Kiss",
-  "The Freshman",
-  "Fried Green Tomatoes",
-  "The Frighteners",
-  "From Dusk till Dawn",
-  "From Dusk Till Dawn 2: Texas Blood Money",
-  "The Fugitive",
-  "Galaxy Quest",
-  "Gang in Blue",
-  "George of the Jungle",
-  "Get Shorty",
-  "The Getaway",
-  "Getting Even with Dad",
-  "Getting Lucky",
-  "Gettysburg",
-  "Ghost",
-  "Ghost Dog: The Way of the Samurai",
-  "Ghost in the Machine",
-  "Ghosts of Mississippi",
-  "G.I. Jane",
-  "Gia",
-  "Girl, Interrupted",
-  "Girl 6",
-  "Gloria",
-  "The Godfather Part III",
-  "Godzilla",
-  "Godzilla 2000: Millennium",
-  "Godzilla vs Destroyah",
-  "Godzilla vs King Ghidorah",
-  "Godzilla vs Mechagodzilla II",
-  "Godzilla vs Mothra",
-  "Godzilla vs SpaceGodzilla",
-  "GoldenEye",
-  "Good Burger",
-  "Goodfellas",
-  "The Good Son",
-  "Good Will Hunting",
-  "A Goofy Movie",
-  "Grand Canyon",
-  "Grass",
-  "Great Expectations",
-  "The Green Mile",
-  "Gremlins 2: The New Batch",
-  "The Grifters",
-  "Grosse Pointe Blank",
-  "Groundhog Day",
-  "Grumpier Old Men",
-  "Grumpy Old Men",
-  "The Guardian",
-  "Guest House Paradiso",
-  "Guilty as Sin",
-  "The Gun in Betty Lou's Handbag",
-  "Gumby: The Movie",
-  "Hackers",
-  "Half Baked",
-  "Halloween series:",
-  "Halloween: The Curse of Michael Myers",
-  "Halloween H20: 20 Years Later",
-  "Hamlet",
-  "The Hand That Rocks the Cradle",
-  "Happy Gilmore",
-  "Happy Together",
-  "Hard Rain",
-  "Hard Target",
-  "Hard to Kill",
-  "The Hard Way",
-  "The Harmonium in My Memory",
-  "The Haunting",
-  "Havana",
-  "He Got Game",
-  "Heat",
-  "Heaven and Earth",
-  "Heavenly Creatures",
-  "Heavyweights",
-  "Hellraiser series:",
-  "Hellraiser III: Hell on Earth",
-  "Hellraiser: Bloodline",
-  "Henry & June",
-  "Hercules",
-  "Hero",
-  "Hey Tony! What's the Story?",
-  "Higher Learning",
-  "Highlander II: The Quickening",
-  "Highlander III: The Final Dimension",
-  "The Hills Have Eyes III",
-  "Hocus Pocus",
-  "Hoffa",
-  "Home Alone series:",
-  "Home Alone",
-  "Home Alone 2: Lost in New York",
-  "Home Alone 3",
-  "Home Fries",
-  "Homicide",
-  "Honeymoon in Vegas",
-  "Honey, I Blew Up the Kid",
-  "Honey, We Shrunk Ourselves",
-  "Hook",
-  "Hoop Dreams",
-  "Hope Floats",
-  "Hot Shots!",
-  "Hot Shots! Part Deux",
-  "House on Haunted Hill",
-  "House Party series:",
-  "House Party",
-  "House Party 2",
-  "House Party 3",
-  "Houseguest",
-  "Housesitter",
-  "How Stella Got Her Groove Back",
-  "How the West Was Fun",
-  "Howards End",
-  "Hudson Hawk",
-  "Hush",
-  "The Hudsucker Proxy",
-  "The Hunchback of Notre Dame",
-  "Hurricane Streets",
-  "Husbands and Wives",
-  "I Know What You Did Last Summer",
-  "I Like You, I Like You Very Much",
-  "I Married a Strange Person!",
-  "I Shot Andy Warhol",
-  "I Still Know What You Did Last Summer",
-  "I'll Be Home for Christmas",
-  "The Ice Storm",
-  "Identity Pieces",
-  "The Idiots",
-  "Idle Hands",
-  "If the Sun Rises in the West",
-  "In the Army Now",
-  "In the Line of Fire",
-  "In the Mouth of Madness",
-  "In the Name of the Father",
-  "Indecent Proposal",
-  "Independence Day",
-  "The Insider",
-  "Inspector Gadget",
-  "Intersection",
-  "Interview with the Vampire",
-  "Into Thin Air",
-  "The Iron Giant",
-  "The Island of Dr. Moreau",
-  "It's Pat",
-  "It Could Happen to You",
-  "It Takes Two",
-  "I.Q.",
-  "Jack",
-  "Jack Frost",
-  "Jack Frost",
-  "Jackie Brown",
-  "Jacob's Ladder",
-  "Jade",
-  "James and the Giant Peach",
-  "Jason's Lyric",
-  "Jawbreaker",
-  "Jefftowne",
-  "Jerry Maguire",
-  "Jetsons: The Movie",
-  "JFK",
-  "Jimmy Hollywood",
-  "Jingle All the Way",
-  "Joe's Apartment",
-  "Johnny Mnemonic",
-  "The Joy Luck Club",
-  "Jude",
-  "Judge Dredd",
-  "Judgment Night",
-  "Jumanji",
-  "Jungle 2 Jungle",
-  "Jungle Fever",
-  "Junior",
-  "Jurassic Park",
-  "Jury Duty",
-  "The Juror",
-  "K2",
-  "Kalifornia",
-  "Kazaam",
-  "The Kid",
-  "Kids",
-  "Killer Tomatoes Strike Back",
-  "Kindergarten Cop",
-  "The King and I",
-  "King of New York",
-  "Kingpin",
-  "A Kiss Before Dying",
-  "Kiss of Death",
-  "Kuffs",
-  "L.A. Confidential",
-  "The Land Before Time series:",
-  "The Land Before Time II: The Great Valley Adventure",
-  "The Land Before Time III: The Time of the Great Giving",
-  "The Land Before Time IV: Journey Through the Mists",
-  "The Land Before Time V: The Mysterious Island",
-  "The Land Before Time VI: The Secret of Saurus Rock",
-  "The Land Girls",
-  "Last Action Hero",
-  "The Last Boy Scout",
-  "Last Exit to Brooklyn",
-  "Last Night",
-  "Last of the Dogmen",
-  "The Last of the Mohicans",
-  "The Last Seduction",
-  "A League of Their Own",
-  "Leave It to Beaver",
-  "Leaving Las Vegas",
-  "Lethal Weapon 3",
-  "Lethal Weapon 4",
-  "Liar Liar",
-  "Lies",
-  "The Limey",
-  "The Lion King series:",
-  "The Lion King",
-  "The Lion King II: Simba's Pride",
-  "Lionheart",
-  "Little Buddha",
-  "Little Dieter Needs to Fly",
-  "The Little Mermaid",
-  "A Little Princess",
-  "The Little Rascals",
-  "Little Voice",
-  "Little Women",
-  "Live Wire",
-  "Loch Ness",
-  "Lock, Stock and Two Smoking Barrels",
-  "Lone Star",
-  "Longtime Companion",
-  "Look Who's Talking Now",
-  "Look Who's Talking Too",
-  "Lord of the Flies",
-  "Lost Highway",
-  "Lost in Space",
-  "The Lost World: Jurassic Park",
-  "Love Jones",
-  "Love Potion No. 9",
-  "A Low Down Dirty Shame",
-  "M. Butterfly",
-  "Maborosi",
-  "Mack the Knife",
-  "Made in America",
-  "Madeline",
-  "Magnolia",
-  "Major League series:",
-  "Major League II",
-  "Major League: Back to the Minors",
-  "Malcolm X",
-  "Malice",
-  "Mallrats",
-  "Man's Best Friend",
-  "A Man Called Sarge",
-  "The Man in the Iron Mask",
-  "The Man Who Knew Too Little",
-  "The Man Without a Face",
-  "Man of the House",
-  "Man on the Moon",
-  "Margaret's Museum",
-  "El Mariachi",
-  "Marked for Death",
-  "The Marrying Man",
-  "Mars Attacks!",
-  "Mary Reilly",
-  "Mary Shelley's Frankenstein",
-  "The Mask",
-  "The Mask of Zorro",
-  "The Masseuse",
-  "Masterminds",
-  "The Match Factory Girl",
-  "Matilda",
-  "The Matrix",
-  "Maverick",
-  "Maximum Risk",
-  "Meet Joe Black",
-  "Memoirs of an Invisible Man",
-  "Memphis Belle",
-  "Men in Black",
-  "Men in White",
-  "Merlin",
-  "Mermaids",
-  "The Messenger: The Story of Joan of Arc",
-  "Metropolitan",
-  "Mickey Blue Eyes",
-  "Mighty Aphrodite",
-  "The Mighty Ducks",
-  "Mighty Joe Young",
-  "Mighty Morphin Power Rangers: The Movie",
-  "Milk Money",
-  "Mimic",
-  "Misery",
-  "Mission: Impossible",
-  "Mixed Nuts",
-  "Mo' Better Blues",
-  "The Mod Squad",
-  "Money Talks",
-  "Money Train",
-  "Monkey Trouble",
-  "Mortal Kombat series:",
-  "Mortal Kombat",
-  "Mortal Kombat: Annihilation",
-  "Mr. Holland's Opus",
-  "Mr. Magoo",
-  "Mrs. Doubtfire",
-  "Mrs. Winterbourne",
-  "Much Ado About Nothing",
-  "Mulan",
-  "Mulholland Falls",
-  "The Mummy",
-  "Muppets from Space",
-  "Muppet Treasure Island",
-  "Muriel's Wedding",
-  "Music of the Heart",
-  "My Best Fiend",
-  "My Best Friend's Wedding",
-  "My Blue Heaven",
-  "My Cousin Vinny",
-  "My Favorite Martian",
-  "My Favorite Season",
-  "My Giant",
-  "My Girl",
-  "My Girl 2",
-  "My Own Private Idaho",
-  "My Summer Story",
-  "Myself in the Distant Future",
-  "Mystery Science Theater 3000: The Movie",
-  "The Naked Gun 2½: The Smell of Fear",
-  "Naked Gun 33⅓: The Final Insult",
-  "Naked Lunch",
-  "National Lampoon's Loaded Weapon 1",
-  "National Lampoon's Vegas Vacation",
-  "Natural Born Killers",
-  "Nell",
-  "The Net",
-  "Never Been Kissed",
-  "Neverending Story series:",
-  "The NeverEnding Story II: The Next Chapter",
-  "The NeverEnding Story III",
-  "Never Talk to Strangers",
-  "New Jack City",
-  "Newsies",
-  "The Newton Boys",
-  "The Next Karate Kid",
-  "Nick of Time",
-  "A Night at the Roxbury",
-  "Nightbreed",
-  "The Nightmare Before Christmas",
-  "Nixon",
-  "Noises Off",
-  "North",
-  "Not Without My Daughter",
-  "Nothing But Trouble",
-  "Notting Hill",
-  "Now and Then",
-  "Nurse Nancy",
-  "The Nutty Professor",
-  "Office Space",
-  "The Omega Code",
-  "On Deadly Ground",
-  "Once Upon a Crime",
-  "One False Move",
-  "Operation Dumbo Drop",
-  "Orgazmo",
-  "Othello",
-  "Other People's Money",
-  "The Other Sister",
-  "Out for Justice",
-  "Outbreak",
-  "Pacific Heights",
-  "The Pagemaster",
-  "Panther",
-  "Paprika",
-  "The Parent Trap",
-  "Passenger 57",
-  "Passport to Paris",
-  "Patch Adams",
-  "Patriot Games",
-  "Paulie",
-  "PCU",
-  "The Pebble and the Penguin",
-  "Pecker",
-  "The Pelican Brief",
-  "The People Under the Stairs",
-  "The People vs. Larry Flynt",
-  "A Perfect World",
-  "Pet Shop",
-  "Phantoms",
-  "Philadelphia",
-  "The Piano",
-  "Piranha",
-  "Pinocchio",
-  "The Player",
-  "Playing By Heart",
-  "Playing the Odds",
-  "Pleasantville",
-  "Pocahontas",
-  "Pocahontas II: Journey to a New World",
-  "Poetic Justice",
-  "Point Break",
-  "Point of No Return",
-  "Poison",
-  "Poison Ivy",
-  "Poison Ivy II: Lily",
-  "Poison Ivy: The New Seduction",
-  "Pokémon: The First Movie",
-  "Posse",
-  "Postcards from the Edge",
-  "The Postman",
-  "Predator 2",
-  "Presumed Innocent",
-  "Pretty Woman",
-  "Primary Colors",
-  "The Prince of Egypt",
-  "The Prince of Tides",
-  "Private Parts",
-  "Problem Child series:",
-  "Problem Child",
-  "Problem Child 2",
-  "Problem Child 3: Junior in Love",
-  "Léon: The Professional",
-  "Psycho",
-  "Psycho IV: The Beginning",
-  "Pulp Fiction",
-  "Pump Up the Volume",
-  "Puppet Master II",
-  "Puppet Master III: Toulon's Revenge",
-  "Puppet Master 4",
-  "Puppet Master 5: The Final Chapter",
-  "Pure Country",
-  "Pushing Tin",
-  "Q&A",
-  "Quest for Camelot",
-  "The Quick and the Dead",
-  "Quick Change",
-  "Quicksilver Highway",
-  "Quigley Down Under",
-  "Quiz Show",
-  "Rambling Rose",
-  "Random Hearts",
-  "Ravenous",
-  "Reality Bites",
-  "Red Rock West",
-  "The Red Violin",
-  "Regarding Henry",
-  "Regeneration",
-  "The Remains of the Day",
-  "Renaissance Man",
-  "The Rescuers Down Under",
-  "Reservoir Dogs",
-  "Retro Puppet Master",
-  "Return of the Living Dead 3",
-  "Return to the Blue Lagoon",
-  "Reversal of Fortune",
-  "Richard III",
-  "Ri¢hie Ri¢h",
-  "Richie Rich's Christmas Wish",
-  "Ride with the Devil",
-  "Ringu",
-  "A River Runs Through It",
-  "Rob Roy",
-  "Robin Hood: Men in Tights",
-  "Robin Hood: Prince of Thieves",
-  "RoboCop 2",
-  "RoboCop 3",
-  "Robot Jox",
-  "The Rock",
-  "Rock-A-Doodle",
-  "The Rocketeer",
-  "RocketMan",
-  "Rocky V",
-  "Romance",
-  "Romeo + Juliet",
-  "Romy and Michele's High School Reunion",
-  "Rosencrantz & Guildenstern Are Dead",
-  "Rounders",
-  "Rover Dangerfield",
-  "Rubin and Ed",
-  "Rudy",
-  "The Rugrats Movie",
-  "Run Lola Run",
-  "Runaway Bride",
-  "Rush Hour",
-  "Rushmore",
-  "The Russia House",
-  "Sabrina",
-  "The Saint",
-  "A Saintly Switch",
-  "The Sandlot",
-  "The Santa Clause",
-  "Sarafina!",
-  "Sátántangó",
-  "Saving Private Ryan",
-  "The Scarlet Letter",
-  "A Scene at the Sea",
-  "Scent of a Woman",
-  "Schindler's List",
-  "School Ties",
-  "Scream",
-  "Scream 2",
-  "Screamers",
-  "The Secret Garden",
-  "The Secret of NIMH 2: Timmy to the Rescue",
-  "Selena",
-  "Senior Trip",
-  "Sense and Sensibility",
-  "Serial Mom",
-  "Set It Off",
-  "Seven",
-  "Seven Years in Tibet",
-  "Sgt. Kabukiman N.Y.P.D.",
-  "The Shadow",
-  "Shadowlands",
-  "Shakespeare in Love",
-  "Shakes the Clown",
-  "Shattered",
-  "The Shawshank Redemption",
-  "She's All That",
-  "Shining Through",
-  "Shreck",
-  "The Shrimp on the Barbie",
-  "Short Cuts",
-  "Showgirls",
-  "Side Out",
-  "The Siege",
-  "The Silence of the Lambs",
-  "Simon Birch",
-  "A Simple Plan",
-  "A Simple Twist of Fate",
-  "Sinbad",
-  "Single White Female",
-  "Singles",
-  "Sirens",
-  "Six Days Seven Nights",
-  "Six Degrees of Separation",
-  "The Sixth Sense",
-  "Slacker",
-  "Slam Dunk Ernest",
-  "SLC Punk!",
-  "Sleeping with the Enemy",
-  "Sleepless in Seattle",
-  "Sleepy Hollow",
-  "Sliding Doors",
-  "Sling Blade",
-  "Sliver",
-  "Small Soldiers",
-  "A Smile Like Yours",
-  "Snow Falling on Cedars",
-  "So I Married an Axe Murderer",
-  "Soapdish",
-  "Solar Crisis",
-  "Son in Law",
-  "South Park: Bigger, Longer & Uncut",
-  "Spaced Invaders",
-  "Space Jam",
-  "Spawn",
-  "The Specialist",
-  "Species",
-  "Species II",
-  "Speechless",
-  "Speed",
-  "Speed 2: Cruise Control",
-  "Sphere",
-  "Spiceworld",
-  "Spy Hard",
-  "Stalingrad",
-  "Star Trek: First Contact",
-  "Star Trek: Generations",
-  "Star Trek: Insurrection",
-  "Star Trek VI: The Undiscovered Country",
-  "Star Wars: Episode I - The Phantom Menace",
-  "Stargate",
-  "Stay Tuned",
-  "Steel",
-  "Stella",
-  "The Stendhal Syndrome",
-  "Stepmom",
-  "Still Crazy",
-  "Stop! or My Mom Will Shoot",
-  "The Story of Us",
-  "Strange Days",
-  "A Stranger Among Us",
-  "Street Fighter",
-  "Striptease",
-  "Stuart Little",
-  "The Stupids",
-  "subUrbia",
-  "Sudden Death",
-  "Summer of Sam",
-  "Sunset Grill",
-  "Sunshine",
-  "Super Mario Bros.",
-  "The Suspended Step of the Stork",
-  "The Swan Princess series",
-  "The Swan Princess",
-  "The Swan Princess II: Escape from Castle Mountain",
-  "The Swan Princess: The Mystery of the Enchanted Kingdom",
-  "Switch",
-  "Switched at Birth",
-  "Switching Goals",
-  "Swoon",
-  "The Talented Mr. Ripley",
-  "Tales of Erotica",
-  "Tall Tale",
-  "The Tango Lesson",
-  "Tank Girl",
-  "Tarzan",
-  "A Taste of Cherry",
-  "Tatie Danielle",
-  "Teaching Mrs. Tingle",
-  "Teenage Catgirls in Heat",
-  "Teenage Mutant Ninja Turtles series:",
-  "Teenage Mutant Ninja Turtles",
-  "Teenage Mutant Ninja Turtles II: The Secret of the Ooze",
-  "Teenage Mutant Ninja Turtles III",
-  "Tekken",
-  "The Temp",
-  "Terminator 2: Judgment Day",
-  "Terror Firmer",
-  "Tesis",
-  "Texasville",
-  "That Darn Cat",
-  "Thelma and Louise",
-  "Theodore Rex",
-  "The Theory of Flight",
-  "There's Something About Mary",
-  "A Thin Line Between Love and Hate",
-  "The Thin Red Line",
-  "This Boy's Life",
-  "The Thomas Crown Affair",
-  "The Tie That Binds",
-  "Three Colors: Blue",
-  "Three Colors: Red",
-  "Three Colors: White",
-  "The Spitfire Grill",
-  "The Three Musketeers",
-  "The Three Musketeers",
-  "Threesome",
-  "Thumbelina",
-  "Thumbelina",
-  "Thursday",
-  "Tilaï",
-  "A Time to Kill",
-  "Timecop",
-  "Titanic",
-  "Tom and Huck",
-  "Tom and Jerry: The Movie",
-  "Tombstone",
-  "Tommy Boy",
-  "Tomorrow Never Dies",
-  "Toothless",
-  "Top of the World",
-  "Topsy-Turvy",
-  "Total Recall",
-  "To Die For",
-  "To Grandmother's House We Go",
-  "To Wong Foo, Thanks for Everything! Julie Newmar",
-  "Toy Soldiers",
-  "Toy Story",
-  "Toy Story 2",
-  "Toys",
-  "Trainspotting",
-  "Treasure Island",
-  "Tremors",
-  "Tremors 2: Aftershocks",
-  "Trojan War",
-  "Troll 2",
-  "Troll 3",
-  "A Troll in Central Park",
-  "Tromeo and Juliet",
-  "True Colors",
-  "True Lies",
-  "True Romance",
-  "The Truman Show",
-  "The Truth About Cats and Dogs",
-  "Truth or Dare",
-  "Tumbleweeds",
-  "Turbo: A Power Rangers Movie",
-  "The Tune",
-  "Turbulence",
-  "Twelfth Night: Or What You Will",
-  "Twelve Monkeys",
-  "Twin Peaks: Fire Walk With Me",
-  "Twister",
-  "Two Much",
-  "The Horseman Show",
-  "Ulysses' Gaze",
-  "Under Siege",
-  "Under Siege 2: Dark Territory",
-  "Unforgiven",
-  "Unlawful Entry",
-  "Untamed Heart",
-  "Until the End of the World",
-  "The Usual Suspects",
-  "Vampire in Brooklyn",
-  "Very Bad Things",
-  "Vegas In Space",
-  "Vegas Vacation",
-  "Vendetta",
-  "Vincent & Theo",
-  "The Virgin Suicides",
-  "Virtual Sexuality",
-  "Virus",
-  "Volcano",
-  "La Vie sexuelle des Belges 1950-1978",
-  "Waiting to Exhale",
-  "Waking Ned",
-  "A Walk in the Clouds",
-  "War of the Buttons",
-  "Warriors of Virtue",
-  "Wayne's World series:",
-  "Wayne's World",
-  "Wayne's World 2",
-  "The Waterboy",
-  "Waterworld",
-  "The Wedding Singer",
-  "Weekend at Bernie's II",
-  "We're Back! A Dinosaur's Story",
-  "What About Bob?",
-  "What's Eating Gilbert Grape",
-  "What's Love Got to Do with It",
-  "Where Angels Fear to Tread",
-  "While You Were Sleeping",
-  "Whispering Corridors",
-  "Whispers in the Dark",
-  "White Men Can't Jump",
-  "White Sands",
-  "Who Am I?",
-  "Why Not Me?",
-  "Wide Sargasso Sea",
-  "Wild America",
-  "Wild at Heart",
-  "Wild Orchid",
-  "Wild Things",
-  "Wild Wild West",
-  "Wing Commander",
-  "The Wings of the Dove",
-  "The Witches",
-  "Wolf",
-  "The World Is Not Enough",
-  "World's Biggest Gang Bang",
-  "Wrongfully Accused",
-  "Wyatt Earp",
-  "The X Files: Fight the Future",
-  "Yellow Hair",
-  "You've Got Mail",
-  "Young Guns II",
-  "Zazel"
-];
-
-}());
\ No newline at end of file
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Nations.js b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Nations.js
deleted file mode 100644
index dfc3039..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Nations.js
+++ /dev/null
@@ -1,207 +0,0 @@
-(function() {
-
-  rap.registerTypeHandler( "clientData.Nations", {
-
-    factory : function() {
-      return nations;
-    }
-
-  } );
-
-  var nations = [
-    "Albania",
-    "Algeria",
-    "Andorra",
-    "Angola",
-    "Anguilla",
-    "Antigua and Barbuda",
-    "Argentina",
-    "Armenia",
-    "Australia",
-    "Austria",
-    "Azerbaijan",
-    "Bahamas",
-    "Bahrain",
-    "Bangladesh",
-    "Barbados",
-    "Belarus",
-    "Belgium",
-    "Belize",
-    "Benin",
-    "Bhutan",
-    "Bolivia",
-    "Bosnia and Herzegovina",
-    "Botswana",
-    "Brazil",
-    "Brunei",
-    "Bulgaria",
-    "Burkina Faso",
-    "Burma/Myanmar",
-    "Burundi",
-    "Cambodia",
-    "Cameroon",
-    "Canada",
-    "Cape Verde",
-    "Central African Republic",
-    "Chad",
-    "Chile",
-    "China",
-    "Colombia",
-    "Comoros",
-    "Congo",
-    "Costa Rica",
-    "Cote d'Ivoire Croatia",
-    "Cuba",
-    "Cyprus",
-    "Cyprus",
-    "Czech Republic",
-    "Denmark",
-    "Djibouti",
-    "Dominica",
-    "Dominican Republic",
-    "Ecuador",
-    "Egypt",
-    "El Salvador",
-    "Equatorial Guinea",
-    "Eritrea",
-    "Estonia",
-    "Ethiopia",
-    "Fiji",
-    "Finland",
-    "France",
-    "Gabon",
-    "Gambia",
-    "Georgia",
-    "Germany",
-    "Ghana",
-    "Greece",
-    "Greenland",
-    "Grenada",
-    "Guatemala",
-    "Guinea",
-    "Guinea-Bissau",
-    "Guyana",
-    "Haiti",
-    "Honduras",
-    "Hungary",
-    "Iceland",
-    "India",
-    "Indonesia",
-    "Iran",
-    "Iraq",
-    "Ireland",
-    "Israel",
-    "Italy",
-    "Jamaica",
-    "Japan",
-    "Jordan",
-    "Kazakstan",
-    "Kenya",
-    "Kiribati",
-    "Korea, North",
-    "Korea, South",
-    "Kuwait",
-    "Kyrgyzstan",
-    "Laos",
-    "Latvia",
-    "Lebanon",
-    "Lesotho",
-    "Liberia",
-    "Libya",
-    "Liechtenstein",
-    "Lithuania",
-    "Luxembourg",
-    "Macedonia",
-    "Madagascar",
-    "Malawi",
-    "Malaysia",
-    "Maldives",
-    "Mali",
-    "Malta",
-    "Marshall Islands",
-    "Mauritania",
-    "Mauritius",
-    "Mexico",
-    "Micronesia",
-    "Moldova",
-    "Monaco",
-    "Mongolia",
-    "Morocco",
-    "Mozambique",
-    "Namibia",
-    "Nepal",
-    "Netherlands",
-    "New Zealand",
-    "Nicaragua",
-    "Niger",
-    "Nigeria",
-    "Norway",
-    "Oman",
-    "Pakistan",
-    "Palau",
-    "Palestine",
-    "Panama",
-    "Papua New Guinea",
-    "Paraguay",
-    "Peru",
-    "Philippines",
-    "Poland",
-    "Portugal",
-    "Puerto Rico",
-    "Qatar",
-    "Romania",
-    "Russian Federation",
-    "Rwanda",
-    "Saint Kitts and Nevis",
-    "Saint Lucia",
-    "Saint Vincent and the Grenadines",
-    "San Marino",
-    "Sao Tome and Principe",
-    "Saudi Arabia",
-    "Senegal",
-    "Seychelles",
-    "Sierra Leone",
-    "Singapore",
-    "Slovakia",
-    "Slovenia",
-    "Solomon Islands",
-    "Somalia",
-    "South Africa",
-    "Spain",
-    "Sri Lanka",
-    "Sudan",
-    "Suriname",
-    "Swaziland",
-    "Sweden",
-    "Switzerland",
-    "Syria",
-    "Taiwan",
-    "Tajikistan",
-    "Tanzania",
-    "Thailand",
-    "Togo",
-    "Tonga",
-    "Trinidad and Tobago",
-    "Tunisia",
-    "Turkey",
-    "Turkmenistan",
-    "Tuvalu",
-    "Uganda",
-    "Ukraine",
-    "United Arab Emirates",
-    "United Kingdom",
-    "United States of America",
-    "Uruguay",
-    "Uzbekistan",
-    "Vanuatu",
-    "Vatican City",
-    "Venezuela",
-    "Vietnam",
-    "Western Samoa",
-    "Yemen",
-    "Yugoslavia",
-    "Zambia",
-    "Zimbabwe"
-  ];
-
-}());
\ No newline at end of file
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ResourceLoaderUtil.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ResourceLoaderUtil.java
deleted file mode 100644
index d12821b..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/ResourceLoaderUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2013 EclipseSource and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    EclipseSource - initial API and implementation
- ******************************************************************************/
-package org.eclipse.rap.addons.dropdown.demo;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-
-/**
- * Example for a utility that helps reading script file contents from the class path.
- */
-public class ResourceLoaderUtil {
-
-  private static final String CHARSET = "UTF-8";
-  private static final ClassLoader CLASSLOADER = ResourceLoaderUtil.class.getClassLoader();
-
-  private ResourceLoaderUtil() {
-    // prevent instantiation
-  }
-
-  /**
-   * Reads the content of a given text resource.
-   *
-   * @param resource the fully qualified name of the resource, without leading slash
-   * @return the contents of the resource as string
-   * @throws IllegalArgumentException if the resource could not be read
-   */
-  public static String readTextContent( String resource ) {
-    try {
-      return readTextContentChecked( resource );
-    } catch( IOException e ) {
-      throw new IllegalArgumentException( "Failed to read resource: " + resource );
-    }
-  }
-
-  private static String readTextContentChecked( String resource ) throws IOException {
-    InputStream stream = CLASSLOADER.getResourceAsStream( resource );
-    if( stream == null ) {
-      throw new IllegalArgumentException( "Resource not found: " + resource );
-    }
-    try {
-      BufferedReader reader = new BufferedReader( new InputStreamReader( stream, CHARSET ) );
-      return readLines( reader );
-    } finally {
-      stream.close();
-    }
-  }
-
-  private static String readLines( BufferedReader reader ) throws IOException {
-    StringBuilder builder = new StringBuilder();
-    String line = reader.readLine();
-    while( line != null ) {
-      builder.append( line );
-      builder.append( '\n' );
-      line = reader.readLine();
-    }
-    return builder.toString();
-  }
-}
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/TextEventHandler.js b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/TextEventHandler.js
deleted file mode 100644
index bf4314d..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/TextEventHandler.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 EclipseSource.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    EclipseSource - initial API and implementation
- ******************************************************************************/
-
-var searchItems = rwt.dropdown.DropDown.searchItems;
-var createQuery = rwt.dropdown.DropDown.createQuery;
-
-function handleEvent( event ) {
-  switch( event.type ) {
-    case SWT.Modify:
-      handleModify( event );
-    break;
-    case SWT.Verify:
-      handleVerify( event );
-    break;
-    case SWT.KeyDown:
-      handleKeyDown( event );
-    break;
-  }
-}
-
-function handleVerify( event ) {
-  // See Bug 404896 - [ClientScripting] Verify event keyCode is always zero when replacing txt
-  if( event.text !== "" /* && event.keyCode !== 0 */ ) {
-    event.widget.setData( "typing", true );
-  }
-}
-
-function handleModify( event ) {
-  var widget = event.widget;
-  var text = widget.getText().toLowerCase();
-  var dropdown = rap.getObject( widget.getData( "dropdown" ) );
-  var data = rap.getObject( dropdown.getData( "data" ) );
-  var items = searchItems( data, createQuery( text ), 10 ).items;
-  var typing = widget.getData( "typing" );
-  var selecting = widget.getData( "selecting" );
-  widget.setData( "typing", false );
-  widget.setData( "selecting", false );
-  if( !selecting ) {
-    if( ( text.length >= 2 || ( dropdown.getVisible() && typing ) ) && items.length > 0 ) {
-      dropdown.setItems( items );
-      dropdown.show();
-      var common = commonText( items );
-      if( typing && common && common.length > text.length ) {
-        var sel = widget.getSelection();
-        var newSel = [ sel[ 0 ], common.length ];
-        widget.setText( common );
-        widget.setSelection( newSel );
-      }
-    } else {
-      dropdown.hide();
-    }
-  }
-}
-
-function handleKeyDown( event ) {
-  var widget = event.widget;
-  var dropdown = rap.getObject( widget.getData( "dropdown" ) );
-  if( dropdown.getVisible() ) {
-    switch( event.keyCode ) {
-      case SWT.CR:
-        var sel = widget.getSelection();
-        widget.setSelection( [ sel[ 1 ], sel[ 1 ] ] );
-      break;
-    }
-  }
-}
-
-function commonText( items ) {
-  var result = null;
-  if( items.length === 1 ) {
-    result = items[ 0 ];
-  } else {
-    var cont = true;
-    var commonTo = 0;
-    while( cont ) {
-      var next = items[ 0 ].indexOf( " ", commonTo + 1 ); // TODO [tb] : also respect ,"':;
-      if( next !== -1 ) {
-        var testString = items[ 0 ].slice( 0, next + 1 );
-        var commons = searchItems( items, createQuery( testString, true ) ).items;
-        if( items.length === commons.length ) {
-          commonTo = next + 1;
-        } else {
-          cont = false;
-        }
-      } else {
-        cont = false;
-      }
-    }
-    if( commonTo > 0 ) {
-      result = items[ 0 ].slice( 0, commonTo );
-    }
-  }
-  return result;
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/KFZ.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/KFZ.java
similarity index 99%
rename from examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/KFZ.java
rename to examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/KFZ.java
index bcf8459..ed579da 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/KFZ.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/KFZ.java
@@ -8,7 +8,7 @@
  * Contributors:
  *    EclipseSource - initial API and implementation
  ******************************************************************************/
-package org.eclipse.rap.addons.dropdown.demo;
+package org.eclipse.rap.addons.dropdown.demo.data;
 
 
 public class KFZ {
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/Movies.java
similarity index 99%
rename from examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.java
rename to examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/Movies.java
index 8c4b82f..3fc3674 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/Movies.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/data/Movies.java
@@ -8,7 +8,7 @@
  * Contributors:
  *    EclipseSource - initial API and implementation
  ******************************************************************************/
-package org.eclipse.rap.addons.dropdown.demo;
+package org.eclipse.rap.addons.dropdown.demo.data;
 
 public class Movies {
 
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/theme/arrow-down.png b/examples/org.eclipse.rap.addons.dropdown.demo/theme/arrow-down.png
deleted file mode 100644
index c6bd3f7..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/theme/arrow-down.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/theme/theme.css b/examples/org.eclipse.rap.addons.dropdown.demo/theme/theme.css
deleted file mode 100644
index 63415cb..0000000
--- a/examples/org.eclipse.rap.addons.dropdown.demo/theme/theme.css
+++ /dev/null
@@ -1,7 +0,0 @@
-Text.dropdown {
-  border-radius: 0; /* otherwise IE won't support background position */
-  padding: 5px 20px 5px 10px; /* give space to the icon */
-  background-image: url( theme/arrow-down.png );
-  background-repeat: no-repeat;
-  background-position: right center;
-}