Now have accurate version information built into jquery.js - will build it into the...
[jquery.git] / src / jquery / jquery.js
index 5446ed2..ab7564f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * jQuery - New Wave Javascript\r
+ * jQuery @VERSION - New Wave Javascript\r
  *\r
  * Copyright (c) 2006 John Resig (jquery.com)\r
  * Dual licensed under the MIT (MIT-LICENSE.txt)\r
@@ -98,7 +98,7 @@ if ( typeof $ != "undefined" )
  * @desc Creates a div element (and all of its contents) dynamically, \r
  * and appends it to the element with the ID of body. Internally, an\r
  * element is created and it's innerHTML property set to the given markup.\r
- * It is therefore both quite flexible and limited. 
+ * It is therefore both quite flexible and limited. \r
  *\r
  * @name $\r
  * @param String expr An expression to search with, or a string of HTML to create on the fly.\r
@@ -190,7 +190,7 @@ var $ = jQuery;
 \r
 jQuery.fn = jQuery.prototype = {\r
        /**\r
-        * The current SVN version of jQuery.\r
+        * The current version of jQuery.\r
         *\r
         * @private\r
         * @property\r
@@ -198,7 +198,7 @@ jQuery.fn = jQuery.prototype = {
         * @type String\r
         * @cat Core\r
         */\r
-       jquery: "$Rev$",\r
+       jquery: "@VERSION",\r
 \r
        /**\r
         * The number of elements currently matched.\r
@@ -1384,10 +1384,6 @@ jQuery.extend({
                        o.className += ( o.className ? " " : "" ) + c;\r
                },\r
                remove: function(o,c){\r
-                       /*\r
-                       o.className = !c ? "" :\r
-                               o.className.replace(\r
-                                       new RegExp("(^|\\s*\\b[^-])"+c+"($|\\b(?=[^-]))", "g"), "");*/\r
                        if( !c ) {\r
                                o.className = "";\r
                        } else {\r
@@ -1455,14 +1451,16 @@ jQuery.extend({
                        });\r
 \r
                        return p == "height" ? oHeight : oWidth;\r
-               } else if ( p == "opacity" && jQuery.browser.msie )\r
-                       return parseFloat( jQuery.curCSS(e,"filter").replace(/[^0-9.]/,"") ) || 1;\r
+               }\r
 \r
                return jQuery.curCSS( e, p );\r
        },\r
 \r
        curCSS: function(elem, prop, force) {\r
                var ret;\r
+               \r
+               if (prop == 'opacity' && jQuery.browser.msie)\r
+                       return jQuery.attr(elem.style, 'opacity');\r
 \r
                if (!force && elem.style[prop]) {\r
 \r
@@ -1497,7 +1495,7 @@ jQuery.extend({
                for ( var i = 0; i < a.length; i++ ) {\r
                        if ( a[i].constructor == String ) {\r
                                // trim whitespace, otherwise indexOf won't work as expected\r
-                               a[i] = $.trim(a[i]);\r
+                               a[i] = jQuery.trim(a[i]);\r
                                \r
                                var table = "";\r
 \r
@@ -1567,7 +1565,7 @@ jQuery.extend({
                        enabled: "!a.disabled",\r
                        disabled: "a.disabled",\r
                        checked: "a.checked",\r
-                       selected: "a.selected",\r
+                       selected: "a.selected || jQuery.attr(a, 'selected')",\r
 \r
                        // Form elements\r
                        text: "a.type=='text'",\r
@@ -1833,11 +1831,27 @@ jQuery.extend({
                        disabled: "disabled",\r
                        checked: "checked"\r
                };\r
+               \r
+               // IE actually uses filters for opacity ... elem is actually elem.style\r
+               if (name == "opacity" && jQuery.browser.msie && value != undefined) {\r
+                       // IE has trouble with opacity if it does not have layout\r
+                       // Would prefer to check element.hasLayout first but don't have access to the element here\r
+                       elem['zoom'] = 1; \r
+                       if (value == 1) // Remove filter to avoid more IE weirdness\r
+                               return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"");\r
+                       else\r
+                               return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"") + "alpha(opacity=" + value * 100 + ")";\r
+               } else if (name == "opacity" && jQuery.browser.msie) {\r
+                       return elem["filter"] ? parseFloat( elem["filter"].match(/alpha\(opacity=(.*)\)/)[1] )/100 : 1;\r
+               }\r
+               \r
+               // Mozilla doesn't play well with opacity 1\r
+               if (name == "opacity" && jQuery.browser.mozilla && value == 1) value = 0.9999;\r
 \r
                if ( fix[name] ) {\r
                        if ( value != undefined ) elem[fix[name]] = value;\r
                        return elem[fix[name]];\r
-               } else if( value == undefined && $.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) {\r
+               } else if( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) {\r
                        return elem.getAttributeNode(name).nodeValue;\r
                } else if ( elem.getAttribute != undefined ) {\r
                        if ( value != undefined ) elem.setAttribute( name, value );\r