Changeset 296
- Timestamp:
- 10/09/05 11:25:42 (3 years ago)
- Files:
-
- mochikit/trunk/MochiKit/Format.js (modified) (2 diffs)
- mochikit/trunk/doc/html/MochiKit/Format.html (modified) (2 diffs)
- mochikit/trunk/doc/html/MochiKit/VersionHistory.html (modified) (1 diff)
- mochikit/trunk/doc/html/MochiKit/index.html (modified) (1 diff)
- mochikit/trunk/doc/rst/MochiKit/Format.rst (modified) (3 diffs)
- mochikit/trunk/doc/rst/MochiKit/VersionHistory.rst (modified) (1 diff)
- mochikit/trunk/packed/MochiKit/MochiKit.js (modified) (55 diffs)
- mochikit/trunk/tests/test_MochiKit-Format.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/trunk/MochiKit/Format.js
r273 r296 97 97 }; 98 98 99 MochiKit.Format.truncToFixed = function (aNumber, precision) { 100 aNumber = Math.floor(aNumber * Math.pow(10, precision)); 101 var res = (aNumber * Math.pow(10, -precision)).toFixed(precision); 102 if (res.charAt(0) == ".") { 103 res = "0" + res; 104 } 105 return res; 106 }; 107 108 MochiKit.Format.roundToFixed = function (aNumber, precision) { 109 return MochiKit.Format.truncToFixed( 110 aNumber + 0.5 * Math.pow(10, -precision), 111 precision 112 ); 113 }; 114 99 115 MochiKit.Format.percentFormat = function (someFloat) { 100 116 /*** … … 107 123 108 124 MochiKit.Format.EXPORT = [ 125 "truncToFixed", 126 "roundToFixed", 109 127 "twoDigitAverage", 110 128 "twoDigitFloat", mochikit/trunk/doc/html/MochiKit/Format.html
r244 r296 17 17 <h1><a name="synopsis">Synopsis</a></h1> 18 18 <pre class="literal-block"> 19 assert( truncToFixed(0.12345, 4) == "0.1234" ); 20 assert( roundToFixed(0.12345, 4) == "0.1235" ); 19 21 assert( twoDigitAverage(1, 0) == "0" ); 20 22 assert( twoDigitFloat(1.2345) == "1.23" ); … … 38 40 <div class="section" id="functions"> 39 41 <h2><a name="functions">Functions</a></h2> 42 <p><tt class="docutils literal"><span class="pre">truncToFixed(aNumber,</span> <span class="pre">precision)</span></tt>:</p> 43 <blockquote> 44 <p>Return a string representation of <tt class="docutils literal"><span class="pre">aNumber</span></tt>, truncated to <tt class="docutils literal"><span class="pre">precision</span></tt> 45 digits with trailing zeros. This is similar to 46 <tt class="docutils literal"><span class="pre">aNumber.toFixed(precision)</span></tt>, but this truncates rather than rounds and 47 has implementation consistent behavior for numbers less than 1. 48 Specifically, <tt class="docutils literal"><span class="pre">truncToFixed(aNumber,</span> <span class="pre">precision)</span></tt> will always have a 49 preceding <tt class="docutils literal"><span class="pre">0</span></tt> for numbers less than <tt class="docutils literal"><span class="pre">1</span></tt>.</p> 50 <p>For example, <tt class="docutils literal"><span class="pre">toFixed(0.1357,</span> <span class="pre">2)</span></tt> returns <tt class="docutils literal"><span class="pre">0.13</span></tt>.</p> 51 </blockquote> 52 <p><tt class="docutils literal"><span class="pre">roundToFixed(aNumber,</span> <span class="pre">precision)</span></tt>:</p> 53 <blockquote> 54 <p>Return a string representation of <tt class="docutils literal"><span class="pre">aNumber</span></tt>, rounded to <tt class="docutils literal"><span class="pre">precision</span></tt> 55 digits with trailing zeros. This is similar to 56 <tt class="docutils literal"><span class="pre">Number.toFixed(aNumber,</span> <span class="pre">precision)</span></tt>, but this has implementation 57 consistent rounding behavior (some versions of Safari round 0.5 down!) 58 and also includes preceding <tt class="docutils literal"><span class="pre">0</span></tt> for numbers less than <tt class="docutils literal"><span class="pre">1</span></tt> (Safari, 59 again).</p> 60 <p>For example, <tt class="docutils literal"><span class="pre">roundToFixed(0.1357,</span> <span class="pre">2)</span></tt> returns <tt class="docutils literal"><span class="pre">0.14</span></tt> on every 61 supported platform, where some return <tt class="docutils literal"><span class="pre">.13</span></tt> for <tt class="docutils literal"><span class="pre">(0.1357).toFixed(2)</span></tt>.</p> 62 </blockquote> 40 63 <p><tt class="docutils literal"><span class="pre">twoDigitAverage(numerator,</span> <span class="pre">denominator)</span></tt>:</p> 41 64 <blockquote> mochikit/trunk/doc/html/MochiKit/VersionHistory.html
r294 r296 10 10 <body> 11 11 <div class="document"> 12 <p>2005-XX-XX v1.00</p> 13 <ul class="simple"> 14 <li>Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 15 to MochiKit.Format</li> 16 </ul> 12 17 <p>2005-10-08 v0.90</p> 13 18 <ul class="simple"> mochikit/trunk/doc/html/MochiKit/index.html
r294 r296 37 37 <div class="section" id="version-history"> 38 38 <h1><a name="version-history">Version History</a></h1> 39 <p>2005-XX-XX v1.00</p> 40 <ul class="simple"> 41 <li>Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 42 to MochiKit.Format</li> 43 </ul> 39 44 <p>2005-10-08 v0.90</p> 40 45 <ul class="simple"> mochikit/trunk/doc/rst/MochiKit/Format.rst
r244 r296 12 12 :: 13 13 14 assert( truncToFixed(0.12345, 4) == "0.1234" ); 15 assert( roundToFixed(0.12345, 4) == "0.1235" ); 14 16 assert( twoDigitAverage(1, 0) == "0" ); 15 17 assert( twoDigitFloat(1.2345) == "1.23" ); … … 39 41 --------- 40 42 43 ``truncToFixed(aNumber, precision)``: 44 45 Return a string representation of ``aNumber``, truncated to ``precision`` 46 digits with trailing zeros. This is similar to 47 ``aNumber.toFixed(precision)``, but this truncates rather than rounds and 48 has implementation consistent behavior for numbers less than 1. 49 Specifically, ``truncToFixed(aNumber, precision)`` will always have a 50 preceding ``0`` for numbers less than ``1``. 51 52 For example, ``toFixed(0.1357, 2)`` returns ``0.13``. 53 54 55 ``roundToFixed(aNumber, precision)``: 56 57 Return a string representation of ``aNumber``, rounded to ``precision`` 58 digits with trailing zeros. This is similar to 59 ``Number.toFixed(aNumber, precision)``, but this has implementation 60 consistent rounding behavior (some versions of Safari round 0.5 down!) 61 and also includes preceding ``0`` for numbers less than ``1`` (Safari, 62 again). 63 64 For example, ``roundToFixed(0.1357, 2)`` returns ``0.14`` on every 65 supported platform, where some return ``.13`` for ``(0.1357).toFixed(2)``. 66 67 41 68 ``twoDigitAverage(numerator, denominator)``: 42 69 … … 64 91 whitespace. ``chars`` should be a string suitable for use in a ``RegExp`` 65 92 ``[character set]``. 93 66 94 67 95 ``rstrip(str, chars="\s")``: mochikit/trunk/doc/rst/MochiKit/VersionHistory.rst
r294 r296 1 2005-XX-XX v1.00 2 3 - Added truncToFixed(aNumber, precision) and roundToFixed(aNumber, precision) 4 to MochiKit.Format 5 1 6 2005-10-08 v0.90 2 7 mochikit/trunk/packed/MochiKit/MochiKit.js
r293 r296 1688 1688 return self.rstrip(self.lstrip(str,_208),_208); 1689 1689 }; 1690 MochiKit.Format.percentFormat=function(_209){ 1691 return MochiKit.Format.twoDigitFloat(100*_209)+"%"; 1692 }; 1693 MochiKit.Format.EXPORT=["twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; 1690 MochiKit.Format.truncToFixed=function(_209,_210){ 1691 _209=Math.floor(_209*Math.pow(10,_210)); 1692 var res=(_209*Math.pow(10,-_210)).toFixed(_210); 1693 if(res.charAt(0)=="."){ 1694 res="0"+res; 1695 } 1696 return res; 1697 }; 1698 MochiKit.Format.roundToFixed=function(_211,_212){ 1699 return MochiKit.Format.truncToFixed(_211+0.5*Math.pow(10,-_212),_212); 1700 }; 1701 MochiKit.Format.percentFormat=function(_213){ 1702 return MochiKit.Format.twoDigitFloat(100*_213)+"%"; 1703 }; 1704 MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"]; 1694 1705 MochiKit.Format.EXPORT_OK=[]; 1695 1706 MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT}; … … 1742 1753 return this.__repr__(); 1743 1754 }; 1744 MochiKit.Async.AlreadyCalledError=function(_21 0){1745 this.deferred=_21 0;1755 MochiKit.Async.AlreadyCalledError=function(_214){ 1756 this.deferred=_214; 1746 1757 }; 1747 1758 MochiKit.Async.AlreadyCalledError.prototype=new MochiKit.Base.NamedError("MochiKit.Async.AlreadyCalledError"); 1748 MochiKit.Async.CancelledError=function(_21 1){1749 this.deferred=_21 1;1759 MochiKit.Async.CancelledError=function(_215){ 1760 this.deferred=_215; 1750 1761 }; 1751 1762 MochiKit.Async.CancelledError.prototype=new MochiKit.Base.NamedError("MochiKit.Async.CancelledError"); … … 1768 1779 }; 1769 1780 MochiKit.Async.XMLHttpRequestError.prototype=new MochiKit.Base.NamedError("MochiKit.Async.XMLHttpRequestError"); 1770 MochiKit.Async.Deferred=function(_21 3){1781 MochiKit.Async.Deferred=function(_217){ 1771 1782 this.chain=[]; 1772 1783 this.id=this._nextId(); … … 1774 1785 this.paused=0; 1775 1786 this.results=[null,null]; 1776 this.canceller=_21 3;1787 this.canceller=_217; 1777 1788 this.silentlyCancelled=false; 1778 1789 }; 1779 1790 MochiKit.Async.Deferred.prototype.repr=function(){ 1780 var _21 4;1791 var _218; 1781 1792 if(this.fired==-1){ 1782 _21 4="unfired";1793 _218="unfired"; 1783 1794 }else{ 1784 1795 if(this.fired==0){ 1785 _21 4="success";1786 }else{ 1787 _21 4="error";1788 } 1789 } 1790 return "Deferred("+this.id+", "+_21 4+")";1796 _218="success"; 1797 }else{ 1798 _218="error"; 1799 } 1800 } 1801 return "Deferred("+this.id+", "+_218+")"; 1791 1802 }; 1792 1803 MochiKit.Async.Deferred.prototype.toString=MochiKit.Base.forward("repr"); … … 1868 1879 }; 1869 1880 MochiKit.Async.Deferred.prototype._fire=function(){ 1870 var _2 17=this.chain;1871 var _2 18=this.fired;1872 var res=this.results[_2 18];1881 var _221=this.chain; 1882 var _222=this.fired; 1883 var res=this.results[_222]; 1873 1884 var self=this; 1874 1885 var cb=null; 1875 while(_2 17.length>0&&this.paused==0){1876 var pair=_2 17.shift();1877 var f=pair[_2 18];1886 while(_221.length>0&&this.paused==0){ 1887 var pair=_221.shift(); 1888 var f=pair[_222]; 1878 1889 if(f==null){ 1879 1890 continue; … … 1881 1892 try{ 1882 1893 res=f(res); 1883 _2 18=((res instanceof Error)?1:0);1894 _222=((res instanceof Error)?1:0); 1884 1895 if(res instanceof MochiKit.Async.Deferred){ 1885 1896 cb=function(res){ … … 1890 1901 } 1891 1902 catch(err){ 1892 _2 18=1;1903 _222=1; 1893 1904 res=err; 1894 1905 } 1895 1906 } 1896 this.fired=_2 18;1897 this.results[_2 18]=res;1907 this.fired=_222; 1908 this.results[_222]=res; 1898 1909 if(cb&&this.paused){ 1899 1910 res.addBoth(cb); … … 1903 1914 return eval("("+req.responseText+")"); 1904 1915 }; 1905 MochiKit.Async.succeed=function(_22 0){1916 MochiKit.Async.succeed=function(_224){ 1906 1917 var d=new MochiKit.Async.Deferred(); 1907 1918 d.callback.apply(d,arguments); 1908 1919 return d; 1909 1920 }; 1910 MochiKit.Async.fail=function(_22 1){1921 MochiKit.Async.fail=function(_225){ 1911 1922 var d=new MochiKit.Async.Deferred(); 1912 1923 d.errback.apply(d,arguments); … … 1916 1927 var self=arguments.callee; 1917 1928 if(!self.XMLHttpRequest){ 1918 var _22 2=[function(){1929 var _226=[function(){ 1919 1930 return new XMLHttpRequest(); 1920 1931 },function(){ … … 1927 1938 throw new MochiKit.Async.BrowserComplianceError("Browser does not support XMLHttpRequest"); 1928 1939 }]; 1929 for(var i=0;i<_22 2.length;i++){1930 var func=_22 2[i];1940 for(var i=0;i<_226.length;i++){ 1941 var func=_226[i]; 1931 1942 try{ 1932 1943 self.XMLHttpRequest=func; … … 1939 1950 return self.XMLHttpRequest(); 1940 1951 }; 1941 MochiKit.Async.sendXMLHttpRequest=function(req,_22 3){1942 if(typeof (_22 3)=="undefined"){1952 MochiKit.Async.sendXMLHttpRequest=function(req,_227){ 1953 if(typeof (_227)=="undefined"){ 1943 1954 send=null; 1944 1955 } 1945 var _22 4=function(){1956 var _228=function(){ 1946 1957 try{ 1947 1958 req.onreadystatechange=null; … … 1957 1968 req.abort(); 1958 1969 }; 1959 var d=new MochiKit.Async.Deferred(_22 4);1960 var _22 5=function(){1970 var d=new MochiKit.Async.Deferred(_228); 1971 var _229=function(){ 1961 1972 if(req.readyState==4){ 1962 1973 try{ … … 1971 1982 } 1972 1983 } 1973 var _2 26=null;1984 var _230=null; 1974 1985 try{ 1975 _2 26=req.status;1976 if(!_2 26&&MochiKit.Base.isNotEmpty(req.responseText)){1977 _2 26=304;1986 _230=req.status; 1987 if(!_230&&MochiKit.Base.isNotEmpty(req.responseText)){ 1988 _230=304; 1978 1989 } 1979 1990 } 1980 1991 catch(e){ 1981 1992 } 1982 if(_2 26==200||_226==304){1993 if(_230==200||_230==304){ 1983 1994 d.callback(req); 1984 1995 }else{ … … 1992 2003 }; 1993 2004 try{ 1994 req.onreadystatechange=_22 5;1995 req.send(_22 3);2005 req.onreadystatechange=_229; 2006 req.send(_227); 1996 2007 } 1997 2008 catch(e){ … … 2015 2026 return d; 2016 2027 }; 2017 MochiKit.Async.wait=function(_2 29,_230){2028 MochiKit.Async.wait=function(_233,_234){ 2018 2029 var d=new MochiKit.Async.Deferred(); 2019 2030 var bind=MochiKit.Base.bind; 2020 var _23 1=MochiKit.Base.partial;2021 if(typeof (_23 0)!="undefined"){2031 var _235=MochiKit.Base.partial; 2032 if(typeof (_234)!="undefined"){ 2022 2033 d.addCallback(function(){ 2023 return _23 0;2034 return _234; 2024 2035 }); 2025 2036 } 2026 var _23 2=setTimeout(bind(d.callback,d),Math.floor(_229*1000));2027 d.canceller=_23 1(clearTimeout,_232);2037 var _236=setTimeout(bind(d.callback,d),Math.floor(_233*1000)); 2038 d.canceller=_235(clearTimeout,_236); 2028 2039 return d; 2029 2040 }; 2030 MochiKit.Async.callLater=function(_23 3,func){2041 MochiKit.Async.callLater=function(_237,func){ 2031 2042 var m=MochiKit.Base; 2032 var _23 4=m.partial.apply(null,m.extend(null,arguments,1));2033 return MochiKit.Async.wait(_23 3).addCallback(function(res){2034 return _23 4();2043 var _238=m.partial.apply(null,m.extend(null,arguments,1)); 2044 return MochiKit.Async.wait(_237).addCallback(function(res){ 2045 return _238(); 2035 2046 }); 2036 2047 }; … … 2078 2089 MochiKit.DOM.EXPORT=["registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","updateNodeAttributes","appendChildNodes","replaceChildNodes","swapDOM","H1","H2","H3","BR","HR","LABEL","TEXTAREA","FORM","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","$","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","setDisplayForElement","hideElement","showElement","scrapeText"]; 2079 2090 MochiKit.DOM.EXPORT_OK=["domConverters"]; 2080 MochiKit.DOM.registerDOMConverter=function(name,_23 5,wrap,_237){2081 MochiKit.DOM.domConverters.register(name,_23 5,wrap,_237);2091 MochiKit.DOM.registerDOMConverter=function(name,_239,wrap,_241){ 2092 MochiKit.DOM.domConverters.register(name,_239,wrap,_241); 2082 2093 }; 2083 2094 MochiKit.DOM.coerceToDOM=function(node,ctx){ 2084 2095 var iter=MochiKit.Iter.iter; 2085 var _24 0=MochiKit.Iter.repeat;2096 var _244=MochiKit.Iter.repeat; 2086 2097 var imap=MochiKit.Iter.imap; 2087 var _24 2=MochiKit.DOM.domConverters;2088 var _24 3=MochiKit.DOM.coerceToDOM;2089 var _24 4=MochiKit.Base.NotFound;2098 var _246=MochiKit.DOM.domConverters; 2099 var _247=MochiKit.DOM.coerceToDOM; 2100 var _248=MochiKit.Base.NotFound; 2090 2101 while(true){ 2091 2102 if(typeof (node)=="undefined"||node==null){ … … 2109 2120 continue; 2110 2121 } 2111 var _24 5=null;2122 var _249=null; 2112 2123 try{ 2113 _24 5=iter(node);2124 _249=iter(node); 2114 2125 } 2115 2126 catch(e){ 2116 2127 } 2117 if(_24 5){2118 return imap(_24 3,_245,_240(ctx));2128 if(_249){ 2129 return imap(_247,_249,_244(ctx)); 2119 2130 } 2120 2131 try{ 2121 node=_24 2.match(node,ctx);2132 node=_246.match(node,ctx); 2122 2133 continue; 2123 2134 } 2124 2135 catch(e){ 2125 if(e!=_24 4){2136 if(e!=_248){ 2126 2137 throw e; 2127 2138 } … … 2131 2142 return undefined; 2132 2143 }; 2133 MochiKit.DOM.updateNodeAttributes=function(node,_2 46){2144 MochiKit.DOM.updateNodeAttributes=function(node,_250){ 2134 2145 var elem=node; 2135 2146 if(typeof (node)=="string"){ 2136 2147 elem=MochiKit.DOM.getElement(node); 2137 2148 } 2138 if(_2 46){2149 if(_250){ 2139 2150 if(MochiKit.DOM.attributeArray.compliant){ 2140 for(var k in _2 46){2141 var v=_2 46[k];2151 for(var k in _250){ 2152 var v=_250[k]; 2142 2153 if(k.substring(0,2)=="on"){ 2143 2154 if(typeof (v)=="string"){ … … 2146 2157 elem[k]=v; 2147 2158 }else{ 2148 elem.setAttribute(k,_2 46[k]);2149 } 2150 } 2151 }else{ 2152 var _2 47={"class":"className","checked":"defaultChecked"};2153 for(var k in _2 46){2154 var v=_2 46[k];2155 var _2 48=_247[k];2156 if(typeof (_2 48)=="string"){2157 elem[_2 48]=v;2159 elem.setAttribute(k,_250[k]); 2160 } 2161 } 2162 }else{ 2163 var _251={"class":"className","checked":"defaultChecked"}; 2164 for(var k in _250){ 2165 var v=_250[k]; 2166 var _252=_251[k]; 2167 if(typeof (_252)=="string"){ 2168 elem[_252]=v; 2158 2169 }else{ 2159 2170 if(k.substring(0,2)=="on"){ … … 2176 2187 elem=MochiKit.DOM.getElement(node); 2177 2188 } 2178 var _2 49=[MochiKit.DOM.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];2179 var _25 0=MochiKit.Iter.iextend;2180 while(_2 49.length){2181 var n=_2 49.shift();2189 var _253=[MochiKit.DOM.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)]; 2190 var _254=MochiKit.Iter.iextend; 2191 while(_253.length){ 2192 var n=_253.shift(); 2182 2193 if(typeof (n)=="undefined"||n==null){ 2183 2194 }else{ … … 2185 2196 elem.appendChild(n); 2186 2197 }else{ 2187 _25 0(_249,n);2198 _254(_253,n); 2188 2199 } 2189 2200 } … … 2197 2208 arguments[0]=elem; 2198 2209 } 2199 var _25 1;2200 while((_25 1=elem.firstChild)){2201 elem.removeChild(_25 1);2210 var _255; 2211 while((_255=elem.firstChild)){ 2212 elem.removeChild(_255); 2202 2213 } 2203 2214 if(arguments.length<2){ … … 2207 2218 } 2208 2219 }; 2209 MochiKit.DOM.createDOM=function(name,_25 2){2220 MochiKit.DOM.createDOM=function(name,_256){ 2210 2221 var elem; 2211 2222 if(typeof (name)=="string"){ … … 2214 2225 elem=name; 2215 2226 } 2216 if(_25 2){2217 MochiKit.DOM.updateNodeAttributes(elem,_25 2);2227 if(_256){ 2228 MochiKit.DOM.updateNodeAttributes(elem,_256); 2218 2229 } 2219 2230 if(arguments.length<=2){ … … 2229 2240 MochiKit.DOM.swapDOM=function(dest,src){ 2230 2241 dest=MochiKit.DOM.getElement(dest); 2231 var _2 56=dest.parentNode;2242 var _260=dest.parentNode; 2232 2243 if(src){ 2233 2244 src=MochiKit.DOM.getElement(src); 2234 _2 56.replaceChild(src,dest);2235 }else{ 2236 _2 56.removeChild(dest);2245 _260.replaceChild(src,dest); 2246 }else{ 2247 _260.removeChild(dest); 2237 2248 } 2238 2249 return src; … … 2245 2256 } 2246 2257 }; 2247 MochiKit.DOM.getElementsByTagAndClassName=function(_2 58,_259,_260){2248 if(typeof (_2 58)=="undefined"||_258==null){2249 _2 58="*";2250 } 2251 if(typeof (_26 0)=="undefined"||_260==null){2252 _26 0=document;2253 } 2254 _26 0=MochiKit.DOM.getElement(_260);2255 var _26 1=_260.getElementsByTagName(_258)||document.all;2256 if(typeof (_2 59)=="undefined"||_259==null){2257 return _26 1;2258 } 2259 var _26 2=[];2260 for(var i=0;i<_26 1.length;i++){2261 var _26 3=_261[i];2262 var _26 4=_263.className.split(" ");2263 for(var j=0;j<_26 4.length;j++){2264 if(_26 4[j]==_259){2265 _26 2.push(_263);2258 MochiKit.DOM.getElementsByTagAndClassName=function(_262,_263,_264){ 2259 if(typeof (_262)=="undefined"||_262==null){ 2260 _262="*"; 2261 } 2262 if(typeof (_264)=="undefined"||_264==null){ 2263 _264=document; 2264 } 2265 _264=MochiKit.DOM.getElement(_264); 2266 var _265=_264.getElementsByTagName(_262)||document.all; 2267 if(typeof (_263)=="undefined"||_263==null){ 2268 return _265; 2269 } 2270 var _266=[]; 2271 for(var i=0;i<_265.length;i++){ 2272 var _267=_265[i]; 2273 var _268=_267.className.split(" "); 2274 for(var j=0;j<_268.length;j++){ 2275 if(_268[j]==_263){ 2276 _266.push(_267); 2266 2277 break; 2267 2278 } 2268 2279 } 2269 2280 } 2270 return _26 2;2271 }; 2272 MochiKit.DOM.addToCallStack=function(_26 5,path,func,once){2273 var _2 68=_265[path];2274 var _2 69=_268;2275 if(!(typeof (_2 68)=="function"&&_268.callStack)){2276 var _2 69=function(){2277 var _27 0=_269.callStack;2278 for(var i=0;i<_27 0.length;i++){2279 if(_27 0[i].apply(this,arguments)===false){2281 return _266; 2282 }; 2283 MochiKit.DOM.addToCallStack=function(_269,path,func,once){ 2284 var _272=_269[path]; 2285 var _273=_272; 2286 if(!(typeof (_272)=="function"&&_272.callStack)){ 2287 var _273=function(){ 2288 var _274=_273.callStack; 2289 for(var i=0;i<_274.length;i++){ 2290 if(_274[i].apply(this,arguments)===false){ 2280 2291 break; 2281 2292 } … … 2283 2294 if(once){ 2284 2295 try{ 2285 _26 5[path]=null;2296 _269[path]=null; 2286 2297 } 2287 2298 catch(e){ … … 2289 2300 } 2290 2301 }; 2291 _2 69.callStack=[];2292 if(typeof (_2 68)=="function"){2293 _2 69.callStack.push(_268);2294 } 2295 _26 5[path]=_269;2296 } 2297 _2 69.callStack.push(func);2302 _273.callStack=[]; 2303 if(typeof (_272)=="function"){ 2304 _273.callStack.push(_272); 2305 } 2306 _269[path]=_273; 2307 } 2308 _273.callStack.push(func); 2298 2309 }; 2299 2310 MochiKit.DOM.addLoadEvent=function(func){ 2300 2311 MochiKit.DOM.addToCallStack(window,"onload",func,true); 2301 2312 }; 2302 MochiKit.DOM.focusOnLoad=function(_27 1){2313 MochiKit.DOM.focusOnLoad=function(_275){ 2303 2314 MochiKit.DOM.addLoadEvent(function(){ 2304 _27 1=MochiKit.DOM.getElement(_271);2305 if(_27 1){2306 _27 1.focus();2315 _275=MochiKit.DOM.getElement(_275); 2316 if(_275){ 2317 _275.focus(); 2307 2318 } 2308 2319 }); 2309 2320 }; 2310 MochiKit.DOM.setElementClass=function(_27 2,_273){2311 var obj=MochiKit.DOM.getElement(_27 2);2321 MochiKit.DOM.setElementClass=function(_276,_277){ 2322 var obj=MochiKit.DOM.getElement(_276); 2312 2323 if(MochiKit.DOM.attributeArray.compliant){ 2313 obj.setAttribute("class",_27 3);2314 }else{ 2315 obj.setAttribute("className",_27 3);2316 } 2317 }; 2318 MochiKit.DOM.toggleElementClass=function(_27 4){2319 var _27 5=MochiKit.DOM.getElement;2320 var _2 76=MochiKit.DOM.addElementClass;2321 var _2 77=MochiKit.DOM.removeElementClass;2324 obj.setAttribute("class",_277); 2325 }else{ 2326 obj.setAttribute("className",_277); 2327 } 2328 }; 2329 MochiKit.DOM.toggleElementClass=function(_278){ 2330 var _279=MochiKit.DOM.getElement; 2331 var _280=MochiKit.DOM.addElementClass; 2332 var _281=MochiKit.DOM.removeElementClass; 2322 2333 for(var i=1;i<arguments.length;i++){ 2323 var obj=_275(arguments[i]); 2324 if(!_276(obj,_274)){ 2325 _277(obj,_274); 2326 } 2327 } 2328 }; 2329 MochiKit.DOM.addElementClass=function(_278,_279){ 2330 var obj=MochiKit.DOM.getElement(_278); 2331 var cls=obj.className; 2332 if(cls.length==0){ 2333 MochiKit.DOM.setElementClass(obj,_279); 2334 return true; 2335 } 2336 if(cls==_279){ 2337 return false; 2338 } 2339 var _281=obj.className.split(" "); 2340 for(var i=0;i<_281.length;i++){ 2341 if(_281[i]==_279){ 2342 return false; 2343 } 2344 } 2345 MochiKit.DOM.setElementClass(obj,cls+" "+_279); 2346 return true; 2347 }; 2348 MochiKit.DOM.removeElementClass=function(_282,_283){ 2334 var obj=_279(arguments[i]); 2335 if(!_280(obj,_278)){ 2336 _281(obj,_278); 2337 } 2338 } 2339 }; 2340 MochiKit.DOM.addElementClass=function(_282,_283){ 2349 2341 var obj=MochiKit.DOM.getElement(_282); 2350 2342 var cls=obj.className; 2351 2343 if(cls.length==0){ 2344 MochiKit.DOM.setElementClass(obj,_283); 2345 return true; 2346 } 2347 if(cls==_283){ 2352 2348 return false; 2353 2349 } 2354 if(cls==_283){ 2350 var _285=obj.className.split(" "); 2351 for(var i=0;i<_285.length;i++){ 2352 if(_285[i]==_283){ 2353 return false; 2354 } 2355 } 2356 MochiKit.DOM.setElementClass(obj,cls+" "+_283); 2357 return true; 2358 }; 2359 MochiKit.DOM.removeElementClass=function(_286,_287){ 2360 var obj=MochiKit.DOM.getElement(_286); 2361 var cls=obj.className; 2362 if(cls.length==0){ 2363 return false; 2364 } 2365 if(cls==_287){ 2355 2366 MochiKit.DOM.setElementClass(obj,""); 2356 2367 return true; 2357 2368 } 2358 var _28 4=obj.className.split(" ");2359 for(var i=0;i<_28 4.length;i++){2360 if(_28 4[i]==_283){2361 _28 4.splice(i,1);2362 MochiKit.DOM.setElementClass(obj,_28 4.join(" "));2369 var _288=obj.className.split(" "); 2370 for(var i=0;i<_288.length;i++){ 2371 if(_288[i]==_287){ 2372 _288.splice(i,1); 2373 MochiKit.DOM.setElementClass(obj,_288.join(" ")); 2363 2374 return true; 2364 2375 } … … 2366 2377 return false; 2367 2378 }; 2368 MochiKit.DOM.swapElementClass=function(_28 5,_286,_287){2369 var obj=MochiKit.DOM.getElement(_28 5);2370 var res=MochiKit.DOM.removeElementClass(obj,_2 86);2379 MochiKit.DOM.swapElementClass=function(_289,_290,_291){ 2380 var obj=MochiKit.DOM.getElement(_289); 2381 var res=MochiKit.DOM.removeElementClass(obj,_290); 2371 2382 if(res){ 2372 MochiKit.DOM.addElementClass(obj,_2 87);2383 MochiKit.DOM.addElementClass(obj,_291); 2373 2384 } 2374 2385 return res; 2375 2386 }; 2376 MochiKit.DOM.hasElementClass=function(_2 88,_289){2377 var obj=MochiKit.DOM.getElement(_2 88);2378 var _29 0=obj.className.split(" ");2387 MochiKit.DOM.hasElementClass=function(_292,_293){ 2388 var obj=MochiKit.DOM.getElement(_292); 2389 var _294=obj.className.split(" "); 2379 2390 for(var i=1;i<arguments.length;i++){ 2380 2391 var good=false; 2381 for(var j=0;j<_29 0.length;j++){2382 if(_29 0[j]==arguments[i]){2392 for(var j=0;j<_294.length;j++){ 2393 if(_294[j]==arguments[i]){ 2383 2394 good=true; 2384 2395 break; … … 2393 2404 MochiKit.DOM.escapeHTML=function(s){ 2394 2405 var buf=[]; 2395 var _29 3=MochiKit.DOM._TRANSTABLE;2406 var _297=MochiKit.DOM._TRANSTABLE; 2396 2407 for(var i=0;i<s.length;i++){ 2397 2408 var c=s.charAt(i); 2398 var o=_29 3[c];2409 var o=_297[c]; 2399 2410 if(o){ 2400 2411 c=o; … … 2411 2422 lst=[]; 2412 2423 } 2413 var _ 296=[dom];2414 var _ 297=MochiKit.DOM.escapeHTML;2415 var _ 298=MochiKit.DOM.attributeArray;2416 while(_ 296.length){2417 dom=_ 296.pop();2424 var _300=[dom]; 2425 var _301=MochiKit.DOM.escapeHTML; 2426 var _302=MochiKit.DOM.attributeArray; 2427 while(_300.length){ 2428 dom=_300.pop(); 2418 2429 if(typeof (dom)=="string"){ 2419 2430 lst.push(dom); … … 2421 2432 if(dom.nodeType==1){ 2422 2433 lst.push("<"+dom.nodeName.toLowerCase()); 2423 var _ 299=[];2424 var _30 0=_298(dom);2425 for(var i=0;i<_30 0.length;i++){2426 var a=_30 0[i];2427 _ 299.push([" ",a.name,"=\"",_297(a.value),"\""]);2428 } 2429 _ 299.sort();2430 for(var i=0;i<_ 299.length;i++){2431 var _30 1=_299[i];2432 for(var j=0;j<_30 1.length;j++){2433 lst.push(_30 1[j]);2434 var _303=[]; 2435 var _304=_302(dom); 2436 for(var i=0;i<_304.length;i++){ 2437 var a=_304[i]; 2438 _303.push([" ",a.name,"=\"",_301(a.value),"\""]); 2439 } 2440 _303.sort(); 2441 for(var i=0;i<_303.length;i++){ 2442 var _305=_303[i]; 2443 for(var j=0;j<_305.length;j++){ 2444 lst.push(_305[j]); 2434 2445 } 2435 2446 } 2436 2447 if(dom.hasChildNodes()){ 2437 2448 lst.push(">"); 2438 _ 296.push("</"+dom.nodeName.toLowerCase()+">");2439 var _30 2=dom.childNodes;2440 for(var i=_30 2.length-1;i>=0;i--){2441 _ 296.push(_302[i]);2449 _300.push("</"+dom.nodeName.toLowerCase()+">"); 2450 var _306=dom.childNodes; 2451 for(var i=_306.length-1;i>=0;i--){ 2452 _300.push(_306[i]); 2442 2453 } 2443 2454 }else{ … … 2446 2457 }else{ 2447 2458 if(dom.nodeType==3){ 2448 lst.push(_ 297(dom.nodeValue));2459 lst.push(_301(dom.nodeValue)); 2449 2460 } 2450 2461 } … … 2453 2464 return lst; 2454 2465 }; 2455 MochiKit.DOM.setDisplayForElement=function(_30 3,_304){2456 var _30 5=MochiKit.Base.extend(null,arguments,1);2457 MochiKit.Iter.forEach(MochiKit.Base.filter(null,MochiKit.Base.map(getElement,_30 5)),function(_304){2458 _30 4.style.display=_303;2466 MochiKit.DOM.setDisplayForElement=function(_307,_308){ 2467 var _309=MochiKit.Base.extend(null,arguments,1); 2468 MochiKit.Iter.forEach(MochiKit.Base.filter(null,MochiKit.Base.map(getElement,_309)),function(_308){ 2469 _308.style.display=_307; 2459 2470 }); 2460 2471 }; 2461 MochiKit.DOM.scrapeText=function(node,_3 06){2472 MochiKit.DOM.scrapeText=function(node,_310){ 2462 2473 var rval=[]; 2463 2474 MochiKit.Base.nodeWalk(node,function(node){ 2464 var _3 07=node.nodeValue;2465 if(typeof (_3 07)=="string"){2466 rval.push(_3 07);2475 var _311=node.nodeValue; 2476 if(typeof (_311)=="string"){ 2477 rval.push(_311); 2467 2478 } 2468 2479 return node.childNodes; 2469 2480 }); 2470 if(_3 06){2481 if(_310){ 2471 2482 return rval; 2472 2483 }else{ … … 2476 2487 MochiKit.DOM.__new__=function(){ 2477 2488 this.domConverters=new MochiKit.Base.AdapterRegistry(); 2478 var _3 08=document.createElement("span");2479 var _3 09;2480 if(_3 08.attributes.length>0){2481 var _31 0=MochiKit.Base.filter;2482 _3 09=function(node){2483 return _31 0(_309.ignoreAttrFilter,node.attributes);2484 }; 2485 _3 09.ignoreAttr={};2486 MochiKit.Iter.forEach(_3 08.attributes,function(a){2487 _3 09.ignoreAttr[a.name]=a.value;2489 var _312=document.createElement("span"); 2490 var _313; 2491 if(_312.attributes.length>0){ 2492 var _314=MochiKit.Base.filter; 2493 _313=function(node){ 2494 return _314(_313.ignoreAttrFilter,node.attributes); 2495 }; 2496 _313.ignoreAttr={}; 2497 MochiKit.Iter.forEach(_312.attributes,function(a){ 2498 _313.ignoreAttr[a.name]=a.value; 2488 2499 }); 2489 _3 09.ignoreAttrFilter=function(a){2490 return (_3 09.ignoreAttr[a.name]!=a.value);2491 }; 2492 _3 09.compliant=false;2493 }else{ 2494 _3 09=function(node){2500 _313.ignoreAttrFilter=function(a){ 2501 return (_313.ignoreAttr[a.name]!=a.value); 2502 }; 2503 _313.compliant=false; 2504 }else{ 2505 _313=function(node){ 2495 2506 return node.attributes; 2496 2507 }; 2497 _3 09.compliant=true;2498 } 2499 this.attributeArray=_3 09;2500 var _31 1=this.createDOMFunc;2501 this.UL=_31 1("ul");2502 this.OL=_31 1("ol");2503 this.LI=_31 1("li");2504 this.TD=_31 1("td");2505 this.TR=_31 1("tr");2506 this.TBODY=_31 1("tbody");2507 this.THEAD=_31 1("thead");2508 this.TFOOT=_31 1("tfoot");2509 this.TABLE=_31 1("table");2510 this.TH=_31 1("th");2511 this.INPUT=_31 1("input");2512 this.SPAN=_31 1("span");2513 this.A=_31 1("a");2514 this.DIV=_31 1("div");2515 this.IMG=_31 1("img");2516 this.H1=_31 1("h1");2517 this.H2=_31 1("h2");2518 this.H3=_31 1("h3");2519 this.BR=_31 1("br");2520 this.HR=_31 1("hr");2521 this.LABEL=_31 1("label");2522 this.TEXTAREA=_31 1("textarea");2523 this.FORM=_31 1("form");2524 this.P=_31 1("p");2508 _313.compliant=true; 2509 } 2510 this.attributeArray=_313; 2511 var _315=this.createDOMFunc; 2512 this.UL=_315("ul"); 2513 this.OL=_315("ol"); 2514 this.LI=_315("li"); 2515 this.TD=_315("td"); 2516 this.TR=_315("tr"); 2517 this.TBODY=_315("tbody"); 2518 this.THEAD=_315("thead"); 2519 this.TFOOT=_315("tfoot"); 2520 this.TABLE=_315("table"); 2521 this.TH=_315("th"); 2522 this.INPUT=_315("input"); 2523 this.SPAN=_315("span"); 2524 this.A=_315("a"); 2525 this.DIV=_315("div"); 2526 this.IMG=_315("img"); 2527 this.H1=_315("h1"); 2528 this.H2=_315("h2"); 2529 this.H3=_315("h3"); 2530 this.BR=_315("br"); 2531 this.HR=_315("hr"); 2532 this.LABEL=_315("label"); 2533 this.TEXTAREA=_315("textarea"); 2534 this.FORM=_315("form"); 2535 this.P=_315("p"); 2525 2536 this._TRANSTABLE={"<":"<",">":">","&":"&","'":"'","\"":"""}; 2526 var _31 2=MochiKit.Base.partial;2527 this.hideElement=_31 2(this.setDisplayForElement,"none");2528 this.showElement=_31 2(this.setDisplayForElement,"block");2537 var _316=MochiKit.Base.partial; 2538 this.hideElement=_316(this.setDisplayForElement,"none"); 2539 this.showElement=_316(this.setDisplayForElement,"block"); 2529 2540 this.$=this.getElement; 2530 2541 this.EXPORT_TAGS={":common":this.EXPORT,":all":MochiKit.Base.concat(this.EXPORT,this.EXPORT_OK)}; … … 2568 2579 return this.__repr__(); 2569 2580 }; 2570 MochiKit.Visual.clampColorComponent=function(v,_31 3){2571 v*=_31 3;2581 MochiKit.Visual.clampColorComponent=function(v,_317){ 2582 v*=_317; 2572 2583 if(v<0){ 2573 2584 return 0; 2574 2585 }else{ 2575 if(v>_31 3){2576 return _31 3;2586 if(v>_317){ 2587 return _317; 2577 2588 }else{ 2578 2589 return v; … … 2580 2591 } 2581 2592 }; 2582 MochiKit.Visual.Color=function(red,_31 5,blue,_317){2583 if(typeof (_3 17)=="undefined"||_317==null){2584 _3 17=1;2585 } 2586 this.rgb={"r":red,"g":_31 5,"b":blue,"a":_317};2587 }; 2588 MochiKit.Visual.Color.prototype={"__class__":MochiKit.Visual.Color,"colorWithAlpha":function(_3 18){2593 MochiKit.Visual.Color=function(red,_319,blue,_321){ 2594 if(typeof (_321)=="undefined"||_321==null){ 2595 _321=1; 2596 } 2597 this.rgb={"r":red,"g":_319,"b":blue,"a":_321}; 2598 }; 2599 MochiKit.Visual.Color.prototype={"__class__":MochiKit.Visual.Color,"colorWithAlpha":function(_322){ 2589 2600 var rgb=this.rgb; 2590 2601 var m=MochiKit.Visual; 2591 return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_3 18);2602 return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,_322); 2592 2603 },"colorWithHue":function(hue){ 2593 2604 var hsl=this.asHSL(); … … 2595 2606 var m=MochiKit.Visual; 2596 2607 return m.Color.fromHSL(hsl); 2597 },"colorWithSaturation":function(_32 2){2608 },"colorWithSaturation":function(_326){ 2598 2609 var hsl=this.asHSL(); 2599 hsl.s=_32 2;2610 hsl.s=_326; 2600 2611 var m=MochiKit.Visual; 2601 2612 return m.Color.fromHSL(hsl); 2602 },"colorWithLightness":function(_32 3){2613 },"colorWithLightness":function(_327){ 2603 2614 var hsl=this.asHSL(); 2604 hsl.l=_32 3;2615 hsl.l=_327; 2605 2616 var m=MochiKit.Visual; 2606 2617 return m.Color.fromHSL(hsl); 2607 },"darkerColorWithLevel":function(_32 4){2618 },"darkerColorWithLevel":function(_328){ 2608 2619 var hsl=this.asHSL(); 2609 hsl.l=Math.max(hsl.l-_32 4,0);2620 hsl.l=Math.max(hsl.l-_328,0); 2610 2621 var m=MochiKit.Visual; 2611 2622 return m.Color.fromHSL(hsl); 2612 },"lighterColorWithLevel":function(_32 5){2623 },"lighterColorWithLevel":function(_329){ 2613 2624 var hsl=this.asHSL(); 2614 Math.min(hsl.l+_32 5,1);2625 Math.min(hsl.l+_329,1); 2615 2626 var m=MochiKit.Visual; 2616 2627 return m.Color.fromHSL(hsl); 2617 },"blendedColor":function(_3 26,_327){2618 if(typeof (_3 27)=="undefined"||_327==null){2619 _3 27=0.5;2620 } 2621 var sf=1-_3 27;2628 },"blendedColor":function(_330,_331){ 2629 if(typeof (_331)=="undefined"||_331==null){ 2630 _331=0.5; 2631 } 2632 var sf=1-_331; 2622 2633 var s=this.rgb; 2623 var d=_3 26.rgb;2624 var df=_3 27;2634 var d=_330.rgb; 2635 var df=_331; 2625 2636 return MochiKit.Visual.Color.fromRGB((s.r*sf)+(d.r*df),(s.g*sf)+(d.g*df),(s.b*sf)+(d.b*df),(s.a*sf)+(d.a*df)); 2626 },"compareRGB":function(_33 0){2637 },"compareRGB":function(_334){ 2627 2638 var a=this.asRGB(); 2628 var b=_33 0.asRGB();2639 var b=_334.asRGB(); 2629 2640 return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a]); 2630 2641 },"isLight":function(){ … … 2700 2711 return this.__class__.NAME+"("+col.join(", ")+")"; 2701 2712 }}; 2702 MochiKit.Visual.Color.fromRGB=function(red,_33 5,blue,_336){2703 var _3 37=MochiKit.Visual.Color;2713 MochiKit.Visual.Color.fromRGB=function(red,_339,blue,_340){ 2714 var _341=MochiKit.Visual.Color; 2704 2715 if(arguments.length==1){ 2705 2716 var rgb=red; 2706 2717 red=rgb.r; 2707 _33 5=rgb.g;2718 _339=rgb.g; 2708 2719 blue=rgb.b; 2709 2720 if(typeof (rgb.a)=="undefined"){ 2710 _3 36=undefined;2711 }else{ 2712 _3 36=rgb.a;2713 } 2714 } 2715 return new _3 37(red,_335,blue,_336);2716 }; 2717 MochiKit.Visual.Color.fromHSL=function(hue,_3 38,_339,_340){2721 _340=undefined; 2722 }else{ 2723 _340=rgb.a; 2724 } 2725 } 2726 return new _341(red,_339,blue,_340); 2727 }; 2728 MochiKit.Visual.Color.fromHSL=function(hue,_342,_343,_344){ 2718 2729 var m=MochiKit.Visual; 2719 2730 return m.Color.fromRGB(m.hslToRGB.apply(m,arguments)); 2720 2731 }; 2721 MochiKit.Visual.Color.fromHSV=function(hue,_34 1,_342,_343){2732 MochiKit.Visual.Color.fromHSV=function(hue,_345,_346,_347){ 2722 2733 var m=MochiKit.Visual; 2723 2734 return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments)); 2724 2735 }; 2725 2736 MochiKit.Visual.Color.fromName=function(name){ 2726 var _34 4=MochiKit.Visual.Color;2727 var _34 5=_344._namedColors[name.toLowerCase()];2728 if(typeof (_34 5)=="string"){2729 return _34 4.fromHexString(_345);2737 var _348=MochiKit.Visual.Color; 2738 var _349=_348._namedColors[name.toLowerCase()]; 2739 if(typeof (_349)=="string"){ 2740 return _348.fromHexString(_349); 2730 2741 }else{ 2731 2742 if(name=="transparent"){ 2732 return _34 4.transparentColor();2743 return _348.transparentColor();
