var isStrict = document.compatMode == "CSS1Compat",
isOpera = ua.indexOf("opera") > -1,
isSafari = (/webkit|khtml/).test(ua),
+ isFirefox = ua.indexOf("firefox") > -1,
isIE = ua.indexOf("msie") > -1,
isIE7 = ua.indexOf("msie 7") > -1,
+ isIE11 = /trident.*rv\:11\./.test(ua),
isGecko = !isSafari && ua.indexOf("gecko") > -1,
isBorderBox = isIE && !isStrict,
isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
isLinux = (ua.indexOf("linux") != -1),
isSecure = window.location.href.toLowerCase().indexOf("https") === 0,
- isTouch = 'ontouchstart' in window || window.DocumentTouch && document instanceof DocumentTouch;
+ isIOS = /iphone|ipad/.test(ua),
+ isTouch = (function() {
+ try {
+ document.createEvent("TouchEvent");
+ return true;
+ } catch (e) {
+ return false;
+ }
+
+ })();
// remove css image flicker
if(isIE && !isIE7){
try{
return c;
}
if (ns[c.xtype]) {
- if (Roo.debug) Roo.log("Roo.Factory(" + c.xtype + ")");
+ if (Roo.debug) { Roo.log("Roo.Factory(" + c.xtype + ")"); }
var ret = new ns[c.xtype](c);
ret.xns = false;
return ret;
/** @type Boolean */
isSafari : isSafari,
/** @type Boolean */
+ isFirefox : isFirefox,
+ /** @type Boolean */
isIE : isIE,
/** @type Boolean */
isIE7 : isIE7,
/** @type Boolean */
+ isIE11 : isIE11,
+ /** @type Boolean */
isGecko : isGecko,
/** @type Boolean */
isBorderBox : isBorderBox,
/** @type Boolean */
isMac : isMac,
/** @type Boolean */
+ isIOS : isIOS,
+ /** @type Boolean */
isTouch : isTouch,
/**
*/
Roo.applyIf(Array.prototype, {
/**
+ *
* Checks whether or not the specified object exists in the array.
* @param {Object} o The object to check for
* @return {Number} The index of o in the array (or -1 if it is not found)
*/
indexOf : function(o){
for (var i = 0, len = this.length; i < len; i++){
- if(this[i] == o) return i;
+ if(this[i] == o) { return i; }
}
return -1;
},
map : function(fun )
{
var len = this.length >>> 0;
- if (typeof fun != "function")
+ if (typeof fun != "function") {
throw new TypeError();
-
+ }
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
- if (i in this)
+ if (i in this) {
res[i] = fun.call(thisp, this[i], i, this);
+ }
}
return res;
});
- /*
+
+/*
* Based on:
* Ext JS Library 1.1.1
* Copyright(c) 2006-2007, Ext JS, LLC.
/**
* @private
*/
+
Date.createParser = function(format) {
var funcName = "parse" + Date.parseFunctions.count++;
var regexNum = Date.parseRegexes.length;
*/
Date.prototype.add = function(interval, value){
var d = this.clone();
- if (!interval || value === 0) return d;
+ if (!interval || value === 0) { return d; }
switch(interval.toLowerCase()){
case Date.MILLI:
d.setMilliseconds(this.getMilliseconds() + value);
}
b += "<" + o.tag;
for(var attr in o){
- if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") continue;
+ if(attr == "tag" || attr == "children" || attr == "cn" || attr == "html" || typeof o[attr] == "function") { continue; }
if(attr == "style"){
var s = o["style"];
if(typeof s == "function"){
for(var attr in o){
if(attr == "tag" || attr == "ns" ||attr == "xmlns" ||attr == "children" || attr == "cn" || attr == "html" ||
- attr == "style" || typeof o[attr] == "function") continue;
+ attr == "style" || typeof o[attr] == "function") { continue; }
if(attr=="cls" && Roo.isIE){
el.className = o["cls"];
}else{
- if(useSet) el.setAttribute(attr=="cls" ? 'class' : attr, o[attr]);
- else el[attr] = o[attr];
+ if(useSet) { el.setAttribute(attr=="cls" ? 'class' : attr, o[attr]);}
+ else {
+ el[attr] = o[attr];
+ }
}
}
Roo.DomHelper.applyStyles(el, o.style);
if(Roo.isLinux){
cls.push("roo-linux");
}
+ if(Roo.isIOS){
+ cls.push("roo-ios");
+ }
+ if(Roo.isTouch){
+ cls.push("roo-touch");
+ }
if(Roo.isBorderBox){
cls.push('roo-border-box');
}
* @type String
*/
defaultUnit : "px",
+
/**
* Sets the element's visibility mode. When setVisible() is called it
* will use this to determine whether to set the visibility or the display property.
*/
enableDisplayMode : function(display){
this.setVisibilityMode(El.DISPLAY);
- if(typeof display != "undefined") this.originalDisplay = display;
+ if(typeof display != "undefined") { this.originalDisplay = display; }
return this;
},
this.setHeight(oldHeight); // restore original height
this.setHeight(height, animate, duration, function(){
this.unclip();
- if(typeof onComplete == "function") onComplete();
+ if(typeof onComplete == "function") { onComplete(); }
}.createDelegate(this), easing);
}
}.createDelegate(this), 0);
// we wander
var z = 0;
- var dom = this.dom
+ var dom = this.dom;
while (dom && dom.style) {
if (!isNaN(parseInt(dom.style.zIndex))) {
z = Math.max(z, parseInt(dom.style.zIndex));
}
var mm = this._maskMsg;
mm.dom.className = msgCls ? "roo-el-mask-msg " + msgCls : "roo-el-mask-msg";
- mm.dom.firstChild.innerHTML = msg;
+ if (mm.dom.firstChild) { // weird IE issue?
+ mm.dom.firstChild.innerHTML = msg;
+ }
mm.setDisplayed(true);
mm.center(this);
mm.setStyle('z-index', z + 102);
var el = this.dom;
useSet = typeof useSet == 'undefined' ? (el.setAttribute ? true : false) : useSet;
for(var attr in o){
- if(attr == "style" || typeof o[attr] == "function") continue;
+ if(attr == "style" || typeof o[attr] == "function") { continue; }
if(attr=="cls"){
el.className = o["cls"];
}else{
- if(useSet) el.setAttribute(attr, o[attr]);
- else el[attr] = o[attr];
+ if(useSet) {
+ el.setAttribute(attr, o[attr]);
+ } else {
+ el[attr] = o[attr];
+ }
}
}
if(o.style){
Roo.CompositeElement.prototype = {
isComposite: true,
addElements : function(els){
- if(!els) return this;
+ if(!els) {
+ return this;
+ }
if(typeof els == "string"){
els = Roo.Element.selectorFunction(els);
}
indexOf : function(o){
if(!this.items.indexOf){
for(var i = 0, len = this.items.length; i < len; i++){
- if(this.items[i] == o) return i;
+ if(this.items[i] == o) {
+ return i;
+ }
}
return -1;
}else{
indexOfKey : function(key){
if(!this.keys.indexOf){
for(var i = 0, len = this.keys.length; i < len; i++){
- if(this.keys[i] == key) return i;
+ if(this.keys[i] == key) {
+ return i;
+ }
}
return -1;
}else{
decodeValue : function(cookie){
var re = /^(a|n|d|b|s|o)\:(.*)$/;
var matches = re.exec(unescape(cookie));
- if(!matches || !matches[1]) return; // non state cookie
+ if(!matches || !matches[1]) {
+ return; // non state cookie
+ }
var type = matches[1];
var v = matches[2];
switch(type){
var flat = "";
for(var i = 0, len = v.length; i < len; i++){
flat += this.encodeValue(v[i]);
- if(i != len-1) flat += "^";
+ if(i != len-1) {
+ flat += "^";
+ }
}
enc = "a:" + flat;
}else if(typeof v == "object"){
destroy : true
});
if(!this.id){
- this.id = "ext-comp-" + (++Roo.Component.AUTO_ID);
+ this.id = "roo-comp-" + (++Roo.Component.AUTO_ID);
}
Roo.ComponentMgr.register(this);
Roo.Component.superclass.constructor.call(this);
* Whether the component can move the Dom node when rendering (defaults to true).
*/
allowDomMove : true,
- /** @cfg {String} hideMode
+ /** @cfg {String} hideMode (display|visibility)
* How this component should hidden. Supported values are
* "visibility" (css visibility), "offsets" (negative offset position) and
* "display" (css display) - defaults to "display".