From: Subject: Emozioni italiane: il nuovo consorzio per l'incoming - Travelnostop.com Date: Thu, 5 Nov 2009 16:59:31 +0100 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0040_01CA5E39.57B90310" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/news.aspx?id=68642 =EF=BB=BF Emozioni italiane: il nuovo consorzio per l'incoming = - Travelnostop.com
=
HOME=20 PAGE =E2=80=A2 CONTATTI = =E2=80=A2 INVIA UN COMUNICATO = STAMPA =E2=80=A2 PUBBLICITA'  = =E2=80=A2 RSS 3D"" CERCA NEL NETWORK
=

Cerca

nell'archivio

delle news

E' possibile cercare nell'archivio di Travelnostop = utilizzando=20 il form qua in basso.=20

=20

=20

=20

Iscriviti
alla newsletter
di=20 Travelnostop

=20

=20

=20


email non valida

DALLA NEWSLETTER
stampasegnala
ADV
Punta a promuovere i territori nascosti = della=20 Penisola con pacchetti ad hoc
Emozioni italiane: il nuovo consorzio per=20 l'incoming

Si chiama Emozioni Italiane, il nuovo consorzio che = riunisce adv e=20 TO di incoming delle varie regioni italiane  che puntano a = promuovere=20 i territori 'minori', le cui potenzialit=C3=A0 = turistiche troppe=20 volte rimangono inespresse. "L'obiettivo - = spiega il=20 presidente Armando Mariotta - =C3=A8 ridare slancio al = =E2=80=98prodotto Italia=E2=80=99 e=20 Innovare e superare la polverizzazione dell=E2=80=99offerta = turistica nazionale=20 creando una nuova immagine vincente, moderna ed affascinante del = nostro=20 Paese, con offerte turistiche trasversali che consentiranno di = superare il=20 limite della troppa parcellizzazione delle iniziative di = promozione e gli=20 effetti dell=E2=80=99autocritica distruttiva tipica del costume = nazionale". Grazie=20 all'apporto di ogni socio, profondo conoscitore del proprio = territorio, a=20 breve Emozioni Italiane metter=C3=A0 a disposizione del mercato = pacchetti=20 turisti in grado di soddisfare tutte le richieste e gli=20 interessi dei potenziali clienti.  Ai due soci che ricoprono = anche il=20 ruolo di vicepresidenti della nuova societ=C3=A0, Roberto = Cividin,=20 vicepresidente Fiavet nazionale e Mario Bevilacqua, vicepresidente = dell=E2=80=99Uftaa, =C3=A8 stato affidato il compito di far si = che questa nuova=20 realt=C3=A0 possa essere  riferimento per le adv e i TO = di tutto il=20 mondo. 

= =
LE ULTIME NEWS DI = TRAVELNOSTOP.COM=20
 
Renzi: abbiamo = esteso il=20 progetto anche al comparto di avd e TO
ore 15.20=20 | categoria: CRONACA
Strutturata in = quattro volumi=20 raccoglie oltre 37 mila manifestazioni
ore 14.00=20 | categoria: TURISMO
Per volare a = Bangkok da=20 Fiumicino o Malpensa fino a dicembre
ore 13.40=20 | categoria: COMPAGNIE=20 AEREE
Soluzione perfetta = per il=20 turismo wellness e per le proposte honey moon
ore 13.30=20 | categoria: TOUR=20 OPERATOR
Rinnovato nei = contenuti,=20 nella grafica e nel concept
ore 13.15=20 | categoria: TOUR=20 OPERATOR
=C3=88 stata = nominata Responsabile=20 Prodotto del catalogo Blu
ore 13.00=20 | categoria: TOUR=20 OPERATOR
L=E2=80=99educational ha = portato gli=20 adv alla scoperta dei tesori malesiani
ore 12.45=20 | categoria: TOUR=20 OPERATOR
1 2= 3= 4= 5=

HOME page=20 =E2=80=A2 Logos =E2=80=A2 = pubblicita' =E2=80=A2 chi siamo = =E2=80=A2 guida alla=20 navigazione=E2=80=A2 Travelnostop nel tuo = sito=20 =E2=80=A2 archivio

Travelnostop.com =C3=A8 un'iniziativa Logos Comunicazione & = Immagine Palermo=20 - Tel. 091.519165 - Fax 091.6700258 - PIVA 00249130824 - = palogos@tin.it
=C2=A92007=20 Travelnostop.com - Tutti i diritti sono riservati - E' vietata la = riproduzione=20 anche parziale di tutti i contenuti del sito

------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/logo.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://banner.travelnostop.com/xtutti/BannerFissi/Travelport/4TP3994-TravelOnline_468x60-Mountaineer.gif R0lGODlh1AE8ANU/APX2+aSns5CXrlivJXB/nrW2yFJhjZNZV+rU08fH1seurpmftxUSH2pZZKer wcDB0hs2YS1MYK+IjqHKtY5udsm6v4slJ+RleTgiJ62xxt3Ew5iCic/L2Lu8zcffvbCZn8rBzNrP 1trW4ubg6YW+kpfLZ6GlvgGc1jcwO7KvwGrP9r0rMl2jVPXg3SbD85FHR4CNpQV9sdhGVcSeo22t rF9ESk+MioLDU6PM5tDqv7XXsGCjkUWONTVvQwsiZf///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQF FAA/ACwAAAAA1AE8AAAG/0ABYUiAwYhDU6HzeDiORUfBkSkUMtSMVmtaCBYmB9WqFYe34rQpHE47 1m53F7xmswUwwVcP5q8XBD6Cg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmaikJFep1EAmMdJlB5C2Zv YBlNHaR4X3BbWLNoWG9qcbpydV1de3wLC0dGxVAGm8nKy8zNzs/Q0dKJxCYpKQFeeDCoKVjDxNzX f8IZCRwPGeCnbWmsTVdLV+63u2Z198JedGproEXFhiCbRrCgwYMIEypMBkuKlRTCTAQI4CDFFRPb Pkm4MIPCixcUTDRx4KWYnnZiOpzjwKEKGSkrO6SK06sXGH1n1PQhkueLMP8BAxcKHUq0qNGjkALk kZJCjB6mFclgzPNBQA0LFlbI0Mrxl6kvWW6pfMAynRlzIkaIaIkPjrt7f3zZ/LnHiB9VQZHq3cu3 r99MSgVco+jg6TwpHaYs2CjDAgMGNV5cuGDhhYULeUzlaRdGpSuWHbCYQCtCRAKZnM/Ma0tOLl0+ YOecyfu3tu3buI+WEhXmmjCLYrxNCfBiBVbHGDBYkDH5ggzmFIxtVgVmrMqyoTOMrfKAVFgx8nrh moPz16cvAXyDdUA7t/v38ONrKhyL6Rp5Ga592GD5+GMGyVmgHHMyJIeCMQKQA0YBCZxGFgenaVFA d1R0V4sYVVBXkz4R/ZH/IDliDIOKAxHIZ+KJKKZoyBtucYGYFh8w1x9WGAD4H4AY1FDDfxgYMMQp HErxQINDchAaE4kl5pKEotUkl02tfSOFOrEMo0QGJaqo5ZZc+iVeFm9olwEMlq0QoAU1ROBjBDyi wICb/6FAQQ09+SQkE02QlUATDU4B15R1gGEGHRwK6gsWsa2HkQMPFABBl5BGKilCHQrppzoGoOBf jwao6eMQELx5I48NlOrTGqxkR4ueRGYw12iulqchh2DF+stPC+T3y2gPPDrpr8AGq4mhjJpWwAIN RACBcmhCYAAEvvrgrAEGvAnnYzW+2cAGXYT1EkmoqLSnn7wE2mFc5tbn/6E1GOWaQUYLOCrsvPTW u4ih8UKoBQFxPhstIRCweWOOB7xQQ44UKJDYEkrqwt2eZWjX6ExOkkdeoT9R0e4dn5hg78cg1zsi SVKwCMNjARcy6mMCvxnZRwbXcEAKROJ56SxWXLHFhBaigWEZ6QbTsR+B2vdTyEgnHSmxcJmA8qMr R60jzAV/hEIDK3U3ZKM514KzFa0c9nOTHp7X8T6oaLEghRgp7fbbJ+IEpi8NMCBI1FLLfMDee7/Q wHXoLLF1dwszubMVNjc5Rhk6mX1SoLAWZoJKrsIA9+WY36ZKbPn4ivfKV3+k9wsHfMBSWYgPuacr SpIhYc4N11EF64WLpv9PfRVReQcMkxdmeebAB69bu3S0QUANKFz7OY/ZMkAABRuYw9KeWuPZCutd v+462bMzsfrWTYJxTeM/bVaS8Oinn9AndKFCALU67ri83aNCQICE59Ss+v6EJ2kFhjnT2SzA4z1X JCAERrrHn0jyOPZ5QX0QjCA0gqGNLxzBB/GbX9TsFwbB5cmDDdKf1ia2CpcE0BVTmBD1OIDA6U3B XG4RxqCEEQABSPCGONQEBQvlpgboSINRiwAMtIDCsAnudNQL4WnalYUTPgAER8pfAtKCwBCsxSwd ikgampKNBSglh2AMYyT2QR0wwKCHyAPiynwgxK3hiXZFwk6RQpAAV3n/64QonBCEhhSCPvZRBCEg RaHW44Au6iMQYkykIg8BLtuFgQLbqsAMNqBBFHyhAcqLgACmp8TvZU1wVqRjE2ghOFXBDh6sOCCE EgCCAmCEfbDMiB4QuchaKjJWXDgDBSggAQVIoAXNGxUG1MQolhSgWigjgOpCOL08ESmOa6Ge5FgR uDIwDEmzA0ErB+U4WGzDGLS0pThzCC47iIECB6gBL2cgv5XBIDFC6s4xMSAITSYpT8sMYRP6iI78 kcII8Vqd9xp0OnTkkYHnoYt0kDCEcToUhyxyRxdKdYBd8jKYjzHAhzoDTxMIzFkCiIcr4qhPcTVq iiPgwLEAqh2VWBGQ/4BkIR1lMpFsOFAPUGAoEdrz0J4CzyK0e4MAGnCAjuwtjdlCAQYUAIIHyKJ1 GdiRIHykBGfKcaTOTIuR/AQHBqVFLS3k52lq2sWJaCOnPDHC+3zKVuEpwRXaJIUEeunLdCYnOdjK UQ0awIExxGN2BHCTD3wEAxUS1JMj/OQUReCE6nAgLTENJQegWMOEVnYbDA0IT9vKWaShImeNWsAG ZoAABaRTqXcFUPKSp05adO9BAnDTtFowgiQSyZ+sCxsHRsDblqxtSCA4YGkmm4JvSiczAdHpZjvL XJG1QZcU0AACNOAmFCDvrtjd6wcC0AYGMQF1bPJBdFsAgAQIbk9SPP8N2M7xUt4ai4GrIEsLQVBD u+QUuWpVbnP3GzJwCWoBvJyuAoxQCqXmda+7rAAAvDOhI3UtsHuTgAZaYKR86nMJj70iSt1bgE7w 7h1PBAFEUJGOcORXpwLhr4rrlQJfqMQB0S3tB/hhFdReTW8zAAAAzmCLLSRGAujkpQI00MKsLcyl onzQVxNAks7krzvYmIhn1oHWzF5wxVgGFi7EZZUNKGAGG22DD63Lt73lWMTjw8XPHgJkvklgBhoQ AQhC0CgJvVFcj1WLSquQZ7WYJhsTsUJ9F/qjhWb50JJqSgpQ2KnnxSIxORkqCsq8NwW04BppZtFz GdWB/ZRZAiNoAZ3/FxZAl6DUNIWcQQUQAAA/JwDQZDVuQI57ZUTbWksFaLEZdCSniLgCQ6FBFqXN 3IJcIy7Xvbnnwj7QtwP8srx7pF1oHNCBlz5gATMg7aoBUJoKqKOCE8EprQ1963KjaBxrCOzVuHUf V3bQ3RlgNqUlEAKgorApDEIihAoggYq6WbqjxiopUjDnEGTAh7z8AJxnAGNofYobZjUuQJBgBHNb XD5clAgm57QB7trBLaNJTAA2UOYXfMCvtggxe1XKb77tEsjMmQG+ocyrDkiAdJCswWg/INtQuckA dfpElXkSzosb3TYgKCRFDLAtAczYGr8u52he6ACS900C9pjdermW/4JdfsBVHyjTCjhycpd4IwNB 5mVFS9W8YUYABQTIyESO8Clq8eToeLdNCFrQAgSE4AMWFcyCXlgpWQSgbyafyRYfUoCm6mxC1+zA 4bHCFY48RAou55vyHpO8CBRhCAIId06p9fC8m74vGgA4AhDA99JWAARraEpwZN8tycPsBYTpR3Cs ENw6a+d7zbw55Z+T7RksgW+kO8AGNj+wZDFAo1785vs+VfTTW38oGpBk9lefeun2ffV793sIRoCA DqyCPx85gKBymYbGrxJ7bzxgkm0udq3EfAbMmQyQG4DRG11N3MDQCaRHAP9yfQaYEBUgXTOgAKum cKOVgCDAeqs3gf98V28m4BE6QgG10mLPlUoRIi5H5k/y0AFddxyUZ3+V1xgroywYAHcsUQGVVT4C QXoFeIA2SBAz8AGlpQAhUAEVoAD78QH74YMhwHp9x3dHyGwZKD6uIHu44BIYAg8EpCREpDot1x/G sQJZ+BzOgVHQggEE4EcgUAFR5gXTR4M3mIYFoWoMqAEKgAA5qAAbMIcK14YTuHpIyHozUFFvsGhQ pGluwQu60FV6MjEOwGwmmBVa+Bwy4H+cRwAbIFOTVQBmdQzUUoNqmInLkHpfNoRyKAEbIIRz9QEV 0IMVgISoSF7TpRgEJ2JBwjBdM0Mc4mTjMjsPkAISYIJayBWOwTL/b6ImBBCBfjeGZYhZMJAlmpiM y5CAcFYBokhXG0ABQgg9kFQq20KHR/h9MEhw8JQNHaRyUPQ/FkOIeSQP3kUBusgcKxAnv2hJGwB+ fSRiNVVByKiM9pgJRNaGQBiNoQhJG4Bg1TiHuxSK4YeKCFABiYFpsicxcQWLmBZRXhN5x0IAAnIc 9pdUKOM8KeBHRRgC8hhxQHGPIokJPph9CnCScyWNH+CGcygBDQA9dHWSpZWKeNiD9VYRsqeQFgFF mIZsnVFn19A9DZIBllEjyrGLvfh2EKBUBuAAr0dk8RhlordcI1mVi3CSGgB4QHiNpfKGqSdJgMdL czhkRmiELdB9/0hYAbCYaznpkzpBbU+UkItWJA+Qi1jBI1rYi26ilJrkhxqgTT4olXhAlVZZmIYg hJ1YAaUyAxJgXQ3AgD/4AQyoAAFgUStplkgoh6fYAm+IQKujaD4ZiKpBagVQAcIFAomYLRighQMT MAzgeQvQimMImFEmBIZ5m4wgipK5f/8YP+oUjZIZlgOZgNOVhxPmhhN2hH6Xa9mwaCQoGwqpaVGh TXtyAIkoINkiIP8RARgQKg1QBPGiTQUHApQZbrh5nogAPYj5g9GIPLx2V6wljS0JZ+EngQnYen5H gTd5DfLQZG1gEQGEONr0AOh4nQJyFcLUKa8Jeg6gTSzEAYFpVv/oOaGE0ABCKJmSRAGOWSq8ljzJ oU671AAz0HfShYdnaZap9319F0hTkGbjE3sd4KCsBAIsZJcGagEoYBzBVCMoYHcwkAKSOIZkWFMU WqT78ZJe5kM6YqESED+rZV05Bz1elqLFSYGtV6KrhgB9VRFR0YRN0UE0OlkdYFqJaBxlaiaOyClx V3AsMYZsWUOYWKRW2Yn7cTB4lSMbUCpPaiBXAz3dl3oUaKKsB6jTJV0i9hAx2kqYRhF+2GkzUhkc MANmepe/6H/VlQcBIImTpZa1WY9yapgtiDwGBjpPuqcGUgOSmXoKF6hWSqLF2YMKsAQNGaN+0hQ2 ihUSMGccYJ3/lMp5jvgYokBwCDlngKkURuCpn2qVqXWnUdOCpqpUHno1JwlnEoiHVpqfeChdPghX 2pRCJWiCG9B43dofv2ot/0EBOIkHrQiDMFB3yYqbpWqUy4NX2KJa0bpO1nqHZbl9ycl33eeRCVkA jXEcB5Ae19CEG6CdzQonKOBFJPE+BBAAZEh3PkKY76qJqyWqqCWv/SdMfKojEvaDCpAw09WqRXiW /toCMaYB16AAZvoCG8AUKbCtCVk3nBcBEfCdZ4QtUBR6QkAtP6oU07dWF1uYGeuk2NWxA3Oqooqq eghJ+rqvEth3ikkBFSABpWWdLyABCBkcrweYaolGDXAEogAAEsuHAtRJWXhQBDUkEClWtFYZBAAh +QQFZAA/ACxiAAAAEQA8AAAG/8CAJ0eckI7IpO2nI+aMyehy4oRGkYZfpnpNZoVEXRcZ+aWGz/Gx /ENbrzvI7/coquPzgn2M1w7FY0tzTDmAXYJzKYVqiD8Bi2NZg22GV5KDHpVRl3Mcmklsgw+fZJNz b1GhgxlqqnMBanKmsGOujqilpj+4a7qOXX2mC7g7vj/DV42Tw6jKgwITzcYw0Uk7zoPRVtfGu9VH 3MbaRjvhvuMk5din2unmugHaNOrd8dHz76bQ9+qyuvsTaOCzlS2gwGv+TFEzKNBGQlP3BM57OEmi xGC6YFgUSHAOgY00Ov74uFGkxo2cTDkAmfIZDpbGTLxEaSzDTIst5+DAwbChrykUO2/61FUg6EaH ujoYtYhR59KLFIMK5ahPas+QVaWWFCZ1akqZWnEGAQAh+QQFlgA/ACyFAAcAiAAbAAAG/0CAEGD4 GY9DYebIZCaLTSOEkBENRR1B9PeMJr/JzlaQXG6Z5KF4C253uk0w9AxnQtLtBHs4R7a/a01vSRBn R1ZJdH9hdX5JIoZcfE0QCYsAgU6TcZdCmYdffVEQYIVenZiNRm0EhqqDQiMLBLRVn6ubmkKztL29 e0kLkQRywAC8vr2qkl8jpqdCfcRDC89H1o5E0NqRTBFgI5GWX63borrc6MGK0UwZV92c7fLp8QZt 51Ksxvm487oJRixjVg8RgHLx/NVT2G/LNADjjp15CMsMvYbL1DyEyA8dwoQZc8XDgyfclogP9Zhz JdJfBwgCh3xkyCQmx4Q0L+L8Aetby/8fpDzdG9KR3UJmkDY603kElkScIf/FM/jDoLAmDwkMFYKN IMafiWAm0YJO2pcEDcuuhCpEzwJ4TSJGCCo1Z1F0RjYCiKCWScQrBLr2HdzNJ6YfW/fagZtkpleW dQke+ZtJVaU2IxxnO4dq4darNsnmpWYEluPOiTkTNZL44OZReM7yXavuj6isRt4JgTR5k+7D9Bal 3ubukamBQAnYHLKUaW18TfCU2zibrskfD3k/lxMVgJ3l5ZBLIWDQE+1syJJhgwWFLgCyD69iT0Qv vS/3qrkyUVpI/P4v2HSXFhMGPfObSr/NkdhsrxmV30LlCcMeThvNJCBbQvw3BATuPYPhn3Pn2cUa gBMm5J6FYP20xVbXAdXYVhYphGJkDRJWWjAlgiQTiCIastUnvy0gnSBDiNajjY9R8oVBA16jyoXx PBTjfLtFhM1vn4gHJVa24VRSiEl285YQM7k3hEoaAtBimGAOJFYxR0QQGCVjktmmilGYFsVfdnK5 Wo130khlKEwMNUIHiDoFUVfd2edLTT/pBUBXw6GXjC9b5gnniJckIFh3i1T2k5loLiZSZ0492FBr 9bA6lmBsKhTqEYmd8ZeRHm0HSKZR1CmVAQJ0YNOhc0J2FKq00hcFdWfAIh9BoQYBACH5BAUsAT8A LIQAJQAsAREAAAb/wJ9wSCwaj8ikcslsOp/QqHRKrVqvz0gPy+16v+CweExu8gY8SHnNbrvfcHcE Ha/b7/j8fcDv84g9Z2hqEH1oW0KFA0iBfDwRRIKOkImGfIiSaJQ/ioaIPXxqkXRGjZpIfUWhlYtE ikWmj0JniKOQlqRHEYI8tZyGsrN+wYC8mz+ZwaC4A3MDokOrP33Qv62vzrh/P8uqjjzgrGiripmE fEbZntGOfZTl4L1Cfu6s8fLcl66pROp9vuwG+JL2al+rH/70deuHbtq3cEcyUbNXz+E4PpsSCgwo CVIgSfGcVXMoyo9BVgjjDUNUcd4zI2e2nbS2peCQcqKWUZIWE6UR/56kbI5qKGTZS3s5Mf6c6FKU UGtIi2JUVA0Uy6NJBFHa1bDgQmkLcUpt1lSYTKjsRkpb5/OpNCHZzr5ld8wnQnRPew4te/caUSLS nNkFzBRZS71DBC11lHYwWsTCFtEivBOrrrkOaxJV+lYpZMOtAv8VinntRadd/5IctQwaZsNn7Qp2 S9agGrBBVfMFte2py8m/wG10WZeqN2eVUR/0qdS2YLibLcMcDoiOTc5YsRdfhfssaemmnfVOvXw1 O8O1XmfrAc0mb7SOiTuMAEFn/Pn1m/su9KihVav3NZeWYuY99Ypv85kHIF+o1MbQIgUZR1AoCGqX n4PwmdcYSVqhRf8bNHP8EWJA/wyhznitIJfhc8dZ1FInFeGyCYxKhWjcGfltwyJl3kCgyBYTloeN bgkC15klACVYxGx46UVOTzvS5aKAg5V2FHcUktdjYrWZhgY4AHG1EY3DCRVlWcAUAQ84lTFm0D0e bUTLkCkSaaUaigWpJjpnribYiByBuVRdfVljSEmW6GjnS2ka8Z1aV74kXoSqHcnlVSOVgtc37N00 GmbPYaSPp+URN2p8Z8TZy5jkjXSmaa05diCo0UEAHIMRUTfEe/AM9M2MtIbWzKmkEgYpoqJopaWx 0H0pCa6XQUgkbbE5+YyKAV4roG+pWtOtkm5yGZuChzoGaLhmXTre12vVCalUhdL9VoS1EGBbrJT3 FmiJY0Axc0u8PiYyGYJPOYOIraapsVCGjS3sW78HNWewwK8deaRMimw1KsJYxbWlEo6IIl62mfZ1 sCDI5uPucrxBg9hb6vD7Ul4bDQORUW4SjIvC/m6Y80P4mIbiPewRtUwtt+LcErPNdkwPukpTaVFd No/bV6L5Mq2pjD7nkiGMz24YmV/lrfLeg1OSEkstOlsiMi8ABQkJmZiyMjcuRR+U8a66ionPEXOh 7EoshPqdpMqLmXREfcbM9LEucH+8d3xrP26ozHhiSFwQACH5BAUKAD8ALGIAAABmATwAAAb/wIVJ IBCaFgSfcslsRnS56IRErVptzax2y+16v+CweEwum8/otHrNVsLecALBIIZMormpdY9t+/+AgYKD hIWGXnJwMHJ0YgJ4entVjYeVlpeYmZqaBDBEC6AClGAEkJJWo5uqq6ytrpieRSYOR6leBh5ROqdV Ea+/wMHCw1sLtKCzGbZdT1K8VL7E0tPU1YIBKSkLRQ4Oy10Bzrw7ENbm5+jpWsYOCzDs0WKlec/k ZQD4ALb5+Ble/N8gEMggIp+IDgK0AMzCryG/DloE8PPnRWI+iAodOsSormMgWe5MFMgQLwwueuPK kVnYxOE3JSyZQLCoMUFGfPs0NuTIpEND/5VcCvLbonOnx6N/2A1x8KAA0DAQoOzi1Wdlvpz8RHSJ qQRCgqIAeC7hChMsPrFKhF7tAsHh07FmwyKduyZDiiMCTGR48BZMuKmnqo4h60NjEqJre/IbgUQO QbSFEzPh11iOZTk38y3oQsBl5sqXMdMdbSZDBgFvijgtUwqwJMFiCGsc0bcsTiadNfetLVvylwgO R3T52vBwS9+kk6OZNYRIXjMRcrje83Ir8sgON2celcHg4OuEuRjQGNDwduXo0RgrcDeUGTvTUZnp DSDBiPBc1RoHQ1+fvHzEAaBdFrmFlQ9Fx92W3oJjCFHAAx3QkpAZMMQ3yXzgnVVgfefBhf/Pfl/0 V10TNNEknBYBFmgTQ9cx6KIWDuTVQQIZmADDGQZYCA2GCk52FgT35QMidv4tESSHsWXY4xc+4QPc dW2dNV4+Hb5opRZDwGBChKidYcczJSW5pG1abUhbgkUq0SQ+A4aoZJpfqOWDWm0qUeAc/PQV3pVW buMJXjeeAQOYPMJpGwA+AMnPhB7CuWF9Ix6KlaHWcbiAd00EGEGUYxIZKZ/omdBcEdugYQCh97xp Z0MlkRWgQQTU1uikn/rwpFxTOikTpvwMuSeoDHZzBCgBMFpGBDvwIus/qirxKk9keTXbkLOyaFYq uWp3pLEFaremr3HVCiw6DqTgQADEBvr/XrKnhBlGf0vk+mG1TcykUwLuemotWKncqUR3+Gi1RICN ACwXmkWJO64554LiMLVQsStJvm52OtQSBgMggkp7CnRkPmeiOWnCJAq5aj7RcHqiDwUK7OO1CytH RGpEQBzGoO0WOqlMHx/2a6IEqHXWvpOCdtlbazbCKQATdrvEhvsabdmyMauDmiKLpEHAKfakanE+ T5lZzs9P/yQy0WGoBZTBKxpMibxhkl01XW+EZjMpkVSxwxkiNiH0ZkmHsSGIffNHZdlgLw3U0qnI PTdSds+RhgF5UwGbmJSSJS8AEAQOxtKEv/lprisn2muuCB4aeqePJ2dZHApnQXnll78r/3oWawro ueHzvpx5i7Jf1ITB25isGD7G6tv6gq/XHXsTs/PB9+31NqRWrYyfrT0iBzbRcoBvGSyW48urE/nz TEQwQd471M7776w/CnwWJqK9fReX9r7E0gASCPL95SPN+dKgvvXpzX0Vgx+lEvUx30QgVvXKn/7o 5btPfSsLr5rgyfABwADSZYBogEAADEiF9k3va6xjGXmYMKURdOCFuauPnt4kNcsw4Ui2kF9f5DUK ykRONB5MR2jqpgYarG8KOzChzuynhRjCaXMOSQBv3lQUaEGpISuqnm/icrAgoqMTWLsbGIxowCQi kFkoXKASoDgKKC5KVv2pYrwuhsFFIf9mglyEjBengTUipgEGRySBGU+owOpIcEkGEEAHjuRCCHIh jjrhiLy2sCGKralNedwjOvqYNa0dkQaD1KQoR/mFujVPDQT4ZChJycpW2mmIYvzC7CYAyvZRzZW4 bB0jDPA6NcySBrWkWC6HaaUI9EALu+RlJ9RQQGCC0ga3JKY0lcODAfDgLc5TZiy9YAdaOhOa0wzn lSJgTRIJIJmO9NL6nAnKaIrznTJbxBwMQE93doGdwOzaGAbAz37ygAk9qKY1ywGBflrzmF3h5xYC yk8elESgDY1HQQ06AIRC1JoSpWhFldADfr6lmv/MAkMxuoV+NsGjCR1AvRQKUIE6VAn/1UQoE6rp C42GVAsRcKlME2XQl8LUnz5taURn2tNodFSjAyDnAN6CUh/08ykTTamtkFpOHxy1CduYJz0NYE8u EACfNBAmF4DKg5BO1JoonehFCcrS9CFVpv7sZ8oaWlYeIDSu/JyrNeuK0KPu9KxOeKsW+rnTpkZV Jm1VKkWPeVW3qtSpdC3rFi761JRCNBp4TeoSFGtQuDZUrlYtK1mVytSlKsGfiH1sVHMqWrreNa9M QJc8t9rVLRgArGItqWmbANIsHHaixzzs/hqqkqNidre95eljT4rcqgqXqG21amUtW1zYMrepkFXJ c5VLXY7mdaJP6ehrbynQaOSUpYdt/2xTG6vW6mo2uz+9KXeXgN3T7razw1VtdOG7WdQuIQDoulon citL3JahvvZ1l3CVOt8lJNfBLG0qgxvMBAmjd7/2xe5lISxfHwg0Cz2l7263e9gH/1SlMa3wexEc 2N2KOLhthS12YWtiD0d4txOWqohLq5LPjvjCy7XvU2KK3RQAOMBEIDAiwPo8Fte4wQzernXzW471 OhfD/O2oWbH8WYQWVLSeDRN4mavU42p3v4edckohkOMcs5ioO/XuP4UrYxfXWcwotbJ8n4vgpua1 oTqWsosha2OZgsDIAN6GKNIAARMw+cCDVoJie7C4tmqZwttNMGQ3ZVwdkxkCnaZwQv8dylLxitfT Kg6TRz/MXxIrNNObzvJGhdwFNUv61UCu8o+XCus7g1rNfI60n5da3vkKGijk/Geyl3DoIxcLBujb LA4eTQaNypSzW35smSmc41RD1qAZpehxwZ1fcid7zNX8dUi7LWJV85qfxzQsmhXKbk2nmL/fJiyI 3+tY7kIguWntbb1jrVE8B7nP9zXtU3+7Xw2veLcVqACinx1tO00bn02ObJzPu9Gz6pvbXFa4f/Nb V5+GOLUl98WpY7palg4c4eX4sLyDzN2Xm5bByxbxXu26b3dFWaM9pui6Q65rQPs2ujCntVKvCWTm AqWt964ACEAgcQCf848XZ2fGb3n/VbXatdJBHnO/Nw3v1A42qWXPbxZoKl27djzXLd530I96ZppH Vez9Xe6qZ01rLtwboOX0emHpGu63TPjPfFf7jp3e9/I2XcUqWXprHwuCEIQABAo4cvLG0GgcePOb kL7lz2mOash2GOBL3Xbphax6UdvYF2p9+HFPX1XIe3e628250TkMYbrbnguNzS/siX522ofUo61H NbBjvGuTirqplAUtB0LAgYgjuk5jiAAOto/PM+p2N9pNMaxzn/Z/D7scwe+1adOPYeg7P9ZTnbX5 I41vgz699hM1b/kFiuyR932sA3VrV0Z6+OZYXsZ/tBZ8qKZlQPFg2MVZpZdW+5Vi/9RHdVUHYKay fVkHTOC0T5EVUkflX+MHdNJVcItnepbFV31ndF5XVpRmaWlXaEsQguQmd3nnYooFUfJFg6ClYvyW YSWHU0h1U+onKzw4ZcO2Z9HlcRD1eyemXzSHUpfWbxzAAVTHHkYmALWFGxqIT/oUBjbFUTqleCtF UZE3hr+Xf8qFX60GWx4Hb8Klht61UxzHc98HXVA1UkG1WWjYBAqYYf4nE3pYEkXIBXUYZzMXbiLV h/+3hhFoWmxHZlV4hYgmAErmWwLQhez0hfDUiQtSeVNXAQEAB5dYLw6giexUip64iuiQAqE4isqE PtqngZ8HTKrIirhIDQQQABK3CDX0JDllYAAayH2pmIvGOBcGAANG5ou8hD4EMIwbSAMVd4zUuAqd UCyMwAgUAo0YV43eeA5BAAAh+QQFCgA/ACx6AAAAWAE8AAAG/0CfcEgsGo/IiC7HnJCe0KgNSa1a r9isdsvter/gsHhMLhMhE2bOGW1PzfC4fE6v2+/4q0DNbkMNeYGCg4SFhodEBHx+UYCIj5CRkpOF Bh5MOoxQEZSdnp+goUdKTZpPnKKpqqusdQGlmjsQrbS1trdUimumsl0AvwCORMC/GVbEwkUQBBki wCIdAkfIRsTWxB1HAsTGVtvA2dPX1+G45oGWu7GzXNRF18nVwPE+EN/jCeK/9OPkRx3W2FFxRgxJ P2vlzimsA2FJJk1v2s2TR0xEFXdDICQ4CCDhEIwfOf7yKITgRCoQrgkcJrLjwpeucjxkFHELSCHj CFC5CRDYiP8FBII2I+njZlFgQIMqVaoPaRUC8JomXcoUplU4imb6qanF6LgRK1nuS0RsQdh6Tfmd xBLh2ogqG63ppBjsql07EWSaoofF67gFBtf6yPDMpmCch6sYGMe3Xs60dyPLQaO1TeNjiYElGGH0 6NghJudm8fsZC9RfcQEAPnK6I7Bu7xJLng0GRuVGXkh3aA0gH91kxET3zSwbyb17b4+kbu07dmna 0L8YuL0pN/GOEDgDE474ufbehp93r5ulJ4C2iVOOXAwMcvT3XdCYQiVRvGeLvME6Jy/EvOqu1/F3 hUk+mLQaWb8QwN4vZ3UG34NUwDCfdfYVlB0x0oglIG+9Xab/oVr27YSaDwsUVkRqEahXYXEQtkiE ARP6EqAQHNLnmYA+pPYMAWd9+FsW6Lm04HlnmBjcjy4mOcoOmvR4BWkADKFjQjdp9BV3Pu53UDwL rvZdhjQ65YN5WLaEo5LQQcAkIzYCuOIvQwwJgGhG2dNPAm2OByJH8bQ2F2G/WCTlSYC6pGU/HqJp l5qa5Dncm1EOUSgAIrDj4DLf+dRggFsWcc9cvKGiYnI+tCaohp0qCp+EbFJ4ZkEZZTqXg0IsY9JI SGo4FVVhmeeIigBk2NqBvNG161JOqnoXAYz0IiOkK+U3C60IAhMWlImCZq2kmglRqDBDtkmtstER 0AcUO3yB/20RtwLmaxa8cbfuo5GGaS2wAgEbz7jk0mbAuU9w5earh8kJwbtYACtvgNn6sCCpjm23 IGzjLRxiv+/9C7DAozFshH8LIEyvxQRfXMSCHhW6wKdFmAemnhgnqbEb6nqsjDUmNRyxePNa0RrF pT6TWliFesRvzHdFMMG5O3BM7558cciipz7lGpLJRJSY4M3XNDdEaxDfqDPSVim9NLpOP2mzMpkK FgGPymi99X5QY0GmETrOXW29MJP9IAQBnP1E0zVD2pjUArI3QgeM+9fbppAeuxQR39Ej9VlDAocU VZP7fRcNSzuxA+Gu1o2E44mLlECPUB5EZXrWeJ0RSGYS5f+5QqCfPXramBlOhZypHySAk633U86Q SOj4sobC1X67XTCETsLuhZd8ZtbWJGOAAB18tzjcIkLqepywGhHq6WKON/7zVpm7NA3Usy///PCG Dj/p9Oev/4v2757s/gAkm8YmQIP7OSqACIyZ2QoIPxv8L4EQRBMaCMhAB0bwghibIAPh90AMevA9 Gyygs7YwgBKakAdE6AEPSsiDWUDAhAPgQQ8yUkIkqJCFNlrhCenzQhgOYIY+0CEOaehDIPaghGFZ IQqNcMMYHtCERUBirWp4BioOoYk8QMUKgUiEFXLChzGkQgR0KMMq7nAIQuRBFplIxhzCcI0+OCIY BxABKRL/wY4mXEkPD0GAENLggFU4oRqX2MMYSrGHQhyAC604hDqCkYsnNKGoWDhIIEayhJOMYSWF IEcu1gOKRHBkEY9gQk/acY9mbOQcZyjHIjhSCIJUIxISmccpGhKTsGShJFX5yCFcko5xVGMsHRkW PLIwlYYwgB8BSQU7djGMyqBiD2eISiK2kJO49IEdlWhLUipSCNz85ACOIMQU1tKW14xjNu94Tm1+ U5zRHKc40ynHFDlTnZZ8JxV0iIoxSpOKrXQnOwKKyIFmc5vQ7KYv9ZlLdsCQi9UkhDJDyEwk3DOX earmKyMaxISCk4p2fCU8jRDSf8oziu0UIn3CiUZG5vKY/w1VKBE/usSWjnOL7ETFRV150RJS04q4 dCYuWfpReZb0pCONKTsdekt2cFQQfQzh2BZ6FqLKdKMuXactZ2HHIxLSpUr1qkzZidNPChOSwDRj Mel40HdyFJVaFScEROoDuu70mZ7EJgqrGVR99rVNPeTqO8U6U6qilKmO/CpSBQEBE/hxqkoNZSnz ZUWxRvSp7vwiHSFQz7EuNEWdTSoNswjQHx4RiJiNKxJ1qNS31jC1wOzqDw3bzLRKdpyoDKxAtwpb zYJWqxHt6TtXi0vM4iECOHhsF3opBFFCE5WO5ERE6ZpTd8KQh2DUqQ+xu926xlC3K+QsNKn72cNO c7eihf8neTHa0XwKhLnV5SluXxvOQ3JzvZm17i6RGVmlSjGPxr0DAZIr1eVSsoyh1OFPRyla/P73 hPEcJBzfGOFBcuK07d2jSB3M0N2y9pQu1TBYd/vKOtbUuptEaZ6w6kOmUti7i43pi+O51MPGNLEB tgMMCLxByKKXCq1EpAwpi1Td3hajPuVvTpNc2GdeOIYYzu1F12tMOTo1xK+dMlAVWdb+GqHLVwyj kE1JSe6GRaSYZLKShctUdvBzxHdoLA4oWEEDP5DFR+AoTFu6RCRGt8lL/bNnOypdXWpXuyfuaKLR K0cQL9bEuUw0S7d4z7uGebE9LHSMf0zWItRXkYIGNHD/t3xlGBYCuTjgcQF5Z9EO18OpOMUsRx2J Wh22WZ0nhe0sAppe9JaTvTCu9U6F2s49Z7q5TIaArXnpUU57M52JHbSzkT3beix7t7weq1cFwlJn OrcSqVY1DSxIwgMvsdEwlTUYdz1H+hhTsRJ2b6TRWclqdrKlXET3fm1MbX2KMo3mzC5KbftSCY9i jjXVtQ3bTds9i7aQt0TqPX89iAGnOoQjzAIYz01GiI4Y4iHtOL+PDfJqO1rTD63msbHpSX9CubYr uXatsLhikTMRrBtHAmfbqGTajsLmtF15r7GY13sWkhD2CDfGO/jBpl8FAg5QOkWdTvXooDrVdC5g RavOIXVzGCDcF9/g1rtOdlpYXOoM9HHZ1+6JHYO9wGyPOxmCAAAh+QQFCgA/ACyeAAAANgE8AAAG /0CfcEgsGo9IX0SXa05I0KjUlqxar9isdsvter/gsHhMJkImzdxTyqaW3/C4fE6v28WC9JodNdz/ gIGCg4RwBHp8Un6FjI2Oj5BlBh5NOolREZGam5ydjUtOl1CZnqWmp6heAaGXOxCpsLGyqIdqoq5d ALoAi0S7uhlWv71FEAQZIrsiHQJHw0a/0b8dRwK/wVbWu9TO0tLcs+FZk7atr1zPRdLE0LvsPhDa 3gnduu/e30cd0edJyb9I8EUDJ65gEghMLF1yg85du18iqqQbAiGBQAAEh0zUeFFXRiH/HB6U1s9X R4wGUyZZpTARwy0bhXgjkCTmvl0jFhDYieyjj/+YP3fp3EmUaD2hVQisOzq0qFGVUIkcasnnpRag 3kaUNGlP6q8FW+EdvScSSwRpI6pYjEbzIa+ocKtEyEGVzTssWL0tCFjWRwZlMPvKFFzFgLe78GaO jcvYyJm6irzkBZBgBNCgXYeEbJtl8tssSnWtBbD3SGiMu7CpI9w4LgzIfSQT3naa8mKOujjjnc0a iTx5aY+MPk3PLeLWUA3AHiU7M9cOECzv0j3YuQ/ptq/ytm7lJoCzhCFsM7zrNvLGZ0SRasgdc8Ta Wldb905ae/vLSEL6CFnaa27yuoSF33kqwaBec59xBQA82AHQjILE1EbZcRAaZx89CwBWxGgRiLf/ XYIExmXAgbl8KISE62EGog+jKUNAWBXKt2IS4KEE4HdmaPgLdSpSGKI4EexwCYxXeDZEiwTFVFFW POI240krAlgadg+eiJQP3vEIpY8/egKBkImkaN+T5QlxIwCcARUPPgmIWR2ZHbFzWlt/6RLRkSLV iZKMAnHZJSdfXuLmbveVKYSeAIhwDn7GNKhLfDKSFWcR8rRVGykeAhCcD6fdqWCff4ZjYJgISrog RQ22NSA8BITkkYUyNuXUVt4tkqmDVurSX21uyVoUkaGWQkAiuJRYaID+PfrKqkNIuJVnfu63Sz96 FqdnLzeKyWywsBCwRxQ7fAFtEa7uVStoO0YK/2uRhnL6CwS39nMrO9tyi4oB30Jh1ZimsnMmBOdi cSt1414B4KaJTQegam8S3Ju9seCb776dffgOfQsETCia6nZsBYAZ6blApUV4V+Wb0ULsicRtiGux Y9GEFO28Hjvp52kMu2vnaFvpmVG9KnsSwQTf7kDxxv2ahk+0wK1rMxYZ5lbMPEachnCPQRc0NNHg Hs3usTMyeBgREbxYTNRS14wyFlka0WLayZ76dNbhQBAA11AY7TLYiEloHXkjdCA4fZQJ+KGvRRGB 3Tt+h3UjMV85lTjdpdBA9BM76F2q0yUvNcSZ0iQAo2cCJRleNMVN3ReUPlEOieVcZ+61MC8jAf86 MaD/IgCRpOMDzo1ItHiygrqx7ronMFxOgux7wxn2EGj/LUAH2AVudk0flv45QErvMiiWV76p/fGc eEs0DcyTr/76WJg/Afqasy///J9fDr8NwNKvf9ASvw//9/sLoL22RoMCGi1/Akzgj87gvwLiT4EQ tBcDC2hABEbwgnGhIAWLtYUBePCDPCBCD3jgQR68AgIfHAAPekARDyJhhCVMEQlBuB4UpnAALPTB DGPYwhvmsAce3AoJQ2gEGKrwex8sQhCFYMNiuFCEM+QBKUiYQyKQMBM3VCGNolhFeKRQikPYIQ/A WAQjklEIOzziIwigwQICMAkgHCMRbajCJdr/MI0nfCLZsojDIYDwg5gqoRxz+EcPBlKFgxQCEPvY wwEUIQJ87KIfPdjFJXrRkWbQIySzyMJFPvKJcRwjEtL4wXPcEZBCKOQA1rNJH06yjoZ0hAHaSIM3 IsGSVtSiEzFpQxY2MZMqPMciSWHJITJRj0Qopi5/WYQdirCUPTShImOpRGimcgCmROYljxnMaa7S hiUBIiGxaYUZkiICM+SmN68pzCfesZ2rZCcadcmIWbbRlkfA5STdxMxNbjOXRAwjKMmpBHdqU54F 5eVBfZDCfuxwPcbMJSaTCcJJZnOi6tQhPefpSCpSlJgERcImt0LJfzI0nriMZUQFiklL+rMR/2xs Y8osaoSV9nAI/mTmNcUEzpO2c44LtSQQgYrRSXrUi2Nk5El5qs+lUtOSOv0nNXsIgZcmlKZJOOoz Q8jMWKYUpfEE5iuEutFBQMAEtJwpQvdISXnpcagmjes+lwqBYWa0mh2yq1yR+lJxivOuH60mBNLp U8BuM6o7LawP/rrWfIaVrf/sKVSDiNil0lWvhYgADtLaBU7i9IsZ3WQmdGrVwGaxhqe9ZgpRe8NM QNKESyRhXXVZ2rlSFF4lnWxRm1jbxB71qymUpGU/6cgmDlaXdjRmby2bWphuVqadFeQKHzlDX3o2 rstdImiBKUcybjeacszEX6nI2ydmN6TyTP+nbnd5VSMs0Z+vpSgip4tXI+Q0i+fIIhHPO9aKPgIG z9WgWhWbBE/ecYVuxWhPIetUpe61wV1E7BUXq8K//nLBny2qYim5XmBecitWDaJWCXyEEU+Tq4Ks pCBZC+KBblK4gjgrDhrowOgi8L4almsJm4lcbIr2pu718VQlHM9TghSkAZ1nkhG6yA5/log7BqhA F1mSppZRmzYcbVDRa1QeQ1nIjyWEZnEQ4BpzwcrwYqJHKxvVF6vZkkv0pGHlKee9KlOP1HQzPGYY FuCGNMqXPGdJ94zLVi7ZytWUZkKJ6lgY6fm4BI3zQgFhADKXmQYP7KB0idjkKLMZvxRu7oasl7np ceaX1PNF8FsHrdEqdhqVQe5HK2WtyiS/eqqqFVMolyyEVn63sogOdWuxCuhBEMDSbeRgFvSrSC4C eZcN7bWzb8tNLbtSsVm+ZHCZme1pdhGdJYRxY/lsBjO6CdwVPkKdX+lfx5jbw7HeYrgFO+c/xAPZ GlQ2BvcNFwg4AN8axCe/Bw6LMZOZxrUkuMJTUmlLX1rgC4/4Jo7tcOhK/OKpAHDFBYzxjmMhCAAh +QQFCgA/ACzDAAAAEQE8AAAG/0CfcEgsGo/IY0SXa05I0KjUlqxar9isdsvter/gsHgLmTRzT6ma Om673/C4fE4nCs5pddRQ7/v/gIGCRQR4elJ8g4qLjI2OPgYeTTqHURGPmJmam1xLTpVQl5yjpKWY AZ+VOxCmra6vdIVooKtdALcAiUS4txlWvLpFEAQZIrgiHQJHwEa8zrwdRwK8vlbTuNHLz8/ZsIyR s6qsXMxFz8HNuOg+ENfbCdq369vcRx3O40nGvEj0zt3eFEFgQqkSG3Lq0vESUaXcEAgJ/AEAOMRh RYm3KArZlzAJhGf5dmGcGLARqoKHDm6xKGQbgSQs7+EasYCAzWIafbDUiaumzf+fP+P1rELgnFCf QIOWXFQIpR6VWnZuGxFSpDwiRXtWZSd0XkcsEZ6NqBLR2UuFuZZyipDDqZp1WKRuW9Dvq48Mx1ba bbm3ioFtcNm57Kp2Uxm3iLzIBZBgxE6eV4dwPJtlcdosWRkPPZJZJoBq5voWbgQD8R7FfbFlZkz4 4i3KcVOLRuLO3dgjZQFkhoc28GhFBkyHQh3ZagcIjnHB5lvcR3LWUWU3t+I5bN+PGf/iav37URlQ ohBOh8xwNdXQzT0DoFtZ+mUsHH1wZI9VufZbWx93VwQDPPH3rgHAznMAKGMVgKsx5tuBXo0H0y3w LJBXEblFgN14+u0niAH+2eL/nhAJhgcZgD7kdgwBWzHYWxbWkXQfACJeyNCIy424oIZ/RLBDJSle YdkQJgLEEkRT1RhggxKhcx97zxkI4mae1TgSiTjOAcGOh4gYHYbbCfGibkca0Q49CWjJHJVTopPZ WXjdMqMQuSXSJknoJVmlH1dWYmZsXN5CxJwAiDCOfsMQeMt5dSLpDzrunLWaKBfe5kNmbwa46J1+ 9Jflf0gSgRwvZ2XIDgEcZbRinUglVZVniVxY4JO30LcaWqkC1SOmbhBwSC0e9glASOaxIuoQCVZl 2Y2S4ZLPnLzNqcuLWg6L6xwE5BHFDl8cW0SpdLGKGaiJnupjl7Di52o+rqIj/+20cRhgLRRQbYnm Xl9C4C0Wri6n7RX3SSqYfbiAdqa+s7FLh7vvxtuer+uot8C9fIKpYrj8YlPEnAs0WoRnTp6JrMFv ILxGtu6t42qgBQvD0r5WZCbwpMfkVtWcFK0LchsRTGDtDgpHjCRcCaZsx0zihnmFhK+p/Axv9R1K 8c1+5KzztT2Py/ARnxo1RAQoCoN00k8bTZ1yRpgIdtN+Tgx1HxAEMDUUPJN8NWeAEaHdCB3krR5j +blXK1BEPLdO0Fu9GAwvfyu1dhs06PzEDnFzWvTGWnuJUQIpWuaPkNc5w7SnFk2Z0+JeND415FX/ UnISXwLYOi8C9Kg5Pd28iP+EiR0fCJvopLcBg+MkoC73vA4O8XVzBgjQwXN4d/2gr5sPYTvduOzp g2f0jRh972JUqzMNwnMv/vjEOg5+5OSnTzrCE5xvw63qx18l+zScb738+O8ndf3gv5///3cqQ/v4 5z8AGrA7AuQf+OB3wAa2QoH149UWBkDBCvKACD3gAQV5wAoIVHAAPOjBQyiIhAxuUEQatGB4PPjB AYjQByk84Qhb+MIeULAqGrygEUwIQutVsAg3FAILhUFCDKaQB6LQ4AuJoMFLtBCESYjAEZe4CQJA kAb3S4IFecBFIVowiCyM4QA6WEQiROCJLhzCFykIqQ1yMYRCWOMA2gjCN9b/kIJUZOEAinDGJ1JR jXgkQhDZUUYv7lEIfaShD2x4yK0VcYtdPIIYK8jAQRjgillEwiCZCEUiHpKFIhyipzY4DkaKYpA5 NOQRUNlJURYhhhik5Aw5KARTGuGD+RikK1VJSBCWko0sDIkNX7hJJKRQFFIsJCYuCcFMrnKMt5yj mMrYx16+spNDSGEcoemDalozmuPw5i4BuckYhieVnGwkObGpS2WKEp3ZJKESBSlNHxTTCH2sijIf YUUIfgyI3OSkDkfZyGqOk42eZMUgbajDcW7zlw3dpz1BmEZCcrGiE9VSMAHax1Nyc5yiRChBIeDN bpbxntf84yLV6R0TXPGf//TcSiJ7gK4yMvSbvORoRiFgS5zS00I9dagHkVjEYQ4zpz8FKAS0OdFx gJSEDs1oU2uJUZQmlY8sdUQEcPDSLvjRkRbkZUd9WtKkPnGFZ93mB9HawkuckYNB1CBPO1lWQGrp hqCcqk+tWddtXmKeep3oB1UqUjNmtREE4Ko/vepGOJoxhaH8KlklGsQPDtSQb0SiWrGJ2Tde4qhK HKI3+xrYh8KQhO1kqWgpC81qvpWedXTsVQ27CRgoVoEwBSQDGdlLLtJ0hiPF6iHZGEjgRrOPedxn E1cawjSKcqOGzeog8ZhaT/ayKiW9IWBNm4TtDsGGmoCACXAwQAIyloEGlf/oQTl7Wh3ecKxI1S18 93raS4SxniLd4DUvy11GVtew7mUvPJVYTKt+150SXcRWcXDb+qVOkwF9iFPnGdVxIleIKRxHEHkb X9NymL6sPGk9L8yODINznbnEJguRWdylbjKR/DUwIGlpUvY2wgAMbjANCqgFSOrQv/qlby9xudK0 cjfIYbTjkVvZ2BC6kpFL3C6QK7inF8sSkXK87JQLq9a7NlkJaOSvIxLLYAhKMAtP/PEUjetJIndz zTE1pH0lm9o509CVKz4wFZMJQpXqNp0h4ekRzcRn2cZSui0UsxB5qNnwCiDHZq6kAyftHQdAupmU znQpFszg8tbPmZoOdSAccJxjHYNa1KiuA5kvzb/cpvrVbrBtqRcLawcGAQAh+QQFCgA/ACzuAAAA 5gA8AAAG/0CfcEgsGo9IYkSXa05I0KjUlqxar9isdsvter/gLmTSzD2laGp4zW673/B4UlA+o6MG uX7P7/u9BHV3Unl/hoeIiWsGHk06g1ERipOUlZVLTpBQkpadnp9wAZmQOxCgp6ipWIFmmqVdALEA hUSysRlWtrRFEAQZIrIiHQJHuka2yLYdRwK2uFbNssvFycnTqkaMraSmXMZFybvHsuI+ENHVCdSx 5dXWRx3I3UnAtkjuyNfYRBBMj5BqvJEbZ0tElW9DICTAB0DfEIQPGcZyKKTewCQQks2rJbHhviOi /g0KuAWikGoEkpiMJ2vEAgIwf1H0YZKmrJcwc+Zcd7MKgf9wPHHq3PmxSCCRd0hqqVltxEaO7Ij8 vPnUHM92F7FESDaiykJkKQnOKpolQg6kaMphYVptwb2sPjIEKwn3ZN0qBqqpNYfyKlksY9AS8sIW QIIRNW1GHWIxbJbCY7NMNdzzyGSWAJ6Bu/v3CAzBeAjflTbZsN+IsRyvHc0ZCTp0XY98BTBZndi9 nYkYAL1J9GKoHSAglqXa7m8fw00vZX3cCuatdzNOzCvrdG6Mdu5wEthcscHSTjcfxwzA7WPmkbFY 9GHRvFTi1GNVTXydCAxN2+l2tyfcFjGo6flQmmG4AYhVdyrFos4CcxUxWwTS7ddafUIYgJ9vARoH gBAD5mf/0mzBEFCVgbeVJY0P8QGQX4QGKUZbiRQiEcEOkIx4BWRDgKiPSQo1VRyJ4jEkTnzmJfcf h5Vh9mNHGf4FAY2D5LechLEMkeKLGpZzjjsJSJmlWPiIM1lYcsXSohCzFVKmR0GGSeGTkHi5GpUb DrEmACJ0Q18vybU0H3puEoFOWKVxEmFsAjYIYKD13RclhgfWKUR/xH2JEQEWTQQjgEIN9RRmhUQI wH+TuVeaWJ3qZGNRBAzyCizobQSeKfQZJU+QkRZIhEXzrGnbmrSkKGWtMRKQHRQ7fAGZOJm6Bapk thS37HlVDlEaBKLOI6o4xFJowLEkKDVlkyZdCcGzgEWL/+umeLXET7TxaaahtBPG+O2x4lJL7l3k LYDunFiiti+C2ZxIxJoLDFoEZkdaGuMR96ahLHpaImORrgmZNO0Vk8mbqJmzPbWmQ93WF8EE2e2Q L8C5WuYOxkLAxq7DVTCYGi/pGDEZojQ/rATKdqg8MZ1qUYrMLhGIyIvNN6/rtHOVOpjMj6cC6TMv AaAchdCQzmytXrrFMkIHZJNn2J90pqoTEcmVMyAAVaW4iy1qE0UhDUCTsAPXsBKdhNkBXplMAiNC hs+O0SFjG85wMTnTX3hrvffKN1KchOC7CO6fjYa7c02KSIDYMICqOf4wDHlPPvTATRLB9HEGCNBB cmMrnf8gnYdbaY/LssjpA2buuZh7sUDToPrVyCcvWfHHK+/887oxr/Kq0Fdf370T0GD8Dr5b731n J2ev/fTfl/8mytprbwP15rd/yhjij8+++/R3kn76r24xwP7880BEDzzYHw9MAQH+DYAHPUjI/pAA QAHmJ4D9204BDTiABPoAgg5UIAUt2IP9PSWA/jNCAw/oO/4VwYOTWiA/VDiEEYawEwS4n/a6l4T+ 8eCGKRQgCieIwQEQkIVDiAAF92dBH/SPf4YS4A0RKIQj7i+JB1wiB4m4QiD6QIhDLCIR+KdFFJrD ihMM4hA/YQAZ0oCGSPAiEUBohDB+sYJv5IUAu9HBAXD/wotsjKMR8HjAHB4Bg//jn7bmKIQ6esmA 8/CiGzWYwwEWkoxmROMR1DiEJ7aRhVjU4xDyuEkVejGTmtyiD4UAykWKUo0Y3A4nhQDBPfavkqMM pR5XCYoYyhBmJ4zlGvsoxwGI0ZemNKIde2kKL3YwhMFsYiyP6UdXBtCCBbwhHJUppQk+5YmWFGY3 gunGbL7PBGbEpSirgsUKDtKXheyjKZMpTEk8EQKGbGYuIRRPWX6RB6DsYA/0KU9RSsmDrdRmP+PI zk5EAAfh7EIWfynAZmJREqYE5TyFaUAJDvGOFLRoRq94QGte0IfM5Cg6JzrOCSZQkWBcoERPQQCE 3lKh/0pkohIgmMAJGhCaQFwpLIv5yiouEZ/KbKhPlygJfj4zjKDUqTKvOcpWonSkflSqJ2Dg0vuJ c6dWqOMbb9iDc1bxKaDE5jQHSk0qMrIIASzqAfnpRo8qwYoCFWYdt5lSYFLSExAwAQ7ipz6Ysi+T 7AymUDsZQg8+9Ky5hMBhyZrWrQ6zncp8ISt5Oc50CnKgQiwsZT9xUBxUta9cuKs5tvlMe8oSi9CE YDdQqFWyCrS19uQjC7OJ2kmp1pWJvGxkNciJ2ppDspMwgGc/S4P1hTamIaxjTwM7RFMot6JYFSYy kWtBLwqVh1JcZB2LWFrLbhS3DJ1HOTEo2efCNREt9W+sDPOXhSEmF4IyNa1NdRsB+GoxrhOE6ELx a8n5EnGR+W3hWK9o3xrq8qMHhid8vVRfAd43EecY7nrnV78KGwICDpCwDCVp4Q7zobOe5esZPUxi RQh3uMTlcIlXzIb0ajh9V2WxjLlAVRS/dMbfCwIAIfkEBQoAPwAsFgEAAL4APAAABv9An3BILBqP yOQwoss5J6SodGpTWq/YrHbL7Xq/SMjEmYNOz1Wwes1uu99FAdl8lhrg+Lx+zybM61N3fIOEhYQG Hk46gFIRho+QkV9MT4xRjpKZmptEAZWMOxCco6SGfmWWoV0ArACCRK2sGVaxr0UQBBkirSIdAke1 RrHDsR1HArGzpVeIqKCiXMFFxLbCrdU+EMjErAnA19bcxUcdw9DLSRBNi4xp0eDTwyJK0kMQCeKs xuGu/Pn7RXbVQ4fEEztA7rYMFMKNQJKF5VqNWECgoi6AsOBlZEWxokeP32ItIKjEz8E6CbUs9MFt xLl4rGwREPlSSE2GGoesTBKB2Aj/kjxznDyDDctKcSND9huSgZfCnDhjajHArWg2gmKGBvJytNuI nQMFAnCoEipLs0lmdmuV1AhZdDC02uFqtlUHtd2U2or11mhdtEi2ARD884g3ggbkXqIrFWYHCF9b 9Y26VEhkAIezdG2MJSKAnmYhACApxhKmd5x1spqHF4BLmJV9eAbQ9srm2FbE+hBbW8hMoDBMM8Z9 llW2y4NhyxyWwKpyfs7DeVvgtAg+oAaEr/pr3Efrzxtx45NH4GZ4bDuPgAZgjGqr09m6E4ywg5F5 29xHCxmv7/wt/rGMMJl/sOVTjXu0WdbKL0OoBRQE9QECX1mpUTYEgqy8tZI24iQw/yFl6OUDFV5k NbUaEeM9GGEdH/pVYXH6CWHiatCkhwtyrLz2XIHiVCMYWa1hIpp8BAUn4XAhEgkZXyAqgYtY/e0Y XkcfVVSTZ4IMyQqDeAHlHSCqbPdiLC+19lp6RXxX023RESHWOTMeNqOXBNAhxQ5fsBmQSLIB5haT BAZKSytEtAaBljEiZmcUKVFI3EIYAgABllkgOpmezEhEhKUIKkOSARMs2qhm+WEz2wKUkpqhlKq9 eASCGPkw4wI/egmqqHmWagSiAIjVpj0LYWoFXp76xgt/940SQahT7DCqi4+i9Z2fcWjKapNXULfq ptxkRtKyzEbhbK5jorUkNUREUP/eLdpuKyi2Vng2IIDukhZAuCSMiyR0SEwbm3sjdCDwbJjddBuV VfZ1GTbTJksKDaFCsYO+YkbrqhAE/ytiwXr5Iw5GGzLn5RAQMzvxs/iVe7EPkWqcjwD33fbPhbEg ASCDI8MQcb4Uo2YxcUS0m5oBAnRwWcDrPpTfzEJg2G8sLaJTZ6g0nDzy1VhnMfUEVfec9ddgsxxx 1zY4HPbZpdzKdddRo+22slTTUHXZb9eNjhhry0233XxzgrfccofZ9+CSAA644FoMoPjiPBDRAw+K 8yAKBIsPwEMP9iiOxOORwwc546dRXvkAmPvweeeZj156D4rXBHnjZxNguNxtJ8H/OA+428R469lE XvnkmhcRweiKl+7D7ooLGTnulwuB/ADKW8786sVvurjwA1xtwOw01I4E70W8vmvwomMu+i2RQ8M6 9M4PAI34vWdvBPjwn2/E6Y4vfo79tnLv/RHgI0Lyxic/Hwwve/wTAvyG8Ln2QeOAuiugAN0nBAjG D4D6Y+DiTrNAoMhudr+aHwXDZzkCLkFzCTwe+6xHQfCxDnYpdKAQXhhBDEKudJTDHemGMEAvQcAE 3AthEQJ4wuLtL3g+oGECY6hCRyQPAuuLHgYjAMUexjCHFmRdD7RYw5FFAAdB7ALxjHfAyHXxgI5I oAWHyD7ihc6N7avcG0fniOFJ/453kKsi7NboQTCCUIzLa166Pme+MXaxgkicoCgqB7vUMY8HmGAk +qSHO0dw8YbnsyAfSQIDPxpOiIq0wvrih7seHFGCoquJBZNXvdRNsZWH1KAlLcdF+6XShybAQd70 BkizQZCJKTQjEeDXOjS6UoQQMGYsFcg+0UEukisU5rdwQM3Zocx2I9wUNCBwwwuaMF2t5Cb4eDfK ZcqwnN4Mpemu1z5MbHIZBqCmJ/VmNhFSEnbrY5w54/e7JBJvhSqEhjCdOT0ZqhCGgbwc/9ZnvG7O UIJSk+fsEIcF4uHzc4JMJwv7aUCMGs+gokujIQMaQZGqjn8hHQIXl/AgAUjUcDYUJZxM8wABB7zU cP+bqU698EV57rJ7Ow3qG+Ipz3kCVahIVQMBimpUUCb1qUToZFH/CFVNBAEAIfkEBQoAPwAsRgEA AI4APAAABv9An3BILBqPxIgux5yQntCoDUmtWq/YrHbLhUyYOWd0POWaz+i0GikAi8dQw3pOr9t9 BDc8Kr/7/4BHBh5MOntQEYGKi3ZKTYdPiYyTlGYBj4c7EJWcnVV5YZCaZgClAH1EpqUZVqqoRRAE GSKmIh0CR65GqqWLg6GZm1y6RbynVcREEALGpgm5pq9CxosQS4aHZcPRu7wiyNzKCc2mHdCl0j7U i5fYe9pbyUPNBFTyPh2qIwsE/bPm3dAFBMCPUR53cOBpuafO2AhhA18RULUA4hCL88Kl0qgoQg6E Y9JhYUhuARJ5GWrF4ziNJSAvIPmcIVkqwQiGDQUOoVWq3kL/lzj/wIgZZybQUh0mOjt3LGPPlTo3 RvVFNJLRqS0BdIBw05RPqU2FdAXw7CfWnGGrvYEjadtZlUpLPSzGMZ8pk1long0EA1JbqGmzAvDB VRUusBJ5JRAZsTElA36vBkYrJG6pv/fGeSOAke5bl4Ei7DjUeeTRXkI0I0UMS7W+r47BomYEYfSe v2YnqxpigNdXhsvIJcAtON062rbZSjZuikjKWsKCxhpraq5n3bwq9b29fKAy6j6DConFs1xspwRh LyKwZxSp0wAsWp4rnojl+NeZ7w1EYO2THWjoFVh5BOED2hGWqScgY4AY4B8JCuWmX2C9qQKBXZMh AYEqCsLH/+AfDvoXYV4eGoEhQRh+eF2Hn+3X4AQiBlgiLN4caMSGLC3ISQQwRrHDiKa1mOF9NhbB jFznFbcjjG/8KKOQIhVmzCsRcAbLAhwmiZaKd0AQQI//AXmFjgg280qFI3Sg5olkdSZgQZXQwCQJ OzjZXX5UsJlWheS0ydSEs00iZ491itnKjIJMSQSfzQhQ2pYDBcoIDHMW+iR2LvqApTwGCNDBWGla aQ98kq7HJA2WeqLqqgiemiqrsK4a4gSo/vhorLgGMisNtRKX669/8Egrr7YCa2wgXgzLqw23Huvs GcnySmyzz1arhbTSurfFANx2ywMRPfDALQ+bQNDtADz0cP8Rt0iEO+5f4nrblrnnDqCuD/G+2wkB 2PLqqxXe8iDweN5yW+645x48gBER1MvtvT4UzK0k9Aos8L0SL8yJAf3S8G8VBhsh7rewsEvYwydr vC66wvQwsRAh44suwSoTEbO4nXDc78dUxGzzAMTRO0TDCwtNxMhFxAvzAMIQTfMRMTe8b8dcGuHz EEiXrLLTRg/xsjIhx+wyyV3/3HLNtJlAtRlXC0G0vRB1PXbKYKO9dCITQ+Ay0E9bDbTeJlMSAQ5r c+EwxG/PTLcPRCdSttN+413vvA5LUjknBBDeb9VFBJxuERHEqy695977eOBmR+yt1hbzYPnqncCg Obacp17Fxd4pXxw36vRiBPnEKK8MNdDBUwKBCTgouyzbTFvBNerC/0wy1oob3Hj0nTN9veA4dN+v oUi0TZgwEIg7OvR9Dx18+TGHjHv6qb8/iQHdz74stX6ja7EQe8Ne9soJ80H/ztWW9imuYhbDWPNU V4nMeQ9b2sqCw0jmLnRB7H80CyDj4vU529HLcYdbGvns9hIB1K9fEbSWCrEAAQeccGcrjCEWBlc/ 5XlMhjikAv3qZ78b5vCH9uFhD2sHRGPJjoebK+IdggAAIfkEBQoAPwAsZgEAAG4APAAABv9An3BI LBqPSGREl2tOSNCo1JasWq/YrDYJmTRzT6mYui2bz+ih4BsWRw3puHxOJLDdUjh9z9caPE06eFER fYaHR0tOg1CFiI+IAYuDOxCQl312YIyVZgCfAHpEoJ8ZVqCYVn+blJZlpKJDpJ+xRqipXEyCg2Sv oLU+swAiVbe4SJK7eL1bsLbCBEnGx0Z2ym7MWs5FwgAjrs8A1Eo512LAWNuj3QtI0+NDXeZ5Z+qy nwkj9vfi8EYw897U+xWuAwFSCY688+fDQMBGA2kVhKAPVDRunxgW6cLIkS+JGIf5OAjqW0iNRWB0 jBgqnDiKpAScRDnEwEpPBEP2IwnKY7D/jDSFRNgxCFyznOuA+khAqkPSoEIgEMXjUxtSfv0azrr4 MytNqYOqZtnX1WsGUiJcLdSokipLYKSIwLQoZC1DAng64QSZFIBRnt4s2fVHoE2UHWjI7hNBql0H pUENGIaSzSpfrLUMzILw2CtNyZMrj71al7SPzp8WdIYqBPSYxKbJQpjF2DPKCBMM7xCdLrbpkd1Y +8Cd+zDvK4p/z43LGkKA4lB2w75cmvoQwJCD0sj9ZIf0ty7RCUGdneb24t6Pn/JtveYs4T5gcCeR fnpLneKFLGDOunBuGvXBJ5x/EwD4nYBQgVZgekYhqJGCNBgoloPwEBchgDY0SCE8XRR4/2GGG6LU 4YUAahgiNSRGqNcWA7ToIg9E9MBDizxYAoGLA/DQQzwtIkhAijRMaMWLPBQZ1Yst2kgjjkoOgKAB QApZRZJGzAjjRj36cOMAO275ZJRmUFlEi2J5KVSPZsL3Y4r5JSEmEVYakWYEaGYpHAQmANkmEm8O QWeLPYCTZg85amknaxHgoGeYOHLpJ45XmvlnIWn2pyibjOZY5I5ERDCjo1viyGmlUMFwKYl7HtHn EYQ6ueWmgh4aFJ44ePghoyZ2WqeTcspKU6I4nBqhenwOoCEErkAwY5e+GsorawYEKywNILJIY5FX tvrikc/K5eKA0qa4YhaNFuqDjDRy6jPsEaE2J0C4JI57YioQOAAviVLOewiwwdoaYb769hGttNMC HPAeBBA8baoHz2EqwZhCFQQAIfkEBQoAPwAskgEAAEIAPAAABv9An3BILBqPx4gux5yQntCoDUmt Wq2QCTPnjHqn17C4Kth2vVDDeM0WEszoqLpNvxo8TF0cGqn7qUpNe099f4ZFAYJ7OxCHjm6KcYyP jndcg5OUhhBLentgmoaJnnGgoX5vpGimp3QROapec611WbFytH8wt2m5fga8hL61Z2iFw20wg8fI awbLzW0RO3uN0WsQ1HHM11fZe9zdVsrb4mMEktbmVwTFTzvrYgbuJKzxSPPu9vdG+V/8ViJMKLZj H8AhAgdCKXiQCoQACt8ZbOiDxkAnOxhSPGJRYcaJDWFcJPFx45F2A2mUNFkE5QSVGlkOyffyozqZ NGnADLcxoU56lTZusszy8mdQmUOI/lQplOVSnZmQ+iDwlAbPjQaqXqWY9enWhlSfzpIJwUTVsSwj 4DgrdepasW1hvF2KdmNZHEWNSlWLY65OkPwM9PVL46hMAoOfRrUrIPHSxRQhOHC89Gs8vn3z6rS8 TvBgwpzNIf4Ml6Vc0nTFBAEAIfkEBQoAPwAstQEAABEAPAAABipAn3BILBqPyKRyyWw6n9CodEqt Wq/YrHbL7Xq/4LB4TC6bz+i0es32BgEAIfkEBQoAPwAsyQEZAAsADQAABi5AyGDwKw4hRSHROED+ lMXfMTmMTp9VphOqpS6lTa81jP1eueBtNi1mDpvr9zAIACH5BAUKAD8ALJMBGQBBAA0AAAbRQMhg 4CsOIcVksTdsNiNCojKq9EV4Q16vmow2eREf1ThAcns8bDYNHVbHRbWzzI2mn/Ajd+ru9v1SPmph Vmp1f1g8eXR7RXBif459EXpKQ1t8gZRlf5WNj4+QUliYSkw8b3+Uip2Mn5GhY0OESpupUpttgZ57 oJGiZLRJtplOYYtmr4HAmcFcxIB3R8iNksuxfaRnA6jNS9zU1b7LVtzf5FHCzOWcu669v1mAtFlm m93eguCtxofkm9y+1Jojz5+0Mov63aqDJou6JWrAKMuCKQgAIfkEBQoAPwAsYQEZAHMADQAABv9A yGDgKw4hxWSxN2w2I0KiMqr0RXhDXq+ajDZ5keSxOi5es2Ef1TjgkQdInzO7lsO5vh4Pm91Dh1V1 PnxzcVN9T2yGiktfA1tqgGyPSmVfezx1ZXiRUkWCnUl8aWeeXZKDbYyVd3Zph55Ohpatn6ibeIKg axG4dpCnnr1SvmPDubdfYq24mrXIpruSWMBJTG6wSb3YxXdRr8HLTANptIvOi1y6qLbE5FzH2VZD 5c92cXxg8nZ23MzP6Di12zfQFTx2nZy86mZoXBln897RctIjoMB1pkIZrBIv2J4mcRhWcViQXyoi EzFVTJYuEDtpUqhxuebSE817b1p+02gyyrhpkABZCuRJdB62cTXB8YxHjyCrMBAbgVxV0lfNN9g6 LWwTZ1jWcEWwHOUqSpUZa5KiTvp3LplCdQiHtVGmbU4WaB8fOiHE6i1PdnKBtsHkzK9TNXrQ4Enc RmmwLNWW5ItMqCJYk2X/7Q0CACH5BAUKAD8ALCYBGQCuAA0AAAb/QMhg4CsOIcVksTdsNiNCojKq 9EV4Q16vmow2eZHksTouXrNhH9U44JEHSJ8zq+xh23GfPZtP3rNgXFZ3Wn4DW1U8a3JwgnZ/PJFQ Q1WLPn9OfUVRkU9smmVMWYeblGykYo2MbZFual9jXneaq51NfZi3eqZdcLxlgq9SpcPEhgNpZ8XG RViuwJ9saVO/utGMtM5c2sHXVk3HyXfCfUyL0FyWlsJm6EOIvcMRpu6N88vMq22pceiM06kACoIW Zcs9UKSwwMNWjRa1YuvWKOTCxFW8JPOeqeInTCA7NqLSlPHHTUnJYOgqXkJVZ989jEcadvuYj9kQ jy8ftkPm7Roh/4DniNDB1nPnoTz3jqLcuPMfl5w3lxyV2U0dL5s8q+SM52RavTyiygT9xnPkHHhJ 9xlV+0bTy6haTU38F9Thxbt34SrZSsyWqq9VwuaTS8ksq0J77yxUtrDo26x7Tb18WXem1WUSWSZR qVOqRoS0ooQZK0xUP6aOrkrFh07b3JYWbzLZUrnq1XUZV1fSmw8qZJpvRlfbnKnoU9VkuRCMKmo3 ZIWxqAZbN7RjKkU7LeLlVjFPyWnNaV4tTrRSHAgTIZx/zTH79Tj3tCd1FbRrOtXzv0Sew/ah3/NO /KEEf2mQZtRph7kS1lAL9pdKG04sxp+DqyBSnyfOpbNHGx7p8SLTdAE25mEWjf3RQx4GNmOYfiNy uNmHgmCihUMbBkJRGUEAACH5BAUKAD8ALPkAGQDbAA8AAAb/QMhg4CsOIcVksTdsNiNCojKq9EV4 Q16vmow2eZHksTouXrNhH9U44JEHSJ8zq+xh23GfPZtP3rNgXFZ3Wn4DW1VYYXNtXIxugoNZiEVR a3JwgnZ/PJ1QQ1WXPn9OfZWAT2ymZUxZh6dSmK9imbKdnbBtY153prakfaRNSK2hoL+4b223kcJl lseYvlPRatXWsXdpZ7Fd0ViQZbRxQ2nUsaXjqlzg7I2R62ZNhgPbd9h9TOG1keLN5ZXu4Yvmj4so Udjk8WNDCVaSCMcKjoHYzRu6L+qkOaq30Vy/hVG2UFz1CktDgBrhFawy8s0WaBenWTxnTIpJLvpq PnwnMVMU/48OGaIss7JdoncqF+ppdLNKToo7Y8JLGSmn00YwM0Y6eG0NSiVQaVoZqrQMIY+XQNFJ uZLioTxue8gsCPVrVDZpmFBaqYQvLaBjiWSNt7UaQq8cWXZlZK5nnlbPCBKhuKgWI0pukWaG9MZU 3cRgjzX9enmjk4Z4uUAdTFUQ14qIAYe12GkY4dtLj6W1qdYyoEJg7zTkhrp1YEyyj0Gdjaz4l07O Qd9l7Teo9aBN6yC1btWxQYC7YbUipxTntdwbTbXLnsQqcr19y8eXWYT9EqxHJNNPODM0pGLnAHVJ WHYh9Bd/mLSXjnGqncfcbT+hF6Ah4803VXUSWhQGdfL1R74LZxGywUMcFHHmoVH65GGUFQpKER4t RJUHQRwQ3DRjQLNYqBBnfOwY2lpaCYIhJiPiyCMckjkBGEJucfLjHCbS9geNTvwRn5LWVeMWecsk A9laX24HIynDMSKmLKg9l8yVt0SpECNwIXkRljqFskcbgOlxVmFfFHcncPS85eE1vbBR5RJ7IorG P31O82eeFV6JkTKTqiYMFHnsN9WmnHbq6aeghirqqKSWummY55mq6qqsturqq7B2EcEmJgYBACH5 BAUKAD8ALMcAGQANAQ8AAAb/QMhg4CsOIcVksTdsNiNCojKq9EV4Q16vmow2eZHksTouXrNhH9U4 4JEHSJ8zq+xh23GfPZtP3rNgXFZ3Wn4DW1VYYXNtXIxugoNZiEVrXUN1mG9wU5oQf209fZdScpxc dn88q1CapEqgTaNqgE9so2VMWYeVrk2UpnFfq5Bed0jGZUrDTn2xY7pVa8OrjoDVgs+nlr2lpgNp YnSvtG2gwBFwvqeR3NzlhuBmd1yWWJDKt2zh5N/sZfmK3OMyMJI+M03ipTlDJEofJvjYCQpIcEia T55cdUuSbpy4IZTWWIKg6+KRdbM6eXu3piMuXio5ago4pqMgS04gBTu4TN4b/34TJUbZ4vLNFizA LPIMmlKmRFNbWLpioqvPrm0ZvfmgtxUPSoPw+m3sCmxJo5gII75EplTaupIHKRaEddZgQIhkUTWy ibAUxZ5NzepMgleqXyJIe3YsltUtJ4s4nzpGS66tEr7kOqaheYoQv8im1C7teyhPx9KRAtq07HSf WUp/xQU2BdQKJsNpbXs7Alekxn1UIs9293uaz8vFGYXjnEdXGdCad/oD6dTj6bqAq6w+3jov7Y+/ rDkp+1377eRSFPEcI8u3Vto2hYMlrtV4bczdVskafTdhWFMCYQLQNWUxhM4d5KkmIHd9NYgfNQkS aM1959U3UymJ6bOYe9ZAEP/fVwbRN5l3mQz2H17SyVaPUqCVU9Voer0XzRujDJRhieJEQFV2dklG F3mFoacbMf5Jdwdf73wIh3whapTkWTOSApQlfLH2To7/TdUMjOa9h99SUYQRZTfhIJVPbFwShl4Y T7qhjU/PzTGWIRHxwGQ7v3kUpjh29mXifwVBlMdc4czYIhsDzgJBHBhFxeiNKvrJZxyLIedRmpiy 0acac+kJ2W8FKXPdnBid4tI6TtT25FXYXffFTbXE+UWR0/l0qG6nUAOJc+Pwit1H51g6x5/h9WQO NsYS8yeuc5g2Kx0odpfPH920saWakaW64nskeSbIHm3UVm0oqBBS1h+i9ANR6oA5LeGtu2hEAooW KYEbSIwvtbvJq4Iw9MSiXdibhno/pViOFKWaI664YDXs8MMQRyzxxBRXbPHFEPv6G8Ycd+zxxyCH LPLIHXuYyrIkSxwEACH5BAUKAD8ALJ0AGQA3AQ8AAAb/QMhg4CsOIcVksTdsNiNCojKq9EV4Q16v mow2eZHksTouXrNhH9U44JEHSJ8zq+xh23GfPZtP3rNgXFZ3Wn4DW1VYYXNtXIxugoNZiEVrXUN1 mG9wU5oQf209fUl7bWlKWJSGYZaVmqSWZVV2fzy2UK+uUkWgTaNqgE9so2VMWYe6YkOqZV+2kF53 SNGyym2gfb1jxlVrzraOgOCC2pzAu8nWp2yNl1JRtk6qEYzImejn6e5J9HCv1VxatcrHa0iaM/gI +sACCWCzAev0Ocnz8BdDLhcjDePXxBBEM3fO9WHS0FwkgBgNVgqpUF+/dtbsEbQEwVgaeHFsdjKp p93A/zU4//EMmOunpn7EZLrU5JBTP0GxviiLg1Llm4jh+kTZgvTNllRKrKIMO7RKV7JbjO5iYqzP MXNAcy3UlNFjIqVW1RZ0E/XXzr+Awc6CubRk0mlWAcs5JNYcyrqGIGkESHKuqiWNnpoR6neqxp6S STXSy8Yy2X7QPMmNgiSxrj6arbwirbLvZ4GrmX40m1tKvzRN4xBaF3Wx4Y28l+V5Kerk0KeuN0ux ytbz5LKnuTwlTc9N7MU1a6tOaHAgm4jUZeqNu2vsvvfvo8vG50UYcus9fUkk8hs8uyaUvASTgKHh J91iWGkmWGKMXLaYPOEkiAlpitw3hi/sRfidMhEtuP9bS/loZptGuNGnm4QmXqOff2SNYsw7QhVE xEPXFKIEQvPc4SBA0H3IkW+YfPfNjuIQiSKI3uwimH+oZfgGBBved+B3eonI2W1F9VaQg5Up1mVw RH1U3DltSSkIN4ORN9RFS4ommUHVGZjVZ21ixpeWqMVz5VwQjZecSH9GGKc+ybCmkHuEDtQdZilG ZIlmrpl33qFrTWSmdnLNN6c7YaDJqSFlyvnkZ57qwopci5azWxn1wYhPRnSgQhio1SjaDh0jRjJQ rOecwod0BSqUEUl51HUKmmP+R1VZEMTxCTLNrqTUfagpw0Mc1f44K6IsXnettG/CFAUur95qkoD6 PGvCTj+IqOvXS8HyOq50ogjlBFa2vkWYgFKFqSdcTvxB1r373bjiN5C8GKvCs7IDyjz1xLvMJs9I XGOw8zGy3BdSdfmjlAKf04alojGClTUOwtsvo1ER3E2mNQ13psxQBcwlIZf90VzBsjo2R8I06xH0 XV/sPMvQJScVcDhLC4LQE9FWUkogc2GlUq0dqVEL1Wbh/Fl+fsWMhnYYf2322WinrfbabLft9ttw MzpH3HTXbffdeOet99586w0lLWX3LfjbQQAAIfkEBUUBPwAsgQAZAFMBDwAABv9AyGDgKw4hxWSx N2w2I0KiMqr0RXhDXq+ajDZ5keSxOi5es2Ef1TjgkQdInzOr7GHbcZ89m0/es2BcVndafgNbVVhh c21cjG6Cg1mIRWtdQ3WYb3BTmhB/bT19SXttaUpYlIZhlpWapISncpyRgpZlVXZ/PLxQr65SRaBN o2qAT2yjZUxZh8BiQ6plX7yQXndI17jQbaB9w2PMVWvUvI6A5oLgtK3GwbMDsvCQz+68TqoRjM6Z 7+71l4LpY0RpW62A0Ip1etfO0p00Z/z9E9ZoljJaQ+RNhEfLYjIuWOgZEikI18BgD83ccdeHCSSD bxSiylhp5UaAJ0niQ7gRArP/NFF4xPm5sGXFhp74LKHp8eC4VzAXSp068KKqjQM/KhmTlcutLwm1 bo13TmPMhVuqvtmSamyaqGFrqR27BWkwJsz6NGOX1J/NkIl++WgLDajgNYBnSoEb6atMgDcnEs5E 0pK+lx0/RtH4lWhTmIlnkjw3yuVgfpStvOraNBJjPRVT24V2Wlo8OhPtImEasA9r1rNnyYuyO7PT ja9bBeedhHW9gW+Nl4k1ddYszHFgnhTVvAn3ksazMjejiSneuK6Nv9GYNfhl1e+OEF3TTnh94euX Upp9n+Zrr1CpV11k5JBVhXPuOHGKQbgwU8ZX8C2C0RyUnBSbhaO1Rh4R48FH/xEivBF0zk75HYhJ cIqINQYx9AkmHIJsyEMYb7PBiN9/TwWT3C/LGagEgkH9kZ10xjkIkCYrTYPOVRHlc8dVGnrYYVdZ OVcOlFeWxUV7h5WHEmpc8dEXaTYaVCWPXRJRJic4VrcjQ2l+yIVp1dHJoHqbISdFFHmJFYk4ubho EGCTkRJbRuehB95jtc3ZSI3oNBHXQ2P+eKKZLgqXKGT/EGfiYgLW4thBygn2Hmz+5FldV8zdhx+E SxHjpyAwwrhNnoAGdEoq27z2Wq7AsGJqI+sY+OAcnCaG20jqHHLrsJiRpGyojQXIaDvLqnpdHAON 5lBFLuUR2imAwsqGksVAEO3HJ86oWxNq6HULjVAbipTTWbX8p5QaoWWbUTvT5mEhQOzSMhAiBSt0 7xv0qHrwuxMyCqCOc3A27F6xwTdHhkHKmmAbknKDjJ6WKtlNOg7ilnLG3ICSzz6jebdJNTGjk6GF Tgj8BVh0dgfqNyFr43GsFecbzZY7L4tq0bM69ZWCE3tVSiBzUmeLE4XkQshVf3xHsmJDYr2E1XqQ HdgXXtdhtqFEir0JWLQOA0UePlmdYn7PerIL1Qdu7VSfUq8tSSj4Hmf44YgnrvjijDfu+OOQ/71P 5JRXbvnlmGeu+eacd344BBHokqHnpJdeSxAAIfkEBfoAPwAsgQALAEMBKAAABv9An3BILBqPyKRy yWw6n9CodEptQqrYrHbL7Xq/4LDYF4u5zrGxes1uu9/waiR2Otvthrh+z+/7/RB0d4N2Kippf4mK i4yNQ4F1hJIuhpU2V46ZmpucUpCToJSVozR5naeoqYqBgqGgo7CWpqq0tbZbrJGuobG9srfAwcJI ELm7r77JhqWYw5oRBtHS09TSzZoA2QAJzrm6vMrJOOM4KjAGEc6NItrt7u8EnAbtDupFEHNl36Lh veT/5GgQQGevz7uD72ZlmqcNBqMIBApc6xKhYhkbNDL2A8iRIw0YBNIVZAMBoclsExvBaKewj4N2 XCpW7EGzZg8WLGz2qGijJzr/mUCDBk05cg3Dkwc7FWgn8k+7EVFm3mRxo6rVq1irltjKtavXrjhx 7hg7loTZHT6JFh0ToR23WglgJiqp7W2SCDSpZt3L96vfv17R2vi51s9RAAuKTLsCgQCMZhBhSAbZ 1Ae1lNCsEYksmUDKp0MW+4BgYHLlI6UntxwtGoJky+0KaPaBVy/f21m3Vg0b9upXsyTGRitGvHhh PisbEqGbTbI2IQtMjhDpriVzlEIMxIW33K2Q647fJUgJ4eW7EQoPG4iezQcBhA5p18ZN/0ZYHvh5 66fKYuyJ/wAGKGAMpx33BnvZpNcOO8/5MAJSVyylHBHmNSdEcgjFk1078R3G/6B4iiGloXtu1eUD htUdgc9U9OGE34v57SeWDQLWWGMMahnoxnbYDfHeQW8hBUA8KBbQXTtX/HgSJkoOeaGQ2TTVpEmY oEiPDzymyARePOjlYg8wwigjjTaWCSAiOvrhThFWalNPWwA4MJABUzp0GFRDVAiAne54FsGHTp7I EnTiwZDlnkLASc8CD3IoxKHKATpZfE7gU8alMYTZpX5kmlkmjmkqsmARh4owC0RGNBnfmt+5c0WW TSmKKJZIPtrnEFnWQ6s2En0H6FuAAlBAU6NGwQqmyF5kQ1idemojqKEmcphdQgAqQo6hOeoDoKag GM9hsk2jLaBDNJqNkUOgyP+NhyGa6IM76LbqrhXJ1ovpf3Q4+ym20cJxGKVCaGkEaTA4kIC5AJii ZzzX4YkgUqvO6yoRKNYjYYLtZsPNdQBc8y8Ux9p7r75mQtuvIt5uBpoRBlx8kClN1pPytlA6KSu6 07LpKKtE5AxuEU2OCEU+IpNsJr8nx+GygtokVsTDCA0h63grv1tzHh/DNuEQS0/N8pUzpzsoFSGP bPSASTuS5TVhC6EnACIUgCKeAXPYjobXmVqNNE9qoyGKLbmacxEL+/BwS2trEfLZAyKddhw8E6oN 0+di4jWuCNk1uBKHu81Uz6NuLq82r9ZKBLkU5cv4CWg+vsh11O7aoxAX0y3/O2IUIzRLw0xkiXmD 3yH87cR5XumgXER4B4Y+Rjvuur/GDxG51dmIULy2G4KYfPTfOSY98lVDYG2i8DLmcsd1a3wP8c4/ AYmnrT+/iKpFKP99XYwmdKTAtIuXQAIMopTyOCYCAL6DWFDS0GF0la2DAMwLc7BRgeSXCMCBzk31 g1JLghU7rZ1EgcY7jEkU0ibuZM9C+7vVGLxxgvZR8A1ZotysxHYelxnhbROckv48OCsdukMEBXob /yxYBIRNrg2BcOELd4S8vmFMZxyCgA2Bxr0iRECI2/CMExO2RXc4YDU+CpYItEihsW3mUCNQ4hLX uBkDqLFSfHNC4qIQxyqQKiYabMxjQVCnxz76EQrF+qMgBzkw+xHykILMGiIX2ce2MfKRL+wcJEcS BAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.feedburner.com/fb/images/pub/feed-icon16x16.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKOSURBVHjadJNNSFRRGIbfc+6dO6OOOplD ykSZaRCtnKRc+ANRUBFEm0gicxG0bGoVhERRYIvIjRAtW+UmW5QQQS6qRWQSWJRaUcjkT0LiVWfm /pzTd869M5LShe+eufC973m+n2Fj55KJymTt9ZgVy3AGMHoxvvEs/qZgDL4AlhbsAfv34g1TiRPx RMZbWwU3GQzO9clNhGcYBpkY4UlGiWRd5scnMvx5tUWano9IMoXy1pOUBPgz4xC/xv8r1hSexNKi B1Nhq6RIbQoVhy6i+MiCDffDEPyJITBvZZPYLwiQFFzVZ0Q45Moc8q8fwP34FGJ5FixaCevgBZT1 DMNs7Nok9iikL8GyfWkZ3VgvhbljP6yOy2BbmzWR/+o2vM/PSmLfkchTaAIlsHa1ourSS5Sfvg8r 3Q38mYb7+DzE9Ig2MDquAan2kth3AgKu0JSBapLCNranEWnPIHp2GDzZDEE3+1OBiXW4D4LHtViZ CB/rBHJuHPmHp+CO3oK0Zyk7DvP4IGR1EwrPb673JX0mELslgvVRYW0O8usIvCe9AboyOdIPn1Ug 9+Kupihr69ZiZSJFsYRwztbRO4icGARv6IT3ZkCTsKp68J2dyE2MQuZtsFgllbZHTyMsAVqsaldC Vt8CtvsYPHsZzvtH+tZIc5e+sfBtLOhFYytRFAlYuGGED2clGNn8lO62m53U37y6XmM7M8E3onEI IpCSLp/vPyC31Bp6SUSsjmIbnO9jpVEZqbROzn15F5RDZs5CFs58FmaNBTZ5Ze+9hn11Genl/1mS 0qjChumaCVvo2iViNXHkuD1g9Daxt7lVEQPMNpcSdah1pQb5kqho4yVXQc2iacHiMMpNFPia/jv/ FWAAUTVTOunExzkAAAAASUVORK5CYII= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/pixeltra.gif R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/search.gif R0lGODlhEgASAOYAAPj4+Ovr6+3t7eD///Hx8dXV1e7u7uXl5Z+/wNHR0erq6ubm5vb29vLy8tbW 1vn5+dzc3L/Y4BAAAFA3D4CYn+zs7MDY3/Dw8Pr6+tra2oBnMM/X39jY2PPz89D//+Li4tLS0uTk 5L/v/+DIkNfX1+fn56/P3+Hh4ff398DY4MDX34DH4JC/z2CQr5/Az4/A36DQ31+QsNDQ0B8AAJDX 8E84EJ+/z4CXn9TU1FCXv9vb25/X7/D//5/Q7+Pj49/In4BnL5C/0ODIn7/w/0A4IJDA0I/A4E84 D4+XkMDo8MDX0J+4wNnZ2d/f3+np6XCPkNPT03/H8LDP36/v/3BoUN3d3QAAAN7e3mCQoJCXj1CX wOjo6KC/wKDQ4H9nQN////z8/O////T09P39/Y+Xn/v7+/7+/v///wAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAAASABIAQAf/gGeCg4JmY2WIYGaEg2UVFghJMDsrWjFhZA4LY2ILEEwQBwRli4ym ZgAKYU9fXx4iXRQkB2JnYwACIxo1EjIgOAUOGScBDGCMZmViChs8KhZNJRcPY4RlBhE2YWFfIjRG A2QkJYNjKE5UWRQmrQM3ZAUnDZw/QBMzIBw+BmIMKBiKTBUCA6CDgQACCDAgZQqMmA1huCBAwCIC hQ8XMBAa0yHFkm0DPPR4IYUMBAHWAkRwMeDLkClRcgxAUuCANQE6lJgIUgRLiy9kEmQIIOiWACFe iFghwzRogSsBAJh5YEDXBAkJHFT5EGJBgAYAFIFpcOQqFA4hRpVC9oCAgi0VBsQwFHgmEAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_07.gif R0lGODlhXAAUAPcAAAc1eAUzd/n8/ai40AEwdQg2eB9IhX6WuZutyHmStm2Ir2iEray70i9Vjpms x6q60TpelIyhwKe3z6m50ElrnAY0dxQ/f52vylNzoYCXukdpm3qTt1t5pgIxdQMxdidPiWaCrJCk whZBgGF+qY2iwTZbkVFxoDJYj6a2zjNZkGJ/qYqgv32VuC1UjVp4paS1zRA8fQ46fJGlw4ugwD5i lnCKsZapxiBJhTxglQw5e2qFrl58p4SbvGOAqniRtY6jwRxGg5Wuy01uniFKhk9vn4+kwgY5fEVn mlx6pnyUuIWbvAk2eXONs5SoxZKmxJqtyIacvYOauzRZkFd2oxhDgU5vn4ievmB9qAk7foGYum6J sKGyzF98qDJglwAwdXSOs0JlmIedvkRmmW+KsZeqxgg6fUNmmUZomqO0zUBjlyxTjGuGrqW2zomf v1h3pAQydj1hlRpEgktsnQQ1eVZ1o0hqmxI+fgs4egM0eSVNiKKzzH+XuaCyywc6fTldk5yuyQ06 e5irxytSi2yHr1R0olJyoXuTt3aPtJ+xy2WBq3GLsmiMtPn7/a280v///wAvdAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcABQA AAj/AB0JdMSooMGDCBMqXMiwoUODAgoKiMhoosWLFgdq3Mixo8ePIEOKHEmypMmTKFOqXMmy5ccg XbB46TPnkc2bOHPq3Mmzp8+fQDsuMgK0qNGjSItyDEL0UYACAQh0AACgQAUCHqpaJRAAgAeuACpQ HUsWQIdHFk4YeJO0LU+OXW5ecaACQB4SEWQcAPLBSogQX0T0aAOhgoowPZKEiEAiy4wIEUIcMDAE CgIEQgK43XyTIxabS5Q0IpOjQaPTjUaUmDBgQiMTWQZQKGBoQIY/qEGgQc2DimjUaQhw3szRi01B gU7HadGIBJUXK5AMYEHjyYooAzQUSNCIwiMDPxp9/6gQYwMDEyka2ZCyoNGeHMPdcixj84gEBo0g mHbS4EEGQhMcQMEFVmCnHXdHPELDBDzEgFYjDhiAQSMcPNLCBQjAEF9bHOFhUyKNLIAICCeg1kgV KaDAAAMPyHHAAGds14gZjyjSiAY2VdHIIY+4QeEjgMzQiAgbJsWRTQAc0IgLCMiQnh5JNLIBBnyc lgAACUygAQA+NIIDEAgMYMAjHTTBhhSPuPCjBeERWeRRR3ZgQBGNrIDCA3A0EsEdTVzAxAUSPDCA BT48MAUAG+QnRCN0CNffDDYREeIjELzggIZvGnVkADQMIMETKDTCBYRESGCDFi+wIEMjdSzAABRg IKAgwRRMNKKCHw0cwMABOKgBQSNbjJBBIwoUkKmmGz0Sww6N6HADC404YeIIFDSSwA5bDFCCA6hl MKqJJhYxBAioOfDBschq9MgSDVwxZgk6LKDAAiZQYIcIhUBggRguANACEmtgcMMJGwyigAJjaHFw DRwAAAMGNYDwgXDoBpWsTl0FoJlPXD3ClcYghxyVTR54UHG6A52scnwutexySgEBADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_08.gif R0lGODlhXQAUAPcAAPr8/QMxdgc1eJ2vylp4pSVNiKq60Vx6pgUzdwEwday70neQtU5vn0Vnmpqt yJOnxB5HhGqFrqm50DRZkB9IhQQydgY0d6GyzKCyyztflKi40BA8fQk2eW2Ir46jwZ+xy01unqu6 0Zmsx6a2zmuGri9VjnmStk9vn1JyoXyUuGJ/qXCKsVFxoHONszJgl3GLsoievgAwdZirx2+KsZWu y2eDrKS1zZeqxmB9qAIxdYyhwJyuyTZbkVNzoRtFgw46fElrnAY5fGyHrwk7fi1UjZWpxV58p5So xSdPiYC31GiMtDBWjlh3pFV0okhqmwo3eQ06e6rP4oG31CtSi0BjlxlDgp6wypCkwgg6fSRMiIW6 1tPm8JPC2sjf7ERmmeny+ICXuiBJhVd2o0dpm1R0ooG31WmFrZutyHWOtGOAqmF+qf7+/jJYj/b6 /AM0eafN4ev0+H6WuVBwoDFXj+Xw9kprnAc6fQg2eAs4elt5poSbvGaCrOHu9YugwIS61jhdkww5 ewQ1eerz+CFKhoqgvxdCgRI+fjNZkHKMssbe7JGlwz5illl4pRVAfzpelH2VuKe3z8zi7ixTjD9i ln+XuSpRi4acvRhDgT1hlZTC20tsnXiRtRQ/fzxglUFklw87fK280vn8/f///wAvdAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABQA AAj/AEMJHEiwoMGDCBMqXMgQoaBIW95oSSJFlMWLGDNq3Mixo8ePIDvSgZMoU5IyIVOqXMlSJR8u flrKnEkzZJcoFkfp3Mmzp8+fQIMKHUp0VCA7MYa4oIGxzZecRaNKnUoVaBAlGNdArcq1KII7FhIg ECAgwSgEWUp80kk2x6gAHCqMSlAAQgALZAUEGBWEqUUAW7sKBkqiyAIONRSZgILgwAAHcaqMokSI wqhJF+RYwPFgQCUTHjxYmuDWxUXAogar9vmjDyhQGyCBOsLJyevXJhCIMIBk1AlQeXjcXiTj9Qgv e4ecDrxa9QYdr4lIAHWFCAxQPTxZAQVhd4FRDEB1/yAAqo4hAcUPxdUZY3nq5s1LDPgQQo2ExwQw PLC8AFSGAQZ8F954oLTwwyg3gELGEgLohIV78DU3BwYwjOCBBno4sAcoKQAySn//BQgeKEYUYAMo EYxyxGsD+KCTGxBGqFoDCnTwASg24PCBEBw+8SEomAAoICg1jNKDAqD8keAmBGyw00WhMCdjVb8Z AV0RKoTwyAMYTDEKGKBMsIMEEIwCBCgk6EQCKEJcoICLPMU4ZVcHgNJABAa0kGUEL4CygBkjgNKI CAqIkUEaoKwwwRh9NrEDKAQ4UohZo8g5Z1Ur2HmABgSEhwYSF9zGyCgOvCbBGaDMUCcoClDwwGsa nEkgV6V/SXlpVBMcQMEgIIRxCQGdjMJGBDNogoeZKLAAAhVMlCAJIgfwEEADyYIAAaWW3gpfAHsJ xa1QUNqq7bhFhVvTuejWFEpAADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_09.gif 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 5azzzgwFBAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_10.gif R0lGODlhXQASAPcAAPn8/WJ/qZWpxWiErUxtnQMxditSi52vyqGyzAw5ewc1eA46fAEwdVNzoZOn xAk2eQs4emB9qB1HhIyhwKm50AUzdw06expEgh9Ihai40Ka2znmStp+xy4Oau1p4pVJyoVt5pqq6 0R5HhJmsxxA8fRQ/f6S1zXuTt1FxoKW2zgIxdQo3eRxGg5SoxXeQtXWOtGF+qae3zydPiUtsnSFK hputyF98qJyuyW+KsYacvV58p5KmxCxTjE5vnzJgl5Glw01unj5ilkhqmxZBgHKMso6jwWuGrpWu ywY5fDRZkAAwdQ87fDhdkwk7foievn6WuXSOsxhDgYmfvy1UjRdCgRtFgwY0d3CKsRI+filQimSB q2yHr0lrnDJYj4GYuqO0zXyUuJqtyKu60WeDrJeqxoCXumaCrFV0oqKzzEprnDFXj2iMtGmFraCy y6y70kdpm1Z1o4SbvAQ1eVR0oiNMh4KZuzBWjjNZkI2iwS9VjnaPtEZomp6wygg2eG2Ir5apxkVn mll4pURmmWWBqwc6fY+kwhE9fQM0eSZOiSJLhzVakYWbvEJlmAg6fa280v///wAvdAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABIA AAj/AB8JHEiwoMGDCBMqXMiw4SMADiNKnEiRIcRHkDJq3Mixo8ePIEOKHAlJDiElTXwcKXiRpMuX MDkyYBAzI5I1BFvW3KngAgYRVFSQkGDIAgYJGBY8uCBiiQIRLBZAqpBlTxILkBZIuABJAY0hJY4C ZSFBAgsIDJCsFKhzZ0w1NRw5QjDFjCMjPeQ6CsSIg6MAduRqgfRB74YFDdy0ISHDkZQneslQkBsj TQFIPga2dfvSwIEfHUKciPCXgKMdLpIQMOEIhxC5RqIgcDThhiMUKEKEmEPD0Yk3cR14mF3HjwEV kJpoFsg5pgE0bGhwOEA6gGkQGUGIceRki1wXTBxt/7AAKEYRD5NzNB4AKYAjIZAEOKKzUclyjM07 H5jwIgOU6qb9sMEFNjiSwgFlfOFIHHA48gEkJezgiA4ZODKCB46w514D8TnSwQBYZNTIffl1NoJc HcgAoF48XOHIExk4kANtYziYVSGORKCBAynIp6EjHMrnyAFVZHQIiSWS5BkeQZRQAAyltZYIAyc4 woUJMQyQggMuPjiEA47YoAEYL8j1Y5COzICIAhohmaRIBiBAxAOQPBkldlY44UgXCGgwgwATkOYF FjNQ4AAI/vFgZntAdljkRm6+CVKcLkBQJ5TWOXLDBB4U4UgUHJjARAstnHHiH7MBgQIFRCwRRoaM ooPZQgd3IAdJpJJ6NAUCG1hagHuDAKHXIgccsIAUHJAwAh95BDGZIy+s0EMIekCiA6wbduiIBoJc ditbzOUKUgEJ9EFTVwkoUIEFCVjwQAIrMPAAWhBAcNkFimRBZwUJ7LsAmwosYAUkKyRgcAVtgouf uAy/iWvDEO90X0UUV2wxQgAEBAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_11.gif R0lGODlhXAASAPcAAAUzdw46fKe3zz1hlYievktsnZutyKq60V17p1V0onONs6y70qa2znCKsSNM h5OnxJ2vygc1eHmStk9vn2B9qG2IrwMxdm+KsaCyy5msx6GyzJqtyCdPiWqFrk1unjZbkWuGrjhd k4mfv4yhwGWBqwQydmJ/qXaPtJWpxZ6wypeqxjdckgIxdXiRtUFkl3uTt2aCrDFXj2OAqj5illNz oQY5fElrnJapxpWuyxA8fTJgl4GYuld2owEwdQ87fGSBq2iErXGLsoqgvx5HhAAwdWF+qUBjlwk7 fiFKhhpEgqW2zl58pz9ilkhqm5KmxAw5eytSiwo3eRI+fgk2eXSOsy1UjSVNiHqTt05vn6m50Jir x32VuFh3pBQ/f36WuY6jwai40ENmmYKZuyRMiCxTjB1HhEJlmB9IhYOau4SbvJGlw0RmmQQ1eVl4 pS5VjVFxoAc6faS1zaO0zXWOtEdpm5yuyVR0okVnmgg2eKKzzFp4pSlQihdCgRxGg2mFrYCXuihQ iqu60TVakS9VjjpelAg6fYWbvJSoxXeQtWiMtGeDrAM0eY2iwTJYjypRi5+xy6280v///wAvdAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcABIA AAj/ACMJHEiwoMGDCBMqXMiwocOHECNKnIhDxxEicNhI2sixo8ePIEOKHEmy5MFENThGsFCypcuX MEMaxJFS0p4OXiSUiFKBggNJLiRY2QigCAlAkhpd8NNhDYsVMEAoMjIFAYIkkghRmRAlpleQBnVs rPIAktkISMwikNQA0oCNHBgsWCIpgVmzDijczQBFQwo3ki5ASoH1q+GNBo9sbGvAhiMLBcwqkFTB 7UYaByClqQtpQhtICWBA8qBAiYlDEKxIEWKWw+HDBomwOPMFUpONJU6YNdQFiGVJcxZk0ALA7ocm kGj8gBTjh4AGDyAg4ZDCrJnXhg0WAhAiDqQxGyPI/8FwxcAgEr9vQBKBgQwWSHkOoBiCQLgADC5U QCjjAhIaDRVEgJ1XBi0CABOZ/SRJH5DcwENner3lAAYigCBAAZE9IgAkKyCQ2QETSGHABlAsAUkR aqiQw4AxGSSJBQ44AUkBLEhCByRO/AHJBQhYVoAAEIwAiQI2QPKBEZA00AAYGgQigw8GqDCAbi8Y AAkfLMLkoiQASADJBh5UEQQkDGwoBhWdRRDEAlkwAAkjkWHxYAUXLEDBAQYMscEDdpSlRBaQhJDl S1tK8sEGd2nAgAceMAABCneZlcAdkNTRQqRh+BYCCgIokMEDuu2wgpcmlDBoS4VKEkMLIhAwwhYA BFPQAQE7CEHArSNMAQAJCsjwggRXvGEBEy9wMEMLIJjQgR4EzCCJIIhwAcCpJhX00RMBBPCEJD3g kYMP2YbbA7XkfpRqueh+dW667Lo00bvwxstQQAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_12.gif R0lGODlhXQASAPcAAPn8/Qk2eXmStgUzd4ievlBwoKq60Q87fKy70gMxdqi40KS1zTJYj4mfv6a2 zp2vyougwGWBq6O0zQIxdQc1eBE9fWF+qXuTtws4elh3pDBWjp+xy4qgvyNMh2aCrHGLsnCKsVFx oFV0omuGrmiErUlrnAg2eKKzzHiRtQY5fGeDrAw5ewAwdQY0d36Wuae3zxxGg3eQtXyUuJWuy1Jy oZOnxDJgl56wyo6jwY2iwYyhwB1HhFd2o5Glwzhdkwk7fkNmmSpRi3SOsxlDgjpelEhqm5utyF98 qE5vn4acvUprnD1hlSZOiXqTt3ONsy1UjQEwdUtsnVx6pilQiiVNiBZBgA06e6Cyy5apxiFKhgg6 fRVAf4edvqu60V58p1Z1o2+KsT5ilitSi01unihQiqW2zjNZkIGYum2Ir3+XuSRMiKGyzFt5ppqt yDRZkAM0eRtFg5yuyam50BA8fRpEgjFXj5irxzdcknWOtHKMsmqFrgc6fVp4pZWpxYSbvEZomo+k wl17p2iMtEVnmhQ/fwo3eUBjlwQ1eYCXujZbkRhDga280v///wAvdAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABIA AAj/ABkJHEiwoMGDCBMqXMiwISMADiNKnEiRIURGjTJq3Mixo8ePIEOKHNno0B4WP2zMKHiRpMuX MD9SgAIzhSCCLWPqfKkhwggSJSiIsLAjAA0VMBqVkCGkSKMKTkIMmFAERVIyESy0yJhipcCcO8OG zLCo7As3fRYkqpBj0ZRBCso6CDNkUQMMAy4s0tDIA4IyWTTaGAhWrGGOBRbFOOLgAwQJDA5wUGAI 0aJAIgzo2LGIQIAEAvY2ArRIQQmNPwgLPMx6Y2IPIRzgeRyZwwkPbXpUaBTlAJzOn0M/mWBkEYIR Glmoxti6dQEEVxYYAKIDsuQNAl588IFGAAklwEEv/woSZEGeRTU0alne3LmBRT3+YMBxos6BBhua KAAzZsOiNTyEFxoTNCDwxQIPDJHRG+y1d1hiIJjQSAA4SGDGHBCcMIIRNXSghhwPELFIEhRMgMIi HXywiAAPLEDEBBk16KBYEEpoAgQIZMCAATcowcUiISxhABZULJJDB3S4sIgPBCzigAJdWDBAjF+t NqNYIiwiRACNJMBGWWXJMAAfYBqAhCJgxvHAIhHYcQMQXnRmBZUPWXnlTndcgMRWjayghx8NxCBG Ixgc0UASUjRCyBkoXKACCWnwAEIGA1ThQgRb0FnYnawNUAhHK1Cwk4ycljpqlcyZqipMy1Xk6quw IgMEQEAAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_13.gif R0lGODlhXAATAPcAAAIxdQEwdVFxoKq60UlrnJ+xy6y70qGyzKS1zX2VuDpelAMxdqi40Km50FNz oaa2zlV0oitSi1R0ohA8fVx6pidPiX6WuQUzd4ievk5vn5msx09vn4+kwgc1eEVnmqCyyzZbkS9V jiNMh4KZuypRi56wyktsnUdpm5Glw4acvau60SxTjE1unqKzzKO0zUxtnRZBgI6jwZOnxAk2eXGL siFKhjhdk0Bjl5Wuy2eDrGiErWSBq2F+qTJYj0JlmCBJhW2IrxdCgQY0dxM+fjJgl4CXuoedvoqg vxI+fgw5ewAwdV17pwk7fneQtQY5fC5VjXWOtJeqxnONs4Oau52vyilQikhqm3+XuV58p1h3pJCk wqe3z5qtyCVNiJirx1JyoRhDgZWpxaW2zh9IhW6JsGiMtF98qDRZkAs4eg87fDtflFt5pjxglQM0 eQg6fTFXj3KMsnyUuJyuyYmfvzBWjnCKsXiRtVBwoBpEgnmStgQ1eWyHr1l4pRQ/f5utyD5ilj1h lQ46fI2iwSJLh3qTt2B9qB5HhBE9fQc6fYGYukRmmWqFrmaCrA06e5KmxISbvK280v///wAvdAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcABMA AAj/ACMJHEiwoMGDCBMqXMiwocOHECNKnIiDCBMliPRI2sixo8ePIEOKHEmy5MEyTkqqXMmypUqD OFJuTFOhRgBJAABsDJAzAE8APnMC3TmU502jRjf2dMmUo0EiHB0ggGTgAhJIHzxIsnEA0osQfhh8 UQCpASQLSCZggGQCgAMVKQJIgHRiAyQBklYcOLCiaVODTDbeMQCphIYOPSBB0iEJ0ABIWF5MlUK2 gBZIVkhQgQSkA4TCPQRAIiDagSQIAwZk8MvUoBJJMyxAigND0oIlii1IEg2JjJ3HhMhKEQEpBwWz Xhp9NgCExejSkpoozsPapUE3C1ZogBRi44UjKsSg/wiUQXECGY9HkC1iApKERQOmwvgMSQuP55C+ SIpSAFKU6i0Z1MYFNzw2yEZJQKJBIWKAQAEkMkzBAAoqFEAWVY54cEUMU0DCRhYMGNHCWqRBkkEE HySgQQGGALiSQZJcYIMLkJCwUQSQcPAgFrjRwAEkfDxwAAiQcMECHnQUYAQcDeywRgsQePFYiSZk sAUUjzzgg4svFSRJAEGstccEkmQBCQKbWQDFARvEAEkEByBwAiQJbGRFWQUYgAEFD5SInyI0nLmF AYxwaZKXG+UAyQAj1DHCADFwYIALLnzgQwqQgFHAA2bQudEOEM7RwAA8PPBHDYqVuMGPR6AASQqG kpIE40ZDSKcYJC1UEQEXislRQQKQTFACAzp4esgVkHggRBiQCMLACWgUgV8i/f3QBSRh1BZrSLNu NAEIGwjgAAGSdKCABBLcMMMYXSygKxgh/CCJECI8kYQkagjwAgtjSBLEGUP08YYIJFQAwAJPVDDD ttwi2pFQOn25FEsHD8WwX91erHF1E3Xs8ccghyzyyAYFBAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_14.gif R0lGODlhXQATAPcAAAIxdfn8/QEwdZ2vygMxdqi40Kq60U9vnwk2eVFxoKy70lNzoZOnxC1UjZut yJmsx4yhwEdpm5irx6u60S5VjYievjFXjydPiUlrnExtnQQydlp4pZeqxqm50FJyoY6jwZ+xyxQ/ f1h3pISbvAg2eHWOtClQik1ung46fICXuougwF58p1V0old2o22Ir5yuyUJlmGuGrqS1zYacvaa2 zgo3eSZOiZKmxDRZkHKMsqKzzDxglSNMh6CyyxE9fQY0d0tsnTpelAc1eJWpxQw5ex5HhDJgl3ON swY5fBZBgB1HhHmStixTjKW2zgk7fm+KsTNZkBA8fQAwdYqgv1Z1o26JsCFKhkRmmZWuy3yUuGOA qnuTt0hqmwUzd3GLsmiErYWbvKO0zUprnEVnmnSOsxxGgz1hlTBWjkNmmZ6wygM0eWaCrImfv5ap xjtflAg6fUZomjhdkws4epGlw2B9qC9VjkFklypRixhDgaGyzKe3zw06e2SBq0BjlzZbkXqTt3aP tI+kwiVNiE5vnwQ1eWJ/qTdcklx6phM+fniRtRVAfzldk2yHr117pz9ilpCkwll4pYGYumiMtCtS iyBJhShQigc6fYedvl98qD5ilq280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABMA AAj/ADcJHEiwoMGDCBMqXMiw4aYADiNKnEiRIcRNnDJq3Mixo8ePIEOKHMmJkCUpToxgKXiRpMuX MGOCRCKJYEuZOIlYQZARAAABnAT4/Bl0KFChPoFyInFBw1GiQp8C0IhkpcCbOGEGcaAJgg9OD5pQ 4cRCUwcDS7pE0mTgxQlOFMxqSoHCwgBNIERwAqJpC6cNmhJw4iIjTRSNRgZizUoyyQxNEkb4KFJg LicRmjhI0NTgsQ4FBTBU0kSjB6M7HzQN6BAGBwZNeQS10LSAExnSFjQ6USyQ8UsLBTiUIcApgwFN DDTMzgBD04Ybmvpo0VRhkSZAXchqUhHFw5QIETQF/z5Em1MbtpA0SuGN0TdJHkMCa+BUQsGLAZM8 aNLSSNMYCJpYUEMYQ6yA3ApllKAJDCFcYEIIJ4j3RxaaHKDEACBokoVGb7DnHkkAGFghJ3MYgEkB YhwgniaBoACGJlCQUIEDMay4wBaauJGDDgPMcAVyA2yWQQQ0bDDBAxqp4eGHIyHghXhxYLiAJmSE Jx4QnLARIAIPcMCHJh8kEEIimuzAQgXIoaHJFyNMoEkENW4wQA8XKLUkkyDVoIES0FUhQwEvaDJF Apo40EQFQoygCQ5mdDWGJi5ktIYmXiAAx3Y/ckGFeGJcUqgBemBAHCd34ulRA0fEMIACFRRwAwQT SMWgoAtHaGKDomDIMIEIJmTmgh07PKBJDo8UsMBrmTRQ2RcSdKACA5pU8UNGpZrKURAKiFcIVzBQ 8sEEGWYw5RPCaqLAE3CtCAEedGQ7Vw36HcDJEp8yUIQjYCZB7VW9WesRAn4ccAYCFzQgBAFQeHCC CDbsQQEPJjTAxAUocELEGUxQYAUBchhygBmKcBICBYhw0kALgySAAwE/1GEDCfs+1K+/LxFAAFEw TdWRUDd/VC3NQDPGXkVEF200QhcdrfTSFAUQEAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_15.gif 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 oAY3yMFYBAQAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_16.gif R0lGODlhXQASAPcAAPn8/ZirxwMxdhVAf6q60YievnmStgk2eSdPiZutyKy70qi40KO0zZGlw52v yjxglau60Y6jwZapxjJYj6m50AIxdRpEghtFg5+xy6W2zj5ilkdpm2uGrhhDgQUzdw87fDhdkxZB gAAwdRI+fgY0d2B9qDJglzBWjoqgvxA8fZWuy4CXupOnxE9vn1l4pQw5e5msxytSiwEwdaa2ziNM hy1UjTRZkAY5fFt5pqGyzAg2eCFKhg46fDldkwk7fqS1zShQiktsnae3zx1HhCVNiKKzzDpelBM+ fnuTt26JsF58py9Vji5VjaCyy1x6pnCKsQ06e0Bjl4acvQo3eVJyoVp4pW2Ir01unpyuyQQydlZ1 ozdckmJ/qVV0onqTt3WOtFNzoTVakZSoxY2iwUprnAM0eZeqxkNmmQc1eJWpxVh3pAg6fQc6fYGY uomfvyZOiZ6wyiRMiJCkwpqtyClQipKmxGiMtGWBqwQ1eYOau4KZuzFXj4SbvF98qEFkl4WbvBlD go+kwhdCga280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABIA AAj/AAkJHEiwoMGDCBMqXMiwISEAAgtJnEixosWLGDNq3MixEB42InyYUFEQIqGOKFOiFIBRgAyV hW7YIWgSps2bUMKU0MDDSI8PhTps6KMlhAYQaDZMcFmDzIigGh6wjElSYM2bWFFygTAIxpYZDoC8 WDGo7IMFAQYMcvPCA5JBJwqVUPDjwkQTA69m3YtxSoJBLa7EcBCACI5BC5JQYUIh7aACBwQYgFuo AGI/E33kjci3c8ULcBQMKGQBA4szegY5yVIIAQHHkCUPWlIIxiAIdyaK2HzSs2+JEQah6BACgxwX f2tIdA078uQYO3K0GTRm4hrev38jyDAozw4HEZQw2qBAZ/lrtbEnIwgCoYsQLCkklsGe3bcNBTmq BGgARsygKOY1JxsNHAzCQQIMTFCBRPTVtxcPb5DQQAYcSJDGA5M10MMIQJz3mHOD7MHHIBQoQIAL HjBoFWcOZmVBAgQMYoYNDswxxAMxcgUCWmopMEgDEgyiBgtN4PDEIF7ooOJDLLZ40wcRMFBHCylE gAINhWwQAAMZTCBBAUfMkAAGf0jxgxWBfEFCHEWsAMiSejl5kw4XLGiRBxYIYidMDcrpJ58r9vbn oCjx5tChiCaqqEImLeroo5AiBEBAADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_17.gif 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 QZJXbnlKDmWu+eacOxQQADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_18.gif R0lGODlhXQARAPcAAPn8/aS1zQUzdwEwdQMxdnGLsgk2eQIxdZ6wyqGyzJmsxzhdk5OnxG2Ir5yu yVh3pGuGrqi40Ka2zjRZkAc1eCNMhy1UjZWpxZ+xy3KMsgY0dyFKhn6WuRpEgiVNiC9Vjqy70qm5 0EFklz5ilnSOs3mStqu60TxglZeqxjVakYmfv52vyitSixxGg5utyJGlw4CXulx6poSbvIacvYie voWbvHWOtJSoxYKZu0VnmjtflFR0oqW2zmmFrU9vnwY5fI+kwjJgl42iwVl4pYugwAw5ewAwdZWu yydPiQk7fm+KsUlrnFNzoU1unoOauwQydgo3eSlQinONsypRi2SBq2B9qHeQtae3z2WBq117p3uT t32VuGaCrGF+qTNZkBQ/fz1hlUprnHaPtF58pz9iln+XuZapxoedvmyHrw46fCRMiAM0eWqFrhVA fwg6fRhDgRlDglt5pktsnWiMtDZbkWeDrKCyy5qtyKO0zYqgvxtFgxI+fg87fJKmxDBWjgc6fUNm mYyhwBA8fUxtnYGYukRmmWOAqkJlmE5vn2J/qUZomh1HhAQ1eSBJhRE9fUdpm1V0olp4pa280v// /wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABEA AAj/ACcJHEiwoMGDCBMqXMiw4SQAAilJnEixosWLGDNq3MiREqM/RpIEOVIQ4qSOKFOqXJnxxxyC JlnK7FgEjoaJA4ocmCigDYWZP0gKjDmzKCUsgYgAKbFBBwMXL6ZQalECBQw9lEa8cOHkSwcnNCpQ iKGgCaUqCZBQekCkAMUgA4kalVlDkl0gXTDYlaQgjRi7GCbQAWE3wZscEUwsoUBCEowOjf1QuiAp AYGJSeJGnCvTgAhJMg5AkETCghBJkSRI+OCIBQ1JKlgYoASBcAYBGSThUdRAkgU+KyRJkCrRiOaT nGUukMThSd0UayVhCWCiCqUodslMfCGBL267BWxI/4ryIQCICHImujmeXDlzATMkTaCUIoGQ0QEm WJB0w4PEFivMgAACHhQQggMXMCCJB0NI0oAJVky0BnvtrbQcBwKcIR8lYPCgAhRS8BeDJHewIFEh EdiAQwCDFMAAFQlcIUkFW0iyhCQoUERhhSktV8YBhEgyAiU9SFKHAQagEMEMDkjygERs8LVCCEo0 4IIIJdh1ggqSaCEJAi0MINGOPHa0HA6UxCFJDUMoIIkOYxxCQwBM4EcFIJQ5gIAkDKCBQQU+2GWI GVcgEAAPIlxGCZllajTACaBRskEfe8FggF6gQdGIgntJkoIXkgSQhx1IqNHkBSFYYUEBkmRw06JD bVrWKEcdPDAkJRVwIUUMglCCSAM7bCDRIlkokcgOOQhAABM+PBLGHgc0YUMPBXwwwAaQnKAoo7Oi RIAGYkokgEVP7JQRAQJQAO5F3HbrrkrHOSTvvPTWqxAAAQEAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_19.gif R0lGODlhXAATAOYAAH6WuQk2eSlQil58pwEwdQc1eA46fKa2zlx6pjVakRxGgwo3eai40I6jwXGL si9Vjgg2eJyuyay70qW2zmWBq2+KsTJglwY0dxdCgUZompWpxYedvoacvZWuy4yhwHCKsRQ/f5Gl w22Ir4CXuqm50Ku60XONs4KZu2eDrCdPiStSi6KzzAw5ewk7fgAwdQY5fB1HhEBjlxlDgmOAqh9I hZirx3mStmF+qYugwF17p5qtyGiMtERmmRA8fZeqxjhdkzJYjwM0eTxglR5HhEtsnRZBgDZbkRI+ fmB9qGJ/qZSoxQ87fC1UjQQ1eSFKhjpelHeQtYSbvAc6fYOauws4enWOtAUzdz1hlWaCrFt5piNM h52vyiRMiEJlmIqgvw06ewQydqCyy198qFV0oiZOiRpEgqe3zzFXjwg6fZOnxBtFg1JyoUVnmmmF rTBWjq280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAABcABMAAAf/gHCCg4SFhoeIiYqLjI2Oj5CRkpMdFi0uUk1xm5ydnp+goaKjpKWH Oy+logSqra6vnIYdLwQgTgWbBTAyBBA0CgowGCAKS3EQXBlMAbDNzp6GFgQsI28CmzxvEUVAb95v VQASNxdt3w5Uz+qwhi1xAQDWmxVvBzEKJyMrbw9Ibwgp3kzYEOYNkXUIVRly8S7etTg+vInYJGBL hCNi3gxA8cZBnDFvTDBLSBKUITQN5RmYUOMNh00I3mSJM0NjFDNs4jx4g6NMyZ+dDAVJeU3IARE6 NPTA0ODNmTgUNG6YcCWOAAYN1ADdamgTPHkoSHxosEJFgjc2DEDVOMWezjdegmRsBdqVaBwPb0q8 YTAgx5sum6IOSBISQswPuOaWrPs1BAcSJRyc0KbhjRIPaypIQKBib5oDbzIo/tmVwIJ430JYIfPt WwUoEgYUGPANy4XRiwttMm2gt4EFcQq4MZKg+A8tLL7gAjPkSQpWuEnWjU7d1fTq2EdN2s69u/fv 4MMbCgQAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_20.gif R0lGODlhXQATAPcAAPn8/Qw5e4qgv6a2zjJYj6q60ZeqxjRZkA46fB1HhBxGg6y70p+xy4yhwDBW jputyBZBgEdpm3mStnGLsgEwdRI+fpOnxA06ewQydpWpxae3z158pw87fJ2vyk5vnwg2eG2Ir1Jy oUtsnThdky9VjmaCrKGyzIugwAs4ekhqm2eDrAc1eKu60RpEggk2eVV0olp4paS1zRQ/fxVAf56w yneQtRhDgTpelJWuyzJgl5CkwjZbkYacvRtFg6O0zVBwoFZ1o6W2zgY5fAAwdVt5plFxoAUzd3CK sZSoxQk7fi1UjQY0d5KmxJirx2J/qQMxdnyUuJqtyBA8fZyuySZOiSFKhlh3pIGYuqKzzIKZu26J sKCyyxlDgj9ilnSOsx5HhG+KsYmfv5apxixTjEBjl0RmmQg6fX6WuShQilR0okZomo+kwj1hlYie vnWOtAM0eS5VjWF+qSVNiDxglWiMtDVakU1unlx6pjldk198qKi40Ac6fY6jwQQ1eV17pzdckqm5 0B9IhWmFrZmsx2uGrklrnI2iwa280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABMA AAj/ABEJHEiwoMGDCBMqXMiwISIADiNKnEiRIUREiTJq3Mixo8ePIEOKHJmoz54hSXLgKHiRpMuX MGNypEAhoxA6BFvK3JlxRYsEChRAUJAgUI8PH3okSACBg4IZiS4okGED6BcpLRR8GMohUYUEKxJx mFOmhc2VAnXylDmCwaFDCzK8fZvixoK3UZwUMEAhxKEwW+aCMMFihIVDRxKBOKQEApO3gP5kzDFQ 7VqYVVQMOMQjzqEORwpAATIgQw0/QAr4ICDiEKESbht06bDggIBDDbioOIQGzKEMDQ49MJIoSWWB l3nephLg0AkIWR5MWJAmowcWCyaoOZQi0YRDDhIZ/zhk+5CGIncKFLlNoMKDIDsSDTmOMblM9s2n lIhxBcYACzWQEUIBhwyywSERJCIBeOKRd9shUGi2QQYGVKBYAS8kYgZ99t13CAHNvUUDAWxo8FYJ L2gggB4GLJDgguGNd8AJGiBhQhQMEGHBAzIkQsQhWiTyBocdwoTfXExAMMIhE5Awww8D5NHEIQW8 yKCMDTzgxGYPbIBEExZOgGFGRBbp0pEmnIAgAYfYYd0AIcBApZUxktcADSm48ZkHbXxoAwMD4EFm WsiZeeaHza3RmhdQMtAACFYMIEICh7BAZ4MHNIAFCTccEoMcgggnxiEMBDDoQ4UaOtJtBzTHhxKG FHDAQwdvWbDBAB64cMYhhSh45SF16LBaAgwsMMYFOrwVBBwalalqSCgggAEFCATwhAscBBAAAgig sMIFSyTyAQLEuSAFBolsiwEKF0y77ROJLEHCDghs5Oyz+F52b778xkRfRQAHLDBCFw1s8MEUARAQ ADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_21.gif R0lGODlhXAARAPcAAH6Wuau60WaCrAk2eSlQilx6pgEwday70gUzdxE9fYugwHKMsnqTt01unm2I rzZbkaq60XyUuKm50Fh3pE5vn0Vnmgc1eGuGrqa2zlV0on2VuHuTt4acvWiErZutyEBjl3GLsmSB q2WBqwQydnWOtIGYup+xywAwdQY5fAk7fjBWjnmStpGlwz5ilqS1zQs4eqi40ISbvJCkwoqgv4CX uqe3z2J/qUtsnZWuy198qAw5e26JsJSoxUdpmyVNiG+KsTJgl2mFrVp4pWyHr3eQtS5VjQg2eDxg lQg6fS1UjTtflBpEgiRMiF58pwM0eS9VjiZOiWiMtDdckjJYj42iwVd2oxZBgDFXjwc6fXSOszNZ kCpRi1Z1owMxdgo3eURmmXiRtYyhwBI+fkNmmRA8fWOAqp6wykhqm46jwZOnxJmsx1NzoSBJhQY0 dxM+fnCKsWeDrEprnCFKhg06e6O0zSJLhzVakZapxomfvz1hlRhDgQQ1eYKZuzpelJKmxB9IhVt5 ppirx1l4pX+XuWF+qVR0onaPtK280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcABEA AAj/ABEJHEiwoMGDCBMqXMiw4UEcQFKcwLInkcWLGDNq3Mixo8ePIA9GQQGypMmTKEsaxEGyowED KWPKjGkQSCIEcUjoSZQkRIVES4Iw6OAjkZ0OR7o8CDGmxYUOcKBYyODAi4EPQxrM3MrRYAoDOmgc IpCoUIAIRkocWutHTIFDFywQOqDhx9pDAAiEOZRgBI9DCkZwHXzR4IlEAwCMTUQBAgkVhzw0yHKo woRDAhAUCLDAwaEJOypz4DsgwKFATAgTNogEsWKyFCRsyHFIRCI5VxIJwayZc2gll8+MTvAEgpoa PVQPNujE9eLYEQQcstGDAZEv0jNvXjAkMgQPD/Dw8C0AY8ahEMq5GrSY+LmE6AeCgFgLwsEB7Zwv rD3wYAALvgCY8QFe6W21nnNkNSCbDZgZcVl9B4jQxhs1NOGZaRW8IMMhbriAAQOHUGFFgTId2F4e CVTh2AOH8FCECIfc8NYKfyhARwMLuDAaDT6Y1wIGB2BwiAlSkEhTQYkY8MIgd8kQwApzpHGXCWwU YcJddzxAxCFlgJiBAof8AEMMH/BxiBBGpnSgBYKUwMBsYKyRSB0asBCDFhbdUIICEfSBABcabHGE AhlcAAAghkyRiApoaJXmSQd6NAIZFmSkA0yPphlpppyi5NCnoIYqqkMBAQA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_22.gif R0lGODlhXQARAPcAAKS1zWSBq6a2zn2VuHONszpelGuGrqy70mB9qHGLsktsnYqgv/n8/TtflAQy dp6wyqGyzJ2vyqi40GOAqkBjl6u60QEwdSNMhwUzdwIxdUlrnBxGg5+xy1V0olx6pmWBqzldkzhd k1p4pVFxoAc1eAY0dwk7fpWuyzZbkU9vn0VnmoCXugAwdXeQtT5ilnyUuFZ1o3uTt3KMsnCKsXaP tFJyoaKzzJutyH+XuQk2eQY5fGaCrCFKhjxglTBWjqW2zqe3zzJgl2yHrypRi0RmmWqFrhA8fYie vl58p2iErWmFraO0zam50E5vnyxTjChQiqq60Udpm26JsGeDrAM0eYKZu22Ir46jwZGlwy5VjXmS tniRtRI+fomfv0JlmC9VjnSOszJYj4+kwk1unkFklydPiSlQioWbvFR0opyuyQ06exZBgDVakQMx dm+KsTdckgg2eF98qAc6fYugwJKmxJOnxAg6fVh3pIedvhQ/f5Ckwld2oxdCgR9IhUxtnQQ1eZeq xmiMtBlDghhDgYSbvJmsxyZOiT1hlVBwoCVNiBpEgll4pa280v///wAvdAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABEA AAj/ABsJHEiwoMGDCBMqXMiwYSMGAh1JnEixosWLGDNq3MjR0R85LEwEOVEQYqOOKFOqXJlRRyCC JlnKnEnzog6SAmPW3OkoQ4EtThxpmHFhyA4EGwYlEJLoQoAiU2rk4KEkiQEyOVTQ2OCoTAAEJSYG GaiTJ00MHxgpcDSAkYsOB6B46MGIEREvdetSaJD3hgs3jHw42nHgB4+JJgyarelgglq2jBqMOFCB QIe6KvgiSCFgAQhGSsYwMpAgsCMxjCRomMhC8eKZjR+3LUCgAgQ6AeruicKIAoXOn9F8GT2DURYL NxgdMDDRjuvXLGOvnR2DyQIBWDg8CJBCAgAAP1CE/2CUBgCjEQYYDTEDgACjOhOpPIeuUjrkAleA CGEE4QWEDyNIEIEAjCAwXl0IZNACI4bUcAAMAEQgyETz0YeSA7n5cZ8NAojASCFFcLBCWhqEAQAQ 49nAiAwl0MDIBaVpEQEABWQgUYUWcmQBEowksMERkS3xABeM6NEBADjkJkITAggAQgU4PBBBAVIw 8gaQAkhQAQIY3FhQjivxlRcAFADAgRGMEMIGBAsQYJ5yBNBlBQyMELBgAIA8QASPeKjhJUFgqkQC Igt0cQYKioCRABwGxJGHBwTckcALMXhgxBMDHNLHHAEEUMUiMoiAAR8rJLHGnwMFulIbJFigKo6q xgvKkUO01mrrrbYGBAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_23.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_24.gif 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 ShNVbvnlmGeu+eYKBQQAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_25.gif R0lGODlhXAATAPcAAKi40AMxdqa2zgc1eAUzd5utyEJlmDNZkGiErUBjlzJYj5eqxqy70o6jwZ+x y6GyzAk2eRdCgTpelHWOtAIxdYqgvzRZkKq60S9VjgEwdRxGg1h3pKCyy56wynmStpqtyE9vn5Gl w3KMsmJ/qaKzzCFKhmuGrqS1zZirx0dpmxQ/fyNMh5yuyQw5eyVNiAk7fjhdkxI+foGYulV0ooyh wImfvx1HhJWpxam50Fl4pae3z5Wuy22IrwY5fCxTjDdckmWBq2qFrj5iljxglShQipCkwnuTt6u6 0QAwdUhqm01unoKZu5msxzJgl2F+qZ2vynONs1FxoHyUuAg2eDVakWSBqwg6fR9IhQQydipRi4Oa uy5VjYedvmaCrHeQtUprnICXug46fENmmQY0d1JyoSlQimiMtIievktsnX+XuRlDgm+KsaO0zYug wAM0eStSizFXj32VuBhDgWyHr3iRtSBJhRtFgzBWjh5HhEVnmj1hlV58pxM+fpKmxA87fAc6fWB9 qHGLso+kwgQ1eSdPiTZbkWeDrISbvI2iwUZomhA8fXqTt4WbvDldkyRMiDtflK280v///wAvdAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABcABMA AAj/ACMJHEiwoMGDCBMqXMiw4cEdTV4g+TNIksWLGDNq3Mixo8ePIA+a6QHSYwYKJVOqXCnJ4A6S KwyIgRBByCNFklSkKNSCgoIECSSokBTAxQwgPlyk0CAJxpAYFoDqicCy6keDTSwigASJSBVIAhJI MgD2zoAGXCEFkmThA1cnUCCRkVQAQCMmaaNY3bvR4AuLQbgOWQJJh4EAJrgepgEpSoEHZW5A6jPi SuIkdAEcEATARAobfENfNIhEEgUPXEG4BfAlTA2uOVpUgMSngYA9kDpI0AqpCyEHmkNwUCC6eMuC ViRBkPEEgBQBCxgAUgNpAQojdbhAmiBAgBNIZwjw/z7BgoGAA2gLTABtfK9BNxTkNLhB4wQDBEcM KYBEZ8IDKodwdcEPQECixUVbsfGBeQcgAgkAjJTQnnsFEeUICiFIoQMkSkBSQQ6QGEFYHjIImEWH RVAlyVYb+NHcAUWQYAAEWExolUFEvcGBByA4AAkMkDgwASQ4XADJCLN5AIAIJUByBBRM8QAJGpkd IBxxNt5YIQEJQOKFAR1UYAGRD7CwgQiQgLEAJAacQIIdc6S1wRqQgJCZBWhBQoIQWbKEIwESOMDD CjUEocEDD1ywiCQ+WFcAAzHEwUQSEIggACQzjABJIpK0scAWaXTgwAK79akSjkRNQUAGAxAQAAYY KD0gIQREwBHrGAS0KgkBePwQQQZTBCDJAAMEQCyxwpqaEqrKNqslQc5G66dD1FZr7bXYZqvtttx2 6+231gYEADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/brOFF_26.gif R0lGODlhXQATAPcAAKm50AUzdz5ilgc1eC9Vjqq60YacvQMxdgIxdWiEraO0zVV0oidPiW+KsUVn mpGlw6y70p2vyputyKS1zQg2eD1hlau60aW2zgEwdQw5ex9IhRI+foCXujxglZeqxjJYj6GyzGaC rFl4pWWBq0dpmwY0d1R0ooqgv3WOtJmsx0tsnQk2eaa2zkxtnTJglwQydi1UjZyuyQAwdXiRtRhD gYSbvKKzzJWuy3ONs2J/qXeQtShQil58pws4egY5fJirxyxTjKi40A46fJapxm2Ir1t5po6jwTpe lBA8fSZOiUprnEFkl117pypRi36WuQk7foOauzFXj6CyyyVNiDBWjmB9qBVAfztflC5VjZOnxE9v n3SOs3uTt0JlmBxGg1NzoWiMtERmmRtFg3yUuAc6fZCkwlJyoRQ/f3KMsjRZkE1unjhdkx1HhEBj l4KZu0hqmwg6fSNMh1h3pDNZkHqTt0Zomlx6phpEglFxoDZbkSlQihM+fklrnAQ1eQM0eWmFrX+X uZ6wyq280v///wAvdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABdABMA AAj/AAcJHEiwoMGDCBMqXMiwIUFCECNKnEixosWLGDNqJNSHjIwnLm4g3EiypMmTEg9I9AHmIMqX GYWsEYCEEI0OSwQIWILFCwkqAZBcmaKhgs6jAsJoKJGHiRwYEX2ILAizakUxJwR1IFTFgqCvgqB8 ERRkBwEWDXgUAMu2iAgWXxV8iOjCoNW7EosIMkEIkCAngkCoSOPgqwoCChIsAGBEhRomPwQ1qPBA EAoDgh5EfGIXL942gmawMSKIhCAPECt8dcInkGIAKCBu4CCIwREAZTbcERSBBkQZnT1b1ZAlgpYU Q6IUAPBABAFBNiYkkJDABIAJJ970wMzAdAMKGB5M/ziCgBCc4MKr4hDE4cIIAgUsXAgBQ9CJIR4A hLBeQAKeFdwV9h0GHLDQhUp+oJfeS2YIMoEgUTQhSAoZINCBIAmsJ8gIi40hRABncFeHIEQMgEEE cpVHiIILnvRBDGTtscNpqQmSgwNSbLhYbIRYgVkTBIBQABBKCCJBBhGx2GJJPUAhiA4r6GEBBIJw 0YIgf2xQgyAhLPYVHQFgNgchbghSAAQQECGRkkuSxAMESiCQRAoS2LBFYTkQIsIFdrTwQwwKoPHC DBEQQEgcNSgAgg4BrElVmy8FQIFKCAxgaQAHrNCopAG8YOkAjZYwgEqEZABEEiVMxCakrJK0aquw XhTk0Ky01mrrrbjmquuuvPbq664BAQA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/mOFF_23.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/mOFF_24.gif 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 m/70qE+96lfP+ta7/vWwj/1GAgIAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/newsvet.gif R0lGODlhlQA1AIc9AAIaQm6OQrbKHypWYnqSgk5yUr7Kpgo6dJeuluLq2ipWlFZqhiI6WpKuMoqW qjpmohpGbmB+qr7KytbmEpquyvL25tHa0hI+bzpekgIqaGqOxoKeOpauYkJmWmKCSrrGusraFuru 5k52sh5Kaqm+Jm6KqgIudg5CijJenuv2Bnae0go6goqiwsnS4h5KhjpiWkJmmNri6lZ6Tqa6lhJG jlZ+uqK2xoKefhI2bnKOYsLSGi5Wkp62K/7+/hI+gkJijQI2doKeiw46cubu6uHuCvL2936WuYqm NmZ2kM7S3BpOmgIiUCpWduDm7k5yltHa5maGarLCzvLy5jJKapKmxhpGinqWPnKOqtLaniJWoD5i lkhuVmqKRtXiErDGIkJuql5+TKq2xObq8TReXqa2koqewTJmsmZ+nhI+fjZioG6Wyuru8naGnvL+ AoKm2h5Smq7CimCGwsbWGKa6Jgo2evr6/V56ps7W5AImXrrCzpqmt3aSQL7OHk5yZgo6fp6ypq6+ akZadn6abyJGdhIuVsLOxoaq3qqywY6mcj5ifnKOtipSZlZ2piZSZk9yhnKOlpauQrrK2ipeqn6i 1ylSj66+j7LCevr68tbe3ipapjJaXpqyLt7qDtbezoqiNmaGRtLeEq7CJPL6Al6CvubyCEpyrsLO 21Z2UrrCyjJWglZynqq60maCrpqqxkZqnpqupoqashJCig4+chpKlHaKqbrG1xZCbw0+h6q+nhZK ki5amoKavnaSpiZapjVquS5isBpGfvLy9rrOHtrqDp6yxoaiN0NqV87eFCJOaAIyeCJOilp+TlqC vqK6Ko6qMuLq8X6aOu7y9QIeSnKSQi5aYlJ2UrrKsiI+YmKCqvb28mKGSu7y5u76BsrW4sLWGmZ6 k1ByoDJOcpaqxs7aqhIyXnaStlp6pjpilg46ftbe6g4+fj5mmkZmkt7i6hZGj6a2zgY2e7bC1kJi hjJakpauLtrmDlp6TkZiivb29o6mNXaOq26KQjpionKWzoKi2gAAACH/C05FVFNDQVBFMi4wAwEA AAAh+QQFyAD/ACwAAAAAlQA1AAAI/wB7CBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPH jyBDihxJsqTJkyhTjmwjShS3FClIkSJChBOnehO6HDsGQo4cHXyECRDgJRQJEs14bNrUoMERT8U2 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 2UugAhfIwAaGZh3/MJ8DWce1twQEADs= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://banner.travelnostop.com/pipinobiancolattefresco.gif R0lGODlhsQA7AKIAAACZZjPMmZnMzGbMmcz/zMz//zOZZv///yH5BAAAAAAALAAAAACxADsAAAOX eLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodEqt Wq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vv+Lx+z+/7/4CBgoOEhYaHiImKi4yNjo+QkZKT lJVJAwACAQEABAYDmgEFlh6YoQADAQICAJ2kHaaYAAcDta0CCQA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/pixbluscuro.gif R0lGODlhAQABAIAAADdTawAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/pixbluchiaro.gif R0lGODlhAQABAIAAAG6dxQAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/db_04.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/br/db_09.gif R0lGODlhcQBGANUAAGuYv1l/oDpTaCIwPEtshyw/T2SOsmuZwG2bw22cw26cxGyawTRKXUdlf0Bc c09xjluDpGaRtjxWa2qXvmaSt16GqGiUumGLr1R3lmWQtWmWvC9CU2CJrC1BUU1uimSPsyU1Qis+ TU9wjVqAoSk7SgAAAG6dxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABxAEYAAAb/wJJw SCwaj8ikcslsOocdk3RKrVqv2Kx2y+16r6WveEwum8GKs3rNPpcS7bh8Xi0h6Pi8e6Hv+7klB3+D hFOBhYh+JQCJjXiLjpFxkJKVboyWmWOUmp2AmJ6hWJyipYagpqakqaKrrJ6ur5qxspa0tZK3uI66 u4m9voXAwYPDxIqox7zJyr/MzcLP0MXS08jWjcbYk9Xbj93ec9rhauPkZubnZOnqYuztXu/wn/N5 8vVZ9/hg4Pub/f6+6At4imCbgQYRElQYkKE/h/sg4pNYj+I8i/AwttOojtOTjyBDihw5hASoAShT qlzJsqXLlzBjypwZE0QIBg4eQMggSEqBnJ9AgwodSrSo0aNIkypFuoGBhAYYKlDoaUKA1atYs2rd yrWr169gw36V4KCBiAAXLPCRQqCt27dw48qdS7eu3bt47Xp4gCEAhwgT7kgJQLiw4cOIEytezLix 48eNR0CocCGChgNwpBjYzLmz58+gQ4seTbq0adIfMlCwMOEAgjRSAMieTbu27du4c+vezbs37wMH FiBIANug8VJBAAA7 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://banner.travelnostop.com/xtutti/BannerFissi/TRAVELEXPOIN120257.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/logoprint.gif R0lGODlhEAAOALMAAAAAAP///+Li4MrKyp2dnZeXl2VlZTMzM////wAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAgALAAAAAAQAA4AQARKUEgJqrU06MH7KFwBTEBwAcRFFWzbGsY4ZWdKnmfADlXg /QaCaCYoaXwc28z4U5I2nVSJ1TtafTsplKMxDLy20s9TIBxkRZxKEgEAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/logomail.gif R0lGODlhDwAOALMAAAAAAP///7+4v3B3cJCXkOLi4NDQ0JCQkHBwcA8PD////wAAAAAAAAAAAAAA AAAAACH5BAEAAAoALAAAAAAPAA4AQARBsMhJawpYIBzQ4UkycCSJhESpnlVLXZrafWFgbIH2dUaQ uMBCaEgkCmOyWS2H43gwy1vMg+j5EjeSwGT4Fb+hQgQAOw== ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/affiliati.jpg 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/pulsantidown_64.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.travelnostop.com/img/pulsantidown_65.gif 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 ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/layout.css A:active { outline: none } A:focus { outline: none } .testoser1 { FONT-SIZE: 13px; LINE-HEIGHT: 15px; FONT-FAMILY: "Trebuchet MS", Arial } .testoser1 A { FONT-WEIGHT: bold; COLOR: #000000; TEXT-DECORATION: underline } .testoser1 A:hover { COLOR: #003178 } * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY { BACKGROUND-POSITION: center top; BACKGROUND-IMAGE: = url(img/body-bg4.gif); MARGIN: 5px 0px; BACKGROUND-REPEAT: repeat; = BACKGROUND-COLOR: #e5e5e5 } .testatina { PADDING-LEFT: 5px; FONT-SIZE: 14px; MARGIN-BOTTOM: 10px; COLOR: = #ffffff; FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: #003178 } #divcercanetwork { PADDING-RIGHT: 15px; FONT-SIZE: 12px; MARGIN: 10px auto 0px; = TEXT-TRANSFORM: uppercase; WIDTH: 770px; FONT-FAMILY: "Trebuchet MS", = Arial; HEIGHT: 18px; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: right } #divcercanetwork IMG { MARGIN-BOTTOM: -4px } .cercanet { FONT-WEIGHT: bold; FONT-SIZE: 12px; FONT-FAMILY: "Trebuchet MS", Arial } #divcercanetwork INPUT { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #7a7a7a 1px solid; = PADDING-LEFT: 2px; FONT-SIZE: 11px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 0px; BORDER-LEFT: #c2c2c2 1px solid; WIDTH: 100px; FONT-FAMILY: Verdana, = Arial, Helvetica, sans-serif; HEIGHT: 1.4em } #divcercanetwork A { COLOR: #000000; TEXT-DECORATION: none } #divcercanetwork A:hover { TEXT-DECORATION: underline } #topbar { BACKGROUND-POSITION: 50px 50%; Z-INDEX: 100; BACKGROUND-IMAGE: = url(img/bgdbannerbt.gif); VISIBILITY: hidden; WIDTH: 100%; = BACKGROUND-REPEAT: repeat; POSITION: absolute } #topbar .close { MARGIN-TOP: 32px } #header { MARGIN: 0px auto; WIDTH: 770px; HEIGHT: 67px; BACKGROUND-COLOR: #ffffff } DIV#header DIV#logo { LEFT: 0px; FLOAT: left; WIDTH: 279px; TOP: 0px; HEIGHT: 67px } #header #bannertestata { FLOAT: right; WIDTH: 468px; HEIGHT: 60px } #testata { BACKGROUND-IMAGE: url(img/bgdheader.jpg); MARGIN: 0px auto; WIDTH: = 770px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 283px } #testata #menudx { MARGIN-TOP: 14px; Z-INDEX: 10; BACKGROUND-IMAGE: = url(img/bgddaatbase.gif); MARGIN-LEFT: 645px; WIDTH: 125px; = BACKGROUND-REPEAT: repeat-y; POSITION: absolute } #menudx #jsdb { PADDING-RIGHT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 12px; LINE-HEIGHT: = 12px; MARGIN-RIGHT: 12px; FONT-FAMILY: "Trebuchet MS", Arial; = TEXT-ALIGN: right } #menudx #azofday { MARGIN-TOP: 12px; FONT-SIZE: 12px; PADDING-BOTTOM: 3px; COLOR: #ffffff; = LINE-HEIGHT: 15px; PADDING-TOP: 3px; FONT-FAMILY: "Trebuchet MS", Arial; = BACKGROUND-COLOR: #003178; TEXT-ALIGN: center } #menudx #sfondoazday { MARGIN-RIGHT: 12px; BACKGROUND-COLOR: #ffffff } #menudx #nameazofday { FONT-WEIGHT: bold; FONT-SIZE: 13px; COLOR: #000000; LINE-HEIGHT: 15px; = FONT-FAMILY: "Trebuchet MS", Arial; TEXT-ALIGN: center } #nameazofday P { DISPLAY: block; COLOR: #ffffff; LINE-HEIGHT: 16px } #nameazofday P:hover { COLOR: #003178; BACKGROUND-COLOR: #ffff00; TEXT-DECORATION: none } #nameazofday A { DISPLAY: block; PADDING-BOTTOM: 3px; COLOR: #000000; PADDING-TOP: 3px; = TEXT-DECORATION: none } #nameazofday A:hover { COLOR: #003178; BACKGROUND-COLOR: #ffff00; TEXT-DECORATION: none } #menudx #datiazday { FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 5px; COLOR: = #000000; LINE-HEIGHT: 11px; FONT-FAMILY: "Trebuchet MS", Arial; = TEXT-ALIGN: center } #datiazday P { MARGIN-TOP: 3px } #datiazday A { COLOR: #000000; TEXT-DECORATION: underline } #datiazday A:hover { COLOR: #ffff00; BACKGROUND-COLOR: #003178 } #menudx #scopricome { FONT-SIZE: 11px; PADDING-BOTTOM: 4px; COLOR: #6fa8ff; LINE-HEIGHT: = 11px; PADDING-TOP: 1px; FONT-FAMILY: "Trebuchet MS", Arial; = BACKGROUND-COLOR: #003178; TEXT-ALIGN: center } #scopricome A { COLOR: #ffffff; TEXT-DECORATION: none } #scopricome A:hover { COLOR: #ffffff; TEXT-DECORATION: underline } #jsdb P { MARGIN-TOP: 1px; MARGIN-BOTTOM: 2px } #menudx #jsdb A { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-BOTTOM: 1px; COLOR: = #ffff00; PADDING-TOP: 1px; TEXT-DECORATION: none } #menudx #jsdb A:hover { COLOR: #ffffff; BACKGROUND-COLOR: #003178 } #testata #banner { MARGIN-TOP: 67px; Z-INDEX: 20; MARGIN-LEFT: 576px; WIDTH: 177px; = POSITION: absolute; HEIGHT: 59px } #testata #sxregioni { MARGIN-TOP: 202px; BACKGROUND-IMAGE: url(img/bgdsxmenuregioni.gif); = WIDTH: 26px; BACKGROUND-REPEAT: repeat; POSITION: absolute; HEIGHT: 81px } #testata #menuregioni { MARGIN-TOP: 54px; MARGIN-LEFT: 26px; WIDTH: 185px; POSITION: absolute; = HEIGHT: 200px } #menuregioni #toolsfun { MARGIN-TOP: 5px; FONT-WEIGHT: bold; FONT-SIZE: 10px; MARGIN-LEFT: 83px; = WIDTH: 100px; COLOR: #ffffff; LINE-HEIGHT: 11px; FONT-FAMILY: "Trebuchet = MS", Arial; POSITION: absolute; TEXT-ALIGN: right } #toolsfun A { COLOR: #ffffff; TEXT-DECORATION: none } #toolsfun A:hover { COLOR: #ffff00; TEXT-DECORATION: underline } #testata #menuregioni #datagiorno { MARGIN-TOP: 4px; FONT-WEIGHT: bold; FONT-SIZE: 38px; FLOAT: left; = WIDTH: 60px; COLOR: #ffff00; LINE-HEIGHT: 35px; FONT-FAMILY: "Trebuchet = MS", Arial; LETTER-SPACING: -2px; HEIGHT: 35px; TEXT-ALIGN: right } #testata #menuregioni #datamese { MARGIN-TOP: 5px; FONT-SIZE: 14px; FLOAT: left; MARGIN-LEFT: 5px; WIDTH: = 70px; COLOR: #ffffff; LINE-HEIGHT: 15px; FONT-FAMILY: "Trebuchet MS", = Arial; HEIGHT: 14px; TEXT-ALIGN: left } #testata #menuregioni #datasettimana { MARGIN-TOP: 2px; FONT-WEIGHT: bold; FONT-SIZE: 15px; FLOAT: left; = MARGIN-LEFT: 5px; WIDTH: 75px; COLOR: #ffffff; LINE-HEIGHT: 16px; = FONT-FAMILY: "Trebuchet MS", Arial; HEIGHT: 17px; TEXT-ALIGN: left } #testata #menusezioni { MARGIN-TOP: 230px; MARGIN-LEFT: 211px; WIDTH: 434px; POSITION: = absolute; HEIGHT: 53px } #corpo { BACKGROUND-IMAGE: url(img/bgdcorpo.gif); MARGIN: 0px auto; WIDTH: = 770px; BACKGROUND-REPEAT: repeat-y } #corpo #tdcontainer { PADDING-RIGHT: 142px; PADDING-LEFT: 15px; PADDING-TOP: 15px } #corpo #banner120 { HEIGHT: 257px } #corpo .testataiscriviti { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = MARGIN-TOP: 10px; FONT-SIZE: 15px; PADDING-BOTTOM: 3px; BORDER-LEFT: = #000000 1px solid; WIDTH: 118px; COLOR: #ffffff; LINE-HEIGHT: 15px; = PADDING-TOP: 3px; FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: = #003178; TEXT-ALIGN: center; TEXT-DECORATION: none } .testatacercanews { BORDER-TOP: #000000 1px solid; MARGIN-TOP: 50px; FONT-SIZE: 15px; = PADDING-BOTTOM: 3px; BORDER-LEFT: #000000 1px solid; WIDTH: 112px; = COLOR: #ffffff; LINE-HEIGHT: 15px; PADDING-TOP: 3px; FONT-FAMILY: = "Trebuchet MS", Arial; BACKGROUND-COLOR: #003178; TEXT-ALIGN: center; = TEXT-DECORATION: none } .introaz2 { FONT-SIZE: 14px; MARGIN-BOTTOM: 25px; LINE-HEIGHT: 15px; FONT-FAMILY: = "Trebuchet MS", Arial } .introaz2 P { MARGIN-TOP: 8px } .introaz2 A { FONT-WEIGHT: bold; COLOR: #000000; TEXT-DECORATION: underline } .introaz2 A:hover { FONT-WEIGHT: bold; COLOR: #003178 } #piede { BACKGROUND-IMAGE: url(img/bgdcorpo.gif); MARGIN: 0px auto; WIDTH: = 770px; BACKGROUND-REPEAT: repeat-y; HEIGHT: 67px } #piede #pulsanti { MARGIN-LEFT: 30px; POSITION: absolute; HEIGHT: 67px; BACKGROUND-COLOR: = #ffffff } #footer { BACKGROUND-IMAGE: url(img/bgdfooter.gif); MARGIN: 0px auto; WIDTH: = 770px; BACKGROUND-REPEAT: repeat-y; HEIGHT: 48px; TEXT-ALIGN: center } #footer .home { COLOR: #ffff00 } #footer H1 { FONT-SIZE: 12px; TEXT-TRANSFORM: uppercase; COLOR: #ffffff; = LINE-HEIGHT: 12px; PADDING-TOP: 7px; FONT-FAMILY: "Trebuchet MS", Arial; = TEXT-DECORATION: none } #footer A { COLOR: #ffffff; TEXT-DECORATION: none } #footer H2 { FONT-SIZE: 8px; COLOR: #9ebed8; LINE-HEIGHT: 9px; PADDING-TOP: 3px; = FONT-FAMILY: "Trebuchet MS", Arial } #footer A:hover { TEXT-DECORATION: underline } #spacer { MARGIN: 0px auto; WIDTH: 770px; HEIGHT: 20px } .spacer2 { MARGIN: 0px auto; HEIGHT: 20px } #google { MARGIN: 0px auto; WIDTH: 770px; TEXT-ALIGN: center } #corpo #tdcontainer #spacer4 { HEIGHT: 20px } #testata #js_clock { MARGIN-TOP: 44px; FONT-WEIGHT: bold; FONT-SIZE: 11px; MARGIN-LEFT: = 90px; WIDTH: 150px; COLOR: #ffffff; FONT-FAMILY: "Trebuchet MS", Arial; = POSITION: absolute; TEXT-ALIGN: left } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/forms.css .contatore { MARGIN-TOP: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: = center } .Paginator { FONT-SIZE: 12px; PADDING-BOTTOM: 2px; MARGIN-LEFT: auto; MARGIN-RIGHT: = auto; PADDING-TOP: 10px } .Paginator A { BORDER-RIGHT: #003178 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #003178 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #003178 1px solid; COLOR: #000000; PADDING-TOP: 1px; BORDER-BOTTOM: = #003178 1px solid; BACKGROUND-COLOR: #e2e2e0; TEXT-DECORATION: none } .pageList .this-page { BORDER-RIGHT: #003178 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #003178 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #003178 1px solid; COLOR: #000000; PADDING-TOP: 1px; BORDER-BOTTOM: = #003178 1px solid; BACKGROUND-COLOR: #e2e2e0; TEXT-DECORATION: none } .Paginator .AtStart { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #fff; = PADDING-BOTTOM: 1px; COLOR: #aaa; MARGIN-RIGHT: 20px; PADDING-TOP: 1px } .Paginator .Prev { BORDER-RIGHT: #003178 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #003178 2px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #003178 2px solid; MARGIN-RIGHT: 12px; PADDING-TOP: 1px; BORDER-BOTTOM: = #003178 2px solid; BACKGROUND-COLOR: #e2e2e0 } .Paginator .break { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; = BORDER-TOP-STYLE: none; PADDING-TOP: 1px; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #e2e2e0; TEXT-DECORATION: = none; BORDER-BOTTOM-STYLE: none } .Paginator .Next { BORDER-RIGHT: #003178 2px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #003178 2px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; MARGIN-LEFT: = 12px; BORDER-LEFT: #003178 2px solid; PADDING-TOP: 1px; BORDER-BOTTOM: = #003178 2px solid; BACKGROUND-COLOR: #e2e2e0 } .Paginator .this-page { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: = 13px; BORDER-LEFT-COLOR: #999; BORDER-BOTTOM-COLOR: #999; = PADDING-BOTTOM: 1px; VERTICAL-ALIGN: middle; COLOR: #062859; = BORDER-TOP-COLOR: #999; PADDING-TOP: 1px; BACKGROUND-COLOR: #e2e2e0; = BORDER-RIGHT-COLOR: #999 } .Paginator A:hover { BORDER-LEFT-COLOR: #003178; BORDER-BOTTOM-COLOR: #003178; COLOR: #fff; = BORDER-TOP-COLOR: #003178; BACKGROUND-COLOR: #003178; TEXT-DECORATION: = none; BORDER-RIGHT-COLOR: #003178 } .contatore DIV.Results { MARGIN-TOP: 4px; MARGIN-BOTTOM: 15px; FONT: 11px/15px Arial, Helvetica; = COLOR: #666666; TEXT-ALIGN: center } .letteredb { MARGIN-TOP: 5px; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: = center } .paginatoredb { FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN-LEFT: auto; MARGIN-RIGHT: = auto; PADDING-TOP: 2px } .paginatoredb A { BORDER-RIGHT: #666666 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #666666 1px solid; MARGIN-TOP: 3px; PADDING-LEFT: 3px; MARGIN-BOTTOM: = 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: #666666 1px solid; COLOR: = #000000; PADDING-TOP: 1px; BORDER-BOTTOM: #666666 1px solid; = BACKGROUND-COLOR: #e2e2e0; TEXT-DECORATION: none } .paginatoredb P { MARGIN-BOTTOM: 8px } .paginatoredb A:hover { BORDER-LEFT-COLOR: #003178; BORDER-BOTTOM-COLOR: #003178; COLOR: #fff; = BORDER-TOP-COLOR: #003178; BACKGROUND-COLOR: #003178; TEXT-DECORATION: = none; BORDER-RIGHT-COLOR: #003178 } DIV.clear { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0px; = FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: 0px; = PADDING-TOP: 0px; HEIGHT: 0px } BR.clear { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0px; = FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: 0px; = PADDING-TOP: 0px; HEIGHT: 0px } DIV.colSx { BORDER-RIGHT: #000000 1px solid; MARGIN-BOTTOM: 10px; BORDER-LEFT: = #000000 1px solid; WIDTH: 118px; BORDER-BOTTOM: #000000 1px solid; = TEXT-ALIGN: left } DIV#formiscriviti { FONT-SIZE: 10px; BACKGROUND: #fff; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } .sceltanewsletter { FONT-SIZE: 10px; LINE-HEIGHT: 10px; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } DIV#formiscriviti DIV#legend { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; BACKGROUND: #dcdcdc; = PADDING-BOTTOM: 0px; PADDING-TOP: 1px } DIV#formiscriviti DIV#legend H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1.1em; PADDING-BOTTOM: 0px; MARGIN: 4px 0px 0px; COLOR: #666666; = PADDING-TOP: 0px } DIV#formiscriviti DIV#legend H3 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 11px; = PADDING-BOTTOM: 0px; MARGIN: 4px 0px 0px; COLOR: #000000; LINE-HEIGHT: = 13px; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet MS", Arial } DIV#formiscriviti DIV#legend H2.padDown { PADDING-BOTTOM: 1px } DIV#formiscriviti DIV#legend INPUT { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #7a7a7a 1px solid; = DISPLAY: block; PADDING-LEFT: 2px; FONT-SIZE: 1.1em; = BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-LEFT: #c2c2c2 1px solid; = WIDTH: 107px; HEIGHT: 1.4em } DIV#formiscriviti DIV#legend INPUT.inviaiscrizione { BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; = FONT-SIZE: 1.3em; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 10px auto 5px; WIDTH: 80px; COLOR: #333; LINE-HEIGHT: 1.6em; HEIGHT: = 1.6em; TEXT-ALIGN: center; BORDER-RIGHT-WIDTH: 0px } #sceglinews { FONT-SIZE: 12px; PADDING-BOTTOM: 2px; MARGIN: 10px auto 5px; = TEXT-TRANSFORM: uppercase; WIDTH: 100%; COLOR: #ffffff; LINE-HEIGHT: = 13px; PADDING-TOP: 3px; FONT-FAMILY: "Trebuchet MS", Arial; = BACKGROUND-COLOR: #003076; TEXT-ALIGN: center } #sceglinews A { COLOR: #ffffff; TEXT-DECORATION: none } #sceglinews A:hover { COLOR: #ffffff; TEXT-DECORATION: underline } DIV.colSx2 { MARGIN-BOTTOM: 10px; WIDTH: 113px; TEXT-ALIGN: left } DIV#formiscriviti2 { FONT-SIZE: 9px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; = BACKGROUND-COLOR: #ffffff } DIV#formiscriviti2 DIV#legend2 { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1px; BACKGROUND-COLOR: #ffffff } DIV#formiscriviti2 DIV#legend2 H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1.1em; PADDING-BOTTOM: 0px; MARGIN: 4px 0px 2px; COLOR: #000000; = PADDING-TOP: 0px } DIV#formiscriviti2 DIV#legend2 H3 { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 11px; = PADDING-BOTTOM: 0px; MARGIN: 4px 0px 0px; COLOR: #000000; LINE-HEIGHT: = 13px; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet MS", Arial } DIV#formiscriviti2 DIV#legend2 H2.padDown { PADDING-BOTTOM: 1px } DIV#formiscriviti2 DIV#legend2 INPUT.campi_testo { BORDER-RIGHT: #333333 1px solid; BORDER-TOP: #000000 1px solid; = DISPLAY: block; PADDING-LEFT: 2px; FONT-SIZE: 1.1em; MARGIN: 0px; = BORDER-LEFT: #999999 1px solid; WIDTH: 95px; BORDER-BOTTOM: #999999 1px = solid; HEIGHT: 1.4em } DIV#formiscriviti2 DIV#legend2 INPUT.inviaiscrizione2 { BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; = FONT-SIZE: 15px; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 10px auto 5px; WIDTH: 105px; COLOR: #333; LINE-HEIGHT: 1.6em; HEIGHT: = 1.6em; TEXT-ALIGN: center; BORDER-RIGHT-WIDTH: 0px } DIV.cercatuaaz { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = MARGIN-TOP: 10px; MARGIN-LEFT: auto; BORDER-LEFT: #000000 1px solid; = WIDTH: 400px; MARGIN-RIGHT: auto; BORDER-BOTTOM: #000000 1px solid; = BACKGROUND-COLOR: #ccccc8; TEXT-ALIGN: left } DIV#formyaz { FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; = TEXT-ALIGN: center } DIV#formyaz DIV#legend3 { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1px } DIV#formyaz DIV#legend3 H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 1.1em; PADDING-BOTTOM: 0px; MARGIN: 4px 0px 0px; COLOR: #666666; = PADDING-TOP: 0px; TEXT-ALIGN: center } DIV#formyaz DIV#legend3 INPUT { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #7a7a7a 1px solid; = PADDING-LEFT: 2px; FONT-SIZE: 1.1em; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 0px; BORDER-LEFT: #c2c2c2 1px solid; WIDTH: 200px; HEIGHT: 1.4em } DIV#formyaz DIV#legend3 INPUT.inviaiscrizione { BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: bold; BORDER-LEFT-WIDTH: 0px; = FONT-SIZE: 1.3em; BACKGROUND: #fff; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 10px auto 5px; WIDTH: 80px; COLOR: #333; LINE-HEIGHT: 1.6em; HEIGHT: = 1.6em; TEXT-ALIGN: center; BORDER-RIGHT-WIDTH: 0px } DIV.colgoogle { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = FONT-SIZE: 10px; MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 3px; BORDER-LEFT: = #000000 1px solid; WIDTH: 118px; BORDER-BOTTOM: #000000 1px solid; = FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: #ffffff; = TEXT-ALIGN: left } DIV.buttontemp { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10px; MARGIN-BOTTOM: = 10px; PADDING-BOTTOM: 0px; WIDTH: 120px; PADDING-TOP: 0px; = BACKGROUND-COLOR: #ffffff } .sitogoogle1 { TEXT-ALIGN: center } .sitogoogle1 A { COLOR: #0000cc; TEXT-DECORATION: none } .sitogoogle1 A:hover { TEXT-DECORATION: underline } DIV#formiscrivitigoogle { FONT-SIZE: 10px; BACKGROUND: #fff; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } DIV#formiscrivitigoogle DIV#legend4 { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1px; BACKGROUND-COLOR: #ffffff } #legend4 IMG { PADDING-LEFT: 17px } DIV#formiscrivitigoogle DIV#legend4 INPUT.textbox { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #7a7a7a 1px solid; = DISPLAY: block; PADDING-LEFT: 2px; FONT-SIZE: 1.1em; = BORDER-BOTTOM-WIDTH: 0px; MARGIN: 0px; BORDER-LEFT: #c2c2c2 1px solid; = WIDTH: 108px; HEIGHT: 1.4em } DIV.colgoogle2 { BORDER-RIGHT: #000000 1px inset; BORDER-TOP: #000000 1px solid; = MARGIN-TOP: 15px; FONT-SIZE: 10px; MARGIN-BOTTOM: 10px; PADDING-BOTTOM: = 3px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 1px solid; WIDTH: 102px; = BORDER-BOTTOM: #000000 1px inset; FONT-FAMILY: "Trebuchet MS", Arial; = BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: left } DIV#formiscrivitigoogle2 { FONT-SIZE: 10px; BACKGROUND: #fff; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } DIV#formiscrivitigoogle2 DIV#legend5 { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1px; BACKGROUND-COLOR: #ffffff } #legend5 IMG { PADDING-LEFT: 15px } DIV#formiscrivitigoogle2 DIV#legend5 INPUT.textbox { BORDER-RIGHT: #c2c2c2 1px solid; BORDER-TOP: #7a7a7a 1px solid; = DISPLAY: inline; FONT-SIZE: 1.1em; BORDER-BOTTOM-WIDTH: 0px; MARGIN: = 0px; BORDER-LEFT: #c2c2c2 1px solid; WIDTH: 93px; HEIGHT: 1.4em } .sitogoogle2 { TEXT-ALIGN: center } .sitogoogle2 A { COLOR: #0000cc; TEXT-DECORATION: none } .sitogoogle2 A:hover { TEXT-DECORATION: underline } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/news.css #firefox { MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; TEXT-ALIGN: center } .adverts46860 { PADDING-BOTTOM: 30px; PADDING-TOP: 20px; HEIGHT: 60px } .banner46860 { MARGIN-LEFT: -3px; POSITION: absolute } .dallanewsletter { PADDING-LEFT: 5px; FONT-SIZE: 14px; MARGIN-BOTTOM: 10px; COLOR: = #ffffff; FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: #003178 } .testatacategoria { BACKGROUND-COLOR: #003178 } .testatadalleregioni { MARGIN-TOP: 30px; MARGIN-BOTTOM: 5px; BACKGROUND-COLOR: #003178 } .strisciasopranews { MARGIN-TOP: 5px; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 18px } .txtcategoria { FONT-WEIGHT: bold; FONT-SIZE: 14px; FLOAT: left; TEXT-TRANSFORM: = uppercase; WIDTH: 310px; FONT-FAMILY: "Trebuchet MS", Arial } .printmail { FONT-WEIGHT: bold; FONT-SIZE: 9px; FLOAT: right; MARGIN-BOTTOM: -3px; = WIDTH: 120px; LINE-HEIGHT: 9px; FONT-FAMILY: "Trebuchet MS", Arial; = HEIGHT: 14px; TEXT-ALIGN: right } .printmail IMG { PADDING-RIGHT: 1px } .printmail A { COLOR: #000000; TEXT-DECORATION: none } .printmail A:hover { TEXT-DECORATION: underline } .printmail #mail { PADDING-LEFT: 10px } .Nocchiello { FONT-SIZE: 15px; LINE-HEIGHT: 18px; PADDING-TOP: 5px; FONT-FAMILY: = "Times New Roman", Times, serif } .Ntitolo { FONT-WEIGHT: bold; FONT-SIZE: 20px; COLOR: #003178; LINE-HEIGHT: 21px; = FONT-FAMILY: "Trebuchet MS", Arial; LETTER-SPACING: -0.05em } .NocchielloAN { FONT-SIZE: 14px; LINE-HEIGHT: 14px; FONT-FAMILY: "Times New Roman", = Times, serif } .NtitoloAN { FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #003178; LINE-HEIGHT: 19px; = FONT-FAMILY: "Trebuchet MS", Arial; LETTER-SPACING: -0.05em } .NtitoloAN A { DISPLAY: block; COLOR: #002f74; TEXT-DECORATION: none } .NtitoloAN A:hover { BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none } .NtitoloREG { FONT-WEIGHT: bold; FONT-SIZE: 16px; COLOR: #003178; LINE-HEIGHT: 16px; = FONT-FAMILY: "Trebuchet MS", Arial } .NtitoloREG A { DISPLAY: block; COLOR: #002f74; TEXT-DECORATION: none } .NtitoloREG A:hover { BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none } .toolsAN { MARGIN-TOP: 2px; FONT-WEIGHT: bold; FONT-SIZE: 10px; MARGIN-BOTTOM: = 15px; PADDING-BOTTOM: 2px; COLOR: #5a5a56; LINE-HEIGHT: 11px; = FONT-FAMILY: "Trebuchet MS", Arial } .toolsREG { MARGIN-TOP: 2px; FONT-WEIGHT: bold; FONT-SIZE: 10px; MARGIN-BOTTOM: = 1px; PADDING-BOTTOM: 2px; COLOR: #5a5a56; LINE-HEIGHT: 11px; = BORDER-BOTTOM: #666666 1px solid; FONT-FAMILY: "Trebuchet MS", Arial } #corpo #tdcontainer .boxregioni { MARGIN-BOTTOM: 20px } .catAN { FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #002f74; LINE-HEIGHT: 11px; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } .catREGIONI { FONT-SIZE: 9px; TEXT-TRANSFORM: uppercase; LINE-HEIGHT: 11px; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } .catREGIONI A { COLOR: #333333; TEXT-DECORATION: none } .catREGIONI A:hover { TEXT-DECORATION: underline } #contenutonotiziafoto { MARGIN-TOP: 5px } #contenutonotiziafoto .testonotiziafoto { FONT-SIZE: 0.8em; LINE-HEIGHT: 1.1em; FONT-FAMILY: "Trebuchet MS", = Arial; TEXT-ALIGN: left } .blockofoto { MARGIN-TOP: 2px; FLOAT: left; MARGIN-BOTTOM: 6px; MARGIN-RIGHT: 10px } .titolopinione { MARGIN-TOP: 10px; FONT-WEIGHT: bold; FONT-SIZE: 20px; COLOR: #003178; = LINE-HEIGHT: 21px; FONT-FAMILY: "Trebuchet MS", Arial; LETTER-SPACING: = -0.05em } .testopinione { FONT-SIZE: 0.8em; LINE-HEIGHT: 1.1em; FONT-STYLE: italic; FONT-FAMILY: = "Trebuchet MS", Arial; TEXT-ALIGN: left } .firmaopinione { MARGIN-TOP: 5px; FONT-SIZE: 12px; LINE-HEIGHT: 14px; FONT-FAMILY: = "Trebuchet MS", Arial; TEXT-ALIGN: right } .blockofoto IMG { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid } .blockofoto .blockodida { MARGIN-TOP: 4px; FONT-SIZE: 11px; PADDING-BOTTOM: 1px; LINE-HEIGHT: = 12px; BORDER-BOTTOM: #999999 1px solid; FONT-FAMILY: Arial, Helvetica, = sans-serif; TEXT-DECORATION: none } .Nlink { BACKGROUND-POSITION: 50% top; MARGIN-TOP: 8px; FONT-WEIGHT: bold; = FONT-SIZE: 12px; BACKGROUND-IMAGE: url(img/css-dotted.gif); = PADDING-BOTTOM: 10px; PADDING-TOP: 3px; BACKGROUND-REPEAT: repeat-x; = FONT-FAMILY: "Trebuchet MS", Arial } .Nlink A { COLOR: #000000; TEXT-DECORATION: none } .Nlink A:hover { COLOR: #000000; TEXT-DECORATION: underline } .Nlink IMG { PADDING-RIGHT: 5px; PADDING-LEFT: 2px; FLOAT: left; PADDING-BOTTOM: = 2px; PADDING-TOP: 0px } .testatinaaltrenews { MARGIN-TOP: 30px; BACKGROUND-COLOR: #2d546c } #focus H1 { FONT-SIZE: 12px; MARGIN-BOTTOM: 3px; COLOR: #000000; LINE-HEIGHT: 13px; = BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: "Trebuchet MS", Arial } #focus A { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #003076; LINE-HEIGHT: 15px; = FONT-FAMILY: "Trebuchet MS", Arial; TEXT-DECORATION: none } #focus A:hover { TEXT-DECORATION: underline } #focus IMG { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid } .fotinanews { FLOAT: left; WIDTH: 100px; MARGIN-RIGHT: 5px; HEIGHT: 70px; TEXT-ALIGN: = right } #focus { MARGIN-TOP: 20px; POSITION: relative; HEIGHT: 72px } .focusfoto1 { FLOAT: left; WIDTH: 227px; HEIGHT: 72px } .focusfoto2 { FLOAT: right; WIDTH: 227px; HEIGHT: 72px } #focustext { MARGIN-TOP: 20px; POSITION: relative; HEIGHT: 72px } .focustextcont { FLOAT: left; WIDTH: 149px; MARGIN-RIGHT: 8px } .focustextcont2 { FLOAT: right; WIDTH: 148px } #focustext H1 { FONT-SIZE: 12px; MARGIN-BOTTOM: 3px; COLOR: #000000; LINE-HEIGHT: 13px; = BORDER-BOTTOM: #000000 1px solid; FONT-FAMILY: "Trebuchet MS", Arial } #focustext A { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #003076; LINE-HEIGHT: 15px; = FONT-FAMILY: "Trebuchet MS", Arial; TEXT-DECORATION: none } #focustext A:hover { TEXT-DECORATION: underline } #menudx #altrenotizietit { MARGIN-TOP: 25px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: = 12px; PADDING-BOTTOM: 3px; MARGIN-LEFT: 0px; COLOR: #000000; = LINE-HEIGHT: 12px; MARGIN-RIGHT: 12px; PADDING-TOP: 3px; FONT-FAMILY: = "Trebuchet MS", Arial; BACKGROUND-COLOR: #ffffff; TEXT-ALIGN: center } #menudx #altrenotizie { MARGIN-TOP: 5px; FONT-WEIGHT: bold; FONT-SIZE: 11px; MARGIN-LEFT: 4px; = COLOR: #000000; LINE-HEIGHT: 12px; MARGIN-RIGHT: 17px; FONT-FAMILY: = Arial, Helvetica, sans-serif; TEXT-ALIGN: left } #altrenotizie A { COLOR: #000000; TEXT-DECORATION: none } #altrenotizie A:hover { COLOR: #ffffff; TEXT-DECORATION: underline } #altrenotizie H1 { FONT-SIZE: 10px; MARGIN-BOTTOM: 10px; COLOR: #37536b; FONT-FAMILY: = "Trebuchet MS", Arial } #menudx #tuttealtrenews { MARGIN-TOP: 12px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: = 3px; COLOR: #000000; LINE-HEIGHT: 15px; MARGIN-RIGHT: 12px; PADDING-TOP: = 3px; FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: #ffffff; = TEXT-ALIGN: center } #tuttealtrenews A { COLOR: #000000; TEXT-DECORATION: none } #tuttealtrenews A:hover { TEXT-DECORATION: underline } .NEWSaltrotitolo { FONT-SIZE: 17px; COLOR: #2d546c; LINE-HEIGHT: 18px; PADDING-TOP: 5px; = FONT-FAMILY: "Trebuchet MS", Arial } #testatinaopinione { MARGIN-TOP: 20px; FONT-WEIGHT: bold; FONT-SIZE: 14px; BACKGROUND-IMAGE: = url(img/lopinione.gif); MARGIN-BOTTOM: -70px; WIDTH: 113px; COLOR: = #002459; PADDING-TOP: 70px; BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: = Tahoma; HEIGHT: 88px; TEXT-ALIGN: center } .titoloopinione { PADDING-RIGHT: 15px; MARGIN-TOP: 3px; PADDING-LEFT: 5px; FONT-WEIGHT: = bold; FONT-SIZE: 12px; LINE-HEIGHT: 13px; FONT-FAMILY: "Trebuchet MS", = Arial } .titoloopinione A { COLOR: #000000; TEXT-DECORATION: none } .titoloopinione A:hover { COLOR: #ffffff; TEXT-DECORATION: underline } .titolocarica { PADDING-RIGHT: 15px; MARGIN-TOP: 5px; PADDING-LEFT: 5px; FONT-SIZE: = 10px; COLOR: #ffffff; LINE-HEIGHT: 11px; FONT-FAMILY: Arial, Helvetica, = sans-serif; TEXT-ALIGN: right } .NEWSaltrotitolo A { COLOR: #2d546c; TEXT-DECORATION: none } .NEWSaltrotitolo A:hover { COLOR: #2d546c; TEXT-DECORATION: underline } .orarioaltranews { PADDING-RIGHT: 3px; MARGIN-TOP: 2px; PADDING-LEFT: 2px; FONT-SIZE: = 11px; FLOAT: left; PADDING-BOTTOM: 2px; WIDTH: 50px; COLOR: #333333; = LINE-HEIGHT: 10px; MARGIN-RIGHT: 3px; PADDING-TOP: 2px; FONT-FAMILY: = "Trebuchet MS", Arial; BACKGROUND-COLOR: #dbdbdb; TEXT-ALIGN: right } .pdb A { MARGIN-TOP: 10px } .plinkutil A { MARGIN-TOP: 10px; PADDING-BOTTOM: 4px; COLOR: #ffffff; LINE-HEIGHT: = 16px; PADDING-TOP: 4px; BACKGROUND-COLOR: #37536b } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/db.css .categoriadb { PADDING-LEFT: 5px; FONT-SIZE: 14px; MARGIN-BOTTOM: 10px; COLOR: = #ffffff; FONT-FAMILY: "Trebuchet MS", Arial; BACKGROUND-COLOR: #003178 } .results1 { MARGIN-TOP: 20px; PADDING-LEFT: 5px; FONT-SIZE: 14px; MARGIN-BOTTOM: = 10px; COLOR: #ffffff; FONT-FAMILY: "Trebuchet MS", Arial; = BACKGROUND-COLOR: #003178 } .results1txt { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #003178; FONT-FAMILY: = "Trebuchet MS", Arial } .results1txtgr { FONT-WEIGHT: normal; COLOR: #333333 } .results1txt UL { FONT-SIZE: 12px; MARGIN-BOTTOM: 5px; COLOR: #000000; LINE-HEIGHT: 12px; = FONT-FAMILY: "Trebuchet MS", Arial; LIST-STYLE-TYPE: none } .results1txt LI { PADDING-LEFT: 11px; BACKGROUND-IMAGE: url(img/ularrow.gif); = MARGIN-LEFT: 15px; BACKGROUND-REPEAT: no-repeat } .results1txt A { DISPLAY: block; COLOR: #003178; TEXT-DECORATION: none } .results1txt A:hover { COLOR: #003178; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none } .introaz { FONT-SIZE: 14px; LINE-HEIGHT: 15px; FONT-FAMILY: "Trebuchet MS", Arial } .introaz A { FONT-WEIGHT: bold; COLOR: #000000; TEXT-DECORATION: underline } .introaz A:hover { COLOR: #003178 } .formcercaaz { FONT-SIZE: 14px; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: = center } .publidb { MARGIN-LEFT: -2px; POSITION: absolute } .spacerpub { MARGIN-TOP: 25px; MARGIN-BOTTOM: 30px; HEIGHT: 55px } .promopubdb { MARGIN-TOP: 1px; FONT-SIZE: 9px; FONT-FAMILY: Arial, Helvetica, = sans-serif; TEXT-ALIGN: center } .cercastar { MARGIN-TOP: 3px; FONT-SIZE: 12px; FLOAT: left; LINE-HEIGHT: 13px; = FONT-FAMILY: "Trebuchet MS", Arial } .findstar { FONT-FAMILY: Arial, Helvetica, sans-serif; POSITION: relative; HEIGHT: = 50px } .star { FLOAT: left; MARGIN-RIGHT: 15px } .azienda { MARGIN-BOTTOM: 15px } .toolsdb { MARGIN-TOP: 2px; FONT-SIZE: 11px; MARGIN-BOTTOM: 15px; PADDING-BOTTOM: = 2px; COLOR: #333333; LINE-HEIGHT: 12px; FONT-FAMILY: "Trebuchet MS", = Arial } .toolsdb A { FONT-WEIGHT: bold; COLOR: #000000; TEXT-DECORATION: none } .toolsdb A:hover { COLOR: #ffff00; BACKGROUND-COLOR: #003178 } .azienda .bannerazdb { FLOAT: right; WIDTH: 131px; HEIGHT: 44px } .azienda .testataazienda { =09 } .testataazienda .commentoaz { PADDING-LEFT: 10px; FONT-SIZE: 11px; MARGIN-BOTTOM: 3px; WIDTH: 310px; = COLOR: #003178; LINE-HEIGHT: 12px; FONT-FAMILY: Geneva, Arial, = Helvetica, sans-serif } .bannerazdb IMG { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid } .toolsdb P { PADDING-LEFT: 2px; MARGIN-BOTTOM: 1px; PADDING-BOTTOM: 1px; = MARGIN-LEFT: 10px; BORDER-LEFT: #000000 1px solid; PADDING-TOP: 1px; = BACKGROUND-COLOR: #ffffff } .nomeazienda { FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #003178; LINE-HEIGHT: 19px; = FONT-FAMILY: "Trebuchet MS", Arial; LETTER-SPACING: -0.05em } .nomeazienda IMG { MARGIN-LEFT: -1px } .results1txt LI A { DISPLAY: inline } .results1txt LI A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; TEXT-DECORATION: = underline } .linkutilidb { BORDER-RIGHT: #cacac8 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #cacac8 1px solid; PADDING-LEFT: 3px; MARGIN-BOTTOM: 15px; = PADDING-BOTTOM: 3px; BORDER-LEFT: #cacac8 1px solid; PADDING-TOP: 3px; = BORDER-BOTTOM: #cacac8 1px solid } .linklink { FONT-WEIGHT: bold; FONT-SIZE: 10px; PADDING-BOTTOM: 1px; LINE-HEIGHT: = 11px; PADDING-TOP: 1px; FONT-FAMILY: Arial, Helvetica, sans-serif; = TEXT-ALIGN: center } .commentolinkdb { MARGIN-TOP: 2px; FONT-SIZE: 12px; COLOR: #333333; LINE-HEIGHT: 13px; = FONT-FAMILY: "Trebuchet MS", Arial } .bannerlink IMG { FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=3D50); = -moz-opacity: 0.5 } .bannerlink:hover IMG { FILTER: progid:DXImageTransform.Microsoft.Alpha(opacity=3D100); = -moz-opacity: 1 } .bannerlink IMG { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = MARGIN-TOP: 2px; MARGIN-BOTTOM: 5px; BORDER-LEFT: #000000 1px solid; = MARGIN-RIGHT: 5px; BORDER-BOTTOM: #000000 1px solid } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/WebResource.axd?d=uxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlmwed339QByBb7LgRMih8p0k4kaqYR1SPuvqkvg2&t=633161396082478735 .ajax__calendar_container { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 11px; PADDING-BOTTOM: = 4px; WIDTH: 170px; CURSOR: default; PADDING-TOP: 4px; FONT-FAMILY: = tahoma,verdana,helvetica; POSITION: absolute; TEXT-ALIGN: center } .ajax__calendar_body { MARGIN: auto; OVERFLOW: hidden; WIDTH: 170px; POSITION: relative; = HEIGHT: 139px } .ajax__calendar_days { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_months { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_years { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_container TABLE { FONT-SIZE: 11px } .ajax__calendar_header { WIDTH: 100%; HEIGHT: 20px } .ajax__calendar_prev { BACKGROUND-POSITION: 50% 50%; FLOAT: left; BACKGROUND-IMAGE: = url(WebResource.axd?d=3Duxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlm= wed339QByBb7LgRy5hXIXa90gE_VZS-yBuCig2&t=3D633161396082478735); WIDTH: = 15px; CURSOR: pointer; BACKGROUND-REPEAT: no-repeat; HEIGHT: 15px } .ajax__calendar_next { BACKGROUND-POSITION: 50% 50%; FLOAT: right; BACKGROUND-IMAGE: = url(WebResource.axd?d=3Duxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlm= wed339QByBb7LgR2tjeayCT9wyrpQe4g1IelA2&t=3D633161396082478735); WIDTH: = 15px; CURSOR: pointer; BACKGROUND-REPEAT: no-repeat; HEIGHT: 15px } .ajax__calendar_title { FONT-WEIGHT: bold; CURSOR: pointer } .ajax__calendar_footer { HEIGHT: 15px } .ajax__calendar_today { CURSOR: pointer; PADDING-TOP: 3px } .ajax__calendar_dayname { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; WIDTH: = 17px; PADDING-TOP: 0px; HEIGHT: 17px; TEXT-ALIGN: right } .ajax__calendar_day { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: pointer; PADDING-TOP: 0px; HEIGHT: 17px; TEXT-ALIGN: right } .ajax__calendar_month { OVERFLOW: hidden; WIDTH: 40px; CURSOR: pointer; HEIGHT: 44px; = TEXT-ALIGN: center } .ajax__calendar_year { OVERFLOW: hidden; WIDTH: 40px; CURSOR: pointer; HEIGHT: 44px; = TEXT-ALIGN: center } .ajax__calendar .ajax__calendar_container { BORDER-RIGHT: #646464 1px solid; BORDER-TOP: #646464 1px solid; = BORDER-LEFT: #646464 1px solid; COLOR: #000000; BORDER-BOTTOM: #646464 = 1px solid; BACKGROUND-COLOR: #ffffff } .ajax__calendar .ajax__calendar_footer { BORDER-TOP: #f5f5f5 1px solid } .ajax__calendar .ajax__calendar_dayname { BORDER-BOTTOM: #f5f5f5 1px solid } .ajax__calendar .ajax__calendar_day { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_month { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_year { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_active .ajax__calendar_day { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_active .ajax__calendar_month { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_active .ajax__calendar_year { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_other .ajax__calendar_day { BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; COLOR: = #646464; BORDER-TOP-COLOR: #ffffff; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #ffffff } .ajax__calendar .ajax__calendar_other .ajax__calendar_year { BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; COLOR: = #646464; BORDER-TOP-COLOR: #ffffff; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #ffffff } .ajax__calendar .ajax__calendar_hover .ajax__calendar_day { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_month { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_year { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_title { COLOR: #0066cc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_today { COLOR: #0066cc } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/WebResource.axd?d=uxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlmwed339QByBb7LgRMih8p0k4kaqYR1SPuvqkvg2&t=633161396082478735 .ajax__calendar_container { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: 11px; PADDING-BOTTOM: = 4px; WIDTH: 170px; CURSOR: default; PADDING-TOP: 4px; FONT-FAMILY: = tahoma,verdana,helvetica; POSITION: absolute; TEXT-ALIGN: center } .ajax__calendar_body { MARGIN: auto; OVERFLOW: hidden; WIDTH: 170px; POSITION: relative; = HEIGHT: 139px } .ajax__calendar_days { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_months { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_years { LEFT: 0px; MARGIN: auto; WIDTH: 170px; POSITION: absolute; TOP: 0px; = HEIGHT: 139px; TEXT-ALIGN: center } .ajax__calendar_container TABLE { FONT-SIZE: 11px } .ajax__calendar_header { WIDTH: 100%; HEIGHT: 20px } .ajax__calendar_prev { BACKGROUND-POSITION: 50% 50%; FLOAT: left; BACKGROUND-IMAGE: = url(WebResource.axd?d=3Duxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlm= wed339QByBb7LgRy5hXIXa90gE_VZS-yBuCig2&t=3D633161396082478735); WIDTH: = 15px; CURSOR: pointer; BACKGROUND-REPEAT: no-repeat; HEIGHT: 15px } .ajax__calendar_next { BACKGROUND-POSITION: 50% 50%; FLOAT: right; BACKGROUND-IMAGE: = url(WebResource.axd?d=3Duxxi_6qEh8EjYl59J1mSERSc5czSggo7Mc3op3QnSYGGkWXlm= wed339QByBb7LgR2tjeayCT9wyrpQe4g1IelA2&t=3D633161396082478735); WIDTH: = 15px; CURSOR: pointer; BACKGROUND-REPEAT: no-repeat; HEIGHT: 15px } .ajax__calendar_title { FONT-WEIGHT: bold; CURSOR: pointer } .ajax__calendar_footer { HEIGHT: 15px } .ajax__calendar_today { CURSOR: pointer; PADDING-TOP: 3px } .ajax__calendar_dayname { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; WIDTH: = 17px; PADDING-TOP: 0px; HEIGHT: 17px; TEXT-ALIGN: right } .ajax__calendar_day { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; WIDTH: = 18px; CURSOR: pointer; PADDING-TOP: 0px; HEIGHT: 17px; TEXT-ALIGN: right } .ajax__calendar_month { OVERFLOW: hidden; WIDTH: 40px; CURSOR: pointer; HEIGHT: 44px; = TEXT-ALIGN: center } .ajax__calendar_year { OVERFLOW: hidden; WIDTH: 40px; CURSOR: pointer; HEIGHT: 44px; = TEXT-ALIGN: center } .ajax__calendar .ajax__calendar_container { BORDER-RIGHT: #646464 1px solid; BORDER-TOP: #646464 1px solid; = BORDER-LEFT: #646464 1px solid; COLOR: #000000; BORDER-BOTTOM: #646464 = 1px solid; BACKGROUND-COLOR: #ffffff } .ajax__calendar .ajax__calendar_footer { BORDER-TOP: #f5f5f5 1px solid } .ajax__calendar .ajax__calendar_dayname { BORDER-BOTTOM: #f5f5f5 1px solid } .ajax__calendar .ajax__calendar_day { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_month { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_year { BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; = BORDER-LEFT: #ffffff 1px solid; BORDER-BOTTOM: #ffffff 1px solid } .ajax__calendar .ajax__calendar_active .ajax__calendar_day { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_active .ajax__calendar_month { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_active .ajax__calendar_year { BORDER-LEFT-COLOR: #0066cc; BORDER-BOTTOM-COLOR: #0066cc; COLOR: = #0066cc; BORDER-TOP-COLOR: #0066cc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #0066cc } .ajax__calendar .ajax__calendar_other .ajax__calendar_day { BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; COLOR: = #646464; BORDER-TOP-COLOR: #ffffff; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #ffffff } .ajax__calendar .ajax__calendar_other .ajax__calendar_year { BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; COLOR: = #646464; BORDER-TOP-COLOR: #ffffff; BACKGROUND-COLOR: #ffffff; = BORDER-RIGHT-COLOR: #ffffff } .ajax__calendar .ajax__calendar_hover .ajax__calendar_day { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_month { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_year { BORDER-LEFT-COLOR: #daf2fc; BORDER-BOTTOM-COLOR: #daf2fc; COLOR: = #0066cc; BORDER-TOP-COLOR: #daf2fc; BACKGROUND-COLOR: #edf9ff; = BORDER-RIGHT-COLOR: #daf2fc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_title { COLOR: #0066cc } .ajax__calendar .ajax__calendar_hover .ajax__calendar_today { COLOR: #0066cc } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/js/fade.js function ShowHide(id) { var itm =3D null; if (document.getElementById) { itm =3D document.getElementById(id); } else if (document.all){ itm =3D document.all[id]; } else if (document.layers){ itm =3D document.layers[id]; } =09 if (!itm) { // lascia inalterato } else if (itm.style) { if (itm.style.display =3D=3D "none") { itm.style.display =3D ""; } else { itm.style.display =3D "none"; } } else { itm.visibility =3D "show"; } } function MM_preloadImages() { //v3.0 var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array(); var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; = i0&&parent.frames.length) { d=3Dparent.frames[n.substring(p+1)].document; n=3Dn.substring(0,p);} if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for = (i=3D0;!x&&i 0)) { theForm.action =3D options.actionUrl; } if (options.trackFocus) { var lastFocus =3D theForm.elements["__LASTFOCUS"]; if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D = null)) { if (typeof(document.activeElement) =3D=3D "undefined") { lastFocus.value =3D options.eventTarget; } else { var active =3D document.activeElement; if ((typeof(active) !=3D "undefined") && (active = !=3D null)) { if ((typeof(active.id) !=3D "undefined") && = (active.id !=3D null) && (active.id.length > 0)) { lastFocus.value =3D active.id; } else if (typeof(active.name) !=3D "undefined") { lastFocus.value =3D active.name; } } } } } } if (options.clientSubmit) { __doPostBack(options.eventTarget, options.eventArgument); } } var __pendingCallbacks =3D new Array(); var __synchronousCallBackIndex =3D -1; function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, = context, errorCallback, useAsync) { var postData =3D __theFormPostData + "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) = + "&__CALLBACKPARAM=3D" + = WebForm_EncodeCallback(eventArgument); if (theForm["__EVENTVALIDATION"]) { postData +=3D "&__EVENTVALIDATION=3D" + = WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value); } var xmlRequest,e; try { xmlRequest =3D new XMLHttpRequest(); } catch(e) { try { xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { } } var setRequestHeaderMethodExists =3D true; try { setRequestHeaderMethodExists =3D (xmlRequest && = xmlRequest.setRequestHeader); } catch(e) {} var callback =3D new Object(); callback.eventCallback =3D eventCallback; callback.context =3D context; callback.errorCallback =3D errorCallback; callback.async =3D useAsync; var callbackIndex =3D = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback); if (!useAsync) { if (__synchronousCallBackIndex !=3D -1) { __pendingCallbacks[__synchronousCallBackIndex] =3D null; } __synchronousCallBackIndex =3D callbackIndex; } if (setRequestHeaderMethodExists) { xmlRequest.onreadystatechange =3D WebForm_CallbackComplete; callback.xmlRequest =3D xmlRequest; xmlRequest.open("POST", theForm.action, true); xmlRequest.setRequestHeader("Content-Type", = "application/x-www-form-urlencoded"); xmlRequest.send(postData); return; } callback.xmlRequest =3D new Object(); var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex; var xmlRequestFrame =3D document.frames[callbackFrameID]; if (!xmlRequestFrame) { xmlRequestFrame =3D document.createElement("IFRAME"); xmlRequestFrame.width =3D "1"; xmlRequestFrame.height =3D "1"; xmlRequestFrame.frameBorder =3D "0"; xmlRequestFrame.id =3D callbackFrameID; xmlRequestFrame.name =3D callbackFrameID; xmlRequestFrame.style.position =3D "absolute"; xmlRequestFrame.style.top =3D "-100px" xmlRequestFrame.style.left =3D "-100px"; try { if (callBackFrameUrl) { xmlRequestFrame.src =3D callBackFrameUrl; } } catch(e) {} document.body.appendChild(xmlRequestFrame); } var interval =3D window.setInterval(function() { xmlRequestFrame =3D document.frames[callbackFrameID]; if (xmlRequestFrame && xmlRequestFrame.document) { window.clearInterval(interval); xmlRequestFrame.document.write(""); xmlRequestFrame.document.close(); xmlRequestFrame.document.write('
'); xmlRequestFrame.document.close(); xmlRequestFrame.document.forms[0].action =3D theForm.action; var count =3D __theFormPostCollection.length; var element; for (var i =3D 0; i < count; i++) { element =3D __theFormPostCollection[i]; if (element) { var fieldElement =3D = xmlRequestFrame.document.createElement("INPUT"); fieldElement.type =3D "hidden"; fieldElement.name =3D element.name; fieldElement.value =3D element.value; = xmlRequestFrame.document.forms[0].appendChild(fieldElement); } } var callbackIdFieldElement =3D = xmlRequestFrame.document.createElement("INPUT"); callbackIdFieldElement.type =3D "hidden"; callbackIdFieldElement.name =3D "__CALLBACKID"; callbackIdFieldElement.value =3D eventTarget; = xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement); var callbackParamFieldElement =3D = xmlRequestFrame.document.createElement("INPUT"); callbackParamFieldElement.type =3D "hidden"; callbackParamFieldElement.name =3D "__CALLBACKPARAM"; callbackParamFieldElement.value =3D eventArgument; = xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);= if (theForm["__EVENTVALIDATION"]) { var callbackValidationFieldElement =3D = xmlRequestFrame.document.createElement("INPUT"); callbackValidationFieldElement.type =3D "hidden"; callbackValidationFieldElement.name =3D = "__EVENTVALIDATION"; callbackValidationFieldElement.value =3D = theForm["__EVENTVALIDATION"].value; = xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem= ent); } var callbackIndexFieldElement =3D = xmlRequestFrame.document.createElement("INPUT"); callbackIndexFieldElement.type =3D "hidden"; callbackIndexFieldElement.name =3D "__CALLBACKINDEX"; callbackIndexFieldElement.value =3D callbackIndex; = xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);= xmlRequestFrame.document.forms[0].submit(); } }, 10); } function WebForm_CallbackComplete() { for (i =3D 0; i < __pendingCallbacks.length; i++) { callbackObject =3D __pendingCallbacks[i]; if (callbackObject && callbackObject.xmlRequest && = (callbackObject.xmlRequest.readyState =3D=3D 4)) { WebForm_ExecuteCallback(callbackObject); if (!__pendingCallbacks[i].async) { __synchronousCallBackIndex =3D -1; } __pendingCallbacks[i] =3D null; var callbackFrameID =3D "__CALLBACKFRAME" + i; var xmlRequestFrame =3D = document.getElementById(callbackFrameID); if (xmlRequestFrame) { xmlRequestFrame.parentNode.removeChild(xmlRequestFrame); } } } } function WebForm_ExecuteCallback(callbackObject) { var response =3D callbackObject.xmlRequest.responseText; if (response.charAt(0) =3D=3D "s") { if ((typeof(callbackObject.eventCallback) !=3D "undefined") && = (callbackObject.eventCallback !=3D null)) { callbackObject.eventCallback(response.substring(1), = callbackObject.context); } } else if (response.charAt(0) =3D=3D "e") { if ((typeof(callbackObject.errorCallback) !=3D "undefined") && = (callbackObject.errorCallback !=3D null)) { callbackObject.errorCallback(response.substring(1), = callbackObject.context); } } else { var separatorIndex =3D response.indexOf("|"); if (separatorIndex !=3D -1) { var validationFieldLength =3D parseInt(response.substring(0, = separatorIndex)); if (!isNaN(validationFieldLength)) { var validationField =3D = response.substring(separatorIndex + 1, separatorIndex + = validationFieldLength + 1); if (validationField !=3D "") { var validationFieldElement =3D = theForm["__EVENTVALIDATION"]; if (!validationFieldElement) { validationFieldElement =3D = document.createElement("INPUT"); validationFieldElement.type =3D "hidden"; validationFieldElement.name =3D = "__EVENTVALIDATION"; theForm.appendChild(validationFieldElement); } validationFieldElement.value =3D validationField; } if ((typeof(callbackObject.eventCallback) !=3D = "undefined") && (callbackObject.eventCallback !=3D null)) { = callbackObject.eventCallback(response.substring(separatorIndex + = validationFieldLength + 1), callbackObject.context); } } } } } function WebForm_FillFirstAvailableSlot(array, element) { var i; for (i =3D 0; i < array.length; i++) { if (!array[i]) break; } array[i] =3D element; return i; } var __nonMSDOMBrowser =3D = (window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1); var __theFormPostData =3D ""; var __theFormPostCollection =3D new Array(); function WebForm_InitCallback() { var count =3D theForm.elements.length; var element; for (var i =3D 0; i < count; i++) { element =3D theForm.elements[i]; var tagName =3D element.tagName.toLowerCase(); if (tagName =3D=3D "input") { var type =3D element.type; if ((type =3D=3D "text" || type =3D=3D "hidden" || type = =3D=3D "password" || ((type =3D=3D "checkbox" || type =3D=3D "radio") && = element.checked)) && (element.id !=3D "__EVENTVALIDATION")) { WebForm_InitCallbackAddField(element.name, = element.value); } } else if (tagName =3D=3D "select") { var selectCount =3D element.options.length; for (var j =3D 0; j < selectCount; j++) { var selectChild =3D element.options[j]; if (selectChild.selected =3D=3D true) { WebForm_InitCallbackAddField(element.name, = element.value); } } } else if (tagName =3D=3D "textarea") { WebForm_InitCallbackAddField(element.name, element.value); } } } function WebForm_InitCallbackAddField(name, value) { var nameValue =3D new Object(); nameValue.name =3D name; nameValue.value =3D value; __theFormPostCollection[__theFormPostCollection.length] =3D = nameValue; __theFormPostData +=3D name + "=3D" + WebForm_EncodeCallback(value) = + "&"; } function WebForm_EncodeCallback(parameter) { if (encodeURIComponent) { return encodeURIComponent(parameter); } else { return escape(parameter); } } var __disabledControlArray =3D new Array(); function WebForm_ReEnableControls() { if (typeof(__enabledControlArray) =3D=3D 'undefined') { return false; } var disabledIndex =3D 0; for (var i =3D 0; i < __enabledControlArray.length; i++) { var c; if (__nonMSDOMBrowser) { c =3D document.getElementById(__enabledControlArray[i]); } else { c =3D document.all[__enabledControlArray[i]]; } if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled = =3D=3D true)) { c.disabled =3D false; __disabledControlArray[disabledIndex++] =3D c; } } setTimeout("WebForm_ReDisableControls()", 0); return true; } function WebForm_ReDisableControls() { for (var i =3D 0; i < __disabledControlArray.length; i++) { __disabledControlArray[i].disabled =3D true; } } function WebForm_FireDefaultButton(event, target) { if (event.keyCode =3D=3D 13 && !(event.srcElement && = (event.srcElement.tagName.toLowerCase() =3D=3D "textarea"))) { var defaultButton; if (__nonMSDOMBrowser) { defaultButton =3D document.getElementById(target); } else { defaultButton =3D document.all[target]; } if (defaultButton && typeof(defaultButton.click) !=3D = "undefined") { defaultButton.click(); event.cancelBubble =3D true; if (event.stopPropagation) event.stopPropagation(); return false; } } return true; } function WebForm_GetScrollX() { if (__nonMSDOMBrowser) { return window.pageXOffset; } else { if (document.documentElement && = document.documentElement.scrollLeft) { return document.documentElement.scrollLeft; } else if (document.body) { return document.body.scrollLeft; } } return 0; } function WebForm_GetScrollY() { if (__nonMSDOMBrowser) { return window.pageYOffset; } else { if (document.documentElement && = document.documentElement.scrollTop) { return document.documentElement.scrollTop; } else if (document.body) { return document.body.scrollTop; } } return 0; } function WebForm_SaveScrollPositionSubmit() { if (__nonMSDOMBrowser) { theForm.elements['__SCROLLPOSITIONY'].value =3D = window.pageYOffset; theForm.elements['__SCROLLPOSITIONX'].value =3D = window.pageXOffset; } else { theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX(); theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY(); } if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit = !=3D null)) { return this.oldSubmit(); } return true; } function WebForm_SaveScrollPositionOnSubmit() { theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX(); theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY(); if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit = !=3D null)) { return this.oldOnSubmit(); } return true; } function WebForm_RestoreScrollPosition() { if (__nonMSDOMBrowser) { window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, = theForm.elements['__SCROLLPOSITIONY'].value); } else { window.scrollTo(theForm.__SCROLLPOSITIONX.value, = theForm.__SCROLLPOSITIONY.value); } if ((typeof(theForm.oldOnLoad) !=3D "undefined") && = (theForm.oldOnLoad !=3D null)) { return theForm.oldOnLoad(); } return true; } function WebForm_TextBoxKeyHandler(event) { if (event.keyCode =3D=3D 13) { var target; if (__nonMSDOMBrowser) { target =3D event.target; } else { target =3D event.srcElement; } if ((typeof(target) !=3D "undefined") && (target !=3D null)) { if (typeof(target.onchange) !=3D "undefined") { target.onchange(); event.cancelBubble =3D true; if (event.stopPropagation) event.stopPropagation(); return false; } } } return true; } function WebForm_AppendToClassName(element, className) { var current =3D element.className; if (current) { if (current.charAt(current.length - 1) !=3D ' ') { current +=3D ' '; } current +=3D className; } else { current =3D className; } element.className =3D current; } function WebForm_RemoveClassName(element, className) { var current =3D element.className; if (current) { if (current.substring(current.length - className.length - 1, = current.length) =3D=3D ' ' + className) { element.className =3D current.substring(0, current.length - = className.length - 1); return; } if (current =3D=3D className) { element.className =3D ""; return; } var index =3D current.indexOf(' ' + className + ' '); if (index !=3D -1) { element.className =3D current.substring(0, index) + = current.substring(index + className.length + 2, current.length); return; } if (current.substring(0, className.length) =3D=3D className + ' = ') { element.className =3D current.substring(className.length + = 1, current.length); } } } function WebForm_GetElementById(elementId) { if (document.getElementById) { return document.getElementById(elementId); } else if (document.all) { return document.all[elementId]; } else return null; } function WebForm_GetElementByTagName(element, tagName) { var elements =3D WebForm_GetElementsByTagName(element, tagName); if (elements && elements.length > 0) { return elements[0]; } else return null; } function WebForm_GetElementsByTagName(element, tagName) { if (element && tagName) { if (element.getElementsByTagName) { return element.getElementsByTagName(tagName); } if (element.all && element.all.tags) { return element.all.tags(tagName); } } return null; } function WebForm_GetElementDir(element) { if (element) { if (element.dir) { return element.dir; } return WebForm_GetElementDir(element.parentNode); } return "ltr"; } function WebForm_GetElementPosition(element) { var result =3D new Object(); result.x =3D 0; result.y =3D 0; result.width =3D 0; result.height =3D 0; if (element.offsetParent) { result.x =3D element.offsetLeft; result.y =3D element.offsetTop; var parent =3D element.offsetParent; while (parent) { result.x +=3D parent.offsetLeft; result.y +=3D parent.offsetTop; var parentTagName =3D parent.tagName.toLowerCase(); if (parentTagName !=3D "table" && parentTagName !=3D "body" &&=20 parentTagName !=3D "html" &&=20 parentTagName !=3D "div" &&=20 parent.clientTop &&=20 parent.clientLeft) { result.x +=3D parent.clientLeft; result.y +=3D parent.clientTop; } parent =3D parent.offsetParent; } } else if (element.left && element.top) { result.x =3D element.left; result.y =3D element.top; } else { if (element.x) { result.x =3D element.x; } if (element.y) { result.y =3D element.y; } } if (element.offsetWidth && element.offsetHeight) { result.width =3D element.offsetWidth; result.height =3D element.offsetHeight; } else if (element.style && element.style.pixelWidth && = element.style.pixelHeight) { result.width =3D element.style.pixelWidth; result.height =3D element.style.pixelHeight; } return result; } function WebForm_GetParentByTagName(element, tagName) { var parent =3D element.parentNode; var upperTagName =3D tagName.toUpperCase(); while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) { parent =3D parent.parentNode ? parent.parentNode : = parent.parentElement; } return parent; } function WebForm_SetElementHeight(element, height) { if (element && element.style) { element.style.height =3D height + "px"; } } function WebForm_SetElementWidth(element, width) { if (element && element.style) { element.style.width =3D width + "px"; } } function WebForm_SetElementX(element, x) { if (element && element.style) { element.style.left =3D x + "px"; } } function WebForm_SetElementY(element, y) { if (element && element.style) { element.style.top =3D y + "px"; } } ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=k1VEuBF-F6FLFgUQw7soe_k9hFcOfpjO2JXWNfnXdK1TJzmQcuot2E-TtCcPoiHH-SiEqO_gqcqEJV_YEpT60g2&t=633537337553750000 =EF=BB=BFvar Page_ValidationVer =3D "125"; var Page_IsValid =3D true; var Page_BlockSubmit =3D false; var Page_InvalidControlToBeFocused =3D null; function ValidatorUpdateDisplay(val) { if (typeof(val.display) =3D=3D "string") { if (val.display =3D=3D "None") { return; } if (val.display =3D=3D "Dynamic") { val.style.display =3D val.isvalid ? "none" : "inline"; return; } } if ((navigator.userAgent.indexOf("Mac") > -1) && (navigator.userAgent.indexOf("MSIE") > -1)) { val.style.display =3D "inline"; } val.style.visibility =3D val.isvalid ? "hidden" : "visible"; } function ValidatorUpdateIsValid() { Page_IsValid =3D AllValidatorsValid(Page_Validators); } function AllValidatorsValid(validators) { if ((typeof(validators) !=3D "undefined") && (validators !=3D null)) = { var i; for (i =3D 0; i < validators.length; i++) { if (!validators[i].isvalid) { return false; } } } return true; } function ValidatorHookupControlID(controlID, val) { if (typeof(controlID) !=3D "string") { return; } var ctrl =3D document.getElementById(controlID); if ((typeof(ctrl) !=3D "undefined") && (ctrl !=3D null)) { ValidatorHookupControl(ctrl, val); } else { val.isvalid =3D true; val.enabled =3D false; } } function ValidatorHookupControl(control, val) { if (typeof(control.tagName) !=3D "string") { return; =20 } if (control.tagName !=3D "INPUT" && control.tagName !=3D "TEXTAREA" = && control.tagName !=3D "SELECT") { var i; for (i =3D 0; i < control.childNodes.length; i++) { ValidatorHookupControl(control.childNodes[i], val); } return; } else { if (typeof(control.Validators) =3D=3D "undefined") { control.Validators =3D new Array; var eventType; if (control.type =3D=3D "radio") { eventType =3D "onclick"; } else { eventType =3D "onchange"; if (typeof(val.focusOnError) =3D=3D "string" && = val.focusOnError =3D=3D "t") { ValidatorHookupEvent(control, "onblur", = "ValidatedControlOnBlur(event); "); } } ValidatorHookupEvent(control, eventType, = "ValidatorOnChange(event); "); if (control.type =3D=3D "text" || control.type =3D=3D "password" || control.type =3D=3D "file") { ValidatorHookupEvent(control, "onkeypress",=20 "if (!ValidatedTextBoxOnKeyPress(event)) { = event.cancelBubble =3D true; if (event.stopPropagation) = event.stopPropagation(); return false; } "); } } control.Validators[control.Validators.length] =3D val; } } function ValidatorHookupEvent(control, eventType, functionPrefix) { var ev; eval("ev =3D control." + eventType + ";"); if (typeof(ev) =3D=3D "function") { ev =3D ev.toString(); ev =3D ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")); } else { ev =3D ""; } var func; if (navigator.appName.toLowerCase().indexOf('explorer') > -1) { func =3D new Function(functionPrefix + " " + ev); } else { func =3D new Function("event", functionPrefix + " " + ev); } eval("control." + eventType + " =3D func;"); } function ValidatorGetValue(id) { var control; control =3D document.getElementById(id); if (typeof(control.value) =3D=3D "string") { return control.value; } return ValidatorGetValueRecursive(control); } function ValidatorGetValueRecursive(control) { if (typeof(control.value) =3D=3D "string" && (control.type !=3D = "radio" || control.checked =3D=3D true)) { return control.value; } var i, val; for (i =3D 0; i twoDigitCutoffYear) ? (cutoffYearCentury - 100 + = year) : (cutoffYearCentury + year)); } var num, cleanInput, m, exp; if (dataType =3D=3D "Integer") { exp =3D /^\s*[-\+]?\d+\s*$/; if (op.match(exp) =3D=3D null) return null; num =3D parseInt(op, 10); return (isNaN(num) ? null : num); } else if(dataType =3D=3D "Double") { exp =3D new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + = "?(\\d*)\\s*$"); m =3D op.match(exp); if (m =3D=3D null) return null; if (m[2].length =3D=3D 0 && m[3].length =3D=3D 0) return null; cleanInput =3D (m[1] !=3D null ? m[1] : "") + (m[2].length>0 ? = m[2] : "0") + (m[3].length>0 ? "." + m[3] : ""); num =3D parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType =3D=3D "Currency") { var hasDigits =3D (val.digits > 0); var beginGroupSize, subsequentGroupSize; var groupSizeNum =3D parseInt(val.groupsize, 10); if (!isNaN(groupSizeNum) && groupSizeNum > 0) { beginGroupSize =3D "{1," + groupSizeNum + "}"; subsequentGroupSize =3D "{" + groupSizeNum + "}"; } else { beginGroupSize =3D subsequentGroupSize =3D "+"; } exp =3D new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + = "(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)" + (hasDigits ? "\\" + val.decimalchar + = "?(\\d{0," + val.digits + "})" : "") + "\\s*$"); m =3D op.match(exp); if (m =3D=3D null) return null; if (m[2].length =3D=3D 0 && hasDigits && m[5].length =3D=3D 0) return null; cleanInput =3D (m[1] !=3D null ? m[1] : "") + m[2].replace(new = RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && = m[5].length > 0) ? "." + m[5] : ""); num =3D parseFloat(cleanInput); return (isNaN(num) ? null : num); } else if (dataType =3D=3D "Date") { var yearFirstExp =3D new = RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. = ?)(\\d{1,2})\\4(\\d{1,2})\\s*$"); m =3D op.match(yearFirstExp); var day, month, year; if (m !=3D null && (m[2].length =3D=3D 4 || val.dateorder =3D=3D = "ymd")) { day =3D m[6]; month =3D m[5]; year =3D (m[2].length =3D=3D 4) ? m[2] : = GetFullYear(parseInt(m[3], 10)) } else { if (val.dateorder =3D=3D "ymd"){ return null; } var yearLastExp =3D new RegExp("^\\s*(\\d{1,2})([-/]|\\. = ?)(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$"); m =3D op.match(yearLastExp); if (m =3D=3D null) { return null; } if (val.dateorder =3D=3D "mdy") { day =3D m[3]; month =3D m[1]; } else { day =3D m[1]; month =3D m[3]; } year =3D (m[5].length =3D=3D 4) ? m[5] : = GetFullYear(parseInt(m[6], 10)) } month -=3D 1; var date =3D new Date(year, month, day); if (year < 100) { date.setFullYear(year); } return (typeof(date) =3D=3D "object" && year =3D=3D = date.getFullYear() && month =3D=3D date.getMonth() && day =3D=3D = date.getDate()) ? date.valueOf() : null; } else { return op.toString(); } } function ValidatorCompare(operand1, operand2, operator, val) { var dataType =3D val.type; var op1, op2; if ((op1 =3D ValidatorConvert(operand1, dataType, val)) =3D=3D null) return false; if (operator =3D=3D "DataTypeCheck") return true; if ((op2 =3D ValidatorConvert(operand2, dataType, val)) =3D=3D null) return true; switch (operator) { case "NotEqual": return (op1 !=3D op2); case "GreaterThan": return (op1 > op2); case "GreaterThanEqual": return (op1 >=3D op2); case "LessThan": return (op1 < op2); case "LessThanEqual": return (op1 <=3D op2); default: return (op1 =3D=3D op2); } } function CompareValidatorEvaluateIsValid(val) { var value =3D ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length =3D=3D 0) return true; var compareTo =3D ""; if ((typeof(val.controltocompare) !=3D "string") || (typeof(document.getElementById(val.controltocompare)) =3D=3D = "undefined") || (null =3D=3D document.getElementById(val.controltocompare))) { if (typeof(val.valuetocompare) =3D=3D "string") { compareTo =3D val.valuetocompare; } } else { compareTo =3D ValidatorGetValue(val.controltocompare); } var operator =3D "Equal"; if (typeof(val.operator) =3D=3D "string") { operator =3D val.operator; } return ValidatorCompare(value, compareTo, operator, val); } function CustomValidatorEvaluateIsValid(val) { var value =3D ""; if (typeof(val.controltovalidate) =3D=3D "string") { value =3D ValidatorGetValue(val.controltovalidate); if ((ValidatorTrim(value).length =3D=3D 0) && ((typeof(val.validateemptytext) !=3D "string") || = (val.validateemptytext !=3D "true"))) { return true; } } var args =3D { Value:value, IsValid:true }; if (typeof(val.clientvalidationfunction) =3D=3D "string") { eval(val.clientvalidationfunction + "(val, args) ;"); } return args.IsValid; } function RegularExpressionValidatorEvaluateIsValid(val) { var value =3D ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length =3D=3D 0) return true; var rx =3D new RegExp(val.validationexpression); var matches =3D rx.exec(value); return (matches !=3D null && value =3D=3D matches[0]); } function ValidatorTrim(s) { var m =3D s.match(/^\s*(\S+(\s+\S+)*)\s*$/); return (m =3D=3D null) ? "" : m[1]; } function RequiredFieldValidatorEvaluateIsValid(val) { return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) !=3D = ValidatorTrim(val.initialvalue)) } function RangeValidatorEvaluateIsValid(val) { var value =3D ValidatorGetValue(val.controltovalidate); if (ValidatorTrim(value).length =3D=3D 0) return true; return (ValidatorCompare(value, val.minimumvalue, = "GreaterThanEqual", val) && ValidatorCompare(value, val.maximumvalue, "LessThanEqual", = val)); } function ValidationSummaryOnSubmit(validationGroup) { if (typeof(Page_ValidationSummaries) =3D=3D "undefined") return; var summary, sums, s; for (sums =3D 0; sums < Page_ValidationSummaries.length; sums++) { summary =3D Page_ValidationSummaries[sums]; summary.style.display =3D "none"; if (!Page_IsValid && IsValidationGroupMatch(summary, = validationGroup)) { var i; if (summary.showsummary !=3D "False") { summary.style.display =3D ""; if (typeof(summary.displaymode) !=3D "string") { summary.displaymode =3D "BulletList"; } switch (summary.displaymode) { case "List": headerSep =3D "
"; first =3D ""; pre =3D ""; post =3D "
"; end =3D ""; break; case "BulletList": default: headerSep =3D ""; first =3D "
    "; pre =3D "
  • "; post =3D "
  • "; end =3D "
"; break; case "SingleParagraph": headerSep =3D " "; first =3D ""; pre =3D ""; post =3D " "; end =3D "
"; break; } s =3D ""; if (typeof(summary.headertext) =3D=3D "string") { s +=3D summary.headertext + headerSep; } s +=3D first; for (i=3D0; i /// /// var e =3D Function._validateParams(arguments, [ {name: "method", type: Function}, {name: "context", mayBeNull: true} ]); if (e) throw e; =20 return function() { var l =3D arguments.length; if (l > 0) { var args =3D []; for (var i =3D 0; i < l; i++) { args[i] =3D arguments[i]; } args[l] =3D context; return method.apply(this, args); } return method.call(this, context); } } Function.createDelegate =3D function Function$createDelegate(instance, = method) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "instance", mayBeNull: true}, {name: "method", type: Function} ]); if (e) throw e; =20 return function() { return method.apply(instance, arguments); } } Function.emptyFunction =3D Function.emptyMethod =3D function = Function$emptyMethod() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); } Function._validateParams =3D function Function$_validateParams(params, = expectedParams) { = =20 var e; e =3D Function._validateParameterCount(params, expectedParams); if (e) { e.popStackFrame(); return e; } for (var i=3D0; i < params.length; i++) { var expectedParam =3D = expectedParams[Math.min(i, expectedParams.length - 1)]; var paramName =3D expectedParam.name; if (expectedParam.parameterArray) { paramName +=3D "[" + (i - expectedParams.length = + 1) + "]"; } e =3D Function._validateParameter(params[i], expectedParam, = paramName); if (e) { e.popStackFrame(); return e; } } return null; } Function._validateParameterCount =3D function = Function$_validateParameterCount(params, expectedParams) { var maxParams =3D expectedParams.length; var minParams =3D 0; for (var i=3D0; i < expectedParams.length; i++) { if (expectedParams[i].parameterArray) { maxParams =3D Number.MAX_VALUE; } else if (!expectedParams[i].optional) { minParams++; } } if (params.length < minParams || params.length > maxParams) { var e =3D Error.parameterCount(); e.popStackFrame(); return e; } return null; } Function._validateParameter =3D function = Function$_validateParameter(param, expectedParam, paramName) { var e; var expectedType =3D expectedParam.type; var expectedInteger =3D !!expectedParam.integer; var expectedDomElement =3D !!expectedParam.domElement; var mayBeNull =3D !!expectedParam.mayBeNull; e =3D Function._validateParameterType(param, expectedType, = expectedInteger, expectedDomElement, mayBeNull, paramName); if (e) { e.popStackFrame(); return e; } var expectedElementType =3D expectedParam.elementType; var elementMayBeNull =3D !!expectedParam.elementMayBeNull; if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D = "undefined" && param !=3D=3D null && (expectedElementType || !elementMayBeNull)) { var expectedElementInteger =3D !!expectedParam.elementInteger; var expectedElementDomElement =3D = !!expectedParam.elementDomElement; for (var i=3D0; i < param.length; i++) { var elem =3D param[i]; e =3D Function._validateParameterType(elem, = expectedElementType, expectedElementInteger, expectedElementDomElement, = elementMayBeNull, paramName + "[" + i + "]"); if (e) { e.popStackFrame(); return e; } } } return null; } Function._validateParameterType =3D function = Function$_validateParameterType(param, expectedType, expectedInteger, = expectedDomElement, mayBeNull, paramName) { var e; if (typeof(param) =3D=3D=3D "undefined") { if (mayBeNull) { return null; } else { e =3D Error.argumentUndefined(paramName); e.popStackFrame(); return e; } } if (param =3D=3D=3D null) { if (mayBeNull) { return null; } else { e =3D Error.argumentNull(paramName); e.popStackFrame(); return e; } } if (expectedType && expectedType.__enum) { if (typeof(param) !=3D=3D 'number') { e =3D Error.argumentType(paramName, Object.getType(param), = expectedType); e.popStackFrame(); return e; } if ((param % 1) =3D=3D=3D 0) { var values =3D expectedType.prototype; if (!expectedType.__flags || (param =3D=3D=3D 0)) { for (var i in values) { if (values[i] =3D=3D=3D param) return null; } } else { var v =3D param; for (var i in values) { var vali =3D values[i]; if (vali =3D=3D=3D 0) continue; if ((vali & param) =3D=3D=3D vali) { v -=3D vali; } if (v =3D=3D=3D 0) return null; } } } e =3D Error.argumentOutOfRange(paramName, param, = String.format(Sys.Res.enumInvalidValue, param, expectedType.getName())); e.popStackFrame(); return e; } if (expectedDomElement && (param !=3D=3D window) && = (param !=3D=3D document) && !(window.HTMLElement && (param instanceof HTMLElement)) && (typeof(param.nodeName) !=3D=3D 'string')) { e =3D Error.argument(paramName, Sys.Res.argumentDomElement); e.popStackFrame(); return e; } if (expectedType && !expectedType.isInstanceOfType(param)) { e =3D Error.argumentType(paramName, Object.getType(param), = expectedType); e.popStackFrame(); return e; } if (expectedType =3D=3D=3D Number && expectedInteger) { if ((param % 1) !=3D=3D 0) { e =3D Error.argumentOutOfRange(paramName, param, = Sys.Res.argumentInteger); e.popStackFrame(); return e; } } return null; } Error.__typeName =3D 'Error'; Error.__class =3D true; Error.create =3D function Error$create(message, errorInfo) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true, optional: = true}, {name: "errorInfo", mayBeNull: true, optional: true} ]); if (e) throw e; var e =3D new Error(message); e.message =3D message; if (errorInfo) { for (var v in errorInfo) { e[v] =3D errorInfo[v]; } } e.popStackFrame(); return e; } Error.argument =3D function Error$argument(paramName, message) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "paramName", type: String, mayBeNull: true, optional: = true}, {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ArgumentException: " + (message ? = message : Sys.Res.argument); if (paramName) { displayMessage +=3D "\n" + String.format(Sys.Res.paramName, = paramName); } var e =3D Error.create(displayMessage, { name: = "Sys.ArgumentException", paramName: paramName }); e.popStackFrame(); return e; } Error.argumentNull =3D function Error$argumentNull(paramName, message) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "paramName", type: String, mayBeNull: true, optional: = true}, {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ArgumentNullException: " + (message ? = message : Sys.Res.argumentNull); if (paramName) { displayMessage +=3D "\n" + String.format(Sys.Res.paramName, = paramName); } var e =3D Error.create(displayMessage, { name: = "Sys.ArgumentNullException", paramName: paramName }); e.popStackFrame(); return e; } Error.argumentOutOfRange =3D function = Error$argumentOutOfRange(paramName, actualValue, message) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "paramName", type: String, mayBeNull: true, optional: = true}, {name: "actualValue", mayBeNull: true, optional: true}, {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + = (message ? message : Sys.Res.argumentOutOfRange); if (paramName) { displayMessage +=3D "\n" + String.format(Sys.Res.paramName, = paramName); } if (typeof(actualValue) !=3D=3D "undefined" && = actualValue !=3D=3D null) { displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, = actualValue); } var e =3D Error.create(displayMessage, { name: "Sys.ArgumentOutOfRangeException", paramName: paramName, actualValue: actualValue }); e.popStackFrame(); return e; } Error.argumentType =3D function Error$argumentType(paramName, = actualType, expectedType, message) { /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "paramName", type: String, mayBeNull: true, optional: = true}, {name: "actualType", type: Type, mayBeNull: true, optional: = true}, {name: "expectedType", type: Type, mayBeNull: true, optional: = true}, {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ArgumentTypeException: "; if (message) { displayMessage +=3D message; } else if (actualType && expectedType) { displayMessage +=3D String.format(Sys.Res.argumentTypeWithTypes, = actualType.getName(), expectedType.getName()); } else { displayMessage +=3D Sys.Res.argumentType; } if (paramName) { displayMessage +=3D "\n" + String.format(Sys.Res.paramName, = paramName); } var e =3D Error.create(displayMessage, { name: "Sys.ArgumentTypeException", paramName: paramName, actualType: actualType, expectedType: expectedType }); e.popStackFrame(); return e; } Error.argumentUndefined =3D function Error$argumentUndefined(paramName, = message) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "paramName", type: String, mayBeNull: true, optional: = true}, {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ArgumentUndefinedException: " + (message = ? message : Sys.Res.argumentUndefined); if (paramName) { displayMessage +=3D "\n" + String.format(Sys.Res.paramName, = paramName); } var e =3D Error.create(displayMessage, { name: = "Sys.ArgumentUndefinedException", paramName: paramName }); e.popStackFrame(); return e; } Error.format =3D function Error$format(message) { /// /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.FormatException: " + (message ? message = : Sys.Res.format); var e =3D Error.create(displayMessage, {name: = 'Sys.FormatException'}); e.popStackFrame(); return e; } Error.invalidOperation =3D function Error$invalidOperation(message) { /// /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.InvalidOperationException: " + (message = ? message : Sys.Res.invalidOperation); var e =3D Error.create(displayMessage, {name: = 'Sys.InvalidOperationException'}); e.popStackFrame(); return e; } Error.notImplemented =3D function Error$notImplemented(message) { /// /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.NotImplementedException: " + (message ? = message : Sys.Res.notImplemented); var e =3D Error.create(displayMessage, {name: = 'Sys.NotImplementedException'}); e.popStackFrame(); return e; } Error.parameterCount =3D function Error$parameterCount(message) { /// /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true, optional: true} ]); if (e) throw e; var displayMessage =3D "Sys.ParameterCountException: " + (message ? = message : Sys.Res.parameterCount); var e =3D Error.create(displayMessage, {name: = 'Sys.ParameterCountException'}); e.popStackFrame(); return e; } Error.prototype.popStackFrame =3D function Error$popStackFrame() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); =20 if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D = null || typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName = =3D=3D=3D null || typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber = =3D=3D=3D null) { return; } var stackFrames =3D this.stack.split("\n"); var currentFrame =3D stackFrames[0]; var pattern =3D this.fileName + ":" + this.lineNumber; while(typeof(currentFrame) !=3D=3D "undefined" && currentFrame !=3D=3D null && currentFrame.indexOf(pattern) =3D=3D=3D -1) { stackFrames.shift(); currentFrame =3D stackFrames[0]; } var nextFrame =3D stackFrames[1]; if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame = =3D=3D=3D null) { return; } var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/); if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts = =3D=3D=3D null) { return; } this.fileName =3D nextFrameParts[1]; this.lineNumber =3D parseInt(nextFrameParts[2]); stackFrames.shift(); this.stack =3D stackFrames.join("\n"); } if (!window) this.window =3D this; window.Type =3D Function; window.__rootNamespaces =3D []; window.__registeredTypes =3D {}; Type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 = \\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ = \\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. = \\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i"); Type.__identifierRegExp =3D new RegExp("^[^.0-9 = \\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. = \\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i"); Type.prototype.callBaseMethod =3D function Type$callBaseMethod(instance, = name, baseArguments) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "instance"}, {name: "name", type: String}, {name: "baseArguments", type: Array, mayBeNull: true, optional: = true, elementMayBeNull: true} ]); if (e) throw e; var baseMethod =3D this.getBaseMethod(instance, name); if (!baseMethod) throw = Error.invalidOperation(String.format(Sys.Res.methodNotFound, name)); if (!baseArguments) { return baseMethod.apply(instance); } else { return baseMethod.apply(instance, baseArguments); } } Type.prototype.getBaseMethod =3D function Type$getBaseMethod(instance, = name) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "instance"}, {name: "name", type: String} ]); if (e) throw e; if (!this.isInstanceOfType(instance)) throw = Error.argumentType('instance', Object.getType(instance), this); var baseType =3D this.getBaseType(); if (baseType) { var baseMethod =3D baseType.prototype[name]; return (baseMethod instanceof Function) ? baseMethod : null; } return null; } Type.prototype.getBaseType =3D function Type$getBaseType() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : = this.__baseType; } Type.prototype.getInterfaces =3D function Type$getInterfaces() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); var result =3D []; var type =3D this; while(type) { var interfaces =3D type.__interfaces; if (interfaces) { for (var i =3D 0, l =3D interfaces.length; i < l; i++) { var interfaceType =3D interfaces[i]; if (!Array.contains(result, interfaceType)) { result[result.length] =3D interfaceType; } } } type =3D type.__baseType; } return result; } Type.prototype.getName =3D function Type$getName() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : = this.__typeName; } Type.prototype.implementsInterface =3D function = Type$implementsInterface(interfaceType) { /// /// var e =3D Function._validateParams(arguments, [ {name: "interfaceType", type: Type} ]); if (e) throw e; this.resolveInheritance(); var interfaceName =3D interfaceType.getName(); var cache =3D this.__interfaceCache; if (cache) { var cacheEntry =3D cache[interfaceName]; if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry; } else { cache =3D this.__interfaceCache =3D {}; } var baseType =3D this; while (baseType) { var interfaces =3D baseType.__interfaces; if (interfaces) { if (Array.indexOf(interfaces, interfaceType) !=3D=3D -1) { return cache[interfaceName] =3D true; } } baseType =3D baseType.__baseType; } return cache[interfaceName] =3D false; } Type.prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) { /// /// var e =3D Function._validateParams(arguments, [ {name: "parentType", type: Type} ]); if (e) throw e; this.resolveInheritance(); var baseType =3D this.__baseType; while (baseType) { if (baseType =3D=3D=3D parentType) { return true; } baseType =3D baseType.__baseType; } return false; } Type.prototype.initializeBase =3D function Type$initializeBase(instance, = baseArguments) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "instance"}, {name: "baseArguments", type: Array, mayBeNull: true, optional: = true, elementMayBeNull: true} ]); if (e) throw e; if (!this.isInstanceOfType(instance)) throw = Error.argumentType('instance', Object.getType(instance), this); this.resolveInheritance(); if (this.__baseType) { if (!baseArguments) { this.__baseType.apply(instance); } else { this.__baseType.apply(instance, baseArguments); } } return instance; } Type.prototype.isImplementedBy =3D function = Type$isImplementedBy(instance) { /// /// var e =3D Function._validateParams(arguments, [ {name: "instance", mayBeNull: true} ]); if (e) throw e; if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D = null) return false; var instanceType =3D Object.getType(instance); return !!(instanceType.implementsInterface && = instanceType.implementsInterface(this)); } Type.prototype.isInstanceOfType =3D function = Type$isInstanceOfType(instance) { /// /// var e =3D Function._validateParams(arguments, [ {name: "instance", mayBeNull: true} ]); if (e) throw e; if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D = null) return false; if (instance instanceof this) return true; var instanceType =3D Object.getType(instance); return !!(instanceType =3D=3D=3D this) || (instanceType.inheritsFrom && = instanceType.inheritsFrom(this)) || (instanceType.implementsInterface && = instanceType.implementsInterface(this)); } Type.prototype.registerClass =3D function Type$registerClass(typeName, = baseType, interfaceTypes) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "typeName", type: String}, {name: "baseType", type: Type, mayBeNull: true, optional: true}, {name: "interfaceTypes", type: Type, parameterArray: true} ]); if (e) throw e; if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw = Error.argument('typeName', Sys.Res.notATypeName); var parsedName; try { parsedName =3D eval(typeName); } catch(e) { throw Error.argument('typeName', Sys.Res.argumentTypeName); } if (parsedName !=3D=3D this) throw Error.argument('typeName', = Sys.Res.badTypeName); if (window.__registeredTypes[typeName]) throw = Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, = typeName)); if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D = 'undefined')) throw Error.argumentUndefined('baseType'); if (baseType && !baseType.__class) throw Error.argument('baseType', = Sys.Res.baseNotAClass); this.prototype.constructor =3D this; this.__typeName =3D typeName; this.__class =3D true; if (baseType) { this.__baseType =3D baseType; this.__basePrototypePending =3D true; } if (!window.__classes) window.__classes =3D {}; window.__classes[typeName.toUpperCase()] =3D this; if (interfaceTypes) { this.__interfaces =3D []; for (var i =3D 2; i < arguments.length; i++) { var interfaceType =3D arguments[i]; if (!interfaceType.__interface) throw = Error.argument('interfaceTypes[' + (i - 2) + ']', = Sys.Res.notAnInterface); this.resolveInheritance(); for (var methodName in interfaceType.prototype) { var method =3D interfaceType.prototype[methodName]; if (!this.prototype[methodName]) { this.prototype[methodName] =3D method; } } this.__interfaces.push(interfaceType); } } window.__registeredTypes[typeName] =3D true; return this; } Type.prototype.registerInterface =3D function = Type$registerInterface(typeName) { /// /// var e =3D Function._validateParams(arguments, [ {name: "typeName", type: String} ]); if (e) throw e; if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw = Error.argument('typeName', Sys.Res.notATypeName); var parsedName; try { parsedName =3D eval(typeName); } catch(e) { throw Error.argument('typeName', Sys.Res.argumentTypeName); } if (parsedName !=3D=3D this) throw Error.argument('typeName', = Sys.Res.badTypeName); if (window.__registeredTypes[typeName]) throw = Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, = typeName)); this.prototype.constructor =3D this; this.__typeName =3D typeName; this.__interface =3D true; window.__registeredTypes[typeName] =3D true; return this; } Type.prototype.resolveInheritance =3D function Type$resolveInheritance() = { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this.__basePrototypePending) { var baseType =3D this.__baseType; baseType.resolveInheritance(); for (var memberName in baseType.prototype) { var memberValue =3D baseType.prototype[memberName]; if (!this.prototype[memberName]) { this.prototype[memberName] =3D memberValue; } } delete this.__basePrototypePending; } } Type.getRootNamespaces =3D function Type$getRootNamespaces() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return Array.clone(window.__rootNamespaces); } Type.isClass =3D function Type$isClass(type) { /// /// var e =3D Function._validateParams(arguments, [ {name: "type", mayBeNull: true} ]); if (e) throw e; if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) = return false; return !!type.__class; } Type.isInterface =3D function Type$isInterface(type) { /// /// var e =3D Function._validateParams(arguments, [ {name: "type", mayBeNull: true} ]); if (e) throw e; if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) = return false; return !!type.__interface; } Type.isNamespace =3D function Type$isNamespace(object) { /// /// var e =3D Function._validateParams(arguments, [ {name: "object", mayBeNull: true} ]); if (e) throw e; if ((typeof(object) =3D=3D=3D 'undefined') || (object =3D=3D=3D = null)) return false; return !!object.__namespace; } Type.parse =3D function Type$parse(typeName, ns) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "typeName", type: String, mayBeNull: true}, {name: "ns", mayBeNull: true, optional: true} ]); if (e) throw e; var fn; if (ns) { if (!window.__classes) return null; fn =3D window.__classes[ns.getName().toUpperCase() + '.' + = typeName.toUpperCase()]; return fn || null; } if (!typeName) return null; if (!Type.__htClasses) { Type.__htClasses =3D {}; } fn =3D Type.__htClasses[typeName]; if (!fn) { fn =3D eval(typeName); if (typeof(fn) !=3D=3D 'function') throw = Error.argument('typeName', Sys.Res.notATypeName); Type.__htClasses[typeName] =3D fn; } return fn; } Type.registerNamespace =3D function = Type$registerNamespace(namespacePath) { /// var e =3D Function._validateParams(arguments, [ {name: "namespacePath", type: String} ]); if (e) throw e; if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) = throw Error.argument('namespacePath', Sys.Res.invalidNameSpace); var rootObject =3D window; var namespaceParts =3D namespacePath.split('.'); for (var i =3D 0; i < namespaceParts.length; i++) { var currentPart =3D namespaceParts[i]; var ns =3D rootObject[currentPart]; if (ns && !ns.__namespace) { throw = Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, = namespaceParts.splice(0, i + 1).join('.'))); } if (!ns) { ns =3D rootObject[currentPart] =3D {}; if (i =3D=3D=3D 0) { window.__rootNamespaces[window.__rootNamespaces.length] = =3D ns; } ns.__namespace =3D true; ns.__typeName =3D namespaceParts.slice(0, i + 1).join('.'); var parsedName; try { parsedName =3D eval(ns.__typeName); } catch(e) { parsedName =3D null; } if (parsedName !=3D=3D ns) { delete rootObject[currentPart]; throw Error.argument('namespacePath', = Sys.Res.invalidNameSpace); } ns.getName =3D function ns$getName() {return = this.__typeName;} } rootObject =3D ns; } } Object.__typeName =3D 'Object'; Object.__class =3D true; Object.getType =3D function Object$getType(instance) { /// /// var e =3D Function._validateParams(arguments, [ {name: "instance"} ]); if (e) throw e; var ctor =3D instance.constructor; if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName = || (ctor.__typeName =3D=3D=3D 'Object')) { return Object; } return ctor; } Object.getTypeName =3D function Object$getTypeName(instance) { /// /// var e =3D Function._validateParams(arguments, [ {name: "instance"} ]); if (e) throw e; return Object.getType(instance).getName(); } Boolean.__typeName =3D 'Boolean'; Boolean.__class =3D true; Boolean.parse =3D function Boolean$parse(value) { /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String} ]); if (e) throw e; var v =3D value.trim().toLowerCase(); if (v =3D=3D=3D 'false') return false; if (v =3D=3D=3D 'true') return true; throw Error.argumentOutOfRange('value', value, = Sys.Res.boolTrueOrFalse); } Date.__typeName =3D 'Date'; Date.__class =3D true; Date._appendPreOrPostMatch =3D function = Date$_appendPreOrPostMatch(preMatch, strBuilder) { var quoteCount =3D 0; var escaped =3D false; for (var i =3D 0, il =3D preMatch.length; i < il; i++) { var c =3D preMatch.charAt(i); switch (c) { case '\'': if (escaped) strBuilder.append("'"); else quoteCount++; escaped =3D false; break; case '\\': if (escaped) strBuilder.append("\\"); escaped =3D !escaped; break; default: strBuilder.append(c); escaped =3D false; break; } } return quoteCount; } Date._expandFormat =3D function Date$_expandFormat(dtf, format) { if (!format) { format =3D "F"; } if (format.length =3D=3D=3D 1) { switch (format) { case "d": return dtf.ShortDatePattern; case "D": return dtf.LongDatePattern; case "t": return dtf.ShortTimePattern; case "T": return dtf.LongTimePattern; case "F": return dtf.FullDateTimePattern; case "M": case "m": return dtf.MonthDayPattern; case "s": return dtf.SortableDateTimePattern; case "Y": case "y": return dtf.YearMonthPattern; default: throw Error.format(Sys.Res.formatInvalidString); } } return format; } Date._expandYear =3D function Date$_expandYear(dtf, year) { if (year < 100) { var curr =3D new Date().getFullYear(); year +=3D curr - (curr % 100); if (year > dtf.Calendar.TwoDigitYearMax) { return year - 100; } } return year; } Date._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) { if (!dtf._parseRegExp) { dtf._parseRegExp =3D {}; } else if (dtf._parseRegExp[format]) { return dtf._parseRegExp[format]; } var expFormat =3D Date._expandFormat(dtf, format); expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, = "\\\\$1"); var regexp =3D new Sys.StringBuilder("^"); var groups =3D []; var index =3D 0; var quoteCount =3D 0; var tokenRegExp =3D Date._getTokenRegExp(); var match; while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) { var preMatch =3D expFormat.slice(index, match.index); index =3D tokenRegExp.lastIndex; quoteCount +=3D Date._appendPreOrPostMatch(preMatch, = regexp); if ((quoteCount%2) =3D=3D=3D 1) { regexp.append(match[0]); continue; } switch (match[0]) { case 'dddd': case 'ddd': case 'MMMM': case 'MMM': regexp.append("(\\D+)"); break; case 'tt': case 't': regexp.append("(\\D*)"); break; case 'yyyy': regexp.append("(\\d{4})"); break; case 'fff': regexp.append("(\\d{3})"); break; case 'ff': regexp.append("(\\d{2})"); break; case 'f': regexp.append("(\\d)"); break; case 'dd': case 'd': case 'MM': case 'M': case 'yy': case 'y': case 'HH': case 'H': case 'hh': case 'h': case 'mm': case 'm': case 'ss': case 's': regexp.append("(\\d\\d?)"); break; case 'zzz': regexp.append("([+-]?\\d\\d?:\\d{2})"); break; case 'zz': case 'z': regexp.append("([+-]?\\d\\d?)"); break; } Array.add(groups, match[0]); } Date._appendPreOrPostMatch(expFormat.slice(index), regexp); regexp.append("$"); var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+"); var parseRegExp =3D {'regExp': regexpStr, 'groups': groups}; dtf._parseRegExp[format] =3D parseRegExp; return parseRegExp; } Date._getTokenRegExp =3D function Date$_getTokenRegExp() { return = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|= zzz|zz|z/g; } Date.parseLocale =3D function Date$parseLocale(value, formats) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String}, {name: "formats", mayBeNull: true, optional: true, = parameterArray: true} ]); if (e) throw e; return Date._parse(value, Sys.CultureInfo.CurrentCulture, = arguments); } Date.parseInvariant =3D function Date$parseInvariant(value, formats) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String}, {name: "formats", mayBeNull: true, optional: true, = parameterArray: true} ]); if (e) throw e; return Date._parse(value, Sys.CultureInfo.InvariantCulture, = arguments); } Date._parse =3D function Date$_parse(value, cultureInfo, args) { var custom =3D false; for (var i =3D 1, il =3D args.length; i < il; i++) { var format =3D args[i]; if (format) { custom =3D true; var date =3D Date._parseExact(value, format, cultureInfo); if (date) return date; } } if (! custom) { var formats =3D cultureInfo._getDateTimeFormats(); for (var i =3D 0, il =3D formats.length; i < il; i++) { var date =3D Date._parseExact(value, formats[i], = cultureInfo); if (date) return date; } } return null; } Date._parseExact =3D function Date$_parseExact(value, format, = cultureInfo) { value =3D value.trim(); var dtf =3D cultureInfo.dateTimeFormat; var parseInfo =3D Date._getParseRegExp(dtf, format); var match =3D new RegExp(parseInfo.regExp).exec(value); if (match !=3D=3D null) { var groups =3D parseInfo.groups; var year =3D null, month =3D null, date =3D null, weekDay =3D = null; var hour =3D 0, min =3D 0, sec =3D 0, msec =3D 0, tzMinOffset = =3D null; var pmHour =3D false; for (var j =3D 0, jl =3D groups.length; j < jl; j++) { var matchGroup =3D match[j+1]; if (matchGroup) { switch (groups[j]) { case 'dd': case 'd': date =3D = Date._parseInt(matchGroup); if ((date < 1) || (date = > 31)) return null; break; case 'MMMM': month =3D = cultureInfo._getMonthIndex(matchGroup); if ((month < 0) || (month > 11)) return null; break; case 'MMM': month =3D = cultureInfo._getAbbrMonthIndex(matchGroup); if ((month < 0) || (month > 11)) return null; break; case 'M': case 'MM': var month =3D = Date._parseInt(matchGroup) - 1; if ((month < 0) || (month > 11)) return null; break; case 'y': case 'yy': year =3D = Date._expandYear(dtf,Date._parseInt(matchGroup)); if ((year < 0) || (year > 9999)) return null; break; case 'yyyy': year =3D = Date._parseInt(matchGroup); if ((year < 0) || (year > 9999)) return null; break; case 'h': case 'hh': hour =3D = Date._parseInt(matchGroup); if (hour =3D=3D=3D 12) hour =3D 0; if ((hour < 0) || (hour > 11)) return null; break; case 'H': case 'HH': hour =3D = Date._parseInt(matchGroup); if ((hour < 0) || (hour > 23)) return null; break; case 'm': case 'mm': min =3D = Date._parseInt(matchGroup); if ((min < 0) || (min > 59)) return null; break; case 's': case 'ss': sec =3D = Date._parseInt(matchGroup); if ((sec < 0) || (sec > 59)) return null; break; case 'tt': case 't': var upperToken =3D = matchGroup.toUpperCase(); pmHour =3D (upperToken =3D=3D=3D = dtf.PMDesignator.toUpperCase()); if (!pmHour && (upperToken !=3D=3D = dtf.AMDesignator.toUpperCase())) return null; break; case 'f': msec =3D = Date._parseInt(matchGroup) * 100; if ((msec < 0) || (msec > 999)) return null; break; case 'ff': msec =3D = Date._parseInt(matchGroup) * 10; if ((msec < 0) || (msec > 999)) return null; break; case 'fff': msec =3D = Date._parseInt(matchGroup); if ((msec < 0) || (msec > 999)) return null; break; case 'dddd': weekDay =3D = cultureInfo._getDayIndex(matchGroup); if ((weekDay < 0) || (weekDay > 6)) return null; break; case 'ddd': weekDay =3D = cultureInfo._getAbbrDayIndex(matchGroup); if ((weekDay < 0) || (weekDay > 6)) return null; break; case 'zzz': var offsets =3D = matchGroup.split(/:/); if (offsets.length !=3D=3D 2) return null; var hourOffset =3D Date._parseInt(offsets[0]); if ((hourOffset < -12) || (hourOffset > 13)) = return null; var minOffset =3D Date._parseInt(offsets[1]); if ((minOffset < 0) || (minOffset > 59)) return = null; tzMinOffset =3D (hourOffset * 60) + = (matchGroup.startsWith('-')? -minOffset : minOffset); break; case 'z': case 'zz': var hourOffset =3D = Date._parseInt(matchGroup); if ((hourOffset < -12) || (hourOffset > 13)) = return null; tzMinOffset =3D hourOffset * 60; break; } } } var result =3D new Date(); if (year =3D=3D=3D null) { year =3D result.getFullYear(); } if (month =3D=3D=3D null) { month =3D result.getMonth(); } if (date =3D=3D=3D null) { date =3D result.getDate(); } result.setFullYear(year, month, date); if (result.getDate() !=3D=3D date) return null; if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D = weekDay)) { return null; } if (pmHour && (hour < 12)) { hour +=3D 12; } result.setHours(hour, min, sec, msec); if (tzMinOffset !=3D=3D null) { var adjustedMin =3D result.getMinutes() - = (tzMinOffset + result.getTimezoneOffset()); = result.setHours(result.getHours() + parseInt(adjustedMin/60), = adjustedMin%60); } return result; } } Date._parseInt =3D function Date$_parseInt(value) { return parseInt(value.replace(/^[\s0]+(\d+)$/,"$1")); } Date.prototype.format =3D function Date$format(format) { /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String} ]); if (e) throw e; return this._toFormattedString(format, = Sys.CultureInfo.InvariantCulture); } Date.prototype.localeFormat =3D function Date$localeFormat(format) { /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String} ]); if (e) throw e; return this._toFormattedString(format, = Sys.CultureInfo.CurrentCulture); } Date.prototype._toFormattedString =3D function = Date$_toFormattedString(format, cultureInfo) { if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D = 'i')) { if (cultureInfo && (cultureInfo.name.length > 0)) { return this.toLocaleString(); } else { return this.toString(); } } var dtf =3D cultureInfo.dateTimeFormat; format =3D Date._expandFormat(dtf, format); var ret =3D new Sys.StringBuilder(); var hour; function addLeadingZero(num) { if (num < 10) { return '0' + num; } return num.toString(); } function addLeadingZeros(num) { if (num < 10) { return '00' + num; } if (num < 100) { return '0' + num; } return num.toString(); } var quoteCount =3D 0; var tokenRegExp =3D Date._getTokenRegExp(); for (;;) { var index =3D tokenRegExp.lastIndex; var ar =3D tokenRegExp.exec(format); var preMatch =3D format.slice(index, ar ? ar.index : = format.length); quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret); if (!ar) break; if ((quoteCount%2) =3D=3D=3D 1) { ret.append(ar[0]); continue; } switch (ar[0]) { case "dddd": ret.append(dtf.DayNames[this.getDay()]); break; case "ddd": = ret.append(dtf.AbbreviatedDayNames[this.getDay()]); break; case "dd": ret.append(addLeadingZero(this.getDate())); break; case "d": ret.append(this.getDate()); break; case "MMMM": ret.append(dtf.MonthNames[this.getMonth()]); break; case "MMM": = ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]); break; case "MM": ret.append(addLeadingZero(this.getMonth() + 1)); break; case "M": ret.append(this.getMonth() + 1); break; case "yyyy": ret.append(this.getFullYear()); break; case "yy": ret.append(addLeadingZero(this.getFullYear() % = 100)); break; case "y": ret.append(this.getFullYear() % 100); break; case "hh": hour =3D this.getHours() % 12; if (hour =3D=3D=3D 0) hour =3D 12; ret.append(addLeadingZero(hour)); break; case "h": hour =3D this.getHours() % 12; if (hour =3D=3D=3D 0) hour =3D 12; ret.append(hour); break; case "HH": ret.append(addLeadingZero(this.getHours())); break; case "H": ret.append(this.getHours()); break; case "mm": ret.append(addLeadingZero(this.getMinutes())); break; case "m": ret.append(this.getMinutes()); break; case "ss": ret.append(addLeadingZero(this.getSeconds())); break; case "s": ret.append(this.getSeconds()); break; case "tt": ret.append((this.getHours() < 12) ? = dtf.AMDesignator : dtf.PMDesignator); break; case "t": ret.append(((this.getHours() < 12) ? = dtf.AMDesignator : dtf.PMDesignator).charAt(0)); break; case "f": = ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0)); break; case "ff": = ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2)); break; case "fff": = ret.append(addLeadingZeros(this.getMilliseconds())); break; case "z": hour =3D this.getTimezoneOffset() / 60; ret.append(((hour >=3D 0) ? '+' : '-') + = Math.floor(Math.abs(hour))); break; case "zz": hour =3D this.getTimezoneOffset() / 60; ret.append(((hour >=3D 0) ? '+' : '-') + = addLeadingZero(Math.floor(Math.abs(hour)))); break; case "zzz": hour =3D this.getTimezoneOffset() / 60; ret.append(((hour >=3D 0) ? '+' : '-') + = addLeadingZero(Math.floor(Math.abs(hour))) + dtf.TimeSeparator + = addLeadingZero(Math.abs(this.getTimezoneOffset() % 60))); break; } } return ret.toString(); } Number.__typeName =3D 'Number'; Number.__class =3D true; Number.parseLocale =3D function Number$parseLocale(value) { /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String} ]); if (e) throw e; return Number._parse(value, Sys.CultureInfo.CurrentCulture); } Number.parseInvariant =3D function Number$parseInvariant(value) { /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String} ]); if (e) throw e; return Number._parse(value, Sys.CultureInfo.InvariantCulture); } Number._parse =3D function Number$_parse(value, cultureInfo) { var valueStr =3D value.trim(); if (valueStr.match(/infinity/i) !=3D=3D null) { return parseFloat(valueStr); } if (valueStr.match(/^0x[a-f0-9]+$/i) !=3D=3D null) { return parseInt(valueStr); } var numFormat =3D cultureInfo.numberFormat; var decSeparator =3D numFormat.NumberDecimalSeparator; var grpSeparator =3D numFormat.NumberGroupSeparator; var numberFormatRegex =3D new RegExp("^[+-]?[\\d\\" + = grpSeparator + "]*\\" + decSeparator + "?\\d*([eE][+-]?\\d+)?$"); if (!valueStr.match(numberFormatRegex)) { return Number.NaN; } valueStr =3D valueStr.split(grpSeparator).join(""); valueStr =3D valueStr.replace(decSeparator, "."); return parseFloat(valueStr); } Number.prototype.format =3D function Number$format(format) { /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String} ]); if (e) throw e; return this._toFormattedString(format, = Sys.CultureInfo.InvariantCulture); } Number.prototype.localeFormat =3D function Number$localeFormat(format) { /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String} ]); if (e) throw e; return this._toFormattedString(format, = Sys.CultureInfo.CurrentCulture); } Number.prototype._toFormattedString =3D function = Number$_toFormattedString(format, cultureInfo) { if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D = 'i')) { if (cultureInfo && (cultureInfo.name.length > 0)) { return this.toLocaleString(); } else { return this.toString(); } } var _percentPositivePattern =3D ["n %", "n%", "%n" ]; var _percentNegativePattern =3D ["-n %", "-n%", "-%n"]; var _numberNegativePattern =3D ["(n)","-n","- n","n-","n -"]; var _currencyPositivePattern =3D ["$n","n$","$ n","n $"]; var _currencyNegativePattern =3D = ["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n = $-","$ n-","$ -n","n- $","($ n)","(n $)"]; function expandNumber(number, precision, groupSizes, sep, = decimalChar) { =20 var curSize =3D groupSizes[0]; var curGroupIndex =3D 1; var numberString =3D number.toString(); var right =3D ""; var exponent =3D ""; var decimalSplit =3D numberString.split('.'); if (decimalSplit.length > 1) { numberString =3D decimalSplit[0]; right =3D decimalSplit[1]; var exponentSplit =3D right.split(/e/i); if (exponentSplit.length > 1) { right =3D exponentSplit[0]; exponent =3D "e" + exponentSplit[1]; } } if (precision > 0) { var rightDifference =3D right.length - = precision; if (rightDifference > 0) { right =3D right.slice(0, precision); } else if (rightDifference < 0) { for (var i=3D0; i=3D 0) { if (curSize =3D=3D=3D 0 || curSize > = stringIndex) { if (ret.length > 0) return numberString.slice(0, stringIndex + 1) + sep = + ret + right; else return numberString.slice(0, stringIndex + 1) + = right; } if (ret.length > 0) ret =3D numberString.slice(stringIndex - curSize + 1, = stringIndex+1) + sep + ret; else ret =3D numberString.slice(stringIndex - curSize + 1, = stringIndex+1); stringIndex -=3D curSize; if (curGroupIndex < groupSizes.length) { curSize =3D groupSizes[curGroupIndex]; curGroupIndex++; } } return numberString.slice(0, stringIndex + 1) + sep + ret + = right; } var nf =3D cultureInfo.numberFormat; var number =3D Math.abs(this); if (!format) format =3D "D"; var precision =3D -1; if (format.length > 1) precision =3D parseInt(format.slice(1)); var pattern; switch (format.charAt(0)) { case "d": case "D": pattern =3D 'n'; if (precision !=3D=3D -1) { var numberStr =3D ""+number; var zerosToAdd =3D precision - numberStr.length; if (zerosToAdd > 0) { for (var i=3D0; i /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "item", mayBeNull: true} ]); if (e) throw e; array[array.length] =3D item; } Array.addRange =3D function Array$addRange(array, items) { /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "items", type: Array, elementMayBeNull: true} ]); if (e) throw e; array.push.apply(array, items); } Array.clear =3D function Array$clear(array) { /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true} ]); if (e) throw e; array.length =3D 0; } Array.clone =3D function Array$clone(array) { /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true} ]); if (e) throw e; if (array.length =3D=3D=3D 1) { return [array[0]]; } else { return Array.apply(null, array); } } Array.contains =3D function Array$contains(array, item) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "item", mayBeNull: true} ]); if (e) throw e; return (Array.indexOf(array, item) >=3D 0); } Array.dequeue =3D function Array$dequeue(array) { /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true} ]); if (e) throw e; return array.shift(); } Array.forEach =3D function Array$forEach(array, method, instance) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "method", type: Function}, {name: "instance", mayBeNull: true, optional: true} ]); if (e) throw e; for (var i =3D 0, l =3D array.length; i < l; i++) { var elt =3D array[i]; if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, = i, array); } } Array.indexOf =3D function Array$indexOf(array, item, start) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "item", mayBeNull: true, optional: true}, {name: "start", mayBeNull: true, optional: true} ]); if (e) throw e; if (typeof(item) =3D=3D=3D "undefined") return -1; var length =3D array.length; if (length !=3D=3D 0) { start =3D start - 0; if (isNaN(start)) { start =3D 0; } else { if (isFinite(start)) { start =3D start - (start % 1); } if (start < 0) { start =3D Math.max(0, length + start); } } for (var i =3D start; i < length; i++) { if ((typeof(array[i]) !=3D=3D "undefined") && (array[i] = =3D=3D=3D item)) { return i; } } } return -1; } Array.insert =3D function Array$insert(array, index, item) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "index", mayBeNull: true}, {name: "item", mayBeNull: true} ]); if (e) throw e; array.splice(index, 0, item); } Array.parse =3D function Array$parse(value) { /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String, mayBeNull: true} ]); if (e) throw e; if (!value) return []; var v =3D eval(value); if (!Array.isInstanceOfType(v)) throw Error.argument('value', = Sys.Res.arrayParseBadFormat); return v; } Array.remove =3D function Array$remove(array, item) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "item", mayBeNull: true} ]); if (e) throw e; var index =3D Array.indexOf(array, item); if (index >=3D 0) { array.splice(index, 1); } return (index >=3D 0); } Array.removeAt =3D function Array$removeAt(array, index) { /// /// var e =3D Function._validateParams(arguments, [ {name: "array", type: Array, elementMayBeNull: true}, {name: "index", mayBeNull: true} ]); if (e) throw e; array.splice(index, 1); } String.__typeName =3D 'String'; String.__class =3D true; String.prototype.endsWith =3D function String$endsWith(suffix) { /// /// var e =3D Function._validateParams(arguments, [ {name: "suffix", type: String} ]); if (e) throw e; return (this.substr(this.length - suffix.length) =3D=3D=3D suffix); } String.prototype.startsWith =3D function String$startsWith(prefix) { /// /// var e =3D Function._validateParams(arguments, [ {name: "prefix", type: String} ]); if (e) throw e; return (this.substr(0, prefix.length) =3D=3D=3D prefix); } String.prototype.trim =3D function String$trim() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this.replace(/^\s+|\s+$/g, ''); } String.prototype.trimEnd =3D function String$trimEnd() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this.replace(/\s+$/, ''); } String.prototype.trimStart =3D function String$trimStart() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this.replace(/^\s+/, ''); } String.format =3D function String$format(format, args) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String}, {name: "args", mayBeNull: true, parameterArray: true} ]); if (e) throw e; return String._toFormattedString(false, arguments); } String.localeFormat =3D function String$localeFormat(format, args) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "format", type: String}, {name: "args", mayBeNull: true, parameterArray: true} ]); if (e) throw e; return String._toFormattedString(true, arguments); } String._toFormattedString =3D function = String$_toFormattedString(useLocale, args) { var result =3D ''; var format =3D args[0]; for (var i=3D0;;) { var open =3D format.indexOf('{', i); var close =3D format.indexOf('}', i); if ((open < 0) && (close < 0)) { result +=3D format.slice(i); break; } if ((close > 0) && ((close < open) || (open < 0))) { if (format.charAt(close + 1) !=3D=3D '}') { throw Error.argument('format', = Sys.Res.stringFormatBraceMismatch); } result +=3D format.slice(i, close + 1); i =3D close + 2; continue; } result +=3D format.slice(i, open); i =3D open + 1; if (format.charAt(i) =3D=3D=3D '{') { result +=3D '{'; i++; continue; } if (close < 0) throw Error.argument('format', = Sys.Res.stringFormatBraceMismatch); =20 var brace =3D format.substring(i, close); var colonIndex =3D brace.indexOf(':'); var argNumber =3D parseInt((colonIndex < 0)? brace : = brace.substring(0, colonIndex)) + 1; if (isNaN(argNumber)) throw Error.argument('format', = Sys.Res.stringFormatInvalid); var argFormat =3D (colonIndex < 0)? '' : = brace.substring(colonIndex + 1); var arg =3D args[argNumber]; if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) { arg =3D ''; } if (arg.toFormattedString) { result +=3D arg.toFormattedString(argFormat); } else if (useLocale && arg.localeFormat) { result +=3D arg.localeFormat(argFormat); } else if (arg.format) { result +=3D arg.format(argFormat); } else result +=3D arg.toString(); i =3D close + 1; } return result; } Type.registerNamespace('Sys'); Sys.IDisposable =3D function Sys$IDisposable() { throw Error.notImplemented(); } function Sys$IDisposable$dispose() { throw Error.notImplemented(); } Sys.IDisposable.prototype =3D { dispose: Sys$IDisposable$dispose } Sys.IDisposable.registerInterface('Sys.IDisposable'); Sys.StringBuilder =3D function Sys$StringBuilder(initialText) { /// var e =3D Function._validateParams(arguments, [ {name: "initialText", mayBeNull: true, optional: true} ]); if (e) throw e; this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && = initialText !=3D=3D null && initialText !=3D=3D '') ? [initialText.toString()] : []; this._value =3D {}; this._len =3D 0; } function Sys$StringBuilder$append(text) { /// var e =3D Function._validateParams(arguments, [ {name: "text", mayBeNull: true} ]); if (e) throw e; this._parts[this._parts.length] =3D text; } function Sys$StringBuilder$appendLine(text) { /// var e =3D Function._validateParams(arguments, [ {name: "text", mayBeNull: true, optional: true} ]); if (e) throw e; this._parts[this._parts.length] =3D ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D = null) || (text =3D=3D=3D '')) ? '\r\n' : text + '\r\n'; } function Sys$StringBuilder$clear() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._parts =3D []; this._value =3D {}; this._len =3D 0; } function Sys$StringBuilder$isEmpty() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._parts.length =3D=3D=3D 0) return true; return this.toString() =3D=3D=3D ''; } function Sys$StringBuilder$toString(separator) { /// /// var e =3D Function._validateParams(arguments, [ {name: "separator", type: String, mayBeNull: true, optional: = true} ]); if (e) throw e; separator =3D separator || ''; var parts =3D this._parts; if (this._len !=3D=3D parts.length) { this._value =3D {}; this._len =3D parts.length; } var val =3D this._value; if (typeof(val[separator]) =3D=3D=3D 'undefined') { if (separator !=3D=3D '') { for (var i =3D 0; i < parts.length;) { if ((typeof(parts[i]) =3D=3D=3D 'undefined') || = (parts[i] =3D=3D=3D '') || (parts[i] =3D=3D=3D null)) { parts.splice(i, 1); } else { i++; } } } val[separator] =3D this._parts.join(separator); } return val[separator]; } Sys.StringBuilder.prototype =3D { append: Sys$StringBuilder$append, appendLine: Sys$StringBuilder$appendLine, clear: Sys$StringBuilder$clear, isEmpty: Sys$StringBuilder$isEmpty, toString: Sys$StringBuilder$toString } Sys.StringBuilder.registerClass('Sys.StringBuilder'); if (!window.XMLHttpRequest) { window.XMLHttpRequest =3D function window$XMLHttpRequest() { var progIDs =3D [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ]; =20 for (var i =3D 0; i < progIDs.length; i++) { try { var xmlHttp =3D new ActiveXObject(progIDs[i]); return xmlHttp; } catch (ex) { } } =20 return null; } } Sys.Browser =3D {}; Sys.Browser.InternetExplorer =3D {}; Sys.Browser.Firefox =3D {}; Sys.Browser.Safari =3D {}; Sys.Browser.Opera =3D {}; Sys.Browser.agent =3D null; Sys.Browser.hasDebuggerStatement =3D false; Sys.Browser.name =3D navigator.appName; Sys.Browser.version =3D parseFloat(navigator.appVersion); if (navigator.userAgent.indexOf(' MSIE ') > -1) { Sys.Browser.agent =3D Sys.Browser.InternetExplorer; Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/MSIE = (\d+\.\d+)/)[1]); Sys.Browser.hasDebuggerStatement =3D true; } else if (navigator.userAgent.indexOf(' Firefox/') > -1) { Sys.Browser.agent =3D Sys.Browser.Firefox; Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ = Firefox\/(\d+\.\d+)/)[1]); Sys.Browser.name =3D 'Firefox'; Sys.Browser.hasDebuggerStatement =3D true; } else if (navigator.userAgent.indexOf(' Safari/') > -1) { Sys.Browser.agent =3D Sys.Browser.Safari; Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ = Safari\/(\d+\.\d+)/)[1]); Sys.Browser.name =3D 'Safari'; } else if (navigator.userAgent.indexOf('Opera/') > -1) { Sys.Browser.agent =3D Sys.Browser.Opera; } Type.registerNamespace('Sys.UI'); Sys._Debug =3D function Sys$_Debug() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); } function Sys$_Debug$_appendConsole(text) { if ((typeof(Debug) !=3D=3D 'undefined') && = Debug.writeln) { Debug.writeln(text); } if (window.console && window.console.log) { window.console.log(text); } if (window.opera) { window.opera.postError(text); } if (window.debugService) { window.debugService.trace(text); } } function Sys$_Debug$_appendTrace(text) { var traceElement =3D document.getElementById('TraceConsole'); if (traceElement && (traceElement.tagName.toUpperCase() = =3D=3D=3D 'TEXTAREA')) { traceElement.value +=3D text + '\n'; } } function Sys$_Debug$assert(condition, message, displayCaller) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "condition", type: Boolean}, {name: "message", type: String, mayBeNull: true, optional: = true}, {name: "displayCaller", type: Boolean, optional: true} ]); if (e) throw e; if (!condition) { message =3D (displayCaller && this.assert.caller) ? String.format(Sys.Res.assertFailedCaller, message, = this.assert.caller) : String.format(Sys.Res.assertFailed, message); if (confirm(String.format(Sys.Res.breakIntoDebugger, = message))) { this.fail(message); } } } function Sys$_Debug$clearTrace() { var traceElement =3D document.getElementById('TraceConsole'); if (traceElement && (traceElement.tagName.toUpperCase() = =3D=3D=3D 'TEXTAREA')) { traceElement.value =3D ''; } } function Sys$_Debug$fail(message) { /// var e =3D Function._validateParams(arguments, [ {name: "message", type: String, mayBeNull: true} ]); if (e) throw e; this._appendConsole(message); if (Sys.Browser.hasDebuggerStatement) { eval('debugger'); } } function Sys$_Debug$trace(text) { /// var e =3D Function._validateParams(arguments, [ {name: "text"} ]); if (e) throw e; this._appendConsole(text); this._appendTrace(text); } function Sys$_Debug$traceDump(object, name) { /// /// var e =3D Function._validateParams(arguments, [ {name: "object", mayBeNull: true}, {name: "name", type: String, mayBeNull: true, optional: = true} ]); if (e) throw e; var text =3D this._traceDump(object, name, true); } function Sys$_Debug$_traceDump(object, name, recursive, = indentationPadding, loopArray) { name =3D name? name : 'traceDump'; indentationPadding =3D indentationPadding? indentationPadding : = ''; if (object =3D=3D=3D null) { this.trace(indentationPadding + name + ': null'); return; } switch(typeof(object)) { case 'undefined': this.trace(indentationPadding + name + ': Undefined'); break; case 'number': case 'string': case 'boolean': this.trace(indentationPadding + name + ': ' + object); break; default: if (Date.isInstanceOfType(object) || = RegExp.isInstanceOfType(object)) { this.trace(indentationPadding + name + ': ' + = object.toString()); break; } if (!loopArray) { loopArray =3D []; } else if (Array.contains(loopArray, object)) { this.trace(indentationPadding + name + ': ...'); return; } Array.add(loopArray, object); if = ((object =3D=3D window) || (object =3D=3D=3D document) || (window.HTMLElement && (object instanceof = HTMLElement)) || (typeof(object.nodeName) =3D=3D=3D 'string')) { var tag =3D object.tagName? object.tagName : = 'DomElement'; if (object.id) { tag +=3D ' - ' + object.id; } this.trace(indentationPadding + name + ' {' + tag + = '}'); } else { var typeName =3D Object.getTypeName(object); this.trace(indentationPadding + name + = (typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : '')); if ((indentationPadding =3D=3D=3D '') || recursive) = { indentationPadding +=3D " "; var i, length, properties, p, v; if (Array.isInstanceOfType(object)) { length =3D object.length; for (i =3D 0; i < length; i++) { this._traceDump(object[i], '[' + i + = ']', recursive, indentationPadding, loopArray); } } else { for (p in object) { v =3D object[p]; if (!Function.isInstanceOfType(v)) { this._traceDump(v, p, recursive, = indentationPadding, loopArray); } } } } } Array.remove(loopArray, object); } } Sys._Debug.prototype =3D { _appendConsole: Sys$_Debug$_appendConsole, _appendTrace: Sys$_Debug$_appendTrace, assert: Sys$_Debug$assert, clearTrace: Sys$_Debug$clearTrace, fail: Sys$_Debug$fail, trace: Sys$_Debug$trace, traceDump: Sys$_Debug$traceDump, _traceDump: Sys$_Debug$_traceDump } Sys._Debug.registerClass('Sys._Debug'); Sys.Debug =3D new Sys._Debug(); Sys.Debug.isDebug =3D true; function Sys$Enum$parse(value, ignoreCase) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "value", type: String}, {name: "ignoreCase", type: Boolean, optional: true} ]); if (e) throw e; var values, parsed, val; if (ignoreCase) { values =3D this.__lowerCaseValues; if (!values) { this.__lowerCaseValues =3D values =3D {}; var prototype =3D this.prototype; for (var name in prototype) { values[name.toLowerCase()] =3D prototype[name]; } } } else { values =3D this.prototype; } if (!this.__flags) { val =3D (ignoreCase ? value.toLowerCase() : value); parsed =3D values[val.trim()]; if (typeof(parsed) !=3D=3D 'number') throw = Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, = this.__typeName)); return parsed; } else { var parts =3D (ignoreCase ? value.toLowerCase() : = value).split(','); var v =3D 0; for (var i =3D parts.length - 1; i >=3D 0; i--) { var part =3D parts[i].trim(); parsed =3D values[part]; if (typeof(parsed) !=3D=3D 'number') throw = Error.argument('value', String.format(Sys.Res.enumInvalidValue, = value.split(',')[i].trim(), this.__typeName)); v |=3D parsed; } return v; } } function Sys$Enum$toString(value) { /// /// var e =3D Function._validateParams(arguments, [ {name: "value", mayBeNull: true, optional: true} ]); if (e) throw e; if ((typeof(value) =3D=3D=3D 'undefined') || (value = =3D=3D=3D null)) return this.__string; if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw = Error.argumentType('value', Object.getType(value), this); var values =3D this.prototype; var i; if (!this.__flags || (value =3D=3D=3D 0)) { for (i in values) { if (values[i] =3D=3D=3D value) { return i; } } } else { var sorted =3D this.__sortedValues; if (!sorted) { sorted =3D []; for (i in values) { sorted[sorted.length] =3D {key: i, value: values[i]}; } sorted.sort(function(a, b) { return a.value - b.value; }); this.__sortedValues =3D sorted; } var parts =3D []; var v =3D value; for (i =3D sorted.length - 1; i >=3D 0; i--) { var kvp =3D sorted[i]; var vali =3D kvp.value; if (vali =3D=3D=3D 0) continue; if ((vali & value) =3D=3D=3D vali) { parts[parts.length] =3D kvp.key; v -=3D vali; if (v =3D=3D=3D 0) break; } } if (parts.length && v =3D=3D=3D 0) return = parts.reverse().join(', '); } throw Error.argumentOutOfRange('value', value, = String.format(Sys.Res.enumInvalidValue, value, this.__typeName)); } Type.prototype.registerEnum =3D function Type$registerEnum(name, flags) = { /// /// var e =3D Function._validateParams(arguments, [ {name: "name", type: String}, {name: "flags", type: Boolean, optional: true} ]); if (e) throw e; if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw = Error.argument('name', Sys.Res.notATypeName); var parsedName; try { parsedName =3D eval(name); } catch(e) { throw Error.argument('name', Sys.Res.argumentTypeName); } if (parsedName !=3D=3D this) throw Error.argument('name', = Sys.Res.badTypeName); if (window.__registeredTypes[name]) throw = Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, = name)); for (var i in this.prototype) { var val =3D this.prototype[i]; if (!Type.__identifierRegExp.test(i)) throw = Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i)); if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw = Error.invalidOperation(Sys.Res.enumValueNotInteger); if (typeof(this[i]) !=3D=3D 'undefined') throw = Error.invalidOperation(String.format(Sys.Res.enumReservedName, i)); } for (var i in this.prototype) { this[i] =3D this.prototype[i]; } this.__typeName =3D name; this.parse =3D Sys$Enum$parse; this.__string =3D this.toString(); this.toString =3D Sys$Enum$toString; this.__flags =3D flags; this.__enum =3D true; window.__registeredTypes[name] =3D true; } Type.isEnum =3D function Type$isEnum(type) { /// /// var e =3D Function._validateParams(arguments, [ {name: "type", mayBeNull: true} ]); if (e) throw e; if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) = return false; return !!type.__enum; } Type.isFlags =3D function Type$isFlags(type) { /// /// var e =3D Function._validateParams(arguments, [ {name: "type", mayBeNull: true} ]); if (e) throw e; if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) = return false; return !!type.__flags; } Sys.EventHandlerList =3D function Sys$EventHandlerList() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._list =3D {}; } function Sys$EventHandlerList$addHandler(id, handler) { /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String}, {name: "handler", type: Function} ]); if (e) throw e; Array.add(this._getEvent(id, true), handler); } function Sys$EventHandlerList$removeHandler(id, handler) { /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String}, {name: "handler", type: Function} ]); if (e) throw e; var evt =3D this._getEvent(id); if (!evt) return; Array.remove(evt, handler); } function Sys$EventHandlerList$getHandler(id) { /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String} ]); if (e) throw e; var evt =3D this._getEvent(id); if (!evt || (evt.length =3D=3D=3D 0)) return null; evt =3D Array.clone(evt); if (!evt._handler) { evt._handler =3D function(source, args) { for (var i =3D 0, l =3D evt.length; i < l; i++) { evt[i](source, args); } }; } return evt._handler; } function Sys$EventHandlerList$_getEvent(id, create) { if (!this._list[id]) { if (!create) return null; this._list[id] =3D []; } return this._list[id]; } Sys.EventHandlerList.prototype =3D { addHandler: Sys$EventHandlerList$addHandler, removeHandler: Sys$EventHandlerList$removeHandler, getHandler: Sys$EventHandlerList$getHandler, _getEvent: Sys$EventHandlerList$_getEvent } Sys.EventHandlerList.registerClass('Sys.EventHandlerList'); Sys.EventArgs =3D function Sys$EventArgs() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); } Sys.EventArgs.registerClass('Sys.EventArgs'); Sys.EventArgs.Empty =3D new Sys.EventArgs(); Sys.CancelEventArgs =3D function Sys$CancelEventArgs() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); Sys.CancelEventArgs.initializeBase(this); this._cancel =3D false; } function Sys$CancelEventArgs$get_cancel() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._cancel; } function Sys$CancelEventArgs$set_cancel(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Boolean}]); if (e) throw e; this._cancel =3D value; } Sys.CancelEventArgs.prototype =3D { get_cancel: Sys$CancelEventArgs$get_cancel, set_cancel: Sys$CancelEventArgs$set_cancel } Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs); Sys.INotifyPropertyChange =3D function Sys$INotifyPropertyChange() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$INotifyPropertyChange$add_propertyChanged(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; throw Error.notImplemented(); } function Sys$INotifyPropertyChange$remove_propertyChanged(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; throw Error.notImplemented(); } Sys.INotifyPropertyChange.prototype =3D { add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged, remove_propertyChanged: = Sys$INotifyPropertyChange$remove_propertyChanged } Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');= Sys.PropertyChangedEventArgs =3D function = Sys$PropertyChangedEventArgs(propertyName) { /// var e =3D Function._validateParams(arguments, [ {name: "propertyName", type: String} ]); if (e) throw e; Sys.PropertyChangedEventArgs.initializeBase(this); this._propertyName =3D propertyName; } =20 function Sys$PropertyChangedEventArgs$get_propertyName() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._propertyName; } Sys.PropertyChangedEventArgs.prototype =3D { get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName } Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs'= , Sys.EventArgs); Sys.INotifyDisposing =3D function Sys$INotifyDisposing() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$INotifyDisposing$add_disposing(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; throw Error.notImplemented(); } function Sys$INotifyDisposing$remove_disposing(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; throw Error.notImplemented(); } Sys.INotifyDisposing.prototype =3D { add_disposing: Sys$INotifyDisposing$add_disposing, remove_disposing: Sys$INotifyDisposing$remove_disposing } Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing"); Sys.Component =3D function Sys$Component() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (Sys.Application) Sys.Application.registerDisposableObject(this); } function Sys$Component$get_events() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._events) { this._events =3D new Sys.EventHandlerList(); } return this._events; } function Sys$Component$get_id() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._id; } function Sys$Component$set_id(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String}]); if (e) throw e; if (this._idSet) throw = Error.invalidOperation(Sys.Res.componentCantSetIdTwice); this._idSet =3D true; var oldId =3D this.get_id(); if (oldId && Sys.Application.findComponent(oldId)) throw = Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp); this._id =3D value; } function Sys$Component$get_isInitialized() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._initialized; } function Sys$Component$get_isUpdating() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._updating; } function Sys$Component$add_disposing(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().addHandler("disposing", handler); } function Sys$Component$remove_disposing(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().removeHandler("disposing", handler); } function Sys$Component$add_propertyChanged(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().addHandler("propertyChanged", handler); } function Sys$Component$remove_propertyChanged(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().removeHandler("propertyChanged", handler); } function Sys$Component$beginUpdate() { this._updating =3D true; } function Sys$Component$dispose() { if (this._events) { var handler =3D this._events.getHandler("disposing"); if (handler) { handler(this, Sys.EventArgs.Empty); } } delete this._events; Sys.Application.unregisterDisposableObject(this); Sys.Application.removeComponent(this); } function Sys$Component$endUpdate() { this._updating =3D false; if (!this._initialized) this.initialize(); this.updated(); } function Sys$Component$initialize() { this._initialized =3D true; } function Sys$Component$raisePropertyChanged(propertyName) { /// var e =3D Function._validateParams(arguments, [ {name: "propertyName", type: String} ]); if (e) throw e; if (!this._events) return; var handler =3D this._events.getHandler("propertyChanged"); if (handler) { handler(this, new = Sys.PropertyChangedEventArgs(propertyName)); } } function Sys$Component$updated() { } Sys.Component.prototype =3D { _id: null, _idSet: false, _initialized: false, _updating: false, get_events: Sys$Component$get_events, get_id: Sys$Component$get_id, set_id: Sys$Component$set_id, get_isInitialized: Sys$Component$get_isInitialized, get_isUpdating: Sys$Component$get_isUpdating, add_disposing: Sys$Component$add_disposing, remove_disposing: Sys$Component$remove_disposing, add_propertyChanged: Sys$Component$add_propertyChanged, remove_propertyChanged: Sys$Component$remove_propertyChanged, beginUpdate: Sys$Component$beginUpdate, dispose: Sys$Component$dispose, endUpdate: Sys$Component$endUpdate, initialize: Sys$Component$initialize, raisePropertyChanged: Sys$Component$raisePropertyChanged, updated: Sys$Component$updated } Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, = Sys.INotifyPropertyChange, Sys.INotifyDisposing); function Sys$Component$_setProperties(target, properties) { /// /// var e =3D Function._validateParams(arguments, [ {name: "target"}, {name: "properties"} ]); if (e) throw e; var current; var targetType =3D Object.getType(target); var isObject =3D (targetType =3D=3D=3D Object) || (targetType = =3D=3D=3D Sys.UI.DomElement); var isComponent =3D Sys.Component.isInstanceOfType(target) && = !target.get_isUpdating(); if (isComponent) target.beginUpdate(); for (var name in properties) { var val =3D properties[name]; var getter =3D isObject ? null : target["get_" + name]; if (isObject || typeof(getter) !=3D=3D 'function') { var targetVal =3D target[name]; if (!isObject && typeof(targetVal) =3D=3D=3D 'undefined') = throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, = name)); if (!val || (typeof(val) !=3D=3D 'object') || (isObject && = !targetVal)) { target[name] =3D val; } else { Sys$Component$_setProperties(targetVal, val); } } else { var setter =3D target["set_" + name]; if (typeof(setter) =3D=3D=3D 'function') { setter.apply(target, [val]); } else if (val instanceof Array) { current =3D getter.apply(target); if (!(current instanceof Array)) throw new = Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name)); for (var i =3D 0, j =3D current.length, l=3D val.length; = i < l; i++, j++) { current[j] =3D val[i]; } } else if ((typeof(val) =3D=3D=3D 'object') && = (Object.getType(val) =3D=3D=3D Object)) { current =3D getter.apply(target); if ((typeof(current) =3D=3D=3D 'undefined') || (current = =3D=3D=3D null)) throw new = Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, = name)); Sys$Component$_setProperties(current, val); } else { throw new = Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, = name)); } } } if (isComponent) target.endUpdate(); } function Sys$Component$_setReferences(component, references) { for (var name in references) { var setter =3D component["set_" + name]; var reference =3D $find(references[name]); if (typeof(setter) !=3D=3D 'function') throw new = Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, = name)); if (!reference) throw = Error.invalidOperation(String.format(Sys.Res.referenceNotFound, = references[name])); setter.apply(component, [reference]); } } var $create =3D Sys.Component.create =3D function = Sys$Component$create(type, properties, events, references, element) { /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "type", type: Type}, {name: "properties", mayBeNull: true, optional: true}, {name: "events", mayBeNull: true, optional: true}, {name: "references", mayBeNull: true, optional: true}, {name: "element", mayBeNull: true, domElement: true, optional: = true} ]); if (e) throw e; if (!type.inheritsFrom(Sys.Component)) { throw Error.argument('type', = String.format(Sys.Res.createNotComponent, type.getName())); } if (type.inheritsFrom(Sys.UI.Behavior) || = type.inheritsFrom(Sys.UI.Control)) { if (!element) throw Error.argument('element', = Sys.Res.createNoDom); } else if (element) throw Error.argument('element', = Sys.Res.createComponentOnDom); var component =3D (element ? new type(element): new type()); var app =3D Sys.Application; var creatingComponents =3D app.get_isCreatingComponents(); component.beginUpdate(); if (properties) { Sys$Component$_setProperties(component, properties); } if (events) { for (var name in events) { if (!(component["add_" + name] instanceof Function)) throw = new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name)); if (!(events[name] instanceof Function)) throw new = Error.invalidOperation(Sys.Res.eventHandlerNotFunction); component["add_" + name](events[name]); } } app._createdComponents[app._createdComponents.length] =3D component; if (component.get_id()) { app.addComponent(component); } if (creatingComponents) { if (references) { app._addComponentToSecondPass(component, references); } else { component.endUpdate(); } } else { if (references) { Sys$Component$_setReferences(component, references); } component.endUpdate(); } return component; } Sys.UI.MouseButton =3D function Sys$UI$MouseButton() { /// /// /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.UI.MouseButton.prototype =3D { leftButton: 0, middleButton: 1, rightButton: 2 } Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton"); Sys.UI.Key =3D function Sys$UI$Key() { /// /// /// /// /// /// /// /// /// /// /// /// /// /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.UI.Key.prototype =3D { backspace: 8, tab: 9, enter: 13, esc: 27, space: 32, pageUp: 33, pageDown: 34, end: 35, home: 36, left: 37, up: 38, right: 39, down: 40, del: 127 } Sys.UI.Key.registerEnum("Sys.UI.Key"); Sys.UI.DomEvent =3D function Sys$UI$DomEvent(eventObject) { /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "eventObject"} ]); if (e) throw e; var e =3D eventObject; this.rawEvent =3D e; this.altKey =3D e.altKey; if (typeof(e.button) !=3D=3D 'undefined') { this.button =3D (typeof(e.which) !=3D=3D 'undefined') ? e.button = : (e.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton : (e.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton : Sys.UI.MouseButton.leftButton; } if (e.type =3D=3D=3D 'keypress') { this.charCode =3D e.charCode || e.keyCode; } else if (e.keyCode && (e.keyCode =3D=3D=3D 46)) { this.keyCode =3D 127; } else { this.keyCode =3D e.keyCode; } this.clientX =3D e.clientX; this.clientY =3D e.clientY; this.ctrlKey =3D e.ctrlKey; this.target =3D e.target ? e.target : e.srcElement; if (this.target) { var loc =3D Sys.UI.DomElement.getLocation(this.target); this.offsetX =3D (typeof(e.offsetX) !=3D=3D 'undefined') ? = e.offsetX : window.pageXOffset + (e.clientX || 0) - loc.x; this.offsetY =3D (typeof(e.offsetY) !=3D=3D 'undefined') ? = e.offsetY : window.pageYOffset + (e.clientY || 0) - loc.y; } this.screenX =3D e.screenX; this.screenY =3D e.screenY; this.shiftKey =3D e.shiftKey; this.type =3D e.type; } function Sys$UI$DomEvent$preventDefault() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this.rawEvent.preventDefault) { this.rawEvent.preventDefault(); } else if (window.event) { window.event.returnValue =3D false; } } function Sys$UI$DomEvent$stopPropagation() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this.rawEvent.stopPropagation) { this.rawEvent.stopPropagation(); } else if (window.event) { window.event.cancelBubble =3D true; } } Sys.UI.DomEvent.prototype =3D { preventDefault: Sys$UI$DomEvent$preventDefault, stopPropagation: Sys$UI$DomEvent$stopPropagation } Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent'); var $addHandler =3D Sys.UI.DomEvent.addHandler =3D function = Sys$UI$DomEvent$addHandler(element, eventName, handler) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "eventName", type: String}, {name: "handler", type: Function} ]); if (e) throw e; if (!element._events) { element._events =3D {}; } var eventCache =3D element._events[eventName]; if (!eventCache) { element._events[eventName] =3D eventCache =3D []; } var browserHandler; if (element.addEventListener) { browserHandler =3D function(e) { return handler.call(element, new Sys.UI.DomEvent(e)); } element.addEventListener(eventName, browserHandler, false); } else if (element.attachEvent) { browserHandler =3D function() { return handler.call(element, new = Sys.UI.DomEvent(window.event)); } element.attachEvent('on' + eventName, browserHandler); } eventCache[eventCache.length] =3D {handler: handler, browserHandler: = browserHandler}; } var $addHandlers =3D Sys.UI.DomEvent.addHandlers =3D function = Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "events", type: Object}, {name: "handlerOwner", optional: true} ]); if (e) throw e; for (var name in events) { var handler =3D events[name]; if (typeof(handler) !=3D=3D 'function') throw = Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler); if (handlerOwner) { handler =3D Function.createDelegate(handlerOwner, handler); } $addHandler(element, name, handler); } } var $clearHandlers =3D Sys.UI.DomEvent.clearHandlers =3D function = Sys$UI$DomEvent$clearHandlers(element) { /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (element._events) { var cache =3D element._events; for (var name in cache) { var handlers =3D cache[name]; for (var i =3D handlers.length - 1; i >=3D 0; i--) { $removeHandler(element, name, handlers[i].handler); } } element._events =3D null; } } var $removeHandler =3D Sys.UI.DomEvent.removeHandler =3D function = Sys$UI$DomEvent$removeHandler(element, eventName, handler) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "eventName", type: String}, {name: "handler", type: Function} ]); if (e) throw e; var browserHandler =3D null; if ((typeof(element._events) !=3D=3D 'object') || (element._events = =3D=3D null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid); var cache =3D element._events[eventName]; if (!(cache instanceof Array)) throw = Error.invalidOperation(Sys.Res.eventHandlerInvalid); var browserHandler =3D null; for (var i =3D 0, l =3D cache.length; i < l; i++) { if (cache[i].handler =3D=3D=3D handler) { browserHandler =3D cache[i].browserHandler; break; } } if (typeof(browserHandler) !=3D=3D 'function') throw = Error.invalidOperation(Sys.Res.eventHandlerInvalid); if (element.removeEventListener) { element.removeEventListener(eventName, browserHandler, false); } else if (element.detachEvent) { element.detachEvent('on' + eventName, browserHandler); } cache.splice(i, 1); } Sys.IContainer =3D function Sys$IContainer() { throw Error.notImplemented(); } function Sys$IContainer$addComponent(component) { /// var e =3D Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; throw Error.notImplemented(); } function Sys$IContainer$removeComponent(component) { /// var e =3D Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; throw Error.notImplemented(); } function Sys$IContainer$findComponent(id) { /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String} ]); if (e) throw e; throw Error.notImplemented(); } function Sys$IContainer$getComponents() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.IContainer.prototype =3D { addComponent: Sys$IContainer$addComponent, removeComponent: Sys$IContainer$removeComponent, findComponent: Sys$IContainer$findComponent, getComponents: Sys$IContainer$getComponents } Sys.IContainer.registerInterface("Sys.IContainer"); Sys._ScriptLoader =3D function Sys$_ScriptLoader() { this._scriptsToLoad =3D null; this._scriptLoadedDelegate =3D Function.createDelegate(this, = this._scriptLoadedHandler); } function Sys$_ScriptLoader$dispose() { this._stopLoading(); if(this._events) { delete this._events; } this._scriptLoadedDelegate =3D null; =20 } function Sys$_ScriptLoader$loadScripts(scriptTimeout, = allScriptsLoadedCallback, scriptLoadFailedCallback, = scriptLoadTimeoutCallback) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "scriptTimeout", type: Number, integer: true}, {name: "allScriptsLoadedCallback", type: Function, = mayBeNull: true}, {name: "scriptLoadFailedCallback", type: Function, = mayBeNull: true}, {name: "scriptLoadTimeoutCallback", type: Function, = mayBeNull: true} ]); if (e) throw e; if(this._loading) { throw = Error.invalidOperation(Sys.Res.scriptLoaderAlreadyLoading); } this._loading =3D true; this._allScriptsLoadedCallback =3D allScriptsLoadedCallback; this._scriptLoadFailedCallback =3D scriptLoadFailedCallback; this._scriptLoadTimeoutCallback =3D scriptLoadTimeoutCallback; =20 this._loadScriptsInternal(); } function Sys$_ScriptLoader$notifyScriptLoaded() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); =20 if(!this._loading) { return; } this._currentTask._notified++; =20 if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) { =20 if(this._currentTask._notified =3D=3D=3D 1) { = = window.setTimeout(Function.createDelegate(this, function() { = this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true); }), 0); } } } function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) { /// var e =3D Function._validateParams(arguments, [ {name: "scriptAttributes"} ]); if (e) throw e; if(!this._scriptsToLoad) { this._scriptsToLoad =3D []; } Array.add(this._scriptsToLoad, scriptAttributes); } function Sys$_ScriptLoader$queueScriptBlock(scriptContent) { /// var e =3D Function._validateParams(arguments, [ {name: "scriptContent", type: String} ]); if (e) throw e; if(!this._scriptsToLoad) { this._scriptsToLoad =3D []; } Array.add(this._scriptsToLoad, {text: scriptContent}); } function Sys$_ScriptLoader$queueScriptReference(scriptUrl) { /// var e =3D Function._validateParams(arguments, [ {name: "scriptUrl", type: String} ]); if (e) throw e; if(!this._scriptsToLoad) { this._scriptsToLoad =3D []; } Array.add(this._scriptsToLoad, {src: scriptUrl}); } function Sys$_ScriptLoader$_createScriptElement(queuedScript) { var scriptElement =3D document.createElement('SCRIPT'); scriptElement.type =3D 'text/javascript'; for (var attr in queuedScript) { scriptElement[attr] =3D queuedScript[attr]; } =20 return scriptElement; } function Sys$_ScriptLoader$_loadScriptsInternal() { if (this._scriptsToLoad && this._scriptsToLoad.length > = 0) { var nextScript =3D Array.dequeue(this._scriptsToLoad); var scriptElement =3D = this._createScriptElement(nextScript); =20 if (scriptElement.text && Sys.Browser.agent =3D=3D=3D = Sys.Browser.Safari) { scriptElement.innerHTML =3D = scriptElement.text; delete scriptElement.text; } =20 if = (typeof(nextScript.src) =3D=3D=3D "string") { this._currentTask =3D new = Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate); = this._currentTask.execute(); } else { = document.getElementsByTagName('HEAD')[0].appendChild(scriptElement); =20 = Sys._ScriptLoader._clearScript(scriptElement); = this._loadScriptsInternal(); } } else { var callback =3D this._allScriptsLoadedCallback; this._stopLoading(); if(callback) { callback(this); } } } function Sys$_ScriptLoader$_raiseError(multipleCallbacks) { var callback =3D this._scriptLoadFailedCallback; var scriptElement =3D this._currentTask.get_scriptElement(); this._stopLoading(); =20 if(callback) { callback(this, scriptElement, multipleCallbacks); } else { throw = Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, = multipleCallbacks); } } function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, = loaded) { if(loaded && = this._currentTask._notified) { if(this._currentTask._notified > 1) { this._raiseError(true); } else { = Array.add(Sys._ScriptLoader._getLoadedScripts(), scriptElement.src); this._currentTask.dispose(); this._currentTask =3D null; this._loadScriptsInternal(); } } else { this._raiseError(false); } } function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() { var callback =3D this._scriptLoadTimeoutCallback; this._stopLoading(); if(callback) { callback(this); } } function Sys$_ScriptLoader$_stopLoading() { if(this._timeoutCookie) { window.clearTimeout(this._timeoutCookie); this._timeoutCookie =3D null; } if(this._currentTask) { this._currentTask.dispose(); this._currentTask =3D null; } this._scriptsToLoad =3D null; this._loading =3D null; =20 this._allScriptsLoadedCallback =3D null; this._scriptLoadFailedCallback =3D null; this._scriptLoadTimeoutCallback =3D null; } Sys._ScriptLoader.prototype =3D { dispose: Sys$_ScriptLoader$dispose, =20 loadScripts: Sys$_ScriptLoader$loadScripts, =20 notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded, =20 queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag, queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock, queueScriptReference: Sys$_ScriptLoader$queueScriptReference, =20 _createScriptElement: Sys$_ScriptLoader$_createScriptElement, =20 _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal, =20 _raiseError: Sys$_ScriptLoader$_raiseError, =20 _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler, =20 _scriptLoadTimeoutHandler: = Sys$_ScriptLoader$_scriptLoadTimeoutHandler, =20 _stopLoading: Sys$_ScriptLoader$_stopLoading =20 } Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, = Sys.IDisposable); Sys._ScriptLoader.getInstance =3D function = Sys$_ScriptLoader$getInstance() { var sl =3D Sys._ScriptLoader._activeInstance; if(!sl) { sl =3D Sys._ScriptLoader._activeInstance =3D new = Sys._ScriptLoader(); } return sl; } Sys._ScriptLoader.isScriptLoaded =3D function = Sys$_ScriptLoader$isScriptLoaded(scriptSrc) { var dummyScript =3D = document.createElement('script'); dummyScript.src =3D scriptSrc; return Array.contains(Sys._ScriptLoader._getLoadedScripts(), = dummyScript.src); } Sys._ScriptLoader.readLoadedScripts =3D function = Sys$_ScriptLoader$readLoadedScripts() { if(!Sys._ScriptLoader._referencedScripts) { var referencedScripts =3D Sys._ScriptLoader._referencedScripts = =3D []; var existingScripts =3D document.getElementsByTagName('SCRIPT'); for (i =3D existingScripts.length - 1; i >=3D 0; i--) { var scriptNode =3D existingScripts[i]; var scriptSrc =3D scriptNode.src; if (scriptSrc.length) { if (!Array.contains(referencedScripts, scriptSrc)) { Array.add(referencedScripts, scriptSrc); } } } } } Sys._ScriptLoader._clearScript =3D function = Sys$_ScriptLoader$_clearScript(scriptElement) { if (!Sys.Debug.isDebug) { = scriptElement.parentNode.removeChild(scriptElement); } } Sys._ScriptLoader._errorScriptLoadFailed =3D function = Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) { var errorMessage; if(multipleCallbacks) { errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks; } else { errorMessage =3D Sys.Res.scriptLoadFailedDebug; } var displayMessage =3D "Sys.ScriptLoadFailedException: " + = String.format(errorMessage, scriptUrl); var e =3D Error.create(displayMessage, {name: = 'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl }); e.popStackFrame(); return e; } Sys._ScriptLoader._getLoadedScripts =3D function = Sys$_ScriptLoader$_getLoadedScripts() { if(!Sys._ScriptLoader._referencedScripts) { Sys._ScriptLoader._referencedScripts =3D []; Sys._ScriptLoader.readLoadedScripts(); } return Sys._ScriptLoader._referencedScripts; } Sys._ScriptLoaderTask =3D function Sys$_ScriptLoaderTask(scriptElement, = completedCallback) { /// /// var e =3D Function._validateParams(arguments, [ {name: "scriptElement", domElement: true}, {name: "completedCallback", type: Function} ]); if (e) throw e; this._scriptElement =3D scriptElement; this._completedCallback =3D completedCallback; this._notified =3D 0; } function Sys$_ScriptLoaderTask$get_scriptElement() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._scriptElement; } function Sys$_ScriptLoaderTask$dispose() { if(this._disposed) { return; } this._disposed =3D true; this._removeScriptElementHandlers(); Sys._ScriptLoader._clearScript(this._scriptElement); this._scriptElement =3D null; } function Sys$_ScriptLoaderTask$execute() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._addScriptElementHandlers(); = document.getElementsByTagName('HEAD')[0].appendChild(this._scriptElement)= ; } function Sys$_ScriptLoaderTask$_addScriptElementHandlers() { this._scriptLoadDelegate =3D = Function.createDelegate(this, this._scriptLoadHandler); =20 if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) { this._scriptElement.readyState =3D 'loaded'; $addHandler(this._scriptElement, 'load', = this._scriptLoadDelegate); } else { $addHandler(this._scriptElement, 'readystatechange', = this._scriptLoadDelegate); } =20 this._scriptErrorDelegate =3D = Function.createDelegate(this, this._scriptErrorHandler); $addHandler(this._scriptElement, 'error', = this._scriptErrorDelegate); } function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() { if(this._scriptLoadDelegate) { var scriptElement =3D this.get_scriptElement(); if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) = { $removeHandler(scriptElement, 'load', = this._scriptLoadDelegate); } else { $removeHandler(scriptElement, 'readystatechange', = this._scriptLoadDelegate); } $removeHandler(scriptElement, 'error', = this._scriptErrorDelegate); this._scriptErrorDelegate =3D null; this._scriptLoadDelegate =3D null; } } function Sys$_ScriptLoaderTask$_scriptErrorHandler() { if(this._disposed) { return; } =20 this._completedCallback(this.get_scriptElement(), = false); } function Sys$_ScriptLoaderTask$_scriptLoadHandler() { if(this._disposed) { return; } var scriptElement =3D this.get_scriptElement(); if ((scriptElement.readyState !=3D=3D 'loaded') && (scriptElement.readyState !=3D=3D 'complete')) { return; } =20 var _this =3D this; window.setTimeout(function() { _this._completedCallback(scriptElement, true); }, 0); } Sys._ScriptLoaderTask.prototype =3D { get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement, =20 dispose: Sys$_ScriptLoaderTask$dispose, =20 execute: Sys$_ScriptLoaderTask$execute, =20 _addScriptElementHandlers: = Sys$_ScriptLoaderTask$_addScriptElementHandlers, =20 =20 _removeScriptElementHandlers: = Sys$_ScriptLoaderTask$_removeScriptElementHandlers, =20 _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler, =20 _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler =20 } Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, = Sys.IDisposable); Sys.ApplicationLoadEventArgs =3D function = Sys$ApplicationLoadEventArgs(components, isPartialLoad) { /// /// var e =3D Function._validateParams(arguments, [ {name: "components", type: Array, elementType: Sys.Component}, {name: "isPartialLoad", type: Boolean} ]); if (e) throw e; Sys.ApplicationLoadEventArgs.initializeBase(this); this._components =3D components; this._isPartialLoad =3D isPartialLoad; } =20 function Sys$ApplicationLoadEventArgs$get_components() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._components; } function Sys$ApplicationLoadEventArgs$get_isPartialLoad() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._isPartialLoad; } Sys.ApplicationLoadEventArgs.prototype =3D { get_components: Sys$ApplicationLoadEventArgs$get_components, get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad } Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs'= , Sys.EventArgs); Sys._Application =3D function Sys$_Application() { Sys._Application.initializeBase(this); this._disposableObjects =3D []; this._components =3D {}; this._createdComponents =3D []; this._secondPassComponents =3D []; this._unloadHandlerDelegate =3D Function.createDelegate(this, = this._unloadHandler); this._loadHandlerDelegate =3D Function.createDelegate(this, = this._loadHandler); Sys.UI.DomEvent.addHandler(window, "unload", = this._unloadHandlerDelegate); Sys.UI.DomEvent.addHandler(window, "load", = this._loadHandlerDelegate); } function Sys$_Application$get_isCreatingComponents() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._creatingComponents; } function Sys$_Application$add_load(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().addHandler("load", handler); } function Sys$_Application$remove_load(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().removeHandler("load", handler); } function Sys$_Application$add_init(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; if (this._initialized) { handler(this, Sys.EventArgs.Empty); } else { this.get_events().addHandler("init", handler); } } function Sys$_Application$remove_init(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().removeHandler("init", handler); } function Sys$_Application$add_unload(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().addHandler("unload", handler); } function Sys$_Application$remove_unload(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this.get_events().removeHandler("unload", handler); } function Sys$_Application$addComponent(component) { /// var e =3D Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; var id =3D component.get_id(); if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId); if (typeof(this._components[id]) !=3D=3D 'undefined') throw = Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, = id)); this._components[id] =3D component; } function Sys$_Application$beginCreateComponents() { this._creatingComponents =3D true; } function Sys$_Application$dispose() { if (!this._disposing) { this._disposing =3D true; if (window.pageUnload) { window.pageUnload(this, Sys.EventArgs.Empty); } var unloadHandler =3D = this.get_events().getHandler("unload"); if (unloadHandler) { unloadHandler(this, Sys.EventArgs.Empty); } var disposableObjects =3D = Array.clone(this._disposableObjects); for (var i =3D 0, l =3D disposableObjects.length; i < l; = i++) { disposableObjects[i].dispose(); } Array.clear(this._disposableObjects); Sys.UI.DomEvent.removeHandler(window, "unload", = this._unloadHandlerDelegate); if(this._loadHandlerDelegate) { Sys.UI.DomEvent.removeHandler(window, "load", = this._loadHandlerDelegate); this._loadHandlerDelegate =3D null; } var sl =3D Sys._ScriptLoader.getInstance(); if(sl) { sl.dispose(); } Sys._Application.callBaseMethod(this, 'dispose'); } } function Sys$_Application$endCreateComponents() { var components =3D this._secondPassComponents; for (var i =3D 0, l =3D components.length; i < l; i++) { var component =3D components[i].component; Sys$Component$_setReferences(component, = components[i].references); component.endUpdate(); } this._secondPassComponents =3D []; this._creatingComponents =3D false; } function Sys$_Application$findComponent(id, parent) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String}, {name: "parent", mayBeNull: true, optional: true} ]); if (e) throw e; return (parent ? ((Sys.IContainer.isInstanceOfType(parent)) ? parent.findComponent(id) : parent[id] || null) : Sys.Application._components[id] || null); } function Sys$_Application$getComponents() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); var res =3D []; var components =3D this._components; for (var name in components) { res[res.length] =3D components[name]; } return res; } function Sys$_Application$initialize() { if(!this._initialized && !this._initializing) { this._initializing =3D true; = window.setTimeout(Function.createDelegate(this, this._doInitialize), 0); } } function Sys$_Application$notifyScriptLoaded() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); var sl =3D Sys._ScriptLoader.getInstance(); if(sl) { sl.notifyScriptLoaded(); } } function Sys$_Application$registerDisposableObject(object) { /// var e =3D Function._validateParams(arguments, [ {name: "object", type: Sys.IDisposable} ]); if (e) throw e; if (!this._disposing) { this._disposableObjects[this._disposableObjects.length] =3D = object; } } function Sys$_Application$raiseLoad() { var h =3D this.get_events().getHandler("load"); var args =3D new = Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), = !this._initializing); if (h) { h(this, args); } if (window.pageLoad) { window.pageLoad(this, args); } this._createdComponents =3D []; } function Sys$_Application$removeComponent(component) { /// var e =3D Function._validateParams(arguments, [ {name: "component", type: Sys.Component} ]); if (e) throw e; var id =3D component.get_id(); if (id) delete this._components[id]; } function Sys$_Application$unregisterDisposableObject(object) { /// var e =3D Function._validateParams(arguments, [ {name: "object", type: Sys.IDisposable} ]); if (e) throw e; if (!this._disposing) { Array.remove(this._disposableObjects, object); } } function Sys$_Application$_addComponentToSecondPass(component, = references) { this._secondPassComponents[this._secondPassComponents.length] = =3D {component: component, references: references}; } function Sys$_Application$_doInitialize() { Sys._Application.callBaseMethod(this, 'initialize'); var handler =3D this.get_events().getHandler("init"); if (handler) { this.beginCreateComponents(); handler(this, Sys.EventArgs.Empty); this.endCreateComponents(); } this.raiseLoad(); this._initializing =3D false; } function Sys$_Application$_loadHandler() { if(this._loadHandlerDelegate) { Sys.UI.DomEvent.removeHandler(window, "load", = this._loadHandlerDelegate); this._loadHandlerDelegate =3D null; } this.initialize(); } function Sys$_Application$_unloadHandler(event) { this.dispose(); } Sys._Application.prototype =3D { _creatingComponents: false, _disposing: false, get_isCreatingComponents: Sys$_Application$get_isCreatingComponents, add_load: Sys$_Application$add_load, remove_load: Sys$_Application$remove_load, add_init: Sys$_Application$add_init, remove_init: Sys$_Application$remove_init, add_unload: Sys$_Application$add_unload, remove_unload: Sys$_Application$remove_unload, addComponent: Sys$_Application$addComponent, beginCreateComponents: Sys$_Application$beginCreateComponents, dispose: Sys$_Application$dispose, endCreateComponents: Sys$_Application$endCreateComponents, findComponent: Sys$_Application$findComponent, getComponents: Sys$_Application$getComponents, initialize: Sys$_Application$initialize, notifyScriptLoaded: Sys$_Application$notifyScriptLoaded, registerDisposableObject: Sys$_Application$registerDisposableObject, raiseLoad: Sys$_Application$raiseLoad, removeComponent: Sys$_Application$removeComponent, unregisterDisposableObject: = Sys$_Application$unregisterDisposableObject, _addComponentToSecondPass: = Sys$_Application$_addComponentToSecondPass, _doInitialize: Sys$_Application$_doInitialize, =20 _loadHandler: Sys$_Application$_loadHandler, _unloadHandler: Sys$_Application$_unloadHandler } Sys._Application.registerClass('Sys._Application', Sys.Component, = Sys.IContainer); Sys.Application =3D new Sys._Application(); var $find =3D Sys.Application.findComponent; Type.registerNamespace('Sys.Net'); Sys.Net.WebRequestExecutor =3D function Sys$Net$WebRequestExecutor() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._webRequest =3D null; this._resultObject =3D null; } function Sys$Net$WebRequestExecutor$get_webRequest() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._webRequest; } function Sys$Net$WebRequestExecutor$_set_webRequest(value) { if (this.get_started()) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, = 'set_webRequest')); } this._webRequest =3D value; } function Sys$Net$WebRequestExecutor$get_started() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_responseAvailable() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_timedOut() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_aborted() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_responseData() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_statusCode() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_statusText() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_xml() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$get_object() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._resultObject) { this._resultObject =3D = Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(= )); } return this._resultObject; } function Sys$Net$WebRequestExecutor$executeRequest() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$abort() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$getResponseHeader(header) { /// var e =3D Function._validateParams(arguments, [ {name: "header", type: String} ]); if (e) throw e; throw Error.notImplemented(); } function Sys$Net$WebRequestExecutor$getAllResponseHeaders() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.Net.WebRequestExecutor.prototype =3D { get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest, _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest, get_started: Sys$Net$WebRequestExecutor$get_started, get_responseAvailable: = Sys$Net$WebRequestExecutor$get_responseAvailable, get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut, get_aborted: Sys$Net$WebRequestExecutor$get_aborted, get_responseData: Sys$Net$WebRequestExecutor$get_responseData, get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode, get_statusText: Sys$Net$WebRequestExecutor$get_statusText, get_xml: Sys$Net$WebRequestExecutor$get_xml, get_object: Sys$Net$WebRequestExecutor$get_object, executeRequest: Sys$Net$WebRequestExecutor$executeRequest, abort: Sys$Net$WebRequestExecutor$abort, getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader, getAllResponseHeaders: = Sys$Net$WebRequestExecutor$getAllResponseHeaders } Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor'); window.XMLDOM =3D function window$XMLDOM(markup) { if (!window.DOMParser) { var progIDs =3D [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' = ]; for (var i =3D 0; i < progIDs.length; i++) { try { var xmlDOM =3D new ActiveXObject(progIDs[i]); xmlDOM.async =3D false; xmlDOM.loadXML(markup); xmlDOM.setProperty('SelectionLanguage', 'XPath'); return xmlDOM; } catch (ex) { } } return null; } else { try { var domParser =3D new window.DOMParser(); return domParser.parseFromString(markup, 'text/xml'); } catch (ex) { return null; } } return null; } Sys.Net.XMLHttpExecutor =3D function Sys$Net$XMLHttpExecutor() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); Sys.Net.XMLHttpExecutor.initializeBase(this); var _this =3D this; this._xmlHttpRequest =3D null; this._webRequest =3D null; this._responseAvailable =3D false; this._timedOut =3D false; this._timer =3D null; this._aborted =3D false; this._started =3D false; this._onReadyStateChange =3D function () { =20 if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 ) { _this._clearTimer(); _this._responseAvailable =3D true; _this._webRequest.completed(Sys.EventArgs.Empty); if (_this._xmlHttpRequest !=3D null) { _this._xmlHttpRequest.onreadystatechange =3D = Function.emptyMethod; _this._xmlHttpRequest =3D null; } } } this._clearTimer =3D function this$_clearTimer() { if (_this._timer !=3D null) { window.clearTimeout(_this._timer); _this._timer =3D null; } } this._onTimeout =3D function this$_onTimeout() { if (!_this._responseAvailable) { _this._clearTimer(); _this._timedOut =3D true; _this._xmlHttpRequest.onreadystatechange =3D = Function.emptyMethod; _this._xmlHttpRequest.abort(); _this._webRequest.completed(Sys.EventArgs.Empty); _this._xmlHttpRequest =3D null; } } } function Sys$Net$XMLHttpExecutor$get_timedOut() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._timedOut; } function Sys$Net$XMLHttpExecutor$get_started() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._started; } function Sys$Net$XMLHttpExecutor$get_responseAvailable() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._responseAvailable; } function Sys$Net$XMLHttpExecutor$get_aborted() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._aborted; } function Sys$Net$XMLHttpExecutor$executeRequest() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._webRequest =3D this.get_webRequest(); if (this._started) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, = 'executeRequest')); } if (this._webRequest =3D=3D=3D null) { throw Error.invalidOperation(Sys.Res.nullWebRequest); } var body =3D this._webRequest.get_body(); var headers =3D this._webRequest.get_headers(); this._xmlHttpRequest =3D new XMLHttpRequest(); this._xmlHttpRequest.onreadystatechange =3D = this._onReadyStateChange; var verb =3D this._webRequest.get_httpVerb(); this._xmlHttpRequest.open(verb, = this._webRequest.getResolvedUrl(), true ); if (headers) { for (var header in headers) { var val =3D headers[header]; if (typeof(val) !=3D=3D "function") this._xmlHttpRequest.setRequestHeader(header, val); } } if (verb.toLowerCase() =3D=3D=3D "post") { if ((headers =3D=3D=3D null) || = !headers['Content-Type']) { this._xmlHttpRequest.setRequestHeader('Content-Type', = 'application/x-www-form-urlencoded'); } if (!body) { body =3D ""; } } var timeout =3D this._webRequest.get_timeout(); if (timeout > 0) { this._timer =3D = window.setTimeout(Function.createDelegate(this, this._onTimeout), = timeout); } this._xmlHttpRequest.send(body); this._started =3D true; } function Sys$Net$XMLHttpExecutor$getResponseHeader(header) { /// /// var e =3D Function._validateParams(arguments, [ {name: "header", type: String} ]); if (e) throw e; if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'getResponseHeader')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'getResponseHeader')); } var result; try { result =3D this._xmlHttpRequest.getResponseHeader(header); } catch (e) { } if (!result) result =3D ""; return result; } function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'getAllResponseHeaders')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'getAllResponseHeaders')); } return this._xmlHttpRequest.getAllResponseHeaders(); } function Sys$Net$XMLHttpExecutor$get_responseData() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'get_responseData')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'get_responseData')); } return this._xmlHttpRequest.responseText; } function Sys$Net$XMLHttpExecutor$get_statusCode() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'get_statusCode')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'get_statusCode')); } return this._xmlHttpRequest.status; } function Sys$Net$XMLHttpExecutor$get_statusText() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'get_statusText')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'get_statusText')); } return this._xmlHttpRequest.statusText; } function Sys$Net$XMLHttpExecutor$get_xml() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._responseAvailable) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, = 'get_xml')); } if (!this._xmlHttpRequest) { throw = Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, = 'get_xml')); } var xml =3D this._xmlHttpRequest.responseXML; if (!xml || !xml.documentElement) { xml =3D new = XMLDOM(this._xmlHttpRequest.responseText); if (!xml || !xml.documentElement) return null; } else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) = { xml.setProperty('SelectionLanguage', 'XPath'); } if (xml.documentElement.namespaceURI =3D=3D=3D = "http://www.mozilla.org/newlayout/xml/parsererror.xml" && xml.documentElement.tagName =3D=3D=3D "parsererror") { return null; } =20 if (xml.documentElement.firstChild && = xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") { return null; } =20 return xml; } function Sys$Net$XMLHttpExecutor$abort() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._started) { throw = Error.invalidOperation(Sys.Res.cannotAbortBeforeStart); } if (this._aborted || this._responseAvailable || = this._timedOut) return; this._aborted =3D true; this._clearTimer(); if (this._xmlHttpRequest && !this._responseAvailable) { this._xmlHttpRequest.onreadystatechange =3D = Function.emptyMethod; this._xmlHttpRequest.abort(); this._xmlHttpRequest =3D null; var handler =3D = this._webRequest._get_eventHandlerList().getHandler("completed"); if (handler) { handler(this, Sys.EventArgs.Empty); } } } Sys.Net.XMLHttpExecutor.prototype =3D { get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut, get_started: Sys$Net$XMLHttpExecutor$get_started, get_responseAvailable: = Sys$Net$XMLHttpExecutor$get_responseAvailable, get_aborted: Sys$Net$XMLHttpExecutor$get_aborted, executeRequest: Sys$Net$XMLHttpExecutor$executeRequest, getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader, getAllResponseHeaders: = Sys$Net$XMLHttpExecutor$getAllResponseHeaders, get_responseData: Sys$Net$XMLHttpExecutor$get_responseData, get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode, get_statusText: Sys$Net$XMLHttpExecutor$get_statusText, get_xml: Sys$Net$XMLHttpExecutor$get_xml, abort: Sys$Net$XMLHttpExecutor$abort } Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', = Sys.Net.WebRequestExecutor); Sys.Net._WebRequestManager =3D function Sys$Net$_WebRequestManager() { this._this =3D this; this._defaultTimeout =3D 0; this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor"; } function Sys$Net$_WebRequestManager$add_invokingRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("invokingRequest", = handler); } function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) = { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("invokingRequest", = handler); } function Sys$Net$_WebRequestManager$add_completedRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("completedRequest", = handler); } function Sys$Net$_WebRequestManager$remove_completedRequest(handler) = { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("completedRequest", = handler); } function Sys$Net$_WebRequestManager$_get_eventHandlerList() { if (!this._events) { this._events =3D new Sys.EventHandlerList(); } return this._events; } function Sys$Net$_WebRequestManager$get_defaultTimeout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultTimeout; } function Sys$Net$_WebRequestManager$set_defaultTimeout(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Number}]); if (e) throw e; if (value < 0) { throw Error.argumentOutOfRange("value", value, = Sys.Res.invalidTimeout); } this._defaultTimeout =3D value; } function Sys$Net$_WebRequestManager$get_defaultExecutorType() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultExecutorType; } function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String}]); if (e) throw e; this._defaultExecutorType =3D value; } function Sys$Net$_WebRequestManager$executeRequest(webRequest) { /// var e =3D Function._validateParams(arguments, [ {name: "webRequest", type: Sys.Net.WebRequest} ]); if (e) throw e; var executor =3D webRequest.get_executor(); if (!executor) { =20 var failed =3D false; try { var executorType =3D eval(this._defaultExecutorType); executor =3D new executorType(); } catch (e) { failed =3D true; } if (failed || = !Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) { throw Error.argument("defaultExecutorType", = String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType)); } webRequest.set_executor(executor); } if (executor.get_aborted()) { return; } var evArgs =3D new Sys.Net.NetworkRequestEventArgs(webRequest); var handler =3D = this._get_eventHandlerList().getHandler("invokingRequest"); if (handler) { handler(this, evArgs); } if (!evArgs.get_cancel()) { executor.executeRequest(); } } Sys.Net._WebRequestManager.prototype =3D { add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest, remove_invokingRequest: = Sys$Net$_WebRequestManager$remove_invokingRequest, add_completedRequest: = Sys$Net$_WebRequestManager$add_completedRequest, remove_completedRequest: = Sys$Net$_WebRequestManager$remove_completedRequest, _get_eventHandlerList: = Sys$Net$_WebRequestManager$_get_eventHandlerList, get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout, set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout, get_defaultExecutorType: = Sys$Net$_WebRequestManager$get_defaultExecutorType, set_defaultExecutorType: = Sys$Net$_WebRequestManager$set_defaultExecutorType, executeRequest: Sys$Net$_WebRequestManager$executeRequest } Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager'); Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager(); Sys.Net.NetworkRequestEventArgs =3D function = Sys$Net$NetworkRequestEventArgs(webRequest) { /// var e =3D Function._validateParams(arguments, [ {name: "webRequest", type: Sys.Net.WebRequest} ]); if (e) throw e; Sys.Net.NetworkRequestEventArgs.initializeBase(this); this._webRequest =3D webRequest; } function Sys$Net$NetworkRequestEventArgs$get_webRequest() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._webRequest; } Sys.Net.NetworkRequestEventArgs.prototype =3D { get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest } Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEven= tArgs', Sys.CancelEventArgs); Sys.Net.WebRequest =3D function Sys$Net$WebRequest() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); this._url =3D ""; this._headers =3D { }; this._body =3D null; this._userContext =3D null; this._httpVerb =3D null; this._executor =3D null; this._invokeCalled =3D false; this._timeout =3D 0; } function Sys$Net$WebRequest$add_completed(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("completed", handler); } function Sys$Net$WebRequest$remove_completed(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("completed", = handler); } function Sys$Net$WebRequest$completed(eventArgs) { /// var e =3D Function._validateParams(arguments, [ {name: "eventArgs", type: Sys.EventArgs} ]); if (e) throw e; var handler =3D = Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRe= quest"); if (handler) { handler(this._executor, eventArgs); } handler =3D = this._get_eventHandlerList().getHandler("completed"); if (handler) { handler(this._executor, eventArgs); } } function Sys$Net$WebRequest$_get_eventHandlerList() { if (!this._events) { this._events =3D new Sys.EventHandlerList(); } return this._events; } function Sys$Net$WebRequest$get_url() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._url; } function Sys$Net$WebRequest$set_url(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String}]); if (e) throw e; this._url =3D value; } function Sys$Net$WebRequest$get_headers() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._headers; } function Sys$Net$WebRequest$get_httpVerb() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._httpVerb =3D=3D=3D null) { if (this._body =3D=3D=3D null) { return "GET"; } return "POST"; } return this._httpVerb; } function Sys$Net$WebRequest$set_httpVerb(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String}]); if (e) throw e; if (value.length =3D=3D=3D 0) { throw Error.argument('value', Sys.Res.invalidHttpVerb); } this._httpVerb =3D value; } function Sys$Net$WebRequest$get_body() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._body; } function Sys$Net$WebRequest$set_body(value) { var e =3D Function._validateParams(arguments, [{name: "value", = mayBeNull: true}]); if (e) throw e; this._body =3D value; } function Sys$Net$WebRequest$get_userContext() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._userContext; } function Sys$Net$WebRequest$set_userContext(value) { var e =3D Function._validateParams(arguments, [{name: "value", = mayBeNull: true}]); if (e) throw e; this._userContext =3D value; } function Sys$Net$WebRequest$get_executor() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._executor; } function Sys$Net$WebRequest$set_executor(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Sys.Net.WebRequestExecutor}]); if (e) throw e; if (this._executor !=3D=3D null && this._executor.get_started()) = { throw = Error.invalidOperation(Sys.Res.setExecutorAfterActive); } this._executor =3D value; this._executor._set_webRequest(this); } function Sys$Net$WebRequest$get_timeout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._timeout =3D=3D=3D 0) { return Sys.Net.WebRequestManager.get_defaultTimeout(); } return this._timeout; } function Sys$Net$WebRequest$set_timeout(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Number}]); if (e) throw e; if (value < 0) { throw Error.argumentOutOfRange("value", value, = Sys.Res.invalidTimeout); } this._timeout =3D value; } function Sys$Net$WebRequest$getResolvedUrl() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return Sys.Net.WebRequest._resolveUrl(this._url); } function Sys$Net$WebRequest$invoke() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._invokeCalled) { throw Error.invalidOperation(Sys.Res.invokeCalledTwice); } Sys.Net.WebRequestManager.executeRequest(this); this._invokeCalled =3D true; } Sys.Net.WebRequest.prototype =3D { add_completed: Sys$Net$WebRequest$add_completed, remove_completed: Sys$Net$WebRequest$remove_completed, completed: Sys$Net$WebRequest$completed, _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList, get_url: Sys$Net$WebRequest$get_url, set_url: Sys$Net$WebRequest$set_url, get_headers: Sys$Net$WebRequest$get_headers, get_httpVerb: Sys$Net$WebRequest$get_httpVerb, set_httpVerb: Sys$Net$WebRequest$set_httpVerb, get_body: Sys$Net$WebRequest$get_body, set_body: Sys$Net$WebRequest$set_body, get_userContext: Sys$Net$WebRequest$get_userContext, set_userContext: Sys$Net$WebRequest$set_userContext, get_executor: Sys$Net$WebRequest$get_executor, set_executor: Sys$Net$WebRequest$set_executor, get_timeout: Sys$Net$WebRequest$get_timeout, set_timeout: Sys$Net$WebRequest$set_timeout, getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl, invoke: Sys$Net$WebRequest$invoke } Sys.Net.WebRequest._resolveUrl =3D function = Sys$Net$WebRequest$_resolveUrl(url, baseUrl) { if (url && url.indexOf('://') !=3D=3D -1) { return url; } if (!baseUrl || baseUrl.length =3D=3D=3D 0) { var baseElement =3D document.getElementsByTagName('base')[0]; if (baseElement && baseElement.href && baseElement.href.length > = 0) { baseUrl =3D baseElement.href; } else { baseUrl =3D document.URL; } } var qsStart =3D baseUrl.indexOf('?'); if (qsStart !=3D=3D -1) { baseUrl =3D baseUrl.substr(0, qsStart); } baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1); if (!url || url.length =3D=3D=3D 0) { return baseUrl; } if (url.charAt(0) =3D=3D=3D '/') { var slashslash =3D baseUrl.indexOf('://'); if (slashslash =3D=3D=3D -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl1); } var nextSlash =3D baseUrl.indexOf('/', slashslash + 3); if (nextSlash =3D=3D=3D -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl2); } return baseUrl.substr(0, nextSlash) + url; } else { var lastSlash =3D baseUrl.lastIndexOf('/'); if (lastSlash =3D=3D=3D -1) { throw Error.argument("baseUrl", Sys.Res.badBaseUrl3); } return baseUrl.substr(0, lastSlash+1) + url; } } Sys.Net.WebRequest._createQueryString =3D function = Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) { if (!encodeMethod) encodeMethod =3D encodeURIComponent; var sb =3D new Sys.StringBuilder(); var i =3D 0; for (var arg in queryString) { var obj =3D queryString[arg]; if (typeof(obj) =3D=3D=3D "function") continue; var val =3D = Sys.Serialization.JavaScriptSerializer.serialize(obj); if (i !=3D=3D 0) { sb.append('&'); } sb.append(arg); sb.append('=3D'); sb.append(encodeMethod(val)); i++; } return sb.toString(); } Sys.Net.WebRequest._createUrl =3D function = Sys$Net$WebRequest$_createUrl(url, queryString) { if (!queryString) { return url; } var qs =3D Sys.Net.WebRequest._createQueryString(queryString); if (qs.length > 0) { var sep =3D '?'; if (url && url.indexOf('?') !=3D=3D -1) sep =3D '&'; return url + sep + qs; } else { return url; } } Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest'); Sys.Net.WebServiceProxy =3D function Sys$Net$WebServiceProxy() { } function Sys$Net$WebServiceProxy$set_timeout(value) { this._timeout =3D value; } function Sys$Net$WebServiceProxy$get_timeout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._timeout; } function Sys$Net$WebServiceProxy$set_defaultUserContext(value) { this._userContext =3D value; } function Sys$Net$WebServiceProxy$get_defaultUserContext() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._userContext; } function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) = { this._succeeded =3D value; } function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._succeeded; } function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) { this._failed =3D value; } function Sys$Net$WebServiceProxy$get_defaultFailedCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._failed; } function Sys$Net$WebServiceProxy$set_path(value) { this._path =3D value; } function Sys$Net$WebServiceProxy$get_path() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._path; } function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, = useGet, params, onSuccess, onFailure, userContext) { /// /// /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "servicePath", type: String}, {name: "methodName", type: String}, {name: "useGet", type: Boolean}, {name: "params"}, {name: "onSuccess", type: Function, mayBeNull: true, = optional: true}, {name: "onFailure", type: Function, mayBeNull: true, = optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; if (onSuccess =3D=3D=3D null || typeof onSuccess = =3D=3D=3D 'undefined') onSuccess =3D = this.get_defaultSucceededCallback(); if (onFailure =3D=3D=3D null || typeof onFailure =3D=3D=3D = 'undefined') onFailure =3D this.get_defaultFailedCallback(); if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D = 'undefined') userContext =3D this.get_defaultUserContext(); =20 return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, = useGet, params, onSuccess, onFailure, userContext, this.get_timeout()); } Sys.Net.WebServiceProxy.prototype =3D { set_timeout: Sys$Net$WebServiceProxy$set_timeout, get_timeout: Sys$Net$WebServiceProxy$get_timeout, set_defaultUserContext: = Sys$Net$WebServiceProxy$set_defaultUserContext, get_defaultUserContext: = Sys$Net$WebServiceProxy$get_defaultUserContext, set_defaultSucceededCallback: = Sys$Net$WebServiceProxy$set_defaultSucceededCallback, get_defaultSucceededCallback: = Sys$Net$WebServiceProxy$get_defaultSucceededCallback, set_defaultFailedCallback: = Sys$Net$WebServiceProxy$set_defaultFailedCallback, get_defaultFailedCallback: = Sys$Net$WebServiceProxy$get_defaultFailedCallback, set_path: Sys$Net$WebServiceProxy$set_path, get_path: Sys$Net$WebServiceProxy$get_path, _invoke: Sys$Net$WebServiceProxy$_invoke } Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy'); Sys.Net.WebServiceProxy.invoke =3D function = Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, = onSuccess, onFailure, userContext, timeout) { /// /// /// /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "servicePath", type: String}, {name: "methodName", type: String}, {name: "useGet", type: Boolean, optional: true}, {name: "params", mayBeNull: true, optional: true}, {name: "onSuccess", type: Function, mayBeNull: true, optional: = true}, {name: "onFailure", type: Function, mayBeNull: true, optional: = true}, {name: "userContext", mayBeNull: true, optional: true}, {name: "timeout", type: Number, optional: true} ]); if (e) throw e; var request =3D new Sys.Net.WebRequest(); request.get_headers()['Content-Type'] =3D 'application/json; = charset=3Dutf-8'; if (!params) params =3D {}; var urlParams =3D params; if (!useGet || !urlParams) urlParams =3D {}; = request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+methodName,= urlParams)); var body =3D null; if (!useGet) { body =3D = Sys.Serialization.JavaScriptSerializer.serialize(params); if (body =3D=3D=3D "{}") body =3D ""; } request.set_body(body); request.add_completed(onComplete); if (timeout && timeout > 0) request.set_timeout(timeout); request.invoke(); function onComplete(response, eventArgs) { if (response.get_responseAvailable()) { var statusCode =3D response.get_statusCode(); var result =3D null; try { var contentType =3D = response.getResponseHeader("Content-Type"); if (contentType.startsWith("application/json")) { result =3D response.get_object(); } else if (contentType.startsWith("text/xml")) { result =3D response.get_xml(); } else { result =3D response.get_responseData(); } } catch (ex) { } var error =3D response.getResponseHeader("jsonerror"); var errorObj =3D (error =3D=3D=3D "true"); if (errorObj) { result =3D new Sys.Net.WebServiceError(false, = result.Message, result.StackTrace, result.ExceptionType); } if (((statusCode < 200) || (statusCode >=3D 300)) || = errorObj) { if (onFailure) { if (!result || !errorObj) { result =3D new Sys.Net.WebServiceError(false , = String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", ""); } result._statusCode =3D statusCode; onFailure(result, userContext, methodName); } else { var error; if (result && errorObj) { error =3D = result.get_exceptionType() + "-- " + result.get_message(); } else { = error =3D response.get_responseData(); } alert(String.format(Sys.Res.webServiceFailed, = methodName, error)); } } else if (onSuccess) { onSuccess(result, userContext, methodName); } } else { var msg; if (response.get_timedOut()) { msg =3D String.format(Sys.Res.webServiceTimedOut, = methodName); } else { msg =3D String.format(Sys.Res.webServiceFailedNoMsg, = methodName) } if (onFailure) { onFailure(new = Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), = userContext, methodName); } else { alert(msg); } } } return request; } Sys.Net.WebServiceProxy._generateTypedConstructor =3D function = Sys$Net$WebServiceProxy$_generateTypedConstructor(type) { return function(properties) { if (properties) { for (var name in properties) { this[name] =3D properties[name]; } } this.__type =3D type; } } Sys.Net.WebServiceError =3D function Sys$Net$WebServiceError(timedOut, = message, stackTrace, exceptionType) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "timedOut", type: Boolean}, {name: "message", type: String, mayBeNull: true}, {name: "stackTrace", type: String, mayBeNull: true}, {name: "exceptionType", type: String, mayBeNull: true} ]); if (e) throw e; this._timedOut =3D timedOut; this._message =3D message; this._stackTrace =3D stackTrace; this._exceptionType =3D exceptionType; this._statusCode =3D -1; } function Sys$Net$WebServiceError$get_timedOut() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._timedOut; } function Sys$Net$WebServiceError$get_statusCode() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._statusCode; } function Sys$Net$WebServiceError$get_message() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._message; } function Sys$Net$WebServiceError$get_stackTrace() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._stackTrace; } function Sys$Net$WebServiceError$get_exceptionType() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._exceptionType; } Sys.Net.WebServiceError.prototype =3D { get_timedOut: Sys$Net$WebServiceError$get_timedOut, get_statusCode: Sys$Net$WebServiceError$get_statusCode, get_message: Sys$Net$WebServiceError$get_message, get_stackTrace: Sys$Net$WebServiceError$get_stackTrace, get_exceptionType: Sys$Net$WebServiceError$get_exceptionType } Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError'); Type.registerNamespace('Sys.Services'); Sys.Services._ProfileService =3D function Sys$Services$_ProfileService() = { Sys.Services._ProfileService.initializeBase(this); this.properties =3D {}; } Sys.Services._ProfileService.DefaultWebServicePath =3D ''; function Sys$Services$_ProfileService$get_defaultFailedCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultFailedCallback; } function = Sys$Services$_ProfileService$set_defaultFailedCallback(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultFailedCallback =3D value; } function = Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultLoadCompletedCallback; } function = Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLoadCompletedCallback =3D value; } function = Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultSaveCompletedCallback; } function = Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultSaveCompletedCallback =3D value; } function Sys$Services$_ProfileService$get_path() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._path; } function Sys$Services$_ProfileService$set_path(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String, mayBeNull: true}]); if (e) throw e; if((!value) || (!value.length)) { value =3D ''; } this._path =3D value; } function Sys$Services$_ProfileService$get_timeout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._timeout; } function Sys$Services$_ProfileService$set_timeout(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Number}]); if (e) throw e; this._timeout =3D value; } function Sys$Services$_ProfileService$load(propertyNames, = loadCompletedCallback, failedCallback, userContext) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "propertyNames", type: Array, mayBeNull: true, = optional: true, elementType: String}, {name: "loadCompletedCallback", type: Function, mayBeNull: = true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, = optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; var parameters =3D {}; var methodName; if(!propertyNames) { methodName =3D "GetAllPropertiesForCurrentUser"; } else { methodName =3D "GetPropertiesForCurrentUser"; parameters =3D { properties: = this._clonePropertyNames(propertyNames) }; } this._invoke(this._get_path(), methodName, false, parameters, Function.createDelegate(this, = this._onLoadComplete), Function.createDelegate(this, = this._onLoadFailed), = [loadCompletedCallback, failedCallback, userContext]); } function Sys$Services$_ProfileService$save(propertyNames, = saveCompletedCallback, failedCallback, userContext) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "propertyNames", type: Array, mayBeNull: true, = optional: true, elementType: String}, {name: "saveCompletedCallback", type: Function, mayBeNull: = true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, = optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; var flattenedProperties =3D = this._flattenProperties(propertyNames, this.properties); this._invoke(this._get_path(), "SetPropertiesForCurrentUser", false, { values: flattenedProperties }, Function.createDelegate(this, = this._onSaveComplete), Function.createDelegate(this, = this._onSaveFailed), [saveCompletedCallback, = failedCallback, userContext]); } function Sys$Services$_ProfileService$_clonePropertyNames(arr) { var nodups =3D []; var seen =3D {}; for(var i=3D0; i < arr.length; i++) { var prop =3D arr[i]; if(!seen[prop]) { Array.add(nodups, prop); = seen[prop]=3Dtrue; }; } return nodups; } function = Sys$Services$_ProfileService$_flattenProperties(propertyNames, = properties, groupName) { var flattenedProperties =3D {}; var val; var key; if(propertyNames && propertyNames.length =3D=3D=3D 0) { return flattenedProperties; } for (var property in properties) { val =3D properties[property]; key =3D groupName ? groupName + "." + property : property; = if(Sys.Services.ProfileGroup.isInstanceOfType(val)) { var groupProperties =3D = this._flattenProperties(propertyNames, val, key); = for(var subKey in = groupProperties) { var subVal =3D groupProperties[subKey]; flattenedProperties[subKey] =3D subVal; } } else { if(!propertyNames || = Array.indexOf(propertyNames, key) !=3D=3D -1) { flattenedProperties[key] =3D val; } } } return flattenedProperties; } function Sys$Services$_ProfileService$_get_path() { var path =3D this.get_path(); if(!path.length) { path =3D Sys.Services._ProfileService.DefaultWebServicePath; } if(!path || !path.length) { throw Error.invalidOperation(Sys.Res.servicePathNotSet); } return path; } function Sys$Services$_ProfileService$_onLoadComplete(result, = context, methodName) { if(typeof(result) !=3D=3D "object") { throw = Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,= methodName, "Object")); } var unflattened =3D this._unflattenProperties(result); for(var name in unflattened) { this.properties[name] =3D unflattened[name]; } =20 var userCallback =3D context[0]; var callback =3D userCallback ? userCallback : = this._defaultLoadCompletedCallback; if(callback) { callback(result.length, context[2], = "Sys.Services.ProfileService.load"); } } function Sys$Services$_ProfileService$_onLoadFailed(err, context, = methodName) { var userCallback =3D context[1]; var callback =3D userCallback ? userCallback : = this._defaultFailedCallback; if(callback) { callback(err, context[2], = "Sys.Services.ProfileService.load"); } } function Sys$Services$_ProfileService$_onSaveComplete(result, = context, methodName) { if(typeof(result) !=3D=3D "number") { throw = Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,= methodName, "Number")); } =20 var userCallback =3D context[0]; var userContext =3D context[2]; var callback =3D userCallback ? userCallback : = this._defaultSaveCompletedCallback; if(callback) { callback(result, userContext, = "Sys.Services.ProfileService.save"); } } function Sys$Services$_ProfileService$_onSaveFailed(err, context, = methodName) { var userCallback =3D context[1]; var userContext =3D context[2]; var callback =3D userCallback ? userCallback : = this._defaultFailedCallback; if(callback) { callback(err, userContext, = "Sys.Services.ProfileService.save"); } } function = Sys$Services$_ProfileService$_unflattenProperties(properties) { var unflattenedProperties =3D {}; var dotIndex; var val; var count =3D 0; for(var key in properties) { count++; val =3D properties[key]; dotIndex =3D key.indexOf('.'); if(dotIndex !=3D=3D -1) { var groupName =3D key.substr(0, dotIndex); key =3D key.substr(dotIndex+1); var group =3D unflattenedProperties[groupName]; if((!group) || = (!Sys.Services.ProfileGroup.isInstanceOfType(group))) { group =3D new Sys.Services.ProfileGroup(); unflattenedProperties[groupName] =3D group; } group[key] =3D val; } else { unflattenedProperties[key] =3D val; } } properties.length =3D count; return unflattenedProperties; } Sys.Services._ProfileService.prototype =3D { _defaultFailedCallback: null, _defaultLoadCompletedCallback: null, _defaultSaveCompletedCallback: null, _path: '', _timeout: 0, get_defaultFailedCallback: = Sys$Services$_ProfileService$get_defaultFailedCallback, set_defaultFailedCallback: = Sys$Services$_ProfileService$set_defaultFailedCallback, get_defaultLoadCompletedCallback: = Sys$Services$_ProfileService$get_defaultLoadCompletedCallback, set_defaultLoadCompletedCallback: = Sys$Services$_ProfileService$set_defaultLoadCompletedCallback, get_defaultSaveCompletedCallback: = Sys$Services$_ProfileService$get_defaultSaveCompletedCallback, set_defaultSaveCompletedCallback: = Sys$Services$_ProfileService$set_defaultSaveCompletedCallback, =20 =20 get_path: Sys$Services$_ProfileService$get_path, set_path: Sys$Services$_ProfileService$set_path, =20 get_timeout: Sys$Services$_ProfileService$get_timeout, set_timeout: Sys$Services$_ProfileService$set_timeout, =20 load: Sys$Services$_ProfileService$load, save: Sys$Services$_ProfileService$save, =20 _clonePropertyNames: = Sys$Services$_ProfileService$_clonePropertyNames, =20 _flattenProperties: = Sys$Services$_ProfileService$_flattenProperties, =20 _get_path: Sys$Services$_ProfileService$_get_path, =20 _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete, =20 _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed, =20 _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete, =20 _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed, =20 _unflattenProperties: = Sys$Services$_ProfileService$_unflattenProperties } Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService'= , Sys.Net.WebServiceProxy); Sys.Services.ProfileService =3D new Sys.Services._ProfileService(); Sys.Services.ProfileGroup =3D function = Sys$Services$ProfileGroup(properties) { /// var e =3D Function._validateParams(arguments, [ {name: "properties", mayBeNull: true, optional: true} ]); if (e) throw e; if(properties) { for(var property in properties) { this[property] =3D properties[property]; } } } Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup'); Sys.Services._AuthenticationService =3D function = Sys$Services$_AuthenticationService() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); Sys.Services._AuthenticationService.initializeBase(this); } Sys.Services._AuthenticationService.DefaultWebServicePath =3D ''; function = Sys$Services$_AuthenticationService$get_defaultFailedCallback() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultFailedCallback; } function = Sys$Services$_AuthenticationService$set_defaultFailedCallback(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultFailedCallback =3D value; } function = Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() = { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultLoginCompletedCallback; } function = Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(val= ue) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLoginCompletedCallback =3D value; } function = Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() = { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._defaultLogoutCompletedCallback; } function = Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(va= lue) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Function, mayBeNull: true}]); if (e) throw e; this._defaultLogoutCompletedCallback =3D value; } function Sys$Services$_AuthenticationService$get_isLoggedIn() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._authenticated; } function Sys$Services$_AuthenticationService$get_path() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._path; } function Sys$Services$_AuthenticationService$set_path(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String, mayBeNull: true}]); if (e) throw e; if((!value) || (!value.length)) { value =3D ''; } this._path =3D value; } function Sys$Services$_AuthenticationService$get_timeout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._timeout; } function Sys$Services$_AuthenticationService$set_timeout(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Number}]); if (e) throw e; this._timeout =3D value; } function Sys$Services$_AuthenticationService$login(username, = password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, = failedCallback, userContext) { /// /// /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "username", type: String}, {name: "password", type: String, mayBeNull: true}, {name: "isPersistent", type: Boolean, mayBeNull: true, = optional: true}, {name: "customInfo", type: String, mayBeNull: true, = optional: true}, {name: "redirectUrl", type: String, mayBeNull: true, = optional: true}, {name: "loginCompletedCallback", type: Function, mayBeNull: = true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, = optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; this._invoke(this._get_path(), "Login", false, { userName: username, password: = password, createPersistentCookie: isPersistent }, Function.createDelegate(this, = this._onLoginComplete), Function.createDelegate(this, = this._onLoginFailed), [username, password, = isPersistent, redirectUrl, loginCompletedCallback, failedCallback, = userContext]); } function Sys$Services$_AuthenticationService$logout(redirectUrl, = logoutCompletedCallback, failedCallback, userContext) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "redirectUrl", type: String, mayBeNull: true, = optional: true}, {name: "logoutCompletedCallback", type: Function, mayBeNull: = true, optional: true}, {name: "failedCallback", type: Function, mayBeNull: true, = optional: true}, {name: "userContext", mayBeNull: true, optional: true} ]); if (e) throw e; this._invoke(this._get_path(), "Logout", false, {},=20 Function.createDelegate(this, = this._onLogoutComplete), Function.createDelegate(this, = this._onLogoutFailed), [redirectUrl, = logoutCompletedCallback, failedCallback, userContext]); } function Sys$Services$_AuthenticationService$_get_path() { var path =3D this.get_path(); if(!path.length) { path =3D = Sys.Services._AuthenticationService.DefaultWebServicePath; } if(!path || !path.length) { throw Error.invalidOperation(Sys.Res.servicePathNotSet); } return path; } function = Sys$Services$_AuthenticationService$_onLoginComplete(result, context, = methodName) { if(typeof(result) !=3D=3D "boolean") { throw = Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,= methodName, "Boolean")); } =20 var redirectUrl =3D context[3]; var userCallback =3D context[4]; var userContext =3D context[6]; var callback =3D userCallback ? userCallback : = this._defaultLoginCompletedCallback; =20 if(result) { this._authenticated =3D true; if(callback) { callback(true, userContext, = "Sys.Services.AuthenticationService.login"); } =20 if(typeof(redirectUrl) !=3D=3D "undefined" && redirectUrl = !=3D=3D null) { window.location.href =3D redirectUrl; } } else if (callback) { callback(false, userContext, = "Sys.Services.AuthenticationService.login"); } } function Sys$Services$_AuthenticationService$_onLoginFailed(err, = context, methodName) { var userCallback =3D context[5]; var callback =3D userCallback ? userCallback : = this._defaultFailedCallback; if(callback) { callback(err, context[6], = "Sys.Services.AuthenticationService.login"); } } function = Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, = methodName) { if(result !=3D=3D null) { throw = Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,= methodName, "null")); } =20 var redirectUrl =3D context[0]; var userCallback =3D context[1]; var userContext =3D context[3]; var callback =3D userCallback ? userCallback : = this._defaultLogoutCompletedCallback; this._authenticated =3D false; =20 if (callback) { callback(null, userContext, = "Sys.Services.AuthenticationService.logout"); } =20 if(!redirectUrl) { window.location.reload(); } else { window.location.href =3D redirectUrl; } } function Sys$Services$_AuthenticationService$_onLogoutFailed(err, = context, methodName) { var userCallback =3D context[2]; var callback =3D userCallback ? userCallback : = this._defaultFailedCallback; if(callback) { callback(err, context[3], = "Sys.Services.AuthenticationService.logout"); } } function = Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) { this._authenticated =3D authenticated; } Sys.Services._AuthenticationService.prototype =3D { _defaultFailedCallback: null, _defaultLoginCompletedCallback: null, _defaultLogoutCompletedCallback: null, _path: '', _timeout: 0, _authenticated: false, =20 get_defaultFailedCallback: = Sys$Services$_AuthenticationService$get_defaultFailedCallback, set_defaultFailedCallback: = Sys$Services$_AuthenticationService$set_defaultFailedCallback, get_defaultLoginCompletedCallback: = Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback, set_defaultLoginCompletedCallback: = Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback, get_defaultLogoutCompletedCallback: = Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback, set_defaultLogoutCompletedCallback: = Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback, get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn, get_path: Sys$Services$_AuthenticationService$get_path, set_path: Sys$Services$_AuthenticationService$set_path, =20 get_timeout: Sys$Services$_AuthenticationService$get_timeout, set_timeout: Sys$Services$_AuthenticationService$set_timeout, =20 =20 login: Sys$Services$_AuthenticationService$login, =20 logout: Sys$Services$_AuthenticationService$logout, =20 _get_path: Sys$Services$_AuthenticationService$_get_path, =20 _onLoginComplete: = Sys$Services$_AuthenticationService$_onLoginComplete, =20 _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed, =20 _onLogoutComplete: = Sys$Services$_AuthenticationService$_onLogoutComplete, =20 _onLogoutFailed: = Sys$Services$_AuthenticationService$_onLogoutFailed, =20 _setAuthenticated: = Sys$Services$_AuthenticationService$_setAuthenticated =20 } Sys.Services._AuthenticationService.registerClass('Sys.Services._Authenti= cationService', Sys.Net.WebServiceProxy); Sys.Services.AuthenticationService =3D new = Sys.Services._AuthenticationService(); Type.registerNamespace('Sys.Serialization'); Sys.Serialization.JavaScriptSerializer =3D function = Sys$Serialization$JavaScriptSerializer() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); } Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J= avaScriptSerializer'); Sys.Serialization.JavaScriptSerializer._stringRegEx =3D new = RegExp('["\b\f\n\r\t\\\\\x00-\x1F]', 'i'); Sys.Serialization.JavaScriptSerializer._serializeWithBuilder =3D = function = Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, = stringBuilder, sort) { var i; switch (typeof object) { case 'object': if (object) { if (Array.isInstanceOfType(object)) { stringBuilder.append('['); for (i =3D 0; i < object.length; ++i) { if (i > 0) { stringBuilder.append(','); } = Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], = stringBuilder); } stringBuilder.append(']'); } else { if = (Date.isInstanceOfType(object)) { stringBuilder.append('"\\/Date('); stringBuilder.append(object.getTime()); stringBuilder.append(')\\/"'); break; } var properties =3D []; var propertyCount =3D 0; for (var name in object) { if (name.startsWith('$')) { continue; } properties[propertyCount++] =3D name; } if (sort) properties.sort(); stringBuilder.append('{'); var needComma =3D false; for (i=3D0; i=3D ' ') { if (curChar =3D=3D=3D '\\' || = curChar =3D=3D=3D '"') { stringBuilder.append('\\'); } stringBuilder.append(curChar); } else { switch (curChar) { case '\b': stringBuilder.append('\\b'); break; case '\f': stringBuilder.append('\\f'); break; case '\n': stringBuilder.append('\\n'); break; case '\r': stringBuilder.append('\\r'); break; case '\t': stringBuilder.append('\\t'); break; default: = stringBuilder.append('\\u00'); if (curChar.charCodeAt() < 16) = stringBuilder.append('0'); = stringBuilder.append(curChar.charCodeAt().toString(16)); } } } } else { stringBuilder.append(object); } stringBuilder.append('"'); break; case 'boolean': stringBuilder.append(object.toString()); break; default: stringBuilder.append('null'); break; } } Sys.Serialization.JavaScriptSerializer.serialize =3D function = Sys$Serialization$JavaScriptSerializer$serialize(object) { /// /// var e =3D Function._validateParams(arguments, [ {name: "object", mayBeNull: true} ]); if (e) throw e; var stringBuilder =3D new Sys.StringBuilder(); Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, = stringBuilder, false); return stringBuilder.toString(); } Sys.Serialization.JavaScriptSerializer.deserialize =3D function = Sys$Serialization$JavaScriptSerializer$deserialize(data) { /// /// var e =3D Function._validateParams(arguments, [ {name: "data", type: String} ]); if (e) throw e; if (data.length =3D=3D=3D 0) throw Error.argument('data', = Sys.Res.cannotDeserializeEmptyString); =20 try { =20 var exp =3D data.replace(new = RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)\\)\\\\/\\"', 'g'), "$1new = Date($2)"); return eval('(' + exp + ')'); } catch (e) { throw Error.argument('data', = Sys.Res.cannotDeserializeInvalidJson); } } Sys.CultureInfo =3D function Sys$CultureInfo(name, numberFormat, = dateTimeFormat) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "name", type: String}, {name: "numberFormat", type: Object}, {name: "dateTimeFormat", type: Object} ]); if (e) throw e; this.name =3D name; this.numberFormat =3D numberFormat; this.dateTimeFormat =3D dateTimeFormat; } function Sys$CultureInfo$_getDateTimeFormats() { if (! this._dateTimeFormats) { var dtf =3D this.dateTimeFormat; this._dateTimeFormats =3D [ dtf.MonthDayPattern, dtf.YearMonthPattern, dtf.ShortDatePattern, dtf.ShortTimePattern, dtf.LongDatePattern, dtf.LongTimePattern, dtf.FullDateTimePattern, dtf.RFC1123Pattern, dtf.SortableDateTimePattern, dtf.UniversalSortableDateTimePattern ]; } return this._dateTimeFormats; } function Sys$CultureInfo$_getMonthIndex(value) { if (!this._upperMonths) { this._upperMonths =3D = this._toUpperArray(this.dateTimeFormat.MonthNames); } return Array.indexOf(this._upperMonths, this._toUpper(value)); } function Sys$CultureInfo$_getAbbrMonthIndex(value) { if (!this._upperAbbrMonths) { this._upperAbbrMonths =3D = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames); } return Array.indexOf(this._upperMonths, this._toUpper(value)); } function Sys$CultureInfo$_getDayIndex(value) { if (!this._upperDays) { this._upperDays =3D = this._toUpperArray(this.dateTimeFormat.DayNames); } return Array.indexOf(this._upperDays, this._toUpper(value)); } function Sys$CultureInfo$_getAbbrDayIndex(value) { if (!this._upperAbbrDays) { this._upperAbbrDays =3D = this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames); } return Array.indexOf(this._upperAbbrDays, this._toUpper(value)); } function Sys$CultureInfo$_toUpperArray(arr) { var result =3D []; for (var i =3D 0, il =3D arr.length; i < il; i++) { result[i] =3D this._toUpper(arr[i]); } return result; } function Sys$CultureInfo$_toUpper(value) { return value.split("\u00A0").join(' = ').toUpperCase(); } Sys.CultureInfo.prototype =3D { _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats, _getMonthIndex: Sys$CultureInfo$_getMonthIndex, _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex, _getDayIndex: Sys$CultureInfo$_getDayIndex, _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex, _toUpperArray: Sys$CultureInfo$_toUpperArray, _toUpper: Sys$CultureInfo$_toUpper } Sys.CultureInfo._parse =3D function Sys$CultureInfo$_parse(value) { var cultureInfo =3D = Sys.Serialization.JavaScriptSerializer.deserialize(value); return new Sys.CultureInfo(cultureInfo.name, = cultureInfo.numberFormat, cultureInfo.dateTimeFormat); } Sys.CultureInfo.registerClass('Sys.CultureInfo'); Sys.CultureInfo.InvariantCulture =3D = Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits= ":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes"= :[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparat= or":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePatt= ern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegat= ivePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","Nu= mberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":= ",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","Posi= tiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","Per= centGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","Na= tiveDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution"= :1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTi= me":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","Algor= ithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnl= y":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"Ful= lDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, = dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM = dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy = HH\':\'mm\':\'ss = \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort= ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar= ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd = HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy = MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"= ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda= y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev= iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","= Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","= May","June","July","August","September","October","November","December","= "],"IsReadOnly":true,"NativeCalendarName":"Gregorian = Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",= "Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu= ary","February","March","April","May","June","July","August","September",= "October","November","December",""]}}'); if (typeof(__cultureInfo) =3D=3D=3D 'undefined') { var __cultureInfo =3D = '{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim= alSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroup= Sizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","Currency= Symbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegative= Pattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"Negativ= eInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"= NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositiveP= attern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","Percent= DecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",= ","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","= 2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{= "AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@= ","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarT= ype":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparat= or":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dd= dd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, = yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM = dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy = HH\':\'mm\':\'ss = \'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm = tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","= TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd= HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, = yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"= ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda= y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev= iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","= Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","= May","June","July","August","September","October","November","December","= "],"IsReadOnly":false,"NativeCalendarName":"Gregorian = Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",= "Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu= ary","February","March","April","May","June","July","August","September",= "October","November","December",""]}}'; } Sys.CultureInfo.CurrentCulture =3D = Sys.CultureInfo._parse(__cultureInfo); delete __cultureInfo; Sys.UI.Point =3D function Sys$UI$Point(x, y) { /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true} ]); if (e) throw e; this.x =3D x; this.y =3D y; } Sys.UI.Point.registerClass('Sys.UI.Point'); Sys.UI.Bounds =3D function Sys$UI$Bounds(x, y, width, height) { /// /// /// /// /// /// /// /// var e =3D Function._validateParams(arguments, [ {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true}, {name: "height", type: Number, integer: true}, {name: "width", type: Number, integer: true} ]); if (e) throw e; this.x =3D x; this.y =3D y; this.height =3D height; this.width =3D width; } Sys.UI.Bounds.registerClass('Sys.UI.Bounds'); Sys.UI.DomElement =3D function Sys$UI$DomElement() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.UI.DomElement.registerClass('Sys.UI.DomElement'); Sys.UI.DomElement.addCssClass =3D function = Sys$UI$DomElement$addCssClass(element, className) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; if (!Sys.UI.DomElement.containsCssClass(element, className)) { if (element.className =3D=3D=3D '') { element.className =3D className; } else { element.className +=3D ' ' + className; } } } Sys.UI.DomElement.containsCssClass =3D function = Sys$UI$DomElement$containsCssClass(element, className) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; return Array.contains(element.className.split(' '), className); } Sys.UI.DomElement.getBounds =3D function = Sys$UI$DomElement$getBounds(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; var offset =3D Sys.UI.DomElement.getLocation(element); return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || = 0, element.offsetHeight || 0); } var $get =3D Sys.UI.DomElement.getElementById =3D function = Sys$UI$DomElement$getElementById(id, element) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "id", type: String}, {name: "element", mayBeNull: true, domElement: true, optional: = true} ]); if (e) throw e; if (!element) return document.getElementById(id); if (element.getElementById) return element.getElementById(id); var nodeQueue =3D []; var childNodes =3D element.childNodes; for (var i =3D 0; i < childNodes.length; i++) { var node =3D childNodes[i]; if (node.nodeType =3D=3D 1) { nodeQueue[nodeQueue.length] =3D node; } } while (nodeQueue.length) { node =3D nodeQueue.shift(); if (node.id =3D=3D id) { return node; } childNodes =3D node.childNodes; for (i =3D 0; i < childNodes.length; i++) { node =3D childNodes[i]; if (node.nodeType =3D=3D 1) { nodeQueue[nodeQueue.length] =3D node; } } } return null; } switch(Sys.Browser.agent) { case Sys.Browser.InternetExplorer: Sys.UI.DomElement.getLocation =3D function = Sys$UI$DomElement$getLocation(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (element.self || element.nodeType =3D=3D=3D = 9) return new Sys.UI.Point(0,0); var clientRects =3D = element.getClientRects(); if (!clientRects || !clientRects.length) { return new Sys.UI.Point(0,0); } var w =3D element.ownerDocument.parentWindow; var offsetL =3D = w.screenLeft - top.screenLeft - top.document.documentElement.scrollLeft = + 2; var offsetT =3D w.screenTop - top.screenTop - = top.document.documentElement.scrollTop + 2; = var f =3D w.frameElement || null; if (f) { = var fstyle =3D f.currentStyle; offsetL +=3D (f.frameBorder || 1) * 2 + (parseInt(fstyle.paddingLeft) || 0) + (parseInt(fstyle.borderLeftWidth) || 0) - element.ownerDocument.documentElement.scrollLeft; offsetT +=3D (f.frameBorder || 1) * 2 + (parseInt(fstyle.paddingTop) || 0) + (parseInt(fstyle.borderTopWidth) || 0) - element.ownerDocument.documentElement.scrollTop; } var clientRect =3D clientRects[0]; return new Sys.UI.Point( clientRect.left - offsetL, clientRect.top - offsetT); } break; case Sys.Browser.Safari: Sys.UI.DomElement.getLocation =3D function = Sys$UI$DomElement$getLocation(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if ((element.window && (element.window =3D=3D=3D = element)) || element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0); var offsetX =3D 0; var offsetY =3D 0; var previous =3D null; var previousStyle =3D null; var currentStyle; for (var parent =3D element; parent; previous =3D parent, = previousStyle =3D currentStyle, parent =3D parent.offsetParent) { currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(parent); var tagName =3D parent.tagName; = if ((parent.offsetLeft || parent.offsetTop) && ((tagName !=3D=3D "BODY") || (!previousStyle || = previousStyle.position !=3D=3D "absolute"))) { offsetX +=3D parent.offsetLeft; offsetY +=3D parent.offsetTop; } } currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(element); var elementPosition =3D currentStyle ? currentStyle.position = : null; var elementPositioned =3D elementPosition && = (elementPosition !=3D=3D "static"); if (!elementPosition || (elementPosition !=3D=3D = "absolute")) { for (var parent =3D element.parentNode; = parent; parent =3D parent.parentNode) { tagName =3D parent.tagName; if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D = "HTML") && (parent.scrollLeft || parent.scrollTop)) { offsetX -=3D (parent.scrollLeft || 0); offsetY -=3D (parent.scrollTop || 0); } currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(parent); var parentPosition =3D currentStyle ? = currentStyle.position : null; if (parentPosition && = (parentPosition =3D=3D=3D "absolute")) break; } } return new Sys.UI.Point(offsetX, offsetY); } break; case Sys.Browser.Opera: Sys.UI.DomElement.getLocation =3D function = Sys$UI$DomElement$getLocation(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if ((element.window && (element.window =3D=3D=3D = element)) || element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0); var offsetX =3D 0; var offsetY =3D 0; var previous =3D null; for (var parent =3D element; parent; previous =3D parent, = parent =3D parent.offsetParent) { var tagName =3D parent.tagName; offsetX +=3D parent.offsetLeft || 0; offsetY +=3D parent.offsetTop || 0; } var elementPosition =3D element.style.position; var elementPositioned =3D elementPosition && = (elementPosition !=3D=3D "static"); for (var parent =3D element.parentNode; parent; = parent =3D parent.parentNode) { tagName =3D parent.tagName; if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") = && (parent.scrollLeft || parent.scrollTop) && ((elementPositioned && ((parent.style.overflow =3D=3D=3D "scroll") || = (parent.style.overflow =3D=3D=3D "auto"))))) { =20 offsetX -=3D (parent.scrollLeft || 0); offsetY -=3D (parent.scrollTop || 0); } var parentPosition =3D (parent && parent.style) ? = parent.style.position : null; elementPositioned =3D elementPositioned = || (parentPosition && (parentPosition !=3D=3D "static")); } return new Sys.UI.Point(offsetX, offsetY); } break; default: Sys.UI.DomElement.getLocation =3D function = Sys$UI$DomElement$getLocation(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if ((element.window && (element.window =3D=3D=3D = element)) || element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0); var offsetX =3D 0; var offsetY =3D 0; var previous =3D null; var previousStyle =3D null; var currentStyle =3D null; for (var parent =3D element; parent; previous =3D parent, = previousStyle =3D currentStyle, parent =3D parent.offsetParent) { var tagName =3D parent.tagName; currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(parent); if ((parent.offsetLeft = || parent.offsetTop) && !((tagName =3D=3D=3D "BODY") && (!previousStyle || previousStyle.position !=3D=3D = "absolute"))) { offsetX +=3D parent.offsetLeft; offsetY +=3D parent.offsetTop; } if (previous !=3D=3D = null && currentStyle) { = if = ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D "TD") && (tagName !=3D=3D = "HTML")) { offsetX +=3D = parseInt(currentStyle.borderLeftWidth) || 0; offsetY +=3D = parseInt(currentStyle.borderTopWidth) || 0; } if (tagName =3D=3D=3D "TABLE" && (currentStyle.position =3D=3D=3D "relative" || = currentStyle.position =3D=3D=3D "absolute")) { offsetX +=3D parseInt(currentStyle.marginLeft) = || 0; offsetY +=3D parseInt(currentStyle.marginTop) || = 0; } } } currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(element); var elementPosition =3D currentStyle ? currentStyle.position = : null; var elementPositioned =3D elementPosition && = (elementPosition !=3D=3D "static"); if (!elementPosition || (elementPosition !=3D=3D = "absolute")) { = for (var parent =3D element.parentNode; parent; parent =3D = parent.parentNode) { = tagName =3D parent.tagName; if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D = "HTML") && (parent.scrollLeft || parent.scrollTop)) { offsetX -=3D (parent.scrollLeft || 0); offsetY -=3D (parent.scrollTop || 0); currentStyle =3D = Sys.UI.DomElement._getCurrentStyle(parent); offsetX +=3D = parseInt(currentStyle.borderLeftWidth) || 0; offsetY +=3D = parseInt(currentStyle.borderTopWidth) || 0; } } } return new Sys.UI.Point(offsetX, offsetY); } break; } Sys.UI.DomElement.removeCssClass =3D function = Sys$UI$DomElement$removeCssClass(element, className) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; var currentClassName =3D ' ' + element.className + ' '; var index =3D currentClassName.indexOf(' ' + className + ' '); if (index >=3D 0) { element.className =3D (currentClassName.substr(0, index) + ' ' + currentClassName.substring(index + className.length + 1, = currentClassName.length)).trim(); } } Sys.UI.DomElement.setLocation =3D function = Sys$UI$DomElement$setLocation(element, x, y) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "x", type: Number, integer: true}, {name: "y", type: Number, integer: true} ]); if (e) throw e; var style =3D element.style; style.position =3D 'absolute'; style.left =3D x + "px"; style.top =3D y + "px"; } Sys.UI.DomElement.toggleCssClass =3D function = Sys$UI$DomElement$toggleCssClass(element, className) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "className", type: String} ]); if (e) throw e; if (Sys.UI.DomElement.containsCssClass(element, className)) { Sys.UI.DomElement.removeCssClass(element, className); } else { Sys.UI.DomElement.addCssClass(element, className); } } Sys.UI.DomElement._getCurrentStyle =3D function = Sys$UI$DomElement$_getCurrentStyle(element) { var w =3D (element.ownerDocument ? element.ownerDocument : = element.documentElement).defaultView; return ((w && (element !=3D=3D w) && w.getComputedStyle) ? = w.getComputedStyle(element, null) : element.style); } Sys.UI.Behavior =3D function Sys$UI$Behavior(element) { /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; Sys.UI.Behavior.initializeBase(this); this._element =3D element; var behaviors =3D element._behaviors; if (!behaviors) { element._behaviors =3D [this]; } else { behaviors[behaviors.length] =3D this; } } function Sys$UI$Behavior$get_element() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._element; } function Sys$UI$Behavior$get_id() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id'); if (baseId) return baseId; if (!this._element || !this._element.id) return ''; return this._element.id + '$' + this.get_name(); } function Sys$UI$Behavior$get_name() { if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._name) return this._name; var name =3D Object.getTypeName(this); var i =3D name.lastIndexOf('.'); if (i !=3D -1) name =3D name.substr(i + 1); if (!this.get_isInitialized()) this._name =3D name; return name; } function Sys$UI$Behavior$set_name(value) { if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || = (value.charAt(value.length - 1) =3D=3D=3D ' ')) throw Error.argument('value', Sys.Res.invalidId); if (typeof(this._element[value]) !=3D=3D 'undefined') throw = Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, = value)); if (this.get_isInitialized()) throw = Error.invalidOperation(Sys.Res.cantSetNameAfterInit); this._name =3D value; } function Sys$UI$Behavior$initialize() { Sys.UI.Behavior.callBaseMethod(this, 'initialize'); var name =3D this.get_name(); if (name) this._element[name] =3D this; } function Sys$UI$Behavior$dispose() { Sys.UI.Behavior.callBaseMethod(this, 'dispose'); if (this._element) { var name =3D this.get_name(); if (name) { this._element[name] =3D null; } Array.remove(this._element._behaviors, this); delete this._element; } } Sys.UI.Behavior.prototype =3D { _name: null, get_element: Sys$UI$Behavior$get_element, get_id: Sys$UI$Behavior$get_id, get_name: Sys$UI$Behavior$get_name, set_name: Sys$UI$Behavior$set_name, initialize: Sys$UI$Behavior$initialize, dispose: Sys$UI$Behavior$dispose } Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component); Sys.UI.Behavior.getBehaviorByName =3D function = Sys$UI$Behavior$getBehaviorByName(element, name) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "name", type: String} ]); if (e) throw e; var b =3D element[name]; return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null; } Sys.UI.Behavior.getBehaviors =3D function = Sys$UI$Behavior$getBehaviors(element) { /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (!element._behaviors) return []; return Array.clone(element._behaviors); } Sys.UI.Behavior.getBehaviorsByType =3D function = Sys$UI$Behavior$getBehaviorsByType(element, type) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true}, {name: "type", type: Type} ]); if (e) throw e; var behaviors =3D element._behaviors; var results =3D []; if (behaviors) { for (var i =3D 0, l =3D behaviors.length; i < l; i++) { if (type.isInstanceOfType(behaviors[i])) { results[results.length] =3D behaviors[i]; } } } return results; } Sys.UI.VisibilityMode =3D function Sys$UI$VisibilityMode() { /// /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); throw Error.notImplemented(); } Sys.UI.VisibilityMode.prototype =3D { hide: 0, collapse: 1 } Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode"); Sys.UI.Control =3D function Sys$UI$Control(element) { /// var e =3D Function._validateParams(arguments, [ {name: "element", domElement: true} ]); if (e) throw e; if (typeof(element.control) !=3D 'undefined') throw = Error.invalidOperation(Sys.Res.controlAlreadyDefined); Sys.UI.Control.initializeBase(this); this._element =3D element; element.control =3D this; this._oldDisplayMode =3D this._element.style.display; if (!this._oldDisplayMode || (this._oldDisplayMode =3D=3D 'none')) { this._oldDisplayMode =3D ''; } } function Sys$UI$Control$get_element() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._element; } function Sys$UI$Control$get_id() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (!this._element) return ''; return this._element.id; } function Sys$UI$Control$set_id(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String}]); if (e) throw e; throw Error.invalidOperation(Sys.Res.cantSetId); } function Sys$UI$Control$get_parent() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); if (this._parent) { return this._parent; } else { var parentElement =3D this._element.parentNode; while (parentElement) { if (parentElement.control) { return parentElement.control; } parentElement =3D parentElement.parentNode; } return null; } } function Sys$UI$Control$set_parent(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Sys.UI.Control}]); if (e) throw e; var parents =3D [this]; var current =3D value; while (current) { if (Array.contains(parents, current)) throw = Error.invalidOperation(Sys.Res.circularParentChain); parents[parents.length] =3D current; current =3D current.get_parent(); } this._parent =3D value; } function Sys$UI$Control$get_visibilityMode() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._visibilityMode; } function Sys$UI$Control$set_visibilityMode(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Sys.UI.VisibilityMode}]); if (e) throw e; if (this._visibilityMode !=3D=3D value) { this._visibilityMode =3D value; if (this.get_visible() =3D=3D=3D false) { if (this._visibilityMode =3D=3D=3D = Sys.UI.VisibilityMode.hide) { this._element.style.display =3D = this._oldDisplayMode; } else { this._element.style.display =3D 'none'; } } } this._visibilityMode =3D value; } function Sys$UI$Control$get_visible() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return (this._element.style.visibility !=3D 'hidden'); } function Sys$UI$Control$set_visible(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Boolean}]); if (e) throw e; if (value !=3D this.get_visible()) { this._element.style.visibility =3D value ? 'visible' : = 'hidden'; if (value || (this._visibilityMode =3D=3D=3D = Sys.UI.VisibilityMode.hide)) { this._element.style.display =3D this._oldDisplayMode; } else { this._element.style.display =3D 'none'; } } } function Sys$UI$Control$addCssClass(className) { /// var e =3D Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; Sys.UI.DomElement.addCssClass(this._element, className); } function Sys$UI$Control$dispose() { Sys.UI.Control.callBaseMethod(this, 'dispose'); if (this._element) { this._element.control =3D undefined; delete this._element; } } function Sys$UI$Control$initialize() { Sys.UI.Control.callBaseMethod(this, 'initialize'); var elt =3D this._element; } function Sys$UI$Control$onBubbleEvent(source, args) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "source"}, {name: "args", type: Sys.EventArgs} ]); if (e) throw e; return false; } function Sys$UI$Control$raiseBubbleEvent(source, args) { /// /// var e =3D Function._validateParams(arguments, [ {name: "source"}, {name: "args", type: Sys.EventArgs} ]); if (e) throw e; var currentTarget =3D this.get_parent(); while (currentTarget) { if (currentTarget.onBubbleEvent(source, args)) { return; } currentTarget =3D currentTarget.get_parent(); } } function Sys$UI$Control$removeCssClass(className) { /// var e =3D Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; Sys.UI.DomElement.removeCssClass(this._element, className); } function Sys$UI$Control$toggleCssClass(className) { /// var e =3D Function._validateParams(arguments, [ {name: "className", type: String} ]); if (e) throw e; Sys.UI.DomElement.toggleCssClass(this._element, className); } Sys.UI.Control.prototype =3D { _parent: null, _visibilityMode: Sys.UI.VisibilityMode.hide, get_element: Sys$UI$Control$get_element, get_id: Sys$UI$Control$get_id, set_id: Sys$UI$Control$set_id, get_parent: Sys$UI$Control$get_parent, set_parent: Sys$UI$Control$set_parent, get_visibilityMode: Sys$UI$Control$get_visibilityMode, set_visibilityMode: Sys$UI$Control$set_visibilityMode, get_visible: Sys$UI$Control$get_visible, set_visible: Sys$UI$Control$set_visible, addCssClass: Sys$UI$Control$addCssClass, dispose: Sys$UI$Control$dispose, initialize: Sys$UI$Control$initialize, onBubbleEvent: Sys$UI$Control$onBubbleEvent, raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent, removeCssClass: Sys$UI$Control$removeCssClass, toggleCssClass: Sys$UI$Control$toggleCssClass } Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component); Type.registerNamespace('Sys'); Sys.Res=3D{ "argumentTypeName":"Value is not the name of an existing type.", "methodRegisteredTwice":"Method {0} has already been registered.", "cantSetIdAfterInit":"The id property can\u0027t be set on this object = after initialization.", "componentCantSetIdAfterAddedToApp":"The id property of a component = can\u0027t be set after it\u0027s been added to the Application = object.", "behaviorDuplicateName":"A behavior with name \u0027{0}\u0027 already = exists or it is the name of an existing property on the target = element.", "notATypeName":"Value is not a valid type name.", "typeShouldBeTypeOrString":"Value is not a valid type or a valid type = name.", "boolTrueOrFalse":"Value must be \u0027true\u0027 or = \u0027false\u0027.", "stringFormatInvalid":"The format string is invalid.", "referenceNotFound":"Component \u0027{0}\u0027 was not found.", "enumReservedName":"\u0027{0}\u0027 is a reserved name that can\u0027t = be used as an enum value name.", "eventHandlerNotFound":"Handler not found.", "circularParentChain":"The chain of control parents can\u0027t have = circular references.", "undefinedEvent":"\u0027{0}\u0027 is not an event.", "notAMethod":"{0} is not a method.", "propertyUndefined":"\u0027{0}\u0027 is not a property or an existing = field.", "eventHandlerInvalid":"Handler was not added through the = Sys.UI.DomEvent.addHandler method.", "scriptLoadFailedDebug":"The script \u0027{0}\u0027 failed to load. = Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable = \u0027Display a notification about every script error\u0027 under = advanced settings.\r\n Missing call to = Sys.Application.notifyScriptLoaded().", "propertyNotWritable":"\u0027{0}\u0027 is not a writable property.", "enumInvalidValueName":"\u0027{0}\u0027 is not a valid name for an enum = value.", "controlAlreadyDefined":"A control is already associated with the = element.", "namespaceContainsObject":"Object {0} already exists and is not a = namespace.", "cantAddNonFunctionhandler":"Can\u0027t add a handler that is not a = function.", "scriptLoaderAlreadyLoading":"ScriptLoader.loadScripts cannot be called = while the ScriptLoader is already loading scripts.", "invalidNameSpace":"Value is not a valid namespace identifier.", "notAnInterface":"Value is not a valid interface.", "eventHandlerNotFunction":"Handler must be a function.", "propertyNotAnArray":"\u0027{0}\u0027 is not an Array property.", "typeRegisteredTwice":"Type {0} has already been registered.", "cantSetNameAfterInit":"The name property can\u0027t be set on this = object after initialization.", "appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 = can\u0027t be added to the application.", "appComponentMustBeInitialized":"Components must be initialized before = they are added to the Application object.", "baseNotAClass":"Value is not a class.", "methodNotFound":"No method found with name \u0027{0}\u0027.", "arrayParseBadFormat":"Value must be a valid string representation for = an array. It must start with a \u0027[\u0027 and end with a = \u0027]\u0027.", "cantSetId":"The id property can\u0027t be set on this object.", "stringFormatBraceMismatch":"The format string contains an unmatched = opening or closing brace.", "enumValueNotInteger":"An enumeration definition can only contain = integer values.", "propertyNullOrUndefined":"Cannot set the properties of \u0027{0}\u0027 = because it returned a null value.", "componentCantSetIdTwice":"The id property of a component can\u0027t be = set more than once.", "createComponentOnDom":"Value must be null for Components that are not = Controls or Behaviors.", "createNotComponent":"{0} does not derive from Sys.Component.", "createNoDom":"Value must not be null for Controls and Behaviors.", "cantAddWithoutId":"Can\u0027t add a component that doesn\u0027t have an = id.", "badTypeName":"Value is not the name of the type being registered or the = name is a reserved word.", "argumentInteger":"Value must be an integer.", "scriptLoadMultipleCallbacks":"The script \u0027{0}\u0027 contains = multiple calls to Sys.Application.notifyScriptLoaded(). Only one is = allowed.", "invokeCalledTwice":"Cannot call invoke more than once.", "webServiceFailed":"The server method \u0027{0}\u0027 failed with the = following error: {1}", "argumentType":"Object cannot be converted to the required type.", "argumentNull":"Value cannot be null.", "controlCantSetId":"The id property can\u0027t be set on a control.", "formatBadFormatSpecifier":"Format specifier was invalid.", "webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.", "argumentDomElement":"Value must be a DOM element.", "invalidExecutorType":"Could not create a valid = Sys.Net.WebRequestExecutor from: {0}.", "cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is = false.", "actualValue":"Actual value was {0}.", "enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.", "scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.", "parameterCount":"Parameter count mismatch.", "cannotDeserializeEmptyString":"Cannot deserialize empty string.", "formatInvalidString":"Input string was not in a correct format.", "invalidTimeout":"Value must be greater than or equal to zero.", "cannotAbortBeforeStart":"Cannot abort when executor has not started.", "argument":"Value does not fall within the expected range.", "cannotDeserializeInvalidJson":"Cannot deserialize. The data does not = correspond to valid JSON.", "invalidHttpVerb":"httpVerb cannot be set to an empty or null string.", "nullWebRequest":"Cannot call executeRequest with a null webRequest.", "eventHandlerInvalid":"Handler was not added through the = Sys.UI.DomEvent.addHandler method.", "cannotSerializeNonFiniteNumbers":"Cannot serialize non finite = numbers.", "argumentUndefined":"Value cannot be undefined.", "webServiceInvalidReturnType":"The server method \u0027{0}\u0027 = returned an invalid type. Expected type: {1}", "servicePathNotSet":"The path to the web service has not been set.", "argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be = converted to type \u0027{1}\u0027.", "cannotCallOnceStarted":"Cannot call {0} once started.", "badBaseUrl1":"Base URL does not contain ://.", "badBaseUrl2":"Base URL does not contain another /.", "badBaseUrl3":"Cannot find last / in base URL.", "setExecutorAfterActive":"Cannot set executor after it has become = active.", "paramName":"Parameter name: {0}", "cannotCallOutsideHandler":"Cannot call {0} outside of a completed event = handler.", "format":"One of the identified items was in an invalid format.", "assertFailedCaller":"Assertion Failed: {0}\r\nat {1}", "argumentOutOfRange":"Specified argument was out of the range of valid = values.", "webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.", "notImplemented":"The method or operation is not implemented.", "assertFailed":"Assertion Failed: {0}", "invalidOperation":"Operation is not valid due to the current state of = the object.", "breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?" }; if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=pZwYQ70Cq2xKbLuRD4BqF2dfUO9HNYcRwa3Djs970JPaKpp_1wC_nwUnNcVyRD74PYbSjQHiOz1oQyuYe-g6TxfwoodBRqnxdtJSH6mxGO4POu2AEmDEhd4AVrYTTXdM0&t=633535335986562500 =EF=BB=BF//--------------------------------------------------------------= --------- // Copyright (C) Microsoft Corporation. All rights reserved. //-----------------------------------------------------------------------= // MicrosoftAjaxWebForms.js // Microsoft AJAX ASP.NET WebForms Framework. Type.registerNamespace('Sys.WebForms'); Sys.WebForms.BeginRequestEventArgs =3D function = Sys$WebForms$BeginRequestEventArgs(request, postBackElement) { /// /// var e =3D Function._validateParams(arguments, [ {name: "request", type: Sys.Net.WebRequest}, {name: "postBackElement", domElement: true} ]); if (e) throw e; Sys.WebForms.BeginRequestEventArgs.initializeBase(this); this._request =3D request; this._postBackElement =3D postBackElement; } function Sys$WebForms$BeginRequestEventArgs$get_postBackElement() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._postBackElement; } function Sys$WebForms$BeginRequestEventArgs$get_request() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._request; } Sys.WebForms.BeginRequestEventArgs.prototype =3D { get_postBackElement: = Sys$WebForms$BeginRequestEventArgs$get_postBackElement, get_request: Sys$WebForms$BeginRequestEventArgs$get_request } Sys.WebForms.BeginRequestEventArgs.registerClass('Sys.WebForms.BeginReque= stEventArgs', Sys.EventArgs); Sys.WebForms.EndRequestEventArgs =3D function = Sys$WebForms$EndRequestEventArgs(error, dataItems, response) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "error", type: Error, mayBeNull: true}, {name: "dataItems", type: Object, mayBeNull: true}, {name: "response", type: Sys.Net.WebRequestExecutor} ]); if (e) throw e; Sys.WebForms.EndRequestEventArgs.initializeBase(this); this._errorHandled =3D false; this._error =3D error; this._dataItems =3D dataItems || new Object(); this._response =3D response; } function Sys$WebForms$EndRequestEventArgs$get_dataItems() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._dataItems; } function Sys$WebForms$EndRequestEventArgs$get_error() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._error; } function Sys$WebForms$EndRequestEventArgs$get_errorHandled() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._errorHandled; } function Sys$WebForms$EndRequestEventArgs$set_errorHandled(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Boolean}]); if (e) throw e; this._errorHandled =3D value; } function Sys$WebForms$EndRequestEventArgs$get_response() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._response; } Sys.WebForms.EndRequestEventArgs.prototype =3D { get_dataItems: Sys$WebForms$EndRequestEventArgs$get_dataItems, get_error: Sys$WebForms$EndRequestEventArgs$get_error, get_errorHandled: Sys$WebForms$EndRequestEventArgs$get_errorHandled, set_errorHandled: Sys$WebForms$EndRequestEventArgs$set_errorHandled, get_response: Sys$WebForms$EndRequestEventArgs$get_response } Sys.WebForms.EndRequestEventArgs.registerClass('Sys.WebForms.EndRequestEv= entArgs', Sys.EventArgs); Sys.WebForms.InitializeRequestEventArgs =3D function = Sys$WebForms$InitializeRequestEventArgs(request, postBackElement) { /// /// var e =3D Function._validateParams(arguments, [ {name: "request", type: Sys.Net.WebRequest}, {name: "postBackElement", domElement: true} ]); if (e) throw e; Sys.WebForms.InitializeRequestEventArgs.initializeBase(this); this._request =3D request; this._postBackElement =3D postBackElement; } function = Sys$WebForms$InitializeRequestEventArgs$get_postBackElement() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._postBackElement; } function Sys$WebForms$InitializeRequestEventArgs$get_request() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._request; } Sys.WebForms.InitializeRequestEventArgs.prototype =3D { get_postBackElement: = Sys$WebForms$InitializeRequestEventArgs$get_postBackElement, get_request: Sys$WebForms$InitializeRequestEventArgs$get_request } Sys.WebForms.InitializeRequestEventArgs.registerClass('Sys.WebForms.Initi= alizeRequestEventArgs', Sys.CancelEventArgs); Sys.WebForms.PageLoadedEventArgs =3D function = Sys$WebForms$PageLoadedEventArgs(panelsUpdated, panelsCreated, = dataItems) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "panelsUpdated", type: Array}, {name: "panelsCreated", type: Array}, {name: "dataItems", type: Object, mayBeNull: true} ]); if (e) throw e; Sys.WebForms.PageLoadedEventArgs.initializeBase(this); this._panelsUpdated =3D panelsUpdated; this._panelsCreated =3D panelsCreated; this._dataItems =3D dataItems || new Object(); } function Sys$WebForms$PageLoadedEventArgs$get_dataItems() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._dataItems; } function Sys$WebForms$PageLoadedEventArgs$get_panelsCreated() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._panelsCreated; } function Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._panelsUpdated; } Sys.WebForms.PageLoadedEventArgs.prototype =3D { get_dataItems: Sys$WebForms$PageLoadedEventArgs$get_dataItems, get_panelsCreated: = Sys$WebForms$PageLoadedEventArgs$get_panelsCreated, get_panelsUpdated: = Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated } Sys.WebForms.PageLoadedEventArgs.registerClass('Sys.WebForms.PageLoadedEv= entArgs', Sys.EventArgs); Sys.WebForms.PageLoadingEventArgs =3D function = Sys$WebForms$PageLoadingEventArgs(panelsUpdating, panelsDeleting, = dataItems) { /// /// /// var e =3D Function._validateParams(arguments, [ {name: "panelsUpdating", type: Array}, {name: "panelsDeleting", type: Array}, {name: "dataItems", type: Object, mayBeNull: true} ]); if (e) throw e; Sys.WebForms.PageLoadingEventArgs.initializeBase(this); this._panelsUpdating =3D panelsUpdating; this._panelsDeleting =3D panelsDeleting; this._dataItems =3D dataItems || new Object(); } function Sys$WebForms$PageLoadingEventArgs$get_dataItems() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._dataItems; } function Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._panelsDeleting; } function Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._panelsUpdating; } Sys.WebForms.PageLoadingEventArgs.prototype =3D { get_dataItems: Sys$WebForms$PageLoadingEventArgs$get_dataItems, get_panelsDeleting: = Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting, get_panelsUpdating: = Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating } Sys.WebForms.PageLoadingEventArgs.registerClass('Sys.WebForms.PageLoading= EventArgs', Sys.EventArgs); Sys.WebForms.PageRequestManager =3D function = Sys$WebForms$PageRequestManager() { this._form =3D null; this._updatePanelIDs =3D null; this._updatePanelClientIDs =3D null; this._oldUpdatePanelIDs =3D null; this._childUpdatePanelIDs =3D null; this._panelsToRefreshIDs =3D null; this._updatePanelHasChildrenAsTriggers =3D null; this._asyncPostBackControlIDs =3D null; this._asyncPostBackControlClientIDs =3D null; this._postBackControlIDs =3D null; this._postBackControlClientIDs =3D null; this._scriptManagerID =3D null; this._pageLoadedHandler =3D null; this._additionalInput =3D null; this._onsubmit =3D null; this._onSubmitStatements =3D []; this._originalDoPostBack =3D null; this._postBackSettings =3D null; this._request =3D null; this._onFormSubmitHandler =3D null; this._onFormElementClickHandler =3D null; this._onWindowUnloadHandler =3D null; this._asyncPostBackTimeout =3D null; this._controlIDToFocus =3D null; this._scrollPosition =3D null; this._dataItems =3D null; this._response =3D null; this._processingRequest =3D false; this._scriptDisposes =3D {}; } function Sys$WebForms$PageRequestManager$_get_eventHandlerList() { if (!this._events) { this._events =3D new Sys.EventHandlerList(); } return this._events; } function Sys$WebForms$PageRequestManager$get_isInAsyncPostBack() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._request !=3D=3D null; } function Sys$WebForms$PageRequestManager$add_beginRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("beginRequest", = handler); } function = Sys$WebForms$PageRequestManager$remove_beginRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("beginRequest", = handler); } function Sys$WebForms$PageRequestManager$add_endRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("endRequest", handler); } function Sys$WebForms$PageRequestManager$remove_endRequest(handler) = { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("endRequest", = handler); } function = Sys$WebForms$PageRequestManager$add_initializeRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("initializeRequest", = handler); } function = Sys$WebForms$PageRequestManager$remove_initializeRequest(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("initializeRequest", = handler); } function Sys$WebForms$PageRequestManager$add_pageLoaded(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("pageLoaded", handler); } function Sys$WebForms$PageRequestManager$remove_pageLoaded(handler) = { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("pageLoaded", = handler); } function Sys$WebForms$PageRequestManager$add_pageLoading(handler) { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().addHandler("pageLoading", handler); } function Sys$WebForms$PageRequestManager$remove_pageLoading(handler) = { var e =3D Function._validateParams(arguments, [{name: "handler", = type: Function}]); if (e) throw e; this._get_eventHandlerList().removeHandler("pageLoading", = handler); } function Sys$WebForms$PageRequestManager$abortPostBack() { if (!this._processingRequest && this._request) { this._request.get_executor().abort(); this._request =3D null; } } function = Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError() = { var displayMessage =3D = "Sys.WebForms.PageRequestManagerTimeoutException: " + = Sys.WebForms.Res.PRM_TimeoutError; var e =3D Error.create(displayMessage, {name: = 'Sys.WebForms.PageRequestManagerTimeoutException'}); e.popStackFrame(); return e; } function = Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError(http= StatusCode, message) { var displayMessage =3D message || = ("Sys.WebForms.PageRequestManagerServerErrorException: " + = String.format(Sys.WebForms.Res.PRM_ServerError, httpStatusCode)); var e =3D Error.create(displayMessage, { name: 'Sys.WebForms.PageRequestManagerServerErrorException', httpStatusCode: httpStatusCode }); e.popStackFrame(); return e; } function = Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError(pars= erErrorMessage) { var displayMessage =3D = "Sys.WebForms.PageRequestManagerParserErrorException: " + = String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage); var e =3D Error.create(displayMessage, {name: = 'Sys.WebForms.PageRequestManagerParserErrorException'}); e.popStackFrame(); return e; } function = Sys$WebForms$PageRequestManager$_createPostBackSettings(async, panelID, = sourceElement) { return { async:async, panelID:panelID, = sourceElement:sourceElement }; } function Sys$WebForms$PageRequestManager$_convertToClientIDs(source, = destinationIDs, destinationClientIDs) { if (source) { for (var i =3D 0; i < source.length; i++) { Array.add(destinationIDs, source[i]); Array.add(destinationClientIDs, = this._uniqueIDToClientID(source[i])); } } } function Sys$WebForms$PageRequestManager$_decodeString(encodedValue) = { return encodedValue.replace(/\\\u00FF\\/g, = "\u0000").replace(/\u00FF\u00FF/g, "\u00FF"); } function Sys$WebForms$PageRequestManager$_destroyTree(element) { if (element.nodeType =3D=3D=3D 1) { var childNodes =3D = element.childNodes; for (var i =3D childNodes.length - 1; i >=3D 0; i--) { var node =3D childNodes[i]; if (node.nodeType =3D=3D=3D 1) { if (node.dispose && typeof(node.dispose) =3D=3D=3D = "function") { node.dispose(); } else if (node.control && = typeof(node.control.dispose) =3D=3D=3D "function") { node.control.dispose(); } var behaviors =3D = Sys.UI.Behavior.getBehaviors(node); for (var j =3D behaviors.length - 1; j >=3D 0; j--) = { behaviors[j].dispose(); } this._destroyTree(node); } } } } function Sys$WebForms$PageRequestManager$dispose() { if (this._form) { Sys.UI.DomEvent.removeHandler(this._form, 'submit', = this._onFormSubmitHandler); Sys.UI.DomEvent.removeHandler(this._form, 'click', = this._onFormElementClickHandler); Sys.UI.DomEvent.removeHandler(window, 'unload', = this._onWindowUnloadHandler); Sys.UI.DomEvent.removeHandler(window, 'load', = this._pageLoadedHandler); } if (this._originalDoPostBack) { window.__doPostBack =3D this._originalDoPostBack; this._originalDoPostBack =3D null; } this._form =3D null; this._updatePanelIDs =3D null; this._oldUpdatePanelIDs =3D null; this._childUpdatePanelIDs =3D null; this._updatePanelClientIDs =3D null; this._asyncPostBackControlIDs =3D null; this._asyncPostBackControlClientIDs =3D null; this._postBackControlIDs =3D null; this._postBackControlClientIDs =3D null; this._asyncPostBackTimeout =3D null; this._scrollPosition =3D null; this._dataItems =3D null; } function Sys$WebForms$PageRequestManager$_doPostBack(eventTarget, = eventArgument) { this._additionalInput =3D null; var form =3D this._form; if (form.action !=3D=3D form._initialAction) { this._postBackSettings =3D = this._createPostBackSettings(false, null, null); } else { var clientID =3D = this._uniqueIDToClientID(eventTarget); var postBackElement =3D document.getElementById(clientID); if (!postBackElement) { = if (Array.contains(this._asyncPostBackControlIDs, eventTarget)) { this._postBackSettings =3D = this._createPostBackSettings(true, this._scriptManagerID + '|' + = eventTarget, null); } else { if (Array.contains(this._postBackControlIDs, = eventTarget)) { this._postBackSettings = =3D this._createPostBackSettings(false, null, null); } else { = var nearestUniqueIDMatch =3D = this._findNearestElement(eventTarget); if (nearestUniqueIDMatch) { = this._postBackSettings =3D = this._getPostBackSettings(nearestUniqueIDMatch, eventTarget); } else { = this._postBackSettings =3D = this._createPostBackSettings(false, null, null); } } } } else { this._postBackSettings = =3D this._getPostBackSettings(postBackElement, eventTarget); } } if (!this._postBackSettings.async) { form.onsubmit =3D this._onsubmit; this._originalDoPostBack(eventTarget, eventArgument); form.onsubmit =3D null; return; } form.__EVENTTARGET.value =3D eventTarget; form.__EVENTARGUMENT.value =3D eventArgument; this._onFormSubmit(); } function Sys$WebForms$PageRequestManager$_elementContains(container, = element) { while (element) { if (element =3D=3D=3D container) { return true; } element =3D element.parentNode; } return false; } function Sys$WebForms$PageRequestManager$_endPostBack(error, = response) { this._processingRequest =3D false; this._request =3D null; this._additionalInput =3D null; var handler =3D = this._get_eventHandlerList().getHandler("endRequest"); var errorHandled =3D false; if (handler) { var eventArgs =3D new = Sys.WebForms.EndRequestEventArgs(error, this._dataItems, response); handler(this, eventArgs); errorHandled =3D eventArgs.get_errorHandled(); } this._dataItems =3D null; if (error && !errorHandled) { alert(error.message); } } function = Sys$WebForms$PageRequestManager$_findNearestElement(uniqueID) { while (uniqueID.length > 0) { var clientID =3D this._uniqueIDToClientID(uniqueID); var element =3D document.getElementById(clientID); if (element) { return element; } var indexOfLastDollar =3D uniqueID.lastIndexOf('$'); if (indexOfLastDollar =3D=3D=3D -1) { return null; } uniqueID =3D uniqueID.substring(0, indexOfLastDollar); } return null; } function Sys$WebForms$PageRequestManager$_findText(text, location) { var startIndex =3D Math.max(0, location - 20); var endIndex =3D Math.min(text.length, location + 20); return text.substring(startIndex, endIndex); } function = Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad) { = =20 var updated =3D []; var created =3D []; var oldIDs =3D this._oldUpdatePanelIDs || []; = var newIDs =3D this._updatePanelIDs; var childIDs =3D = this._childUpdatePanelIDs || []; var refreshedIDs =3D = this._panelsToRefreshIDs || [];=20 for (var i =3D 0; i < refreshedIDs.length; i++) { Array.add(updated, = document.getElementById(this._uniqueIDToClientID(refreshedIDs[i]))); } for (var i =3D 0; i < newIDs.length; i++) { if (initialLoad || Array.indexOf(childIDs, newIDs[i]) = !=3D=3D -1) { Array.add(created, = document.getElementById(this._uniqueIDToClientID(newIDs[i]))); } } return new Sys.WebForms.PageLoadedEventArgs(updated, created, = this._dataItems); } function Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs() = { = =20 var updated =3D []; var deleted =3D []; var oldIDs =3D this._oldUpdatePanelIDs; var newIDs =3D this._updatePanelIDs; var childIDs =3D this._childUpdatePanelIDs; var refreshedIDs =3D this._panelsToRefreshIDs; for (var i =3D 0; i < refreshedIDs.length; i++) { Array.add(updated, = document.getElementById(this._uniqueIDToClientID(refreshedIDs[i]))); } for (var i =3D 0; i < oldIDs.length; i++) { if (Array.indexOf(refreshedIDs, oldIDs[i]) =3D=3D=3D -1 && (Array.indexOf(newIDs, oldIDs[i]) =3D=3D=3D -1 || = Array.indexOf(childIDs, oldIDs[i]) > -1)) { Array.add(deleted, = document.getElementById(this._uniqueIDToClientID(oldIDs[i]))); } } return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, = this._dataItems); } function = Sys$WebForms$PageRequestManager$_getPostBackSettings(element, = elementUniqueID) { var originalElement =3D element; var proposedSettings =3D null; while (element) { if (element.id) { if (!proposedSettings && = Array.contains(this._asyncPostBackControlClientIDs, element.id)) { proposedSettings =3D = this._createPostBackSettings(true, this._scriptManagerID + '|' + = elementUniqueID, originalElement); } else { if (!proposedSettings && = Array.contains(this._postBackControlClientIDs, element.id)) { return = this._createPostBackSettings(false, null, null); } else { var indexOfPanel =3D = Array.indexOf(this._updatePanelClientIDs, element.id); if (indexOfPanel !=3D=3D -1) { if = (this._updatePanelHasChildrenAsTriggers[indexOfPanel]) { =20 = return = this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + = '|' + elementUniqueID, originalElement); } else { = return this._createPostBackSettings(true, = this._scriptManagerID + '|' + elementUniqueID, originalElement); } } } } if (!proposedSettings && = this._matchesParentIDInList(element.id, = this._asyncPostBackControlClientIDs)) { proposedSettings =3D = this._createPostBackSettings(true, this._scriptManagerID + '|' + = elementUniqueID, originalElement); } else { if (!proposedSettings && = this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) = { return = this._createPostBackSettings(false, null, null); } } } element =3D element.parentNode; } if (!proposedSettings) { return this._createPostBackSettings(false, null, = null); } else { return proposedSettings; } } function Sys$WebForms$PageRequestManager$_getScrollPosition() { var d =3D document.documentElement; if (d && (this._validPosition(d.scrollLeft) || = this._validPosition(d.scrollTop))) { return { x: d.scrollLeft, y: d.scrollTop }; } else { d =3D document.body; if (d && (this._validPosition(d.scrollLeft) || = this._validPosition(d.scrollTop))) { return { x: d.scrollLeft, y: d.scrollTop }; } else { if (this._validPosition(window.pageXOffset) || = this._validPosition(window.pageYOffset)) { return { x: window.pageXOffset, y: window.pageYOffset }; } else { return { x: 0, y: 0 }; } } } } function = Sys$WebForms$PageRequestManager$_initializeInternal(scriptManagerID, = formElement) { this._scriptManagerID =3D scriptManagerID; this._form =3D formElement; =20 this._form._initialAction =3D this._form.action; this._onsubmit =3D this._form.onsubmit; this._form.onsubmit =3D null; this._onFormSubmitHandler =3D Function.createDelegate(this, = this._onFormSubmit); this._onFormElementClickHandler =3D = Function.createDelegate(this, this._onFormElementClick); this._onWindowUnloadHandler =3D Function.createDelegate(this, = this._onWindowUnload); Sys.UI.DomEvent.addHandler(this._form, 'submit', = this._onFormSubmitHandler); Sys.UI.DomEvent.addHandler(this._form, 'click', = this._onFormElementClickHandler); Sys.UI.DomEvent.addHandler(window, 'unload', = this._onWindowUnloadHandler); this._originalDoPostBack =3D window.__doPostBack; if (this._originalDoPostBack) { window.__doPostBack =3D Function.createDelegate(this, = this._doPostBack); } this._pageLoadedHandler =3D Function.createDelegate(this, = this._pageLoadedInitialLoad); Sys.UI.DomEvent.addHandler(window, 'load', = this._pageLoadedHandler); } function = Sys$WebForms$PageRequestManager$_matchesParentIDInList(clientID, = parentIDList) { for (var i =3D 0; i < parentIDList.length; i++) { if (clientID.startsWith(parentIDList[i] + "_")) { return true; } } return false; } function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) { var element =3D evt.target; if (element.disabled) { return; } this._postBackSettings =3D = this._getPostBackSettings(element, element.name); if (element.name) { if (element.tagName =3D=3D=3D 'INPUT') { var type =3D element.type; if (type =3D=3D=3D 'submit') { this._additionalInput =3D element.name + '=3D' + = encodeURIComponent(element.value); } else if (type =3D=3D=3D 'image') { var x =3D evt.offsetX; var y =3D evt.offsetY; this._additionalInput =3D element.name + '.x=3D' + x = + '&' + element.name + '.y=3D' + y; } } else if ((element.tagName =3D=3D=3D 'BUTTON') && = (element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) { this._additionalInput =3D element.name + '=3D' + = encodeURIComponent(element.value); } } } function Sys$WebForms$PageRequestManager$_onFormSubmit(evt) { var continueSubmit =3D true; if (this._onsubmit) { continueSubmit =3D this._onsubmit(); } if (continueSubmit) { for (var i =3D 0; i < this._onSubmitStatements.length; i++) = { if (!this._onSubmitStatements[i]()) { continueSubmit =3D false; break; } } } if (!continueSubmit) { if (evt) { evt.preventDefault(); } return; } var form =3D this._form; if (form.action !=3D=3D form._initialAction) { return; } if (!this._postBackSettings.async) { return; } var formBody =3D new Sys.StringBuilder(); formBody.append(this._scriptManagerID + '=3D' + = this._postBackSettings.panelID + '&'); var count =3D form.elements.length; for (var i =3D 0; i < count; i++) { var element =3D form.elements[i]; var name =3D element.name; if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D = null) || (name.length =3D=3D=3D 0)) { continue; } var tagName =3D element.tagName; if (tagName =3D=3D=3D 'INPUT') { var type =3D element.type; if ((type =3D=3D=3D 'text') || (type =3D=3D=3D 'password') || (type =3D=3D=3D 'hidden') || (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D = 'radio')) && element.checked)) { formBody.append(name); formBody.append('=3D'); formBody.append(encodeURIComponent(element.value)); formBody.append('&'); } } else if (tagName =3D=3D=3D 'SELECT') { var optionCount =3D element.options.length; for (var j =3D 0; j < optionCount; j++) { var option =3D element.options[j]; if (option.selected) { formBody.append(name); formBody.append('=3D'); = formBody.append(encodeURIComponent(option.value)); formBody.append('&'); } } } else if (tagName =3D=3D=3D 'TEXTAREA') { formBody.append(name); formBody.append('=3D'); formBody.append(encodeURIComponent(element.value)); formBody.append('&'); } } if (this._additionalInput) { formBody.append(this._additionalInput); this._additionalInput =3D null; } var request =3D new Sys.Net.WebRequest(); request.set_url(form.action); request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue'; request.get_headers()['Cache-Control'] =3D 'no-cache'; request.set_timeout(this._asyncPostBackTimeout); request.add_completed(Function.createDelegate(this, = this._onFormSubmitCompleted)); request.set_body(formBody.toString()); var handler =3D = this._get_eventHandlerList().getHandler("initializeRequest"); if (handler) { var eventArgs =3D new = Sys.WebForms.InitializeRequestEventArgs(request, = this._postBackSettings.sourceElement); handler(this, eventArgs); continueSubmit =3D !eventArgs.get_cancel(); } if (!continueSubmit) { if (evt) { evt.preventDefault(); } return; } this._scrollPosition =3D this._getScrollPosition(); this.abortPostBack(); handler =3D = this._get_eventHandlerList().getHandler("beginRequest"); if (handler) { var eventArgs =3D new = Sys.WebForms.BeginRequestEventArgs(request, = this._postBackSettings.sourceElement); handler(this, eventArgs); } this._request =3D request; request.invoke(); if (evt) { evt.preventDefault(); } } function = Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, = eventArgs) { this._processingRequest =3D true; var delimitByLengthDelimiter =3D '|'; =20 if (sender.get_timedOut()) { = this._endPostBack(this._createPageRequestManagerTimeoutError(), sender); return; } if (sender.get_aborted()) { this._endPostBack(null, sender); return; } if (!this._request || sender.get_webRequest() !=3D=3D = this._request) { return; } var errorMessage; var delta =3D []; if (sender.get_statusCode() !=3D=3D 200) { = this._endPostBack(this._createPageRequestManagerServerError(sender.get_st= atusCode()), sender); return; } var reply =3D sender.get_responseData(); var delimiterIndex, len, type, id, content; var replyIndex =3D 0; var parserErrorDetails =3D null; while (replyIndex < reply.length) { delimiterIndex =3D = reply.indexOf(delimitByLengthDelimiter, replyIndex); if (delimiterIndex =3D=3D=3D -1) { parserErrorDetails =3D this._findText(reply, = replyIndex); break; } len =3D parseInt(reply.substring(replyIndex, = delimiterIndex), 10); if ((len % 1) !=3D=3D 0) { parserErrorDetails =3D this._findText(reply, = replyIndex); break; } replyIndex =3D delimiterIndex + 1; delimiterIndex =3D = reply.indexOf(delimitByLengthDelimiter, replyIndex); if (delimiterIndex =3D=3D=3D -1) { parserErrorDetails =3D this._findText(reply, = replyIndex); break; } type =3D reply.substring(replyIndex, delimiterIndex); replyIndex =3D delimiterIndex + 1; delimiterIndex =3D = reply.indexOf(delimitByLengthDelimiter, replyIndex); if (delimiterIndex =3D=3D=3D -1) { parserErrorDetails =3D this._findText(reply, = replyIndex); break; } id =3D reply.substring(replyIndex, delimiterIndex); replyIndex =3D delimiterIndex + 1; if ((replyIndex + len) >=3D reply.length) { parserErrorDetails =3D this._findText(reply, = reply.length); break; } content =3D this._decodeString(reply.substr(replyIndex, = len)); replyIndex +=3D len; if (reply.charAt(replyIndex) !=3D=3D = delimitByLengthDelimiter) { parserErrorDetails =3D this._findText(reply, = replyIndex); break; } replyIndex++; Array.add(delta, {type: type, id: id, content: content}); } if (parserErrorDetails) { = this._endPostBack(this._createPageRequestManagerParserError(String.format= (Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), sender); return; } var updatePanelNodes =3D []; var hiddenFieldNodes =3D []; var arrayDeclarationNodes =3D []; var scriptBlockNodes =3D []; var expandoNodes =3D []; var onSubmitNodes =3D []; var dataItemNodes =3D []; var dataItemJsonNodes =3D []; var scriptDisposeNodes =3D []; var asyncPostBackControlIDsNode, postBackControlIDsNode, updatePanelIDsNode, asyncPostBackTimeoutNode, childUpdatePanelIDsNode, panelsToRefreshNode, = formActionNode; for (var i =3D 0; i < delta.length; i++) { var deltaNode =3D delta[i]; switch (deltaNode.type) { case "updatePanel": Array.add(updatePanelNodes, deltaNode); break; case "hiddenField": Array.add(hiddenFieldNodes, deltaNode); break; case "arrayDeclaration": Array.add(arrayDeclarationNodes, deltaNode); break; case "scriptBlock": Array.add(scriptBlockNodes, deltaNode); break; case "expando": Array.add(expandoNodes, deltaNode); break; case "onSubmit": Array.add(onSubmitNodes, deltaNode); break; case "asyncPostBackControlIDs": asyncPostBackControlIDsNode =3D deltaNode; break; case "postBackControlIDs": postBackControlIDsNode =3D deltaNode; break; case "updatePanelIDs": updatePanelIDsNode =3D deltaNode; break; case "asyncPostBackTimeout": asyncPostBackTimeoutNode =3D deltaNode; break; case "childUpdatePanelIDs": childUpdatePanelIDsNode =3D deltaNode; break; case "panelsToRefreshIDs": panelsToRefreshNode =3D deltaNode; break; case "formAction": formActionNode =3D deltaNode; break; case "dataItem": Array.add(dataItemNodes, deltaNode); break; case "dataItemJson": Array.add(dataItemJsonNodes, deltaNode); break; case "scriptDispose": Array.add(scriptDisposeNodes, deltaNode); break; case "pageRedirect": window.location.href =3D deltaNode.content; return; case "error": = this._endPostBack(this._createPageRequestManagerServerError(Number.parseI= nvariant(deltaNode.id), deltaNode.content), sender); return; case "pageTitle": document.title =3D deltaNode.content; break; case "focus": this._controlIDToFocus =3D deltaNode.content; break; default: = this._endPostBack(this._createPageRequestManagerParserError(String.format= (Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), sender); return; } } var i; if (asyncPostBackControlIDsNode && = postBackControlIDsNode && updatePanelIDsNode && panelsToRefreshNode && asyncPostBackTimeoutNode && childUpdatePanelIDsNode) { this._oldUpdatePanelIDs =3D this._updatePanelIDs; var childUpdatePanelIDsString =3D = childUpdatePanelIDsNode.content; this._childUpdatePanelIDs =3D = childUpdatePanelIDsString.length ? childUpdatePanelIDsString.split(',') = : []; var asyncPostBackControlIDsArray =3D = this._splitNodeIntoArray(asyncPostBackControlIDsNode); var postBackControlIDsArray =3D = this._splitNodeIntoArray(postBackControlIDsNode); var updatePanelIDsArray =3D = this._splitNodeIntoArray(updatePanelIDsNode); this._panelsToRefreshIDs =3D = this._splitNodeIntoArray(panelsToRefreshNode); for (i =3D 0; i < = this._panelsToRefreshIDs.length; i++) { var panelClientID =3D = this._uniqueIDToClientID(this._panelsToRefreshIDs[i]); if (!document.getElementById(panelClientID)) { = this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P= RM_MissingPanel, panelClientID)), sender); return; } } var asyncPostBackTimeout =3D = asyncPostBackTimeoutNode.content; this._updateControls(updatePanelIDsArray, = asyncPostBackControlIDsArray, postBackControlIDsArray, = asyncPostBackTimeout); } this._dataItems =3D {}; for (i =3D 0; i < dataItemNodes.length; i++) { var dataItemNode =3D dataItemNodes[i]; this._dataItems[dataItemNode.id] =3D dataItemNode.content; } for (i =3D 0; i < dataItemJsonNodes.length; i++) { var dataItemJsonNode =3D dataItemJsonNodes[i]; this._dataItems[dataItemJsonNode.id] =3D = eval(dataItemJsonNode.content); } var handler =3D = this._get_eventHandlerList().getHandler("pageLoading"); if (handler) { handler(this, this._getPageLoadingEventArgs()); } if (formActionNode) { this._form.action =3D formActionNode.content; = this._form._initialAction =3D this._form.action; } for (i =3D 0; i < = updatePanelNodes.length; i++) { var deltaUpdatePanel =3D updatePanelNodes[i]; var deltaPanelID =3D deltaUpdatePanel.id; var deltaPanelRendering =3D deltaUpdatePanel.content; var updatePanelElement =3D = document.getElementById(deltaPanelID); if (!updatePanelElement) { = this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P= RM_MissingPanel, deltaPanelID)), sender); return; } this._updatePanel(updatePanelElement, deltaPanelRendering); } for (i =3D 0; i < = scriptDisposeNodes.length; i++) { var disposePanelId =3D scriptDisposeNodes[i].id; var disposeScript =3D scriptDisposeNodes[i].content; this._registerDisposeScript(disposePanelId, disposeScript); } for (i =3D 0; i < hiddenFieldNodes.length; i++) { var id =3D hiddenFieldNodes[i].id; var value =3D hiddenFieldNodes[i].content; var hiddenFieldElement =3D document.getElementById(id); if (!hiddenFieldElement) { hiddenFieldElement =3D = document.createElement('input'); hiddenFieldElement.id =3D id; hiddenFieldElement.name =3D id; hiddenFieldElement.type =3D 'hidden'; this._form.appendChild(hiddenFieldElement); } hiddenFieldElement.value =3D value; } var arrayScript =3D ''; for (i =3D 0; i < arrayDeclarationNodes.length; i++) { arrayScript +=3D = "Sys.WebForms.PageRequestManager._addArrayElement('" + = arrayDeclarationNodes[i].id + "', " + arrayDeclarationNodes[i].content + = ");\r\n"; } var expandoScript =3D ''; for (i =3D 0; i < expandoNodes.length; i++) { var propertyReference =3D expandoNodes[i].id; var propertyValue =3D expandoNodes[i].content; expandoScript +=3D propertyReference + " =3D " + = propertyValue + "\r\n"; } Sys._ScriptLoader.readLoadedScripts(); Sys.Application.beginCreateComponents(); var scriptLoader =3D Sys._ScriptLoader.getInstance(); if (arrayScript.length) { scriptLoader.queueScriptBlock(arrayScript); } if (expandoScript.length) { scriptLoader.queueScriptBlock(expandoScript); } for (i =3D 0; i < scriptBlockNodes.length; i++) { var scriptBlockType =3D scriptBlockNodes[i].id; switch (scriptBlockType) { case "ScriptContentNoTags": = scriptLoader.queueScriptBlock(scriptBlockNodes[i].content); break; case "ScriptContentWithTags": var scriptTagAttributes; eval("scriptTagAttributes =3D " + = scriptBlockNodes[i].content); if (scriptTagAttributes.src && = Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) { continue; } = scriptLoader.queueCustomScriptTag(scriptTagAttributes); break; case "ScriptPath": if = (Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) { continue; } = scriptLoader.queueScriptReference(scriptBlockNodes[i].content); break; } } var onSubmitStatementScript =3D ''; for (var i =3D 0; i < onSubmitNodes.length; i++) { if (i =3D=3D=3D 0) { onSubmitStatementScript =3D = 'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme= nts, function() {\r\n'; } onSubmitStatementScript +=3D onSubmitNodes[i].content + = "\r\n"; } if (onSubmitStatementScript.length) { onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n"; scriptLoader.queueScriptBlock(onSubmitStatementScript); } this._response =3D sender; scriptLoader.loadScripts(0, = Function.createDelegate(this, this._scriptsLoadComplete), null, null); } function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) { this.dispose(); } function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad) { var handler =3D = this._get_eventHandlerList().getHandler("pageLoaded"); if (handler) { handler(this, this._getPageLoadedEventArgs(initialLoad)); } if (!initialLoad) { Sys.Application.raiseLoad(); } } function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) = { this._pageLoaded(true); } function = Sys$WebForms$PageRequestManager$_registerDisposeScript(panelID, = disposeScript) { if (!this._scriptDisposes[panelID]) { this._scriptDisposes[panelID] =3D [disposeScript]; } else { Array.add(this._scriptDisposes[panelID], disposeScript); } } function Sys$WebForms$PageRequestManager$_scriptsLoadComplete() { =20 if = (window.__theFormPostData) { window.__theFormPostData =3D ""; } if (window.__theFormPostCollection) { window.__theFormPostCollection =3D []; } if (window.WebForm_InitCallback) { window.WebForm_InitCallback(); } if (this._scrollPosition) { if (window.scrollTo) { window.scrollTo(this._scrollPosition.x, = this._scrollPosition.y); } this._scrollPosition =3D null; } Sys.Application.endCreateComponents(); this._pageLoaded(false); this._endPostBack(null, this._response); this._response =3D null; if (this._controlIDToFocus) { var focusTarget; var oldContentEditableSetting; if (Sys.Browser.agent =3D=3D=3D = Sys.Browser.InternetExplorer) { = var targetControl =3D $get(this._controlIDToFocus); var focusTarget =3D targetControl; if (targetControl && = (!WebForm_CanFocus(targetControl))) { focusTarget =3D = WebForm_FindFirstFocusableChild(targetControl); } if (focusTarget && = (typeof(focusTarget.contentEditable) !=3D=3D "undefined")) { oldContentEditableSetting =3D = focusTarget.contentEditable; focusTarget.contentEditable =3D false; } else { focusTarget =3D null; } } WebForm_AutoFocus(this._controlIDToFocus); if (focusTarget) { focusTarget.contentEditable =3D = oldContentEditableSetting; } this._controlIDToFocus =3D null; } } function Sys$WebForms$PageRequestManager$_splitNodeIntoArray(node) { var str =3D node.content; var arr =3D str.length ? str.split(',') : []; return arr; } function = Sys$WebForms$PageRequestManager$_uniqueIDToClientID(uniqueID) { return uniqueID.replace(/\$/g, '_'); } function = Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, = asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) { if (updatePanelIDs) { this._updatePanelIDs =3D = new Array(updatePanelIDs.length); this._updatePanelClientIDs =3D new = Array(updatePanelIDs.length); this._updatePanelHasChildrenAsTriggers =3D new = Array(updatePanelIDs.length); for (var i =3D 0; i < updatePanelIDs.length; i++) { var realPanelID =3D updatePanelIDs[i].substr(1); var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) = =3D=3D=3D 't'); = this._updatePanelHasChildrenAsTriggers[i] =3D childrenAsTriggers; this._updatePanelIDs[i] =3D realPanelID; this._updatePanelClientIDs[i] =3D = this._uniqueIDToClientID(realPanelID); } this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000; } else { this._updatePanelIDs =3D []; this._updatePanelClientIDs =3D []; this._updatePanelHasChildrenAsTriggers =3D []; this._asyncPostBackTimeout =3D 0; } this._asyncPostBackControlIDs =3D []; this._asyncPostBackControlClientIDs =3D []; this._convertToClientIDs(asyncPostBackControlIDs, = this._asyncPostBackControlIDs, this._asyncPostBackControlClientIDs); this._postBackControlIDs =3D []; this._postBackControlClientIDs =3D []; this._convertToClientIDs(postBackControlIDs, = this._postBackControlIDs, this._postBackControlClientIDs); } function = Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, = rendering) { for (var updatePanelID in this._scriptDisposes) { if (this._elementContains(updatePanelElement, = document.getElementById(updatePanelID))) { var disposeScripts =3D = this._scriptDisposes[updatePanelID]; for (var i =3D 0; i < disposeScripts.length; i++) { eval(disposeScripts[i]); } delete = this._scriptDisposes[updatePanelID]; } } this._destroyTree(updatePanelElement); updatePanelElement.innerHTML =3D rendering; } function Sys$WebForms$PageRequestManager$_validPosition(position) { return (typeof(position) !=3D=3D "undefined") && (position = !=3D=3D null) && (position !=3D=3D 0); } Sys.WebForms.PageRequestManager.prototype =3D { _get_eventHandlerList: = Sys$WebForms$PageRequestManager$_get_eventHandlerList, get_isInAsyncPostBack: = Sys$WebForms$PageRequestManager$get_isInAsyncPostBack, add_beginRequest: = Sys$WebForms$PageRequestManager$add_beginRequest, remove_beginRequest: = Sys$WebForms$PageRequestManager$remove_beginRequest, add_endRequest: Sys$WebForms$PageRequestManager$add_endRequest, remove_endRequest: = Sys$WebForms$PageRequestManager$remove_endRequest, add_initializeRequest: = Sys$WebForms$PageRequestManager$add_initializeRequest, remove_initializeRequest: = Sys$WebForms$PageRequestManager$remove_initializeRequest, add_pageLoaded: Sys$WebForms$PageRequestManager$add_pageLoaded, remove_pageLoaded: = Sys$WebForms$PageRequestManager$remove_pageLoaded, add_pageLoading: Sys$WebForms$PageRequestManager$add_pageLoading, remove_pageLoading: = Sys$WebForms$PageRequestManager$remove_pageLoading, abortPostBack: Sys$WebForms$PageRequestManager$abortPostBack, _createPageRequestManagerTimeoutError: = Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError, _createPageRequestManagerServerError: = Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError, _createPageRequestManagerParserError: = Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError, _createPostBackSettings: = Sys$WebForms$PageRequestManager$_createPostBackSettings, _convertToClientIDs: = Sys$WebForms$PageRequestManager$_convertToClientIDs, _decodeString: Sys$WebForms$PageRequestManager$_decodeString, _destroyTree: Sys$WebForms$PageRequestManager$_destroyTree, dispose: Sys$WebForms$PageRequestManager$dispose, _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack, _elementContains: Sys$WebForms$PageRequestManager$_elementContains, _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack, _findNearestElement: = Sys$WebForms$PageRequestManager$_findNearestElement, _findText: Sys$WebForms$PageRequestManager$_findText, _getPageLoadedEventArgs: = Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs, _getPageLoadingEventArgs: = Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs, _getPostBackSettings: = Sys$WebForms$PageRequestManager$_getPostBackSettings, _getScrollPosition: = Sys$WebForms$PageRequestManager$_getScrollPosition, _initializeInternal: = Sys$WebForms$PageRequestManager$_initializeInternal, _matchesParentIDInList: = Sys$WebForms$PageRequestManager$_matchesParentIDInList, _onFormElementClick: = Sys$WebForms$PageRequestManager$_onFormElementClick, _onFormSubmit: Sys$WebForms$PageRequestManager$_onFormSubmit, _onFormSubmitCompleted: = Sys$WebForms$PageRequestManager$_onFormSubmitCompleted, _onWindowUnload: Sys$WebForms$PageRequestManager$_onWindowUnload, _pageLoaded: Sys$WebForms$PageRequestManager$_pageLoaded, _pageLoadedInitialLoad: = Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad, _registerDisposeScript: = Sys$WebForms$PageRequestManager$_registerDisposeScript, _scriptsLoadComplete: = Sys$WebForms$PageRequestManager$_scriptsLoadComplete, _splitNodeIntoArray: = Sys$WebForms$PageRequestManager$_splitNodeIntoArray, _uniqueIDToClientID: = Sys$WebForms$PageRequestManager$_uniqueIDToClientID, _updateControls: Sys$WebForms$PageRequestManager$_updateControls, _updatePanel: Sys$WebForms$PageRequestManager$_updatePanel, _validPosition: Sys$WebForms$PageRequestManager$_validPosition } Sys.WebForms.PageRequestManager.getInstance =3D function = Sys$WebForms$PageRequestManager$getInstance() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return Sys.WebForms.PageRequestManager._instance || null; } Sys.WebForms.PageRequestManager._addArrayElement =3D function = Sys$WebForms$PageRequestManager$_addArrayElement(arrayName, arrayValue) = { if (typeof(window[arrayName]) =3D=3D=3D "undefined") { window[arrayName] =3D [ arrayValue ]; } else { Array.add(window[arrayName], arrayValue); } } Sys.WebForms.PageRequestManager._initialize =3D function = Sys$WebForms$PageRequestManager$_initialize(scriptManagerID, = formElement) { if (Sys.WebForms.PageRequestManager.getInstance()) { throw = Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice); } Sys.WebForms.PageRequestManager._instance =3D new = Sys.WebForms.PageRequestManager(); = Sys.WebForms.PageRequestManager.getInstance()._initializeInternal(scriptM= anagerID, formElement); } Sys.WebForms.PageRequestManager.registerClass('Sys.WebForms.PageRequestMa= nager'); Sys.UI._UpdateProgress =3D function Sys$UI$_UpdateProgress(element) { Sys.UI._UpdateProgress.initializeBase(this,[element]); this._displayAfter =3D 500; this._dynamicLayout =3D true; this._associatedUpdatePanelId =3D null; this._beginRequestHandlerDelegate =3D null; this._startDelegate =3D null; this._endRequestHandlerDelegate =3D null; this._pageRequestManager =3D null; this._timerCookie =3D null; } function Sys$UI$_UpdateProgress$get_displayAfter() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._displayAfter; } function Sys$UI$_UpdateProgress$set_displayAfter(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Number}]); if (e) throw e; this._displayAfter =3D value; } function Sys$UI$_UpdateProgress$get_dynamicLayout() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._dynamicLayout; } function Sys$UI$_UpdateProgress$set_dynamicLayout(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: Boolean}]); if (e) throw e; this._dynamicLayout =3D value; } function Sys$UI$_UpdateProgress$get_associatedUpdatePanelId() { /// if (arguments.length !=3D=3D 0) throw Error.parameterCount(); return this._associatedUpdatePanelId; } function Sys$UI$_UpdateProgress$set_associatedUpdatePanelId(value) { var e =3D Function._validateParams(arguments, [{name: "value", = type: String, mayBeNull: true}]); if (e) throw e; this._associatedUpdatePanelId =3D value; } function Sys$UI$_UpdateProgress$_handleBeginRequest(sender, arg) { var curElem =3D arg.get_postBackElement(); var showProgress =3D !this._associatedUpdatePanelId;=20 while (!showProgress && curElem) { if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D = curElem.id) { showProgress =3D true;=20 } curElem =3D curElem.parentNode;=20 }=20 if (showProgress) { this._timerCookie =3D window.setTimeout(this._startDelegate, = this._displayAfter); } } function Sys$UI$_UpdateProgress$_startRequest() { if (this._pageRequestManager.get_isInAsyncPostBack()) { if (this._dynamicLayout) this.get_element().style.display = =3D 'block'; else this.get_element().style.visibility =3D 'visible'; } this._timerCookie =3D null; } function Sys$UI$_UpdateProgress$_handleEndRequest(sender, arg) { if (this._dynamicLayout) this.get_element().style.display =3D = 'none'; else this.get_element().style.visibility =3D 'hidden'; if (this._timerCookie) { window.clearTimeout(this._timerCookie); this._timerCookie =3D null; } } function Sys$UI$_UpdateProgress$dispose() { if (this._pageRequestManager !=3D=3D null) { = this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel= egate); = this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat= e); } Sys.UI._UpdateProgress.callBaseMethod(this,"dispose"); } function Sys$UI$_UpdateProgress$initialize() { Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize'); this._beginRequestHandlerDelegate =3D Function.createDelegate(this, = this._handleBeginRequest); this._endRequestHandlerDelegate =3D Function.createDelegate(this, = this._handleEndRequest); this._startDelegate =3D Function.createDelegate(this, = this._startRequest); if (Sys.WebForms && Sys.WebForms.PageRequestManager) { this._pageRequestManager =3D = Sys.WebForms.PageRequestManager.getInstance(); } if (this._pageRequestManager !=3D=3D null ) { = this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega= te); = this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);= } } Sys.UI._UpdateProgress.prototype =3D { get_displayAfter: Sys$UI$_UpdateProgress$get_displayAfter, set_displayAfter: Sys$UI$_UpdateProgress$set_displayAfter, get_dynamicLayout: Sys$UI$_UpdateProgress$get_dynamicLayout, set_dynamicLayout: Sys$UI$_UpdateProgress$set_dynamicLayout, get_associatedUpdatePanelId: = Sys$UI$_UpdateProgress$get_associatedUpdatePanelId, set_associatedUpdatePanelId: = Sys$UI$_UpdateProgress$set_associatedUpdatePanelId, _handleBeginRequest: Sys$UI$_UpdateProgress$_handleBeginRequest, _startRequest: Sys$UI$_UpdateProgress$_startRequest, _handleEndRequest: Sys$UI$_UpdateProgress$_handleEndRequest, dispose: Sys$UI$_UpdateProgress$dispose, initialize: Sys$UI$_UpdateProgress$initialize } Sys.UI._UpdateProgress.registerClass('Sys.UI._UpdateProgress', = Sys.UI.Control); Type.registerNamespace('Sys.WebForms'); Sys.WebForms.Res=3D{ "PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. = If it is being updated dynamically then it must be inside another = UpdatePanel.", "PRM_ServerError":"An unknown error occurred while processing the = request on the server. The status code returned from the server was: = {0}", "PRM_ParserError":"The message received from the server could not be = parsed.", "PRM_TimeoutError":"The server request timed out.", "PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized = more than once.", "PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.", "PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. = If it is being updated dynamically then it must be inside another = UpdatePanel.", "PRM_ServerError":"An unknown error occurred while processing the = request on the server. The status code returned from the server was: = {0}", "PRM_ParserError":"The message received from the server could not be = parsed. Common causes for this error are when the response is modified = by calls to Response.Write(), response filters, HttpModules, or server = trace is enabled.\r\nDetails: {0}", "PRM_TimeoutError":"The server request timed out.", "PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.", "PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized = more than once." }; if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXA7m_T5D2rwh9ocZ7WFPqkKhwgnhgVzVsdHcRcDTHGnBQ2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. // Add common toolkit scripts here. To consume the scripts on a control = add //=20 // [RequiredScript(typeof(CommonToolkitScripts))]=20 // public class SomeExtender : ... //=20 // to the controls extender class declaration. Type.registerNamespace('AjaxControlToolkit'); AjaxControlToolkit.BoxSide =3D function() { /// /// The BoxSide enumeration describes the sides of a DOM element /// /// /// /// /// } AjaxControlToolkit.BoxSide.prototype =3D { Top : 0, Right : 1, Bottom : 2, Left : 3 } AjaxControlToolkit.BoxSide.registerEnum("AjaxControlToolkit.BoxSide", = false); AjaxControlToolkit._CommonToolkitScripts =3D function() { /// /// The _CommonToolkitScripts class contains functionality utilized = across a number /// of controls (but not universally) /// /// /// You should not create new instances of _CommonToolkitScripts. = Instead you should use the shared instance CommonToolkitScripts (or = AjaxControlToolkit.CommonToolkitScripts). /// =20 // Populate the borderThicknesses lookup table this._borderThicknesses =3D { }; var div0 =3D document.createElement('div'); var div1 =3D document.createElement('div'); div0.style.visibility =3D 'hidden'; div0.style.position =3D 'absolute'; div0.style.fontSize =3D '1px'; =20 div1.style.height =3D '0px'; div1.style.overflow =3D 'hidden'; =20 document.body.appendChild(div0).appendChild(div1); =20 var base =3D div0.offsetHeight; div1.style.borderTop =3D 'solid black'; =20 div1.style.borderTopWidth =3D 'thin'; this._borderThicknesses['thin'] =3D div0.offsetHeight - base; =20 div1.style.borderTopWidth =3D 'medium'; this._borderThicknesses['medium'] =3D div0.offsetHeight - base; =20 div1.style.borderTopWidth =3D 'thick'; this._borderThicknesses['thick'] =3D div0.offsetHeight - base; =20 div0.removeChild(div1); document.body.removeChild(div0); div0 =3D null; div1 =3D null; } AjaxControlToolkit._CommonToolkitScripts.prototype =3D { // The order of these lookup tables is directly linked to the = BoxSide enum defined above _borderStyleNames : = ['borderTopStyle','borderRightStyle','borderBottomStyle','borderLeftStyle= '], _borderWidthNames : ['borderTopWidth', 'borderRightWidth', = 'borderBottomWidth', 'borderLeftWidth'], _paddingWidthNames : ['paddingTop', 'paddingRight', 'paddingBottom', = 'paddingLeft'], _marginWidthNames : ['marginTop', 'marginRight', 'marginBottom', = 'marginLeft'], getCurrentStyle : function(element, attribute, defaultValue) { /// /// CommonToolkitScripts.getCurrentStyle is used to compute the = value of a style attribute on an /// element that is currently being displayed. This is = especially useful for scenarios where /// several CSS classes and style attributes are merged, or when = you need information about the /// size of an element (such as its padding or margins) that is = not exposed in any other fashion. /// /// /// Live DOM element to check style of /// /// /// The style attribute's name is expected to be in a = camel-cased form that you would use when /// accessing a JavaScript property instead of the hyphenated = form you would use in a CSS /// stylesheet (i.e. it should be "backgroundColor" and not = "background-color"). /// /// /// In the event of a problem (i.e. a null element or an = attribute that cannot be found) we /// return this object (or null if none if not specified). /// /// /// Current style of the element's attribute /// var currentValue =3D null; if (element) { if (element.currentStyle) { currentValue =3D element.currentStyle[attribute]; } else if (document.defaultView && = document.defaultView.getComputedStyle) { var style =3D = document.defaultView.getComputedStyle(element, null); if (style) { currentValue =3D style[attribute]; } } =20 if (!currentValue && element.style.getPropertyValue) { currentValue =3D = element.style.getPropertyValue(attribute); } else if (!currentValue && element.style.getAttribute) { currentValue =3D element.style.getAttribute(attribute); } =20 } =20 if ((!currentValue || currentValue =3D=3D "" || = typeof(currentValue) =3D=3D=3D 'undefined')) { if (typeof(defaultValue) !=3D 'undefined') { currentValue =3D defaultValue; } else { currentValue =3D null; } } =20 return currentValue; =20 }, getInheritedBackgroundColor : function(element) { /// /// CommonToolkitScripts.getInheritedBackgroundColor provides = the ability to get the displayed /// background-color of an element. In most cases calling = CommonToolkitScripts.getCurrentStyle /// won't do the job because it will return "transparent" unless = the element has been given a /// specific background color. This function will walk up the = element's parents until it finds /// a non-transparent color. If we get all the way to the top = of the document or have any other /// problem finding a color, we will return the default value = '#FFFFFF'. This function is /// especially important when we're using opacity in IE (because = ClearType will make text look /// horrendous if you fade it with a transparent background = color). /// /// /// Live DOM element to get the background color of /// /// /// Background color of the element /// =20 if (!element) return '#FFFFFF'; var background =3D this.getCurrentStyle(element, = 'backgroundColor'); try { while (!background || background =3D=3D '' || background = =3D=3D 'transparent' || background =3D=3D 'rgba(0, 0, 0, 0)') { element =3D element.parentNode; if (!element) { background =3D '#FFFFFF'; } else { background =3D this.getCurrentStyle(element, = 'backgroundColor'); } } } catch(ex) { background =3D '#FFFFFF'; } return background; }, getLocation : function(element) { /// Gets the coordinates of a DOM element. /// /// /// A Point object with two fields, x and y, which contain the = pixel coordinates of the element. /// // workaround for an issue in getLocation where it will compute the = location of the document element. // this will return an offset if scrolled. // if (element =3D=3D=3D document.documentElement) { return new Sys.UI.Point(0,0); } // Workaround for IE6 bug in getLocation (also required patching = getBounds - remove that fix when this is removed) if (Sys.Browser.agent =3D=3D Sys.Browser.InternetExplorer && = Sys.Browser.version < 7) { if (element.window =3D=3D=3D element || element.nodeType = =3D=3D=3D 9 || !element.getClientRects || = !element.getBoundingClientRect) return new Sys.UI.Point(0,0); // Get the first bounding rectangle in screen coordinates var screenRects =3D element.getClientRects(); if (!screenRects || !screenRects.length) { return new Sys.UI.Point(0,0); } var first =3D screenRects[0]; // Delta between client coords and screen coords var dLeft =3D 0; var dTop =3D 0; var inFrame =3D false; try { inFrame =3D element.ownerDocument.parentWindow.frameElement; } catch(ex) { // If accessing the frameElement fails, a frame is probably = in a different // domain than its parent - and we still want to do the = calculation below inFrame =3D true; } // If we're in a frame, get client coordinates too so we can = compute the delta if (inFrame) { // Get the bounding rectangle in client coords var clientRect =3D element.getBoundingClientRect(); if (!clientRect) { return new Sys.UI.Point(0,0); } // Find the minima in screen coords var minLeft =3D first.left; var minTop =3D first.top; for (var i =3D 1; i < screenRects.length; i++) { var r =3D screenRects[i]; if (r.left < minLeft) { minLeft =3D r.left; } if (r.top < minTop) { minTop =3D r.top; } } // Compute the delta between screen and client coords dLeft =3D minLeft - clientRect.left; dTop =3D minTop - clientRect.top; } // Subtract 2px, the border of the viewport (It can be changed = in IE6 by applying a border style to the HTML element, // but this is not supported by ASP.NET AJAX, and it cannot be = changed in IE7.), and also subtract the delta between // screen coords and client coords var ownerDocument =3D element.document.documentElement; return new Sys.UI.Point(first.left - 2 - dLeft + = ownerDocument.scrollLeft, first.top - 2 - dTop + = ownerDocument.scrollTop); } return Sys.UI.DomElement.getLocation(element); }, setLocation : function(element, point) { /// /// Sets the current location for an element. /// /// /// DOM element /// /// /// Point object (of the form {x,y}) /// /// /// This method does not attempt to set the positioning mode of = an element. /// The position is relative from the elements nearest = position:relative or /// position:absolute element. /// Sys.UI.DomElement.setLocation(element, point.x, point.y); }, =20 getContentSize : function(element) { /// /// Gets the "content-box" size of an element. /// /// /// DOM element /// /// /// Size of the element (in the form {width,height}) /// /// /// The "content-box" is the size of the content area *inside* = of the borders and /// padding of an element. The "content-box" size does not = include the margins around /// the element. /// =20 if (!element) { throw Error.argumentNull('element'); } var size =3D this.getSize(element); var borderBox =3D this.getBorderBox(element); var paddingBox =3D this.getPaddingBox(element); return { width : size.width - borderBox.horizontal - = paddingBox.horizontal, height : size.height - borderBox.vertical - = paddingBox.vertical } }, getSize : function(element) { /// /// Gets the "border-box" size of an element. /// /// /// DOM element /// /// /// Size of the element (in the form {width,height}) /// /// /// The "border-box" is the size of the content area *outside* = of the borders and /// padding of an element. The "border-box" size does not = include the margins around /// the element. /// =20 if (!element) { throw Error.argumentNull('element'); } return { width: element.offsetWidth, height: element.offsetHeight }; }, =20 setContentSize : function(element, size) { /// /// Sets the "content-box" size of an element. /// /// /// DOM element /// /// /// Size of the element (in the form {width,height}) /// /// /// The "content-box" is the size of the content area *inside* = of the borders and /// padding of an element. The "content-box" size does not = include the margins around /// the element. /// =20 if (!element) { throw Error.argumentNull('element'); } if (!size) { throw Error.argumentNull('size'); } // FF respects -moz-box-sizing css extension, so adjust the box = size for the border-box if(this.getCurrentStyle(element, 'MozBoxSizing') =3D=3D = 'border-box' || this.getCurrentStyle(element, 'BoxSizing') =3D=3D = 'border-box') { var borderBox =3D this.getBorderBox(element); var paddingBox =3D this.getPaddingBox(element); size =3D { width: size.width + borderBox.horizontal + = paddingBox.horizontal, height: size.height + borderBox.vertical + = paddingBox.vertical }; } element.style.width =3D size.width.toString() + 'px'; element.style.height =3D size.height.toString() + 'px'; }, =20 setSize : function(element, size) { /// /// Sets the "border-box" size of an element. /// /// /// The "border-box" is the size of the content area *outside* = of the borders and=20 /// padding of an element. The "border-box" size does not = include the margins around /// the element. /// /// DOM = element /// Size of the element (in = the form {width,height}) /// =20 if (!element) { throw Error.argumentNull('element'); } if (!size) { throw Error.argumentNull('size'); } var borderBox =3D this.getBorderBox(element); var paddingBox =3D this.getPaddingBox(element); var contentSize =3D { width: size.width - borderBox.horizontal - = paddingBox.horizontal, height: size.height - borderBox.vertical - = paddingBox.vertical }; this.setContentSize(element, contentSize); }, =20 getBounds : function(element) { /// Gets the coordinates, width and height of an = element. /// /// /// A Bounds object with four fields, x, y, width and height, = which contain the pixel coordinates, /// width and height of the element. /// /// /// Use the CommonToolkitScripts version of getLocation to = handle the workaround for IE6. We can /// remove the below implementation and just call = Sys.UI.DomElement.getBounds when the other bug /// is fixed. /// =20 var offset =3D CommonToolkitScripts.getLocation(element); return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth = || 0, element.offsetHeight || 0); },=20 =20 setBounds : function(element, bounds) { /// /// Sets the "border-box" bounds of an element /// /// /// DOM element /// /// /// Bounds of the element (of the form {x,y,width,height}) /// /// /// The "border-box" is the size of the content area *outside* = of the borders and /// padding of an element. The "border-box" size does not = include the margins around /// the element. /// =20 if (!element) { throw Error.argumentNull('element'); } if (!bounds) { throw Error.argumentNull('bounds'); } this.setSize(element, bounds); CommonToolkitScripts.setLocation(element, bounds); }, =20 getClientBounds : function() { /// /// Gets the width and height of the browser client window = (excluding scrollbars) /// /// /// Browser's client width and height /// var clientWidth; var clientHeight; switch(Sys.Browser.agent) { case Sys.Browser.InternetExplorer: clientWidth =3D document.documentElement.clientWidth; clientHeight =3D document.documentElement.clientHeight; break; case Sys.Browser.Safari: clientWidth =3D window.innerWidth; clientHeight =3D window.innerHeight; break; case Sys.Browser.Opera: clientWidth =3D Math.min(window.innerWidth, = document.body.clientWidth); clientHeight =3D Math.min(window.innerHeight, = document.body.clientHeight); break; default: // Sys.Browser.Firefox, etc. clientWidth =3D Math.min(window.innerWidth, = document.documentElement.clientWidth); clientHeight =3D Math.min(window.innerHeight, = document.documentElement.clientHeight); break; } return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight); }, =20 getMarginBox : function(element) { /// /// Gets the entire margin box sizes. /// /// /// DOM element /// /// /// Element's margin box sizes (of the form = {top,left,bottom,right,horizontal,vertical}) /// =20 if (!element) { throw Error.argumentNull('element'); } var box =3D { top: this.getMargin(element, = AjaxControlToolkit.BoxSide.Top), right: this.getMargin(element, = AjaxControlToolkit.BoxSide.Right), bottom: this.getMargin(element, = AjaxControlToolkit.BoxSide.Bottom), left: this.getMargin(element, = AjaxControlToolkit.BoxSide.Left) } box.horizontal =3D box.left + box.right; box.vertical =3D box.top + box.bottom; return box; }, =20 getBorderBox : function(element) { /// /// Gets the entire border box sizes. /// /// /// DOM element /// /// /// Element's border box sizes (of the form = {top,left,bottom,right,horizontal,vertical}) /// =20 if (!element) { throw Error.argumentNull('element'); } var box =3D { top: this.getBorderWidth(element, = AjaxControlToolkit.BoxSide.Top), right: this.getBorderWidth(element, = AjaxControlToolkit.BoxSide.Right), bottom: this.getBorderWidth(element, = AjaxControlToolkit.BoxSide.Bottom), left: this.getBorderWidth(element, = AjaxControlToolkit.BoxSide.Left) } box.horizontal =3D box.left + box.right; box.vertical =3D box.top + box.bottom; return box; }, =20 getPaddingBox : function(element) { /// /// Gets the entire padding box sizes. /// /// /// DOM element /// /// /// Element's padding box sizes (of the form = {top,left,bottom,right,horizontal,vertical}) /// =20 if (!element) { throw Error.argumentNull('element'); } var box =3D { top: this.getPadding(element, = AjaxControlToolkit.BoxSide.Top), right: this.getPadding(element, = AjaxControlToolkit.BoxSide.Right), bottom: this.getPadding(element, = AjaxControlToolkit.BoxSide.Bottom), left: this.getPadding(element, = AjaxControlToolkit.BoxSide.Left) } box.horizontal =3D box.left + box.right; box.vertical =3D box.top + box.bottom; return box; }, =20 isBorderVisible : function(element, boxSide) { /// /// Gets whether the current border style for an element on a = specific boxSide is not 'none'. /// /// /// DOM element /// /// /// Side of the element /// /// /// Whether the current border style for an element on a = specific boxSide is not 'none'. /// =20 if (!element) { throw Error.argumentNull('element'); } if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > = AjaxControlToolkit.BoxSide.Left) { throw = Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, = boxSide, 'AjaxControlToolkit.BoxSide')); } var styleName =3D this._borderStyleNames[boxSide]; var styleValue =3D this.getCurrentStyle(element, styleName); return styleValue !=3D "none"; }, =20 getMargin : function(element, boxSide) { /// /// Gets the margin thickness of an element on a specific = boxSide. /// /// /// DOM element /// /// /// Side of the element /// /// /// Margin thickness on the element's specified side /// =20 if (!element) { throw Error.argumentNull('element'); } if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > = AjaxControlToolkit.BoxSide.Left) { throw = Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, = boxSide, 'AjaxControlToolkit.BoxSide')); } var styleName =3D this._marginWidthNames[boxSide]; var styleValue =3D this.getCurrentStyle(element, styleName); try { return this.parsePadding(styleValue); } catch(ex) { return = 0; } }, getBorderWidth : function(element, boxSide) { /// /// Gets the border thickness of an element on a specific = boxSide. /// /// /// DOM element /// /// /// Side of the element /// /// /// Border thickness on the element's specified side /// =20 if (!element) { throw Error.argumentNull('element'); } if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > = AjaxControlToolkit.BoxSide.Left) { throw = Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, = boxSide, 'AjaxControlToolkit.BoxSide')); } if(!this.isBorderVisible(element, boxSide)) { return 0; } =20 var styleName =3D this._borderWidthNames[boxSide]; =20 var styleValue =3D this.getCurrentStyle(element, styleName); return this.parseBorderWidth(styleValue); }, =20 getPadding : function(element, boxSide) { /// /// Gets the padding thickness of an element on a specific = boxSide. /// /// /// DOM element /// /// /// Side of the element /// /// /// Padding on the element's specified side /// =20 if (!element) { throw Error.argumentNull('element'); } if(boxSide < AjaxControlToolkit.BoxSide.Top || boxSide > = AjaxControlToolkit.BoxSide.Left) { throw = Error.argumentOutOfRange(String.format(Sys.Res.enumInvalidValue, = boxSide, 'AjaxControlToolkit.BoxSide')); } var styleName =3D this._paddingWidthNames[boxSide]; var styleValue =3D this.getCurrentStyle(element, styleName); return this.parsePadding(styleValue); }, =20 parseBorderWidth : function(borderWidth) { /// /// Parses a border-width string into a pixel size /// /// /// Type of border ('thin','medium','thick','inherit',px = unit,null,'') /// /// /// Number of pixels in the border-width /// =20 if(borderWidth) { switch(borderWidth) { case 'thin': case 'medium': case 'thick': return this._borderThicknesses[borderWidth]; case 'inherit': return 0; } var unit =3D this.parseUnit(borderWidth); Sys.Debug.assert(unit.type =3D=3D 'px', = String.format(AjaxControlToolkit.Resources.Common_InvalidBorderWidthUnit,= unit.type)); return unit.size; } return 0; }, =20 parsePadding : function(padding) { /// /// Parses a padding string into a pixel size /// /// /// Padding to parse ('inherit',px unit,null,'') /// /// /// Number of pixels in the padding /// =20 if(padding) { if(padding =3D=3D 'inherit') { return 0; } var unit =3D this.parseUnit(padding); Sys.Debug.assert(unit.type =3D=3D 'px', = String.format(AjaxControlToolkit.Resources.Common_InvalidPaddingUnit, = unit.type)); return unit.size; } return 0; }, =20 parseUnit : function(value) { /// /// Parses a unit string into a unit object /// /// /// Value to parse (of the form px unit,% unit,em unit,...) /// /// /// Parsed unit (of the form {size,type}) /// =20 if (!value) { throw Error.argumentNull('value'); } =20 value =3D value.trim().toLowerCase(); var l =3D value.length; var s =3D -1; for(var i =3D 0; i < l; i++) { var ch =3D value.substr(i, 1); if((ch < '0' || ch > '9') && ch !=3D '-' && ch !=3D '.' && = ch !=3D ',') { break; } s =3D i; } if(s =3D=3D -1) { throw = Error.create(AjaxControlToolkit.Resources.Common_UnitHasNoDigits); } var type; var size; if(s < (l - 1)) { type =3D value.substring(s + 1).trim(); } else { type =3D 'px'; } size =3D parseFloat(value.substr(0, s + 1)); if(type =3D=3D 'px') { size =3D Math.floor(size); } return {=20 size: size, type: type }; }, =20 getElementOpacity : function(element) { /// /// Get the element's opacity /// /// /// Element /// /// /// Opacity of the element /// =20 if (!element) { throw Error.argumentNull('element'); } =20 var hasOpacity =3D false; var opacity; =20 if (element.filters) { var filters =3D element.filters; if (filters.length !=3D=3D 0) { var alphaFilter =3D = filters['DXImageTransform.Microsoft.Alpha']; if (alphaFilter) { opacity =3D alphaFilter.opacity / 100.0; hasOpacity =3D true; } } } else { opacity =3D this.getCurrentStyle(element, 'opacity', 1); hasOpacity =3D true; } =20 if (hasOpacity =3D=3D=3D false) { return 1.0; } return parseFloat(opacity); }, setElementOpacity : function(element, value) { /// /// Set the element's opacity /// /// /// Element /// /// /// Opacity of the element /// =20 if (!element) { throw Error.argumentNull('element'); } =20 if (element.filters) { var filters =3D element.filters; var createFilter =3D true; if (filters.length !=3D=3D 0) { var alphaFilter =3D = filters['DXImageTransform.Microsoft.Alpha']; if (alphaFilter) { createFilter =3D false; alphaFilter.opacity =3D value * 100; } } if (createFilter) { element.style.filter =3D = 'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (value * 100) + = ')'; } } else { element.style.opacity =3D value; } }, =20 resolveFunction : function(value) { /// /// Returns a function reference that corresponds to the = provided value /// /// /// The value can either be a Function, the name of a function = (that can be found using window['name']), /// or an expression that evaluates to a function. /// /// /// Reference to the function, or null if not found /// =20 if (value) { if (value instanceof Function) { return value; } else if (String.isInstanceOfType(value) && value.length > = 0) { var func; if ((func =3D window[value]) instanceof Function) { return func; } else if ((func =3D eval(value)) instanceof Function) { return func; } } } return null; }, addCssClasses : function(element, classNames) { /// /// Adds multiple css classes to a DomElement /// /// The = element to modify /// The class names to = add =20 for(var i =3D 0; i < classNames.length; i++) { Sys.UI.DomElement.addCssClass(element, classNames[i]); } }, removeCssClasses : function(element, classNames) { /// /// Removes multiple css classes to a DomElement /// /// The = element to modify /// The class names to = remove =20 for(var i =3D 0; i < classNames.length; i++) { Sys.UI.DomElement.removeCssClass(element, classNames[i]); } }, setStyle : function(element, style) { /// /// Sets the style of the element using the supplied style = template object /// /// The = element to modify /// The template $common.applyProperties(element.style, style); }, removeHandlers : function(element, events) { /// /// Removes a set of event handlers from an element /// /// The = element to modify /// The template object = that contains event names and delegates /// /// This is NOT the same as $clearHandlers which removes all = delegates from a DomElement. This rather removes select delegates=20 /// from a specified element and has a matching signature as = $addHandlers /// for (var name in events) { $removeHandler(element, name, events[name]); } }, =20 containsPoint : function(rect, x, y) { /// /// Tests whether a point (x,y) is contained within a rectangle /// /// The rectangle /// The x coordinate of the = point /// The y coordinate of the = point =20 return x >=3D rect.x && x <=3D (rect.x + rect.width) && y >=3D = rect.y && y <=3D (rect.y + rect.width); }, isKeyDigit : function(keyCode) {=20 /// /// Gets whether the supplied key-code is a digit /// /// The = key code of the event (from Sys.UI.DomEvent) /// return (0x30 <=3D keyCode && keyCode <=3D 0x39);=20 }, =20 isKeyNavigation : function(keyCode) {=20 /// /// Gets whether the supplied key-code is a navigation key /// /// The = key code of the event (from Sys.UI.DomEvent) /// return (Sys.UI.Key.left <=3D keyCode && keyCode <=3D = Sys.UI.Key.down);=20 }, =20 padLeft : function(text, size, ch, truncate) {=20 /// /// Pads the left hand side of the supplied text with the = specified pad character up to the requested size /// /// The text to pad /// The size to pad the text (default is 2) /// The = single character to use as the pad character (default is ' ') /// Whether to truncate the text to size (default is = false) =20 return AjaxControlToolkit.CommonToolkitScripts._pad(text, size = || 2, ch || ' ', 'l', truncate || false);=20 }, =20 padRight : function(text, size, ch, truncate) {=20 /// /// Pads the right hand side of the supplied text with the = specified pad character up to the requested size /// /// The text to pad /// The size to pad the text (default is 2) /// The = single character to use as the pad character (default is ' ') /// Whether to truncate the text to size (default is = false) return AjaxControlToolkit.CommonToolkitScripts._pad(text, size = || 2, ch || ' ', 'r', truncate || false);=20 }, =20 _pad : function(text, size, ch, side, truncate) { /// /// Pads supplied text with the specified pad character up to = the requested size /// /// The text to pad /// The = size to pad the text /// The single character to = use as the pad character /// Either 'l' or 'r' to = siginfy whether to pad the Left or Right side respectively /// Whether to = truncate the text to size text =3D text.toString(); var length =3D text.length; var builder =3D new Sys.StringBuilder(); if (side =3D=3D 'r') { builder.append(text); }=20 while (length < size) { builder.append(ch); length++; } if (side =3D=3D 'l') { builder.append(text); } var result =3D builder.toString(); if (truncate && result.length > size) { if (side =3D=3D 'l') { result =3D result.substr(result.length - size, size); } else { result =3D result.substr(0, size); } } return result; }, =20 __DOMEvents : { focusin : { eventGroup : "UIEvents", init : function(e, p) { = e.initUIEvent("focusin", true, false, window, 1); } }, focusout : { eventGroup : "UIEvents", init : function(e, p) { = e.initUIEvent("focusout", true, false, window, 1); } }, activate : { eventGroup : "UIEvents", init : function(e, p) { = e.initUIEvent("activate", true, true, window, 1); } }, focus : { eventGroup : "UIEvents", init : function(e, p) { = e.initUIEvent("focus", false, false, window, 1); } }, blur : { eventGroup : "UIEvents", init : function(e, p) { = e.initUIEvent("blur", false, false, window, 1); } }, click : { eventGroup : "MouseEvents", init : function(e, p) { = e.initMouseEvent("click", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, dblclick : { eventGroup : "MouseEvents", init : function(e, p) { = e.initMouseEvent("click", true, true, window, 2, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, mousedown : { eventGroup : "MouseEvents", init : function(e, p) = { e.initMouseEvent("mousedown", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, mouseup : { eventGroup : "MouseEvents", init : function(e, p) { = e.initMouseEvent("mouseup", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, mouseover : { eventGroup : "MouseEvents", init : function(e, p) = { e.initMouseEvent("mouseover", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, mousemove : { eventGroup : "MouseEvents", init : function(e, p) = { e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, mouseout : { eventGroup : "MouseEvents", init : function(e, p) { = e.initMouseEvent("mousemove", true, true, window, 1, p.screenX || 0, = p.screenY || 0, p.clientX || 0, p.clientY || 0, p.ctrlKey || false, = p.altKey || false, p.shiftKey || false, p.metaKey || false, p.button || = 0, p.relatedTarget || null); } }, load : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("load", false, false); } }, unload : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("unload", false, false); } }, select : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("select", true, false); } }, change : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("change", true, false); } }, submit : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("submit", true, true); } }, reset : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("reset", true, false); } }, resize : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("resize", true, false); } }, scroll : { eventGroup : "HTMLEvents", init : function(e, p) { = e.initMouseEvent("scroll", true, false); } } }, =20 tryFireRawEvent : function(element, rawEvent) { /// /// Attempts to fire a raw DOM event on an element /// /// The = element to fire the event /// The raw DOM event = object to fire. Must not be Sys.UI.DomEvent /// True if the event was successfully = fired, otherwise false =20 try { if (element.fireEvent) { element.fireEvent("on" + rawEvent.type, rawEvent); return true; } else if (element.dispatchEvent) { element.dispatchEvent(rawEvent); return true; } } catch (e) { } return false; }, =20 tryFireEvent : function(element, eventName, properties) { /// /// Attempts to fire a DOM event on an element /// /// The = element to fire the event /// The name of the = event to fire (without an 'on' prefix) /// Properties to add = to the event /// True if the event was successfully = fired, otherwise false =20 try { if (document.createEventObject) { var e =3D document.createEventObject(); $common.applyProperties(e, properties || {}); element.fireEvent("on" + eventName, e); return true; } else if (document.createEvent) { var def =3D $common.__DOMEvents[eventName]; if (def) { var e =3D document.createEvent(def.eventGroup); def.init(e, properties || {}); element.dispatchEvent(e); return true; } } } catch (e) { } return false; }, wrapElement : function(innerElement, newOuterElement, = newInnerParentElement) { /// /// Wraps an inner element with a new outer element at the same = DOM location as the inner element /// /// The = element to be wrapped /// The new parent for the element /// =20 var parent =3D innerElement.parentNode; parent.replaceChild(newOuterElement, innerElement); =20 (newInnerParentElement || = newOuterElement).appendChild(innerElement); }, unwrapElement : function(innerElement, oldOuterElement) { /// /// Unwraps an inner element from an outer element at the same = DOM location as the outer element /// /// The = element to be wrapped /// The new parent for the element /// var parent =3D oldOuterElement.parentNode; if (parent !=3D null) { $common.removeElement(innerElement); parent.replaceChild(innerElement, oldOuterElement); } }, =20 removeElement : function(element) { /// /// Removes an element from the DOM tree /// /// The = element to be removed /// var parent =3D element.parentNode; if (parent !=3D null) { parent.removeChild(element); } }, =20 applyProperties : function(target, properties) { /// /// Quick utility method to copy properties from a template = object to a target object /// /// The object to apply = to /// The template to = copy values from =20 for (var p in properties) { var pv =3D properties[p]; if (pv !=3D null && Object.getType(pv)=3D=3D=3DObject) { var tv =3D target[p]; = AjaxControlToolkit.CommonToolkitScripts.applyProperties(tv, pv); } else { target[p] =3D pv; } } }, =20 createElementFromTemplate : function(template, appendToParent, = nameTable) { /// /// Creates an element for the current document based on a = template object /// /// The template from = which to create the element /// A DomElement under which to append = this element /// An object to use as the storage for the element using = template.name as the key /// /// /// This method is useful if you find yourself using the same or = similar DomElement constructions throughout a class. You can even set = the templates /// as static properties for a type to cut down on overhead. = This method is often called with a JSON style template: /// /// var elt =3D $common.createElementFromTemplate({ /// nodeName : "div", /// properties : { /// style : { /// height : "100px", /// width : "100px", /// backgroundColor : "white" /// }, /// expandoAttribute : "foo" /// }, /// events : { /// click : function() { alert("foo"); }, /// mouseover : function() { elt.backgroundColor =3D = "silver"; }, /// mouseout : function() { elt.backgroundColor =3D = "white"; } /// }, /// cssClasses : [ "class0", "class1" ], /// visible : true, /// opacity : .5 /// }, someParent); /// /// =20 // if we wish to override the name table we do so here if (typeof(template.nameTable)!=3D'undefined') { var newNameTable =3D template.nameTable; if (String.isInstanceOfType(newNameTable)) { newNameTable =3D nameTable[newNameTable]; } if (newNameTable !=3D null) { nameTable =3D newNameTable; } } =20 // get a name for the element in the nameTable var elementName =3D null; if (typeof(template.name)!=3D=3D'undefined') { elementName =3D template.name; } =20 // create or acquire the element var elt =3D document.createElement(template.nodeName); =20 // if our element is named, add it to the name table if (typeof(template.name)!=3D=3D'undefined' && nameTable) { nameTable[template.name] =3D elt; } =20 // if we wish to supply a default parent we do so here if (typeof(template.parent)!=3D=3D'undefined' && appendToParent = =3D=3D null) { var newParent =3D template.parent; if (String.isInstanceOfType(newParent)) { newParent =3D nameTable[newParent]; } if (newParent !=3D null) { appendToParent =3D newParent; } } =20 // properties are applied as expando values to the element if (typeof(template.properties)!=3D=3D'undefined' && = template.properties !=3D null) { $common.applyProperties(elt, template.properties); } =20 // css classes are added to the element's className property if (typeof(template.cssClasses)!=3D=3D'undefined' && = template.cssClasses !=3D null) { $common.addCssClasses(elt, template.cssClasses); } =20 // events are added to the dom element using $addHandlers if (typeof(template.events)!=3D=3D'undefined' && template.events = !=3D null) { $addHandlers(elt, template.events); } =20 // if the element is visible or not its visibility is set if (typeof(template.visible)!=3D=3D'undefined' && = template.visible !=3D null) { Sys.UI.DomElement.setVisible(elt, template.visible); } =20 // if we have an appendToParent we will now append to it if (appendToParent) { appendToParent.appendChild(elt); } // if we have opacity, apply it if (typeof(template.opacity)!=3D=3D'undefined' && = template.opacity !=3D null) { $common.setElementOpacity(elt, template.opacity); } =20 // if we have child templates, process them if (typeof(template.children)!=3D=3D'undefined' && = template.children !=3D null) { for (var i =3D 0; i < template.children.length; i++) { var subtemplate =3D template.children[i]; $common.createElementFromTemplate(subtemplate, elt, = nameTable); } } =20 // if we have a content presenter for the element get it (the = element itself is the default presenter for content) var contentPresenter =3D elt; if (typeof(template.contentPresenter)!=3D=3D'undefined' && = template.contentPresenter !=3D null) { contentPresenter =3D nameTable[contentPresenter]; } =20 // if we have content, add it if (typeof(template.content)!=3D=3D'undefined' && = template.content !=3D null) { var content =3D template.content; if (String.isInstanceOfType(content)) { content =3D nameTable[content]; } if (content.parentNode) { $common.wrapElement(content, elt, contentPresenter); } else { contentPresenter.appendChild(content); } } =20 // return the created element return elt; } } // Create the singleton instance of the CommonToolkitScripts var CommonToolkitScripts =3D AjaxControlToolkit.CommonToolkitScripts =3D = new AjaxControlToolkit._CommonToolkitScripts(); var $common =3D CommonToolkitScripts; AjaxControlToolkit._DomUtility =3D function() { /// /// Utility functions for manipulating the DOM /// } AjaxControlToolkit._DomUtility.prototype =3D { isDescendant : function(ancestor, descendant) { /// /// Whether the specified element is a descendant of the = ancestor /// /// Ancestor = node /// Possible descendant node /// =20 for (var n =3D descendant.parentNode; n !=3D null; n =3D = n.parentNode) { if (n =3D=3D ancestor) return true; } return false; }, isDescendantOrSelf : function(ancestor, descendant) { /// /// Whether the specified element is a descendant of the = ancestor or the same as the ancestor /// /// Ancestor = node /// Possible descendant node /// if (ancestor =3D=3D=3D descendant)=20 return true; return AjaxControlToolkit.DomUtility.isDescendant(ancestor, = descendant); }, isAncestor : function(descendant, ancestor) { /// /// Whether the specified element is an ancestor of the = descendant /// /// Descendant node /// Possible = ancestor node /// return AjaxControlToolkit.DomUtility.isDescendant(ancestor, = descendant); }, isAncestorOrSelf : function(descendant, ancestor) { /// /// Whether the specified element is an ancestor of the = descendant or the same as the descendant /// /// Descendant node /// Possible = ancestor node /// =20 if (descendant =3D=3D=3D ancestor) return true; =20 return AjaxControlToolkit.DomUtility.isDescendant(ancestor, = descendant); }, isSibling : function(self, sibling) { /// /// Whether the specified element is a sibling of the self = element /// /// Self = node /// Possible = sibling node /// =20 var parent =3D self.parentNode; for (var i =3D 0; i < parent.childNodes.length; i++) { if (parent.childNodes[i] =3D=3D sibling) return true; } return false; } } AjaxControlToolkit._DomUtility.registerClass("AjaxControlToolkit._DomUtil= ity"); AjaxControlToolkit.DomUtility =3D new AjaxControlToolkit._DomUtility(); // Temporary fix null reference bug in = Sys.CultureInfo._getAbbrMonthIndex if (Sys.CultureInfo.prototype._getAbbrMonthIndex) { try { Sys.CultureInfo.prototype._getAbbrMonthIndex(''); } catch(ex) { Sys.CultureInfo.prototype._getAbbrMonthIndex =3D function(value) = { if (!this._upperAbbrMonths) { this._upperAbbrMonths =3D = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames); } return Array.indexOf(this._upperAbbrMonths, = this._toUpper(value)); } Sys.CultureInfo.CurrentCulture._getAbbrMonthIndex =3D = Sys.CultureInfo.prototype._getAbbrMonthIndex; Sys.CultureInfo.InvariantCulture._getAbbrMonthIndex =3D = Sys.CultureInfo.prototype._getAbbrMonthIndex; } } if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXBjYDNOixkJbwOgsqb0_Ne1Et3XlQxEHQG_i-p6W1jJZw2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace("AjaxControlToolkit"); AjaxControlToolkit.TimeSpan =3D function() { /// /// Represents a period of time /// =20 if (arguments.length =3D=3D 0) this._ctor$0.apply(this, arguments); else if (arguments.length =3D=3D 1) this._ctor$1.apply(this, = arguments); else if (arguments.length =3D=3D 3) this._ctor$2.apply(this, = arguments); else if (arguments.length =3D=3D 4) this._ctor$3.apply(this, = arguments); else if (arguments.length =3D=3D 5) this._ctor$4.apply(this, = arguments); else throw Error.parameterCount(); } AjaxControlToolkit.TimeSpan.prototype =3D { _ctor$0 : function() { /// /// Initializes a new TimeSpan /// =20 this._ticks =3D 0; },=20 _ctor$1 : function(ticks) { /// /// Initializes a new TimeSpan /// /// The = number of ticks in the TimeSpan this._ctor$0(); this._ticks =3D ticks; }, _ctor$2 : function(hours, minutes, seconds) { /// /// Initializes a new TimeSpan /// /// The number of hours in = the TimeSpan /// The number of = minutes in the TimeSpan /// The number of = seconds in the TimeSpan =20 this._ctor$0(); this._ticks =3D=20 (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond);=20 }, _ctor$3 : function(days, hours, minutes, seconds) { /// /// Initializes a new TimeSpan /// /// The number of days in = the TimeSpan /// The number of hours in = the TimeSpan /// The number of = minutes in the TimeSpan /// The number of = seconds in the TimeSpan this._ctor$0(); this._ticks =3D=20 (days * AjaxControlToolkit.TimeSpan.TicksPerDay) + (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond);=20 }, _ctor$4 : function(days, hours, minutes, seconds, milliseconds) { /// /// Initializes a new TimeSpan /// /// The number of days in = the TimeSpan /// The number of hours in = the TimeSpan /// The number of = minutes in the TimeSpan /// The number of = seconds in the TimeSpan /// The number of = milliseconds in the TimeSpan this._ctor$0(); this._ticks =3D=20 (days * AjaxControlToolkit.TimeSpan.TicksPerDay) + (hours * AjaxControlToolkit.TimeSpan.TicksPerHour) + (minutes * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (seconds * AjaxControlToolkit.TimeSpan.TicksPerSecond) + (milliseconds * = AjaxControlToolkit.TimeSpan.TicksPerMillisecond);=20 }, getDays : function() {=20 /// /// Gets the days part of the TimeSpan /// /// =20 return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerDay);=20 }, getHours : function() {=20 /// /// Gets the hours part of the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerHour) % 24;=20 }, getMinutes : function() {=20 /// /// Gets the minutes part of the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60;=20 }, getSeconds : function() {=20 /// /// Gets the seconds part of the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60;=20 }, getMilliseconds : function() {=20 /// /// Gets the milliseconds part of the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerMillisecond) % 1000;=20 }, getDuration : function() {=20 /// /// Gets the total duration of a TimeSpan /// /// return new AjaxControlToolkit.TimeSpan(Math.abs(this._ticks));=20 }, getTicks : function() {=20 /// /// Gets the ticks in the TimeSpan /// /// =20 return this._ticks;=20 }, getTotalDays : function() {=20 /// /// Gets the total number of days in the TimeSpan /// /// Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerDay);=20 }, getTotalHours : function() {=20 /// /// Gets the total hours in the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerHour);=20 }, getTotalMinutes : function() {=20 /// /// Gets the total minutes in the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerMinute);=20 }, getTotalSeconds : function() {=20 /// /// Gets the total seconds in the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerSecond);=20 }, getTotalMilliseconds : function() {=20 /// /// Gets the total milliseconds in the TimeSpan /// /// return Math.floor(this._ticks / = AjaxControlToolkit.TimeSpan.TicksPerMillisecond);=20 }, add : function(value) {=20 /// /// Adds the supplied TimeSpan to this TimeSpan /// /// The TimeSpan to add /// return new AjaxControlToolkit.TimeSpan(this._ticks + = value.getTicks());=20 }, subtract : function(value) {=20 /// /// Subtracts the supplied TimeSpan to this TimeSpan /// /// The TimeSpan to subtract /// return new AjaxControlToolkit.TimeSpan(this._ticks - = value.getTicks());=20 }, negate : function() {=20 /// /// Negates the TimeSpan /// /// return new AjaxControlToolkit.TimeSpan(-this._ticks);=20 }, equals : function(value) {=20 /// /// Whether this TimeSpan equals another TimeSpan /// /// The TimeSpan to test /// return this._ticks =3D=3D value.getTicks();=20 }, compareTo : function(value) {=20 /// /// Whether this TimeSpan greater or less than another TimeSpan /// /// The TimeSpan to test /// if(this._ticks > value.getTicks())=20 return 1;=20 else if(this._ticks < value.getTicks())=20 return -1;=20 else=20 return 0;=20 }, toString : function() {=20 /// /// Gets the string representation of the TimeSpan /// /// return this.format("F");=20 }, format : function(format) { =20 /// /// Gets the string representation of the TimeSpan /// /// The format specifier used to format the = TimeSpan /// if (!format) { format =3D "F"; } if (format.length =3D=3D 1) { switch (format) { case "t": format =3D = AjaxControlToolkit.TimeSpan.ShortTimeSpanPattern; break; case "T": format =3D = AjaxControlToolkit.TimeSpan.LongTimeSpanPattern; break; case "F": format =3D = AjaxControlToolkit.TimeSpan.FullTimeSpanPattern; break; default: throw = Error.createError(String.format(AjaxControlToolkit.Resources.Common_DateT= ime_InvalidTimeSpan, format)); } } var regex =3D /dd|d|hh|h|mm|m|ss|s|nnnn|nnn|nn|n/g; var builder =3D new Sys.StringBuilder(); var ticks =3D this._ticks; if (ticks < 0) { builder.append("-"); =20 ticks =3D -ticks; } for (;;) { var index =3D regex.lastIndex; var ar =3D regex.exec(format); builder.append(format.slice(index, ar ? ar.index : = format.length)); if (!ar) break; switch (ar[0]) { case "dd": case "d": = builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor= (ticks / AjaxControlToolkit.TimeSpan.TicksPerDay, ar[0].length, '0'))); break; case "hh": case "h": = builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor= (ticks / AjaxControlToolkit.TimeSpan.TicksPerHour) % 24, ar[0].length, = '0')); break; case "mm": case "m": = builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor= (ticks / AjaxControlToolkit.TimeSpan.TicksPerMinute) % 60, ar[0].length, = '0')); break; case "ss": case "s": = builder.append(AjaxControlToolkit.CommonToolkitScripts.padLeft(Math.floor= (ticks / AjaxControlToolkit.TimeSpan.TicksPerSecond) % 60, ar[0].length, = '0')); break; case "nnnn": case "nnn": case "nn": case "n": = builder.append(AjaxControlToolkit.CommonToolkitScripts.padRight(Math.floo= r(ticks / AjaxControlToolkit.TimeSpan.TicksPerMillisecond) % 1000, = ar[0].length, '0', true)); break; default: Sys.Debug.assert(false); } } return builder.toString(); } } AjaxControlToolkit.TimeSpan.parse =3D function(text) { /// /// Parses a text value into a TimeSpan /// /// The text to parse /// var parts =3D text.split(":"); var d =3D 0; var h =3D 0; var m =3D 0; var s =3D 0; var n =3D 0; var ticks =3D 0; =20 switch(parts.length) { case 1: if (parts[0].indexOf(".") !=3D -1) { var parts2 =3D parts[0].split("."); s =3D parseInt(parts2[0]); n =3D parseInt(parts2[1]); } else { ticks =3D parseInt(parts[0]); } break; case 2: h =3D parseInt(parts[0]); m =3D parseInt(parts[1]); break; case 3: h =3D parseInt(parts[0]); m =3D parseInt(parts[1]); if (parts[2].indexOf(".") !=3D -1) { var parts2 =3D parts[2].split("."); s =3D parseInt(parts2[0]); n =3D parseInt(parts2[1]); } else { s =3D parseInt(parts[2]); } break; case 4: d =3D parseInt(parts[0]); h =3D parseInt(parts[1]); m =3D parseInt(parts[2]); if (parts[3].indexOf(".") !=3D -1) { var parts2 =3D parts[3].split("."); s =3D parseInt(parts2[0]); n =3D parseInt(parts2[1]); } else { s =3D parseInt(parts[3]); } break; } ticks +=3D (d * AjaxControlToolkit.TimeSpan.TicksPerDay) + (h * AjaxControlToolkit.TimeSpan.TicksPerHour) + (m * AjaxControlToolkit.TimeSpan.TicksPerMinute) + (s * AjaxControlToolkit.TimeSpan.TicksPerSecond) + (n * AjaxControlToolkit.TimeSpan.TicksPerMillisecond); if(!isNaN(ticks)) { return new AjaxControlToolkit.TimeSpan(ticks); } =20 throw = Error.create(AjaxControlToolkit.Resources.Common_DateTime_InvalidFormat);= } AjaxControlToolkit.TimeSpan.fromTicks =3D function(ticks) {=20 /// /// Creates a TimeSpan for the specified number of ticks /// /// The ticks = for the TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(ticks);=20 } AjaxControlToolkit.TimeSpan.fromDays =3D function(days) {=20 /// /// Creates a TimeSpan for the specified number of days /// /// The days for the TimeSpan = instance /// return new AjaxControlToolkit.TimeSpan(days * = AjaxControlToolkit.TimeSpan.TicksPerDay);=20 } AjaxControlToolkit.TimeSpan.fromHours =3D function(hours) {=20 /// /// Creates a TimeSpan for the specified number of hours /// /// The hours for the TimeSpan = instance /// return new AjaxControlToolkit.TimeSpan(hours * = AjaxControlToolkit.TimeSpan.TicksPerHour);=20 } AjaxControlToolkit.TimeSpan.fromMinutes =3D function(minutes) {=20 /// /// Creates a TimeSpan for the specified number of minutes /// /// The minutes for the = TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(minutes * = AjaxControlToolkit.TimeSpan.TicksPerMinute);=20 } AjaxControlToolkit.TimeSpan.fromSeconds =3D function(seconds) {=20 /// /// Creates a TimeSpan for the specified number of seconds /// /// The seconds for the = TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(minutes * = AjaxControlToolkit.TimeSpan.TicksPerSecond);=20 } AjaxControlToolkit.TimeSpan.fromMilliseconds =3D function(milliseconds) = {=20 /// /// Creates a TimeSpan for the specified number of milliseconds /// /// The milliseconds for the = TimeSpan instance /// return new AjaxControlToolkit.TimeSpan(minutes * = AjaxControlToolkit.TimeSpan.TicksPerMillisecond);=20 } AjaxControlToolkit.TimeSpan.TicksPerDay =3D 864000000000; AjaxControlToolkit.TimeSpan.TicksPerHour =3D 36000000000; AjaxControlToolkit.TimeSpan.TicksPerMinute =3D 600000000; AjaxControlToolkit.TimeSpan.TicksPerSecond =3D 10000000; AjaxControlToolkit.TimeSpan.TicksPerMillisecond =3D 10000; AjaxControlToolkit.TimeSpan.FullTimeSpanPattern =3D "dd:hh:mm:ss.nnnn"; AjaxControlToolkit.TimeSpan.ShortTimeSpanPattern =3D "hh:mm"; AjaxControlToolkit.TimeSpan.LongTimeSpanPattern =3D "hh:mm:ss"; Date.prototype.getTimeOfDay =3D function Date$getTimeOfDay() { /// /// Gets a TimeSpan representing the current time of the Date /// /// return new AjaxControlToolkit.TimeSpan( 0,=20 this.getHours(),=20 this.getMinutes(),=20 this.getSeconds(),=20 this.getMilliseconds()); } Date.prototype.getDateOnly =3D function Date$getDateOnly() { /// /// Gets a Date representing the Date only part of the Date /// /// return new Date(this.getFullYear(), this.getMonth(), = this.getDate()); } Date.prototype.add =3D function Date$add(span) { /// /// Adds a TimeSpan to the current Date /// /// The = amount of time to add to the date /// return new Date(this.getTime() + span.getTotalMilliseconds()); } Date.prototype.subtract =3D function Date$subtract(span) { /// /// Subtracts a TimeSpan to the current Date /// /// The = amount of time to subtract from the date /// return this.add(span.negate()); } Date.prototype.getTicks =3D function Date$getTicks() { /// /// Gets the number of ticks in the date /// /// return this.getTime() * = AjaxControlToolkit.TimeSpan.TicksPerMillisecond; } AjaxControlToolkit.FirstDayOfWeek =3D function() { /// /// Represents the first day of the week in a calendar /// } AjaxControlToolkit.FirstDayOfWeek.prototype =3D { Sunday : 0, Monday : 1, Tuesday : 2, Wednesday : 3, Thursday : 4, Friday : 5, Saturday : 6, Default : 7 } AjaxControlToolkit.FirstDayOfWeek.registerEnum("AjaxControlToolkit.FirstD= ayOfWeek"); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXCIJnjdsp-mOMjhrr9vu3l70HHdlZqSByw0VNdGrd576Q2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. // Repository of old "Atlas" code that we're waiting to have integrated = into the new Microsoft Ajax Library /////////////////////////// /// Sys.UI.DomElement // DELTA - not present in codebase but called from PopupBehavior Sys.UI.DomElement.setVisible =3D function(e, value) { if (!e) return; if (value !=3D Sys.UI.DomElement.getVisible(e)) { =20 if (value) { if (e.style.removeAttribute) { e.style.removeAttribute("display"); } else { e.style.removeProperty("display"); } } else { e.style.display =3D 'none'; } =20 e.style.visibility =3D value ? 'visible' : 'hidden'; } } Sys.UI.DomElement.getVisible =3D function(e) { if (!e) return false; return (("none" !=3D = AjaxControlToolkit.CommonToolkitScripts.getCurrentStyle(e, "display")) = && ("hidden" !=3D = AjaxControlToolkit.CommonToolkitScripts.getCurrentStyle(e, = "visibility"))); } ////////////////////////////////////// // Sys.UI.Control.overlaps // Sys.UI.Control.overlaps =3D function overlaps(r1, r2) { var xLeft =3D (r1.x >=3D r2.x && r1.x <=3D (r2.x + r2.width)); var xRight =3D ((r1.x + r1.width) >=3D r2.x && (r1.x + r1.width) = <=3D r2.x + r2.width); var xComplete =3D ((r1.x < r2.x) && ((r1.x + r1.width) > (r2.x + = r2.width))); =20 var yLeft =3D (r1.y >=3D r2.y && r1.y <=3D (r2.y + r2.height)); var yRight =3D ((r1.y + r1.height) >=3D r2.y && (r1.y + r1.height) = <=3D r2.y + r2.height); var yComplete =3D ((r1.y < r2.y) && ((r1.y + r1.height) > (r2.y + = r2.height))); if ((xLeft || xRight || xComplete) && (yLeft || yRight || = yComplete)) { return true; } =20 return false; } if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXDr1axzMgMtirkCM2KOgryPlbxZ3tge9a9Nh7XEHXiv1c6gHKsi4GDmlEQ3gMyCmfY1&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace('AjaxControlToolkit'); // This is the base behavior for all extender behaviors AjaxControlToolkit.BehaviorBase =3D function(element) { /// /// Base behavior for all extender behaviors /// /// /// Element the behavior is associated with /// AjaxControlToolkit.BehaviorBase.initializeBase(this,[element]); =20 this._clientStateFieldID =3D null; this._pageRequestManager =3D null; this._partialUpdateBeginRequestHandler =3D null; this._partialUpdateEndRequestHandler =3D null; } AjaxControlToolkit.BehaviorBase.prototype =3D { initialize : function() { /// /// Initialize the behavior /// // TODO: Evaluate necessity AjaxControlToolkit.BehaviorBase.callBaseMethod(this, = 'initialize'); }, dispose : function() { /// /// Dispose the behavior /// AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'dispose'); if (this._pageRequestManager) { if (this._partialUpdateBeginRequestHandler) { = this._pageRequestManager.remove_beginRequest(this._partialUpdateBeginRequ= estHandler); this._partialUpdateBeginRequestHandler =3D null; } if (this._partialUpdateEndRequestHandler) { = this._pageRequestManager.remove_endRequest(this._partialUpdateEndRequestH= andler); this._partialUpdateEndRequestHandler =3D null; } this._pageRequestManager =3D null; } }, get_ClientStateFieldID : function() { /// /// ID of the hidden field used to store client state /// return this._clientStateFieldID; }, set_ClientStateFieldID : function(value) { if (this._clientStateFieldID !=3D value) { this._clientStateFieldID =3D value; this.raisePropertyChanged('ClientStateFieldID'); } }, get_ClientState : function() { /// /// Client state /// if (this._clientStateFieldID) { var input =3D = document.getElementById(this._clientStateFieldID); if (input) { return input.value; } } return null; }, set_ClientState : function(value) { if (this._clientStateFieldID) { var input =3D = document.getElementById(this._clientStateFieldID); if (input) { input.value =3D value; } } }, registerPartialUpdateEvents : function() { /// /// Register for beginRequest and endRequest events on the = PageRequestManager, /// (which cause _partialUpdateBeginRequest and = _partialUpdateEndRequest to be /// called when an UpdatePanel refreshes) /// if (Sys && Sys.WebForms && Sys.WebForms.PageRequestManager){ this._pageRequestManager =3D = Sys.WebForms.PageRequestManager.getInstance(); if (this._pageRequestManager) { this._partialUpdateBeginRequestHandler =3D = Function.createDelegate(this, this._partialUpdateBeginRequest); = this._pageRequestManager.add_beginRequest(this._partialUpdateBeginRequest= Handler); this._partialUpdateEndRequestHandler =3D = Function.createDelegate(this, this._partialUpdateEndRequest); = this._pageRequestManager.add_endRequest(this._partialUpdateEndRequestHand= ler); } } }, _partialUpdateBeginRequest : function(sender, beginRequestEventArgs) = { /// /// Method that will be called when a partial update (via an = UpdatePanel) begins, /// if registerPartialUpdateEvents() has been called. /// /// /// Sender /// /// /// Event arguments /// // Nothing done here; override this method in a child class }, =20 _partialUpdateEndRequest : function(sender, endRequestEventArgs) { /// /// Method that will be called when a partial update (via an = UpdatePanel) finishes, /// if registerPartialUpdateEvents() has been called. /// /// /// Sender /// /// /// Event arguments /// // Nothing done here; override this method in a child class } } AjaxControlToolkit.BehaviorBase.registerClass('AjaxControlToolkit.Behavio= rBase', Sys.UI.Behavior); // getDescriptor : function() { // var td =3D = AjaxControlToolkit.BehaviorBase.callBaseMethod(this, 'getDescriptor'); // td.addProperty('ClientStateFieldID', String); // return td; // }, // Dynamically populates content when the populate method is called AjaxControlToolkit.DynamicPopulateBehaviorBase =3D function(element) { /// /// DynamicPopulateBehaviorBase is used to add = DynamicPopulateBehavior funcitonality /// to other extenders. It will dynamically populate the contents = of the target element /// when its populate method is called. /// /// /// DOM Element the behavior is associated with /// AjaxControlToolkit.DynamicPopulateBehaviorBase.initializeBase(this, = [element]); =20 this._DynamicControlID =3D null; this._DynamicContextKey =3D null; this._DynamicServicePath =3D null; this._DynamicServiceMethod =3D null; this._dynamicPopulateBehavior =3D null; this._populatingHandler =3D null; this._populatedHandler =3D null; } AjaxControlToolkit.DynamicPopulateBehaviorBase.prototype =3D { initialize : function() { /// /// Initialize the behavior /// = AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, = 'initialize'); // Create event handlers this._populatingHandler =3D Function.createDelegate(this, = this._onPopulating); this._populatedHandler =3D Function.createDelegate(this, = this._onPopulated); }, dispose : function() { /// /// Dispose the behavior /// // Dispose of event handlers if (this._populatedHandler) { if (this._dynamicPopulateBehavior) { = this._dynamicPopulateBehavior.remove_populated(this._populatedHandler); } this._populatedHandler =3D null; } if (this._populatingHandler) { if (this._dynamicPopulateBehavior) { = this._dynamicPopulateBehavior.remove_populating(this._populatingHandler);= } this._populatingHandler =3D null; } // Dispose of the placeholder control and behavior if (this._dynamicPopulateBehavior) { this._dynamicPopulateBehavior.dispose(); this._dynamicPopulateBehavior =3D null; } = AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, = 'dispose'); }, populate : function(contextKeyOverride) { /// /// Demand-create the DynamicPopulateBehavior and use it to = populate the target element /// /// /// An arbitrary string value to be passed to the web method. = For example, if the element to be populated is within a data-bound = repeater, this could be the ID of the current row. /// // If the DynamicPopulateBehavior's element is out of date, = dispose of it if (this._dynamicPopulateBehavior && = (this._dynamicPopulateBehavior.get_element() !=3D = $get(this._DynamicControlID))) { this._dynamicPopulateBehavior.dispose(); this._dynamicPopulateBehavior =3D null; } // If a DynamicPopulateBehavior is not available and the = necessary information is, create one if (!this._dynamicPopulateBehavior && this._DynamicControlID && = this._DynamicServiceMethod) { this._dynamicPopulateBehavior =3D = $create(AjaxControlToolkit.DynamicPopulateBehavior, = {"id":this.get_id()+"_DynamicPopulateBehavior", = "ContextKey":this._DynamicContextKey, = "ServicePath":this._DynamicServicePath, = "ServiceMethod":this._DynamicServiceMethod }, null, null, = $get(this._DynamicControlID)); // Attach event handlers = this._dynamicPopulateBehavior.add_populating(this._populatingHandler); = this._dynamicPopulateBehavior.add_populated(this._populatedHandler); } // If a DynamicPopulateBehavior is available, use it to populate = the dynamic content if(this._dynamicPopulateBehavior) { this._dynamicPopulateBehavior.populate(contextKeyOverride ? = contextKeyOverride : this._DynamicContextKey); } }, _onPopulating : function(sender, eventArgs) { // Event handler called automatically when dynamic populating = begins }, _onPopulated : function(sender, eventArgs) { // Event handler called automatically when dynamic populating = ends }, get_DynamicControlID : function() { /// /// ID of the element to populate with dynamic content /// return this._DynamicControlID; }, set_DynamicControlID : function(value) { if (this._DynamicControlID !=3D value) { this._DynamicControlID =3D value; this.raisePropertyChanged('DynamicControlID'); } }, get_DynamicContextKey : function() { /// /// An arbitrary string value to be passed to the web method. /// For example, if the element to be populated is within a /// data-bound repeater, this could be the ID of the current = row. /// return this._DynamicContextKey; }, set_DynamicContextKey : function(value) { if (this._DynamicContextKey !=3D value) { this._DynamicContextKey =3D value; this.raisePropertyChanged('DynamicContextKey'); } }, get_DynamicServicePath : function() { /// /// The URL of the web service to call. If the ServicePath is = not defined, then we will invoke a PageMethod instead of a web service. /// return this._DynamicServicePath; }, set_DynamicServicePath : function(value) { if (this._DynamicServicePath !=3D value) { this._DynamicServicePath =3D value; this.raisePropertyChanged('DynamicServicePath'); } }, get_DynamicServiceMethod : function() { /// /// The name of the method to call on the page or web service /// /// /// The signature of the method must exactly match the = following: /// [WebMethod] /// string DynamicPopulateMethod(string contextKey) /// { /// ... /// } /// return this._DynamicServiceMethod; }, set_DynamicServiceMethod : function(value) { if (this._DynamicServiceMethod !=3D value) { this._DynamicServiceMethod =3D value; this.raisePropertyChanged('DynamicServiceMethod'); } } } AjaxControlToolkit.DynamicPopulateBehaviorBase.registerClass('AjaxControl= Toolkit.DynamicPopulateBehaviorBase', AjaxControlToolkit.BehaviorBase); // getDescriptor : function() { // var td =3D = AjaxControlToolkit.DynamicPopulateBehaviorBase.callBaseMethod(this, = 'getDescriptor'); // td.addProperty('DynamicControlID', String); // td.addProperty('DynamicContextKey', String); // td.addProperty('DynamicServicePath', String); // td.addProperty('DynamicServiceMethod', String); // return td; // }, AjaxControlToolkit.ControlBase =3D function(element) { AjaxControlToolkit.ControlBase.initializeBase(this, [element]); this._clientStateField =3D null; this._callbackTarget =3D null; this._onsubmit$delegate =3D Function.createDelegate(this, = this._onsubmit); this._oncomplete$delegate =3D Function.createDelegate(this, = this._oncomplete); this._onerror$delegate =3D Function.createDelegate(this, = this._onerror); } AjaxControlToolkit.ControlBase.prototype =3D { initialize : function() { AjaxControlToolkit.ControlBase.callBaseMethod(this, = "initialize"); // load the client state if possible if (this._clientStateField) { this.loadClientState(this._clientStateField.value); } // attach an event to save the client state before a postback or = updatepanel partial postback if (typeof(Sys.WebForms)!=3D=3D"undefined" && = typeof(Sys.WebForms.PageRequestManager)!=3D=3D"undefined") { = Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStatemen= ts, this._onsubmit$delegate); } else { $addHandler(document.forms[0], "submit", = this._onsubmit$delegate); } }, dispose : function() { if (typeof(Sys.WebForms)!=3D=3D"undefined" && = typeof(Sys.WebForms.PageRequestManager)!=3D=3D"undefined") { = Array.remove(Sys.WebForms.PageRequestManager.getInstance()._onSubmitState= ments, this._onsubmit$delegate); } else { $removeHandler(document.forms[0], "submit", = this._onsubmit$delegate); } AjaxControlToolkit.ControlBase.callBaseMethod(this, "dispose"); }, findElement : function(id) { // Finds an element within this control = (ScriptControl/ScriptUserControl are NamingContainers); return $get(this.get_id() + '_' + id.split(':').join('_')); }, get_clientStateField : function() { return this._clientStateField; }, set_clientStateField : function(value) { if (this.get_isInitialized()) throw = Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_CannotSe= tClientStateField); this._clientStateField =3D value; }, loadClientState : function(value) { /// override this method to intercept client state = loading after a callback }, saveClientState : function() { /// override this method to intercept client state = acquisition before a callback return null; }, _invoke : function(name, args, cb) { /// invokes a callback method on the server = control =20 if (!this._callbackTarget) { throw = Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_ControlN= otRegisteredForCallbacks); } if (typeof(WebForm_DoCallback)=3D=3D=3D"undefined") { throw = Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_PageNotR= egisteredForCallbacks); } var ar =3D []; for (var i =3D 0; i < args.length; i++)=20 ar[i] =3D args[i]; var clientState =3D this.saveClientState(); if (clientState !=3D null && = !String.isInstanceOfType(clientState)) { throw = Error.invalidOperation(AjaxControlToolkit.Resources.ExtenderBase_InvalidC= lientStateType); } var payload =3D = Sys.Serialization.JavaScriptSerializer.serialize({name:name,args:ar,state= :this.saveClientState()}); WebForm_DoCallback(this._callbackTarget, payload, = this._oncomplete$delegate, cb, this._onerror$delegate, true); }, _oncomplete : function(result, context) { result =3D = Sys.Serialization.JavaScriptSerializer.deserialize(result); if (result.error) { throw Error.create(result.error); } this.loadClientState(result.state); context(result.result); }, _onerror : function(message, context) { throw Error.create(message); }, _onsubmit : function() { if (this._clientStateField) { this._clientStateField.value =3D this.saveClientState(); } return true; } =20 =20 } AjaxControlToolkit.ControlBase.registerClass("AjaxControlToolkit.ControlB= ase", Sys.UI.Control); Type.registerNamespace('AjaxControlToolkit'); AjaxControlToolkit.Resources=3D{ "TextCount_DefaultKeyboardModeFormat":"Keyboard Mode: {3}", "PasswordStrength_InvalidWeightingRatios":"Strength Weighting ratios = must have 4 elements", "Animation_ChildrenNotAllowed":"AjaxControlToolkit.Animation.createAnimat= ion cannot add child animations to type \"{0}\" that does not derive = from AjaxControlToolkit.Animation.ParentAnimation", "PasswordStrength_RemainingSymbols":"{0} symbol characters", "ExtenderBase_CannotSetClientStateField":"clientStateField can only be = set before initialization", "Animation_TargetNotFound":"AjaxControlToolkit.Animation.Animation.set_an= imationTarget requires the ID of a Sys.UI.DomElement or Sys.UI.Control. = No element or control could be found corresponding to \"{0}\"", "TextCount_DefaultAlertFormat":"Maximum length is {2}", "Common_InvalidBorderWidthUnit":"A unit type of \"{0}\"\u0027 is invalid = for parseBorderWidth", "Tabs_PropertySetBeforeInitialization":"{0} cannot be changed before = initialization", "ReorderList_DropWatcherBehavior_NoChild":"Could not find child of list = with id \"{0}\"", "CascadingDropDown_MethodTimeout":"[Method timeout]", "ExtenderBase_PageNotRegisteredForCallbacks":"This Page has not been = registered for callbacks", "Animation_NoDynamicPropertyFound":"AjaxControlToolkit.Animation.createAn= imation found no property corresponding to \"{0}\" or \"{1}\"", "Animation_InvalidBaseType":"AjaxControlToolkit.Animation.registerAnimati= on can only register types that inherit from = AjaxControlToolkit.Animation.Animation", "ResizableControlBehavior_InvalidHandler":"{0} handler not a function, = function name, or function text", "Animation_InvalidColor":"Color must be a 7-character hex representation = (e.g. #246ACF), not \"{0}\"", "PasswordStrength_RemainingMixedCase":"Mixed case characters", "CascadingDropDown_NoParentElement":"Failed to find parent element = \"{0}\"", "ValidatorCallout_DefaultErrorMessage":"This control is invalid", "ReorderList_DropWatcherBehavior_CallbackError":"Reorder failed, see = details below.\\r\\n\\r\\n{0}", "PopupControl_NoDefaultProperty":"No default property supported for = control \"{0}\" of type \"{1}\"", "PopupExtender_NoParentElement":"Couldn\u0027t find parent element = \"{0}\"", "TextCount_DefaultOverwriteText":"Overwrite", "PasswordStrength_RemainingNumbers":"{0} more numbers", "ResizableControlBehavior_CannotChangeProperty":"Changes to {0} not = supported", "TextCount_DefaultDisplayFormat":"Count: {0} Remaining chars: {1} = Maximum length: {2}", "Common_InvalidPaddingUnit":"A unit type of \"{0}\" is invalid for = parsePadding", "ExtenderBase_ControlNotRegisteredForCallbacks":"This Control has not = been registered for callbacks", "Calendar_Today":"Today: {0}", "Common_DateTime_InvalidFormat":"Invalid format", "ListSearch_DefaultPrompt":"Type to search", "CollapsiblePanel_NoControlID":"Failed to find element \"{0}\"", "PasswordStrength_DefaultStrengthDescriptions":"NonExistent;Very = Weak;Weak;Poor;Almost OK;Barely = Acceptable;Average;Good;Strong;Excellent;Unbreakable!", "Animation_UknownAnimationName":"AjaxControlToolkit.Animation.createAnima= tion could not find an Animation corresponding to the name \"{0}\"", "ExtenderBase_InvalidClientStateType":"saveClientState must return a = value of type String", "Rating_CallbackError":"An unhandled exception has occurred:\\r\\n{0}", "Tabs_OwnerExpected":"owner must be set before initialize", "DynamicPopulate_WebServiceTimeout":"Web service call timed out", "Animation_MissingAnimationName":"AjaxControlToolkit.Animation.createAnim= ation requires an object with an AnimationName property", "Tabs_ActiveTabArgumentOutOfRange":"Argument is not a member of the tabs = collection", "AlwaysVisible_ElementRequired":"AjaxControlToolkit.AlwaysVisibleControlB= ehavior must have an element", "Slider_NoSizeProvided":"Please set valid values for the height and = width attributes in the slider\u0027s CSS classes", "DynamicPopulate_WebServiceError":"Web Service call failed: {0}", "PasswordStrength_StrengthPrompt":"Strength: ", "PasswordStrength_RemainingCharacters":"{0} more characters", "PasswordStrength_Satisfied":"Nothing more required", "Animation_NoPropertyFound":"AjaxControlToolkit.Animation.createAnimation= found no property corresponding to \"{0}\"", "TextCount_DefaultInsertText":"Insert", "PasswordStrength_GetHelpRequirements":"Get help on password = requirements", "PasswordStrength_InvalidStrengthDescriptions":"Invalid number of text = strength descriptions specified", "Tabs_PropertySetAfterInitialization":"{0} cannot be changed after = initialization", "CascadingDropDown_MethodError":"[Method error {0}]", "Common_UnitHasNoDigits":"No digits", "Common_DateTime_InvalidTimeSpan":"\"{0}\" is not a valid TimeSpan = format", "Animation_CannotNestSequence":"AjaxControlToolkit.Animation.SequenceAnim= ation cannot be nested inside = AjaxControlToolkit.Animation.ParallelAnimation", "Shared_BrowserSecurityPreventsPaste":"Your browser security settings = don\u0027t permit the automatic execution of paste operations. Please = use the keyboard shortcut Ctrl+V instead." }; if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXBrrpyw2Gj54wkRBEctc6ShxhjO1NRWu-WhmVv01NPNz4wdofxzdYBi2Y32lEgKXLc1&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace('AjaxControlToolkit'); AjaxControlToolkit.PositioningMode =3D function() { throw Error.invalidOperation(); } AjaxControlToolkit.PositioningMode.prototype =3D { Absolute: 0, Center: 1, BottomLeft: 2, BottomRight: 3, TopLeft: 4, TopRight: 5 } AjaxControlToolkit.PositioningMode.registerEnum('AjaxControlToolkit.Posit= ioningMode'); AjaxControlToolkit.PopupBehavior =3D function(element) { /// The DOM element the behavior is = associated with. AjaxControlToolkit.PopupBehavior.initializeBase(this, [element]); this._x =3D 0; this._y =3D 0; this._positioningMode =3D = AjaxControlToolkit.PositioningMode.Absolute; this._parentElement =3D null; this._parentElementID =3D null; this._moveHandler =3D null; this._firstPopup =3D true; =20 this._originalParent =3D null; } AjaxControlToolkit.PopupBehavior.prototype =3D { =20 get_parentElement : function() { /// Parent dom element. =20 if (!this._parentElement && this._parentElementID) { this.set_parentElement($get(this._parentElementID)); Sys.Debug.assert(this._parentElement !=3D null, = String.format(AjaxControlToolkit.Resources.PopupExtender_NoParentElement,= this._parentElementID)); } =20 return this._parentElement; }, =20 set_parentElement : function(element) { this._parentElement =3D element; this.raisePropertyChanged('parentElement'); }, =20 get_parentElementID : function() { /// Parent dom element. if (this._parentElement) return this._parentElement.id return this._parentElementID; }, set_parentElementID : function(elementID) { this._parentElementID =3D elementID; if (this.get_isInitialized()) { this.set_parentElement($get(elementID)); } }, =20 get_positioningMode : function() { /// Positioning mode. return this._positioningMode; }, set_positioningMode : function(mode) { this._positioningMode =3D mode; this.raisePropertyChanged('positioningMode'); }, =20 get_x : function() { /// X coordinate. return this._x; }, set_x : function(value) { if (value !=3D this._x) { this._x =3D value; if (Sys.UI.DomElement.getVisible(this.get_element())) { this.show(); } this.raisePropertyChanged('x'); } }, =20 get_y : function() { /// Y coordinate. return this._y; }, set_y : function(value) { if (value !=3D this._y) { this._y =3D value; if (Sys.UI.DomElement.getVisible(this.get_element())) { this.show(); } this.raisePropertyChanged('y'); } }, =20 hide : function() { var elt =3D this.get_element(); Sys.UI.DomElement.setVisible(elt, false); if (this._moveHandler) { Sys.UI.DomEvent.removeHandler(elt, "move", = this._moveHandler); this._moveHandler =3D null; } if (elt.originalWidth) { elt.style.width =3D elt.originalWidth + "px"; elt.originalWidth =3D null; } if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) { var childFrame =3D elt._hideWindowedElementsIFrame; if (childFrame) { childFrame.style.display =3D "none"; } } }, =20 =20 show : function() { var elt =3D this.get_element(); =20 Sys.UI.DomElement.setVisible(elt, true); =20 // offsetParent (doc element if absolutely positioned or no = offsetparent available) var offsetParent =3D elt.offsetParent || = document.documentElement; // diff =3D difference in position between element's = offsetParent and the element we will attach popup to. // this is basically so we can position the popup in the right = spot even though it may not be absolutely positioned var diff; var parentBounds; if(this._parentElement) { // we will be positioning the element against the assigned = parent parentBounds =3D = CommonToolkitScripts.getBounds(this._parentElement); =20 var offsetParentLocation =3D = CommonToolkitScripts.getLocation(offsetParent); diff =3D {x: parentBounds.x - offsetParentLocation.x, = y:parentBounds.y - offsetParentLocation.y}; =20 } else { // we will be positioning the element against the offset = parent by default, since no parent element given parentBounds =3D = CommonToolkitScripts.getBounds(offsetParent); =20 diff =3D {x:0, y:0}; } // width/height of the element, needed for calculations that = involve width like centering var width =3D elt.offsetWidth - (elt.clientLeft ? elt.clientLeft = * 2 : 0); var height =3D elt.offsetHeight - (elt.clientTop ? elt.clientTop = * 2 : 0); =20 var position; switch (this._positioningMode) { case AjaxControlToolkit.PositioningMode.Center: position =3D { x: Math.round(parentBounds.width / 2 - width / 2), y: Math.round(parentBounds.height / 2 - height / 2) }; break; case AjaxControlToolkit.PositioningMode.BottomLeft: position =3D { x: 0, y: parentBounds.height }; break; case AjaxControlToolkit.PositioningMode.BottomRight: position =3D { x: parentBounds.width - width, y: parentBounds.height }; break; case AjaxControlToolkit.PositioningMode.TopLeft: position =3D { x: 0, y: -elt.offsetHeight }; break; case AjaxControlToolkit.PositioningMode.TopRight: position =3D { x: parentBounds.width - width, y: -elt.offsetHeight }; break; default: position =3D {x: 0, y: 0}; } position.x +=3D this._x + diff.x; position.y +=3D this._y + diff.y; =20 CommonToolkitScripts.setLocation(elt, position); =20 if(this._firstPopup) { // 23098: Setting the width causes the element to grow by = border+passing every time. But not setting it // causes strange behavior in safari. Just set it once. elt.style.width =3D width + "px"; } this._firstPopup =3D false; var newPosition =3D CommonToolkitScripts.getBounds(elt); var updateNeeded =3D false; var documentWidth =3D self.innerWidth ? self.innerWidth : = document.documentElement.clientWidth; // CONSIDER: Create a generic function to return this = information. if (!documentWidth) { documentWidth =3D document.body.clientWidth; } if (newPosition.x + newPosition.width > documentWidth - 5) { position.x -=3D newPosition.x + newPosition.width - = documentWidth + 5; updateNeeded =3D true; } if (newPosition.x < 0) { position.x -=3D newPosition.x; updateNeeded =3D true; } if (newPosition.y < 0) { position.y -=3D newPosition.y; updateNeeded =3D true; } if (updateNeeded) { =20 CommonToolkitScripts.setLocation(elt, position); } elt.zIndex =3D 1000; if ((Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) = && (Sys.Browser.version < 7)) { var childFrame =3D elt._hideWindowedElementsIFrame; if (!childFrame) { childFrame =3D document.createElement("iframe"); childFrame.src =3D "javascript:'';"; childFrame.style.position =3D "absolute"; childFrame.style.display =3D "none"; childFrame.scrolling =3D "no"; childFrame.frameBorder =3D "0"; childFrame.tabIndex =3D "-1"; childFrame.style.filter =3D = "progid:DXImageTransform.Microsoft.Alpha(style=3D0,opacity=3D0)"; elt.parentNode.insertBefore(childFrame, elt); elt._hideWindowedElementsIFrame =3D childFrame; this._moveHandler =3D Function.createDelegate(this, = this._onMove); Sys.UI.DomEvent.addHandler(elt, "move", = this._moveHandler); } CommonToolkitScripts.setBounds(childFrame, newPosition); =20 childFrame.style.display =3D elt.style.display; if (elt.currentStyle && elt.currentStyle.zIndex) { childFrame.style.zIndex =3D elt.currentStyle.zIndex; } else if (elt.style.zIndex) { childFrame.style.zIndex =3D elt.style.zIndex; } } }, =20 initialize : function() { AjaxControlToolkit.PopupBehavior.callBaseMethod(this, = 'initialize'); this.hide(); this.get_element().style.position =3D "absolute"; }, =20 dispose : function() { var elt =3D this.get_element(); if (elt) { if (Sys.UI.DomElement.getVisible(elt)) { this.hide(); } if (this._originalParent) { elt.parentNode.removeChild(elt); this._originalParent.appendChild(elt); this._originalParent =3D null; } } this._parentElement =3D null; AjaxControlToolkit.PopupBehavior.callBaseMethod(this, = 'dispose'); }, =20 _onMove : function() { var elt =3D this.get_element(); if (elt._hideWindowedElementsIFrame) { elt.parentNode.insertBefore(elt._hideWindowedElementsIFrame, = elt); elt._hideWindowedElementsIFrame.style.top =3D elt.style.top; elt._hideWindowedElementsIFrame.style.left =3D = elt.style.left; } } } //AjaxControlToolkit.PopupBehavior.descriptor =3D { // properties: [ {name: 'parentElement', attributes: [ = Sys.Attributes.Element, true ] }, // {name: 'positioningMode', type: = AjaxControlToolkit.PositioningMode}, // {name: 'x', type: Number}, // {name: 'y', type: Number} ], // events: [ {name: 'show'}, // {name: 'hide'} ] //} AjaxControlToolkit.PopupBehavior.registerClass('AjaxControlToolkit.PopupB= ehavior', AjaxControlToolkit.BehaviorBase); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXBOgasSoXE52a6TQbq_lvld3kX4PLUqr37ugLjfSwI0fQ2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. /////////////////////////////////////////////////////////////////////////= ////// // Sys.Timer Sys.Timer =3D function() { Sys.Timer.initializeBase(this); =20 this._interval =3D 1000; this._enabled =3D false; this._timer =3D null; } Sys.Timer.prototype =3D { get_interval: function() { =20 return this._interval; }, set_interval: function(value) { =20 if (this._interval !=3D=3D value) { this._interval =3D value; this.raisePropertyChanged('interval'); =20 if (!this.get_isUpdating() && (this._timer !=3D=3D null)) { this._stopTimer(); this._startTimer(); } } }, =20 get_enabled: function() { =20 return this._enabled; }, set_enabled: function(value) { =20 if (value !=3D=3D this.get_enabled()) { this._enabled =3D value; this.raisePropertyChanged('enabled'); if (!this.get_isUpdating()) { if (value) { this._startTimer(); } else { this._stopTimer(); } } } }, =20 add_tick: function(handler) { =20 =20 this.get_events().addHandler("tick", handler); }, remove_tick: function(handler) { =20 =20 this.get_events().removeHandler("tick", handler); }, dispose: function() { this.set_enabled(false); this._stopTimer(); =20 Sys.Timer.callBaseMethod(this, 'dispose'); }, =20 updated: function() { Sys.Timer.callBaseMethod(this, 'updated'); if (this._enabled) { this._stopTimer(); this._startTimer(); } }, _timerCallback: function() { var handler =3D this.get_events().getHandler("tick"); if (handler) { handler(this, Sys.EventArgs.Empty); } }, _startTimer: function() { this._timer =3D window.setInterval(Function.createDelegate(this, = this._timerCallback), this._interval); }, _stopTimer: function() { window.clearInterval(this._timer); this._timer =3D null; } } Sys.Timer.descriptor =3D { properties: [ {name: 'interval', type: Number}, {name: 'enabled', type: Boolean} ], events: [ {name: 'tick'} ] } Sys.Timer.registerClass('Sys.Timer', Sys.Component); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXCdJuqputQxi3gaLuzixfzDwZKI09Nh-aysA8aaMY7O2A2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace('AjaxControlToolkit.Animation'); // Create an alias for the namespace to save 25 chars each time it's = used since // this is a very long script and will take awhile to download var $AA =3D AjaxControlToolkit.Animation; $AA.registerAnimation =3D function(name, type) { /// /// Register an animation with the AJAX Control Toolkit animation = framework. This serves a dual purpose: /// 1) to add standard utility methods to the animation type (such = as a play method that creates /// an animation, plays it, and disposes it when the animation is = over), and 2) to associate a name with the /// type that will be used when creating animations from a JSON = description. This method can also be called /// by other animation libraries to seamlessly interoperate with the = AJAX Control Toolkit's animation /// framework. /// /// /// Name of the animation that will be used as the XML tag name in = the XML animation description. It /// should be a valid XML tag (i.e. an alpha-numeric sequence with = no spaces, special characters, etc.). /// /// /// The type of the new animation must inherit from . /// /// // Make sure the type inherits from = AjaxControlToolkit.Animation.Animation if (type && ((type =3D=3D=3D $AA.Animation) || (type.inheritsFrom && = type.inheritsFrom($AA.Animation)))) { // We'll store the animation name/type mapping in a "static" = object off of // AjaxControlToolkit.Animation. If this __animations object = hasn't been // created yet, demand create it on the first registration. if (!$AA.__animations) { $AA.__animations =3D { }; } =20 // Add the current type to the collection of animations $AA.__animations[name.toLowerCase()] =3D type; =20 // Add a play function that will make it very easy to create, = play, and // dispose of an animation. This is effectively a "static" = function on // each animation and will take the same parameters as that = animation's // constructor. type.play =3D function() { /// /// Create an animation, play it immediately, and dispose it = when finished. /// /// /// The play function takes the same parameters as the = type's constructor /// /// =20 // Create and initialize a new animation of the right type = and pass in // any arguments given to the play function var animation =3D new type(); type.apply(animation, arguments); animation.initialize(); =20 // Add an event handler to dispose the animation when it's = finished var handler =3D Function.createDelegate(animation, function() { /// /// Dispose the animation after playing /// /// animation.remove_ended(handler); handler =3D null; animation.dispose(); }); animation.add_ended(handler); =20 // Once the animation has been created and initialized, play = it and // dispose it as soon as it's finished animation.play(); =20 } } else { // Raise an error if someone registers an animation that doesn't = inherit // from our base Animation class throw Error.argumentType('type', type, $AA.Animation, = AjaxControlToolkit.Resources.Animation_InvalidBaseType); } } $AA.buildAnimation =3D function(json, defaultTarget) { /// /// The buildAnimation function is used to turn a JSON = animation description /// into an actual animation object that can be played. /// /// /// JSON description of the animation in the format expected by = createAnimation /// /// /// Target of the animation if none is specified in the JSON = description. The semantics of /// target assignment are provided in more detail in = createAnimation. /// /// /// Animation created from the JSON description /// =20 // Ensure we have a description to create an animation with if (!json || json =3D=3D=3D '') { return null; } // "Parse" the JSON so we can easily manipulate it // (we don't wrap it in a try/catch when debugging to raise any = errors) var obj; json =3D '(' + json + ')'; if (! Sys.Debug.isDebug) { try { obj =3D = Sys.Serialization.JavaScriptSerializer.deserialize(json); } catch (ex) { = }=20 } else { obj =3D = Sys.Serialization.JavaScriptSerializer.deserialize(json); } =20 // Create a new instance of the animation return $AA.createAnimation(obj, defaultTarget); =20 } $AA.createAnimation =3D function(obj, defaultTarget) { /// /// The createAnimation function builds a new /// instance = from an object /// that describes it. /// /// /// The object provides a description of the animation to be be = generated in /// a very specific format. It has two special properties: = AnimationName /// and AnimationChildren. The = AnimationName is required /// and used to find the type of animation to create (this name = should map to /// one of the animation names supplied to = registerAnimation). The /// AnimationChildren property supplies an optional = array for /// animations that use child animations (such as /// = and /// ). The elements of /// the AnimationChildren array are valid /// objects = that meet these same /// requirements. In order for an animation to support child = animations, it must /// derive from the class /// which provides common methods like add, = clear, etc. The /// remaining properties of the object are used to set parameters = specific to the type /// of animation being created (e.g. duration, = minimumOpacity, /// startValue, etc.) and should have a corresponding = property on the /// animation. You can also assign an arbitrary JavaScript = expression to any property /// by adding 'Script' to the end of its name (i.e., Height=3D"70" = can be replaced by /// HeightScript=3D"$get('myElement').offsetHeight") and have the = property set to the /// result of evaluating the expression before the animation is = played each time. /// /// /// The function also takes a defaultTarget parameter = that is used as the /// target of the animation if the object does not specify one. = This parameter should be /// an instance of and not just = the name of an element. /// /// /// created = from the description /// /// /// Exceptions are thrown when the AnimationName cannot = be found. Also, /// any exceptions raised by setting properties or providing = properties with invalid /// names will only be raised when debugging. /// // Create a default instance of the animation by looking up the = AnimationName // in the global __animations object. if (!obj || !obj.AnimationName) { throw Error.argument('obj', = AjaxControlToolkit.Resources.Animation_MissingAnimationName); } var type =3D $AA.__animations[obj.AnimationName.toLowerCase()]; if (!type) { throw Error.argument('type', = String.format(AjaxControlToolkit.Resources.Animation_UknownAnimationName,= obj.AnimationName)); } var animation =3D new type(); =20 // Set the animation's target if provided via defaultTarget (note = that setting // it via AnimationTarget will happen during the regular property = setting phase) if (defaultTarget) { animation.set_target(defaultTarget); } =20 // If there is an AnimationChildren array and the animation inherits = from // ParentAnimation, then we will recusively build the child = animations. It is // important that we create the child animations before setting the = animation's // properties or initializing (because some properties and = initialization may be // propogated down from parent to child). if (obj.AnimationChildren && obj.AnimationChildren.length) { if ($AA.ParentAnimation.isInstanceOfType(animation)) { for (var i =3D 0; i < obj.AnimationChildren.length; i++) { var child =3D = $AA.createAnimation(obj.AnimationChildren[i]); if (child) { animation.add(child); } } } else { throw Error.argument('obj', = String.format(AjaxControlToolkit.Resources.Animation_ChildrenNotAllowed, = type.getName())); } } =20 // Get the list of all properties available to set on the current = animation's // type. We create a mapping from the property's lowercase friendly = name // (i.e., "duration") to the name of its setter (i.e., = "set_duration"). This is // essentialy in setting properties so we only copy over valid = values. var properties =3D type.__animationProperties; if (!properties) { // Get the properties for this type by walking its prototype - = by doing // this we'll effectively ignore anything not defined in the = prototype type.__animationProperties =3D { }; type.resolveInheritance(); for (var name in type.prototype) { if (name.startsWith('set_')) { type.__animationProperties[name.substr(4).toLowerCase()] = =3D name; } } =20 // Remove the 'id' property as it shouldn't be set by the = animation // (NOTE: the 'target' proeprty shouldn't be set to a string = value, but it // isn't removed because it can be used as a valid dynamic = property - i.e. // Target=3D"myElement" *DOES NOT WORK*, but it's OKAY to use // TargetScript=3D"$get('myElement')". Validation for this = scenario will be // handled automatically by _validateParams when debugging as = Target is required // to be a dom element.) delete type.__animationProperties['id']; properties =3D type.__animationProperties; } =20 // Loop through each of the properties in the object and check if = it's in the list // of valid property names. We will check the type of the = propertyName to make sure // it's a String (as other types can be added by the ASP.NET AJAX = compatability // layers to all objects and cause errors if you don't exclude = them). We will first // try to set a property with the same name if it exists. If we = can't find one but // the name of the property ends in 'script', then we will try to = set a corresponding // dynamic property. If no matches can be found at all, we'll raise = an error when // debugging. for (var property in obj) { // Ignore the special properties in the object that don't = correspond // to any actual properties on the animation var prop =3D property.toLowerCase(); if (prop =3D=3D 'animationname' || prop =3D=3D = 'animationchildren') { continue; } =20 var value =3D obj[property]; =20 // Try to directly set the value of this property var setter =3D properties[prop]; if (setter && String.isInstanceOfType(setter) && = animation[setter]) { // Ignore any exceptions raised by setting the property // unless we're debugging if (! Sys.Debug.isDebug) { try { animation[setter](value); } catch (ex) { } } else { animation[setter](value); } } else { // Try to set the value of a dynamic property if (prop.endsWith('script')) { setter =3D properties[prop.substr(0, property.length - = 6)]; if (setter && String.isInstanceOfType(setter) && = animation[setter]) { animation.DynamicProperties[setter] =3D value; } else if ( Sys.Debug.isDebug) { // Raise an error when debugging if we could not = find a matching property throw Error.argument('obj', = String.format(AjaxControlToolkit.Resources.Animation_NoDynamicPropertyFou= nd, property, property.substr(0, property.length - 5))); } } else if ( Sys.Debug.isDebug) { // Raise an error when debugging if we could not find a = matching property throw Error.argument('obj', = String.format(AjaxControlToolkit.Resources.Animation_NoPropertyFound, = property)); } } } =20 return animation; } // In the Xml comments for each of the animations below, there is a = special tag // that describes how the animation is referenced from a generic XML = animation description $AA.Animation =3D function(target, duration, fps) { /// /// Animation is an abstract base class used as a = starting point for all the other animations. /// It provides the basic mechanics for the animation (playing, = pausing, stopping, timing, etc.) /// and leaves the actual animation to be done in the abstract = methods getAnimatedValue /// and setValue. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// The DynamicProperties collection is used to associate JavaScript = expressions with /// properties. The expressions are evaluated just before the = animation is played /// everytime (in the base onStart method). The object itself maps = strings with the /// names of property setters (like "set_verticalOffset") to = JavaScript expressions /// (like "$find('MyBehavior').get_element().offsetHeight"). Note = specifically that /// the dynamic properties are JavaScript expressions and not = abitrary statements (i.e. /// you can't include things like "return foo;"), although you can = include anything /// inside an anonymous function definition that you immediately = invoke (i.e., /// "(function() { return foo; })()"). A dynamic property can be = set in the generic /// XML animation description by appending Script onto any = legitimate property name /// (for example, instead of Height=3D"70" we could use /// = HeightScript=3D"$find('MyBehavior').get_element().offsetHeight"). Any = exceptions /// raised when setting dynamic properties (including both = JavaScript evaluation errors /// and other exceptions raised by property setters) will only be = propogated when /// debugging. /// /// /// Animations need to be as fast as possible - even in debug mode. = Don't add validation code to /// methods involved in every step of the animation. /// /// Animation $AA.Animation.initializeBase(this); =20 // Length of the animation in seconds this._duration =3D 1; =20 // Number of steps per second this._fps =3D 25; =20 // Target Sys.UI.DomElement of the animation this._target =3D null; =20 // Tick event handler this._tickHandler =3D null; =20 // Animation timer this._timer =3D null; =20 // Percentage of the animation already played this._percentComplete =3D 0; =20 // Percentage of the animation to play on each step this._percentDelta =3D null; =20 // Reference to the animation that owns this animation (currently = only set in=20 // ParallelAnimation.add). This concept of ownership allows an = entire animation // subtree to be driven off a single timer so all the operations are = properly // synchronized. this._owner =3D null; =20 // Reference to the animation that contains this as a child (this is = set // in ParentAnimation.add). The primary use of the parent animation = is in // resolving the animation target when one isn't specified. this._parentAnimation =3D null; =20 // The DynamicProperties collection is used to associate JavaScript = expressions with // properties. The expressions are evaluated just before the = animation is played // everytime (in the base onStart method). See the additional = information in the // XML comment above. this.DynamicProperties =3D { }; =20 // Set the target, duration, and fps if they were provided in the = constructor if (target) { this.set_target(target); } if (duration) { this.set_duration(duration); } if (fps) {=20 this.set_fps(fps); } } $AA.Animation.prototype =3D { dispose : function() { /// /// Dispose the animation /// /// =20 if (this._timer) { this._timer.dispose(); this._timer =3D null; } =20 this._tickHandler =3D null; this._target =3D null; =20 $AA.Animation.callBaseMethod(this, 'dispose'); }, =20 play : function() { /// /// Play the animation from the beginning or where it was left = off when paused. /// /// /// /// If this animation is the child of another, you must call = play on its parent instead. /// =20 // If ownership of this animation has been claimed, then we'll = require the parent to // handle playing the animation (this is very important because = then the entire animation // tree runs on the same timer and updates consistently) if (!this._owner) { var resume =3D true; if (!this._timer) { resume =3D false; =20 if (!this._tickHandler) { this._tickHandler =3D Function.createDelegate(this, = this._onTimerTick); } this._timer =3D new Sys.Timer(); this._timer.add_tick(this._tickHandler); =20 this.onStart(); =20 this._timer.set_interval(1000 / this._fps); this._percentDelta =3D 100 / (this._duration * = this._fps); this._updatePercentComplete(0, true); } this._timer.set_enabled(true); =20 this.raisePropertyChanged('isPlaying'); if (!resume) { this.raisePropertyChanged('isActive'); } } }, =20 pause : function() { /// /// Pause the animation if it is playing. Calling = play will resume where /// the animation left off. /// /// /// /// If this animation is the child of another, you must call = pause on its parent instead. /// =20 if (!this._owner) { if (this._timer) { this._timer.set_enabled(false); =20 this.raisePropertyChanged('isPlaying'); } } }, =20 stop : function(finish) { /// /// Stop playing the animation. /// /// /// Whether or not stopping the animation should leave the = target element in a state /// consistent with the animation playing completely by = performing the last step. /// The default value is true. /// /// /// /// If this animation is the child of another, you must call = stop on /// its parent instead. /// =20 if (!this._owner) { var t =3D this._timer; this._timer =3D null; if (t) { t.dispose(); =20 if (this._percentComplete !=3D=3D 100) { this._percentComplete =3D 100; this.raisePropertyChanged('percentComplete'); if (finish || finish =3D=3D=3D undefined) { this.onStep(100); } } this.onEnd(); =20 this.raisePropertyChanged('isPlaying'); this.raisePropertyChanged('isActive'); } } }, =20 onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// =20 this.raiseStarted(); =20 // Initialize any dynamic properties for (var property in this.DynamicProperties) { try { // Invoke the property's setter on the evaluated = expression this[property](eval(this.DynamicProperties[property])); } catch(ex) { // Propogate any exceptions if we're debugging, = otherwise eat them if ( Sys.Debug.isDebug) { throw ex; } } } }, =20 onStep : function(percentage) { /// /// The onStep method is called repeatedly to = progress the animation through each frame /// /// Percentage of the = animation already complete /// =20 this.setValue(this.getAnimatedValue(percentage)); }, =20 onEnd : function() { /// /// The onEnd method is called just after the = animation is played each time. /// /// =20 this.raiseEnded(); }, =20 getAnimatedValue : function(percentage) { /// /// Determine the state of the animation after the given = percentage of its duration has elapsed /// /// Percentage of the = animation already complete /// /// State of the animation after the given percentage of its = duration has elapsed that will /// be passed to setValue /// throw Error.notImplemented(); }, =20 setValue : function(value) { /// /// Set the current state of the animation /// /// Current state of the = animation (as retreived from getAnimatedValue) /// throw Error.notImplemented(); }, =20 interpolate : function(start, end, percentage) { /// /// The interpolate function is used to find the = appropriate value between starting and /// ending values given the current percentage. /// /// /// Start of the range to interpolate /// /// /// End of the range to interpolate /// /// /// Percentage completed in the range to interpolate /// /// /// Value the desired percentage between the start and end = values /// /// /// In the future, we hope to make several implementations of = this available so we can dynamically /// change the apparent speed of the animations, although it may = make more sense to modify the /// _updatePercentComplete function instead. /// return start + (end - start) * (percentage / 100); }, =20 _onTimerTick : function() { /// /// Handler for the tick event to move the animation along = through its duration /// /// this._updatePercentComplete(this._percentComplete + = this._percentDelta, true); }, =20 _updatePercentComplete : function(percentComplete, animate) { /// /// Update the animation and its target given the current = percentage of its duration that /// has already elapsed /// /// /// Percentage of the animation duration that has already = elapsed /// /// /// Whether or not updating the animation should visually modify = the animation's target /// /// =20 if (percentComplete > 100) { percentComplete =3D 100; } =20 this._percentComplete =3D percentComplete; this.raisePropertyChanged('percentComplete'); =20 if (animate) { this.onStep(percentComplete); } =20 if (percentComplete =3D=3D=3D 100) { this.stop(false); } }, =20 setOwner : function(owner) { /// /// Make this animation the child of another animation /// /// /// Parent animation /// /// this._owner =3D owner; }, =20 raiseStarted : function() { /// /// Raise the started event /// /// var handlers =3D this.get_events().getHandler('started'); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_started : function(handler) { /// /// Adds an event handler for the started event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("started", handler); }, =20 remove_started : function(handler) { /// /// Removes an event handler for the started event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("started", handler); }, =20 raiseEnded : function() { /// /// Raise the ended event /// /// var handlers =3D this.get_events().getHandler('ended'); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_ended : function(handler) { /// /// Adds an event handler for the ended event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("ended", handler); }, =20 remove_ended : function(handler) { /// /// Removes an event handler for the ended event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("ended", handler); }, =20 get_target : function() { /// /// Target of the animation. If the target of this animation is = null and /// the animation has a parent, then it will recursively use the = target of /// the parent animation instead. /// /// /// Do not set this property in a generic Xml animation = description. It should be set /// using either the extender's TargetControlID or the = AnimationTarget property (the latter /// maps to AjaxControlToolkit.Animation.set_animationTarget). = The only valid way to /// set this property in the generic Xml animation description = is to use the dynamic /// property TargetScript=3D"$get('myElement')". /// if (!this._target && this._parentAnimation) { return this._parentAnimation.get_target(); } return this._target; }, set_target : function(value) { if (this._target !=3D value) { this._target =3D value; this.raisePropertyChanged('target'); } }, =20 set_animationTarget : function(id) { /// /// ID of a Sys.UI.DomElement or Sys.UI.Control to use as the = target of the animation /// /// /// If no Sys.UI.DomElement or Sys.UI.Control can be found for = the given ID, an /// argument exception will be thrown. /// =20 // Try to find a Sys.UI.DomElement var target =3D null; var element =3D $get(id); if (element) { target =3D element; } else { // Try to find the control in the AJAX controls collection var ctrl =3D $find(id); if (ctrl) { element =3D ctrl.get_element(); if (element) { target =3D element; } } } =20 // Use the new target if we have one, or raise an error if not if (target) {=20 this.set_target(target); } else { throw Error.argument('id', = String.format(AjaxControlToolkit.Resources.Animation_TargetNotFound, = id)); } }, =20 get_duration : function() { /// /// Length of the animation in seconds. The default is 1. /// return this._duration; }, set_duration : function(value) { value =3D this._getFloat(value); if (this._duration !=3D value) { this._duration =3D value; this.raisePropertyChanged('duration'); } }, =20 get_fps : function() { /// /// Number of steps per second. The default is 25. /// return this._fps; }, set_fps : function(value) { value =3D this._getInteger(value); if (this.fps !=3D value) { this._fps =3D value; this.raisePropertyChanged('fps'); } }, =20 get_isActive : function() { /// /// true if animation is active, false = if not. /// return (this._timer !=3D=3D null); }, =20 get_isPlaying : function() { /// /// true if animation is playing, = false if not. /// return (this._timer !=3D=3D null) && this._timer.get_enabled(); }, =20 get_percentComplete : function() { /// /// Percentage of the animation already played. /// return this._percentComplete; }, =20 _getBoolean : function(value) { /// /// Helper to convert strings to booleans for property setters /// /// /// Value to convert if it's a string /// /// /// Value that has been converted if it was a string /// if (String.isInstanceOfType(value)) { return Boolean.parse(value); } return value; }, =20 _getInteger : function(value) { /// /// Helper to convert strings to integers for property setters /// /// Value to convert if = it's a string /// Value that has been converted if it = was a string if (String.isInstanceOfType(value)) { return parseInt(value); } return value; }, =20 _getFloat : function(value) { /// /// Helper to convert strings to floats for property setters /// /// Value to convert if = it's a string /// Value that has been converted if it = was a string if (String.isInstanceOfType(value)) { return parseFloat(value); } return value; }, =20 _getEnum : function(value, type) { /// /// Helper to convert strings to enum values for property = setters /// /// Value to convert if = it's a string /// Type of the enum to = convert to /// Value that has been converted if it = was a string if (String.isInstanceOfType(value) && type && type.parse) { return type.parse(value); } return value; } } $AA.Animation.registerClass('AjaxControlToolkit.Animation.Animation', = Sys.Component); $AA.registerAnimation('animation', $AA.Animation); $AA.ParentAnimation =3D function(target, duration, fps, animations) { /// /// The ParentAnimation serves as a base class for all = animations that contain children (such as /// , = , /// etc.). It does not actually play the animations, so any classes = that inherit from it must do so. Any animation /// that requires nested child animations must inherit from this = class, although it will likely want to inherit off of /// = or /// which will actually play their child animations. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations to be played /// /// Parent $AA.ParentAnimation.initializeBase(this, [target, duration, fps]); =20 // Array of child animations (there are no assumptions placed on = order because // it will matter for some derived animations like = SequenceAnimation, but not // for others like ParallelAnimation) that is demand created in add this._animations =3D []; =20 // Add any child animations passed into the constructor if (animations && animations.length) { for (var i =3D 0; i < animations.length; i++) { this.add(animations[i]); } } } $AA.ParentAnimation.prototype =3D { initialize : function() { /// /// Initialize the parent along with any child animations that = have not yet been initialized themselves /// /// $AA.ParentAnimation.callBaseMethod(this, 'initialize'); =20 // Initialize all the uninitialized child animations if (this._animations) { for (var i =3D 0; i < this._animations.length; i++) { var animation =3D this._animations[i]; if (animation && !animation.get_isInitialized) { animation.initialize(); } } } }, =20 dispose : function() { /// /// Dispose of the child animations /// /// this.clear(); this._animations =3D null; $AA.ParentAnimation.callBaseMethod(this, 'dispose'); }, =20 get_animations : function() { /// /// Array of child animations to be played (there are no = assumptions placed on order because it will matter for some /// derived animations like , but not for /// others like ). To = manipulate the child /// animations, use the functions add, = clear, remove, and removeAt. /// return this._animations; }, =20 add : function(animation) { /// /// Add an animation as a child of this animation. /// /// Child animation to = add /// if (this._animations) { if (animation) { animation._parentAnimation =3D this; } Array.add(this._animations, animation); this.raisePropertyChanged('animations'); } }, =20 remove : function(animation) { /// /// Remove the animation from the array of child animations. /// /// /// Child animation to remove /// /// /// /// This will dispose the removed animation. /// if (this._animations) { if (animation) { animation.dispose(); } Array.remove(this._animations, animation); this.raisePropertyChanged('animations'); } }, =20 removeAt : function(index) { /// /// Remove the animation at a given index from the array of = child animations. /// /// /// Index of the child animation to remove /// /// =20 if (this._animations) { var animation =3D this._animations[index]; if (animation) { animation.dispose(); } Array.removeAt(this._animations, index); this.raisePropertyChanged('animations'); } }, =20 clear : function() { /// /// Clear the array of child animations. /// /// /// This will dispose the cleared child animations. /// /// if (this._animations) { for (var i =3D this._animations.length - 1; i >=3D 0; i--) { this._animations[i].dispose(); this._animations[i] =3D null; } Array.clear(this._animations); this._animations =3D []; this.raisePropertyChanged('animations'); } } } $AA.ParentAnimation.registerClass('AjaxControlToolkit.Animation.ParentAni= mation', $AA.Animation); $AA.registerAnimation('parent', $AA.ParentAnimation); $AA.ParallelAnimation =3D function(target, duration, fps, animations) { /// /// The ParallelAnimation plays several animations = simultaneously. It inherits from /// , = but makes itself the owner of all /// its child animations to allow the use a single timer and = syncrhonization mechanisms shared with /// all the children (in other words, the duration = properties of any child animations /// are ignored in favor of the parent's duration). It = is very useful in creating /// sophisticated effects through combination of simpler animations. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations /// /// Parallel $AA.ParallelAnimation.initializeBase(this, [target, duration, fps, = animations]); } $AA.ParallelAnimation.prototype =3D { add : function(animation) { /// /// Add an animation as a child of this animation and make = ourselves its owner. /// /// Child animation to = add /// $AA.ParallelAnimation.callBaseMethod(this, 'add', [animation]); animation.setOwner(this); }, =20 onStart : function() { /// /// Get the child animations ready to play /// /// $AA.ParallelAnimation.callBaseMethod(this, 'onStart'); var animations =3D this.get_animations(); for (var i =3D 0; i < animations.length; i++) { animations[i].onStart(); } }, =20 onStep : function(percentage) { /// /// Progress the child animations through each frame /// /// /// Percentage of the animation already complete /// /// var animations =3D this.get_animations(); for (var i =3D 0; i < animations.length; i++) { animations[i].onStep(percentage); } }, =20 onEnd : function() { /// /// Finish playing all of the child animations /// /// var animations =3D this.get_animations(); for (var i =3D 0; i < animations.length; i++) { animations[i].onEnd(); } $AA.ParallelAnimation.callBaseMethod(this, 'onEnd'); } } $AA.ParallelAnimation.registerClass('AjaxControlToolkit.Animation.Paralle= lAnimation', $AA.ParentAnimation); $AA.registerAnimation('parallel', $AA.ParallelAnimation); $AA.SequenceAnimation =3D function(target, duration, fps, animations, = iterations) { /// /// The SequenceAnimation runs several animations one = after the other. It can also /// repeat the sequence of animations for a specified number of = iterations (which defaults to a /// single iteration, but will repeat forever if you specify zero or = less iterations). Also, the /// SequenceAnimation cannot be a child of a /// (or any animation inheriting from it). /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations /// /// /// Number of times to repeatedly play the sequence. If zero or = less iterations are specified, the sequence /// will repeat forever. The default value is 1 iteration. /// /// /// The SequenceAnimation ignores the = duration and fps /// properties, and will let each of its child animations use any = settings they please. /// /// Sequence $AA.SequenceAnimation.initializeBase(this, [target, duration, fps, = animations]); // Handler used to determine when an animation has finished this._handler =3D null; =20 // Flags to note whether we're playing, paused, or stopped this._paused =3D false; this._playing =3D false; =20 // Index of the currently executing animation in the sequence this._index =3D 0; =20 // Counter used when playing the animation to determine the = remaining number of times to play the entire sequence this._remainingIterations =3D 0; =20 // Number of iterations this._iterations =3D (iterations !=3D=3D undefined) ? iterations : = 1; } $AA.SequenceAnimation.prototype =3D { dispose : function() { /// /// Dispose the animation /// /// this._handler =3D null; $AA.SequenceAnimation.callBaseMethod(this, 'dispose'); }, =20 stop : function() { /// /// Stop playing the entire sequence of animations /// /// /// /// Stopping this animation will perform the last step of each = child animation, thereby leaving their /// target elements in a state consistent with the animation = playing completely. If this animation is /// the child of another, you must call stop on its = parent instead. /// if (this._playing) { var animations =3D this.get_animations(); if (this._index < animations.length) { // Remove the handler from the currently running = animation animations[this._index].remove_ended(this._handler); // Call stop on all remaining animations to ensure their // effects will be seen for (var i =3D this._index; i < animations.length; i++) = { animations[i].stop(); } } this._playing =3D false; this._paused =3D false; this.raisePropertyChanged('isPlaying'); this.onEnd(); } }, =20 pause : function() { /// /// Pause the animation if it is playing. Calling = play will resume where /// the animation left off. /// /// /// /// If this animation is the child of another, you must call = pause on its parent instead. /// if (this.get_isPlaying()) { var current =3D this.get_animations()[this._index]; if (current !=3D null) { current.pause(); } this._paused =3D true; this.raisePropertyChanged('isPlaying'); } }, =20 play : function() { /// /// Play the sequence of animations from the beginning or where = it was left off when paused /// /// /// /// If this animation is the child of another, you must call = play on its parent instead /// var animations =3D this.get_animations(); if (!this._playing) { this._playing =3D true; if (this._paused) { this._paused =3D false; var current =3D animations[this._index]; if (current !=3D null) { current.play(); this.raisePropertyChanged('isPlaying'); } } else { this.onStart(); // Reset the index and attach the handler to the first this._index =3D 0; var first =3D animations[this._index]; if (first) { first.add_ended(this._handler); first.play(); this.raisePropertyChanged('isPlaying'); } else { this.stop(); } } } }, =20 onStart : function() { /// /// The onStart method is called just before the = animation is played each time /// /// $AA.SequenceAnimation.callBaseMethod(this, 'onStart'); this._remainingIterations =3D this._iterations - 1; =20 // Create the handler we attach to each animation as it plays to = determine when we've finished with it if (!this._handler) { this._handler =3D Function.createDelegate(this, = this._onEndAnimation); } }, =20 _onEndAnimation : function() { /// /// Wait for the end of each animation, and then continue by = playing the other animations remaining /// in the sequence. Stop when it reaches the last animation = and there are no remaining iterations. /// /// // Remove the handler from the current animation var animations =3D this.get_animations(); var current =3D animations[this._index++]; if (current) { current.remove_ended(this._handler); } =20 // Keep running animations and stop when we're out if (this._index < animations.length) { var next =3D animations[this._index]; next.add_ended(this._handler); next.play(); } else if (this._remainingIterations >=3D 1 || this._iterations = <=3D 0) { this._remainingIterations--; this._index =3D 0; var first =3D animations[0]; first.add_ended(this._handler); first.play(); } else { this.stop(); } }, =20 onStep : function(percentage) { /// /// Raises an invalid operation exception because this will only = be called if a SequenceAnimation /// has been nested inside an (or a derived = type). /// /// Percentage of the = animation already complete /// throw = Error.invalidOperation(AjaxControlToolkit.Resources.Animation_CannotNestS= equence); }, =20 onEnd : function() { /// /// The onEnd method is called just after the = animation is played each time. /// /// this._remainingIterations =3D 0; $AA.SequenceAnimation.callBaseMethod(this, 'onEnd'); }, =20 get_isActive : function() { /// /// true if animation is active, false = if not. /// return true; }, =20 get_isPlaying : function() { /// /// true if animation is playing, = false if not. /// return this._playing && !this._paused; }, =20 get_iterations : function() { /// /// Number of times to repeatedly play the sequence. If zero or = less iterations are specified, the sequence /// will repeat forever. The default value is 1 iteration. /// return this._iterations; }, set_iterations : function(value) { value =3D this._getInteger(value); if (this._iterations !=3D value) { this._iterations =3D value; this.raisePropertyChanged('iterations'); } }, =20 get_isInfinite : function() { /// /// true if this animation will repeat forever, = false otherwise. /// return this._iterations <=3D 0; } } $AA.SequenceAnimation.registerClass('AjaxControlToolkit.Animation.Sequenc= eAnimation', $AA.ParentAnimation); $AA.registerAnimation('sequence', $AA.SequenceAnimation); $AA.SelectionAnimation =3D function(target, duration, fps, animations) { /// /// The SelectionAnimation will run a single animation = chosen from of its child animations. It is /// important to note that the SelectionAnimation = ignores the duration and fps /// properties, and will let each of its child animations use any = settings they please. This is a base class with no /// functional implementation, so consider using or /// = instead. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations /// /// Selection $AA.SelectionAnimation.initializeBase(this, [target, duration, fps, = animations]); =20 // Index of the animation selected to play this._selectedIndex =3D -1; =20 // Reference to the animation selected to play this._selected =3D null; } $AA.SelectionAnimation.prototype =3D { =20 getSelectedIndex : function() { /// /// Get the index of the animation that is selected to be = played. If this returns an index outside the bounds of /// the child animations array, then nothing is played. /// /// /// Index of the selected child animation to play /// throw Error.notImplemented(); }, =20 onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// $AA.SelectionAnimation.callBaseMethod(this, 'onStart'); =20 var animations =3D this.get_animations(); this._selectedIndex =3D this.getSelectedIndex(); if (this._selectedIndex >=3D 0 && this._selectedIndex < = animations.length) { this._selected =3D animations[this._selectedIndex]; if (this._selected) { this._selected.setOwner(this); this._selected.onStart(); } } }, =20 onStep : function(percentage) { /// /// The onStep method is called repeatedly to = progress the animation through each frame /// /// Percentage of the = animation already complete /// if (this._selected) { this._selected.onStep(percentage); } }, =20 onEnd : function() { /// /// The onEnd method is called just after the = animation is played each time. /// /// if (this._selected) { this._selected.onEnd(); this._selected.setOwner(null); } this._selected =3D null; this._selectedIndex =3D null; $AA.SelectionAnimation.callBaseMethod(this, 'onEnd'); } } $AA.SelectionAnimation.registerClass('AjaxControlToolkit.Animation.Select= ionAnimation', $AA.ParentAnimation); $AA.registerAnimation('selection', $AA.SelectionAnimation); $AA.ConditionAnimation =3D function(target, duration, fps, animations, = conditionScript) { /// /// The ConditionAnimation is used as a control = structure to play a specific child animation /// depending on the result of executing the = conditionScript. If the conditionScript /// evaluates to true, the first child animation is = played. If it evaluates to false, /// the second child animation is played (although nothing is played = if a second animation is not present). /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations /// /// /// JavaScript that should evaluate to true or = false to determine which child /// animation to play. /// /// Condition $AA.ConditionAnimation.initializeBase(this, [target, duration, fps, = animations]); =20 // Condition to determine which index we will play this._conditionScript =3D conditionScript; =20 } $AA.ConditionAnimation.prototype =3D { =20 getSelectedIndex : function() { /// /// Get the index of the animation that is selected to be played. = If this returns an index outside the bounds of /// the child animations array, then nothing is played. /// /// /// Index of the selected child animation to play /// var selected =3D -1; if (this._conditionScript && this._conditionScript.length > 0) { try { selected =3D eval(this._conditionScript) ? 0 : 1; } catch(ex) { } } return selected; }, =20 get_conditionScript : function() { /// /// JavaScript that should evaluate to true or = false to determine which /// child animation to play. /// return this._conditionScript; }, set_conditionScript : function(value) { if (this._conditionScript !=3D value) { this._conditionScript =3D value; this.raisePropertyChanged('conditionScript'); } } } $AA.ConditionAnimation.registerClass('AjaxControlToolkit.Animation.Condit= ionAnimation', $AA.SelectionAnimation); $AA.registerAnimation('condition', $AA.ConditionAnimation); $AA.CaseAnimation =3D function(target, duration, fps, animations, = selectScript) { /// /// The CaseAnimation is used as a control structure to = play a specific child animation depending on /// the result of executing the selectScript, which = should return the index of the child animation to /// play (this is similar to the case or = select statements in C#/VB, etc.). If the provided /// index is outside the bounds of the child animations array (or if = nothing was returned) then we will not play anything. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Array of child animations /// /// /// JavaScript that should evaluate to the index of the appropriate = child animation to play. If this returns an index outside the bounds of = the child animations array, then nothing is played. /// /// Case $AA.CaseAnimation.initializeBase(this, [target, duration, fps, = animations]); // Condition to determine which index we will play this._selectScript =3D selectScript; } $AA.CaseAnimation.prototype =3D { getSelectedIndex : function() { /// /// Get the index of the animation that is selected to be = played. If this returns an index outside the bounds of /// the child animations array, then nothing is played. /// /// /// Index of the selected child animation to play /// var selected =3D -1; if (this._selectScript && this._selectScript.length > 0) { try { var result =3D eval(this._selectScript) if (result !=3D=3D undefined) selected =3D result; } catch (ex) { } } return selected; }, =20 get_selectScript : function() { /// /// JavaScript that should evaluate to the index of the = appropriate child animation to play. If this returns an index outside = the bounds of the child animations array, then nothing is played. /// return this._selectScript; }, set_selectScript : function(value) { if (this._selectScript !=3D value) { this._selectScript =3D value; this.raisePropertyChanged('selectScript'); } } } $AA.CaseAnimation.registerClass('AjaxControlToolkit.Animation.CaseAnimati= on', $AA.SelectionAnimation); $AA.registerAnimation('case', $AA.CaseAnimation); $AA.FadeEffect =3D function() { /// /// The FadeEffect enumeration determines whether a fade animation = is used to fade in or fade out. /// /// /// throw Error.invalidOperation(); } $AA.FadeEffect.prototype =3D { FadeIn : 0, FadeOut : 1 } $AA.FadeEffect.registerEnum("AjaxControlToolkit.Animation.FadeEffect", = false); $AA.FadeAnimation =3D function(target, duration, fps, effect, = minimumOpacity, maximumOpacity, forceLayoutInIE) { /// /// The FadeAnimation is used to fade an element in or = out of view, depending on the /// provided , by settings its opacity. /// The minimum and maximum opacity values can be specified to = precisely control the fade. /// You may also consider using or /// = if you know the only direction you /// are fading. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Determine whether to fade the element in or fade the element = out. The possible values are FadeIn /// and FadeOut. The default value is = FadeOut. /// /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 0. /// /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 1. /// /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user has = ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// /// Fade $AA.FadeAnimation.initializeBase(this, [target, duration, fps]); // The effect determines whether or not we fade in or out this._effect =3D (effect !=3D=3D undefined) ? effect : = $AA.FadeEffect.FadeIn; =20 // Maximum and minimum opacities default to 100% and 0% this._max =3D (maximumOpacity !=3D=3D undefined) ? maximumOpacity : = 1; this._min =3D (minimumOpacity !=3D=3D undefined) ? minimumOpacity : = 0; =20 // Starting and ending opacities this._start =3D this._min; this._end =3D this._max; =20 // Whether the a layout has already been created (to work around IE = problems) this._layoutCreated =3D false; // Whether or not we should force a layout to be created for IE by = giving it a width // and setting its background color (the latter is required in case = the user has ClearType enabled). // = http://msdn.microsoft.com/library/default.asp?url=3D/workshop/author/filt= er/reference/filters/alpha.asp this._forceLayoutInIE =3D (forceLayoutInIE =3D=3D=3D undefined || = forceLayoutInIE =3D=3D=3D null) ? true : forceLayoutInIE; =20 // Current target of the animation that is cached before the = animation plays (since looking up // the target could mean walking all the way up to the root of the = animation's tree, which we don't // want to do for every step of the animation) this._currentTarget =3D null; =20 // Properly set up the min/max values provided by the constructor this._resetOpacities(); } $AA.FadeAnimation.prototype =3D { _resetOpacities : function() { /// /// Set the starting and ending opacity values based on the = effect (i.e. when we're fading /// in we go from _min to _max, but we = go _max to /// _min when fading out) /// /// if (this._effect =3D=3D $AA.FadeEffect.FadeIn) { this._start =3D this._min; this._end =3D this._max; } else { this._start =3D this._max; this._end =3D this._min; } }, =20 _createLayout : function() { /// /// Create a layout when using Internet Explorer (which entails = setting a width and also /// a background color if it currently has neither) /// /// var element =3D this._currentTarget; if (element) { // Get the original width/height/back color var originalWidth =3D = CommonToolkitScripts.getCurrentStyle(element, 'width'); var originalHeight =3D = CommonToolkitScripts.getCurrentStyle(element, 'height'); var originalBackColor =3D = CommonToolkitScripts.getCurrentStyle(element, 'backgroundColor'); // Set the width which will force the creation of a layout if ((!originalWidth || originalWidth =3D=3D '' || = originalWidth =3D=3D 'auto') && (!originalHeight || originalHeight =3D=3D '' || = originalHeight =3D=3D 'auto')) { element.style.width =3D element.offsetWidth + 'px'; } =20 // Set the back color to avoid ClearType problems if (!originalBackColor || originalBackColor =3D=3D '' || = originalBackColor =3D=3D 'transparent' || originalBackColor =3D=3D = 'rgba(0, 0, 0, 0)') { element.style.backgroundColor =3D = CommonToolkitScripts.getInheritedBackgroundColor(element); } =20 // Mark that we've created the layout so we only do it once this._layoutCreated =3D true; } }, =20 onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// =20 $AA.FadeAnimation.callBaseMethod(this, 'onStart'); =20 this._currentTarget =3D this.get_target(); this.setValue(this._start); =20 // Force the creation of a layout in IE if we're supposed to and = the current browser is Internet Explorer if (this._forceLayoutInIE && !this._layoutCreated && = Sys.Browser.agent =3D=3D Sys.Browser.InternetExplorer) { this._createLayout(); } }, =20 getAnimatedValue : function(percentage) { /// /// Determine the current opacity after the given percentage of = its duration has elapsed /// /// Percentage of the = animation already complete /// /// Current opacity after the given percentage of its duration = has elapsed that will /// be passed to setValue /// return this.interpolate(this._start, this._end, percentage); }, =20 setValue : function(value) { /// /// Set the current opacity of the element. /// /// /// Current opacity (as retreived from = getAnimatedValue) /// /// /// /// This method will be replaced by a dynamically generated = function that requires no logic /// to determine whether it should use filters or the style's = opacity. /// if (this._currentTarget) { CommonToolkitScripts.setElementOpacity(this._currentTarget, = value); } }, =20 // set_target : function(value) { // /// // /// Override the target property to dynamically = create the setValue function. // /// // /// // /// Do not set this property in a generic Xml animation = description. It will be set automatically // /// using either the extender's TargetControlID or the = AnimationTarget property. // /// // $AA.FadeAnimation.callBaseMethod(this, 'set_target', [value]); // =20 // var element =3D value; // if (element) { // var filters =3D element.filters; // if (filters) { // var alphaFilter =3D null; // if (filters.length !=3D=3D 0) { // alphaFilter =3D = filters['DXImageTransform.Microsoft.Alpha']; // } // if (!alphaFilter) { // element.style.filter =3D = 'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (this._start * = 100) + ')'; // alphaFilter =3D = filters['DXImageTransform.Microsoft.Alpha']; // } // if (alphaFilter) { // this.setValue =3D function(val) { = alphaFilter.opacity =3D val * 100; } // } else { // this.setValue =3D function(val) { // element.style.filter =3D = 'progid:DXImageTransform.Microsoft.Alpha(opacity=3D' + (val * 100) + = ')'; // }; // } // } // else { // this.setValue =3D function(val) { = element.style.opacity =3D val; }; // } // } // }, =20 get_effect : function() { /// /// Determine whether to fade the element in or fade the element = out. The possible values are /// FadeIn and FadeOut. The default = value is FadeOut. /// return this._effect; }, set_effect : function(value) { value =3D this._getEnum(value, $AA.FadeEffect); if (this._effect !=3D value) { this._effect =3D value; this._resetOpacities(); this.raisePropertyChanged('effect'); } }, =20 get_minimumOpacity : function() { /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. /// The default value is 0. /// return this._min; }, set_minimumOpacity : function(value) { value =3D this._getFloat(value); if (this._min !=3D value) { this._min =3D value; this._resetOpacities(); this.raisePropertyChanged('minimumOpacity'); } }, =20 get_maximumOpacity : function() { /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. /// The default value is 1. /// return this._max; }, set_maximumOpacity : function(value) { value =3D this._getFloat(value); if (this._max !=3D value) { this._max =3D value; this._resetOpacities(); this.raisePropertyChanged('maximumOpacity'); } }, =20 get_forceLayoutInIE : function() { /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user = has ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// return this._forceLayoutInIE; }, set_forceLayoutInIE : function(value) { value =3D this._getBoolean(value); if (this._forceLayoutInIE !=3D value) { this._forceLayoutInIE =3D value; this.raisePropertyChanged('forceLayoutInIE'); } }, =20 set_startValue : function(value) { /// /// Set the start value (so that child animations can set the = current opacity as the start value when fading in or out) /// value =3D this._getFloat(value); this._start =3D value; } } $AA.FadeAnimation.registerClass('AjaxControlToolkit.Animation.FadeAnimati= on', $AA.Animation); $AA.registerAnimation('fade', $AA.FadeAnimation); $AA.FadeInAnimation =3D function(target, duration, fps, minimumOpacity, = maximumOpacity, forceLayoutInIE) { /// /// The FadeInAnimation will fade the target in by = moving from hidden to visible. /// It starts the animation the target's current opacity. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 0. /// /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 1. /// /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user has = ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// /// FadeIn $AA.FadeInAnimation.initializeBase(this, [target, duration, fps, = $AA.FadeEffect.FadeIn, minimumOpacity, maximumOpacity, = forceLayoutInIE]); } $AA.FadeInAnimation.prototype =3D { onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// $AA.FadeInAnimation.callBaseMethod(this, 'onStart'); =20 if (this._currentTarget) { = this.set_startValue(CommonToolkitScripts.getElementOpacity(this._currentT= arget)); } } } $AA.FadeInAnimation.registerClass('AjaxControlToolkit.Animation.FadeInAni= mation', $AA.FadeAnimation); $AA.registerAnimation('fadeIn', $AA.FadeInAnimation); $AA.FadeOutAnimation =3D function(target, duration, fps, minimumOpacity, = maximumOpacity, forceLayoutInIE) { /// /// The FadeInAnimation will fade the element out by moving from = visible to hidden. It starts the animation /// at the element's current opacity. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 0. /// /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 1. /// /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user has = ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// /// FadeOut $AA.FadeOutAnimation.initializeBase(this, [target, duration, fps, = $AA.FadeEffect.FadeOut, minimumOpacity, maximumOpacity, = forceLayoutInIE]); } $AA.FadeOutAnimation.prototype =3D { onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// $AA.FadeOutAnimation.callBaseMethod(this, 'onStart'); if (this._currentTarget) { = this.set_startValue(CommonToolkitScripts.getElementOpacity(this._currentT= arget)); } } } $AA.FadeOutAnimation.registerClass('AjaxControlToolkit.Animation.FadeOutA= nimation', $AA.FadeAnimation); $AA.registerAnimation('fadeOut', $AA.FadeOutAnimation); $AA.PulseAnimation =3D function(target, duration, fps, iterations, = minimumOpacity, maximumOpacity, forceLayoutInIE) { /// /// The PulseAnimation fades an element in and our repeatedly to = create a pulsating /// effect. The iterations determines how many pulses there will be = (which defaults /// to three, but it will repeat infinitely if given zero or less). = The duration /// property defines the duration of each fade in or fade out, not = the duration of /// the animation as a whole. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Number of times to repeatedly play the sequence. If zero or = less iterations are specified, the sequence /// will repeat forever. The default value is 1 iteration. /// /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 0. /// /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 1. /// /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user has = ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// /// Pulse $AA.PulseAnimation.initializeBase(this, [target, duration, fps, = null, ((iterations !=3D=3D undefined) ? iterations : 3)]); // Create the FadeOutAnimation this._out =3D new $AA.FadeOutAnimation(target, duration, fps, = minimumOpacity, maximumOpacity, forceLayoutInIE); this.add(this._out); =20 // Create the FadeInAnimation this._in =3D new $AA.FadeInAnimation(target, duration, fps, = minimumOpacity, maximumOpacity, forceLayoutInIE); this.add(this._in); } $AA.PulseAnimation.prototype =3D { =20 get_minimumOpacity : function() { /// /// Minimum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 0. /// return this._out.get_minimumOpacity(); }, set_minimumOpacity : function(value) { value =3D this._getFloat(value); this._out.set_minimumOpacity(value); this._in.set_minimumOpacity(value); this.raisePropertyChanged('minimumOpacity'); }, =20 get_maximumOpacity : function() { /// /// Maximum opacity to use when fading in or out. Its value can = range from between 0 to 1. The default value is 1. /// return this._out.get_maximumOpacity(); }, set_maximumOpacity : function(value) { value =3D this._getFloat(value); this._out.set_maximumOpacity(value); this._in.set_maximumOpacity(value); this.raisePropertyChanged('maximumOpacity'); }, =20 get_forceLayoutInIE : function() { /// /// Whether or not we should force a layout to be created for = Internet Explorer by giving it a width and setting its /// background color (the latter is required in case the user = has ClearType enabled). The default value is true. /// This is obviously ignored when working in other browsers. /// return this._out.get_forceLayoutInIE(); }, set_forceLayoutInIE : function(value) { value =3D this._getBoolean(value); this._out.set_forceLayoutInIE(value); this._in.set_forceLayoutInIE(value); this.raisePropertyChanged('forceLayoutInIE'); }, =20 set_duration : function(value) { /// /// Override the duration property /// value =3D this._getFloat(value); $AA.PulseAnimation.callBaseMethod(this, 'set_duration', = [value]); this._in.set_duration(value); this._out.set_duration(value); }, =20 set_fps : function(value) { /// /// Override the fps property /// value =3D this._getInteger(value); $AA.PulseAnimation.callBaseMethod(this, 'set_fps', [value]); this._in.set_fps(value); this._out.set_fps(value); } =20 } $AA.PulseAnimation.registerClass('AjaxControlToolkit.Animation.PulseAnima= tion', $AA.SequenceAnimation); $AA.registerAnimation('pulse', $AA.PulseAnimation); $AA.PropertyAnimation =3D function(target, duration, fps, property, = propertyKey) { /// /// The PropertyAnimation is a useful base animation = that will assign the value from /// getAnimatedValue to a specified = property. You can provide the name of /// a property alongside an optional = propertyKey (which indicates the value /// property[propertyKey], like = style['backgroundColor']). /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Property of the target element to set when = animating /// /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// /// Property $AA.PropertyAnimation.initializeBase(this, [target, duration, fps]); // Name of the property to set this._property =3D property; =20 // Optional Key of the property to set (i.e., if the property were = "style" then // this might be "backgroundColor") this._propertyKey =3D propertyKey; =20 // Current target of the animation that is cached before the = animation plays (since looking up // the target could mean walking all the way up to the root of the = animation's tree, which we don't // want to do for every step of the animation) this._currentTarget =3D null; } $AA.PropertyAnimation.prototype =3D { onStart : function() { /// /// The onStart method is called just before the = animation is played each time. /// /// $AA.PropertyAnimation.callBaseMethod(this, 'onStart'); this._currentTarget =3D this.get_target(); }, setValue : function(value) { /// /// Set the current value of the property /// /// /// Value to assign /// /// var element =3D this._currentTarget; if (element && this._property && this._property.length > 0) {=20 if (this._propertyKey && this._propertyKey.length > 0 && = element[this._property]) { element[this._property][this._propertyKey] =3D value; } else { element[this._property] =3D value; } } // Sys.TypeDescriptor.setProperty(this.get_target(), = this._property, value, this._propertyKey); }, =20 getValue : function() { /// /// Get the current value from the property /// /// /// Current value of the property /// var element =3D this.get_target(); if (element && this._property && this._property.length > 0) {=20 var property =3D element[this._property]; if (property) { if (this._propertyKey && this._propertyKey.length > 0) { return property[this._propertyKey]; } return property; } } return null; // return Sys.TypeDescriptor.getProperty(this.get_target(), = this._property, this._propertyKey); }, =20 get_property : function() { /// /// Property of the target element to set when = animating /// return this._property; }, set_property : function(value) { if (this._property !=3D value) { this._property =3D value; this.raisePropertyChanged('property'); } }, =20 get_propertyKey : function() { /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// return this._propertyKey; }, set_propertyKey : function(value) { if (this._propertyKey !=3D value) { this._propertyKey =3D value; this.raisePropertyChanged('propertyKey'); } } } $AA.PropertyAnimation.registerClass('AjaxControlToolkit.Animation.Propert= yAnimation', $AA.Animation); $AA.registerAnimation('property', $AA.PropertyAnimation); $AA.DiscreteAnimation =3D function(target, duration, fps, property, = propertyKey, values) { /// /// The DiscreteAnimation inherits from /// and sets the value of the property to the elements = in a provided array of values. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Property of the target element to set when = animating /// /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// /// /// Array of possible values of the property that will be iterated = over as the animation is played /// /// Discrete $AA.DiscreteAnimation.initializeBase(this, [target, duration, fps, = property, propertyKey]); // Values to assign to the property this._values =3D (values && values.length) ? values : []; } $AA.DiscreteAnimation.prototype =3D { getAnimatedValue : function(percentage) { /// /// Assign the value whose index corresponds to the current = percentage /// /// /// Percentage of the animation already complete /// /// /// State of the animation after the given percentage of its = duration has elapsed that will /// be passed to setValue /// var index =3D Math.floor(this.interpolate(0, this._values.length = - 1, percentage)); return this._values[index]; }, =20 get_values : function() { /// /// Array of possible values of the property that will be = iterated over as the animation is played /// return this._values; }, set_values : function(value) { if (this._values !=3D value) { this._values =3D value; this.raisePropertyChanged('values'); } } } $AA.DiscreteAnimation.registerClass('AjaxControlToolkit.Animation.Discret= eAnimation', $AA.PropertyAnimation); $AA.registerAnimation('discrete', $AA.DiscreteAnimation); $AA.InterpolatedAnimation =3D function(target, duration, fps, property, = propertyKey, startValue, endValue) { /// /// The InterpolatedAnimation assigns a range of values = between startValue /// and endValue to the designated property. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Property of the target element to set when = animating. The default value is 'style'. /// /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// /// /// Start of the range of values /// /// /// End of the range of values /// /// Interpolated $AA.InterpolatedAnimation.initializeBase(this, [target, duration, = fps, ((property !=3D=3D undefined) ? property : 'style'), propertyKey]); // Start and end values this._startValue =3D startValue; this._endValue =3D endValue; } $AA.InterpolatedAnimation.prototype =3D { get_startValue : function() { /// /// Start of the range of values /// return this._startValue; }, set_startValue : function(value) { value =3D this._getFloat(value); if (this._startValue !=3D value) { this._startValue =3D value; this.raisePropertyChanged('startValue'); } }, =20 get_endValue : function() { /// /// End of the range of values /// return this._endValue; }, set_endValue : function(value) { value =3D this._getFloat(value); if (this._endValue !=3D value) { this._endValue =3D value; this.raisePropertyChanged('endValue'); } } =20 } $AA.InterpolatedAnimation.registerClass('AjaxControlToolkit.Animation.Int= erpolatedAnimation', $AA.PropertyAnimation); $AA.registerAnimation('interpolated', $AA.InterpolatedAnimation); $AA.ColorAnimation =3D function(target, duration, fps, property, = propertyKey, startValue, endValue) { /// /// The ColorAnimation transitions the value of the = property between /// two colors (although it does ignore the alpha channel). The = colors must be 7-character hex strings /// (like #246ACF). /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Property of the target element to set when = animating. The default value is 'style'. /// /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// /// /// Start of the range of colors /// /// /// End of the range of colors /// /// Color $AA.ColorAnimation.initializeBase(this, [target, duration, fps, = property, propertyKey, startValue, endValue]); =20 // Cached start/end RBG triplets this._start =3D null; this._end =3D null; =20 // Flags indicating whether each dimension of color will be = interpolated this._interpolateRed =3D false; this._interpolateGreen =3D false; this._interpolateBlue =3D false; } $AA.ColorAnimation.prototype =3D { onStart : function() { /// /// Determine which dimensions of color will be animated /// /// $AA.ColorAnimation.callBaseMethod(this, 'onStart'); =20 this._start =3D = $AA.ColorAnimation.getRGB(this.get_startValue()); this._end =3D $AA.ColorAnimation.getRGB(this.get_endValue()); =20 this._interpolateRed =3D (this._start.Red !=3D this._end.Red); this._interpolateGreen =3D (this._start.Green !=3D = this._end.Green); this._interpolateBlue =3D (this._start.Blue !=3D = this._end.Blue); }, =20 getAnimatedValue : function(percentage) { /// /// Get the interpolated color values /// /// /// Percentage of the animation already complete /// /// /// Current color formatted as a 7-character hex string (like = #246ACF). /// var r =3D this._start.Red; var g =3D this._start.Green; var b =3D this._start.Blue; =20 if (this._interpolateRed) r =3D Math.round(this.interpolate(r, this._end.Red, = percentage)); =20 if (this._interpolateGreen) g =3D Math.round(this.interpolate(g, this._end.Green, = percentage)); =20 if (this._interpolateBlue) b =3D Math.round(this.interpolate(b, this._end.Blue, = percentage)); =20 return $AA.ColorAnimation.toColor(r, g, b); }, =20 set_startValue : function(value) { /// /// Starting color of the transition formatted as a 7-character = hex string (like #246ACF). /// if (this._startValue !=3D value) { this._startValue =3D value; this.raisePropertyChanged('startValue'); } }, =20 set_endValue : function(value) { /// /// Ending color of the transition formatted as a 7-character = hex string (like #246ACF). /// if (this._endValue !=3D value) { this._endValue =3D value; this.raisePropertyChanged('endValue'); } } =20 } $AA.ColorAnimation.getRGB =3D function(color) { /// /// Convert the color to an RGB triplet /// /// /// Color formatted as a 7-character hex string (like = #246ACF) /// /// /// Object representing the color with Red, = Green, and Blue properties. /// if (!color || color.length !=3D 7) { throw = String.format(AjaxControlToolkit.Resources.Animation_InvalidColor, = color); } return { 'Red': parseInt(color.substr(1,2), 16), 'Green': parseInt(color.substr(3,2), 16), 'Blue': parseInt(color.substr(5,2), 16) }; } $AA.ColorAnimation.toColor =3D function(red, green, blue) { /// /// Convert an RBG triplet into a 7-character hex string (like = #246ACF) /// /// /// Value of the color's red dimension /// /// /// Value of the color's green dimension /// /// /// Value of the color's blue dimension /// /// /// Color as a 7-character hex string (like #246ACF) /// var r =3D red.toString(16); var g =3D green.toString(16); var b =3D blue.toString(16); if (r.length =3D=3D 1) r =3D '0' + r; if (g.length =3D=3D 1) g =3D '0' + g; if (b.length =3D=3D 1) b =3D '0' + b; return '#' + r + g + b; } $AA.ColorAnimation.registerClass('AjaxControlToolkit.Animation.ColorAnima= tion', $AA.InterpolatedAnimation); $AA.registerAnimation('color', $AA.ColorAnimation); $AA.LengthAnimation =3D function(target, duration, fps, property, = propertyKey, startValue, endValue, unit) { /// /// The LengthAnimation is identical to /// except it adds a unit to the value before assigning = it to the property. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// Property of the target element to set when = animating. The default value is 'style'. /// /// /// Optional key of the property to be set (which indicates the = value property[propertyKey], like style['backgroundColor']). Note that = for the style property, the key must be in a JavaScript friendly format = (i.e. backgroundColor instead of background-color). /// /// /// Start of the range of values /// /// /// End of the range of values /// /// /// Unit of the interpolated values. The default value is = 'px'. /// /// Length $AA.LengthAnimation.initializeBase(this, [target, duration, fps, = property, propertyKey, startValue, endValue]); =20 // Unit of length (which defaults to px) this._unit =3D (unit !=3D null) ? unit : 'px'; } $AA.LengthAnimation.prototype =3D { getAnimatedValue : function(percentage) { /// /// Get the interpolated length value /// /// /// Percentage of the animation already complete /// /// /// Interpolated length /// var value =3D this.interpolate(this.get_startValue(), = this.get_endValue(), percentage); return Math.round(value) + this._unit; }, =20 get_unit : function() { /// /// Unit of the interpolated values. The default value is = 'px'. /// return this._unit; }, set_unit : function(value) { if (this._unit !=3D value) { this._unit =3D value; this.raisePropertyChanged('unit'); } } } $AA.LengthAnimation.registerClass('AjaxControlToolkit.Animation.LengthAni= mation', $AA.InterpolatedAnimation); $AA.registerAnimation('length', $AA.LengthAnimation); $AA.MoveAnimation =3D function(target, duration, fps, horizontal, = vertical, relative, unit) { /// /// The MoveAnimation is used to move the = target element. If the /// relative flag is set to true, then it = treats the horizontal /// and vertical properties as offsets to move the = element. If the relative /// flag is false, then it will treat the = horizontal and vertical /// properties as coordinates on the page where the = target element should be moved. It is /// important to note that the target must be = positioned (i.e. absolutely) so /// that settings its top/left style = attributes will change its location. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// If relative is true, this is the = offset to move horizontally. Otherwise this is the x /// coordinate on the page where the target should be = moved. /// /// /// If relative is true, this is the = offset to move vertically. Otherwise this is the y /// coordinate on the page where the target should be = moved. /// /// /// true if we are moving relative to the current = position, false if we are moving absolutely /// /// /// Length unit for the size of the target. The default = value is 'px'. /// /// Move $AA.MoveAnimation.initializeBase(this, [target, duration, fps, = null]); // Distance to move horizontally and vertically this._horizontal =3D horizontal ? horizontal : 0; this._vertical =3D vertical ? vertical : 0; this._relative =3D (relative =3D=3D=3D undefined) ? true : relative; =20 // Length animations representing the movememnts this._horizontalAnimation =3D new $AA.LengthAnimation(target, = duration, fps, 'style', 'left', null, null, unit); this._verticalAnimation =3D new $AA.LengthAnimation(target, = duration, fps, 'style', 'top', null, null, unit); this.add(this._verticalAnimation); this.add(this._horizontalAnimation); } $AA.MoveAnimation.prototype =3D { =20 onStart : function() { /// /// Use the target's current position as the = starting point for the animation /// /// $AA.MoveAnimation.callBaseMethod(this, 'onStart'); =20 // Set the start and end values of the animations by getting // the element's current position and applying the offsets var element =3D this.get_target(); this._horizontalAnimation.set_startValue(element.offsetLeft); this._horizontalAnimation.set_endValue(this._relative ? = element.offsetLeft + this._horizontal : this._horizontal); this._verticalAnimation.set_startValue(element.offsetTop);=20 this._verticalAnimation.set_endValue(this._relative ? = element.offsetTop + this._vertical : this._vertical); }, =20 get_horizontal : function() { /// /// If relative is true, this is the = offset to move horizontally. Otherwise this is the x /// coordinate on the page where the target should = be moved. /// return this._horizontal; }, set_horizontal : function(value) { value =3D this._getFloat(value); if (this._horizontal !=3D value) { this._horizontal =3D value; this.raisePropertyChanged('horizontal'); } }, =20 get_vertical : function() { /// /// If relative is true, this is the = offset to move vertically. Otherwise this is the y /// coordinate on the page where the target should = be moved. /// return this._vertical; }, set_vertical : function(value) { value =3D this._getFloat(value); if (this._vertical !=3D value) { this._vertical =3D value; this.raisePropertyChanged('vertical'); } }, =20 get_relative : function() { /// /// true if we are moving relative to the current = position, false if we are moving absolutely /// return this._relative; }, set_relative : function(value) { value =3D this._getBoolean(value); if (this._relative !=3D value) { this._relative =3D value; this.raisePropertyChanged('relative'); } }, =20 get_unit : function() { /// /// Length unit for the size of the target. The = default value is 'px'. /// this._horizontalAnimation.get_unit(); }, set_unit : function(value) { var unit =3D this._horizontalAnimation.get_unit(); if (unit !=3D value) { this._horizontalAnimation.set_unit(value); this._verticalAnimation.set_unit(value); this.raisePropertyChanged('unit'); } } } $AA.MoveAnimation.registerClass('AjaxControlToolkit.Animation.MoveAnimati= on', $AA.ParallelAnimation); $AA.registerAnimation('move', $AA.MoveAnimation); $AA.ResizeAnimation =3D function(target, duration, fps, width, height, = unit) { /// /// The ResizeAnimation changes the size of the = target from its /// current value to the specified width and = height. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// New width of the target /// /// /// New height of the target /// /// /// Length unit for the size of the target. The default = value is 'px'. /// /// Resize $AA.ResizeAnimation.initializeBase(this, [target, duration, fps, = null]); // New size of the element this._width =3D width; this._height =3D height; =20 // Animations to set the size across both dimensions this._horizontalAnimation =3D new $AA.LengthAnimation(target, = duration, fps, 'style', 'width', null, null, unit); this._verticalAnimation =3D new $AA.LengthAnimation(target, = duration, fps, 'style', 'height', null, null, unit); this.add(this._horizontalAnimation); this.add(this._verticalAnimation); } $AA.ResizeAnimation.prototype =3D { =20 onStart : function() { /// /// Use the target's current size as the starting = point for the animation /// /// $AA.ResizeAnimation.callBaseMethod(this, 'onStart'); =20 // Set the start and end values of the animations by getting // the element's current width and height var element =3D this.get_target(); this._horizontalAnimation.set_startValue(element.offsetWidth); this._verticalAnimation.set_startValue(element.offsetHeight); this._horizontalAnimation.set_endValue((this._width !=3D=3D null = && this._width !=3D=3D undefined) ? this._width : element.offsetWidth); this._verticalAnimation.set_endValue((this._height !=3D=3D null = && this._height !=3D=3D undefined) ? this._height : element.offsetHeight); }, =20 get_width : function() { /// /// New width of the target /// return this._width; }, set_width : function(value) { value =3D this._getFloat(value); if (this._width !=3D value) { this._width =3D value; this.raisePropertyChanged('width'); } }, =20 get_height : function() { /// /// New height of the target /// return this._height; }, set_height : function(value) { value =3D this._getFloat(value); if (this._height !=3D value) { this._height =3D value; =20 this.raisePropertyChanged('height'); } }, =20 get_unit : function() { /// /// Length unit for the size of the target. The = default value is 'px'. /// this._horizontalAnimation.get_unit(); }, set_unit : function(value) { var unit =3D this._horizontalAnimation.get_unit(); if (unit !=3D value) { this._horizontalAnimation.set_unit(value); this._verticalAnimation.set_unit(value); this.raisePropertyChanged('unit'); } } } $AA.ResizeAnimation.registerClass('AjaxControlToolkit.Animation.ResizeAni= mation', $AA.ParallelAnimation); $AA.registerAnimation('resize', $AA.ResizeAnimation); $AA.ScaleAnimation =3D function(target, duration, fps, scaleFactor, = unit, center, scaleFont, fontUnit) { /// /// The ScaleAnimation scales the size of the = target element by the given scaleFactor /// (i.e. a scaleFactor of .5 will shrink = it in half and a scaleFactor of 2.0 /// will double it). If scaleFont is = true, the size of the font will also scale with the = element. If /// center is true, then the element's = center will not move as it is scaled. It is important to note that /// the target must be positioned (i.e. absolutely) so that setting = its top/left properties will change /// its location in order for center to have an effect. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 1. /// /// /// Number of steps per second. The default is 25. /// /// /// The amount to scale the target (a = scaleFactor of .5 will /// shrink it in half and a scaleFactor of = 2.0 will double it). The default value is /// 1, which does no scaling. /// /// /// Length unit for the size of the target. The = default value is 'px'. /// /// /// Whether the target should stay centered while = scaling /// /// /// Whether the font should be scaled along with the size /// /// /// Unit of the font, which is only used if scaleFont = is true. /// The default value is 'pt'. /// /// Scale $AA.ScaleAnimation.initializeBase(this, [target, duration, fps]); // Percentage to scale this._scaleFactor =3D (scaleFactor !=3D=3D undefined) ? scaleFactor = : 1; this._unit =3D (unit !=3D=3D undefined) ? unit : 'px'; =20 // Center the content while scaling this._center =3D center; =20 // Scale the font size as well this._scaleFont =3D scaleFont; this._fontUnit =3D (fontUnit !=3D=3D undefined) ? fontUnit : 'pt'; =20 // Initial values this._element =3D null; this._initialHeight =3D null; this._initialWidth =3D null; this._initialTop =3D null; this._initialLeft =3D null; this._initialFontSize =3D null; } $AA.ScaleAnimation.prototype =3D { =20 getAnimatedValue : function(percentage) { /// /// Get the amount to scale the target /// /// /// Percentage of the animation already complete /// /// /// Percentage to scale the target /// return this.interpolate(1.0, this._scaleFactor, percentage); }, =20 onStart : function() { /// /// Cache the initial size because it will be used to determine = how much to scale the element at each step of the animation /// /// $AA.ScaleAnimation.callBaseMethod(this, 'onStart'); =20 this._element =3D this.get_target(); if (this._element) { this._initialHeight =3D this._element.offsetHeight; this._initialWidth =3D this._element.offsetWidth; if (this._center) { this._initialTop =3D this._element.offsetTop; this._initialLeft =3D this._element.offsetLeft; } if (this._scaleFont) { // Note: we're assuming this is in the same units as = fontUnit this._initialFontSize =3D parseFloat( CommonToolkitScripts.getCurrentStyle(this._element, = 'fontSize')); } } }, =20 setValue : function(scale) { /// /// Scale the target by the given percentage /// /// /// Percentage to scale the target /// /// if (this._element) { var width =3D Math.round(this._initialWidth * scale); var height =3D Math.round(this._initialHeight * scale); this._element.style.width =3D width + this._unit;=20 this._element.style.height =3D height + this._unit; =20 if (this._center) { this._element.style.top =3D (this._initialTop + Math.round((this._initialHeight - height) / 2)) + = this._unit; this._element.style.left =3D (this._initialLeft + Math.round((this._initialWidth - width) / 2)) + = this._unit; } =20 if (this._scaleFont) { var size =3D this._initialFontSize * scale; if (this._fontUnit =3D=3D 'px' || this._fontUnit =3D=3D = 'pt') { size =3D Math.round(size); } this._element.style.fontSize =3D size + this._fontUnit; } } }, =20 onEnd : function() { /// /// Wipe the cached values after the animation completes /// /// this._element =3D null; this._initialHeight =3D null; this._initialWidth =3D null; this._initialTop =3D null; this._initialLeft =3D null; this._initialFontSize =3D null; $AA.ScaleAnimation.callBaseMethod(this, 'onEnd'); }, =20 get_scaleFactor : function() { /// /// The amount to scale the target (a = scaleFactor of .5 will /// shrink it in half and a scaleFactor of = 2.0 will double it). The default value is /// 1, which does no scaling. /// return this._scaleFactor; }, set_scaleFactor : function(value) { value =3D this._getFloat(value); if (this._scaleFactor !=3D value) { this._scaleFactor =3D value; this.raisePropertyChanged('scaleFactor'); } }, =20 get_unit : function() { /// /// Length unit for the size of the target. The = default value is 'px'. /// return this._unit; }, set_unit : function(value) { if (this._unit !=3D value) { this._unit =3D value; this.raisePropertyChanged('unit'); } }, =20 get_center : function() { /// /// Whether the target should stay centered while = scaling /// return this._center; }, set_center : function(value) { value =3D this._getBoolean(value); if (this._center !=3D value) { this._center =3D value; this.raisePropertyChanged('center'); } }, =20 get_scaleFont : function() { /// /// Whether the font should be scaled along with the size /// return this._scaleFont; }, set_scaleFont : function(value) { value =3D this._getBoolean(value); if (this._scaleFont !=3D value) { this._scaleFont =3D value; this.raisePropertyChanged('scaleFont'); } }, =20 get_fontUnit : function() { /// /// Unit of the font, which is only used if = scaleFont is true. /// The default value is 'pt'. /// return this._fontUnit; }, set_fontUnit : function(value) { if (this._fontUnit !=3D value) {=20 this._fontUnit =3D value;=20 this.raisePropertyChanged('fontUnit'); } } } $AA.ScaleAnimation.registerClass('AjaxControlToolkit.Animation.ScaleAnima= tion', $AA.Animation); $AA.registerAnimation('scale', $AA.ScaleAnimation); $AA.Action =3D function(target, duration, fps) { /// /// Action is a base class for all "non-animating" = animations that provides empty implementations /// for abstract methods and adds a doAction method = that will be called to perform the action's /// operation. While regular animations perform an operation in a = sequence of small steps spread over an interval, /// the actions perform a single operation instantaneously. By = default, all actions have a duration /// of zero. The actions are very useful for defining complex = animations. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// Action $AA.Action.initializeBase(this, [target, duration, fps]); // Set the duration to 0 if it wasn't specified if (duration =3D=3D=3D undefined) { this.set_duration(0); } } $AA.Action.prototype =3D { =20 onEnd : function() { /// /// Call the doAction method when the animation = completes /// /// this.doAction(); $AA.Action.callBaseMethod(this, 'onEnd'); }, =20 doAction : function() { /// /// The doAction method must be implemented by all = actions /// /// throw Error.notImplemented(); }, =20 getAnimatedValue : function() { /// /// Empty implementation of required abstract method /// }, setValue : function() { /// /// Empty implementation of required abstract method /// } } $AA.Action.registerClass('AjaxControlToolkit.Animation.Action', = $AA.Animation); $AA.registerAnimation('action', $AA.Action); $AA.EnableAction =3D function(target, duration, fps, enabled) { /// /// The EnableAction changes whether or not the = target is disabled. /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// /// Whether or not the target is disabled. The default = value is true. /// /// EnableAction $AA.EnableAction.initializeBase(this, [target, duration, fps]); // Whether to enable or disable this._enabled =3D (enabled !=3D=3D undefined) ? enabled : true; } $AA.EnableAction.prototype =3D { doAction : function() { /// /// Set the enabled property of the target /// /// =09 var element =3D this.get_target(); if (element) { element.disabled =3D !this._enabled; } }, =20 get_enabled : function() { /// /// Whether or not the target is disabled. The = default value is true. /// return this._enabled; }, set_enabled : function(value) { value =3D this._getBoolean(value); if (this._enabled !=3D value) { this._enabled =3D value; this.raisePropertyChanged('enabled'); } } } $AA.EnableAction.registerClass('AjaxControlToolkit.Animation.EnableAction= ', $AA.Action); $AA.registerAnimation('enableAction', $AA.EnableAction); $AA.HideAction =3D function(target, duration, fps) { /// /// The HideAction simply hides the target = from view /// (by setting its style's display attribute to = 'none') /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// HideAction $AA.HideAction.initializeBase(this, [target, duration, fps]); } $AA.HideAction.prototype =3D { doAction : function() { /// /// Hide the target /// /// var element =3D this.get_target(); if (element) { element.style.display =3D 'none'; } } } $AA.HideAction.registerClass('AjaxControlToolkit.Animation.HideAction', = $AA.Action); $AA.registerAnimation('hideAction', $AA.HideAction); $AA.StyleAction =3D function(target, duration, fps, attribute, value) { /// /// The StyleAction is used to set a particular = attribute of the target's style /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// /// Style attribute to set (this must be in a JavaScript friendly = format, i.e. backgroundColor /// instead of background-color) /// /// /// Value to set the attribute /// /// StyleAction $AA.StyleAction.initializeBase(this, [target, duration, fps]); // Style attribute (like "backgroundColor" or "borderWidth" this._attribute =3D attribute; =20 // Value to assign to the style attribute this._value =3D value; =20 } $AA.StyleAction.prototype =3D { doAction : function() { /// /// Assign the value to the style's = attribute /// /// var element =3D this.get_target(); if (element) { element.style[this._attribute] =3D this._value; } }, =20 get_attribute : function() { /// /// Style attribute to set (this must be in a JavaScript = friendly format, i.e. backgroundColor /// instead of background-color) /// return this._attribute; }, set_attribute : function(value) { if (this._attribute !=3D value) { this._attribute =3D value; this.raisePropertyChanged('attribute'); } }, =20 get_value : function() { /// /// Value to set the attribute /// return this._value; }, set_value : function(value) { if (this._value !=3D value) { this._value =3D value; this.raisePropertyChanged('value'); } } } $AA.StyleAction.registerClass('AjaxControlToolkit.Animation.StyleAction',= $AA.Action); $AA.registerAnimation('styleAction', $AA.StyleAction); $AA.OpacityAction =3D function(target, duration, fps, opacity) { /// /// OpacityAction allows you to set the = opacity of the target /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// /// Opacity to set the target /// /// OpacityAction $AA.OpacityAction.initializeBase(this, [target, duration, fps]); =20 // Opacity this._opacity =3D opacity; } $AA.OpacityAction.prototype =3D { doAction : function() { /// /// Set the opacity /// /// var element =3D this.get_target(); if (element) { CommonToolkitScripts.setElementOpacity(element, = this._opacity); } }, =20 get_opacity : function() { /// /// Opacity to set the target /// return this._opacity; }, set_opacity : function(value) { value =3D this._getFloat(value); if (this._opacity !=3D value) { this._opacity =3D value; this.raisePropertyChanged('opacity'); } } } $AA.OpacityAction.registerClass('AjaxControlToolkit.Animation.OpacityActi= on', $AA.Action); $AA.registerAnimation('opacityAction', $AA.OpacityAction); $AA.ScriptAction =3D function(target, duration, fps, script) { /// /// The ScriptAction is used to execute arbitrary = JavaScript /// /// /// Target of the animation /// /// /// Length of the animation in seconds. The default is 0. /// /// /// Number of steps per second. The default is 25. /// /// /// JavaScript to execute /// /// ScriptAction $AA.ScriptAction.initializeBase(this, [target, duration, fps]); // Script to execute this._script =3D script; } $AA.ScriptAction.prototype =3D { doAction : function() { /// /// Execute the script /// /// try { eval(this._script); } catch (ex) { } }, =20 get_script : function() { /// /// JavaScript to execute /// return this._script; }, set_script : function(value) { if (this._script !=3D value) { this._script =3D value; this.raisePropertyChanged('script'); } } } $AA.ScriptAction.registerClass('AjaxControlToolkit.Animation.ScriptAction= ', $AA.Action); $AA.registerAnimation('scriptAction', $AA.ScriptAction); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXBPOP_OxHJ1suISXk4mYtHUIy1CML4-1oUG2PCCIt625g2&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace('AjaxControlToolkit.Threading'); AjaxControlToolkit.DeferredOperation =3D function(delay, context, = callback) { /// /// Used to define a cancellable async operation /// /// the = number of milliseconds to delay execution /// an = object used as the context for the callback method /// The callback method = to execute at the end of the delay =20 this._delay =3D delay; this._context =3D context; this._callback =3D callback; this._completeCallback =3D null; this._errorCallback =3D null; this._timer =3D null; this._callArgs =3D null; this._isComplete =3D false; this._completedSynchronously =3D false; this._asyncResult =3D null; this._exception =3D null; this._throwExceptions =3D true; this._oncomplete$delegate =3D Function.createDelegate(this, = this._oncomplete); =20 // post to ensure that attaching it always gets the port as its = context this.post =3D Function.createDelegate(this, this.post); } AjaxControlToolkit.DeferredOperation.prototype =3D { =20 get_isPending : function() {=20 /// /// Gets whether there is an asynchronous operation pending /// /// =20 return (this._timer !=3D null);=20 }, =20 get_isComplete : function() {=20 /// /// Gets whether the asynchronous operation has completed /// /// =20 return this._isComplete;=20 }, =20 get_completedSynchronously : function() { /// /// Gets whether the operation completed synchronously /// /// =20 return this._completedSynchronously; }, =20 get_exception : function() { /// /// Gets the current exception if there is one /// /// =20 return this._exception; }, =20 get_throwExceptions : function() { /// /// Gets whether to throw exceptions /// /// =20 return this._throwExceptions; }, =20 set_throwExceptions : function(value) { /// /// Sets whether to throw exceptions /// /// True if exceptions = should be thrown, otherwise false =20 this._throwExceptions =3D value; }, =20 get_delay : function() {=20 /// /// Gets the current delay in milliseconds /// /// =20 return this._delay;=20 }, set_delay : function(value) {=20 /// /// Sets the current delay in milliseconds /// /// The = delay in milliseconds =20 this._delay =3D value;=20 }, =20 post : function(args) { /// /// A method that can be directly attached to a delegate /// /// The arguments to the method =20 var ar =3D []; for (var i =3D 0; i < arguments.length; i++) { ar[i] =3D arguments[i]; } this.beginPost(ar, null, null); }, =20 beginPost : function(args, completeCallback, errorCallback) { /// /// Posts a call to an async operation on this port /// /// An array of arguments to = the method /// The callback to execute after the = delayed function completes /// The callback to execute in the = event of an exception in the delayed function =20 // cancel any pending post this.cancel(); =20 // cache the call arguments this._callArgs =3D Array.clone(args || []); this._completeCallback =3D completeCallback; this._errorCallback =3D errorCallback; =20 if (this._delay =3D=3D -1) { =20 // if there is no delay (-1), complete synchronously this._oncomplete(); this._completedSynchronously =3D true; } else { =20 // complete the post on a seperate call after a delay this._timer =3D setTimeout(this._oncomplete$delegate, = this._delay); } },=20 =20 cancel : function() { /// /// Cancels a pending post /// =20 if (this._timer) { clearTimeout(this._timer); this._timer =3D null; } this._callArgs =3D null; this._isComplete =3D false; this._asyncResult =3D null; this._completeCallback =3D null; this._errorCallback =3D null; this._exception =3D null; this._completedSynchronously =3D false; }, =20 complete : function() { /// /// Completes a pending post synchronously /// =20 =20 if (this._timer) { try { this._oncomplete(); } finally { this._completedSynchronously =3D true; } return this._asyncResult; } else if (this._isComplete) { return this._asyncResult; } }, =20 =20 _oncomplete : function() { /// /// Completes a pending post asynchronously /// var args =3D this._callArgs; var completeCallback =3D this._completeCallback; var errorCallback =3D this._errorCallback; =20 // clear the post state this.cancel(); try { // call the post callback if (args) { this._asyncResult =3D = this._callback.apply(this._context, args); } else { this._asyncResult =3D = this._callback.call(this._context); } this._isComplete =3D true; this._completedSynchronously =3D false; if (completeCallback) { completeCallback(this); } } catch (e) { this._isComplete =3D true; this._completedSynchronously =3D false; this._exception =3D e; if (errorCallback) { if (errorCallback(this)) { return; } }=20 if (this._throwExceptions) { throw e; } } } } AjaxControlToolkit.DeferredOperation.registerClass("AjaxControlToolkit.De= ferredOperation"); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.travelnostop.com/ScriptResource.axd?d=Ngbq6e7bLWWq_h9v_Y2j4fA2dVLmTGc-g6cpLojpBXBoww3u48b1BVm7c7iGDNdiF_vp7TIT8nbNypvsvEcj274ZYEV4hvHslC1mtnysoa01&t=633161396082478735 =EF=BB=BF// (c) Copyright Microsoft Corporation. // This source is subject to the Microsoft Permissive License. // See = http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsou= rcelicenses.mspx. // All other rights reserved. Type.registerNamespace("AjaxControlToolkit"); AjaxControlToolkit.CalendarBehavior =3D function(element) { /// /// A behavior that attaches a calendar date selector to a textbox /// /// The element = to attach to =20 AjaxControlToolkit.CalendarBehavior.initializeBase(this, [element]); this._format =3D "d"; this._cssClass =3D "ajax__calendar"; this._enabled =3D true; this._animated =3D true; this._buttonID =3D null; this._layoutRequested =3D 0; this._layoutSuspended =3D false; this._selectedDate =3D null; this._visibleDate =3D null; this._todaysDate =3D null; this._firstDayOfWeek =3D AjaxControlToolkit.FirstDayOfWeek.Default; this._popupDiv =3D null; this._prevArrow =3D null; this._prevArrowImage =3D null; this._nextArrow =3D null; this._nextArrowImage =3D null; this._title =3D null; this._today =3D null; this._daysRow =3D null; this._monthsRow =3D null; this._yearsRow =3D null; this._daysBody =3D null; this._monthsBody =3D null; this._yearsBody =3D null; this._button =3D null; =20 this._popupBehavior =3D null; this._modeChangeAnimation =3D null; this._modeChangeMoveTopOrLeftAnimation =3D null; this._modeChangeMoveBottomOrRightAnimation =3D null; this._mode =3D "days"; this._selectedDateChanging =3D false; this._isOpen =3D false; this._isAnimating =3D false; this._width =3D 170; this._height =3D 139; this._modes =3D {"days" : null, "months" : null, "years" : null}; this._modeOrder =3D {"days" : 0, "months" : 1, "years" : 2 }; =20 // Safari needs a longer delay in order to work properly this._blur =3D new = AjaxControlToolkit.DeferredOperation(((Sys.Browser.agent =3D=3D=3D = Sys.Browser.Safari) ? 1000 : 1), this, this._onblur); this._focus =3D new = AjaxControlToolkit.DeferredOperation(((Sys.Browser.agent =3D=3D=3D = Sys.Browser.Safari) ? 1000 : 1), this, this._onfocus); =20 this._button$delegates =3D { click : Function.createDelegate(this, this._button_onclick) } this._element$delegates =3D { focus : Function.createDelegate(this, this._element_onfocus), focusout : Function.createDelegate(this, this._element_onblur), blur : Function.createDelegate(this, this._element_onblur), change : Function.createDelegate(this, this._element_onchange) } this._popup$delegates =3D {=20 activate : Function.createDelegate(this, this._popup_onfocus), focus : Function.createDelegate(this, this._popup_onfocus), dragstart: Function.createDelegate(this, = this._popup_ondragstart), select: Function.createDelegate(this, this._popup_onselect) } this._cell$delegates =3D { mouseover : Function.createDelegate(this, = this._cell_onmouseover), mouseout : Function.createDelegate(this, this._cell_onmouseout), click : Function.createDelegate(this, this._cell_onclick) } } AjaxControlToolkit.CalendarBehavior.prototype =3D { =20 get_animated : function() { /// /// Whether changing modes is animated /// /// =20 return this._animated; }, set_animated : function(value) { if (this._animated !=3D value) { this._animated =3D value; this.raisePropertyChanged("animated"); } }, get_enabled : function() { /// /// Whether this behavior is available for the current element /// =20 return this._enabled; }, set_enabled : function(value) { if (this._enabled !=3D value) { this._enabled =3D value; this.raisePropertyChanged("enabled"); } }, =20 get_button : function() { /// /// The button to use to show the calendar (optional) /// =20 return this._button; }, set_button : function(value) { if (this._button !=3D value) { if (this._button && this.get_isInitialized()) { $common.removeHandlers(this._button, = this._button$delegates); } this._button =3D value; if (this._button && this.get_isInitialized()) { $addHandlers(this._button, this._button$delegates); } this.raisePropertyChanged("button"); } }, get_format : function() {=20 /// /// The format to use for the date value /// return this._format;=20 }, set_format : function(value) {=20 if (this._format !=3D value) { this._format =3D value;=20 this.raisePropertyChanged("format"); } }, =20 get_selectedDate : function() { /// /// The date value represented by the text box /// if (this._selectedDate =3D=3D null) { var elt =3D this.get_element(); if (elt.value) { this._selectedDate =3D this._parseTextValue(elt.value); } } return this._selectedDate; }, set_selectedDate : function(value) { var elt =3D this.get_element(); if (this._selectedDate !=3D value) { this._selectedDate =3D value; =20 this._selectedDateChanging =3D true; =20 var text =3D ""; if (value) { text =3D value.localeFormat(this._format); }=20 if (text !=3D elt.value) { elt.value =3D text; this._fireChanged(); } this._selectedDateChanging =3D false; this.invalidate(); this.raisePropertyChanged("selectedDate"); } }, get_visibleDate : function() { /// /// The date currently visible in the calendar /// /// return this._visibleDate; }, set_visibleDate : function(value) { if (value) value =3D value.getDateOnly(); if (this._visibleDate !=3D value) { this._switchMonth(value, !this._isOpen); this.raisePropertyChanged("visibleDate"); } }, get_todaysDate : function() { /// /// The date to use for "Today" /// =20 if (this._todaysDate !=3D null) { return this._todaysDate; } return new Date().getDateOnly(); }, set_todaysDate : function(value) { if (value) value =3D value.getDateOnly(); if (this._todaysDate !=3D value) { this._todaysDate =3D value; this.invalidate(); this.raisePropertyChanged("todaysDate"); } }, =20 get_firstDayOfWeek : function() { /// /// The day of the week to appear as the first day in the = calendar /// =20 return this._firstDayOfWeek; }, set_firstDayOfWeek : function(value) { if (this._firstDayOfWeek !=3D value) { this._firstDayOfWeek =3D value; this.invalidate(); this.raisePropertyChanged("firstDayOfWeek"); } }, =20 get_cssClass : function() { /// /// The CSS class selector to use to change the calendar's = appearance /// return this._cssClass; }, set_cssClass : function(value) { if (this._cssClass !=3D value) { if (this._cssClass && this.get_isInitialized()) { Sys.UI.DomElement.removeCssClass(this._container, = this._cssClass); } this._cssClass =3D value; if (this._cssClass && this.get_isInitialized()) { Sys.UI.DomElement.addCssClass(this._container, = this._cssClass); } this.raisePropertyChanged("cssClass"); } }, =20 add_showing : function(handler) { /// /// Adds an event handler for the showiwng event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("showing", handler); }, remove_showing : function(handler) { /// /// Removes an event handler for the showing event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("showing", handler); }, raiseShowing : function() { /// /// Raise the showing event /// /// var handlers =3D this.get_events().getHandler("showing"); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_shown : function(handler) { /// /// Adds an event handler for the shown event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("shown", handler); }, remove_shown : function(handler) { /// /// Removes an event handler for the shown event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("shown", handler); }, raiseShown : function() { /// /// Raise the shown event /// /// var handlers =3D this.get_events().getHandler("shown"); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_hiding : function(handler) { /// /// Adds an event handler for the hiding event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("hiding", handler); }, remove_hiding : function(handler) { /// /// Removes an event handler for the hiding event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("hiding", handler); }, raiseHiding : function() { /// /// Raise the hiding event /// /// var handlers =3D this.get_events().getHandler("hiding"); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_hidden : function(handler) { /// /// Adds an event handler for the hidden event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("hidden", handler); }, remove_hidden : function(handler) { /// /// Removes an event handler for the hidden event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("hidden", handler); }, raiseHidden : function() { /// /// Raise the hidden event /// /// var handlers =3D this.get_events().getHandler("hidden"); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, =20 add_dateSelectionChanged : function(handler) { /// /// Adds an event handler for the = dateSelectionChanged event. /// /// /// The handler to add to the event. /// /// this.get_events().addHandler("dateSelectionChanged", handler); }, remove_dateSelectionChanged : function(handler) { /// /// Removes an event handler for the = dateSelectionChanged event. /// /// /// The handler to remove from the event. /// /// this.get_events().removeHandler("dateSelectionChanged", = handler); }, raiseDateSelectionChanged : function() { /// /// Raise the dateSelectionChanged event /// /// var handlers =3D = this.get_events().getHandler("dateSelectionChanged"); if (handlers) { handlers(this, Sys.EventArgs.Empty); } }, initialize : function() { /// /// Initializes the components and parameters for this behavior /// =20 AjaxControlToolkit.CalendarBehavior.callBaseMethod(this, = "initialize"); =20 var elt =3D this.get_element(); $addHandlers(elt, this._element$delegates); =20 if (this._button)=20 $addHandlers(this._button, this._button$delegates); =20 this._modeChangeMoveTopOrLeftAnimation =3D new = AjaxControlToolkit.Animation.LengthAnimation(null, null, null, "style", = null, 0, 0, "px"); this._modeChangeMoveBottomOrRightAnimation =3D new = AjaxControlToolkit.Animation.LengthAnimation(null, null, null, "style", = null, 0, 0, "px"); this._modeChangeAnimation =3D new = AjaxControlToolkit.Animation.ParallelAnimation(null, .25, null, [ = this._modeChangeMoveTopOrLeftAnimation, = this._modeChangeMoveBottomOrRightAnimation ]); var value =3D this.get_selectedDate(); if (value) { this.set_selectedDate(value); }=20 }, dispose : function() { /// /// Disposes this behavior's resources /// =20 if (this._popupBehavior) { this._popupBehavior.dispose(); this._popupBehavior =3D null; } this._modes =3D null; this._modeOrder =3D null; if (this._modeChangeMoveTopOrLeftAnimation) { this._modeChangeMoveTopOrLeftAnimation.dispose(); this._modeChangeMoveTopOrLeftAnimation =3D null; } if (this._modeChangeMoveBottomOrRightAnimation) { this._modeChangeMoveBottomOrRightAnimation.dispose(); this._modeChangeMoveBottomOrRightAnimation =3D null; } if (this._modeChangeAnimation) { this._modeChangeAnimation.dispose(); this._modeChangeAnimation =3D null; } if (this._container) { this._container.parentNode.removeChild(this._container); this._container =3D null; } if (this._popupDiv) { $common.removeHandlers(this._popupDiv, = this._popup$delegates); this._popupDiv =3D null; } =20 if (this._prevArrow) { $common.removeHandlers(this._prevArrow, = this._cell$delegates); this._prevArrow =3D null; } if (this._prevArrowImage) { $common.removeHandlers(this._prevArrowImage, = this._cell$delegates); this._prevArrowImage =3D null; } if (this._nextArrow) { $common.removeHandlers(this._nextArrow, = this._cell$delegates); this._nextArrow =3D null; } if (this._nextArrowImage) { =20 $common.removeHandlers(this._nextArrowImage, = this._cell$delegates); this._nextArrowImage =3D null; } if (this._title) { $common.removeHandlers(this._title, this._cell$delegates); this._title =3D null; } if (this._today) { $common.removeHandlers(this._today, this._cell$delegates); this._today =3D null; } if (this._daysRow) { for (var i =3D 0; i < this._daysBody.rows.length; i++) { var row =3D this._daysBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { $common.removeHandlers(row.cells[j].firstChild, = this._cell$delegates); } } this._daysRow =3D null; } if (this._monthsRow) { for (var i =3D 0; i < this._monthsBody.rows.length; i++) { var row =3D this._monthsBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { $common.removeHandlers(row.cells[j].firstChild, = this._cell$delegates); } } this._monthsRow =3D null; } if (this._yearsRow) { for (var i =3D 0; i < this._yearsBody.rows.length; i++) { var row =3D this._yearsBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { $common.removeHandlers(row.cells[j].firstChild, = this._cell$delegates); } } this._yearsRow =3D null; } if (this._button) { $common.removeHandlers(this._button, = this._button$delegates); this._button =3D null; } var elt =3D this.get_element(); $common.removeHandlers(elt, this._element$delegates); AjaxControlToolkit.CalendarBehavior.callBaseMethod(this, = "dispose"); }, =20 show : function() { /// /// Shows the calendar /// =20 this._ensureCalendar(); =20 if (!this._isOpen) { this.raiseShowing(); this._isOpen =3D true; this._switchMonth(null, true); this._popupBehavior.show(); this.raiseShown(); }=20 }, hide : function() { /// /// Hides the calendar /// this.raiseHiding(); if (this._container) { =20 this._popupBehavior.hide(); =20 this._switchMode("days", true); =20 } this._isOpen =3D false; =20 this.raiseHidden(); }, =20 suspendLayout : function() { /// /// Suspends layout of the behavior while setting properties /// this._layoutSuspended++; }, resumeLayout : function() { /// /// Resumes layout of the behavior and performs any pending = layout requests /// this._layoutSuspended--; if (this._layoutSuspended <=3D 0) { this._layoutSuspended =3D 0; if (this._layoutRequested) { this._performLayout(); } } }, invalidate : function() { /// /// Performs layout of the behavior unless layout is suspended /// =20 if (this._layoutSuspended > 0) { this._layoutRequested =3D true; } else { this._performLayout(); } }, =20 _buildCalendar : function() { /// /// Builds the calendar's layout /// =20 var elt =3D this.get_element(); =20 this._container =3D $common.createElementFromTemplate({ nodeName : "div", cssClasses : [this._cssClass] }, elt.parentNode); this._popupDiv =3D $common.createElementFromTemplate({=20 nodeName : "div", events : this._popup$delegates,=20 properties : { tabIndex : 0 }, cssClasses : ["ajax__calendar_container"],=20 visible : false=20 }, this._container); }, _buildHeader : function() { /// /// Builds the header for the calendar /// =20 this._header =3D $common.createElementFromTemplate({=20 nodeName : "div", cssClasses : [ "ajax__calendar_header" ] }, this._popupDiv); =20 var prevArrowWrapper =3D $common.createElementFromTemplate({ = nodeName : "div" }, this._header); this._prevArrow =3D $common.createElementFromTemplate({=20 nodeName : "div", properties : { mode : "prev" },=20 events : this._cell$delegates, cssClasses : [ "ajax__calendar_prev" ]=20 }, prevArrowWrapper); =20 var nextArrowWrapper =3D $common.createElementFromTemplate({ = nodeName : "div" }, this._header); this._nextArrow =3D $common.createElementFromTemplate({=20 nodeName : "div", properties : { mode : "next" }, events : this._cell$delegates,=20 cssClasses : [ "ajax__calendar_next" ]=20 }, nextArrowWrapper); =20 =20 var titleWrapper =3D $common.createElementFromTemplate({ = nodeName : "div" }, this._header); =20 this._title =3D $common.createElementFromTemplate({=20 nodeName : "div", properties : { mode : "title" }, events : this._cell$delegates,=20 cssClasses : [ "ajax__calendar_title" ]=20 }, titleWrapper); }, _buildBody : function() { /// /// Builds the body region for the calendar /// =20 this._body =3D $common.createElementFromTemplate({=20 nodeName : "div", cssClasses : [ "ajax__calendar_body" ] }, this._popupDiv); this._buildDays(); this._buildMonths(); this._buildYears(); }, _buildFooter : function() { /// /// Builds the footer for the calendar /// =20 var todayWrapper =3D $common.createElementFromTemplate({ = nodeName : "div" }, this._popupDiv); this._today =3D $common.createElementFromTemplate({ nodeName : "div", properties : { mode : "today" }, events : this._cell$delegates, cssClasses : [ "ajax__calendar_footer", = "ajax__calendar_today" ] }, todayWrapper); }, _buildDays : function() { /// /// Builds a "days of the month" view for the calendar /// =20 var dtf =3D Sys.CultureInfo.CurrentCulture.dateTimeFormat; this._days =3D $common.createElementFromTemplate({=20 nodeName : "div", cssClasses : [ "ajax__calendar_days" ] }, this._body); this._modes["days"] =3D this._days; =20 this._daysTable =3D $common.createElementFromTemplate({=20 nodeName : "table", properties : { cellPadding : 0, cellSpacing : 0, border : 0, style : { margin : "auto" } }=20 }, this._days); =20 this._daysTableHeader =3D $common.createElementFromTemplate({ = nodeName : "thead" }, this._daysTable); this._daysTableHeaderRow =3D $common.createElementFromTemplate({ = nodeName : "tr" }, this._daysTableHeader); this._daysBody =3D $common.createElementFromTemplate({ nodeName: = "tbody" }, this._daysTable); =20 for (var i =3D 0; i < 7; i++) { var dayCell =3D $common.createElementFromTemplate({ nodeName = : "td" }, this._daysTableHeaderRow); var dayDiv =3D $common.createElementFromTemplate({ nodeName : "div", cssClasses : [ "ajax__calendar_dayname" ] }, dayCell); } for (var i =3D 0; i < 6; i++) { var daysRow =3D $common.createElementFromTemplate({ nodeName = : "tr" }, this._daysBody); for(var j =3D 0; j < 7; j++) { var dayCell =3D $common.createElementFromTemplate({ = nodeName : "td" }, daysRow); var dayDiv =3D $common.createElementFromTemplate({ nodeName : "div", properties : { mode : "day", innerHTML : " " }, events : this._cell$delegates, cssClasses : [ "ajax__calendar_day" ] }, dayCell); } } }, _buildMonths : function() { /// /// Builds a "months of the year" view for the calendar /// =20 var dtf =3D Sys.CultureInfo.CurrentCulture.dateTimeFormat; = =20 this._months =3D $common.createElementFromTemplate({ nodeName : "div", cssClasses : [ "ajax__calendar_months" ], visible : false }, this._body); this._modes["months"] =3D this._months; =20 this._monthsTable =3D $common.createElementFromTemplate({ nodeName : "table", properties : { cellPadding : 0, cellSpacing : 0, border : 0, style : { margin : "auto" } } }, this._months); this._monthsBody =3D $common.createElementFromTemplate({ = nodeName : "tbody" }, this._monthsTable); for (var i =3D 0; i < 3; i++) { var monthsRow =3D $common.createElementFromTemplate({ = nodeName : "tr" }, this._monthsBody); for (var j =3D 0; j < 4; j++) { var monthCell =3D $common.createElementFromTemplate({ = nodeName : "td" }, monthsRow); var monthDiv =3D $common.createElementFromTemplate({ nodeName : "div", properties : { mode : "month", month : (i * 4) + j, innerHTML : "
" + = dtf.AbbreviatedMonthNames[(i * 4) + j] }, events : this._cell$delegates, cssClasses : [ "ajax__calendar_month" ] }, monthCell); } } }, _buildYears : function() { /// /// Builds a "years in this decade" view for the calendar /// =20 this._years =3D $common.createElementFromTemplate({ nodeName : "div", cssClasses : [ "ajax__calendar_years" ], visible : false }, this._body); this._modes["years"] =3D this._years; =20 this._yearsTable =3D $common.createElementFromTemplate({ nodeName : "table", properties : { cellPadding : 0, cellSpacing : 0, border : 0, style : { margin : "auto" } } }, this._years); this._yearsBody =3D $common.createElementFromTemplate({ nodeName = : "tbody" }, this._yearsTable); =20 for (var i =3D 0; i < 3; i++) { var yearsRow =3D $common.createElementFromTemplate({ = nodeName : "tr" }, this._yearsBody); for (var j =3D 0; j < 4; j++) { var yearCell =3D $common.createElementFromTemplate({ = nodeName : "td" }, yearsRow); var yearDiv =3D $common.createElementFromTemplate({=20 nodeName : "div",=20 properties : {=20 mode : "year", year : ((i * 4) + j) - 1 }, events : this._cell$delegates, cssClasses : [ "ajax__calendar_year" ] }, yearCell); } } }, =20 _performLayout : function() { /// /// Updates the various views of the calendar to match the = current selected and visible dates ///
=20 var elt =3D this.get_element(); if (!elt) return; if (!this.get_isInitialized()) return; if (!this._isOpen) return; var dtf =3D Sys.CultureInfo.CurrentCulture.dateTimeFormat; = =20 var selectedDate =3D this.get_selectedDate(); var visibleDate =3D this._getEffectiveVisibleDate(); var todaysDate =3D this.get_todaysDate();=20 =20 switch (this._mode) { case "days": =20 var firstDayOfWeek =3D this._getFirstDayOfWeek(); var daysToBacktrack =3D visibleDate.getDay() - = firstDayOfWeek; if (daysToBacktrack <=3D 0) daysToBacktrack +=3D 7; =20 var startDate =3D new Date(visibleDate.getFullYear(), = visibleDate.getMonth(), visibleDate.getDate() - daysToBacktrack); var currentDate =3D startDate; for (var i =3D 0; i < 7; i++) { var dayCell =3D = this._daysTableHeaderRow.cells[i].firstChild; if (dayCell.firstChild) { dayCell.removeChild(dayCell.firstChild); } = dayCell.appendChild(document.createTextNode(dtf.ShortestDayNames[(i + = firstDayOfWeek) % 7])); } for (var week =3D 0; week < 6; week ++) { var weekRow =3D this._daysBody.rows[week]; for (var dayOfWeek =3D 0; dayOfWeek < 7; = dayOfWeek++) { var dayCell =3D = weekRow.cells[dayOfWeek].firstChild; if (dayCell.firstChild) { dayCell.removeChild(dayCell.firstChild); } = dayCell.appendChild(document.createTextNode(currentDate.getDate())); dayCell.title =3D currentDate.localeFormat("D"); dayCell.date =3D currentDate; $common.removeCssClasses(dayCell.parentNode, [ = "ajax__calendar_other", "ajax__calendar_active" ]); = Sys.UI.DomElement.addCssClass(dayCell.parentNode, = this._getCssClass(dayCell.date, 'd')); currentDate =3D new = Date(currentDate.getFullYear(), currentDate.getMonth(), = currentDate.getDate() + 1); } } =20 this._prevArrow.date =3D new = Date(visibleDate.getFullYear(), visibleDate.getMonth() - 1, 1); this._nextArrow.date =3D new = Date(visibleDate.getFullYear(), visibleDate.getMonth() + 1, 1); if (this._title.firstChild) { this._title.removeChild(this._title.firstChild); } = this._title.appendChild(document.createTextNode(visibleDate.localeFormat(= "MMMM, yyyy"))); this._title.date =3D visibleDate; break; case "months": for (var i =3D 0; i < this._monthsBody.rows.length; i++) = { var row =3D this._monthsBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { var cell =3D row.cells[j].firstChild; cell.date =3D new = Date(visibleDate.getFullYear(), cell.month, 1); $common.removeCssClasses(cell.parentNode, [ = "ajax__calendar_other", "ajax__calendar_active" ]); Sys.UI.DomElement.addCssClass(cell.parentNode, = this._getCssClass(cell.date, 'M')); } } =20 if (this._title.firstChild) { this._title.removeChild(this._title.firstChild); } = this._title.appendChild(document.createTextNode(visibleDate.localeFormat(= "yyyy"))); this._title.date =3D visibleDate; this._prevArrow.date =3D new = Date(visibleDate.getFullYear() - 1, 0, 1); this._nextArrow.date =3D new = Date(visibleDate.getFullYear() + 1, 0, 1); break; case "years": var minYear =3D (Math.floor(visibleDate.getFullYear() / = 10) * 10); for (var i =3D 0; i < this._yearsBody.rows.length; i++) = { var row =3D this._yearsBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { var cell =3D row.cells[j].firstChild; cell.date =3D new Date(minYear + cell.year, 0, = 1); if (cell.firstChild) { cell.removeChild(cell.lastChild); } else { = cell.appendChild(document.createElement("br")); } cell.appendChild(document.createTextNode(minYear = + cell.year)); $common.removeCssClasses(cell.parentNode, [ = "ajax__calendar_other", "ajax__calendar_active" ]); Sys.UI.DomElement.addCssClass(cell.parentNode, = this._getCssClass(cell.date, 'y')); } } if (this._title.firstChild) { this._title.removeChild(this._title.firstChild); } = this._title.appendChild(document.createTextNode(minYear.toString() + "-" = + (minYear + 9).toString())); this._title.date =3D visibleDate; this._prevArrow.date =3D new Date(minYear - 10, 0, 1); this._nextArrow.date =3D new Date(minYear + 10, 0, 1); break; } if (this._today.firstChild) { this._today.removeChild(this._today.firstChild); } = this._today.appendChild(document.createTextNode(String.format(AjaxControl= Toolkit.Resources.Calendar_Today, todaysDate.localeFormat("MMMM d, = yyyy")))); this._today.date =3D todaysDate; =20 }, =20 _ensureCalendar : function() { =20 if (!this._container) { =20 var elt =3D this.get_element(); =20 this._buildCalendar(); this._buildHeader(); this._buildBody(); this._buildFooter(); =20 this._popupBehavior =3D new = $create(AjaxControlToolkit.PopupBehavior, { parentElement : elt, = positioningMode : AjaxControlToolkit.PositioningMode.BottomLeft }, {}, = {}, this._popupDiv); =20 } =20 }, =20 _fireChanged : function() { /// /// Attempts to fire the change event on the attached textbox /// =20 var elt =3D this.get_element(); if (document.createEventObject) { elt.fireEvent("onchange"); } else if (document.createEvent) { var e =3D document.createEvent("HTMLEvents"); e.initEvent("change", true, true); elt.dispatchEvent(e); } }, _switchMonth : function(date, dontAnimate) { /// /// Switches the visible month in the days view /// /// The visible date to = switch to /// Prevents = animation from occuring if the control is animated =20 // Check _isAnimating to make sure we don't animate horizontally = and vertically at the same time if (this._isAnimating) { return; } =20 var visibleDate =3D this._getEffectiveVisibleDate(); if ((date && date.getFullYear() =3D=3D visibleDate.getFullYear() = && date.getMonth() =3D=3D visibleDate.getMonth())) { dontAnimate =3D true; } =20 if (this._animated && !dontAnimate) { this._isAnimating =3D true; =20 var newElement =3D this._modes[this._mode]; var oldElement =3D newElement.cloneNode(true); this._body.appendChild(oldElement); if (visibleDate > date) { // animating down // the newIndex element is the top // the oldIndex element is the bottom (visible) =20 // move in, fade in $common.setLocation(newElement, {x:-162,y:0}); Sys.UI.DomElement.setVisible(newElement, true); = this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("left"); = this._modeChangeMoveTopOrLeftAnimation.set_target(newElement); = this._modeChangeMoveTopOrLeftAnimation.set_startValue(-this._width); this._modeChangeMoveTopOrLeftAnimation.set_endValue(0); =20 // move out, fade out $common.setLocation(oldElement, {x:0,y:0}); Sys.UI.DomElement.setVisible(oldElement, true); = this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("left"); = this._modeChangeMoveBottomOrRightAnimation.set_target(oldElement); = this._modeChangeMoveBottomOrRightAnimation.set_startValue(0); = this._modeChangeMoveBottomOrRightAnimation.set_endValue(this._width); } else { // animating up // the oldIndex element is the top (visible) // the newIndex element is the bottom =20 // move out, fade out $common.setLocation(oldElement, {x:0,y:0}); Sys.UI.DomElement.setVisible(oldElement, true); = this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("left"); = this._modeChangeMoveTopOrLeftAnimation.set_target(oldElement); = this._modeChangeMoveTopOrLeftAnimation.set_endValue(-this._width); = this._modeChangeMoveTopOrLeftAnimation.set_startValue(0); // move in, fade in $common.setLocation(newElement, {x:162,y:0}); Sys.UI.DomElement.setVisible(newElement, true); = this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("left"); = this._modeChangeMoveBottomOrRightAnimation.set_target(newElement); = this._modeChangeMoveBottomOrRightAnimation.set_endValue(0); = this._modeChangeMoveBottomOrRightAnimation.set_startValue(this._width); } this._visibleDate =3D date; this.invalidate(); =20 var endHandler =3D Function.createDelegate(this, function() = {=20 this._body.removeChild(oldElement); oldElement =3D null; this._isAnimating =3D false; this._modeChangeAnimation.remove_ended(endHandler); }); this._modeChangeAnimation.add_ended(endHandler); this._modeChangeAnimation.play(); } else { this._visibleDate =3D date; this.invalidate(); } }, _switchMode : function(mode, dontAnimate) { /// /// Switches the visible view from "days" to "months" to "years" /// /// The view mode to switch = to /// Prevents = animation from occuring if the control is animated =20 // Check _isAnimating to make sure we don't animate horizontally = and vertically at the same time if (this._isAnimating || (this._mode =3D=3D mode)) { return; } =20 var moveDown =3D this._modeOrder[this._mode] < = this._modeOrder[mode]; var oldElement =3D this._modes[this._mode]; var newElement =3D this._modes[mode]; this._mode =3D mode; =20 if (this._animated && !dontAnimate) {=20 this._isAnimating =3D true; =20 this.invalidate(); =20 if (moveDown) { // animating down // the newIndex element is the top // the oldIndex element is the bottom (visible) =20 // move in, fade in $common.setLocation(newElement, {x:0,y:-this._height}); Sys.UI.DomElement.setVisible(newElement, true); = this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("top"); = this._modeChangeMoveTopOrLeftAnimation.set_target(newElement); = this._modeChangeMoveTopOrLeftAnimation.set_startValue(-this._height); this._modeChangeMoveTopOrLeftAnimation.set_endValue(0); =20 // move out, fade out $common.setLocation(oldElement, {x:0,y:0}); Sys.UI.DomElement.setVisible(oldElement, true); = this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("top"); = this._modeChangeMoveBottomOrRightAnimation.set_target(oldElement); = this._modeChangeMoveBottomOrRightAnimation.set_startValue(0); = this._modeChangeMoveBottomOrRightAnimation.set_endValue(this._height); } else { // animating up // the oldIndex element is the top (visible) // the newIndex element is the bottom =20 // move out, fade out $common.setLocation(oldElement, {x:0,y:0}); Sys.UI.DomElement.setVisible(oldElement, true); = this._modeChangeMoveTopOrLeftAnimation.set_propertyKey("top"); = this._modeChangeMoveTopOrLeftAnimation.set_target(oldElement); = this._modeChangeMoveTopOrLeftAnimation.set_endValue(-this._height); = this._modeChangeMoveTopOrLeftAnimation.set_startValue(0); // move in, fade in $common.setLocation(newElement, {x:0,y:139}); Sys.UI.DomElement.setVisible(newElement, true); = this._modeChangeMoveBottomOrRightAnimation.set_propertyKey("top"); = this._modeChangeMoveBottomOrRightAnimation.set_target(newElement); = this._modeChangeMoveBottomOrRightAnimation.set_endValue(0); = this._modeChangeMoveBottomOrRightAnimation.set_startValue(this._height); } var endHandler =3D Function.createDelegate(this, function() = {=20 this._isAnimating =3D false; this._modeChangeAnimation.remove_ended(endHandler); }); this._modeChangeAnimation.add_ended(endHandler); this._modeChangeAnimation.play(); } else { this._mode =3D mode; Sys.UI.DomElement.setVisible(oldElement, false); this.invalidate(); Sys.UI.DomElement.setVisible(newElement, true); $common.setLocation(newElement, {x:0,y:0}); } }, _isSelected : function(date, part) { /// /// Gets whether the supplied date is the currently selected = date /// /// The date to match /// The most significant = part of the date to test /// =20 var value =3D this.get_selectedDate(); if (!value) return false; switch (part) { case 'd': if (date.getDate() !=3D value.getDate()) return false; // goto case 'M'; case 'M': if (date.getMonth() !=3D value.getMonth()) return false; // goto case 'y'; case 'y': if (date.getFullYear() !=3D value.getFullYear()) return = false; break; } return true; }, _isOther : function(date, part) { /// /// Gets whether the supplied date is in a different view from = the current visible month /// /// The date to match /// The most significant = part of the date to test /// var value =3D this._getEffectiveVisibleDate(); switch (part) { case 'd':=20 return (date.getFullYear() !=3D value.getFullYear() || = date.getMonth() !=3D value.getMonth()); case 'M':=20 return false; case 'y':=20 var minYear =3D (Math.floor(value.getFullYear() / 10) * = 10); return date.getFullYear() < minYear || (minYear + 10) = <=3D date.getFullYear(); } return false; }, _getCssClass : function(date, part) { /// /// Gets the cssClass to apply to a cell based on a supplied = date /// /// The date to match /// The most significant = part of the date to test /// if (this._isSelected(date, part)) { return "ajax__calendar_active"; } else if (this._isOther(date, part)) { return "ajax__calendar_other"; } else { return ""; } }, _getEffectiveVisibleDate : function() { var value =3D this.get_visibleDate(); if (value =3D=3D null)=20 value =3D this.get_selectedDate(); if (value =3D=3D null) value =3D this.get_todaysDate(); return new Date(value.getFullYear(), value.getMonth(), 1); }, _getFirstDayOfWeek : function() { /// /// Gets the first day of the week /// =20 if (this.get_firstDayOfWeek() !=3D = AjaxControlToolkit.FirstDayOfWeek.Default) { return this.get_firstDayOfWeek(); } return = Sys.CultureInfo.CurrentCulture.dateTimeFormat.FirstDayOfWeek; }, _parseTextValue : function(text) { /// /// Converts a text value from the textbox into a date /// /// The = text value to parse /// =20 var value =3D null; if(text) { value =3D Date.parseLocale(text, this.get_format()); } if(isNaN(value)) { value =3D null; } return value; }, =20 _onblur : function() { /// /// Handles the completion of a deferred blur operation /// =20 this._focus.cancel(); this.hide(); =20 }, _onfocus : function() { /// /// Handles the completion of a deferred focus operation /// =20 this._blur.cancel(); this.get_element().focus(); }, =20 _element_onfocus : function(e) { /// =20 /// Handles the focus event of the element /// /// The arguments for = the event =20 if (this._enabled && this._button =3D=3D null) { this._focus.cancel(); this._blur.cancel(); this.show(); } }, _element_onblur : function(e) { /// =20 /// Handles the blur event of the element /// /// The arguments for = the event =20 if ((e.type =3D=3D 'blur' && Sys.Browser.agent !=3D = Sys.Browser.InternetExplorer) || (e.type =3D=3D 'focusout' && Sys.Browser.agent =3D=3D = Sys.Browser.InternetExplorer)) { if (this._button =3D=3D null) { this._focus.cancel(); this._blur.post(); } } }, _element_onchange : function(e) { /// =20 /// Handles the change event of the element /// /// The arguments for = the event =20 if (!this._selectedDateChanging) { var elt =3D this.get_element(); this._selectedDate =3D this._parseTextValue(elt.value); this._switchMonth(this._selectedDate, this._selectedDate = =3D=3D null); } }, _popup_onfocus : function(e) { /// =20 /// Handles the focus event of the popup /// /// The arguments for = the event =20 if ((e.type =3D=3D 'focus' && Sys.Browser.agent !=3D = Sys.Browser.InternetExplorer) || (e.type =3D=3D 'activate' && Sys.Browser.agent =3D=3D = Sys.Browser.InternetExplorer) || (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) || (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera)) { if (this._button =3D=3D null) { this._blur.cancel(); this._focus.post(); } } }, _popup_ondragstart : function(e) { /// =20 /// Handles the drag-start event of the popup calendar /// /// The arguments for = the event =20 e.stopPropagation(); e.preventDefault(); }, _popup_onselect : function(e) { /// =20 /// Handles the select event of the popup calendar /// /// The arguments for = the event =20 e.stopPropagation(); e.preventDefault(); }, _cell_onmouseover : function(e) { /// =20 /// Handles the mouseover event of a cell /// /// The arguments for = the event if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) { // Safari doesn't reliably call _cell_onmouseout, so clear = other cells here to keep the UI correct for (var i =3D 0; i < this._daysBody.rows.length; i++) { var row =3D this._daysBody.rows[i]; for (var j =3D 0; j < row.cells.length; j++) { = Sys.UI.DomElement.removeCssClass(row.cells[j].firstChild.parentNode, = "ajax__calendar_hover"); } } } var target =3D e.target; Sys.UI.DomElement.addCssClass(target.parentNode, = "ajax__calendar_hover"); e.stopPropagation(); }, _cell_onmouseout : function(e) { /// =20 /// Handles the mouseout event of a cell /// /// The arguments for = the event var target =3D e.target; Sys.UI.DomElement.removeCssClass(target.parentNode, = "ajax__calendar_hover"); e.stopPropagation(); }, _cell_onclick : function(e) { /// =20 /// Handles the click event of a cell /// /// The arguments for = the event if ((Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) || (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera)) { // _popup_onfocus doesn't get called on Safari or Opera, so = we call it manually now this._popup_onfocus(e); } if (!this._enabled)=20 return; var target =3D e.target; var visibleDate =3D this._getEffectiveVisibleDate(); Sys.UI.DomElement.removeCssClass(target.parentNode, = "ajax__calendar_hover"); switch(target.mode) { case "prev": case "next": this._switchMonth(target.date); break; case "title": switch (this._mode) { case "days": this._switchMode("months"); break; case "months": this._switchMode("years"); break; } break; case "month": if (target.month =3D=3D visibleDate.getMonth()) { this._switchMode("days"); } else { this._visibleDate =3D target.date; this._switchMode("days"); } break; case "year": if (target.date.getFullYear() =3D=3D = visibleDate.getFullYear()) { this._switchMode("months"); } else { this._visibleDate =3D target.date; this._switchMode("months"); } break; case "day": this.set_selectedDate(target.date); this._switchMonth(target.date); if (this._button !=3D null) { this.hide(); } this.raiseDateSelectionChanged(); break; case "today": this.set_selectedDate(target.date); this._switchMonth(target.date); if (this._button !=3D null) { this.hide(); } this.raiseDateSelectionChanged(); break; } e.stopPropagation(); e.preventDefault(); }, _button_onclick : function(e) { /// =20 /// Handles the click event of the asociated button /// /// The arguments for = the event if (!this._isOpen) { e.preventDefault(); e.stopPropagation(); if (this._enabled)=20 this.show(); } else { this.hide(); } } } AjaxControlToolkit.CalendarBehavior.registerClass("AjaxControlToolkit.Cal= endarBehavior", AjaxControlToolkit.BehaviorBase); if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded(); ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js (function(){var g=3Dtrue,h=3Dnull,j=3Dfalse,aa=3D(new = Date).getTime(),k=3Dfunction(a){var b=3D(new = Date).getTime()-aa;b=3D"&dtd=3D"+(b<1000?b:"M");return a+b};var = l=3Dthis,ba=3Dfunction(a,b,c){a=3Da.split(".");c=3Dc||l;!(a[0]in = c)&&c.execScript&&c.execScript("var "+a[0]);for(var = d;a.length&&(d=3Da.shift());)if(!a.length&&b!=3D=3Dundefined)c[d]=3Db;els= e c=3Dc[d]?c[d]:(c[d]=3D{})},n=3Dfunction(a){var b=3Dtypeof = a;if(b=3D=3D"object")if(a){if(a instanceof Array||!(a instanceof = Object)&&Object.prototype.toString.call(a)=3D=3D"[object Array]"||typeof = a.length=3D=3D"number"&&typeof a.splice!=3D"undefined"&&typeof = a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("splice"))= return"array";=0A= if(!(a instanceof = Object)&&(Object.prototype.toString.call(a)=3D=3D"[object = Function]"||typeof a.call!=3D"undefined"&&typeof = a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("call")))r= eturn"function"}else return"null";else if(b=3D=3D"function"&&typeof = a.call=3D=3D"undefined")return"object";return b},o=3Dfunction(a){return = n(a)=3D=3D"array"},ca=3Dfunction(a){var b=3Dn(a);return = b=3D=3D"array"||b=3D=3D"object"&&typeof = a.length=3D=3D"number"},p=3Dfunction(a){return typeof = a=3D=3D"string"},da=3Dfunction(a){a=3Dn(a);return a=3D=3D"object"||=0A= a=3D=3D"array"||a=3D=3D"function"};Math.floor(Math.random()*2147483648).t= oString(36);=0A= var ea=3Dfunction(a){var = b=3Dn(a);if(b=3D=3D"object"||b=3D=3D"array"){if(a.clone)return = a.clone.call(a);b=3Db=3D=3D"array"?[]:{};for(var c in = a)b[c]=3Dea(a[c]);return b}return a},fa=3Dfunction(a,b){var = c=3Db||l;if(arguments.length>2){var = d=3DArray.prototype.slice.call(arguments,2);return function(){var = e=3DArray.prototype.slice.call(arguments);Array.prototype.unshift.apply(e= ,d);return a.apply(c,e)}}else return function(){return = a.apply(c,arguments)}},ga=3DDate.now||function(){return(new = Date).getTime()},q=3Dfunction(a,b,c){ba(a,=0A= b,c)};var ha=3Dfunction(a,b,c){if(a.forEach)a.forEach(b,c);else = if(Array.forEach)Array.forEach(a,b,c);else for(var = d=3Da.length,e=3Dp(a)?a.split(""):a,f=3D0;f")!=3D-1)a=3Da.replace(na,">= ;");if(a.indexOf('"')!=3D-1)a=3Da.replace(oa,""");return = a}},la=3D/&/g,ma=3D//g,oa=3D/\"/g,pa=3D/[&<>\"]/,ta=3Dfunction= (a){if(t(a,"&"))return"document"in l&&!t(a,"<")?=0A= ra(a):sa(a);return a},ra=3Dfunction(a){var = b=3Dl.document.createElement("a");b.innerHTML=3Da;b.normalize&&b.normaliz= e();a=3Db.firstChild.nodeValue;b.innerHTML=3D"";return = a},sa=3Dfunction(a){return = a.replace(/&([^;]+);/g,function(b,c){switch(c){case "amp":return"&";case = "lt":return"<";case "gt":return">";case = "quot":return'"';default:if(c.charAt(0)=3D=3D"#"){c=3DNumber("0"+c.substr= (1));if(!isNaN(c))return String.fromCharCode(c)}return = b}})},ua=3Dfunction(a,b){for(var c=3Db.length,d=3D0;db)return 1;return = 0};ga();var v,w,z,A,B,wa,xa,ya,za,Aa,Ba=3Dfunction(){return = l.navigator?l.navigator.userAgent:h},C=3Dfunction(){return = l.navigator},Ca=3Dfunction(){wa=3DB=3DA=3Dz=3Dw=3Dv=3Dj;var = a;if(a=3DBa()){var = b=3DC();v=3Da.indexOf("Opera")=3D=3D0;w=3D!v&&a.indexOf("MSIE")!=3D-1;A=3D= (z=3D!v&&a.indexOf("WebKit")!=3D-1)&&a.indexOf("Mobile")!=3D-1;wa=3D(B=3D= !v&&!z&&b.product=3D=3D"Gecko")&&b.vendor=3D=3D"Camino"}};Ca();=0A= var D=3Dv,E=3Dw,Da=3DB,F=3Dz,Ea=3DA,Fa=3Dfunction(){var a=3DC();return = a&&a.platform||""},Ga=3DFa(),Ha=3Dfunction(){xa=3Dt(Ga,"Mac");ya=3Dt(Ga,"= Win");za=3Dt(Ga,"Linux");Aa=3D!!C()&&t(C().appVersion||"","X11")};Ha();va= r Ia=3Dxa,Ja=3Dya,Ka=3Dza,La=3Dfunction(){var = a=3D"",b;if(D&&l.opera){a=3Dl.opera.version;a=3Dtypeof = a=3D=3D"function"?a():a}else{if(Da)b=3D/rv\:([^\);]+)(\)|;)/;else = if(E)b=3D/MSIE\s+([^\);]+)(\)|;)/;else = if(F)b=3D/WebKit\/(\S+)/;if(b)a=3D(a=3Db.exec(Ba()))?a[1]:""}return = a},Ma=3DLa(),Na=3D{},G=3Dfunction(a){return = Na[a]||(Na[a]=3Dva(Ma,a)>=3D0)};var Oa=3Dfunction(a){return = p(a)?document.getElementById(a):a},Pa=3DOa,Ra=3Dfunction(a,b){ja(b,functi= on(c,d){if(d=3D=3D"style")a.style.cssText=3Dc;else = if(d=3D=3D"class")a.className=3Dc;else = if(d=3D=3D"for")a.htmlFor=3Dc;else if(d in = Qa)a.setAttribute(Qa[d],c);else = a[d]=3Dc})},Qa=3D{cellpadding:"cellPadding",cellspacing:"cellSpacing",col= span:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"w= idth",usemap:"useMap",frameborder:"frameBorder",type:"type"},Sa=3Dfunctio= n(a){var b=3Da.document;if(F&&!G("500")&&!Ea){if(typeof a.innerHeight=3D=3D=0A= "undefined")a=3Dwindow;b=3Da.innerHeight;var = c=3Da.document.documentElement.scrollHeight;if(a=3D=3Da.top)if(c");c=3Dc.join("")}var e=3D=0A= a.createElement(c);if(d)if(p(d))e.className=3Dd;else = Ra(e,d);if(b.length>2){function = f(i){if(i)e.appendChild(p(i)?a.createTextNode(i):i)}for(d=3D2;d0)?ha(Va(c)?ia(c):c,f):f(c)}}ret= urn e},Wa=3Dfunction(a,b){a.appendChild(b)};F&&G("522");var = Va=3Dfunction(a){if(a&&typeof a.length=3D=3D"number")if(da(a))return = typeof a.item=3D=3D"function"||typeof a.item=3D=3D"string";else = if(n(a)=3D=3D"function")return typeof a.item=3D=3D"function";return = j};function H(a,b){a=3DparseFloat(a);return = isNaN(a)||a>1||a<0?b:a}function I(a,b){if(a=3D=3D"true")return = g;if(a=3D=3D"false")return j;return b}function J(a,b){var = c=3D/^([\w-]+\.)+[\w-]{2,}(\:[0-9]+)?$/;return c.test(a)?a:b};var = Xa=3D"pagead2.googlesyndication.com",Ya=3D"googleads.g.doubleclick.net",Z= a=3D"pubads.g.doubleclick.net",$a=3D"securepubads.g.doubleclick.net",ab=3D= "partner.googleadservices.com",K=3DJ("pagead2.googlesyndication.com",Xa),= bb=3DJ("googleads.g.doubleclick.net",Ya),cb=3DJ("pagead2.googlesyndicatio= n.com",Xa);J("pubads.g.doubleclick.net",Za);J("partner.googleadservices.c= om",ab);J("securepubads.g.doubleclick.net",$a);var = L=3Dfunction(a,b){for(var c in = a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(h,a[c],c,a)};function= M(a){return typeof = encodeURIComponent=3D=3D"function"?encodeURIComponent(a):escape(a)}functi= on db(a,b,c){var = d=3Ddocument.createElement("script");d.type=3D"text/javascript";if(b)d.on= load=3Db;if(c)d.id=3Dc;d.src=3Da;var = e=3Ddocument.getElementsByTagName("head")[0];if(!e)return = j;window.setTimeout(function(){e.appendChild(d)},0);return g}=0A= function = eb(a,b){a.google_image_requests||(a.google_image_requests=3D[]);var = c=3Dnew Image;c.src=3Db;a.google_image_requests.push(c)}function = fb(a){if(a in gb)return gb[a];return = gb[a]=3Dnavigator.userAgent.toLowerCase().indexOf(a)!=3D-1}var gb=3D{};=0A= function hb(){if(navigator.plugins&&navigator.mimeTypes.length){var = a=3Dnavigator.plugins["Shockwave Flash"];if(a&&a.description)return = a.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s)+r/,".")}else = if(navigator.userAgent&&navigator.userAgent.indexOf("Windows = CE")>=3D0){a=3D3;for(var b=3D1;b;)try{b=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash."+(a+1));a++}catch(c){b=3Dh}= return a.toString()}else if(fb("msie")&&!window.opera){b=3Dh;try{b=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(d){a=3D=0A= 0;try{b=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");a=3D6;b.AllowScriptAcces= s=3D"always"}catch(e){if(a=3D=3D6)return a.toString()}try{b=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(f){}}if(b){a=3Db.Get= Variable("$version").split(" ")[1];return = a.replace(/,/g,".")}}return"0"}function N(a){var = b=3Da.google_ad_format;if(b)return b.indexOf("_0ads")>0;return = a.google_ad_output!=3D"html"&&a.google_num_radlinks>0}function = O(a){return!!a&&a.indexOf("_sdo")!=3D-1}=0A= function P(a,b){var = c=3DMath.random();if(c2*d||f>2*c= )return j}return g}function = pb(a,b){L(b,function(c,d){a["google_"+d]=3Dc})}=0A= function qb(a,b){if(!b)return a.URL;return a.referrer}function = rb(a,b){if(!b&&a.google_referrer_url=3D=3Dh)return"0";else = if(b&&a.google_referrer_url=3D=3Dh)return"1";else = if(!b&&a.google_referrer_url!=3Dh)return"2";else = if(b&&a.google_referrer_url!=3Dh)return"3";return"4"}function = tb(a,b,c,d){a.page_url=3Dqb(c,d);a.page_location=3Dh}function = ub(a,b,c,d){a.page_url=3Db.google_page_url;a.page_location=3Dqb(c,d)||"EM= PTY"}=0A= function vb(a,b){var = c=3D{},d=3Dob(a,b,a.google_ad_width,a.google_ad_height);c.iframing=3Drb(a= ,d);a.google_page_url?ub(c,a,b,d):tb(c,a,b,d);c.last_modified_time=3Db.UR= L=3D=3Dc.page_url?Date.parse(b.lastModified)/1000:h;c.referrer_url=3Dd?a.= google_referrer_url:a.google_page_url&&a.google_referrer_url?a.google_ref= errer_url:b.referrer;return c}function wb(a){var = b=3D{},c=3Da.URL.substring(a.URL.lastIndexOf("http"));b.iframing=3Dh;b.pa= ge_url=3Dc;b.page_location=3Da.URL;b.last_modified_time=3Dh;b.referrer_ur= l=3Dc;return b}=0A= function xb(a,b){b=3Dyb(a,b);pb(a,b)}function yb(a,b){return = a=3Da.google_page_url=3D=3Dh&&zb[b.domain]?wb(b):vb(a,b)}var = zb=3D{};zb["ad.yieldmanager.com"]=3Dg;var = Ab=3Ddocument,Bb=3DI("false",j),Cb=3DI("false",j),Db=3DI("false",j);I("fa= lse",j);var Q=3Dwindow;var = Eb=3Dfunction(a,b,c){b=3Dfa(b,l,a);a=3Dwindow.onerror;window.onerror=3Db;= try{c()}catch(d){c=3Dd.toString();var = e=3D"";if(d.fileName)e=3Dd.fileName;var = f=3D-1;if(d.lineNumber)f=3Dd.lineNumber;b=3Db(c,e,f);if(!b)throw = d;}window.onerror=3Da};q("google_protectAndRun",Eb);=0A= var Gb=3Dfunction(a,b,c,d){if(Math.random()<0.01){var = e=3DAb;a=3D["http://",cb,"/pagead/gen_204","?id=3Djserror","&jscb=3D",Bb?= 1:0,"&jscd=3D",Cb?1:0,"&context=3D",M(a),"&msg=3D",M(b),"&file=3D",M(c),"= &line=3D",M(d.toString()),"&url=3D",M(e.URL.substring(0,512)),"&ref=3D",M= (e.referrer.substring(0,512))];a.push(Fb());eb(Q,a.join(""))}return!Db};q= ("google_handleError",Gb);=0A= var Ib=3Dfunction(a){Hb|=3Da},Hb=3D0,Fb=3Dfunction(){var = a=3D["&client=3D",M(Q.google_ad_client),"&format=3D",M(Q.google_ad_format= ),"&slotname=3D",M(Q.google_ad_slot),"&output=3D",M(Q.google_ad_output),"= &ad_type=3D",M(Q.google_ad_type)];return a.join("")};var = R=3D"",Lb=3Dfunction(){if(window.google_ad_frameborder=3D=3Dh)window.goog= le_ad_frameborder=3D0;if(window.google_ad_output=3D=3Dh)window.google_ad_= output=3D"html";if(O(window.google_ad_format)){var = a=3Dwindow.google_ad_format.match(/^(\d+)x(\d+)_.*/);if(a){window.google_= ad_width=3DparseInt(a[1],10);window.google_ad_height=3DparseInt(a[2],10);= window.google_ad_output=3D"html"}}window.google_ad_format=3DJb(window.goo= gle_ad_format,window.google_ad_output,window.google_ad_width,window.googl= e_ad_height,window.google_ad_slot,=0A= !!window.google_override_format);R=3Dwindow.google_ad_client||"";window.g= oogle_ad_client=3DKb(window.google_ad_format,window.google_ad_client);xb(= window,document);if(window.google_num_slots_by_channel=3D=3Dh)window.goog= le_num_slots_by_channel=3D{};if(window.google_viewed_host_channels=3D=3Dh= )window.google_viewed_host_channels=3D{};if(window.google_num_slots_by_cl= ient=3D=3Dh)window.google_num_slots_by_client=3D{};if(window.google_prev_= ad_formats_by_region=3D=3Dh)window.google_prev_ad_formats_by_region=3D{};= if(window.google_prev_ad_slotnames_by_region=3D=3D=0A= h)window.google_prev_ad_slotnames_by_region=3D{};if(window.google_correla= tor=3D=3Dh)window.google_correlator=3D(new = Date).getTime();if(window.google_adslot_loaded=3D=3Dh)window.google_adslo= t_loaded=3D{};if(window.google_adContentsBySlot=3D=3Dh)window.google_adCo= ntentsBySlot=3D{};if(window.google_flash_version=3D=3Dh)window.google_fla= sh_version=3Dhb();if(window.google_new_domain_checked=3D=3Dh)window.googl= e_new_domain_checked=3D0;if(window.google_new_domain_enabled=3D=3Dh)windo= w.google_new_domain_enabled=3D0;if(!window.google_num_ad_slots)window.goo= gle_num_ad_slots=3D=0A= 0;if(!window.google_num_0ad_slots)window.google_num_0ad_slots=3D0;if(!win= dow.google_num_sdo_slots)window.google_num_sdo_slots=3D0;window.google_ad= _section=3Dwindow.google_ad_section||window.google_ad_region||"";window.g= oogle_country=3Dwindow.google_country||window.google_gl||"";a=3D(new = Date).getTime();if(o(window.google_color_bg))window.google_color_bg=3DS(w= indow.google_color_bg,a);if(o(window.google_color_text))window.google_col= or_text=3DS(window.google_color_text,a);if(o(window.google_color_link))wi= ndow.google_color_link=3D=0A= S(window.google_color_link,a);if(o(window.google_color_url))window.google= _color_url=3DS(window.google_color_url,a);if(o(window.google_color_border= ))window.google_color_border=3DS(window.google_color_border,a);if(o(windo= w.google_color_line))window.google_color_line=3DS(window.google_color_lin= e,a)},Mb=3Dfunction(a){L(kb,function(b,c){a[c]=3Dh});L(lb,function(b,c){a= [c]=3Dh});L(mb,function(b,c){a[c]=3Dh});a.google_container_id=3Dh;a.googl= e_eids=3Dh;a.google_page_location=3Dh;a.google_referrer_url=3Dh;a.google_= ad_region=3Dh;=0A= a.google_gl=3Dh},S=3Dfunction(a,b){Ib(2);return = a[b%a.length]},Kb=3Dfunction(a,b){if(!b)return"";b=3Db.toLowerCase();retu= rn = b=3DO(a)?Nb(b):Ob(b)},Ob=3Dfunction(a){if(a&&a.substring(0,3)!=3D"ca-")a=3D= "ca-"+a;return = a},Nb=3Dfunction(a){if(a&&a.substring(0,9)!=3D"dist-aff-")a=3D"dist-aff-"= +a;return = a},Jb=3Dfunction(a,b,c,d,e,f){if(!a&&b=3D=3D"html")a=3Dc+"x"+d;return = a=3DPb(a,e,f)?a.toLowerCase():""},Pb=3Dfunction(a,b,c){if(!a)return = j;if(!b)return g;return c};var T=3Ddocument,U=3Dnavigator,V=3Dwindow;=0A= function Qb(){var a=3DT.cookie,b=3DMath.round((new = Date).getTime()/1000),c=3DV.google_analytics_domain_name;c=3Dtypeof = c=3D=3D"undefined"?Rb("auto"):Rb(c);var = d=3Da.indexOf("__utma=3D"+c+".")>-1,e=3Da.indexOf("__utmb=3D"+c)>-1,f=3Da= .indexOf("__utmc=3D"+c)>-1,i=3D{},m=3D!!V&&!!V.gaGlobal;if(d){a=3Da.split= ("__utma=3D"+c+".")[1].split(";")[0].split(".");i.sid=3De&&f?a[3]+"":m&&V= .gaGlobal.sid?V.gaGlobal.sid:b+"";i.vid=3Da[0]+"."+a[1];i.from_cookie=3Dg= }else{i.sid=3Dm&&V.gaGlobal.sid?V.gaGlobal.sid:b+"";i.vid=3Dm&&V.gaGlobal= .vid?V.gaGlobal.vid:=0A= (Math.round(Math.random()*2147483647)^Sb()&2147483647)+"."+b;i.from_cooki= e=3Dj}i.dh=3Dc;i.hid=3Dm&&V.gaGlobal.hid?V.gaGlobal.hid:Math.round(Math.r= andom()*2147483647);return V.gaGlobal=3Di}=0A= function Sb(){var = a=3DT.cookie?T.cookie:"",b=3DV.history.length,c,d=3D[U.appName,U.version,= U.language?U.language:U.browserLanguage,U.platform,U.userAgent,U.javaEnab= led()?1:0].join("");if(V.screen)d+=3DV.screen.width+"x"+V.screen.height+V= .screen.colorDepth;else = if(V.java){c=3Djava.awt.Toolkit.getDefaultToolkit().getScreenSize();d+=3D= c.screen.width+"x"+c.screen.height}d+=3Da;d+=3DT.referrer?T.referrer:"";f= or(a=3Dd.length;b>0;)d+=3Db--^a++;return Tb(d)}=0A= function Tb(a){var = b=3D1,c=3D0,d;if(!(a=3D=3Dundefined||a=3D=3D"")){b=3D0;for(d=3Da.length-1= ;d>=3D0;d--){c=3Da.charCodeAt(d);b=3D(b<<6&268435455)+c+(c<<14);c=3Db&266= 338304;b=3Dc!=3D0?b^c>>21:b}}return b}function = Rb(a){if(!a||a=3D=3D""||a=3D=3D"none")return = 1;if("auto"=3D=3Da){a=3DT.domain;if("www."=3D=3Da.substring(0,4))a=3Da.su= bstring(4,a.length)}return Tb(a.toLowerCase())};var = Ub=3D{google:1,googlegroups:1,gmail:1,googlemail:1,googleimages:1,googlep= rint:1};function = Vb(a){a=3Da.google_page_location||a.google_page_url;if(!a)return = j;a=3Da.toString();if(a.indexOf("http://")=3D=3D0)a=3Da.substring(7,a.len= gth);else = if(a.indexOf("https://")=3D=3D0)a=3Da.substring(8,a.length);var = b=3Da.indexOf("/");if(b=3D=3D-1)b=3Da.length;a=3Da.substring(0,b);a=3Da.s= plit(".");b=3Dj;if(a.length>=3D3)b=3Da[a.length-3]in = Ub;if(a.length>=3D2)b=3Db||a[a.length-2]in Ub;return b}=0A= function Wb(a,b,c){if(Vb(a)){a.google_new_domain_checked=3D1;return = j}if(a.google_new_domain_checked=3D=3D0){var = d=3DMath.random();if(d<=3Dc){c=3D"http://"+bb+"/pagead/test_domain.js";d=3D= "script";b.write("<"+d+' = src=3D"'+c+'">");a.google_new_domain_checked=3D1;return = g}}return j}function = Xb(a){if(!Vb(a)&&a.google_new_domain_enabled=3D=3D1)return"http://"+bb;re= turn"http://"+cb};var = W=3Dfunction(a){this.s=3Da;this.f=3D[];this.e=3D0;this.a=3D[];this.o=3D0;= this.b=3D[];this.m=3Dj;this.g=3Dthis.h=3D"";this.l=3Dj};W.prototype.q=3Df= unction(a,b){var = c=3Dthis.s[b],d=3Dthis.f;this.s[b]=3Dfunction(e){if(e&&e.length>0){var = f=3De.length>1?e[1].url:h;d.push([a,ta(e[0].url),f])}c(e)}};W.prototype.p= =3Dfunction(){this.e++};W.prototype.r=3Dfunction(a){this.a.push(a)};W.pro= totype.n=3Dfunction(){if(!this.m){db("http://"+K+"/pagead/osd.js");this.m= =3Dg}};=0A= W.prototype.i=3Dfunction(a){if(this.e>0)for(var = b=3Ddocument.getElementsByTagName("iframe"),c=3Dthis.l?"google_ads_iframe= _":"google_ads_frame",d=3D0;d0)for(var = c=3Ddocument.getElementsByTagName("a"),d=3Dfunction(x,y){return = x.innerHTML.indexOf(y)>0},e=3D0;e0){for(var = d=3D0;d1)c=3Da[0];return = ua(c,"\"'")},kc=3D/[^\d]+$/,lc=3Dfunction(a){return(a=3Da.match(kc))&&a[0= ]||h},mc=3D{cm:1,"in":1,mm:1,pc:1,pt:1},nc=3D{em:1,ex:1},oc=3Dfunction(a)= {var b=3Dhc(a,"fontSize"),c=3Dlc(b);if(b&&"px"=3D=3Dc)return = parseInt(b,10);if(E)if(c in mc)return ic(a,b,"left",=0A= "pixelLeft");else if(a.parentNode&&a.parentNode.nodeType=3D=3D1&&c in = nc){a=3Da.parentNode;c=3Dhc(a,"fontSize");return = ic(a,b=3D=3Dc?"1em":b,"left","pixelLeft")}c=3DUa("span",{style:"visibilit= y:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;heig= ht:1em;"});Wa(a,c);b=3Dc.offsetHeight;c&&c.parentNode&&c.parentNode.remov= eChild(c);return b};var X=3D{};function pc(a){if(a=3D=3D1)return = g;return!X[a]}function = Y(a,b){if(a)if(b=3D=3D1)if(X[b])X[b]+=3D","+a;else X[b]=3Da;else = X[b]=3Da}function qc(){var a=3D[];L(X,function(b){a.push(b)});return = a.join(",")}function rc(a,b){if(a&&a instanceof Array)for(var = c=3D0;c");a=3DWb(a,b,H("1= ",0.01));(d=3Dd||a)&&fb("msie")&&!window.opera?b.write("<"+c+' = src=3D"http://'+K+'/pagead/render_ads.js">"):b.write("<"+c+'>goog= le_protectAndRun("ads_core.google_render_ad", google_handleError, = google_render_ad);")}function $(a){return a!=3Dh?'"'+a+'"':'""'}=0A= function vc(a){var b=3D"google_unique_id";if(a[b])++a[b];else = a[b]=3D1;return a[b]}var wc=3Dfunction(a,b){var = c=3Db.slice(-1),d=3Dc=3D=3D"?"||c=3D=3D"#"?"":"&",e=3D[b];b=3Dfunction(f,= i){if(f||f=3D=3D=3D0||f=3D=3D=3Dj){if(typeof = f=3D=3D"boolean")f=3Df?1:0;e.push(d,i,"=3D",M(f));d=3D"&"}};L(a,b);return= e.join("")};function xc(){var = a=3DE&&G("6"),b=3DDa&&G("1.8.1"),c=3DF&&G("525");if(Ja&&(a||b||c))return = g;else if(Ia&&(c||b))return g;else if(Ka&&b)return g;return j}=0A= function uc(){return(typeof = ExpandableAdSlotFactory=3D=3D"function"||typeof = ExpandableAdSlotFactory=3D=3D"object")&&typeof = ExpandableAdSlotFactory.createIframe=3D=3D"function"}function = tc(a,b){if(a.google_allow_expandable_ads=3D=3D=3Dj||!b.body||a.google_ad_= output!=3D"html"||ob(a,b)||!yc(a)||isNaN(a.google_ad_height)||isNaN(a.goo= gle_ad_width)||!xc())return j;return g}function yc(a){var = b=3Da.google_ad_format;if(O(b))return = j;if(N(a)&&b!=3D"468x15_0ads_al")return j;return g}=0A= function zc(){var = a;if(Q.google_ad_output=3D=3D"html"&&!(N(Q)||O(Q.google_ad_format))&&pc(0= )){a=3D["6083035","6083034"];a=3DP(a,H("0.001",0));Y(a,0)}return = a=3D=3D"6083035"}=0A= function = Ac(a,b){if((a.google_unique_id||0)!=3D0||O(a.google_ad_format))return"";v= ar = c=3D"";a=3DN(a);if(b=3D=3D"html"||a)c=3DP(["36815001","36815002"],H("0.01= ",0));if(c=3D=3D""&&(b=3D=3D"js"||a))c=3DP(["36815003","36815004"],H("0.0= 1",0));if(c=3D=3D""&&(b=3D=3D"html"||b=3D=3D"js"))c=3DP(["36813005","3681= 3006"],H("0.008",0));return c}=0A= function Bc(){var = a=3DZb(),b=3Dwindow.google_enable_osd,c=3D"";if(b=3D=3D=3Dg){c=3D"3681300= 6";Cc(c,a)}else = if(b!=3D=3Dj&&pc(0)){c=3DAc(window,window.google_ad_output);if(c!=3D"")Cc= (c,a);else c=3Da.getEid()}return c}function Cc(a,b){var = c=3Db.getOsdMode(),d=3D[];switch(a){case = "36815004":c=3D1;d=3D["js"];break;case = "36815002":c=3D1;d=3D["html"];break;case = "36813006":c=3D0;d=3D["html","js"];break}d.length>0&&b.setValidAdBlockTyp= es(d);b.setupOsd(c,a,window.google_correlator)}=0A= function Dc(a,b,c,d){var = e=3Dvc(a);c=3Dwc({ifi:e},c);c=3Dc.substring(0,1992);c=3Dc.replace(/%\w?$/= ,"");var = f=3D"script";if((a.google_ad_output=3D=3D"js"||a.google_ad_output=3D=3D"j= son_html")&&(a.google_ad_request_done||a.google_radlink_request_done))b.w= rite("<"+f+' language=3D"JavaScript1.1" = src=3D'+$(k(c))+">");else = if(a.google_ad_output=3D=3D"html")if(Z&&uc()){b=3Da.google_container_id||= d||h;a["google_expandable_ad_slot"+e]=3DExpandableAdSlotFactory.createIfr= ame("google_ads_frame"+e,k(c),a.google_ad_width,a.google_ad_height,=0A= b)}else{e=3D'';a.google_container_id?Ec(a.google_container_i= d,b,e):b.write(e)}return c}function Fc(a){Mb(a)}function = Gc(a){if(!Hc())return j;var = b=3Dzc();a=3DIc(a);b=3DXb(window)+Jc(a.google_ad_format,b);window.google_= ad_url=3Dwc(a,b);return g}=0A= var Mc=3Dfunction(a){a.dt=3Daa;var = b=3Dwindow.google_prev_ad_formats_by_region,c=3Dwindow.google_ad_section,= d=3Dwindow.google_ad_format,e=3Dwindow.google_ad_slot;if(b[c])if(!O(d)){a= .prev_fmts=3Db[c];if(window.google_num_slots_by_client.length>1)a.slot=3D= window.google_num_slots_by_client[R]}var = f=3Dwindow.google_prev_ad_slotnames_by_region;if(f[c])a.prev_slotnames=3D= f[c].toLowerCase();if(d){if(!O(d))if(b[c])b[c]+=3D","+d;else = b[c]=3Dd}else if(e)if(f[c])f[c]+=3D","+e;else = f[c]=3De;a.correlator=3Dwindow.google_correlator;if(window.google_new_dom= ain_checked=3D=3D=0A= 1&&window.google_new_domain_enabled=3D=3D0)a.dblk=3D1;if(window.google_ad= _channel){b=3Dwindow.google_num_slots_by_channel;c=3D"";d=3Dwindow.google= _ad_channel.split(Kc);for(e=3D0;e-1){for(= e=3D0;e1?wind= ow.decodeURIComponent?decodeURIComponent(d[1].replace(/\+/g," = ")):unescape(d[1]):""}catch(e){}}return b}function Vc(){var = a=3Dwindow,b=3DUc(document.URL);if(b.google_ad_override){a.google_ad_over= ride=3Db.google_ad_override;a.google_adtest=3D"on"}}=0A= function = Ec(a,b,c){if(a)if((a=3Db.getElementById(a))&&c&&c.length!=3D""){a.style.v= isibility=3D"visible";a.innerHTML=3Dc}}=0A= var Jc=3Dfunction(a,b){return = a=3DO(a)?"/pagead/sdo?":b?"/pagead/render_iframe_ads.html#":"/pagead/ads?= "},Wc=3Dfunction(a,b){b.dff=3Djc(a);b.dfs=3Doc(a)},Xc=3Dfunction(a){a.ref= =3Dwindow.google_referrer_url;a.loc=3Dwindow.google_page_location},Hc=3Df= unction(){var = a=3Dwindow.google_prev_ad_formats_by_region,b=3Dwindow.google_prev_ad_slo= tnames_by_region,c=3Dwindow.google_ad_section;if(O(window.google_ad_forma= t)){window.google_num_sdo_slots+=3D1;if(window.google_num_sdo_slots>4)ret= urn j}else if(N(window)){window.google_num_0ad_slots+=3D=0A= 1;if(window.google_num_0ad_slots>3)return = j}else{window.google_num_ad_slots+=3D1;if(window.google_num_slots_to_rota= te){Ib(1);a[c]=3Dh;b[c]=3Dh;if(window.google_num_slot_to_show=3D=3Dh)wind= ow.google_num_slot_to_show=3D(new = Date).getTime()%window.google_num_slots_to_rotate+1;if(window.google_num_= slot_to_show!=3Dwindow.google_num_ad_slots)return j}else = if(window.google_num_ad_slots>6&&c=3D=3D"")return = j}a=3Dwindow.google_num_slots_by_client;if(a[R])a[R]+=3D1;else{a[R]=3D1;a= .length+=3D1}return g},Ic=3Dfunction(a){var b=3D{};Qc(b);=0A= Mc(b);ib(b);a&&Wc(a,b);Nc(b);Rc(b);Xc(b);b.fu=3DHb;return = b},Pc=3Dfunction(a){var = b=3Dwindow.google_container_id&&Pa(window.google_container_id)||Pa(a);if(= !b&&!window.google_container_id&&a){document.write("");b=3DPa(a)}return b},Kc=3D/[+, = ]/;window.google_render_ad=3DOc;var = Yc=3D["30143070","30143071","30143075"],Zc=3Dtypeof = window.postMessage=3D=3D"function"||typeof = window.postMessage=3D=3D"object"||typeof = document.postMessage=3D=3D"function",ad=3Dfunction(a,b){typeof = A1_googleCreateSlot=3D=3D"function"?A1_googleCreateSlot(a.google_ad_clien= t):$c(a,b)},cd=3Dfunction(){if(!bd())return j;return = g},dd=3Dfunction(a){if(O(a.google_ad_format))return j;var = b=3Da.google_ad_output;if(b&&b!=3D"html")return = j;a=3Da.google_ad_client;if(typeof = a!=3D"string"||a.substring(0,4)!=3D"pub-"&&a.substring(0,7)!=3D"ca-pub-")= return j;=0A= return g},fd=3Dfunction(a){if(typeof = a.google_a1_eid=3D=3D"string")return a.google_a1_eid;var = b=3DH("0",0);a.google_a1_eid=3Ded(Yc,b);return = a.google_a1_eid},$c=3Dfunction(a,b){if(!a.google_included_a1_script){var = c=3D"script",d=3D"/pagead/show_ads_sra3.js?v\x3d1";b.write("<"+c+' = src=3D"http://'+K+d+'">");a.google_included_a1_script=3Dg}},bd=3D= function(){if(E&&G("8"))return j;return Zc||!F},ed=3Dfunction(a,b){var = c=3DMath.random();if(c=3D0) {=0A= if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A= if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A= if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A= v=3D_uGC(s,"__utmv=3D","&");=0A= z=3D_uGC(s,"__utmz=3D","&");=0A= k=3D_uGC(s,"__utmk=3D","&");=0A= xx=3D_uGC(s,"__utmx=3D","&");=0A= if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) = {_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A= if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A= else if(a!=3D"-") f=3D2;=0A= }=0A= }=0A= if(f=3D=3D1) {=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A= } else if (f=3D=3D2) {=0A= a=3D_uFixA(s,"&",_ust);=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A= _ufns=3D1;=0A= } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A= b =3D _uGC(dc,"__utmb=3D"+_udh,";");=0A= b =3D ("-" =3D=3D b) ? _udh : b; =0A= _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A= } else {=0A= if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A= else {=0A= a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A= nv=3D1;=0A= }=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A= _ufns=3D1;=0A= }=0A= if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A= xx=3D_uUES(xx);=0A= if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= if (_ulink && v && v!=3D"" && v!=3D"-") {=0A= v=3D_uUES(v);=0A= if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= var wc=3Dwindow;=0A= var c=3D_ubd.cookie;=0A= if(wc && wc.gaGlobal && wc.gaGlobal.dh=3D=3D_udh){=0A= var g=3Dwc.gaGlobal;=0A= var ua=3Dc.split("__utma=3D"+_udh+".")[1].split(";")[0].split(".");=0A= if(g.sid)ua[3]=3Dg.sid;=0A= if(nv>0){=0A= ua[2]=3Dua[3];=0A= if(g.vid){=0A= var v=3Dg.vid.split(".");=0A= ua[0]=3Dv[0];=0A= ua[1]=3Dv[1];=0A= }=0A= }=0A= _ubd.cookie=3D"__utma=3D"+_udh+"."+ua.join(".")+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= _uInfo(page);=0A= _ufns=3D0;=0A= _ufno=3D0;=0A= if (!page || page=3D=3D"") _uff=3D1;=0A= }=0A= function _uGH() {=0A= var hid;=0A= var wc=3Dwindow;=0A= if (wc && wc.gaGlobal && wc.gaGlobal.hid) {=0A= hid=3Dwc.gaGlobal.hid;=0A= } else {=0A= hid=3DMath.round(Math.random()*0x7fffffff);=0A= if (!wc.gaGlobal) wc.gaGlobal=3D{};=0A= wc.gaGlobal.hid=3Dhid;=0A= }=0A= return hid;=0A= }=0A= function _uInfo(page) {=0A= var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A= if (page && page!=3D"") pg=3D_uES(page,1);=0A= _ur=3D_ubd.referrer;=0A= if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A= else {=0A= dm=3D_ubd.domain;=0A= if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A= p=3D_ur.indexOf(dm);=0A= if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A= if (_ur.indexOf("[")=3D=3D0 && = _ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A= }=0A= s+=3D"&utmn=3D"+_uu;=0A= if (_ufsc) s+=3D_uBInfo();=0A= if (_uctm) s+=3D_uCInfo();=0A= if (_utitle && _ubd.title && _ubd.title!=3D"") = s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A= if (_udl.hostname && _udl.hostname!=3D"") = s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A= if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A= s+=3D"&utmhid=3D"+_uGH();=0A= s+=3D"&utmr=3D"+_ur;=0A= s+=3D"&utmp=3D"+pg;=0A= if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A= var i=3Dnew Image(1,1);=0A= i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A= i.onload=3Dfunction() { _uVoid(); }=0A= }=0A= if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A= var i2=3Dnew Image(1,1);=0A= = i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+= _uGCS();=0A= i2.onload=3Dfunction() { _uVoid(); }=0A= }=0A= return;=0A= }=0A= function _uVoid() { return; }=0A= function _uCInfo() {=0A= if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A= if (!_uVG()) return;=0A= var = c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""= ;=0A= if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A= s+=3D_udl.search;=0A= var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A= var dc=3D_ubd.cookie;=0A= x=3D" expires=3D"+x.toGMTString()+";";=0A= if (_ulink && !_ubl) {=0A= z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A= if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { = _ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A= }=0A= z=3Ddc.indexOf("__utmz=3D"+_udh+".");=0A= if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh+".",";"); }=0A= else { z=3D"-"; }=0A= t=3D_uGC(s,_ucid+"=3D","&");=0A= t2=3D_uGC(s,_ucsr+"=3D","&");=0A= t3=3D_uGC(s,"gclid=3D","&");=0A= if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && = t3!=3D"")) {=0A= if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A= if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; = c+=3D"utmcsr=3D"+_uEC(t2); }=0A= if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; = c+=3D"utmgclid=3D"+_uEC(t3); }=0A= t=3D_uGC(s,_uccn+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A= else c+=3D"|utmccn=3D(not+set)";=0A= t=3D_uGC(s,_ucmd+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A= else c+=3D"|utmcmd=3D(not+set)";=0A= t=3D_uGC(s,_uctr+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A= else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") = c+=3D"|utmctr=3D"+_uEC(t); }=0A= t=3D_uGC(s,_ucct+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A= t=3D_uGC(s,_ucno+"=3D","&");=0A= if (t=3D=3D"1") o=3D1;=0A= if (z!=3D"-" && o=3D=3D1) return "";=0A= }=0A= if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && = _ufno=3D=3D1) return ""; }=0A= if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1) c=3D_uRef(); if = (z!=3D"-" && _ufno=3D=3D1) return ""; }=0A= if (c=3D=3D"-" || c=3D=3D"") {=0A= if (z=3D=3D"-" && _ufns=3D=3D1) { = c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A= if (c=3D=3D"-" || c=3D=3D"") return "";=0A= }=0A= if (z!=3D"-") {=0A= i=3Dz.indexOf(".");=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= t=3Dz.substring(i+1,z.length);=0A= if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A= t=3Dz.substring(0,i);=0A= if ((i=3Dt.lastIndexOf(".")) > -1) {=0A= t=3Dt.substring(i+1,t.length);=0A= cn=3D(t*1);=0A= }=0A= }=0A= if (cs=3D=3D0 || _ufns=3D=3D1) {=0A= t=3D_uGC(dc,"__utma=3D"+_udh+".",";");=0A= if ((i=3Dt.lastIndexOf(".")) > 9) {=0A= _uns=3Dt.substring(i+1,t.length);=0A= _uns=3D(_uns*1);=0A= }=0A= cn++;=0A= if (_uns=3D=3D0) _uns=3D1;=0A= _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; = path=3D"+_utcp+"; "+x+_udo;=0A= }=0A= if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A= else return "&utmcr=3D1";=0A= }=0A= function _uRef() {=0A= if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A= var i=3D0,h,k,n;=0A= if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A= h=3D_ur.substring(i+3,_ur.length);=0A= if (h.indexOf("/") > -1) {=0A= k=3Dh.substring(h.indexOf("/"),h.length);=0A= if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A= h=3Dh.substring(0,h.indexOf("/"));=0A= }=0A= h=3Dh.toLowerCase();=0A= n=3Dh;=0A= if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A= for (var ii=3D0;ii<_uRno.length;ii++) {=0A= if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && = n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A= }=0A= if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A= return = "utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D= referral";=0A= }=0A= function _uOrg(t) {=0A= if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A= var i=3D0,h,k;=0A= if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A= h=3D_ur.substring(i+3,_ur.length);=0A= if (h.indexOf("/") > -1) {=0A= h=3Dh.substring(0,h.indexOf("/"));=0A= }=0A= for (var ii=3D0;ii<_uOsr.length;ii++) {=0A= if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A= if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || = (i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A= k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A= if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A= for (var yy=3D0;yy<_uOno.length;yy++) {=0A= if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; = break; }=0A= }=0A= if (t) return _uEC(k);=0A= else return = "utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|= utmcmd=3Dorganic";=0A= }=0A= }=0A= }=0A= return "";=0A= }=0A= function _uGCse() {=0A= var h,p;=0A= h=3Dp=3D_ur.split("://")[1];=0A= if(h.indexOf("/")>-1) {=0A= h=3Dh.split("/")[0];=0A= p=3Dp.substring(p.indexOf("/")+1,p.length);=0A= }=0A= if(p.indexOf("?")>-1) {=0A= p=3Dp.split("?")[0];=0A= }=0A= if(h.toLowerCase().indexOf("google")>-1) {=0A= if(_ur.indexOf("?q=3D")>-1 || _ur.indexOf("&q=3D")>-1) {=0A= if (p.toLowerCase().indexOf("cse")>-1) {=0A= return true;=0A= }=0A= }=0A= }=0A= }=0A= function _uBInfo() {=0A= var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A= var n=3Dnavigator;=0A= if (self.screen) {=0A= sr=3Dscreen.width+"x"+screen.height;=0A= sc=3Dscreen.colorDepth+"-bit";=0A= } else if (self.java) {=0A= var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A= var s=3Dj.getScreenSize();=0A= sr=3Ds.width+"x"+s.height;=0A= }=0A= if (n.language) { ul=3Dn.language.toLowerCase(); }=0A= else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A= je=3Dn.javaEnabled()?1:0;=0A= if (_uflash) fl=3D_uFlash();=0A= if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A= else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A= return = "&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j= e+"&utmfl=3D"+fl;=0A= }=0A= function __utmSetTrans() {=0A= var e;=0A= if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A= else if (_ubd.utmform && _ubd.utmform.utmtrans) = e=3D_ubd.utmform.utmtrans;=0A= if (!e) return;=0A= var l=3De.value.split("UTM:");=0A= var i,i2,c;=0A= if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A= if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A= =0A= for (var ii=3D0;ii-1) return;=0A= if (h) { url=3Dl+"#"+p; }=0A= else {=0A= if (iq=3D=3D-1 && ih=3D=3D-1) url=3Dl+"?"+p;=0A= else if (ih=3D=3D-1) url=3Dl+"&"+p;=0A= else if (iq=3D=3D-1) url=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A= else url=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A= }=0A= }=0A= return url;=0A= }=0A= function __utmLinker(l,h) {=0A= if (!_ulink || !l || l=3D=3D"") return;=0A= _udl.href=3D__utmLinkerUrl(l,h);=0A= }=0A= function __utmLinkPost(f,h) {=0A= if (!_ulink || !f || !f.action) return;=0A= f.action=3D__utmLinkerUrl(f.action, h);=0A= return;=0A= }=0A= function __utmSetVar(v) {=0A= if (!v || v=3D=3D"") return;=0A= if (!_udo || _udo =3D=3D "") {=0A= _udh=3D_uDomain();=0A= if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A= }=0A= if (!_uVG()) return;=0A= var r=3DMath.round(Math.random() * 2147483647);=0A= _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; = expires=3D"+_uNx()+";"+_udo;=0A= var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A= if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A= if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A= var i=3Dnew Image(1,1);=0A= i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A= i.onload=3Dfunction() { _uVoid(); }=0A= }=0A= if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A= var i2=3Dnew Image(1,1);=0A= = i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+= _uGCS();=0A= i2.onload=3Dfunction() { _uVoid(); }=0A= }=0A= }=0A= function _uGCS() {=0A= var t,c=3D"",dc=3D_ubd.cookie;=0A= if ((t=3D_uGC(dc,"__utma=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utma=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") = c+=3D_uES("__utmx=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmz=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utmz=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmv=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utmv=3D"+t+";");=0A= if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A= return c;=0A= }=0A= function _uGC(l,n,s) {=0A= if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A= var i,i2,i3,c=3D"-";=0A= i=3Dl.indexOf(n);=0A= i3=3Dn.indexOf("=3D")+1;=0A= if (i > -1) {=0A= i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A= c=3Dl.substring((i+i3),i2);=0A= }=0A= return c;=0A= }=0A= function _uDomain() {=0A= if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A= if (_udn=3D=3D"auto") {=0A= var d=3D_ubd.domain;=0A= if (d.substring(0,4)=3D=3D"www.") {=0A= d=3Dd.substring(4,d.length);=0A= }=0A= _udn=3Dd;=0A= }=0A= _udn =3D _udn.toLowerCase(); =0A= if (_uhash=3D=3D"off") return 1;=0A= return _uHash(_udn);=0A= }=0A= function _uHash(d) {=0A= if (!d || d=3D=3D"") return 1;=0A= var h=3D0,g=3D0;=0A= for (var i=3Dd.length-1;i>=3D0;i--) {=0A= var c=3DparseInt(d.charCodeAt(i));=0A= h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A= if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A= }=0A= return h;=0A= }=0A= function _uFixA(c,s,t) {=0A= if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A= var a=3D_uGC(c,"__utma=3D"+_udh+".",s);=0A= var lt=3D0,i=3D0;=0A= if ((i=3Da.lastIndexOf(".")) > 9) {=0A= _uns=3Da.substring(i+1,a.length);=0A= _uns=3D(_uns*1)+1;=0A= a=3Da.substring(0,i);=0A= if ((i=3Da.lastIndexOf(".")) > 7) {=0A= lt=3Da.substring(i+1,a.length);=0A= a=3Da.substring(0,i);=0A= }=0A= if ((i=3Da.lastIndexOf(".")) > 5) {=0A= a=3Da.substring(0,i);=0A= }=0A= a+=3D"."+lt+"."+t+"."+_uns;=0A= }=0A= return a;=0A= }=0A= function _uTrim(s) {=0A= if (!s || s=3D=3D"") return "";=0A= while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || = (s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A= while ((s.charAt(s.length-1)=3D=3D' ') || = (s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) = s=3Ds.substring(0,s.length-1);=0A= return s;=0A= }=0A= function _uEC(s) {=0A= var n=3D"";=0A= if (!s || s=3D=3D"") return "";=0A= for (var i=3D0;i0) r=3Da.substring(i+1,i2); else return = ""; =0A= if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return = ""; =0A= if (f) {=0A= return r;=0A= } else {=0A= var c=3Dnew = Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'= ,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A= return = c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r= &7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5= &m]+c[t&m];=0A= }=0A= }=0A= function _uIN(n) {=0A= if (!n) return false;=0A= for (var i=3D0;i"9") && (c!=3D".")) return false;=0A= }=0A= return true;=0A= }=0A= function _uES(s,u) {=0A= if (typeof(encodeURIComponent) =3D=3D 'function') {=0A= if (u) return encodeURI(s);=0A= else return encodeURIComponent(s);=0A= } else {=0A= return escape(s);=0A= }=0A= }=0A= function _uUES(s) {=0A= if (typeof(decodeURIComponent) =3D=3D 'function') {=0A= return decodeURIComponent(s);=0A= } else {=0A= return unescape(s);=0A= }=0A= }=0A= function _uVG() {=0A= if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") = =3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && = _udn.indexOf("google.org")=3D=3D-1) {=0A= return false;=0A= }=0A= return true;=0A= }=0A= function _uSP() {=0A= var s=3D100;=0A= if (_usample) s=3D_usample;=0A= if(s>=3D100 || s<=3D0) return true;=0A= return ((__utmVisitorCode(1)%10000)<(s*100));=0A= }=0A= function urchinPathCopy(p){=0A= var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A= cs=3Dnew Array("a","b","c","v","x","z");=0A= h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A= nx=3D_uNx()+";";=0A= tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A= tx=3Dtx.toGMTString()+";";=0A= sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A= sx=3Dsx.toGMTString()+";";=0A= for (i=3D0;i<6;i++){=0A= t=3D" expires=3D";=0A= if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) = t+=3Dsx; else t+=3Dnx;=0A= c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A= if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A= }=0A= }=0A= function _uCO() {=0A= if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A= var d=3D'www.google.com';=0A= if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A= _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A= var sc=3Ddocument.createElement('script');=0A= sc.type=3D'text/javascript';=0A= sc.id=3D"_gasojs";=0A= = sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+= Math.random();=0A= document.getElementsByTagName('head')[0].appendChild(sc); =0A= }=0A= function _uGT() {=0A= var h=3Dlocation.hash, a;=0A= if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A= a=3D_uGC(h,"gaso=3D","&");=0A= } else {=0A= a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A= }=0A= return a;=0A= }=0A= var _utk=3D_uGT();=0A= if (_utk && _utk!=3D"" && _utk.length>10 && _utk.indexOf("=3D")=3D=3D-1) = {=0A= if (window.addEventListener) {=0A= window.addEventListener('load', _uCO, false); =0A= } else if (window.attachEvent) { =0A= window.attachEvent('onload', _uCO);=0A= }=0A= }=0A= =0A= function _uNx() {=0A= return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A= }=0A= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://103bees.com/bees/?bee=6863&fid=9951 =0A= function set_103Cookie(cookie_val)=0A= {=0A= var date =3D new Date();=0A= date.setTime(date.getTime() + (30 * 60 * 1000));=0A= document.cookie =3D "103bees=3D" + cookie_val + "; expires=3D" + = date.toGMTString() + "; path=3D/";=0A= }=0A= =0A= function get_103Cookie()=0A= {=0A= var nameEQ =3D "103bees=3D";=0A= var ca =3D document.cookie.split(';');=0A= for(var i=3D0;i < ca.length;i++)=0A= {=0A= var c =3D ca[i];=0A= while (c.charAt(0) =3D=3D ' ') =0A= c =3D c.substring(1,c.length);=0A= =0A= if (c.indexOf(nameEQ) =3D=3D 0)=0A= return c.substring(nameEQ.length,c.length);=0A= }=0A= return null;=0A= }=0A= =0A= if(get_103Cookie() =3D=3D null)=0A= {=0A= url =3D = 'http://103bees.com/beehive/collector.php?bee=3D6863&fid=3D9951&r= ef=3D' + encodeURIComponent(document.referrer) + '&req=3D' + = encodeURIComponent(document.URL);=0A= document.write('3D""');=0A= set_103Cookie(encodeURIComponent(document.referrer));=0A= }=0A= ------=_NextPart_000_0040_01CA5E39.57B90310 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://s.clicktale.net/WRa.js var WRWarn=3D"Copyright 2006-2009 ClickTale Ltd., US Patent = Pending",WRA,WRD=3Ddocument,WRAS=3Dlocation,WRA4=3Dfalse,WRA5,WRv,WRL,WRE= =3D".clicktale.net/",WRAP=3D"http://s.clicktale.net/",WRn,WRB=3Dnew = Array(),WRw,ClickTaleCookieDomain,ClickTaleUnloadPause=3D500,ClickTaleEve= ntsMask=3D255-128,ClickTaleFetchFrom,ClickTaleCookieExpiryDays=3D365,WRAf= ,WRAT,WRAU,WRAV,WRAW;(function(a){if(a.search(/www\.\w+\.\w+/i)=3D=3D0){C= lickTaleCookieDomain=3Da.substring(4,a.length)}})(WRD.domain);WRA6();if(W= RA4){WRA7("note1: entering debug mode, ClickTale script is = installed")}if(typeof WRInitTime=3D=3D"undefined"){var WRInitTime=3D(new = Date()).getTime();if(WRA4){WRA7("warning1: top ClickTale script is = missing in the = page")}}if(WRD.addEventListener){WRD.addEventListener("DOMContentLoaded",= WRondomload,false)}WRn=3DWRp();if(WRn&&WRn.substr(0,2)=3D=3D"IE"){WRD.wri= te('