| | |
| | | |
| | | /** |
| | | * Default browser check class |
| | | * @construcotr |
| | | * @constructor |
| | | */ |
| | | function roundcube_browser() |
| | | { |
| | |
| | | this.ie = (document.all) ? true : false; |
| | | this.ie4 = (this.ie && !this.dom); |
| | | this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0); |
| | | this.ie6 = (this.dom && this.appver.indexOf('MSIE 6')>0); |
| | | this.ie8 = (this.dom && this.appver.indexOf('MSIE 8')>0); |
| | | this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0); |
| | | this.ie6 = (this.dom && !this.ie8 && !this.ie7 && this.appver.indexOf('MSIE 6')>0); |
| | | |
| | | this.mz = (this.dom && this.ver>=5); // (this.dom && this.product=='Gecko') |
| | | this.ns = ((this.ver<5 && this.name=='Netscape') || (this.ver>=5 && this.vendor.indexOf('Netscape')>=0)); |
| | |
| | | e = this; |
| | | else if (typeof e == 'object') |
| | | e.event = evt; |
| | | |
| | | |
| | | if (this._events && this._events[evt] && !this._event_exec) { |
| | | this._event_exec = true; |
| | | for (var i=0; i < this._events[evt].length; i++) { |
| | |
| | | } |
| | | |
| | | |
| | | // find a value in a specific array and returns the index |
| | | function find_in_array() |
| | | { |
| | | var args = find_in_array.arguments; |
| | | if(!args.length) return -1; |
| | | |
| | | var haystack = typeof(args[0])=='object' ? args[0] : args.length>1 && typeof(args[1])=='object' ? args[1] : new Array(); |
| | | var needle = typeof(args[0])!='object' ? args[0] : args.length>1 && typeof(args[1])!='object' ? args[1] : ''; |
| | | var nocase = args.length==3 ? args[2] : false; |
| | | |
| | | if(!haystack.length) return -1; |
| | | |
| | | for(var i=0; i<haystack.length; i++) |
| | | if(nocase && haystack[i].toLowerCase()==needle.toLowerCase()) |
| | | return i; |
| | | else if(haystack[i]==needle) |
| | | return i; |
| | | |
| | | return -1; |
| | | // recursively copy an object |
| | | function rcube_clone_object(obj) |
| | | { |
| | | var out = {}; |
| | | |
| | | for (var key in obj) { |
| | | if (obj[key] && typeof obj[key] == 'object') |
| | | out[key] = clone_object(obj[key]); |
| | | else |
| | | out[key] = obj[key]; |
| | | } |
| | | |
| | | |
| | | return out; |
| | | } |
| | | |
| | | // make a string URL safe |
| | | function urlencode(str) |