1 /** 2 * @fileOverview The file mainly should contain javascript assistance functions, which are not related directly to UI. 3 * Actualy includes string additional functions, Url decoding , datetime conversions 4 * @author 5 * @version 6 */ 7 8 // url params reading 9 var params; 10 function getUrlVars(url) 11 { 12 if (url == undefined){ 13 url = window.location.href; 14 } 15 var vars = [], hash; 16 var hashes = url.slice(url.indexOf('?') + 1).split('&'); 17 for(var i = 0; i < hashes.length; i++) 18 { 19 hash = hashes[i].split('='); 20 vars.push(hash[0]); 21 vars[hash[0]] = hash[1]; 22 } 23 return vars; 24 //return getUrlVars(window.location.href); 25 }; 26 27 28 29 if(typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } } 30 31 32 String.prototype.beginsWith = function(t, i) { if (i==false) { return 33 (t == this.substring(0, t.length)); } else { return (t.toLowerCase() 34 == this.substring(0, t.length).toLowerCase()); } } ; 35 36 37 String.prototype.endsWith = function(t, i) { if (i==false) { return (t 38 == this.substring(this.length - t.length)); } else { return 39 (t.toLowerCase() == this.substring(this.length - 40 t.length).toLowerCase()); } } ; 41 42 43 var Url = { 44 45 // public method for url encoding 46 encode : function (string) { 47 return escape(this._utf8_encode(string)); 48 }, 49 50 // public method for url decoding 51 decode : function (string) { 52 return this._utf8_decode(unescape(string)); 53 }, 54 55 // private method for UTF-8 encoding 56 _utf8_encode : function (string) { 57 string = string.replace(/\r\n/g,"\n"); 58 var utftext = ""; 59 60 for (var n = 0; n < string.length; n++) { 61 62 var c = string.charCodeAt(n); 63 64 if (c < 128) { 65 utftext += String.fromCharCode(c); 66 } 67 else if((c > 127) && (c < 2048)) { 68 utftext += String.fromCharCode((c >> 6) | 192); 69 utftext += String.fromCharCode((c & 63) | 128); 70 } 71 else { 72 utftext += String.fromCharCode((c >> 12) | 224); 73 utftext += String.fromCharCode(((c >> 6) & 63) | 128); 74 utftext += String.fromCharCode((c & 63) | 128); 75 } 76 77 } 78 79 return utftext; 80 }, 81 82 // private method for UTF-8 decoding 83 _utf8_decode : function (utftext) { 84 var string = ""; 85 var i = 0; 86 var c = c1 = c2 = 0; 87 88 while ( i < utftext.length ) { 89 90 c = utftext.charCodeAt(i); 91 92 if (c < 128) { 93 string += String.fromCharCode(c); 94 i++; 95 } 96 else if((c > 191) && (c < 224)) { 97 c2 = utftext.charCodeAt(i+1); 98 string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); 99 i += 2; 100 } 101 else { 102 c2 = utftext.charCodeAt(i+1); 103 c3 = utftext.charCodeAt(i+2); 104 string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); 105 i += 3; 106 } 107 108 } 109 110 return string; 111 } 112 113 }; 114 115 function dateFormat(dt){ 116 117 var str = ""; 118 var month = dt.getMonth() + 1; 119 if (month < 10){ 120 month = "0" + month 121 } 122 var day = dt.getDay(); 123 if (day < 10){ 124 day = "0" + day; 125 } 126 var hours = dt.getHours(); 127 if (hours < 10) { 128 hours = "0" + hours; 129 } 130 var minute = dt.getMinutes(); 131 if (minute < 10) { 132 minute = "0" + hours; 133 } 134 var second = dt.getSeconds(); 135 if (second < 10) { 136 second = "0" + second; 137 } 138 str = dt.getFullYear() + "-" + month + "-" + day + " " + hours + ":" + minute + ":" + second; 139 140 return str; 141 } 142 143 function link(action,format,params) { 144 var l = actions[action].base_uri + format; 145 146 // default param is q 147 if (params){ 148 if ( ! $.isArray(params)) { 149 l += '/' + params; 150 } else { 151 l += '?' + $.param(params); 152 } 153 } 154 notifyUser("l:"+ l,'debug'); 155 return l; 156 } 157 158 function CloneObject(inObj) { 159 for (i in inObj) { 160 this[i] = inObj[i]; 161 } 162 }// Usage:x = new CloneObject(obj); 163 164 function findPos(obj) { 165 var curleft = obj.offsetLeft || 0; 166 var curtop = obj.offsetTop || 0; 167 while (obj = obj.offsetParent) { 168 curleft += obj.offsetLeft; 169 curtop += obj.offsetTop; 170 } 171 return {x:curleft,y:curtop}; 172 } 173