X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=program%2Fjs%2Fcommon.js;h=7f068b4a37100d3f468d26fa069e55cdbac4267e;hb=315a64971ff1249e4d5884f309fab5ddbfe55cc6;hp=f9573a4c09a1f8642d5195e1446ffd37f5a0f1a9;hpb=e8a0682b96f5b7f297e58d101735ba20a0cc3a89;p=roundcube.git diff --git a/program/js/common.js b/program/js/common.js index f9573a4..7f068b4 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -1,443 +1,25 @@ -var CONTROL_KEY=1; -var SHIFT_KEY=2; -var CONTROL_SHIFT_KEY=3; -function roundcube_browser(){ -this.ver=parseFloat(navigator.appVersion); -this.appver=navigator.appVersion; -this.agent=navigator.userAgent; -this.name=navigator.appName; -this.vendor=navigator.vendor?navigator.vendor:""; -this.vendver=navigator.vendorSub?parseFloat(navigator.vendorSub):0; -this.product=navigator.product?navigator.product:""; -this.platform=String(navigator.platform).toLowerCase(); -this.lang=(navigator.language)?navigator.language.substring(0,2):(navigator.browserLanguage)?navigator.browserLanguage.substring(0,2):(navigator.systemLanguage)?navigator.systemLanguage.substring(0,2):"en"; -this.win=(this.platform.indexOf("win")>=0)?true:false; -this.mac=(this.platform.indexOf("mac")>=0)?true:false; -this.linux=(this.platform.indexOf("linux")>=0)?true:false; -this.unix=(this.platform.indexOf("unix")>=0)?true:false; -this.dom=document.getElementById?true:false; -this.dom2=(document.addEventListener&&document.removeEventListener); -this.ie=(document.all)?true:false; -this.ie4=(this.ie&&!this.dom); -this.ie5=(this.dom&&this.appver.indexOf("MSIE 5")>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.ns=((this.ver<5&&this.name=="Netscape")||(this.ver>=5&&this.vendor.indexOf("Netscape")>=0)); -this.ns6=(this.ns&&parseInt(this.vendver)==6); -this.ns7=(this.ns&&parseInt(this.vendver)==7); -this.safari=(this.agent.toLowerCase().indexOf("safari")>0||this.agent.toLowerCase().indexOf("applewebkit")>0); -this.konq=(this.agent.toLowerCase().indexOf("konqueror")>0); -this.opera=(window.opera)?true:false; -if(this.opera&&window.RegExp){ -this.vendver=(/opera(\s|\/)([0-9\.]+)/i.test(navigator.userAgent))?parseFloat(RegExp.$2):-1; -}else{ -if(!this.vendver&&this.safari){ -this.vendver=(/(safari|applewebkit)\/([0-9]+)/i.test(this.agent))?parseInt(RegExp.$2):0; -}else{ -if((!this.vendver&&this.mz)||this.agent.indexOf("Camino")>0){ -this.vendver=(/rv:([0-9\.]+)/.test(this.agent))?parseFloat(RegExp.$1):0; -}else{ -if(this.ie&&window.RegExp){ -this.vendver=(/msie\s+([0-9\.]+)/i.test(this.agent))?parseFloat(RegExp.$1):0; -}else{ -if(this.konq&&window.RegExp){ -this.vendver=(/khtml\/([0-9\.]+)/i.test(this.agent))?parseFloat(RegExp.$1):0; -} -} -} -} -} -if(this.safari&&(/;\s+([a-z]{2})-[a-z]{2}\)/i.test(this.agent))){ -this.lang=RegExp.$1; -} -this.dhtml=((this.ie4&&this.win)||this.ie5||this.ie6||this.ns4||this.mz); -this.vml=(this.win&&this.ie&&this.dom&&!this.opera); -this.pngalpha=(this.mz||(this.opera&&this.vendver>=6)||(this.ie&&this.mac&&this.vendver>=5)||(this.ie&&this.win&&this.vendver>=5.5)||this.safari); -this.opacity=(this.mz||(this.ie&&this.vendver>=5.5&&!this.opera)||(this.safari&&this.vendver>=100)); -this.cookies=navigator.cookieEnabled; -this.xmlhttp_test=function(){ -var _1=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}"); -this.xmlhttp=(window.XMLHttpRequest||(window.ActiveXObject&&_1()))?true:false; -return this.xmlhttp; -}; -}; -var rcube_event={get_target:function(e){ -e=e||window.event; -return e&&e.target?e.target:e.srcElement; -},get_keycode:function(e){ -e=e||window.event; -return e&&e.keyCode?e.keyCode:(e&&e.which?e.which:0); -},get_button:function(e){ -e=e||window.event; -return e&&(typeof e.button!="undefined")?e.button:(e&&e.which?e.which:0); -},get_modifier:function(e){ -var _6=0; -e=e||window.event; -if(bw.mac&&e){ -_6+=(e.metaKey&&CONTROL_KEY)+(e.shiftKey&&SHIFT_KEY); -return _6; -} -if(e){ -_6+=(e.ctrlKey&&CONTROL_KEY)+(e.shiftKey&&SHIFT_KEY); -return _6; -} -},get_mouse_pos:function(e){ -if(!e){ -e=window.event; -} -var mX=(e.pageX)?e.pageX:e.clientX; -var mY=(e.pageY)?e.pageY:e.clientY; -if(document.body&&document.all){ -mX+=document.body.scrollLeft; -mY+=document.body.scrollTop; -} -if(e._offset){ -mX+=e._offset.left; -mY+=e._offset.top; -} -return {x:mX,y:mY}; -},add_listener:function(p){ -if(!p.object||!p.method){ -return; -} -if(!p.element){ -p.element=document; -} -if(!p.object._rc_events){ -p.object._rc_events=[]; -} -var _b=p.event+"*"+p.method; -if(!p.object._rc_events[_b]){ -p.object._rc_events[_b]=function(e){ -return p.object[p.method](e); -}; -} -if(p.element.addEventListener){ -p.element.addEventListener(p.event,p.object._rc_events[_b],false); -}else{ -if(p.element.attachEvent){ -p.element.detachEvent("on"+p.event,p.object._rc_events[_b]); -p.element.attachEvent("on"+p.event,p.object._rc_events[_b]); -}else{ -p.element["on"+p.event]=p.object._rc_events[_b]; -} -} -},remove_listener:function(p){ -if(!p.element){ -p.element=document; -} -var _e=p.event+"*"+p.method; -if(p.object&&p.object._rc_events&&p.object._rc_events[_e]){ -if(p.element.removeEventListener){ -p.element.removeEventListener(p.event,p.object._rc_events[_e],false); -}else{ -if(p.element.detachEvent){ -p.element.detachEvent("on"+p.event,p.object._rc_events[_e]); -}else{ -p.element["on"+p.event]=null; -} -} -} -},cancel:function(_f){ -var e=_f?_f:window.event; -if(e.preventDefault){ -e.preventDefault(); -} -if(e.stopPropagation){ -e.stopPropagation(); -} -e.cancelBubble=true; -e.returnValue=false; -return false; -}}; -function rcube_event_engine(){ -this._events={}; -}; -rcube_event_engine.prototype={addEventListener:function(evt,_12,obj){ -if(!this._events){ -this._events={}; -} -if(!this._events[evt]){ -this._events[evt]=[]; -} -var e={func:_12,obj:obj?obj:window}; -this._events[evt][this._events[evt].length]=e; -},removeEventListener:function(evt,_16,obj){ -if(typeof obj=="undefined"){ -obj=window; -} -for(var h,i=0;this._events&&this._events[evt]&&i|"+_3d+")","i"):new RegExp("^"+_3c+"$","i"); -return _3e.test(_30)?true:false; -} -return false; -}; -function find_in_array(){ -var _3f=find_in_array.arguments; -if(!_3f.length){ -return -1; -} -var _40=typeof (_3f[0])=="object"?_3f[0]:_3f.length>1&&typeof (_3f[1])=="object"?_3f[1]:new Array(); -var _41=typeof (_3f[0])!="object"?_3f[0]:_3f.length>1&&typeof (_3f[1])!="object"?_3f[1]:""; -var _42=_3f.length==3?_3f[2]:false; -if(!_40.length){ -return -1; -} -for(var i=0;i<_40.length;i++){ -if(_42&&_40[i].toLowerCase()==_41.toLowerCase()){ -return i; -}else{ -if(_40[i]==_41){ -return i; -} -} -} -return -1; -}; -function urlencode(str){ -return window.encodeURIComponent?encodeURIComponent(str):escape(str); -}; -function rcube_find_object(id,d){ -var n,f,obj,e; -if(!d){ -d=document; -} -if(d.getElementsByName&&(e=d.getElementsByName(id))){ -obj=e[0]; -} -if(!obj&&d.getElementById){ -obj=d.getElementById(id); -} -if(!obj&&d.all){ -obj=d.all[id]; -} -if(!obj&&d.images.length){ -obj=d.images[id]; -} -if(!obj&&d.forms.length){ -for(f=0;f=pos.left)&&(_4d.x<(pos.left+obj.offsetWidth))&&(_4d.y>=pos.top)&&(_4d.y<(pos.top+obj.offsetHeight))); -}; -function setCookie(_4f,_50,_51,_52,_53,_54){ -var _55=_4f+"="+escape(_50)+(_51?"; expires="+_51.toGMTString():"")+(_52?"; path="+_52:"")+(_53?"; domain="+_53:"")+(_54?"; secure":""); -document.cookie=_55; -}; -roundcube_browser.prototype.set_cookie=setCookie; -function getCookie(_56){ -var dc=document.cookie; -var _58=_56+"="; -var _59=dc.indexOf("; "+_58); -if(_59==-1){ -_59=dc.indexOf(_58); -if(_59!=0){ -return null; -} -}else{ -_59+=2; -} -var end=document.cookie.indexOf(";",_59); -if(end==-1){ -end=dc.length; -} -return unescape(dc.substring(_59+_58.length,end)); -}; -roundcube_browser.prototype.get_cookie=getCookie; -function rcube_console(){ -this.log=function(msg){ -var box=rcube_find_object("dbgconsole"); -if(box){ -if(msg.charAt(msg.length-1)=="\n"){ -msg+="--------------------------------------\n"; -}else{ -msg+="\n--------------------------------------\n"; -} -if(bw.konq){ -box.innerText+=msg; -box.value=box.innerText; -}else{ -box.value+=msg; -} -} -}; -this.reset=function(){ -var box=rcube_find_object("dbgconsole"); -if(box){ -box.innerText=box.value=""; -} -}; -}; -var bw=new roundcube_browser(); -if(!window.console){ -console=new rcube_console(); -} -RegExp.escape=function(str){ -return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1"); -}; -if(bw.ie){ -document._getElementById=document.getElementById; -document.getElementById=function(id){ -var i=0; -var o=document._getElementById(id); -if(!o||o.id!=id){ -while((o=document.all[i])&&o.id!=id){ -i++; -} -} -return o; -}; -} - +var CONTROL_KEY=1,SHIFT_KEY=2,CONTROL_SHIFT_KEY=3; +function roundcube_browser(){var a=navigator;this.ver=parseFloat(a.appVersion);this.appver=a.appVersion;this.agent=a.userAgent;this.agent_lc=a.userAgent.toLowerCase();this.name=a.appName;this.vendor=a.vendor?a.vendor:"";this.vendver=a.vendorSub?parseFloat(a.vendorSub):0;this.product=a.product?a.product:"";this.platform=String(a.platform).toLowerCase();this.lang=a.language?a.language.substring(0,2):a.browserLanguage?a.browserLanguage.substring(0,2):a.systemLanguage?a.systemLanguage.substring(0,2): +"en";this.win=this.platform.indexOf("win")>=0;this.mac=this.platform.indexOf("mac")>=0;this.linux=this.platform.indexOf("linux")>=0;this.unix=this.platform.indexOf("unix")>=0;this.dom=document.getElementById?true:false;this.dom2=document.addEventListener&&document.removeEventListener;this.ie4=(this.ie=document.all&&!window.opera)&&!this.dom;this.ie5=this.dom&&this.appver.indexOf("MSIE 5")>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.ns6=(this.ns=this.ver<5&&this.name=="Netscape"||this.ver>=5&&this.vendor.indexOf("Netscape")>=0)&&parseInt(this.vendver)==6;this.ns7=this.ns&&parseInt(this.vendver)==7;this.chrome=this.agent_lc.indexOf("chrome")>0;this.safari=!this.chrome&&(this.agent_lc.indexOf("safari")>0||this.agent_lc.indexOf("applewebkit")>0);this.konq=this.agent_lc.indexOf("konqueror")>0;this.iphone=this.safari&&this.agent_lc.indexOf("iphone")> +0;this.ipad=this.safari&&this.agent_lc.indexOf("ipad")>0;if((this.opera=window.opera?true:false)&&window.RegExp)this.vendver=/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc)?parseFloat(RegExp.$2):-1;else if(this.chrome&&window.RegExp)this.vendver=/chrome\/([0-9\.]+)/.test(this.agent_lc)?parseFloat(RegExp.$1):0;else if(!this.vendver&&this.safari)this.vendver=/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc)?parseInt(RegExp.$2):0;else if(!this.vendver&&this.mz||this.agent.indexOf("Camino")>0)this.vendver= +/rv:([0-9\.]+)/.test(this.agent)?parseFloat(RegExp.$1):0;else if(this.ie&&window.RegExp)this.vendver=/msie\s+([0-9\.]+)/.test(this.agent_lc)?parseFloat(RegExp.$1):0;else if(this.konq&&window.RegExp)this.vendver=/khtml\/([0-9\.]+)/.test(this.agent_lc)?parseFloat(RegExp.$1):0;if(this.safari&&/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc))this.lang=RegExp.$1;this.dhtml=this.ie4&&this.win||this.ie5||this.ie6||this.ns4||this.mz;this.vml=this.win&&this.ie&&this.dom&&!this.opera;this.pngalpha=this.mz|| +this.opera&&this.vendver>=6||this.ie&&this.mac&&this.vendver>=5||this.ie&&this.win&&this.vendver>=5.5||this.safari;this.opacity=this.mz||this.ie&&this.vendver>=5.5&&!this.opera||this.safari&&this.vendver>=100;this.cookies=a.cookieEnabled;this.xmlhttp_test=function(){var b=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");return this.xmlhttp=window.XMLHttpRequest||window.ActiveXObject&&b()};this.set_html_class=function(){var b=" js";if(this.ie){b+= +" ie";if(this.ie5)b+=" ie5";else if(this.ie6)b+=" ie6";else if(this.ie7)b+=" ie7";else if(this.ie8)b+=" ie8"}else if(this.opera)b+=" opera";else if(this.konq)b+=" konqueror";else if(this.safari)b+=" safari";if(this.chrome)b+=" chrome";else if(this.iphone)b+=" iphone";else if(this.ipad)b+=" ipad";else if(this.ns6)b+=" netscape6";else if(this.ns7)b+=" netscape7";if(document.documentElement)document.documentElement.className+=b}} +var rcube_event={get_target:function(a){return(a=a||window.event)&&a.target?a.target:a.srcElement},get_keycode:function(a){return(a=a||window.event)&&a.keyCode?a.keyCode:a&&a.which?a.which:0},get_button:function(a){return(a=a||window.event)&&typeof a.button!="undefined"?a.button:a&&a.which?a.which:0},get_modifier:function(a){var b=0;a=a||window.event;if(bw.mac&&a){b+=(a.metaKey&&CONTROL_KEY)+(a.shiftKey&&SHIFT_KEY);return b}if(a){b+=(a.ctrlKey&&CONTROL_KEY)+(a.shiftKey&&SHIFT_KEY);return b}},get_mouse_pos:function(a){if(!a)a= +window.event;var b=a.pageX?a.pageX:a.clientX,c=a.pageY?a.pageY:a.clientY;if(document.body&&document.all){b+=document.body.scrollLeft;c+=document.body.scrollTop}if(a._offset){b+=a._offset.left;c+=a._offset.top}return{x:b,y:c}},add_listener:function(a){if(a.object&&a.method){if(!a.element)a.element=document;if(!a.object._rc_events)a.object._rc_events=[];var b=a.event+"*"+a.method;a.object._rc_events[b]||(a.object._rc_events[b]=function(c){return a.object[a.method](c)});if(a.element.addEventListener)a.element.addEventListener(a.event, +a.object._rc_events[b],false);else if(a.element.attachEvent){a.element.detachEvent("on"+a.event,a.object._rc_events[b]);a.element.attachEvent("on"+a.event,a.object._rc_events[b])}else a.element["on"+a.event]=a.object._rc_events[b]}},remove_listener:function(a){if(!a.element)a.element=document;var b=a.event+"*"+a.method;if(a.object&&a.object._rc_events&&a.object._rc_events[b])if(a.element.removeEventListener)a.element.removeEventListener(a.event,a.object._rc_events[b],false);else if(a.element.detachEvent)a.element.detachEvent("on"+ +a.event,a.object._rc_events[b]);else a.element["on"+a.event]=null},cancel:function(a){a=a?a:window.event;a.preventDefault&&a.preventDefault();a.stopPropagation&&a.stopPropagation();a.cancelBubble=true;return a.returnValue=false},touchevent:function(a){return{pageX:a.pageX,pageY:a.pageY,offsetX:a.pageX-a.target.offsetLeft,offsetY:a.pageY-a.target.offsetTop,target:a.target,istouch:true}}};function rcube_event_engine(){this._events={}} +rcube_event_engine.prototype={addEventListener:function(a,b,c){if(!this._events)this._events={};this._events[a]||(this._events[a]=[]);this._events[a][this._events[a].length]={func:b,obj:c?c:window}},removeEventListener:function(a,b,c){if(typeof c=="undefined")c=window;for(var d,e=0;this._events&&this._events[a]&&e|[,;s\n])","i"): +RegExp("^((([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22)(\\x2e([^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+|\\x22([^\\x0d\\x22\\x5c\\x80-\\xff]|\\x5c[\\x00-\\x7f])*\\x22))*\\x40([^@\\x2e]+\\x2e)+([a-z]{2,}|xn--[a-z0-9]{2,}))|(mailtest\\x40(\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631|\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5|\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66|\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae|\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e|\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8|\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8|\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc|\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435|\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8|\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8)))$", +"i")).test(a)?true:false;return false}function rcube_clone_object(a){var b={},c;for(c in a)b[c]=a[c]&&typeof a[c]=="object"?clone_object(a[c]):a[c];return b}function urlencode(a){return window.encodeURIComponent?encodeURIComponent(a):escape(a)} +function rcube_find_object(a,b){var c,d;b||(b=document);if(b.getElementsByName&&(c=b.getElementsByName(a)))d=c[0];if(!d&&b.getElementById)d=b.getElementById(a);if(!d&&b.all)d=b.all[a];if(!d&&b.images.length)d=b.images[a];if(!d&&b.forms.length)for(c=0;c=d.left&&c.x=d.top&&c.y