Index: django/django/contrib/admin/media/js/admin/RelatedObjectLookups.js
===================================================================
--- django/django/contrib/admin/media/js/admin/RelatedObjectLookups.js	(revision 2441)
+++ django/django/contrib/admin/media/js/admin/RelatedObjectLookups.js	(working copy)
@@ -3,11 +3,11 @@
 
 function showRelatedObjectLookupPopup(triggeringLink) {
     var name = triggeringLink.id.replace(/^lookup_/, '');
-    var href
+    var href;
     if (triggeringLink.href.search(/\?/) >= 0) {
         href = triggeringLink.href + '&pop=1';
     } else {
-        href = triggeringLink.href + '?pop=1'
+        href = triggeringLink.href + '?pop=1';
     }
     var win = window.open(href, name, 'height=500,width=740,resizable=yes,scrollbars=yes');
     win.focus();
@@ -33,7 +33,7 @@
 }
 
 function dismissAddAnotherPopup(win, newId, newRepr) {
-    var name = win.name.replace(/___/g, '.')
+    var name = win.name.replace(/___/g, '.');
     var elem = document.getElementById(name);
     if (elem) {
         if (elem.nodeName == 'SELECT') {
@@ -38,7 +38,7 @@
     if (elem) {
         if (elem.nodeName == 'SELECT') {
             var o = new Option(newRepr, newId);
-            elem.options[elem.options.length] = o
+            elem.options[elem.options.length] = o;
             elem.selectedIndex = elem.length - 1;
         } else if (elem.nodeName == 'INPUT') {
             elem.value = newId;
Index: django/django/contrib/admin/media/js/calendar.js
===================================================================
--- django/django/contrib/admin/media/js/calendar.js	(revision 2441)
+++ django/django/contrib/admin/media/js/calendar.js	(working copy)
@@ -102,15 +102,17 @@
     this.today = new Date();
     this.currentMonth = this.today.getMonth() + 1;
     this.currentYear = this.today.getFullYear();
-    this.drawCurrent = function() {
+}
+Calendar.prototype = {
+    drawCurrent: function() {
         CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback);
-    }
-    this.drawDate = function(month, year) {
+    },
+    drawDate: function(month, year) {
         this.currentMonth = month;
         this.currentYear = year;
         this.drawCurrent();
-    }
-    this.drawPreviousMonth = function() {
+    },
+    drawPreviousMonth: function() {
         if (this.currentMonth == 1) {
             this.currentMonth = 12;
             this.currentYear--;
@@ -119,8 +121,8 @@
             this.currentMonth--;
         }
         this.drawCurrent();
-    }
-    this.drawNextMonth = function() {
+    },
+    drawNextMonth: function() {
         if (this.currentMonth == 12) {
             this.currentMonth = 1;
             this.currentYear++;
@@ -129,12 +131,12 @@
             this.currentMonth++;
         }
         this.drawCurrent();
-    }
-    this.drawPreviousYear = function() {
+    },
+    drawPreviousYear: function() {
         this.currentYear--;
         this.drawCurrent();
-    }
-    this.drawNextYear = function() {
+    },
+    drawNextYear: function() {
         this.currentYear++;
         this.drawCurrent();
     }
Index: django/django/contrib/admin/media/js/core.js
===================================================================
--- django/django/contrib/admin/media/js/core.js	(revision 2441)
+++ django/django/contrib/admin/media/js/core.js	(working copy)
@@ -70,7 +70,7 @@
     var curleft = 0;
     if (obj.offsetParent) {
         while (obj.offsetParent) {
-            curleft += obj.offsetLeft
+            curleft += obj.offsetLeft;
             obj = obj.offsetParent;
         }
     } else if (obj.x) {
@@ -83,7 +83,7 @@
     var curtop = 0;
     if (obj.offsetParent) {
         while (obj.offsetParent) {
-            curtop += obj.offsetTop
+            curtop += obj.offsetTop;
             obj = obj.offsetParent;
         }
     } else if (obj.y) {
@@ -130,7 +130,7 @@
 // String object extensions
 // ----------------------------------------------------------------------------
 String.prototype.pad_left = function(pad_length, pad_string) {
-    new_string = this;
+    var new_string = this;
     for (var i = 0; new_string.length < pad_length; i++) {
         new_string = pad_string + new_string;
     }
Index: django/django/contrib/admin/media/js/dateparse.js
===================================================================
--- django/django/contrib/admin/media/js/dateparse.js	(revision 2441)
+++ django/django/contrib/admin/media/js/dateparse.js	(working copy)
@@ -4,24 +4,30 @@
 */
 
 /* Finds the index of the first occurence of item in the array, or -1 if not found */
-Array.prototype.indexOf = function(item) {
-    for (var i = 0; i < this.length; i++) {
-        if (this[i] == item) {
-            return i;
+if (typeof Array.prototype.indexOf == 'undefined') {
+    Array.prototype.indexOf = function(item) {
+        var len = this.length;
+        for (var i = 0; i < len; i++) {
+            if (this[i] == item) {
+                return i;
+            }
         }
-    }
-    return -1;
-};
+        return -1;
+    };
+}
 /* Returns an array of items judged 'true' by the passed in test function */
-Array.prototype.filter = function(test) {
-    var matches = [];
-    for (var i = 0; i < this.length; i++) {
-        if (test(this[i])) {
-            matches[matches.length] = this[i];
+if (typeof Array.prototype.filter == 'undefined') {
+    Array.prototype.filter = function(test) {
+        var matches = [];
+        var len = this.length;
+        for (var i = 0; i < len; i++) {
+            if (test(this[i])) {
+                matches[matches.length] = this[i];
+            }
         }
-    }
-    return matches;
-};
+        return matches;
+    };
+}
 
 var monthNames = gettext("January February March April May June July August September October November December").split(" ");
 var weekdayNames = gettext("Sunday Monday Tuesday Wednesday Thursday Friday Saturday").split(" ");
