/*!
- * Ext JS Library 3.1.0
- * Copyright(c) 2006-2009 Ext JS, LLC
+ * Ext JS Library 3.1.1
+ * Copyright(c) 2006-2010 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
*/
* The version of the framework
* @type String
*/
- version : '3.1.0'
+ version : '3.1.1'
};
/**
DOC = document,
isStrict = DOC.compatMode == "CSS1Compat",
isOpera = check(/opera/),
- isChrome = check(/chrome/),
+ isChrome = check(/\bchrome\b/),
isWebKit = check(/webkit/),
isSafari = !isChrome && check(/safari/),
isSafari2 = isSafari && check(/applewebkit\/4/), // unique to Safari 2
* @return {String} The generated Id.
*/
id : function(el, prefix){
- return (el = Ext.getDom(el) || {}).id = el.id || (prefix || "ext-gen") + (++idSeed);
+ el = Ext.getDom(el, true) || {};
+ if (!el.id) {
+ el.id = (prefix || "ext-gen") + (++idSeed);
+ }
+ return el.id;
},
/**
}
//NodeList has an item and length property
//IXMLDOMNodeList has nextNode method, needs to be checked first.
- return ((v.nextNode || v.item) && Ext.isNumber(v.length));
+ return ((typeof v.nextNode != 'undefined' || v.item) && Ext.isNumber(v.length));
},
/**
/**
* Return the dom node for the passed String (id), dom node, or Ext.Element.
+ * Optional 'strict' flag is needed for IE since it can return 'name' and
+ * 'id' elements by using getElementById.
* Here are some examples:
* <pre><code>
// gets dom node based on id
* @param {Mixed} el
* @return HTMLElement
*/
- getDom : function(el){
+ getDom : function(el, strict){
if(!el || !DOC){
return null;
}
- return el.dom ? el.dom : (Ext.isString(el) ? DOC.getElementById(el) : el);
+ if (el.dom){
+ return el.dom;
+ } else {
+ if (Ext.isString(el)) {
+ var e = DOC.getElementById(el);
+ // IE returns elements with the 'name' and 'id' attribute.
+ // we do a strict check to return the element with only the id attribute
+ if (e && isIE && strict) {
+ if (el == e.getAttribute('id')) {
+ return e;
+ } else {
+ return null;
+ }
+ }
+ return e;
+ } else {
+ return el;
+ }
+ }
},
/**