1if (!window.ccsJQuery) 2 window.ccsJQuery = jQuery; 3else 4 $ = jQuery = window.ccsJQuery; 5 6(function ($) { 7 var UrlParameter = function(param) { 8 if (arguments.length == 0) return this; 9 var parts = []; 10 if (param == "") { 11 this.isEmpty = true; 12 } else if (arguments.length == 2) { 13 parts = arguments; 14 } else if (typeof(param) == "string") { 15 parts = param.replace( /\+/ig , " ").split("="); 16 this.name = decodeURIComponent(parts[0]); 17 this.value = decodeURIComponent(parts[1]); 18 return this; 19 } else { 20 parts = param; 21 }; 22 this.name = parts[0]; 23 this.value = parts[1]; 24 return this; 25 }; 26 27 UrlParameter.prototype.toString = function() { 28 if (this.isEmpty) 29 return ""; 30 return encodeURIComponent(this.name) + "=" + encodeURIComponent(this.value); 31 }; 32 33 var Url = function(url) { 34 if (!url) 35 url = window.location.href; 36 37 var anchorIndex = url.indexOf("#"); 38 if (anchorIndex != -1) { 39 this._anchor = url.substring(anchorIndex + 1); 40 url = url.substring(0, anchorIndex); 41 } 42 43 this._params = []; 44 var paramIndex = url.indexOf("?"); 45 if (paramIndex != -1) { 46 this._baseUrl = url.substring(0, paramIndex); 47 this.params(url.substring(paramIndex + 1)); 48 } else { 49 this._baseUrl = url; 50 } 51 }; 52 53 Url.prototype.params = function(params) { 54 var parts = params.split("&"); 55 for (var i = 0; i < parts.length; i++) { 56 this.addParameter(parts[i]); 57 }; 58 }; 59 60 Url.prototype.addParameter = function() { 61 var param = UrlParameter.apply(new UrlParameter(), arguments); 62 this._params.push(param); 63 return param; 64 }; 65 66 Url.prototype.removeParameter = function(name) { 67 var newParams = []; 68 for (var i = 0; i < this._params.length; i++) { 69 var param = this._params[i]; 70 if (param.name != name) 71 newParams.push(param); 72 }; 73 this._params = newParams; 74 }; 75 76 Url.prototype.getParameter = function(name) { 77 for (var i = 0; i < this._params.length; i++) { 78 var param = this._params[i]; 79 if (param.name == name) 80 return param; 81 }; 82 return null; 83 }; 84 85 Url.prototype.getParameterValue = function(name) { 86 var p = this.getParameter(name); 87 return (!p) ? null : p.value; 88 }; 89 90 Url.prototype.parameter = function(name, value) { 91 var p = this.getParameter(name); 92 if (arguments.length == 2) { 93 if (p) 94 p.value = value; 95 else 96 this.addParameter(name, value); 97 return value; 98 } else { 99 return (!p) ? null : p.value; 100 } 101 }; 102 103 Url.prototype.anchor = function(anchor) { 104 if (arguments.length > 0) 105 this._anchor = anchor; 106 return this._anchor; 107 }; 108 109 Url.prototype.parameterString = function() { 110 var r = []; 111 for (var i = 0; i < this._params.length; i++) { 112 r.push(this._params[i].toString()); 113 } 114 return r.join("&"); 115 }; 116 117 Url.prototype.toString = function() { 118 var res = this._baseUrl; 119 if (this._params.length > 0) 120 res += "?" + this.parameterString(); 121 if (this._anchor) 122 res += "#" + this._anchor; 123 return res; 124 }; 125 126 $.fn.Url = Url; 127})(jQuery); 128 129 130(function ($) { 131 132 var methods = {}; 133 134 var binds = {}; 135 136 methods.bind = function (func) { 137 func.call(this); 138 if (!binds[this.selector]) 139 binds[this.selector] = []; 140 binds[this.selector].push(func); 141 }; 142 143 methods.reBind = function () { 144 var c = this; 145 $.each(binds, function (selector) { 146 $.each(this, function () { 147 this.call(c.find(selector)); 148 }); 149 }); 150 }; 151 152 $.fn.ccsBind = function (method) { 153 if (methods[method]) { 154 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 155 } else if (typeof method === 'function' || !method) { 156 return methods.bind.apply(this, arguments); 157 } else { 158 $.error('Method ' + method + ' does not exist on jQuery.ccsBind'); 159 return $; 160 }; 161 }; 162})(jQuery); 163 164 165 166(function ($) { 167 168 function stringToRegExp(string) { 169 var str = String(string); 170 str = str.replace(/\\/g, "\\\\"); 171 str = str.replace(/\//g, "\\/"); 172 str = str.replace(/\./g, "\\."); 173 str = str.replace(/\(/g, "\\("); 174 str = str.replace(/\)/g, "\\)"); 175 str = str.replace(/\[/g, "\\["); 176 str = str.replace(/\]/g, "\\]"); 177 return str; 178 }; 179 180 function parseParams(text,substitutions) { 181 // replace the {0}, ... with corresponded substitution string and return the result 182 var resString = text; 183 if (resString != "" && substitutions != null) { 184 var array = (typeof(substitutions) != "object") ? (new Array(substitutions)) : substitutions; 185 var icount = array.length; 186 for (var i = 0; i < icount; i++) 187 resString = resString.replace("{" + i + "}", array[i]); 188 delete array; 189 array = null; 190 } 191 return resString; 192 }; 193 194 function ccsShowError(control, msg) { 195 alert(msg); 196 control.focus(); 197 return false; 198 }; 199 200 function validate(control) { 201 202 var errorMessage = control.data("ccsErrorMessage"); 203 var customErrorMessage = (typeof(errorMessage) != "undefined"); 204 205 var ccsCaption = control.data("ccsCaption"); 206 var ccsRequired = control.data("ccsRequired"); 207 var ccsMinLength = control.data("ccsMinLength"); 208 var ccsMaxLength = control.data("ccsMaxLength"); 209 var ccsInputMask = control.data("ccsInputMask"); 210 var ccsRegExp = control.data("ccsRegExp"); 211 var ccsDateFormat = control.data("ccsDateFormat"); 212 var ccsValidator = control.data("ccsValidator"); 213 var value = control.val(); 214 215 216 if (typeof(ccsRequired) == "boolean" && ccsRequired) 217 if (value == "") 218 return ccsShowError(control, customErrorMessage ? errorMessage : 219 parseParams(Globalize.cultures["default"].messages["CCS_RequiredField"], ccsCaption)); 220
221 if (typeof(ccsMinLength) == "number") 222 if (value != "" && value.length < parseInt(ccsMinLength)) 223 return ccsShowError(control, customErrorMessage ? errorMessage : 224 parseParams(Globalize.cultures["default"].messages["CCS_MinimumLength"], [ccsCaption, parseInt(ccsMinLength)])); 225 226 if (typeof(ccsMaxLength) == "number") 227 if (value != "" && value.length > parseInt(ccsMaxLength)) 228 return ccsShowError(control, customErrorMessage ? errorMessage : 229 parseParams(Globalize.cultures["default"].messages["CCS_MaximumLength"], [ccsCaption, parseInt(ccsMaxLength)])); 230 231 if (typeof(ccsInputMask) == "string") { 232 var mask = ccsInputMask; 233 var maskRE = new RegExp(stringToRegExp(mask).replace(/\u01a0/g, "\\d").replace(/\u01a0/g, "[A-Za-z]"), "i"); 234 if (value != "" && (value.search(maskRE) == -1)) 235 return ccsShowError(control, customErrorMessage ? errorMessage : 236 parseParams(Globalize.cultures["default"].messages["CCS_IncorrectValue"], ccsCaption)); 237 } 238 239 if (typeof(ccsRegExp) == "string") 240 if (value != "" && (value.search(new RegExp(ccsRegExp, "i")) == -1)) 241 return ccsShowError(control, customErrorMessage ? errorMessage : 242 parseParams(Globalize.cultures["default"].messages["CCS_IncorrectValue"], ccsCaption)); 243 244 if (typeof(ccsDateFormat) == "string") { 245 if (value != "" && ! Globalize.parseDate(value, ccsDateFormat) ) 246 return ccsShowError(control, customErrorMessage ? errorMessage : 247 parseParams(Globalize.cultures["default"].messages["CCS_IncorrectFormat"], [ccsCaption, ccsDateFormat])); 248 } 249 250 if (typeof(ccsValidator) == "function") 251 if (!ccsValidator()) 252 return ccsShowError(control, customErrorMessage ? errorMessage : 253 parseParams(Globalize.cultures["default"].messages["CCS_IncorrectValue"], ccsCaption)); 254 255 return true; 256 }; 257 258 $.fn.ccsValidate = function () { 259 if ($("body").data("disableValidation")) return true; 260 var res = true; 261 $(this).each(function(){ 262 $(this).find("*").each(function(){ 263 res = res && validate($(this)); 264 }); 265 }); 266 return res; 267 }; 268})(jQuery); 269 270(function ($) { 271 $(function() { 272 var Url = $.fn.Url; 273 var changeSizeHandler = function(formName, size) { 274 var u = new Url(window.location.href.toString()); 275 u.parameter(formName + "PageSize", size); 276 u.parameter(formName + "Page", 1); 277 window.location.href = u.toString(); 278 }; 279 $("select[data-grid-size]").ccsBind(function() { 280 $(this).bind("change", function() { 281 var obj = $(this); 282 var handler = obj.data("ccsChangeSize"); 283 if (handler) 284 handler(obj.data("grid-size"), obj.val()); 285 }); 286 $(this).each(function() { 287 if (!$(this).data("ccsChangeSize")) 288 $(this).data("ccsChangeSize", changeSizeHandler); 289 }); 290 }); 291 292 var changePageHandler = function(formName, page) { 293 var u = new Url(window.location.href.toString()); 294 u.parameter(formName + "Page", page); 295 window.location.href = u.toString(); 296 }; 297 $("input[data-grid-page]").ccsBind(function() { 298 $(this).bind("click", function() { 299 var obj = $(this); 300 var handler = obj.data("ccsChangePage"); 301 if (handler) 302 handler(obj.data("grid-page"), obj.parent().find("input[name='" + obj.data("grid-page") + "Page']").val()); 303 }); 304 $(this).each(function() { 305 if (!$(this).data("ccsChangePage")) 306 $(this).data("ccsChangePage", changePageHandler); 307 }); 308 }); 309 310 $("div[data-emulate-form]").ccsBind(function() { 311 this.each(function() { 312 var self = $(this); 313 self.find("input[type='submit'], input[type='image']").click(function() { 314 $("form[data-need-form-emulation]").data("emulate-form", self); 315 }); 316 }); 317 }); 318 319 $("form[data-need-form-emulation]").bind("submit", function () { 320 return $($(this).data("emulate-form")).triggerHandler($.Event("submit"), {}); 321 }); 322 });
323})(jQuery); 324 325 326(function($) { 327 var isO = !!window.opera, isG = (navigator.userAgent.indexOf("Firefox") > -1); 328 329 var nonConstantCharacters = { "\u01a0": "\u01a0", "\u01a1": "\u01a1" }; 330 331 function isConstantCharacter(mask, num) { 332 return !nonConstantCharacters[mask.charAt(num)]; 333 }; 334 335 var keys = { 336 "backspace": 8, // backspace 337 "tab": 9, // tab 338 "enter": 13, // enter 339 "shift": 16, // shift 340 "ctrl": 17, // ctrl 341 "alt": 18, // alt 342 "pauseBreak": 19, // pause/break 343 "capsLock": 20, // caps lock 344 "escape": 27, // escape 345 "pageUp": 33, // page up, to avoid displaying alternate character and confusing people 346 "pageDown": 34, // page down 347 "end": 35, // end 348 "home": 36, // home 349 "leftArrow": 37, // left arrow 350 "upArrow": 38, // up arrow 351 "rightArrow": 39, // right arrow 352 "downArrow": 40, // down arrow 353 "insert": 45, // insert 354 "delete": 46, // delete 355 "del": 46, // delete 356 "leftWindow": 91, // left window 357 "rightWindow": 92, // right window 358 "selectKey": 93, // select key 359 "numpad0": 96, // numpad 0 360 "numpad1": 97, // numpad 1 361 "numpad2": 98, // numpad 2 362 "numpad3": 99, // numpad 3 363 "numpad4": 100, // numpad 4 364 "numpad5": 101, // numpad 5 365 "numpad6": 102, // numpad 6 366 "numpad7": 103, // numpad 7 367 "numpad8": 104, // numpad 8 368 "numpad9": 105, // numpad 9 369 "multiply": 106, // multiply 370 "add": 107, // add 371 "subtract": 109, // subtract 372 "decimalPoint": 110, // decimal point 373 "divide": 111, // divide 374 "F1": 112, // F1 375 "F2": 113, // F2 376 "F3": 114, // F3 377 "F4": 115, // F4 378 "F5": 116, // F5 379 "F6": 117, // F6 380 "F7": 118, // F7 381 "F8": 119, // F8 382 "F9": 120, // F9 383 "F10": 121, // F10 384 "F11": 122, // F11 385 "F12": 123, // F12 386 "numLock": 144, // num lock 387 "scrollLock": 145, // scroll lock 388 ";": 186, // semi-colon 389 "=": 187, // equal-sign 390 ",": 188, // comma 391 "-": 189, // dash 392 ".": 190, // period 393 "/": 191, // forward slash 394 "`": 192, // grave accent 395 "[": 219, // open bracket 396 "\\": 220, // back slash 397 "]": 221, // close bracket 398 "'": 222 // single quote 399 }; 400 401 function caret(element, begin, end) { 402 if (typeof begin == 'number') { 403 end = (typeof end == 'number') ? end : begin; 404 if (element.setSelectionRange) { 405 element.focus(); 406 element.setSelectionRange(begin, end); 407 } else if (element.createTextRange) { 408 var range = element.createTextRange(); 409 range.collapse(true); 410 range.moveEnd('character', end); 411 range.moveStart('character', begin); 412 range.select(); 413 } 414 } else { 415 if (element.setSelectionRange) { 416 begin = element.selectionStart; 417 end = element.selectionEnd; 418 } else if (document.selection && document.selection.createRange) { 419 var range = document.selection.createRange(); 420 begin = 0 - range.duplicate().moveStart('character', -100000); 421 end = begin + range.text.length; 422 } 423 return { begin: begin, end: end }; 424 } 425 }; 426 427 function getKeycode(e) { 428 if (window.event && window.event.keyCode) 429 return window.event.keyCode; 430 else 431 return e.which; 432 }; 433 434 function genSequence(str, times) { 435 var res = ''; 436 for (var i = 0; i < times; i++) 437 res += str; 438 return res; 439 }; 440 441 function sType(c, placeholder) { 442 if (c.charAt(0).match(/[0-9]/g)) return '\u01a0'; 443 if (c.charAt(0).match(/[a-zA-Z]/g)) return '\u01a1'; 444 if (c.charAt(0) == placeholder) return placeholder; 445 return ''; 446 }; 447 448 function getValueFromMaskedValue(val, mask, placeholder) { 449 var res = ""; 450 var i; 451 for (i = 0; i < val.length; i++) 452 if (!isConstantCharacter(mask, i) && sType(val.charAt(i), placeholder) != '') 453 res += val.charAt(i); 454 return res; 455 }; 456 457 function maskCanBeApplied(val, mask, placeholder) { 458 var i = 0, j = 0, res = ''; 459 for (i = 0; i < mask.length; i++) 460 if (j < val.length && mask.charAt(i) == sType(val.charAt(j), placeholder) && !isConstantCharacter(mask, i)) { 461 res += val.charAt(j); 462 j++; 463 } else if (isConstantCharacter(mask, i)) { 464 res += mask.charAt(i); 465 } else if (sType(val.charAt(j), placeholder) == placeholder) { 466 res += placeholder; 467 j++; 468 } else if (j >= val.length) { 469 res += isConstantCharacter(mask, i) ? mask.charAt(i) : placeholder; 470 } else
471 return { ans: false }; 472 return { ans: true, result: res }; 473 }; 474 475 function getNextSymbolPosition(str, start, placeholder) { 476 for (var i = start; i < str.length; i++) 477 if (sType(str.charAt(i), placeholder) != '') 478 return i + 1; 479 return start + 1; 480 }; 481 482 function calculatedValue(e, control, keycode) { 483 var s = caret(control); 484 var $control = $(control); 485 var placeholder = $control.data("ccsPlaceholder"); 486 var mask = $control.data("ccsInputMaskValue"); 487 var res; 488 var mid = ''; 489 if (keycode == keys.backspace || keycode == keys.del) { 490 if (s.begin == s.end) 491 if (keycode == keys.backspace) { 492 s.begin--; 493 for (var i = s.begin; i > 0; i--) { 494 if (!isConstantCharacter(mask, i)) { 495 s.begin = i; 496 $control.data("newCaretPosition", i); 497 break; 498 } 499 } 500 } else { 501 s.end++; 502 for (var i = s.end; i < mask.length; i++) { 503 if (!isConstantCharacter(mask, i)) { 504 s.end = i; 505 break; 506 } 507 } 508 } 509 res = control.value.substring(0, Math.max(0, s.begin)); 510 for (var i = s.begin; i < s.end; i++) { 511 res += isConstantCharacter(mask, i) ? mask.charAt(i) : placeholder; 512 if (!$control.data("newCaretPosition")) 513 $control.data("newCaretPosition", i); 514 } 515 res += control.value.substring(Math.min(s.end, control.value.length)); 516 } else { 517 if (s.begin == s.end) 518 s.end++; 519 res = control.value.substring(0, s.begin); 520 var pos; 521 for (pos = s.begin; pos < control.value.length; pos++) 522 if (isConstantCharacter(mask, pos)) 523 res += mask.charAt(pos); 524 else { 525 res += String.fromCharCode(keycode); 526 $control.data("newCaretPosition", pos+1); 527 break; 528 } 529 if (!$control.data("newCaretPosition")) 530 $control.data("newCaretPosition", s.begin); 531 for (pos++; pos < s.end; pos++) 532 if (isConstantCharacter(mask, pos)) 533 res += mask.charAt(pos); 534 else 535 res += placeholder; 536 res += control.value.substring(pos); 537 } 538 return res; 539 }; 540 541 function getNewCaretPosition(control, keycode, newValue) { 542 var res; 543 var cur = caret(control); 544 var $control = $(control); 545 var placeholder = $control.data("ccsPlaceholder"); 546 var mask = $control.data("ccsInputMaskValue"); 547 if ($control.data("newCaretPosition")) { 548 var pos = $control.data("newCaretPosition"); 549 $control.data("newCaretPosition", null); 550 for (var i = pos; i < mask.length; i++) 551 if (!isConstantCharacter(mask, i)) 552 return i; 553 for (var i = mask.length; i >= 0; i--) 554 if (!isConstantCharacter(mask, i)) 555 return i + 1; 556 } 557 558 if (keycode == keys.leftArrow) { 559 if (cur.begin != cur.end) 560 return cur.begin; 561 for (var i = cur.begin - 1; i >= 0; i--) 562 if (!isConstantCharacter(mask, i)) 563 return i; 564 return -1; 565 } 566 567 if (keycode == keys.rightArrow) { 568 if (cur.begin != cur.end) 569 return cur.end; 570 for (var i = cur.end + 1; i < mask.length; i++) 571 if (!isConstantCharacter(mask, i)) 572 return i; 573 for (var i = mask.length; i >= 0; i--) 574 if (!isConstantCharacter(mask, i)) 575 return i + 1; 576 return -1; 577 } 578 579 if (keycode == keys.backspace) { 580 res = cur.begin; 581 if (cur.end - cur.begin > 0) 582 return cur.begin; 583 if (res != 0 && sType(newValue.charAt(res - 1), placeholder) != '') 584 return res - 1; 585 for (var i = cur.begin - 1; i >= 0; i--) 586 if (sType(newValue.charAt(i), placeholder) != '') 587 return i + 1; 588 return res; 589 } else if (keycode == keys.del) { 590 res = cur.begin; 591 for (var i = res; i < newValue.length; i++) 592 if (sType(newValue.charAt(i), placeholder) != '') 593 return i; 594 return newValue.length; 595 } else { 596 res = cur.begin; 597 if (res + 1 == newValue.length) 598 return res + 1; 599 if (sType(newValue.charAt(res), placeholder) != '') 600 return res + 1; 601 for (var i = res; i < newValue.length; i++) 602 if (sType(newValue.charAt(i), placeholder) != '') 603 return i + 1; 604 } 605 return -1; 606 }; 607 608 function doShift(control, clearValue, keycode) { 609 if (keycode == keys.del) { 610 var $control = $(control); 611 var mask = $control.data("ccsInputMaskValue"); 612 var placeholder = $control.data("ccsPlaceholder"); 613 var c = caret(control); 614 if (c.begin == c.end) 615 c.end++; 616 var clearC = { }; 617 var clearMask = ""; 618 var j = -1; 619 for (var i = 0; i<mask.length; i++) { 620 if (!isConstantCharacter(mask, i)) { 621 clearMask += mask.charAt(i); 622 j++; 623 if (isNaN(clearC.begin) && i >= c.begin) 624 clearC.begin = j; 625 else if (!isNaN(clearC.begin) && isNaN(clearC.end) && i >= c.end) 626 clearC.end = j; 627 } 628 } 629 var shiftLength = 0; 630 var lastChar = clearMask.charAt(clearC.end - 1); 631 for (var i = clearC.end-1; i >= clearC.begin; i--) { 632 if (clearMask.charAt(i) != lastChar) 633 break; 634 shiftLength++; 635 } 636 var lastShiftPosition; 637 for (var i = clearC.end; i < clearMask.length; i++) 638 if (clearMask.charAt(i) != lastChar) { 639 lastShiftPosition = i; 640 break; 641 } 642 if (isNaN(lastShiftPosition)) 643 lastShiftPosition = clearMask.length; 644 var shiftFragment = clearValue.substring(clearC.end - shiftLength, lastShiftPosition); 645 var res = clearValue.substring(0, clearC.end - shiftLength); 646 res += shiftFragment.substring(shiftLength) + genSequence(placeholder, shiftLength); 647 res += clearValue.substring(lastShiftPosition); 648 return res; 649 } 650 return clearValue; 651 } 652 653 function inputMask(e, sender) { 654 var $sender = $(sender); 655 var placeholder = $sender.data("ccsPlaceholder"); 656 var keycode = getKeycode(e, placeholder); 657 if (keycode < 32 && keycode != keys.backspace) 658 if (keycode == 0) { 659 var mask = $sender.data("ccsInputMaskValue"); 660 var c = caret(sender); 661 var val = $sender.val(); 662 if (mask.length == val.length) 663 setTimeout(function(parameters) { 664 $sender.val(val); 665 caret(sender, c.begin); 666 }, 100); 667 var pasteValue = val.substr(c.begin - 1, 1); 668 var newVal = val.substring(0, c.begin - 1); 669 for (var i = c.begin; i < mask.length - (val.length - c.begin) + 1; i++) 670 newVal += isConstantCharacter(mask, i) ? mask.charAt(i) : placeholder; 671 newVal += val.substring(mask.length - (val.length - c.begin) + 1); 672 $sender.val(newVal); 673 caret(sender, c.begin - 1); 674 keycode = pasteValue.charCodeAt(0); 675 } else { 676 return true; 677 } 678 if (!String.fromCharCode(keycode).match(/[a-zA-Z0-9]/g) && keycode != keys.backspace && keycode != keys.del) 679 return false; 680 var newControlVal = calculatedValue(e, sender, keycode); 681 var newVal = getValueFromMaskedValue(newControlVal, $sender.data("ccsInputMaskValue"), placeholder); 682 newVal = doShift(sender, newVal, keycode); 683 var newMaskedValue = maskCanBeApplied(newVal, $sender.data("ccsInputMaskValue"), placeholder); 684 if (newMaskedValue.ans) { 685 var cp = getNewCaretPosition(sender, keycode, newMaskedValue.result); 686 sender.value = newMaskedValue.result; 687 caret(sender, cp); 688 } 689 return false; 690 }; 691 692 var events = { }; 693 events.onkeypress = function(e) { 694 var keycode = getKeycode(e); 695 if ((e.shiftKey || e.ctrlKey || e.altKey) && (keycode != keys.del && keycode != keys.backspace)) { 696 return true; 697 } 698 return inputMask(e, this); 699 }; 700 701 events.onkeydown = function(e) { 702 var keycode = getKeycode(e); 703 if ((e.shiftKey || e.ctrlKey || e.altKey) && (keycode != keys.del && keycode != keys.backspace)) { 704 return true; 705 }
706 if (keycode == keys.backspace && !isG || keycode == keys.del || keycode == 0) 707 return inputMask(e, this); 708 if ((keycode == keys.leftArrow || keycode == keys.rightArrow) && !e.shiftKey) { 709 var pos = getNewCaretPosition(this, keycode); 710 if (pos != -1) 711 caret(this, pos); 712 return false; 713 } 714 }; 715 716 events.onfocus = function(e) { 717 var $this = $(this); 718 var oThis = this; 719 if (this.value == '') { 720 this.value = $this.data("blankValue"); 721 setTimeout(function() { 722 caret(oThis, $this.data("blankValue").indexOf($this.data("ccsPlaceholder"))); 723 }, 10); 724 } 725 }; 726 727 events.onblur = function(e) { 728 var $this = $(this); 729 if (this.value == $this.data("blankValue")) 730 this.value = ''; 731 }; 732 733 events.onpaste = function(e) { 734 var $this = $(this); 735 var oThis = this; 736 var c = caret(this); 737 var oldVal = $this.val(); 738 var placeholder = $this.data("ccsPlaceholder"); 739 var mask = $this.data("ccsInputMaskValue"); 740 var last = c.begin; 741 setTimeout(function() { 742 var pasteValue = $this.val().substring(c.begin, $this.val().length - (oldVal.length - c.end)); 743 var j = 0; 744 var res = oldVal.substring(0, c.begin); 745 for (var i = c.begin; i < mask.length; i++) { 746 if (j >= pasteValue.length) { 747 res += oldVal.charAt(i); 748 } else if (mask.charAt(i) == pasteValue.charAt(j) || (!isConstantCharacter(mask, i) && (pasteValue.charAt(j) == placeholder || sType(pasteValue.charAt(j), placeholder) == mask.charAt(i)))) { 749 res += pasteValue.charAt(j); 750 last = i + 1; 751 j++; 752 } else { 753 res += (isConstantCharacter(mask, i) ? mask.charAt(i) : oldVal.charAt(i)); 754 } 755 } 756 $this.val(res); 757 $this.data("newCaretPosition", last); 758 var cu = getNewCaretPosition(oThis); 759 if (cu != -1) 760 caret(oThis, cu); 761 }, 20); 762 }; 763 764 events.oncut = function(e) { 765 var $this = $(this); 766 var c = caret(this); 767 var placeholder = $this.data("ccsPlaceholder"); 768 var mask = $this.data("ccsInputMaskValue"); 769 var res = $this.val().substring(0, c.begin); 770 for (var i = c.begin; i < c.end; i++) { 771 res += isConstantCharacter(mask, i) ? mask.charAt(i) : placeholder; 772 } 773 res += $this.val().substring(c.end); 774 $this.val(res); 775 caret(this, c.begin); 776 }; 777 778 779 var defaults = { 780 placeholder: "_" 781 }; 782 783 var methods = { 784 init: function(options) { 785 var settings = $.extend({ }, defaults, options); 786 787 return this.each(function() { 788 var control = $(this); 789 control.data("ccsPlaceholder", settings.placeholder); 790 if (settings.inputMask) 791 control.data("ccsInputMaskValue", settings.inputMask); 792 var res = ''; 793 for (var i = 0; i < settings.inputMask.length; i++) 794 if (!isConstantCharacter(settings.inputMask, i)) 795 res += settings.placeholder; 796 else 797 res += settings.inputMask.charAt(i); 798 control.data("blankValue", res); 799 control.bind("keypress", events.onkeypress); 800 control.bind("keydown", events.onkeydown); 801 control.bind("focus", events.onfocus); 802 control.bind("blur", events.onblur); 803 control.bind("paste", events.onpaste); 804 control.bind("cut", events.oncut); 805 }); 806 } 807 }; 808 809 $.fn.ccsInputMask = function(method) { 810 if (methods[method]) { 811 return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 812 } else if (typeof method === 'object' || !method) { 813 return methods.init.apply(this, arguments); 814 } else { 815 return methods.init.call(this, { inputMask: method }); 816 } 817 }; 818})(jQuery); 819 820 821/* 822 json2.js 823 2011-10-19 824 825 Public Domain. 826*/ 827 828var JSON; 829if (!JSON) { 830 JSON = {}; 831} 832 833(function () { 834 835 function f(n) { 836 return n < 10 ? '0' + n : n; 837 } 838 839 if (typeof Date.prototype.toJSON !== 'function') { 840 841 Date.prototype.toJSON = function (key) { 842 843 return isFinite(this.valueOf()) 844 ? this.getUTCFullYear() + '-' + 845 f(this.getUTCMonth() + 1) + '-' + 846 f(this.getUTCDate()) + 'T' + 847 f(this.getUTCHours()) + ':' + 848 f(this.getUTCMinutes()) + ':' + 849 f(this.getUTCSeconds()) + 'Z' 850 : null; 851 }; 852 853 String.prototype.toJSON = 854 Number.prototype.toJSON = 855 Boolean.prototype.toJSON = function (key) { 856 return this.valueOf(); 857 }; 858 } 859 860 var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, 861 escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, 862 gap, 863 indent, 864 meta = { 865 '\b': '\\b', 866 '\t': '\\t', 867 '\n': '\\n', 868 '\f': '\\f', 869 '\r': '\\r', 870 '"' : '\\"', 871 '\\': '\\\\' 872 }, 873 rep; 874 875 function quote(string) { 876 877 escapable.lastIndex = 0; 878 return escapable.test(string) ? '"' + string.replace(escapable, function (a) { 879 var c = meta[a]; 880 return typeof c === 'string' 881 ? c
vendor: 4,414 bytes, lines 882-1011
882 : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); 883 }) + '"' : '"' + string + '"'; 884 } 885 886 887 function str(key, holder) { 888 var i, 889 k, 890 v, 891 length, 892 mind = gap, 893 partial, 894 value = holder[key]; 895 896 if (value && typeof value === 'object' && 897 typeof value.toJSON === 'function') { 898 value = value.toJSON(key); 899 } 900 901 902 if (typeof rep === 'function') { 903 value = rep.call(holder, key, value); 904 } 905 906 switch (typeof value) { 907 case 'string': 908 return quote(value); 909 910 case 'number': 911 912 return isFinite(value) ? String(value) : 'null'; 913 914 case 'boolean': 915 case 'null': 916 return String(value); 917 case 'object': 918 if (!value) { 919 return 'null'; 920 } 921 gap += indent; 922 partial = []; 923 if (Object.prototype.toString.apply(value) === '[object Array]') { 924 length = value.length; 925 for (i = 0; i < length; i += 1) { 926 partial[i] = str(i, value) || 'null'; 927 } 928 v = partial.length === 0 929 ? '[]' 930 : gap 931 ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' 932 : '[' + partial.join(',') + ']'; 933 gap = mind; 934 return v; 935 } 936 if (rep && typeof rep === 'object') { 937 length = rep.length; 938 for (i = 0; i < length; i += 1) { 939 if (typeof rep[i] === 'string') { 940 k = rep[i]; 941 v = str(k, value); 942 if (v) { 943 partial.push(quote(k) + (gap ? ': ' : ':') + v); 944 } 945 } 946 } 947 } else { 948 for (k in value) { 949 if (Object.prototype.hasOwnProperty.call(value, k)) { 950 v = str(k, value); 951 if (v) { 952 partial.push(quote(k) + (gap ? ': ' : ':') + v); 953 } 954 } 955 } 956 } 957 v = partial.length === 0 958 ? '{}' 959 : gap 960 ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' 961 : '{' + partial.join(',') + '}'; 962 gap = mind; 963 return v; 964 } 965 } 966 if (typeof JSON.stringify !== 'function') { 967 JSON.stringify = function (value, replacer, space) { 968 var i; 969 gap = ''; 970 indent = ''; 971 if (typeof space === 'number') { 972 for (i = 0; i < space; i += 1) { 973 indent += ' '; 974 } 975 } else if (typeof space === 'string') { 976 indent = space; 977 } 978 rep = replacer; 979 if (replacer && typeof replacer !== 'function' && 980 (typeof replacer !== 'object' || 981 typeof replacer.length !== 'number')) { 982 throw new Error('JSON.stringify'); 983 } 984 return str('', {'': value}); 985 }; 986 } 987 if (typeof JSON.parse !== 'function') { 988 JSON.parse = function (text, reviver) { 989 var j; 990 991 function walk(holder, key) { 992 var k, v, value = holder[key]; 993 if (value && typeof value === 'object') { 994 for (k in value) { 995 if (Object.prototype.hasOwnProperty.call(value, k)) { 996 v = walk(value, k); 997 if (v !== undefined) { 998 value[k] = v; 999 } else { 1000 delete value[k]; 1001 } 1002 } 1003 } 1004 } 1005 return reviver.call(holder, key, value); 1006 } 1007 text = String(text); 1008 cx.lastIndex = 0; 1009 if (cx.test(text)) { 1010 text = text.replace(cx, function (a) { 1011 return '\\u' +
1012 ('0000' + a.charCodeAt(0).toString(16)).slice(-4); 1013 }); 1014 } 1015 if (/^[\],:{}\s]*$/ 1016 .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') 1017 .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') 1018 .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { 1019 j = eval('(' + text + ')'); 1020 return typeof reviver === 'function' 1021 ? walk({'': j}, '') 1022 : j; 1023 } 1024 throw new SyntaxError('JSON.parse'); 1025 }; 1026 } 1027}());
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.