                     {
                         proposedNewIndex = selectedIndex == -1 ? 
                                             -1 : Math.max(selectedIndex - PAGE_SIZE, 0);
-                        event.preventDefault()                                    
+                        event.preventDefault();
                         break;
                     }
                         
                     case NavigationUnit.PAGE_DOWN:
                     {    
-                        proposedNewIndex = selectedIndex + PAGE_SIZE;
-                        event.preventDefault()
+                        proposedNewIndex = selectedIndex == -1 ?
+                                           PAGE_SIZE : (selectedIndex + PAGE_SIZE);
+                        event.preventDefault();
                         break;
                     }
                        
                     case NavigationUnit.HOME:
                     {
                         proposedNewIndex = 0;
-                        event.preventDefault()
+                        event.preventDefault();
                         break;
                     }
 
                     case NavigationUnit.END:
                     {
                         proposedNewIndex = dataProvider.length - 1;  
-                        event.preventDefault()
+                        event.preventDefault();
                         break;
                     }  
                        

                    case NavigationUnit.UP:
                    {
                        proposedNewIndex = selectedIndex - 1;  
                        event.preventDefault()
                        break;
                    }                      
        
                    case NavigationUnit.DOWN:
                    {
                        proposedNewIndex = selectedIndex + 1;  
                        event.preventDefault()
                        break;
                    }
                        

                    e.newIndex = caretIndex;
                    dispatchEvent(e);

                    event.preventDefault();
                }
            }
            else if (dataProvider)
