From 46c0a784479c864069a39d482cbf2fbcc3aa7427 Mon Sep 17 00:00:00 2001 From: Logen Kain Date: Thu, 8 Apr 2021 14:23:21 -0400 Subject: [PATCH] Update javascript class --- .../LAB Snowman canvas.zip | Bin 0 -> 1409 bytes .../10.16-lab-snowman-canvas/index.html | 8 + .../10.16-lab-snowman-canvas/snowman.js | 75 +++++ .../LAB Frog image rotation.zip | Bin 0 -> 3991 bytes .../LAB Frog image rotation/frog.js | 51 ++++ .../LAB Frog image rotation/index.html | 9 + .../LAB Circle with a Promise.zip | Bin 0 -> 2340 bytes .../10.18-lab-circle-with-a-promise/circle.js | 62 ++++ .../index.html | 9 + .../styles.css | 11 + .../LAB Currency Conversion (jQuery).zip | Bin 0 -> 94815 bytes html-java-script/week12/currex.html | 46 +++ html-java-script/week12/currex.js | 270 ++++++++++++++++++ html-java-script/week12/jquery-3.2.1.min.js | 4 + html-java-script/week12/style.css | 55 ++++ 15 files changed, 600 insertions(+) create mode 100644 html-java-script/week11/10.16-lab-snowman-canvas/LAB Snowman canvas.zip create mode 100644 html-java-script/week11/10.16-lab-snowman-canvas/index.html create mode 100644 html-java-script/week11/10.16-lab-snowman-canvas/snowman.js create mode 100644 html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation.zip create mode 100644 html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/frog.js create mode 100644 html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/index.html create mode 100644 html-java-script/week11/10.18-lab-circle-with-a-promise/LAB Circle with a Promise.zip create mode 100644 html-java-script/week11/10.18-lab-circle-with-a-promise/circle.js create mode 100644 html-java-script/week11/10.18-lab-circle-with-a-promise/index.html create mode 100644 html-java-script/week11/10.18-lab-circle-with-a-promise/styles.css create mode 100644 html-java-script/week12/LAB Currency Conversion (jQuery).zip create mode 100644 html-java-script/week12/currex.html create mode 100644 html-java-script/week12/currex.js create mode 100644 html-java-script/week12/jquery-3.2.1.min.js create mode 100644 html-java-script/week12/style.css diff --git a/html-java-script/week11/10.16-lab-snowman-canvas/LAB Snowman canvas.zip b/html-java-script/week11/10.16-lab-snowman-canvas/LAB Snowman canvas.zip new file mode 100644 index 0000000000000000000000000000000000000000..9f8fefc3070180877ac1bce83ff43cd75e468a88 GIT binary patch literal 1409 zcma)6L2lYW6m^rdMV8p*0KZ<5hT61MrAo2c5ZXw9Vg)wcb+89;V`hjwVB9FHo+48B zy+EZddx_qo2k54MW(=5;L^T*@=KufZzc)|gclHksjY`EZ%(E{SM(Hte9I=ot?TMJi z?z7YL*5HHRhOQEXa(M&*^1fG@Z z1p8BJHC;zX3WOmKb3K%J0bvW0LKcN$;#sd74GShT8c&3tV6o09ik+g`b!2zA=y#r0 zzO`?E{y;MF^&h0WY0Gh-AAP34M?fHr*f^#jqobHy(yAG7mI_c4mFB_Qld4%YGZc(x zHVMP_f-=#KQb8F_YS!s_uf-WoM3Zw?qPW+M z1g@H^#$k8kG80L6DZnc@*<&h{1lWxADpU+q`zZC01easQKr=#lWvxAm;vA-={|yOpcf(8Gjh>;YIUtF4^}FW?PsQLHIv zu4g(!Zhf<()UK*QEjM9Tl~r1c9!)L~hNyue4QiY*G=;?r471qCsoYlEjS zq%qI#6r}7;X`cIpD>)TayC?6yHVa^R7kvHx@%GogVaV6-JlZ=nHkV)do{*Q{_OrPP i|E()yZrA-r2zhH@_juL$oySik<{o}#`2XiX&i(=p%8xYw literal 0 HcmV?d00001 diff --git a/html-java-script/week11/10.16-lab-snowman-canvas/index.html b/html-java-script/week11/10.16-lab-snowman-canvas/index.html new file mode 100644 index 0000000..b349d3f --- /dev/null +++ b/html-java-script/week11/10.16-lab-snowman-canvas/index.html @@ -0,0 +1,8 @@ + + + Snowman + + + + + diff --git a/html-java-script/week11/10.16-lab-snowman-canvas/snowman.js b/html-java-script/week11/10.16-lab-snowman-canvas/snowman.js new file mode 100644 index 0000000..780c15b --- /dev/null +++ b/html-java-script/week11/10.16-lab-snowman-canvas/snowman.js @@ -0,0 +1,75 @@ +"use strict" +// Size of a single snowflake +const flakeSize = 8; + +window.addEventListener("DOMContentLoaded", function() { + var canvas = document.querySelector("canvas"); + + drawGround(canvas); + drawSnowText(canvas); + drawSnowman(canvas); + drawSnowflakes(canvas); +}); + +function drawGround(canvas) { + var context = canvas.getContext("2d"); + + // background + context.fillStyle = "lightgray"; + context.fillRect(0, 0, 300, 300); + + // ground + context.fillStyle = "brown"; + context.fillRect(0, canvas.height - 50, canvas.width, canvas.height); +} + +function drawSnowflakes(canvas) { + for (var c = 0; c < 100; c++) { + var x = Math.floor(Math.random() * canvas.width); + var y = Math.floor(Math.random() * canvas.height); + drawSingleFlake(canvas, x, y); + } +} + +// Complete the functions below + +function drawSnowText(canvas) { + var context = canvas.getContext("2d"); + context.font="80px Verdana"; + context.textAlign="center"; + context.textBaseline="top"; + context.fillStyle="blue"; + context.fillText("SNOW", canvas.width/2,10); + +} + +function drawSnowman(canvas) { +//bottom + var context = canvas.getContext("2d"); + context.beginPath(); + context.arc(150, 200, 50, 0, Math.PI *2); + context.fillStyle = "white"; + context.fill(); + + //middle + context.beginPath(); + context.arc(150, 120, 40, 0, Math.PI *2); + context.fillStyle = "white"; + context.fill(); + + //top + context.beginPath(); + context.arc(150, 60, 25, 0, Math.PI *2); + context.fillStyle = "white"; + context.fill(); +} + +function drawSingleFlake(canvas, x, y) { + var context = canvas.getContext("2d"); + context.moveTo(x, y); + context.lineTo(x+flakeSize/2, y+flakeSize/2); + context.lineTo(x, y + flakeSize); + context.lineTo(x-flakeSize/2, y+flakeSize/2); + context.fillStyle = "white"; + context.fill(); +} diff --git a/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation.zip b/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation.zip new file mode 100644 index 0000000000000000000000000000000000000000..2aff985692b15c9c680ddc8f4654fef597f49e3b GIT binary patch literal 3991 zcmeHKdsGuw8lQ*{2pf=Rg#+s}RR|g(B8nnN!GwSWh!7O5(hkWa1d<74hDQX81yraO z^$?H{E51Nj6-5?AbaySH91sN&D=J_MqD2v{>jU3=CqYSd?H}Dgw>Rfb=6>@%f8Te% zb1y&GXuLIKYz#rcysU7@U{Jxk6ceGTuCat%=KU!pujNfO-KnDx+p-Yki$W8M1sQM3IZWe7{NraK#5?u46MA}^lW+&T&R>L5HPM3 z`q0Hng~T-ur!Vq$)00Ql#wbK8{VQoih+xSG4yQ;(M63^e9*aeXV^OIjme4PNu%2T~ zLMoTQIH8iEK6H^3Pmm!hFBnr`=t8=I-2_ZRhY=aj0{oY}jmT}(wznG@Fi^=4o@D&5 zi>DDP1%k-Q|0sf!0D_|t2^APlz#^#<6%tbL4*S4qy6_|UUa)ggf-_UMVuvjc1#6Ka z1skRCH~|7ck)dK@loB4q4J1iQGGb>MbuEobqo#mNDNqeLg@pG6v8AqkaSHRiy5lS%$h)gU-l|bGgMjgKhFq3dH^op49T$X;0Vc{CdC)ESxA283J{~uN10;yQYvO$Y9mb@@T7BT};QPSCR3@xqjs*?!YG4-x2B*FCbQEv} zMxdz#;L`)*DnW_GdK!c7F46%FB=pQA#6h5RKb{^?*kifDQ>2727G}Kj;BBr+g$Rxs zx~8i%9fIH^7$C2LFm{;N*e+$lO5NUN>NYR&cJms@7`(juN_VDpn}v3|*a)UFr0* z=1-9E5Jb+8cO}s3^<4?{yIg)KmqxWGTRkl(kWKb~DVPFdBk-)P8%zU#6g-^k4^>`p z7zB&)62A~X2&&p*`VyG{K}HatC*T0OZKAJ5x~En80*D`IzKmlR5^f;~v|h!Xx+2nA z$YDiC&qAXXeC-!O%;KUcTqKQ4$U~DbBs_7MXww(*n}u;j()5ke_}#X-9ySF`+nr8O z9mRH^qiuzwZH<{tJ!EqdvOWcIcDpDxdoJ70mgZ)p=f?;B0Ig}JlzEqI=6$;@aNE8B z?a1V7!_Mu4?#;irx8#(}&8=os9(O9(7m;($XxBx`p-xI$H>JCqcC!x}?1%2&29EzZ z{zTw^MZjyQy9(?RhzJjjc=P`~popiFrUN`p5&~D?5MBF*G`{*cwNi9o@`I>Y2 zlZ!jfX%6Hh zI%PMFqg6zRsfqeeMZsPkDUb; zvmn~ixO%%D`+&XX#ZB&~;V8nlzx*|;FWJ+ZA*uhoBXDOIOKaIlxk1G9tnnk2czkb2Xh~XVYzukXbTVJa^h;`g{ zyF1bDk*Yd*8Yd!?+HNj8_WT^a^FZX;?CG96eo`l#+M0Ppn2AMMNAloe=0J2)diaRq zue>iFTq#bizF9WmlGCBti3;&QTypJpSYGfjS~Wws$WO6VtqoNl3CzV?G`Frq72l0C zzj3G2cYWJ*Zg1z^^&7CRRr3;6`7TFZ%}H3b?xYmC!#ts_%b<3+?=%_0{4)yu0kU(WsRt z?!ep8_azH?68luH9v)zPmPBnB?CxjU@VqK#Z@<#o=91Nyb-lK)3;x@8kF+Xw+_1( z^pqseyLw_NRipm{pbbL~T}&veWW=wNr5I%ry=asT@MV=FDoO11XlryBO+I|aoK z&pZn)^H)3CN@fhFX-rBKFR#{!uD$dhDF4boxbMvz)%90YtH?^$QjR8fM$MZ$8wR6_ z2Fw=Z)U8RrJ-a{FBTC*PR>e_Ek2g;~5JFjQx^kncJRyWCA<~3_n+Ph87??A#iENg zt>VFw2Wj(*p8Q&UKri`0Y+kIco@MJ~a>c)mYxB-%9K5%P&U&zoA^3XLly1>y%Cj^dQ{NM=_ Q$uCCWw-@~Pnvtvj0J;cVrT_o{ literal 0 HcmV?d00001 diff --git a/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/frog.js b/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/frog.js new file mode 100644 index 0000000..5e6d823 --- /dev/null +++ b/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/frog.js @@ -0,0 +1,51 @@ +"use strict" +const directions = { + UP: 'up', + DOWN: 'down', + LEFT: 'left', + RIGHT: 'right' +} + +window.addEventListener("load", function () { + const canvas = document.querySelector("canvas"); + + // Draw 4 frogs facing different directions + drawFrog(canvas, 50, 50, directions.UP); + drawFrog(canvas, 180, 50, directions.DOWN); + drawFrog(canvas, 50, 180, directions.LEFT); + drawFrog(canvas, 180, 180, directions.RIGHT); +}); + +function drawFrog(canvas, x, y, direction = directions.UP) { + const context = canvas.getContext("2d"); + const frogImg = document.querySelector("img"); + + switch (direction) { + case directions.DOWN: + // TODO: Translate, rotate, and translate + context.translate(x+frogImg.width/2, y+frogImg.height/2); + context.rotate(Math.PI); + context.translate(-1*(x+frogImg.width/2), -1*(y+frogImg.height/2)); + break; + case directions.LEFT: + context.translate(x+frogImg.width/2, y+frogImg.height/2); + context.rotate(Math.PI/-2); + context.translate(-1*(x+frogImg.width/2), -1*(y+frogImg.height/2)); + + // TODO: Translate, rotate, and translate + + break; + case directions.RIGHT: + // TODO: Translate, rotate, and translate + context.translate(x+frogImg.width/2, y+frogImg.height/2); + context.rotate(Math.PI/2); + context.translate(-1*(x+frogImg.width/2), -1*(y+frogImg.height/2)); + + break; + } + + context.drawImage(frogImg, x, y); + + // Necessary so next call to drawFrog isn't rotated or translated + context.resetTransform(); +} diff --git a/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/index.html b/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/index.html new file mode 100644 index 0000000..f7938ba --- /dev/null +++ b/html-java-script/week11/10.17-lab-frog-image-roatation/LAB Frog image rotation/index.html @@ -0,0 +1,9 @@ + + + From Image Rotate and Translate + + + + Frog + + diff --git a/html-java-script/week11/10.18-lab-circle-with-a-promise/LAB Circle with a Promise.zip b/html-java-script/week11/10.18-lab-circle-with-a-promise/LAB Circle with a Promise.zip new file mode 100644 index 0000000000000000000000000000000000000000..4448bdd7f8a31ad5aac8e7adb865908b2bae9d17 GIT binary patch literal 2340 zcmai0-EJF26y8!wlZf0^NWD8lZ%$S_0F+9&3I;+8OJu2 z?|1<2c>o>(i5uR7M?m5k;LOafy-pLc&N|-n`^}l}oY}$2-47o`J3CSI*Xy5OMU`uh zesjri(VW<+=sr3+>tDPX9K&}PFHR5l_qt9BB9-G_j4~z(0CX+40uKjTO}RlhO^4l9 z5Cyg1@)9(PUTo}ApqU`r7$zD=rKFh|QwB4c=D7uEeLU!k<8+*p*TllbWDMPEsJu%{|z$l^MTW-_y!kR~;F=ZnKsHk*=3 z^T!$LtRm-6x7Sg-A$}%!c1b}umVGCweY3x}a$oy<>vY#l*4bMvxHvmH>%eoy zV5%4&@ho)!4NOp@N4W7#o_^J?!_%+b*FoFoaakzHkpih~h_D1ZLC6$C7@|;fXClyo z9RjL%G2CXa*?ok_8TR8Uw@5`pn6unKTNMTeCBd=_u) zQaW`HZYwcqW48z*5FbI}j34y^x-u=PNZia*OWi1S5!-P5Yvsh97mGm#qeGMyr+iv}#6ORl=kX{LFOa$SUS`R7#jfYzIzSZf0>%*v_)vZD6l$}hWp02BnBJc(#JDsFNig2W)pJh9Tq)P?8GHQ^K(imC;MqF~5jmD=Y+>VrG)7(HzvY^?R>as$GX~9U+ z(p9>zdoGCS+fnF$X&tP?%96@tE#X_GX#12b2}}0W3Bd~m9R=^oCz5Tj+`g@4LSNHL ze+BtgkYb3eHGb#Xe(!=TASosxi8R`omgRmDJ63Ms|N7^@zyEPBirjtsz;~x&IJ?|Q z)eN)Wt!{Ti-3BowM{Sp#&;a#<{dJh8ddy|Rb>#Yi+K(Vq-Puh0(c6Io<5al{Ezu!j zERe0Oi80eoXcu2;KyNvmd6}PotOZC*RB`&Bo|oxPjuF=bhw#Mj-bP`1;3a=*HtgOht7xsZ41 N^Besi(|b`A{Ra^glzRXG literal 0 HcmV?d00001 diff --git a/html-java-script/week11/10.18-lab-circle-with-a-promise/circle.js b/html-java-script/week11/10.18-lab-circle-with-a-promise/circle.js new file mode 100644 index 0000000..3e90d80 --- /dev/null +++ b/html-java-script/week11/10.18-lab-circle-with-a-promise/circle.js @@ -0,0 +1,62 @@ +window.addEventListener("DOMContentLoaded", function () { + document.querySelector("#showCircleBtn").addEventListener("click", showCircleClick); +}); + +function noThrow(){ +alert("showCircle called too soon"); +} +function yesThrow(){ + let div = document.getElementsByTagName("div"); + div[0].innerHTML = "Ta da!"; +} + +function showCircleClick() { + // TODO: Add modifications here + showCircle(160, 180, 120).then(yesThrow, noThrow); +} + +// Do not modify the code below + +let timerId = null; + +function showCircle(cx, cy, radius) { + + // Only allow one div to exist at a time + let div = document.querySelector("div"); + if (div !== null) { + div.parentNode.removeChild(div); + } + + // Create new div and add to DOM + div = document.createElement("div"); + div.style.width = 0; + div.style.height = 0; + div.style.left = cx + "px"; + div.style.top = cy + "px"; + div.className = "circle"; + document.body.append(div); + + // Set width and height after showCircle() completes so transition kicks in + setTimeout(() => { + div.style.width = radius * 2 + 'px'; + div.style.height = radius * 2 + 'px'; + }, 10); + + let promise = new Promise(function(resolve, reject) { + // Reject if showCircle() is called before timer finishes + if (timerId !== null) { + clearTimeout(timerId); + timerId = null; + div.parentNode.removeChild(div); + reject("showCircle called too soon"); + } + else { + timerId = setTimeout(() => { + resolve(div); + timerId = null; + }, 1000); + } + }); + + return promise; +} diff --git a/html-java-script/week11/10.18-lab-circle-with-a-promise/index.html b/html-java-script/week11/10.18-lab-circle-with-a-promise/index.html new file mode 100644 index 0000000..b4a1f07 --- /dev/null +++ b/html-java-script/week11/10.18-lab-circle-with-a-promise/index.html @@ -0,0 +1,9 @@ + + + Promise Lab + + + + + + diff --git a/html-java-script/week11/10.18-lab-circle-with-a-promise/styles.css b/html-java-script/week11/10.18-lab-circle-with-a-promise/styles.css new file mode 100644 index 0000000..42a7b4e --- /dev/null +++ b/html-java-script/week11/10.18-lab-circle-with-a-promise/styles.css @@ -0,0 +1,11 @@ +.circle { + transition-property: width, height, margin-left, margin-top; + transition-duration: 2s; + position: fixed; + transform: translateX(-50%) translateY(-50%); + background-color: coral; + border-radius: 50%; + font-size: 30px; + line-height: 240px; + text-align: center; +} \ No newline at end of file diff --git a/html-java-script/week12/LAB Currency Conversion (jQuery).zip b/html-java-script/week12/LAB Currency Conversion (jQuery).zip new file mode 100644 index 0000000000000000000000000000000000000000..3e714fb2811bbef5bf78c6cc14ea6802e10fdc7f GIT binary patch literal 94815 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 literal 0 HcmV?d00001 diff --git a/html-java-script/week12/currex.html b/html-java-script/week12/currex.html new file mode 100644 index 0000000..f6de6bb --- /dev/null +++ b/html-java-script/week12/currex.html @@ -0,0 +1,46 @@ + + + +Currency Exchange + + + + + + + + + + + +
+

Currency Conversion

+ +

Enter USD and select desired currency.

+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+

Exchange Rate Data (JSON)

+ + + +
+ + + \ No newline at end of file diff --git a/html-java-script/week12/currex.js b/html-java-script/week12/currex.js new file mode 100644 index 0000000..678aa1f --- /dev/null +++ b/html-java-script/week12/currex.js @@ -0,0 +1,270 @@ +"use strict" +// Mapping of all currency abbreviations to full currency name +var allCurrencies = { + "AED": "United Arab Emirates Dirham", + "AFN": "Afghan Afghani", + "ALL": "Albanian Lek", + "AMD": "Armenian Dram", + "ANG": "Netherlands Antillean Guilder", + "AOA": "Angolan Kwanza", + "ARS": "Argentine Peso", + "AUD": "Australian Dollar", + "AWG": "Aruban Florin", + "AZN": "Azerbaijani Manat", + "BAM": "Bosnia-Herzegovina Convertible Mark", + "BBD": "Barbadian Dollar", + "BDT": "Bangladeshi Taka", + "BGN": "Bulgarian Lev", + "BHD": "Bahraini Dinar", + "BIF": "Burundian Franc", + "BMD": "Bermudan Dollar", + "BND": "Brunei Dollar", + "BOB": "Bolivian Boliviano", + "BRL": "Brazilian Real", + "BSD": "Bahamian Dollar", + "BTC": "Bitcoin", + "BTN": "Bhutanese Ngultrum", + "BWP": "Botswanan Pula", + "BYN": "Belarusian Ruble", + "BZD": "Belize Dollar", + "CAD": "Canadian Dollar", + "CDF": "Congolese Franc", + "CHF": "Swiss Franc", + "CLF": "Chilean Unit of Account (UF)", + "CLP": "Chilean Peso", + "CNH": "Chinese Yuan (Offshore)", + "CNY": "Chinese Yuan", + "COP": "Colombian Peso", + "CRC": "Costa Rican Colón", + "CUC": "Cuban Convertible Peso", + "CUP": "Cuban Peso", + "CVE": "Cape Verdean Escudo", + "CZK": "Czech Republic Koruna", + "DJF": "Djiboutian Franc", + "DKK": "Danish Krone", + "DOP": "Dominican Peso", + "DZD": "Algerian Dinar", + "EGP": "Egyptian Pound", + "ERN": "Eritrean Nakfa", + "ETB": "Ethiopian Birr", + "EUR": "Euro", + "FJD": "Fijian Dollar", + "FKP": "Falkland Islands Pound", + "GBP": "British Pound Sterling", + "GEL": "Georgian Lari", + "GGP": "Guernsey Pound", + "GHS": "Ghanaian Cedi", + "GIP": "Gibraltar Pound", + "GMD": "Gambian Dalasi", + "GNF": "Guinean Franc", + "GTQ": "Guatemalan Quetzal", + "GYD": "Guyanaese Dollar", + "HKD": "Hong Kong Dollar", + "HNL": "Honduran Lempira", + "HRK": "Croatian Kuna", + "HTG": "Haitian Gourde", + "HUF": "Hungarian Forint", + "IDR": "Indonesian Rupiah", + "ILS": "Israeli New Sheqel", + "IMP": "Manx pound", + "INR": "Indian Rupee", + "IQD": "Iraqi Dinar", + "IRR": "Iranian Rial", + "ISK": "Icelandic Króna", + "JEP": "Jersey Pound", + "JMD": "Jamaican Dollar", + "JOD": "Jordanian Dinar", + "JPY": "Japanese Yen", + "KES": "Kenyan Shilling", + "KGS": "Kyrgystani Som", + "KHR": "Cambodian Riel", + "KMF": "Comorian Franc", + "KPW": "North Korean Won", + "KRW": "South Korean Won", + "KWD": "Kuwaiti Dinar", + "KYD": "Cayman Islands Dollar", + "KZT": "Kazakhstani Tenge", + "LAK": "Laotian Kip", + "LBP": "Lebanese Pound", + "LKR": "Sri Lankan Rupee", + "LRD": "Liberian Dollar", + "LSL": "Lesotho Loti", + "LYD": "Libyan Dinar", + "MAD": "Moroccan Dirham", + "MDL": "Moldovan Leu", + "MGA": "Malagasy Ariary", + "MKD": "Macedonian Denar", + "MMK": "Myanma Kyat", + "MNT": "Mongolian Tugrik", + "MOP": "Macanese Pataca", + "MRO": "Mauritanian Ouguiya (pre-2018)", + "MRU": "Mauritanian Ouguiya", + "MUR": "Mauritian Rupee", + "MVR": "Maldivian Rufiyaa", + "MWK": "Malawian Kwacha", + "MXN": "Mexican Peso", + "MYR": "Malaysian Ringgit", + "MZN": "Mozambican Metical", + "NAD": "Namibian Dollar", + "NGN": "Nigerian Naira", + "NIO": "Nicaraguan Córdoba", + "NOK": "Norwegian Krone", + "NPR": "Nepalese Rupee", + "NZD": "New Zealand Dollar", + "OMR": "Omani Rial", + "PAB": "Panamanian Balboa", + "PEN": "Peruvian Nuevo Sol", + "PGK": "Papua New Guinean Kina", + "PHP": "Philippine Peso", + "PKR": "Pakistani Rupee", + "PLN": "Polish Zloty", + "PYG": "Paraguayan Guarani", + "QAR": "Qatari Rial", + "RON": "Romanian Leu", + "RSD": "Serbian Dinar", + "RUB": "Russian Ruble", + "RWF": "Rwandan Franc", + "SAR": "Saudi Riyal", + "SBD": "Solomon Islands Dollar", + "SCR": "Seychellois Rupee", + "SDG": "Sudanese Pound", + "SEK": "Swedish Krona", + "SGD": "Singapore Dollar", + "SHP": "Saint Helena Pound", + "SLL": "Sierra Leonean Leone", + "SOS": "Somali Shilling", + "SRD": "Surinamese Dollar", + "SSP": "South Sudanese Pound", + "STD": "São Tomé and Príncipe Dobra (pre-2018)", + "STN": "São Tomé and Príncipe Dobra", + "SVC": "Salvadoran Colón", + "SYP": "Syrian Pound", + "SZL": "Swazi Lilangeni", + "THB": "Thai Baht", + "TJS": "Tajikistani Somoni", + "TMT": "Turkmenistani Manat", + "TND": "Tunisian Dinar", + "TOP": "Tongan Pa'anga", + "TRY": "Turkish Lira", + "TTD": "Trinidad and Tobago Dollar", + "TWD": "New Taiwan Dollar", + "TZS": "Tanzanian Shilling", + "UAH": "Ukrainian Hryvnia", + "UGX": "Ugandan Shilling", + "USD": "United States Dollar", + "UYU": "Uruguayan Peso", + "UZS": "Uzbekistan Som", + "VEF": "Venezuelan Bolívar Fuerte", + "VND": "Vietnamese Dong", + "VUV": "Vanuatu Vatu", + "WST": "Samoan Tala", + "XAF": "CFA Franc BEAC", + "XAG": "Silver Ounce", + "XAU": "Gold Ounce", + "XCD": "East Caribbean Dollar", + "XDR": "Special Drawing Rights", + "XOF": "CFA Franc BCEAO", + "XPD": "Palladium Ounce", + "XPF": "CFP Franc", + "XPT": "Platinum Ounce", + "YER": "Yemeni Rial", + "ZAR": "South African Rand", + "ZMW": "Zambian Kwacha", + "ZWL": "Zimbabwean Dollar" +}; + +// Initial data for exchange rates +var exchangeRates = { + "disclaimer": "Usage subject to terms: https://openexchangerates.org/terms", + "license": "https://openexchangerates.org/license", + "timestamp": 1534107604, + "base": "USD", + "rates": { + "BTC": 0.000157753542, + "CAD": 1.316853, + "EUR": 0.879353, + "JPY": 110.46550427, + "USD": 1, + } +}; + +/* + + Create a jQuery ready listener that updates the options within the element with ID resultCurrency + Updates the associated label for the resultCurrency element to the selected currency's full currency name, currency abbreviation in parentheses, and colon + Ex: Canadian Dollar (CAN): + Create a jQuery click listener for the Update Rates button that: + Updates the exchangeRates object using the JSON string provided in the ",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("