Changeset 2616
- Timestamp:
- 04/22/10 11:33:37 (14 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/jscode/DropDownContacts.js
r2602 r2616 82 82 lines.cellspacing='0'; 83 83 84 var REG_EXP = /^[^\#|^\$|^\%|^\!|^\?|^\"|^\']+$/;85 84 var match_cont = ""; 86 85 for (var i=0; i<match_contacts.length; i++) 87 86 { 88 var aux = match_contacts[i].split(""); 89 for ( var j = 0; j < aux.length; j ++ ) 90 { 91 if(REG_EXP.test(aux[j])){ 92 match_cont += aux[j]; 93 }else{ 94 match_cont += ""; 95 } 96 } 87 match_cont += match_contacts[i]; 88 97 89 var trElement = document.createElement('TR'); 98 90 var tdElement = document.createElement('TD'); 99 91 tdElement.id = 'td_DD_'+i; 100 92 tdElement.name = fld_id; 101 tdElement.onmousedown = function (){ 93 XEvents.add( tdElement, 'onmousedown', function ( ) 94 { 102 95 hideTip(); 103 96 makeMailList(this.innerHTML,this.name); 104 97 setTimeout('document.getElementById("'+this.name+'").focus()',300); 105 }; 106 tdElement.onmouseover = function (){ 98 } ); 99 XEvents.add( tdElement, 'onmouseover', function( ) 100 { 107 101 selectContact(this.id.substr(6)); 108 } ;102 } ); 109 103 tdElement.innerHTML = match_cont; 110 104 trElement.appendChild(tdElement); -
trunk/expressoMail1_2/js/jscode/common_functions.js
r2579 r2616 20 20 21 21 window.onresize = resizeWindow; 22 23 function config_events(pObj, pEvent, pHandler)24 {25 if( typeof pObj == 'object')26 {27 if( pEvent.substring(0, 2) == 'on')28 pEvent = pEvent.substring(2, pEvent.length);29 30 if ( pObj.addEventListener )31 pObj.addEventListener(pEvent, pHandler, false);32 else if( pObj.attachEvent )33 pObj.attachEvent('on' + pEvent, pHandler );34 }35 }36 22 37 23 function resizeWindow(){ … … 109 95 return _key+"*"; 110 96 } 111 }112 113 // Make decimal round, using in size message114 function round(value, decimal){115 var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal );116 return( return_value );117 97 } 118 98 … … 156 136 } 157 137 158 function removeAll(id){159 do160 {161 if (typeof(Element(id)) == 'undefined')162 break;163 Element(id).parentNode.removeChild(Element(id));164 }165 while(Element(id));166 }167 138 168 139 function get_current_folder(){ … … 437 408 } 438 409 439 function validateEmail(email){440 if (typeof(email) != 'string')441 return false;442 var validName = /^[a-z][a-z-_0-9\.]*/i;443 emailParts = email.split('@');444 return (validName.test(emailParts[0]) && validateDomain(emailParts[1]));445 }446 function validateDomain(domain){447 var domainReg = /^(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/i;448 return (domainReg.test(domain));449 }450 451 function validateUrl(url){452 var urlReg = /([A-Za-z]{2,7}:\/\/)(.*)/i;453 urlParts = url.split(urlReg);454 return (urlParts[1].length > 4 && validateDomain(urlParts[2]));455 }456 410 function emQuickSearch(emailList, field, ID){ 457 411 var quickSearchKeyBegin; … … 561 515 } 562 516 563 function url_encode(str){564 var hex_chars = "0123456789ABCDEF";565 var noEncode = /^([a-zA-Z0-9\_\-\.])$/;566 var n, strCode, hex1, hex2, strEncode = "";567 568 for(n = 0; n < str.length; n++) {569 if (noEncode.test(str.charAt(n))) {570 strEncode += str.charAt(n);571 } else {572 strCode = str.charCodeAt(n);573 hex1 = hex_chars.charAt(Math.floor(strCode / 16));574 hex2 = hex_chars.charAt(strCode % 16);575 strEncode += "%" + (hex1 + hex2);576 }577 }578 return strEncode;579 }580 581 function url_decode(str) {582 583 var n, strCode, strDecode = "";584 for (n = 0; n < str.length; n++) {585 if (str.charAt(n) == "%") {586 strCode = str.charAt(n + 1) + str.charAt(n + 2);587 strDecode += String.fromCharCode(parseInt(strCode, 16));588 n += 2;589 } else {590 strDecode += str.charAt(n);591 }592 }593 return strDecode;594 }595 596 517 function Element (el) { 597 518 return document.getElementById(el); … … 626 547 return rb; 627 548 } 628 } 629 630 function borkb(size){ 631 kbyte = 1024; 632 mbyte = kbyte*1024; 633 gbyte = mbyte*1024; 634 if (!size) 635 size = 0; 636 if (size < kbyte) 637 return size + 'B'; 638 else if (size < mbyte) 639 return parseInt(size/kbyte) + 'KB'; 640 else if (size < gbyte) 641 if (size/mbyte > 100) 642 return (size/mbyte).toFixed(0) + 'MB'; 643 else 644 return (size/mbyte).toFixed(1) + 'MB'; 645 else 646 return parseInt(size/gbyte).toFixed(1) + 'GB'; 647 } 648 649 function trim(inputString) { 650 if (typeof inputString != "string") 651 return inputString; 652 653 var retValue = inputString; 654 var ch = retValue.substring(0, 1); 655 while (ch == " ") { 656 retValue = retValue.substring(1, retValue.length); 657 ch = retValue.substring(0, 1); 658 } 659 ch = retValue.substring(retValue.length-1, retValue.length); 660 while (ch == " ") { 661 retValue = retValue.substring(0, retValue.length-1); 662 ch = retValue.substring(retValue.length-1, retValue.length); 663 } 664 while (retValue.indexOf(" ") != -1) { 665 retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); 666 } 667 return retValue; 668 } 549 }; 669 550 670 551 function increment_folder_unseen(){ … … 772 653 } 773 654 774 function LTrim(value){775 var w_space = String.fromCharCode(32);776 var strTemp = "";777 var iTemp = 0;778 779 var v_length = value ? value.length : 0;780 if(v_length < 1)781 return "";782 783 while(iTemp < v_length){784 if(value && value.charAt(iTemp) != w_space){785 strTemp = value.substring(iTemp,v_length);786 break;787 }788 iTemp++;789 }790 return strTemp;791 }792 793 655 //changes MENU background color. 794 656 function set_menu_bg(menu) … … 824 686 } 825 687 826 function add_className(obj, className){827 if (obj && !exist_className(obj, className))828 obj.className = obj.className + ' ' + className;829 }830 831 function remove_className(obj, className){832 var re = new RegExp("\\s*"+className);833 if (obj)834 obj.className = obj.className.replace(re, ' ');835 }836 837 function exist_className(obj, className){838 return ( obj && obj.className.indexOf(className) != -1 );839 }840 841 688 function select_all_messages(select) 842 689 { … … 861 708 } 862 709 } 863 }864 865 function validate_date(date){866 if (date.match(/^[0-3][0-9]\/[0-1][0-9]\/\d{4,4}$/))867 {868 tmp = date.split('/');869 870 day = new Number(tmp[0]);871 month = new Number(tmp[1]);872 year = new Number(tmp[2]);873 if (month >= 1 && month <= 12 && day >= 1 && day <= 31)874 {875 if (month == 02 && day <= 29)876 {877 return true;878 }879 return true;880 }881 else882 {883 return false;884 }885 }886 else887 {888 return false;889 }890 710 }; -
trunk/expressoMail1_2/js/jscode/main.js
r2603 r2616 930 930 else 931 931 return selected_messages; 932 }933 934 function replaceAll(string, token, newtoken) {935 while (string.indexOf(token) != -1) {936 string = string.replace(token, newtoken);937 }938 return string;939 932 } 940 933 -
trunk/phpgwapi/inc/class.common.inc.php
r2611 r2616 392 392 $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'wz_dragdrop', 'wz_dragdrop', NULL, true ); 393 393 $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'expressoAjax', 'expressoAjax', NULL, true ); 394 $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'expressoAjax', 'dom', NULL, true ); 394 395 $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xlink', NULL, true ); 395 396 $GLOBALS[ 'phpgw' ] -> js -> validate_file( 'tools','xconnector', NULL, true ); -
trunk/phpgwapi/js/expressoAjax/dom.js
r1999 r2616 1 dom.prototype.config_events = function (pObj, pEvent, pHandler) 1 function borkb(size){ 2 kbyte = 1024; 3 mbyte = kbyte*1024; 4 gbyte = mbyte*1024; 5 if (!size) 6 size = 0; 7 if (size < kbyte) 8 return size + ' B'; 9 else if (size < mbyte) 10 return parseInt(size/kbyte) + ' KB'; 11 else if (size < gbyte) 12 if (size/mbyte > 100) 13 return (size/mbyte).toFixed(0) + ' MB'; 14 else 15 return (size/mbyte).toFixed(1) + ' MB'; 16 else 17 return parseInt(size/gbyte).toFixed(1) + ' GB'; 18 } 19 20 function url_encode(str){ 21 return escape(str); 22 } 23 function url_decode(str) { 24 return unescape(str); 25 } 26 27 function replaceAll(string, token, newtoken) { 28 while (string.indexOf(token) != -1) { 29 string = string.replace(token, newtoken); 30 } 31 return string; 32 } 33 34 function config_events(pObj, pEvent, pHandler) 2 35 { 3 36 if( typeof pObj == 'object') … … 14 47 15 48 16 var _beforeunload_ = window.onbeforeunload; 17 18 window.onbeforeunload = function() 19 { 20 return unloadMess(); 49 // Make decimal round, using in size message 50 function round(value, decimal){ 51 var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal ); 52 return( return_value ); 21 53 } 22 54 23 dom.prototype.unloadMess = function (){ 24 var mess = get_lang("All change you made has not been saved and will be discarted."); 25 for (var i = 0; i < BordersArray.length; i++) { 26 var body = Element('body_' + BordersArray[i].sequence); 27 if (body && body.contentWindow && body.contentWindow.document.designMode.toLowerCase() == 'on') { 28 return mess; 29 } 30 } 55 function removeAll(id){ 56 do 57 { 58 if (typeof(Element(id)) == 'undefined') 59 break; 60 Element(id).parentNode.removeChild(Element(id)); 61 } 62 while(Element(id)); 63 } 64 function validateEmail(email){ 65 if (typeof(email) != 'string') 66 return false; 67 var validName = /^[a-z][a-z-_0-9\.]*/i; 68 emailParts = email.split('@'); 69 return (validName.test(emailParts[0]) && validateDomain(emailParts[1])); 70 } 71 function validateDomain(domain){ 72 var domainReg = /^(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/i; 73 return (domainReg.test(domain)); 31 74 } 32 75 33 // Make decimal round, using in size message 34 dom.prototype.round = function (value, decimal){ 35 var return_value = Math.round( value * Math.pow( 10 , decimal ) ) / Math.pow( 10 , decimal);36 return( return_value);76 function validateUrl(url){ 77 var urlReg = /([A-Za-z]{2,7}:\/\/)(.*)/i; 78 urlParts = url.split(urlReg); 79 return (urlParts[1].length > 4 && validateDomain(urlParts[2])); 37 80 } 38 81 39 40 dom.prototype.removeAllById = function (id){ 41 do 42 { 43 if (typeof(Element(id)) == 'undefined') 44 break; 45 Element(id).parentNode.removeChild(Element(id)); 46 } 47 while(Element(id)); 48 } 49 // Add Input File Dynamically. 50 dom.prototype.addFile = function (id_border){ 51 divFiles = document.getElementById("divFiles_"+id_border); 52 if (! divFiles) 53 return false; 54 55 if (divFiles.lastChild) 56 var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1; 57 58 if (! countDivFiles) 59 var countDivFiles = 1; 60 61 divFile = document.createElement('DIV'); 62 63 64 divFile.innerHTML = "<input type='file' id_border='"+id_border+"' size='50' maxLength='255' onchange=\"function () {validateFileExtension(this.value, this.id.replace('input','div'), this.getAttribute('id_border'));};\" id='"+"inputFile_"+id_border+"_"+countDivFiles+"' name='file_"+countDivFiles+"'>"; 65 66 67 var linkFile = document.createElement("A"); 68 linkFile.id = "linkFile_"+id_border+"_"+countDivFiles; 69 linkFile.href='javascript:void(0)'; 70 linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;}; 71 linkFile.innerHTML=get_lang("Remove"); 72 //divFile.innerHTML += " "; 73 divFile.appendChild(linkFile); 74 divFile.id = "divFile_"+id_border+"_"+countDivFiles; 75 divFiles.appendChild(divFile); 76 77 78 79 return document.getElementById("inputFile_"+id_border+"_"+countDivFiles); 80 } 81 // Remove Input File Dynamically. 82 dom.prototype.removeFile = function (id){ 83 var border_id = id.substr(8,1); 84 var el = Element(id); 85 el.parentNode.removeChild(el); 86 } 87 88 var denyFileExtensions = new Array('exe','com','reg','chm','cnf','hta','ins', 89 'jse','job','lnk','pif','src','scf','sct','shb', 90 'vbe','vbs','wsc','wsf','wsh','cer','its','mau', 91 'mda','mar','mdz','prf','pst'); 92 dom.prototype.validateFileExtension = function (fileName){ 93 var error_flag = false; 94 var fileExtension = fileName.split("."); 95 fileExtension = fileExtension[(fileExtension.length-1)]; 96 for(var i=0; i<denyFileExtensions.length; i++) 97 { 98 if(denyFileExtensions[i] == fileExtension) 99 { 100 error_flag = true; 101 break; 102 } 103 104 } 105 106 if ( error_flag == true ) 107 { 108 write_error(get_lang('File extension forbidden or invalid file') + '.'); 109 return false; 110 } 111 return true; 112 } 113 114 115 dom.prototype.validatePath = function (fileName, id, id_border){ 116 117 var error_flag = false; 118 119 if ( fileName.indexOf('/') != -1 ) 120 { 121 if (fileName[0] != '/'){ // file name is windows format? 122 var file = fileName.substr(fileName.lastIndexOf('\\') + 1, fileName.length); 123 if ((fileName.indexOf(':\\') != 1) && (fileName.indexOf('\\\\') != 0)) // Is stored in partition or a network file? 124 error_flag = true; 125 } 126 else // is Unix 127 var file = fileName.substr(fileName.lastIndexOf('/') + 1, fileName.length); 128 } 129 else // is Firefox 3 130 var file = fileName; 131 return (validateFileExtension(file)); 132 } 133 134 var setTimeout_write_msg = 0; 135 var old_msg = false; 136 // Funcao usada para escrever mensagem 137 // notimeout = True : mensagem nao apaga 138 dom.prototype.write_msg = function (msg, notimeout){ 139 140 if (setTimeout_write_msg) 141 clearTimeout(setTimeout_write_msg); 142 143 var msg_div = Element('em_div_write_msg'); 144 var old_divStatusBar = Element("divStatusBar"); 145 146 if(!msg_div) { 147 msg_div = document.createElement('DIV'); 148 msg_div.id = 'em_div_write_msg'; 149 msg_div.className = 'em_div_write_msg'; 150 old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar); 151 } 152 153 if( document.getElementById('JabberMessenger')) 154 loadscript.adIcon(); 155 156 msg_div.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+msg+'</th><th width="40%"></th></tr></tbody></table>'; 157 158 old_divStatusBar.style.display = 'none'; 159 msg_div.style.display = ''; 160 // Nao ponha var na frente!! jakjr 161 handle_write_msg = function(){ 162 try{ 163 if(!old_msg) 164 clean_msg(); 165 else 166 write_msg(old_msg, true); 167 } 168 catch(e){} 169 } 170 if(notimeout) 171 old_msg = msg; 172 else 173 setTimeout_write_msg = setTimeout("handle_write_msg();", 5000); 174 } 175 // Funcao usada para apagar mensagem sem timeout 176 dom.prototype.clean_msg = function (){ 177 old_msg = false; 178 var msg_div = Element('em_div_write_msg'); 179 var old_divStatusBar = Element("divStatusBar"); 180 if(msg_div) 181 msg_div.style.display = 'none'; 182 old_divStatusBar.style.display = ''; 183 } 184 function Element (el) { 185 return document.getElementById(el); 186 } 187 188 dom.prototype.trim = function (inputString) { 82 function trim(inputString) { 189 83 if (typeof inputString != "string") 190 191 84 return inputString; 85 192 86 var retValue = inputString; 193 87 var ch = retValue.substring(0, 1); 194 88 while (ch == " ") { 195 196 89 retValue = retValue.substring(1, retValue.length); 90 ch = retValue.substring(0, 1); 197 91 } 198 92 ch = retValue.substring(retValue.length-1, retValue.length); 199 93 while (ch == " ") { 200 201 94 retValue = retValue.substring(0, retValue.length-1); 95 ch = retValue.substring(retValue.length-1, retValue.length); 202 96 } 203 97 while (retValue.indexOf(" ") != -1) { 204 98 retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); 205 99 } 206 100 return retValue; … … 208 102 209 103 210 dom.prototype.LTrim = function(value){211 212 213 104 function LTrim(value){ 105 var w_space = String.fromCharCode(32); 106 var strTemp = ""; 107 var iTemp = 0; 214 108 215 216 217 109 var v_length = value ? value.length : 0; 110 if(v_length < 1) 111 return ""; 218 112 219 220 221 222 223 224 225 226 113 while(iTemp < v_length){ 114 if(value && value.charAt(iTemp) != w_space){ 115 strTemp = value.substring(iTemp,v_length); 116 break; 117 } 118 iTemp++; 119 } 120 return strTemp; 227 121 } 228 122 229 123 230 dom.prototype.array_search = function (needle, haystack) { 231 var n = haystack.length; 232 for (var i=0; i<n; i++) { 233 if (haystack[i]==needle) { 234 return true; 235 } 236 } 237 return false; 124 function add_className(obj, className){ 125 if (obj && !exist_className(obj, className)) 126 obj.className = obj.className + ' ' + className; 127 } 128 129 function remove_className(obj, className){ 130 var re = new RegExp("\\s*"+className); 131 if (obj) 132 obj.className = obj.className.replace(re, ' '); 133 } 134 135 function exist_className(obj, className){ 136 return ( obj && obj.className.indexOf(className) != -1 ); 238 137 } 239 138 240 139 241 dom.prototype.add_className = function (obj, className){242 if (obj && !exist_className(obj, className))243 obj.className = obj.className + ' ' + className;244 }245 140 246 dom.prototype.remove_className = function (obj, className){ 247 var re = new RegExp("\\s*"+className); 248 if (obj) 249 obj.className = obj.className.replace(re, ' '); 250 } 251 252 dom.prototype.exist_className = function (obj, className){ 253 return ( obj && obj.className.indexOf(className) != -1 ) 254 } 255 256 257 dom.prototype.validate_date = function (date){ 141 function validate_date(date){ 258 142 if (date.match(/^[0-3][0-9]\/[0-1][0-9]\/\d{4,4}$/)) 259 143 { … … 280 164 return false; 281 165 } 282 } 166 }; 283 167
Note: See TracChangeset
for help on using the changeset viewer.