1 /* ì ê·ì */ 2 var REGEX_TIME_HHMM = /([01][0-9]|2[0-3])[\:\s]*([0-6][0-9])$/; 3 4 /***** Date *****/ 5 var MONTH_NAMES = ["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", 6 "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"]; 7 8 var WEEK_NAMES = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; 9 10 Date.prototype.format = function(f) { 11 if (!this.valueOf()) return " "; 12 13 var weekName = ["SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY"]; 14 var weekNameShort = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; 15 var weekNameKr = ["ì¼ìì¼", "ììì¼", "íìì¼", "ììì¼", "목ìì¼", "ê¸ìì¼", "í ìì¼"]; 16 var d = this; 17 18 return f.replace(/(yyyy|yy|MM|dd|E|hh|mm|ss|SSS|a\/p)/gi, function($1) { 19 switch ($1) { 20 case "yyyy": return d.getFullYear(); 21 case "yy": return (d.getFullYear() % 1000).zf(2); 22 case "MM": return (d.getMonth() + 1).zf(2); 23 case "dd": return d.getDate().zf(2); 24 case "E": return weekNameKr[d.getDay()]; 25 case "e": return weekNameShort[d.getDay()]; 26 case "HH": return d.getHours().zf(2); 27 case "hh": return ((h = d.getHours() % 12) ? h : 12).zf(2); 28 case "mm": return d.getMinutes().zf(2); 29 case "ss": return d.getSeconds().zf(2); 30 case "SSS": return d.getMilliseconds().zf(3); 31 case "a/p": return d.getHours() < 12 ? "ì¤ì " : "ì¤í"; 32 default: return $1; 33 } 34 }); 35 }; 36 37 function parseDate(s) 38 { 39 if (!s) {return null;} 40 if (s.length == 0) 41 { 42 return null; 43 } 44 45 s= s.replace(/\-/g, ""); 46 47 var years = 0; 48 var months = 0; 49 var days = 0; 50 var hours = 0; 51 var minutes = 0; 52 var seconds = 0; 53 var milliSeconds = 0; 54 55 if (s.length >= 8) 56 { 57 years = parseInt(s.substring(0, 4)); 58 months = parseInt(s.substring(4, 6)) - 1; 59 days = parseInt(s.substring(6, 8)); 60 } 61 if (s.length >= 14) 62 { 63 hours = parseInt(s.substring(8, 10)); 64 minutes = parseInt(s.substring(10, 12)); 65 seconds = parseInt(s.substring(12, 14)); 66 } 67 if (s.length == 17) 68 { 69 milliSeconds = parseInt(s.substring(14)); 70 } 71 72 var time = new Date(); 73 time.setFullYear(years, months, days); 74 time.setHours(hours, minutes, seconds, milliSeconds); 75 76 return time; 77 } 78 79 80 function isNowIncluded(from, to) 81 { 82 var now = new Date().getTime(); 83 84 if (from == null) 85 { 86 if (to == null) 87 { 88 return true; 89 } 90 else 91 { 92 to.setHours(23, 59, 59, 999); 93 return (now <= to.getTime()); 94 } 95 } 96 else 97 { 98 from.setHours(0, 0, 0, 0); 99 100 if (to == null) 101 { 102 return (now >= from.getTime()); 103 } 104 else 105 { 106 to.setHours(23, 59, 59, 999); 107 return ((now >= from.getTime()) && (now <= to.getTime())); 108 } 109 } 110 } 111 112 113 /***** String *****/ 114 String.prototype.string = function(len){var s = '', i = 0; while (i++ < len) { s += this; } return s;}; 115 String.prototype.zf = function(len){return "0".string(len - this.length) + this;}; 116 Number.prototype.zf = function(len){return this.toString().zf(len);}; 117 118 function initExtraProtoType() { 119 if(typeof String.prototype.trim !== 'function') { 120 String.prototype.trim = function() { 121 return this.replace(/^\s+|\s+$/g, ''); 122 }; 123 } 124 } 125 126 if (!String.prototype.endsWith) { 127 String.prototype.endsWith = function(searchString, position) { 128 var subjectString = this.toString(); 129 if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { 130 position = subjectString.length; 131 } 132 position -= searchString.length; 133 var lastIndex = subjectString.indexOf(searchString, position); 134 return lastIndex !== -1 && lastIndex === position; 135 }; 136 } 137 138 139 /***** ì°í¸ë²í¸ *****/ 140 function zip(fnCallback) // <script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script> ì¶ê°ëì´ ìì´ì¼ í¨ 141 { 142 new daum.Postcode({ 143 oncomplete: function(data) { 144 var zipcode = data.zonecode; 145 var address = data.address; 146 147 if (fnCallback) 148 { 149 fnCallback(zipcode, address); 150 } 151 152 } 153 }).open(); 154 155 } 156 157 158 /***** ì íë²í¸ Parser *****/ 159 function PhoneNumber() 160 { 161 this.phoneNumber1 = ""; 162 this.phoneNumber2 = ""; 163 this.phoneNumber3 = ""; 164 165 this.validPhoneNumber = false; 166 } 167 168 PhoneNumber.prototype.parse = function(phoneNumber) 169 { 170 if (phoneNumber == "") 171 { 172 this.valid = true; 173 return; 174 } 175 176 var regex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/; // xxx xxxx xxxx 177 var result = phoneNumber.match(regex); 178 179 if (!result) 180 { 181 regex = /^\(?([02]{2})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/; // 02 xxx xxxx 182 result = phoneNumber.match(regex); 183 } 184 185 if (!result) 186 { 187 regex = /^\(?([02]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/; // 02 xxxx xxxx 188 result = phoneNumber.match(regex); 189 } 190 191 if (!result) 192 { 193 regex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/; // xxx xxx xxxx 194 result = phoneNumber.match(regex); 195 } 196 197 if (result) 198 { 199 this.phoneNumber1 = result[1]; 200 this.phoneNumber2 = result[2]; 201 this.phoneNumber3 = result[3]; 202 203 this.valid = true; 204 } 205 else 206 { 207 this.valid = false; 208 } 209 }; 210 211 /** 212 * íì¼ ì´ë¦ì íì¥ì를 ì´ì©í´ì 주ì´ì§ íì¼ ì´ë¦ì ê°ì§ íì¼ì´ ì¬ì§(그림) íì¼ì¸ì§ ì¬ë¶ë¥¼ ëë린ë¤. 213 * 214 * @param fileName íì¼ ì´ë¦ 215 * @returns ì¬ì§(그림) íì¼ì´ë©´ true, ìëë©´ false 216 */ 217 function isImageFile(fileName) 218 { 219 return (fileName.toLowerCase().match(/\.(jpg|jpeg|png|gif)$/)); 220 } 221 222
223 /** 224 * íì¼ ì´ë¦ì íì¥ì를 ì´ì©í´ì 주ì´ì§ íì¼ ì´ë¦ì ê°ì§ íì¼ì´ ëìì íì¼ì¸ì§ ì¬ë¶ë¥¼ ëë린ë¤. 225 * 226 * @param fileName íì¼ ì´ë¦ 227 * @returns ëìì íì¼ì´ë©´ true, ìëë©´ false 228 */ 229 function isMovieFile(fileName) 230 { 231 return (fileName.toLowerCase().match(/\.(avi|mp4|mpg|mpeg|mpe|wmv|asf|asx)$/)); 232 } 233 234 235 function setCookie(name, value, expireDay) 236 { 237 var cookies = name + '=' + escape(value) + '; path=/ '; 238 239 if (typeof expireDay != 'undefined') 240 { 241 var expire = new Date(); 242 expire.setDate(expire.getDate() + expireDay); 243 cookies += ';expires=' + expire.toGMTString() + ';'; 244 } 245 246 document.cookie = cookies; 247 } 248 249 function getCookie(name) { 250 name = name + '='; 251 var cookieData = document.cookie; 252 253 var start = cookieData.indexOf(name); 254 var value = ''; 255 256 if (start != -1) 257 { 258 start += name.length; 259 var end = cookieData.indexOf(';', start); 260 if (end == -1) 261 { 262 end = cookieData.length; 263 } 264 value = cookieData.substring(start, end); 265 } 266 return unescape(value); 267 } 268 269 270 function removeDuplicatedItem(list) 271 { 272 if (list instanceof Array) 273 { 274 var removeCount = 0; 275 for (var i = 0 ; i < list.length ; i++) 276 { 277 for (var j = i + 1 ; j < list.length ; j++) 278 { 279 removeCount = 0; 280 281 if (list[i] == list[j]) 282 { 283 list.splice(j, 1); 284 285 j--; 286 removeCount++; 287 } 288 } 289 i -= removeCount; 290 } 291 } 292 } 293 294 295 /** 296 * ììì objectì í¬í¨ëì´ ì´ë²¤í¸ ë°ìê³¼ ìì ì ë´ë¹í ì´ë²¤í¸ ê´ë¦¬ì 297 */ 298 function EventDispatcher() 299 { 300 this.listenerMap = {}; 301 } 302 303 /* ì´ë²¤í¸ 리ì¤ë를 ë±ë¡íë¤. */ 304 EventDispatcher.prototype.addEventListener = function(eventType, fnListener) 305 { 306 var listeners = this.listenerMap[eventType]; 307 if (listeners === undefined) 308 { 309 listeners = []; 310 this.listenerMap[eventType] = listeners; 311 } 312 313 listeners.push(fnListener); 314 }; 315 316 /* ì´ë²¤í¸ 리ì¤ë를 ì ê±°íë¤. */ 317 EventDispatcher.prototype.removeEventListener = function(eventType, fnListener) 318 { 319 var listeners = this.listenerMap[eventType]; 320 if (listeners) 321 { 322 for (var i in listeners) 323 { 324 if (listeners[i] === fnListener) 325 { 326 listeners.splice(i, 1); 327 break; 328 } 329 } 330 } 331 }; 332 333 /* ì´ë²¤í¸ë¥¼ ë°ììí¨ë¤. */ 334 EventDispatcher.prototype.dispatchEvent = function(eventType) 335 { 336 var listeners = this.listenerMap[eventType]; 337 338 if (listeners) 339 { 340 var args = []; 341 for (var j = 1 ; j < arguments.length ; j++) 342 { 343 args.push(arguments[j]); 344 } 345 346 for (var i in listeners) 347 { 348 listeners[i].apply(this, args); 349 } 350 } 351 }; 352 353 354 function zeroFill( number, width ) 355 { 356 width -= number.toString().length; 357 if (width > 0) { 358 return new Array(width + (/\./.test(number) ? 2 : 1)).join('0') 359 + number; 360 } 361 return number + ""; 362 } 363 364 365 function justifyLabels() 366 { 367 $(".form_item label").each(function(index, label) { 368 var $label = $(label); 369 var labelWidth = $label.width(); 370 labelWidth = 80; 371 var text = $label.html().trim(); 372 373 var div = $("<div>"); 374 div.css("width", " 200px") 375 div.css("height", "15px"); 376 div.html(text); 377 378 $label.empty(); 379 $label.append(div); 380 381 var fontName = $label.css("font-family"); 382 var wordWidth = getWidthOfText(text, fontName, $label.css("font-size")); 383 384 var letterSpacing = ((((labelWidth - 0) - (wordWidth + 0)) / (text.length - 1))) * 1.0; 385 386 $label.css("letter-spacing", letterSpacing + "px"); 387 }); 388 389 390 function getWidthOfText(txt, fontname, fontsize) 391 { 392 // Create dummy span 393 var e = document.createElement('span'); 394 // Set font-size 395 e.style.fontSize = fontsize; 396 // Set font-face / font-family 397 e.style.fontFamily = fontname; 398 // Set text 399 e.innerHTML = txt; 400 document.body.appendChild(e); 401 // Get width NOW, since the dummy span is about to be removed from the document 402 var w = e.offsetWidth; 403 // Cleanup 404 document.body.removeChild(e); 405 // All right, we're done 406 return w; 407 } 408 } 409 410 function formatNumber(x) 411 { 412 return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); 413 } 414 415 function formatNewline(src) 416 { 417 return replaceAll(src, "\n", "<br>"); 418 } 419 420 function replaceAll(str, searchStr, replaceStr) 421 { 422 return str.split(searchStr).join(replaceStr); 423 } 424 425 /* query stringì parsing í´ì json ì¼ë¡ ëë림 */ 426 function getUrlParams() { 427 var params = {}; 428 window.location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { params[key] = value; }); 429 return params; 430 }; 431 432 433 /*color*/ 434 435 const hsbToHex = (h, s, b) => { 436 let rgb = hsbToRgb(h, s, b); 437 return rgbToHex(rgb[0], rgb[1], rgb[2]); 438 } 439 440 const hexToHsb = hex=>{ 441 let rgb = hexToRgb(hex); 442 return rgbToHsb(rgb[0], rgb[1], rgb[2]); 443 } 444 445 const rgbToHex = (r, g, b) => 446 ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); 447 448 const hexToRgb = hex => { 449 let alpha = false, 450 h = hex.slice(hex.startsWith('#') ? 1 : 0); 451 if (h.length === 3) h = [...h].map(x => x + x).join(''); 452 else if (h.length === 8) alpha = true; 453 h = parseInt(h, 16); 454 var result = [(h >>> (alpha ? 24 : 16)),((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)),((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)), (alpha ? `, ${h & 0x000000ff}` : '')]; 455 456 for(i in result){ 457 result[i] = Math.round(result[i]); 458 } 459 460 return result; 461}; 462 463const rgbToHsb = (r, g, b) => { 464 r /= 255; 465 g /= 255; 466 b /= 255; 467 const v = Math.max(r, g, b), 468 n = v - Math.min(r, g, b); 469 const h = 470 n === 0 ? 0 : n && v === r ? (g - b) / n : v === g ? 2 + (b - r) / n : 4 + (r - g) / n; 471 var result = [60 * (h < 0 ? h + 6 : h), v && (n / v) * 100, v * 100] 472 473 for(i in result){ 474 result[i] = Math.round(result[i]); 475 } 476 477 return result; 478}; 479 480const hsbToRgb = (h, s, b) => { 481 s /= 100; 482 b /= 100; 483 const k = (n) => (n + h / 60) % 6; 484 const f = (n) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1))); 485 var result = [255 * f(5), 255 * f(3), 255 * f(1)]; 486 487 for(i in result){ 488 result[i] = Math.round(result[i]); 489 } 490 491 return result; 492}; 493 494function lpad(str, padLen, padStr) { 495 if (padStr.length > padLen) {
496 console.log("ì¤ë¥ : ì±ì°ê³ ì íë 문ìì´ì´ ìì² ê¸¸ì´ë³´ë¤ í½ëë¤"); 497 return str; 498 } 499 str += ""; // 문ìë¡ 500 padStr += ""; // 문ìë¡ 501 while (str.length < padLen) 502 str = padStr + str; 503 str = str.length >= padLen ? str.substring(0, padLen) : str; 504 return str; 505} 506 507function rpad(str, padLen, padStr) { 508 if (padStr.length > padLen) { 509 console.log("ì¤ë¥ : ì±ì°ê³ ì íë 문ìì´ì´ ìì² ê¸¸ì´ë³´ë¤ í½ëë¤"); 510 return str + ""; 511 } 512 str += ""; // 문ìë¡ 513 padStr += ""; // 문ìë¡ 514 while (str.length < padLen) 515 str += padStr; 516 str = str.length >= padLen ? str.substring(0, padLen) : str; 517 return str; 518}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.