X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=program%2Fjs%2Fcommon.js;h=7d1f173396dddddfc6cdb60f3c2e5ae52c768e5c;hb=76507f7c63a660742e76889ad6e3919f3dde3bb0;hp=412d5835d7cdcaad4a0bd7245df65c814a635543;hpb=3adad46e27086084a8b28a32fc4fbc953dbfef6c;p=roundcube.git diff --git a/program/js/common.js b/program/js/common.js index 412d583..7d1f173 100644 --- a/program/js/common.js +++ b/program/js/common.js @@ -1,471 +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.ie6=(this.dom&&this.appver.indexOf("MSIE 6")>0); -this.ie7=(this.dom&&this.appver.indexOf("MSIE 7")>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.x; -mY+=e._offset.y; -} -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; -}}; -var rcube_layer_objects=new Array(); -function rcube_layer(id,_12){ -this.name=id; -this.create=function(arg){ -var l=(arg.x)?arg.x:0; -var t=(arg.y)?arg.y:0; -var w=arg.width; -var h=arg.height; -var z=arg.zindex; -var vis=arg.vis; -var _1a=arg.parent; -var obj; -obj=document.createElement("DIV"); -with(obj){ -id=this.name; -with(style){ -position="absolute"; -visibility=(vis)?(vis==2)?"inherit":"visible":"hidden"; -left=l+"px"; -top=t+"px"; -if(w){ -width=w.toString().match(/\%$/)?w:w+"px"; -} -if(h){ -height=h.toString().match(/\%$/)?h:h+"px"; -} -if(z){ -zIndex=z; -} -} -} -if(_1a){ -_1a.appendChild(obj); -}else{ -document.body.appendChild(obj); -} -this.elm=obj; -}; -if(_12!=null){ -this.create(_12); -this.name=this.elm.id; -}else{ -this.elm=document.getElementById(id); -} -if(!this.elm){ -return false; -} -this.css=this.elm.style; -this.event=this.elm; -this.width=this.elm.offsetWidth; -this.height=this.elm.offsetHeight; -this.x=parseInt(this.elm.offsetLeft); -this.y=parseInt(this.elm.offsetTop); -this.visible=(this.css.visibility=="visible"||this.css.visibility=="show"||this.css.visibility=="inherit")?true:false; -this.id=rcube_layer_objects.length; -this.obj="rcube_layer_objects["+this.id+"]"; -rcube_layer_objects[this.id]=this; -this.move=function(x,y){ -this.x=x; -this.y=y; -this.css.left=Math.round(this.x)+"px"; -this.css.top=Math.round(this.y)+"px"; -}; -this.shift=function(x,y){ -x=Math.round(x*100)/100; -y=Math.round(y*100)/100; -this.move(this.x+x,this.y+y); -}; -this.resize=function(w,h){ -this.css.width=w+"px"; -this.css.height=h+"px"; -this.width=w; -this.height=h; -}; -this.clip=function(t,w,h,l){ -this.css.clip="rect("+t+" "+w+" "+h+" "+l+")"; -this.clip_height=h; -this.clip_width=w; -}; -this.show=function(a){ -if(a==1){ -this.css.visibility="visible"; -this.visible=true; -}else{ -if(a==2){ -this.css.visibility="inherit"; -this.visible=true; -}else{ -this.css.visibility="hidden"; -this.visible=false; -} -} -}; -this.write=function(_27){ -this.elm.innerHTML=_27; -}; -this.set_bgcolor=function(c){ -if(!c||c=="#"){ -c="transparent"; -} -this.css.backgroundColor=c; -}; -this.set_opacity=function(v){ -if(!bw.opacity){ -return; -} -var op=v<=1?Math.round(v*100):parseInt(v); -if(bw.ie){ -this.css.filter="alpha(opacity:"+op+")"; -}else{ -if(bw.safari){ -this.css.opacity=op/100; -this.css.KhtmlOpacity=op/100; -}else{ -if(bw.mz){ -this.css.MozOpacity=op/100; -} -} -} -}; -}; -function rcube_check_email(_2b,_2c){ -if(_2b&&window.RegExp){ -var _2d="[^\\x0d\\x22\\x5c\\x80-\\xff]"; -var _2e="[^\\x0d\\x5b-\\x5d\\x80-\\xff]"; -var _2f="[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+"; -var _30="\\x5c[\\x00-\\x7f]"; -var _31="\\x5b("+_2e+"|"+_30+")*\\x5d"; -var _32="\\x22("+_2d+"|"+_30+")*\\x22"; -var _33="("+_2f+"|"+_31+")"; -var _34="("+_2f+"|"+_32+")"; -var _35=_33+"(\\x2e"+_33+")*"; -var _36=_34+"(\\x2e"+_34+")*"; -var _37=_36+"\\x40"+_35; -var _38="[,;s\n]"; -var _39=_2c?new RegExp("(^|<|"+_38+")"+_37+"($|>|"+_38+")","i"):new RegExp("^"+_37+"$","i"); -return _39.test(_2b)?true:false; -} -return false; -}; -function find_in_array(){ -var _3a=find_in_array.arguments; -if(!_3a.length){ -return -1; -} -var _3b=typeof (_3a[0])=="object"?_3a[0]:_3a.length>1&&typeof (_3a[1])=="object"?_3a[1]:new Array(); -var _3c=typeof (_3a[0])!="object"?_3a[0]:_3a.length>1&&typeof (_3a[1])!="object"?_3a[1]:""; -var _3d=_3a.length==3?_3a[2]:false; -if(!_3b.length){ -return -1; -} -for(var i=0;i<_3b.length;i++){ -if(_3d&&_3b[i].toLowerCase()==_3c.toLowerCase()){ -return i; -}else{ -if(_3b[i]==_3c){ -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.x)&&(_4d.x<(pos.x+obj.offsetWidth))&&(_4d.y>=pos.y)&&(_4d.y<(pos.y+obj.offsetHeight))); -}; -function get_elements_computed_style(_4f,_50,_51){ -if(arguments.length==2){ -_51=_50; -} -var el=_4f; -if(typeof (_4f)=="string"){ -el=rcube_find_object(_4f); -} -if(el&&el.currentStyle){ -return el.currentStyle[_50]; -}else{ -if(el&&document.defaultView&&document.defaultView.getComputedStyle){ -return document.defaultView.getComputedStyle(el,null).getPropertyValue(_51); -}else{ -return false; -} -} -}; -function setCookie(_53,_54,_55,_56,_57,_58){ -var _59=_53+"="+escape(_54)+(_55?"; expires="+_55.toGMTString():"")+(_56?"; path="+_56:"")+(_57?"; domain="+_57:"")+(_58?"; secure":""); -document.cookie=_59; -}; -roundcube_browser.prototype.set_cookie=setCookie; -function getCookie(_5a){ -var dc=document.cookie; -var _5c=_5a+"="; -var _5d=dc.indexOf("; "+_5c); -if(_5d==-1){ -_5d=dc.indexOf(_5c); -if(_5d!=0){ -return null; -} -}else{ -_5d+=2; -} -var end=document.cookie.indexOf(";",_5d); -if(end==-1){ -end=dc.length; -} -return unescape(dc.substring(_5d+_5c.length,end)); -}; -roundcube_browser.prototype.get_cookie=getCookie; -function rcube_console(){ -this.log=function(msg){ -box=rcube_find_object("console"); -if(box){ -if(msg.charAt(msg.length-1)=="\n"){ -box.value+=msg+"--------------------------------------\n"; -}else{ -box.value+=msg+"\n--------------------------------------\n"; -} -} -}; -this.reset=function(){ -box=rcube_find_object("console"); -if(box){ -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; -}; -} -function exec_event(_64,_65){ -if(document.createEventObject){ -var evt=document.createEventObject(); -return _64.fireEvent("on"+_65,evt); -}else{ -var evt=document.createEvent("HTMLEvents"); -evt.initEvent(_65,true,true); -return !_64.dispatchEvent(evt); -} -}; - +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