text: (function(t){var e=["./base","./pool/dom","q"];String.prototype.ucfirst||e.push("./polyfill/string/ucfirst"),window.qoopido.registerSingleton("support",t,e)})(function(t,e,r,n,o,i,s){"use strict";var l=t.q||o.Q,u=RegExp("-([a-z])","gi"),a=RegExp("^(Moz|WebKit|Khtml|ms|O|Icab)(?=[A-Z])"),c=function(){return arguments[1].ucfirst()},p={prefix:null,method:{},property:{},css:{},element:{},promises:{prefix:null,method:{},property:{},css:{},test:{}}};return t.base.extend({test:{},testMultiple:function(){var t,e=[],r=0;for(r;(t=arguments[r])!==s;r++)switch(typeof t){case"string":e.push(this.test[t]());break;case"boolean":var n=l.defer();t?n.resolve():n.reject(),e.push(n.promise);break;default:e.push(t)}return l.all(e)},getPrefix:function(){var t,r=p.prefix||null;if(null===r){var n=e.pool.dom.obtain("div"),o=n.style;r=!1;for(t in o)a.test(t)&&(r=t.match(a)[0]);r===!1&&"WebkitOpacity"in o&&(r="WebKit"),r===!1&&"KhtmlOpacity"in o&&(r="Khtml"),r=p.prefix=r===!1?!1:{method:r,properties:[r.toLowerCase(),r.toLowerCase().ucfirst()]},n.dispose()}return r},getMethod:function(t,e){e=e||o;var r=e.tagName,n=p.method[r]=p.method[r]||{},i=n[t]=p.method[r][t]||null;if(null===i){i=!1;var l,u,a=0,c=t.ucfirst(),f=this.getPrefix();for(l=f!==!1?(t+" "+f.method+c+" "+f.properties.join(c+" ")+c).split(" "):[t],a;(u=l[a])!==s;a++)if(e[u]!==s&&("function"==typeof e[u]||"object"==typeof e[u])){i=u;break}p.method[r][t]=i}return i},getProperty:function(t,e){e=e||o;var r=e.tagName,n=p.property[r]=p.property[r]||{},i=n[t]=p.property[r][t]||null;if(null===i){i=!1;var l,u,a=0,c=t.ucfirst(),f=this.getPrefix();for(l=f!==!1?(t+" "+f.properties.join(c+" ")+c).split(" "):[t],a;(u=l[a])!==s;a++)if(e[u]!==s){i=u;break}p.property[r][t]=i}return i},getCssProperty:function(t){t=t.replace(u,c);var r=p.css[t]||null;if(null===r){r=!1;var n,o=0,i=e.pool.dom.obtain("div"),l=t.ucfirst(),a=(this.getPrefix()||{properties:[]}).properties,f=(t+" "+a.join(l+" ")+l).split(" ");for(o;(n=f[o])!==s;o++)if(i.style[n]!==s){r=n;break}p.css[t]=r,i.dispose()}return r},supportsPrefix:function(){return!!this.getPrefix()},supportsMethod:function(t,e){return!!this.getMethod(t,e)},supportsProperty:function(t,e){return!!this.getProperty(t,e)},supportsCssProperty:function(t){return!!this.getCssProperty(t)},testPrefix:function(){var t=p.promises.prefix;if(null===t){var e=l.defer(),r=this.getPrefix();r?e.resolve(r):e.reject(),t=p.promises.prefix=e.promise}return t},testMethod:function(t,e){e=e||o;var r=e.tagName,n=p.promises.method[r]=p.promises.method[r]||{},i=n[t]=p.promises.method[r][t]||null;if(null===i){var s=l.defer(),u=this.getMethod(t,e);u?s.resolve(u):s.reject(),i=p.promises.method[r][t]=s.promise}return i},testProperty:function(t,e){e=e||o;var r=e.tagName,n=p.promises.property[r]=p.promises.property[r]||{},i=n[t]=p.promises.property[r][t]||null;if(null===i){var s=l.defer(),u=this.getProperty(t,e);u?s.resolve(u):s.reject(),i=p.promises.property[r][t]=s.promise}return i},testCssProperty:function(t){var e=p.promises.css[t]||null;if(null===e){var r=l.defer(),n=this.getCssProperty(t);n?r.resolve(n):r.reject(),e=p.promises.css[t]=r.promise}return e},addTest:function(t,e){return this.test[t]=function(){var r=p.promises.test[t]||null;if(null===r){var n=l.defer(),o=Array.prototype.slice.call(arguments);o.splice(0,0,n),e.apply(null,o),r=p.promises.test[t]=n.promise}return r}}})});