var browserName = navigator.userAgent.toLowerCase();
var BitA = BitA || {};
var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
if (typeof target === "boolean") {
deep = target;
target = arguments[1] || {};
i = 2;
}
if (typeof target !== "object" && typeof target != "function") {
target = {};
}
if (length === i) {
target = this;
--i;
}
for (; i < length; i++) {
if ((options = arguments[i]) != null) {
for (var name in options) {
src = target[name];
copy = options[name];
if (target === copy) {
continue;
}
if (deep && copy && (copy instanceof Object || (copyIsArray = copy instanceof Array)) && !(copy instanceof Function)) {
if (copyIsArray) {
copyIsArray = false;
clone = src && src instanceof Array ? src : [];
} else {
clone = src && src instanceof Object ? src : {};
}
target[name] = BitA.Tools.extend(deep, clone, copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
},//格式化
format: function () {
if (arguments.length == 0)
return null;
var str = arguments[0];
var obj = arguments[1];
for (var key in obj) {
var re = new RegExp('\\{' + key + '\\}', 'gi');
str = str.replace(re, obj[key]);
}
return str;
},//添加事件
addEvent: function (elm, type, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(type, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + type, fn);
return r;
} else {
elm['on' + type] = fn;
}
},
removeEvent: function (elem, type, fn) {
if (elem.removeEventListener) {
elem.removeEventListener(type, fn, false);
} else {
elem.detachEvent("on" + type, fn);
elem[type + fn] = null;
elem["e" + type + fn] = null;
}
},
browser: {
version: (browserName.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, '0'])[1],
safari: /webkit/i.test(browserName) && !this.chrome,
opera: /opera/i.test(browserName),
firefox: /firefox/i.test(browserName),
ie: /msie/i.test(browserName) && !/opera/.test(browserName),
mozilla: /mozilla/i.test(browserName) && !/(compatible|webkit)/.test(browserName) && !this.chrome,
chrome: /chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)
}
};
var BitA = BitA || {};
BitA.Tools = {//深度复制
extend: function () {var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;
if (typeof target === "boolean") {
deep = target;
target = arguments[1] || {};
i = 2;
}
if (typeof target !== "object" && typeof target != "function") {
target = {};
}
if (length === i) {
target = this;
--i;
}
for (; i < length; i++) {
if ((options = arguments[i]) != null) {
for (var name in options) {
src = target[name];
copy = options[name];
if (target === copy) {
continue;
}
if (deep && copy && (copy instanceof Object || (copyIsArray = copy instanceof Array)) && !(copy instanceof Function)) {
if (copyIsArray) {
copyIsArray = false;
clone = src && src instanceof Array ? src : [];
} else {
clone = src && src instanceof Object ? src : {};
}
target[name] = BitA.Tools.extend(deep, clone, copy);
} else if (copy !== undefined) {
target[name] = copy;
}
}
}
}
return target;
},//格式化
format: function () {
if (arguments.length == 0)
return null;
var str = arguments[0];
var obj = arguments[1];
for (var key in obj) {
var re = new RegExp('\\{' + key + '\\}', 'gi');
str = str.replace(re, obj[key]);
}
return str;
},//添加事件
addEvent: function (elm, type, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(type, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + type, fn);
return r;
} else {
elm['on' + type] = fn;
}
},
removeEvent: function (elem, type, fn) {
if (elem.removeEventListener) {
elem.removeEventListener(type, fn, false);
} else {
elem.detachEvent("on" + type, fn);
elem[type + fn] = null;
elem["e" + type + fn] = null;
}
},
browser: {
version: (browserName.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, '0'])[1],
safari: /webkit/i.test(browserName) && !this.chrome,
opera: /opera/i.test(browserName),
firefox: /firefox/i.test(browserName),
ie: /msie/i.test(browserName) && !/opera/.test(browserName),
mozilla: /mozilla/i.test(browserName) && !/(compatible|webkit)/.test(browserName) && !this.chrome,
chrome: /chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)
}
};
//调用
if (BitA.Tools.browser.ie && BitA.Tools.browser.version == "6.0") {
objSelect.options[i].setAttribute("selected", "true");
} else {
objSelect.options[i].selected = true;
}