X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=program%2Fjs%2Fcommon.js;h=7d1f173396dddddfc6cdb60f3c2e5ae52c768e5c;hb=76507f7c63a660742e76889ad6e3919f3dde3bb0;hp=f9573a4c09a1f8642d5195e1446ffd37f5a0f1a9;hpb=e8a0682b96f5b7f297e58d101735ba20a0cc3a89;p=roundcube.git diff --git a/program/js/common.js b/program/js/common.js index f9573a4..7d1f173 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -1,443 +1,28 @@ -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=(""+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=0<=this.platform.indexOf("win");this.mac=0<=this.platform.indexOf("mac");this.linux=0<=this.platform.indexOf("linux");this.unix=0<=this.platform.indexOf("unix");this.dom=document.getElementById?!0:!1;this.dom2=document.addEventListener&&document.removeEventListener;this.ie4=(this.ie=document.all&&!window.opera)&&!this.dom;this.ie5=this.dom&&0this.ver&&"Netscape"==this.name||5<=this.ver&&0<=this.vendor.indexOf("Netscape");this.chrome=0|[,;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)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{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)?!0:!1:!1}function rcube_clone_object(a){var b={},c;for(c in a)b[c]=a[c]&&"object"===typeof a[c]?clone_object(a[c]):a[c];return b}function urlencode(a){return window.encodeURIComponent?encodeURIComponent(a).replace("*","%2A"):escape(a).replace("+","%2B").replace("*","%2A").replace("/","%2F").replace("@","%40")} +function rcube_find_object(a,b){var c,d;b||(b=document);if(b.getElementsByName&&(c=b.getElementsByName(a)))d=c[0];!d&&b.getElementById&&(d=b.getElementById(a));!d&&b.all&&(d=b.all[a]);!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>2,b=(b&3)<<4|c>>4,f=(c&15)<<2|d>>6,h=d&63,isNaN(c)?f=h=64:isNaN(d)&&(h=64),g=g+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(e)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(b)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(f)+ +"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h);while(i>4,c=(c&15)<<4|e>>2,d=(e&3)<<6|f,g+=String.fromCharCode(b),64!=e&&(g+=String.fromCharCode(c)),64!=f&&(g+=String.fromCharCode(d));while(i