Artifact
4ec3cc3962e5bbafadc848301024788fc128bf43:
- File
queryParamsExtractor.js
— part of check-in
[e21afd0d7b]
at
2013-02-06 06:29:50
on branch trunk
— Если ничего не выделено, параметры извлекаются из предыдущих строк
(user:
orefkov
size: 4557)
[more...]
0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0a 24 75 6e 61 6d 65 20 71 75 65 72 79 50 pt.$uname queryP
0020: 61 72 61 6d 73 45 78 74 72 61 63 74 6f 72 0a 24 aramsExtractor.$
0030: 64 6e 61 6d 65 20 51 75 65 72 79 20 50 61 72 61 dname Query Para
0040: 6d 65 74 65 72 73 20 45 78 74 72 61 63 74 6f 72 meters Extractor
0050: 0a 0a 2f 2f 24 61 64 64 69 6e 20 67 6c 6f 62 61 ..//$addin globa
0060: 6c 0a 0a 2f 2f 67 6c 6f 62 61 6c 2e 63 6f 6e 6e l..//global.conn
0070: 65 63 74 47 6c 6f 62 61 6c 73 28 53 65 6c 66 53 ectGlobals(SelfS
0080: 63 72 69 70 74 29 0a 0a 2f 2a 20 3d 3d 3d 3d 3d cript)../* =====
0090: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00a0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00b0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00c0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
00d0: 3d 0a 0a 41 55 54 48 4f 52 3a 20 d0 92 d0 b0 d1 =..AUTHOR: .....
00e0: 81 d0 b8 d0 bb d0 b8 d0 b9 20 d0 a4 d1 80 d0 be ......... ......
00f0: d0 bb d0 be d0 b2 20 61 6b 61 20 d0 9f d0 b0 d0 ...... aka .....
0100: bb d1 8b d1 87 2c 20 70 61 6c 79 74 73 68 40 6d ....., palytsh@m
0110: 61 69 6c 2e 72 75 0a 0a 44 41 54 45 3a 20 30 32 ail.ru..DATE: 02
0120: 2e 30 39 2e 32 30 31 31 0a 0a 43 4f 4d 4d 45 4e .09.2011..COMMEN
0130: 54 3a 20 0a 09 d0 9c d0 b0 d0 ba d1 80 d0 be d1 T: .............
0140: 81 20 45 78 74 72 61 63 74 50 61 72 61 6d 65 74 . ExtractParamet
0150: 65 72 73 20 d0 bf d0 be d0 b7 d0 b2 d0 be d0 bb ers ............
0160: d1 8f d0 b5 d1 82 20 d1 81 d1 84 d0 be d1 80 d0 ...... .........
0170: bc d0 b8 d1 80 d0 be d0 b2 d0 b0 d1 82 d1 8c 20 ...............
0180: d0 ba d0 be d0 b4 20 d1 83 d1 81 d1 82 d0 b0 d0 ...... .........
0190: bd d0 be d0 b2 d0 ba d0 b8 20 0a d0 b7 d0 bd d0 ......... ......
01a0: b0 d1 87 d0 b5 d0 bd d0 b8 d0 b9 20 d0 bf d0 b0 ........... ....
01b0: d1 80 d0 b0 d0 bc d0 b5 d1 82 d1 80 d0 be d0 b2 ................
01c0: 20 d0 b7 d0 b0 d0 bf d1 80 d0 be d1 81 d0 b0 2e ...............
01d0: 20 0a d0 98 d1 81 d0 bf d0 be d0 bb d1 8c d0 b7 ...............
01e0: d0 be d0 b2 d0 b0 d0 bd d0 b8 d0 b5 3a 20 d0 b2 ............: ..
01f0: 20 d0 bf d1 80 d0 be d0 b3 d1 80 d0 b0 d0 bc d0 ...............
0200: bc d0 bd d0 be d0 bc 20 d0 bc d0 be d0 b4 d1 83 ....... ........
0210: d0 bb d0 b5 20 d0 b2 d1 8b d0 b4 d0 b5 d0 bb d0 .... ...........
0220: b8 d1 82 d1 8c 20 d1 84 d1 80 d0 b0 d0 b3 d0 bc ..... ..........
0230: d0 b5 d0 bd d1 82 20 d0 b2 d0 b8 d0 b4 d0 b0 20 ...... ........
0240: 0a 0a 20 20 20 20 20 20 20 20 d0 b7 20 3d 20 d0 .. .. = .
0250: bd d0 be d0 b2 d1 8b d0 b9 20 d0 97 d0 b0 d0 bf ......... ......
0260: d1 80 d0 be d1 81 28 22 d1 82 d0 b5 d0 ba d1 81 ......("........
0270: d1 82 20 d0 b7 d0 b0 d0 bf d1 80 d0 be d1 81 d0 .. .............
0280: b0 22 29 3b 0a 0a 20 20 20 20 d0 b8 d0 bb d0 b8 .");.. ......
0290: 20 d1 84 d1 80 d0 b0 d0 b3 d0 bc d0 b5 d0 bd d1 ...............
02a0: 82 20 d0 b2 d0 b8 d0 b4 d0 b0 0a 20 20 20 20 20 . .........
02b0: 20 20 20 d0 b7 2e d0 a2 d0 b5 d0 ba d1 81 d1 82 .............
02c0: 20 3d 20 22 d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 = ".......... .
02d0: b7 d0 b0 d0 bf d1 80 d0 be d1 81 d0 b0 22 3b 0a .............";.
02e0: 09 0a d0 b8 20 d0 b2 d1 8b d0 b7 d0 b2 d0 b0 d1 .... ...........
02f0: 82 d1 8c 20 d0 bc d0 b0 d0 ba d1 80 d0 be d1 81 ... ............
0300: 20 28 d0 bf d0 be 2d d1 83 d0 bc d0 be d0 bb d1 (....-.........
0310: 87 d0 b0 d0 bd d0 b8 d1 8e 20 43 74 72 6c 20 2b ......... Ctrl +
0320: 20 53 68 69 66 74 20 2b 20 51 29 2e 20 d0 9a d0 Shift + Q). ...
0330: be d0 b4 20 d0 be d0 bf d0 b8 d1 81 d0 b0 d0 bd ... ............
0340: d0 b8 d1 8f 20 d0 bf d0 b0 d1 80 d0 b0 d0 bc d0 .... ...........
0350: b5 d1 82 d1 80 d0 be d0 b2 20 0a d0 b7 d0 b0 d0 ......... ......
0360: bf d1 80 d0 be d1 81 d0 b0 20 d0 b1 d1 83 d0 b4 ......... ......
0370: d0 b5 d1 82 20 d0 b2 d1 81 d1 82 d0 b0 d0 b2 d0 .... ...........
0380: bb d0 b5 d0 bd 20 d0 b2 20 d0 bc d0 be d0 b4 d1 ..... .. .......
0390: 83 d0 bb d1 8c 20 d0 bd d0 b8 d0 b6 d0 b5 20 d0 ..... ........ .
03a0: b2 d1 8b d0 b4 d0 b5 d0 bb d0 b5 d0 bd d0 bd d0 ................
03b0: be d0 b3 d0 be 20 d0 b1 d0 bb d0 be d0 ba d0 b0 ..... ..........
03c0: 2e 0a 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ...=============
03d0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03e0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
03f0: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0400: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 20 2a 2f 0a ============ */.
0410: 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 .function getPre
0420: 64 65 66 69 6e 65 64 48 6f 74 6b 65 79 73 28 70 definedHotkeys(p
0430: 72 65 64 65 66 29 7b 0a 09 70 72 65 64 65 66 2e redef){..predef.
0440: 73 65 74 56 65 72 73 69 6f 6e 28 31 29 3b 0a 09 setVersion(1);..
0450: 70 72 65 64 65 66 2e 61 64 64 28 22 45 78 74 72 predef.add("Extr
0460: 61 63 74 50 61 72 61 6d 65 74 65 72 73 22 2c 20 actParameters",
0470: 22 43 74 72 6c 20 2b 20 53 68 69 66 74 20 2b 20 "Ctrl + Shift +
0480: 51 22 29 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e Q");.}..function
0490: 20 61 75 74 6f 45 78 74 72 61 63 74 28 77 6e 64 autoExtract(wnd
04a0: 2c 20 73 65 6c 29 0a 7b 0a 20 20 20 20 76 61 72 , sel).{. var
04b0: 20 74 65 78 74 20 3d 20 27 27 2c 20 76 4e 61 6d text = '', vNam
04c0: 65 20 3d 20 27 27 2c 20 69 6e 64 65 6e 74 20 3d e = '', indent =
04d0: 20 27 27 0a 20 20 20 20 66 6f 72 28 76 61 72 20 ''. for(var
04e0: 69 64 78 20 3d 20 73 65 6c 2e 62 65 67 69 6e 52 idx = sel.beginR
04f0: 6f 77 20 2d 20 31 3b 20 69 64 78 20 3e 20 30 3b ow - 1; idx > 0;
0500: 20 69 64 78 2d 2d 29 0a 20 20 20 20 7b 0a 20 20 idx--). {.
0510: 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 20 3d var line =
0520: 20 77 6e 64 2e 6c 69 6e 65 28 69 64 78 29 0a 20 wnd.line(idx).
0530: 20 20 20 20 20 20 20 69 66 28 6c 69 6e 65 2e 6d if(line.m
0540: 61 74 63 68 28 2f 5e 5c 73 2a 5b 5c 7c 22 5d 2f atch(/^\s*[\|"]/
0550: 29 29 20 20 20 20 20 20 2f 2f 20 d0 a1 d1 82 d1 )) // .....
0560: 80 d0 be d0 ba d0 b0 20 d0 bd d0 b0 d1 87 d0 b8 ....... ........
0570: d0 bd d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d1 81 20 ............ ..
0580: 7c 20 d0 b8 d0 bb d0 b8 20 22 0a 20 20 20 20 20 | ...... ".
0590: 20 20 20 20 20 20 20 74 65 78 74 20 3d 20 6c 69 text = li
05a0: 6e 65 20 2b 20 27 5c 6e 27 20 2b 20 74 65 78 74 ne + '\n' + text
05b0: 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 ;. else i
05c0: 66 28 21 6c 69 6e 65 2e 6d 61 74 63 68 28 2f 5e f(!line.match(/^
05d0: 5c 73 2a 24 2f 29 29 20 20 20 20 20 2f 2f 20 d0 \s*$/)) // .
05e0: 9d d0 b5 20 d0 bf d1 83 d1 81 d1 82 d0 b0 d1 8f ... ............
05f0: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 0a 20 20 .............
0600: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 {.
0610: 20 20 20 20 76 61 72 20 6d 20 3d 20 6c 69 6e 65 var m = line
0620: 2e 6d 61 74 63 68 28 2f 28 5b 5e 5c 73 5d 2b 29 .match(/([^\s]+)
0630: 5c 2e 28 3f 3a d0 a2 d0 b5 d0 ba d1 81 d1 82 7c \.(?:..........|
0640: 54 65 78 74 29 5c 73 2a 3d 2f 69 29 0a 20 20 20 Text)\s*=/i).
0650: 20 20 20 20 20 20 20 20 20 69 66 28 6d 29 0a 20 if(m).
0660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
0670: 4e 61 6d 65 20 3d 20 6d 5b 31 5d 0a 20 20 20 20 Name = m[1].
0680: 20 20 20 20 20 20 20 20 69 6e 64 65 6e 74 20 3d indent =
0690: 20 6c 69 6e 65 2e 6d 61 74 63 68 28 2f 5e 5c 73 line.match(/^\s
06a0: 2a 2f 29 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 */)[0].
06b0: 20 20 20 62 72 65 61 6b 0a 20 20 20 20 20 20 20 break.
06c0: 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 76 61 72 }. }. var
06d0: 20 70 61 72 61 6d 73 20 3d 20 7b 7d 0a 20 20 20 params = {}.
06e0: 20 76 61 72 20 72 65 20 3d 20 2f 26 28 5b 5e 2a var re = /&([^*
06f0: 5c 73 2b 2d 2f 5c 28 5c 29 5c 7b 5c 7d 5c 22 5d \s+-/\(\)\{\}\"]
0700: 2b 29 2f 69 67 0a 20 20 20 20 77 68 69 6c 65 28 +)/ig. while(
0710: 72 65 2e 65 78 65 63 28 74 65 78 74 29 29 0a 20 re.exec(text)).
0720: 20 20 20 20 20 20 20 70 61 72 61 6d 73 5b 52 65 params[Re
0730: 67 45 78 70 2e 24 31 2e 74 6f 4c 6f 77 65 72 43 gExp.$1.toLowerC
0740: 61 73 65 28 29 5d 20 3d 20 52 65 67 45 78 70 2e ase()] = RegExp.
0750: 24 31 0a 20 20 20 20 74 65 78 74 20 3d 20 27 27 $1. text = ''
0760: 0a 20 20 20 20 66 6f 72 28 76 61 72 20 6b 20 69 . for(var k i
0770: 6e 20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 n params).
0780: 20 20 74 65 78 74 20 3d 20 74 65 78 74 20 2b 20 text = text +
0790: 69 6e 64 65 6e 74 20 2b 20 76 4e 61 6d 65 20 2b indent + vName +
07a0: 20 27 2e d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 '..............
07b0: b2 d0 b8 d1 82 d1 8c d0 9f d0 b0 d1 80 d0 b0 d0 ................
07c0: bc d0 b5 d1 82 d1 80 28 22 27 20 2b 20 70 61 72 .......("' + par
07d0: 61 6d 73 5b 6b 5d 20 2b 20 27 22 2c 20 29 3b 5c ams[k] + '", );\
07e0: 6e 27 0a 20 20 20 20 69 66 28 21 74 65 78 74 2e n'. if(!text.
07f0: 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 length).
0800: 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 return false.
0810: 20 77 6e 64 2e 73 65 74 53 65 6c 65 63 74 69 6f wnd.setSelectio
0820: 6e 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 20 n(sel.beginRow,
0830: 31 2c 20 73 65 6c 2e 62 65 67 69 6e 52 6f 77 2c 1, sel.beginRow,
0840: 20 31 29 0a 20 20 20 20 77 6e 64 2e 73 65 6c 65 1). wnd.sele
0850: 63 74 65 64 54 65 78 74 20 3d 20 74 65 78 74 0a ctedText = text.
0860: 20 20 20 20 77 6e 64 2e 73 65 74 43 61 72 65 74 wnd.setCaret
0870: 50 6f 73 28 73 65 6c 2e 62 65 67 69 6e 52 6f 77 Pos(sel.beginRow
0880: 2c 20 74 65 78 74 2e 6d 61 74 63 68 28 2f 5c 29 , text.match(/\)
0890: 3b 5c 6e 2f 29 2e 69 6e 64 65 78 20 2b 20 31 29 ;\n/).index + 1)
08a0: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 . return true
08b0: 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 .}..function mac
08c0: 72 6f 73 45 78 74 72 61 63 74 50 61 72 61 6d 65 rosExtractParame
08d0: 74 65 72 73 28 29 7b 0a 09 76 61 72 20 77 20 3d ters(){..var w =
08e0: 20 73 6e 65 67 6f 70 61 74 2e 61 63 74 69 76 65 snegopat.active
08f0: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0a 09 69 TextWindow();..i
0900: 66 20 28 21 77 29 20 72 65 74 75 72 6e 20 66 61 f (!w) return fa
0910: 6c 73 65 3b 0a 09 0a 09 76 61 72 20 73 65 6c 20 lse;....var sel
0920: 3d 20 77 2e 67 65 74 53 65 6c 65 63 74 69 6f 6e = w.getSelection
0930: 28 29 3b 0a 09 76 61 72 20 73 65 6c 54 65 78 74 ();..var selText
0940: 20 3d 20 77 2e 73 65 6c 65 63 74 65 64 54 65 78 = w.selectedTex
0950: 74 3b 0a 09 69 66 20 28 73 65 6c 54 65 78 74 20 t;..if (selText
0960: 3d 3d 20 27 27 29 20 72 65 74 75 72 6e 20 61 75 == '') return au
0970: 74 6f 45 78 74 72 61 63 74 28 77 2c 20 73 65 6c toExtract(w, sel
0980: 29 3b 0a 0a 09 76 61 72 20 71 50 61 72 61 6d 73 );...var qParams
0990: 20 3d 20 67 65 74 51 75 65 72 79 50 61 72 61 6d = getQueryParam
09a0: 73 28 73 65 6c 54 65 78 74 29 3b 0a 09 69 66 20 s(selText);..if
09b0: 28 21 71 50 61 72 61 6d 73 29 20 72 65 74 75 72 (!qParams) retur
09c0: 6e 20 66 61 6c 73 65 3b 0a 09 0a 09 76 61 72 20 n false;....var
09d0: 71 56 61 72 4e 61 6d 65 20 3d 20 67 65 74 51 75 qVarName = getQu
09e0: 65 72 79 56 61 72 4e 61 6d 65 28 73 65 6c 54 65 eryVarName(selTe
09f0: 78 74 29 3b 0a 09 76 61 72 20 6f 66 66 73 65 74 xt);..var offset
0a00: 20 3d 20 67 65 74 54 65 78 74 42 6c 6f 63 6b 4f = getTextBlockO
0a10: 66 66 73 65 74 28 77 2e 6c 69 6e 65 28 73 65 6c ffset(w.line(sel
0a20: 2e 65 6e 64 52 6f 77 20 2d 20 31 29 29 3b 0a 20 .endRow - 1));.
0a30: 20 20 20 20 20 20 20 2f 2f 76 61 72 20 6f 66 66 //var off
0a40: 73 65 74 20 3d 20 67 65 74 54 65 78 74 42 6c 6f set = getTextBlo
0a50: 63 6b 4f 66 66 73 65 74 28 77 2e 64 6f 63 75 6d ckOffset(w.docum
0a60: 65 6e 74 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 ent.............
0a70: d1 82 d1 8c d0 a1 d1 82 d1 80 d0 be d0 ba d1 83 ................
0a80: 28 73 65 6c 2e 65 6e 64 52 6f 77 20 2d 20 31 29 (sel.endRow - 1)
0a90: 29 3b 0a 09 0a 09 76 61 72 20 70 61 72 61 6d 73 );....var params
0aa0: 54 65 78 74 20 3d 20 22 22 3b 0a 09 66 6f 72 20 Text = "";..for
0ab0: 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 (var i = 0; i <
0ac0: 71 50 61 72 61 6d 73 2e 6c 65 6e 67 74 68 3b 20 qParams.length;
0ad0: 69 2b 2b 29 7b 0a 09 09 70 61 72 61 6d 73 54 65 i++){...paramsTe
0ae0: 78 74 20 2b 3d 20 27 5c 6e 27 20 2b 20 6f 66 66 xt += '\n' + off
0af0: 73 65 74 20 2b 20 71 56 61 72 4e 61 6d 65 20 2b set + qVarName +
0b00: 20 2f 2f 27 5c 72 5c 6e 27 0a 09 09 09 27 2e d0 //'\r\n'....'..
0b10: a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 ................
0b20: 82 d1 8c d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1 ................
0b30: 82 d1 80 28 22 27 20 2b 20 71 50 61 72 61 6d 73 ...("' + qParams
0b40: 5b 69 5d 20 2b 20 27 22 2c 20 29 3b 27 3b 0a 09 [i] + '", );';..
0b50: 7d 3b 0a 09 0a 20 20 20 20 73 65 6c 54 65 78 74 };... selText
0b60: 20 2b 3d 20 70 61 72 61 6d 73 54 65 78 74 20 2b += paramsText +
0b70: 20 27 5c 6e 27 3b 20 2f 2f 27 5c 72 5c 6e 27 3b '\n'; //'\r\n';
0b80: 0a 20 20 20 20 77 2e 73 65 6c 65 63 74 65 64 54 . w.selectedT
0b90: 65 78 74 20 3d 20 73 65 6c 54 65 78 74 3b 0a 20 ext = selText;.
0ba0: 20 20 20 20 20 20 20 2f 2f 77 2e 64 6f 63 75 6d //w.docum
0bb0: 65 6e 74 2e d0 92 d1 81 d1 82 d0 b0 d0 b2 d0 b8 ent.............
0bc0: d1 82 d1 8c d0 a1 d1 82 d1 80 d0 be d0 ba d1 83 ................
0bd0: 28 73 65 6c 2e 65 6e 64 52 6f 77 2c 20 70 61 72 (sel.endRow, par
0be0: 61 6d 73 54 65 78 74 20 2b 20 27 5c 72 5c 6e 27 amsText + '\r\n'
0bf0: 29 3b 0a 0a 09 72 65 74 75 72 6e 20 74 72 75 65 );...return true
0c00: 3b 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 ;.}...function g
0c10: 65 74 51 75 65 72 79 50 61 72 61 6d 73 28 73 74 etQueryParams(st
0c20: 72 29 7b 0a 09 76 61 72 20 6d 61 74 63 68 65 73 r){..var matches
0c30: 20 3d 20 73 74 72 2e 6d 61 74 63 68 28 2f 26 28 = str.match(/&(
0c40: 5b 5e 2a 5c 73 2b 2d 2f 5c 28 5c 29 5c 7b 5c 7d [^*\s+-/\(\)\{\}
0c50: 5c 22 5d 2b 29 2f 69 67 29 3b 0a 09 69 66 20 28 \"]+)/ig);..if (
0c60: 21 6d 61 74 63 68 65 73 29 20 72 65 74 75 72 6e !matches) return
0c70: 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 20 20 20 20 null;..
0c80: 69 66 20 28 21 41 72 72 61 79 2e 70 72 6f 74 6f if (!Array.proto
0c90: 74 79 70 65 2e 69 6e 64 65 78 4f 66 29 20 7b 0a type.indexOf) {.
0ca0: 20 20 20 20 20 20 20 20 20 20 41 72 72 61 79 2e Array.
0cb0: 70 72 6f 74 6f 74 79 70 65 2e 69 6e 64 65 78 4f prototype.indexO
0cc0: 66 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6f 62 f = function (ob
0cd0: 6a 2c 20 66 72 6f 6d 49 6e 64 65 78 29 20 7b 0a j, fromIndex) {.
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
0cf0: 66 72 6f 6d 49 6e 64 65 78 20 3d 3d 20 6e 75 6c fromIndex == nul
0d00: 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 l) {.
0d10: 20 20 20 20 20 66 72 6f 6d 49 6e 64 65 78 20 3d fromIndex =
0d20: 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 0;.
0d30: 7d 20 65 6c 73 65 20 69 66 20 28 66 72 6f 6d 49 } else if (fromI
0d40: 6e 64 65 78 20 3c 20 30 29 20 7b 0a 20 20 20 20 ndex < 0) {.
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d from
0d60: 49 6e 64 65 78 20 3d 20 4d 61 74 68 2e 6d 61 78 Index = Math.max
0d70: 28 30 2c 20 74 68 69 73 2e 6c 65 6e 67 74 68 20 (0, this.length
0d80: 2b 20 66 72 6f 6d 49 6e 64 65 78 29 3b 0a 20 20 + fromIndex);.
0d90: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
0da0: 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 for (var
0db0: 20 69 20 3d 20 66 72 6f 6d 49 6e 64 65 78 2c 20 i = fromIndex,
0dc0: 6a 20 3d 20 74 68 69 73 2e 6c 65 6e 67 74 68 3b j = this.length;
0dd0: 20 69 20 3c 20 6a 3b 20 69 2b 2b 29 20 7b 0a 20 i < j; i++) {.
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
0df0: 66 20 28 74 68 69 73 5b 69 5d 20 3d 3d 3d 20 6f f (this[i] === o
0e00: 62 6a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 bj).
0e10: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 return i
0e20: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ;. }.
0e30: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
0e40: 72 6e 20 2d 31 3b 0a 20 20 20 20 20 20 20 20 20 rn -1;.
0e50: 20 7d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 09 0a };. }...
0e60: 09 76 61 72 20 72 65 73 20 3d 20 6e 65 77 20 41 .var res = new A
0e70: 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 rray();. var
0e80: 61 72 72 55 70 70 65 72 43 61 73 65 20 3d 20 6e arrUpperCase = n
0e90: 65 77 20 41 72 72 61 79 28 29 3b 0a 09 66 6f 72 ew Array();..for
0ea0: 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c (var i = 0; i <
0eb0: 20 6d 61 74 63 68 65 73 2e 6c 65 6e 67 74 68 3b matches.length;
0ec0: 20 69 2b 2b 29 7b 0a 20 20 20 20 20 20 20 20 70 i++){. p
0ed0: 61 72 61 6d 20 3d 20 6d 61 74 63 68 65 73 5b 69 aram = matches[i
0ee0: 5d 2e 72 65 70 6c 61 63 65 28 2f 5e 26 2f 69 67 ].replace(/^&/ig
0ef0: 2c 20 22 22 29 3b 0a 20 20 20 20 20 20 20 20 70 , "");. p
0f00: 61 72 61 6d 55 20 3d 20 70 61 72 61 6d 2e 74 6f aramU = param.to
0f10: 55 70 70 65 72 43 61 73 65 28 29 3b 0a 20 20 20 UpperCase();.
0f20: 20 20 20 20 20 69 66 28 2d 31 20 3d 3d 20 61 72 if(-1 == ar
0f30: 72 55 70 70 65 72 43 61 73 65 2e 69 6e 64 65 78 rUpperCase.index
0f40: 4f 66 28 70 61 72 61 6d 55 29 29 7b 0a 20 20 20 Of(paramU)){.
0f50: 20 20 20 20 20 20 20 20 20 72 65 73 2e 70 75 73 res.pus
0f60: 68 28 70 61 72 61 6d 29 3b 0a 20 20 20 20 20 20 h(param);.
0f70: 20 20 20 20 20 20 61 72 72 55 70 70 65 72 43 61 arrUpperCa
0f80: 73 65 2e 70 75 73 68 28 70 61 72 61 6d 55 29 3b se.push(paramU);
0f90: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
0fa0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 72 65 73 //res
0fb0: 2e 70 75 73 68 28 6d 61 74 63 68 65 73 5b 69 5d .push(matches[i]
0fc0: 2e 72 65 70 6c 61 63 65 28 2f 5e 26 2f 69 67 2c .replace(/^&/ig,
0fd0: 20 22 22 29 29 3b 0a 09 7d 0a 09 72 65 74 75 72 ""));..}..retur
0fe0: 6e 20 72 65 73 3b 0a 7d 0a 0a 66 75 6e 63 74 69 n res;.}..functi
0ff0: 6f 6e 20 67 65 74 51 75 65 72 79 56 61 72 4e 61 on getQueryVarNa
1000: 6d 65 28 73 74 72 29 7b 0a 09 76 61 72 20 6d 61 me(str){..var ma
1010: 74 63 68 65 73 20 3d 20 73 74 72 2e 6d 61 74 63 tches = str.matc
1020: 68 28 2f 28 5b 5e 5c 2e 5c 73 5d 2b 29 28 28 5c h(/([^\.\s]+)((\
1030: 2e d1 82 d0 b5 d0 ba d1 81 d1 82 5c 73 2a 3d 5c ...........\s*=\
1040: 73 2a 29 7c 28 5c 73 2a 3d 5c 73 2a d0 bd d0 be s*)|(\s*=\s*....
1050: d0 b2 d1 8b d0 b9 5c 73 2a d0 b7 d0 b0 d0 bf d1 ......\s*.......
1060: 80 d0 be d1 81 29 29 2f 69 67 29 3b 20 2f 2f 20 .....))/ig); //
1070: d0 b8 d0 bb d0 b8 20 22 d0 98 d0 bc d1 8f 2e d0 ...... "........
1080: a2 d0 b5 d0 ba d1 81 d1 82 20 3d 22 20 d0 b8 d0 ......... =" ...
1090: bb d0 b8 20 22 d0 98 d0 bc d1 8f 20 3d 20 d0 9d ... "...... = ..
10a0: d0 be d0 b2 d1 8b d0 b9 20 d0 97 d0 b0 d0 bf d1 ........ .......
10b0: 80 d0 be d1 81 22 0a 20 20 20 20 20 20 20 20 2f .....". /
10c0: 2f 76 61 72 20 6d 61 74 63 68 65 73 20 3d 20 73 /var matches = s
10d0: 74 72 2e 6d 61 74 63 68 28 2f 28 5b 5e 5c 73 5d tr.match(/([^\s]
10e0: 2b 29 5c 73 2a 3d 5c 73 2a d0 bd d0 be d0 b2 d1 +)\s*=\s*.......
10f0: 8b d0 b9 5c 73 2a d0 b7 d0 b0 d0 bf d1 80 d0 be ...\s*..........
1100: d1 81 2f 69 67 29 3b 0a 09 76 61 72 20 72 65 73 ../ig);..var res
1110: 20 3d 20 21 6d 61 74 63 68 65 73 20 3f 20 22 22 = !matches ? ""
1120: 20 3a 20 52 65 67 45 78 70 2e 24 31 2e 72 65 70 : RegExp.$1.rep
1130: 6c 61 63 65 28 2f 5c 73 2a 2f 69 67 2c 20 22 22 lace(/\s*/ig, ""
1140: 29 3b 0a 09 72 65 74 75 72 6e 20 72 65 73 3b 0a );..return res;.
1150: 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 }..function getT
1160: 65 78 74 42 6c 6f 63 6b 4f 66 66 73 65 74 28 73 extBlockOffset(s
1170: 74 72 29 7b 0a 09 76 61 72 20 6d 61 74 63 68 20 tr){..var match
1180: 3d 20 73 74 72 2e 6d 61 74 63 68 28 2f 5e 28 5b = str.match(/^([
1190: 5c 73 5d 2b 29 2f 69 67 29 3b 0a 09 76 61 72 20 \s]+)/ig);..var
11a0: 72 65 73 20 3d 20 21 6d 61 74 63 68 20 3f 20 22 res = !match ? "
11b0: 22 20 3a 20 6d 61 74 63 68 5b 30 5d 3b 0a 09 72 " : match[0];..r
11c0: 65 74 75 72 6e 20 72 65 73 3b 0a 7d 0a eturn res;.}.