From: <¥Ñ Windows Internet Explorer 7 Àx¦s> Subject: Federal and Grouptyre Launch Red Letter Day Promotion Date: Mon, 2 Nov 2009 09:20:36 +0800 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0297_01CA5B9D.BC657800" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350 This is a multi-part message in MIME format. ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/News/business_area/Wholesale/17219.html =EF=BB=BF Federal and = Grouptyre Launch Red Letter Day Promotion
dianechang =E2=80=A2 Log out | Edit personal=20 information
Home | News | BUSINES= S=20 NEWS | Wholesale=20 | Federal and Grouptyre Launch Red Letter Day Promotion =

Federal and Grouptyre Launch Red Letter Day Promotion

3Dimage=20=20

Grouptyre has teamed up with Federal =E2=80=93 the value = brand for which the=20 independent wholesaler has exclusive distribution rights in the UK = =E2=80=93 to launch a=20 national promotion, which promises a Red Letter Day for six lucky = retailers.=20

The promotion is named thus because the prizes on offer are Red = Letter Day=20 experience packages: from scuba diving with sharks, powerboating, = carriage=20 driving, Medieval jousting and white water rafting for those looking for = an=20 adrenalin rush to less energetic pursuits such as spa days, theatre = trips, wine=20 and whisky tasting master classes and luxury weekend=20 breaks.    

The promotion runs in two = distinct=20 stages =E2=80=93 from 1 September to 31 October and from 1 November to = 31 December =E2=80=93 and=20 the winners will be chosen at random from all the entries received. = Every=20 Federal tyre participating retailers purchase from their local Grouptyre = supplier will improve their chances of winning a Red Letter Day = experience. The=20 first prize is valued at =C2=A3500 and there are two runner-up prizes = worth =C2=A3250 in=20 each of the promotion periods. Full details on the huge choice of Red = Letter Day=20 experiences are available at www.redletterdays.co.uk. To participate in = this=20 Grouptyre/Federal promotion all tyre retailers have to do is sign up = online at=20 www.grouptyre.co.uk/federal by completing the registration form and = answering=20 one straightforward multiple choice = question.

=E2=80=9CWe=E2=80=99re taking a more=20 proactive approach to meeting the needs of independent tyre retailers by = giving=20 them the chance to participate in national incentives and special=20 promotions.  Recent initiatives have been extremely well received = so we are=20 keen to continue building and developing relationships with this new = promotion,=20 our first in conjunction with Federal,=E2=80=9D says Grouptyre sales = director Paul=20 Hollows.

Federal range

Federal states = that=20 co-operation with major tyre companies has enabled it to develop the = technical=20 capabilities required to produce the quality compounds and tread = patterns=20 increasingly demanded by drivers today, allowing it to increase its = visibility=20 in the UK market.  
The current Federal range extends from = high=20 performance tyres =E2=80=93 including the Super Steel series of = all-season tyres and the=20 street legal 595 Competition Series, developed specifically for street, = circuit,=20 drag and drift competitions =E2=80=93 to light truck, 4x4 and SUV = tyres.

The=20 manufacturer has evolved its Formoza FD1, to create the FD2.  This = features=20 Federal=E2=80=99s new =E2=80=9CDisorder Pitch Evolution Theory=E2=80=9D = technology, which reduces noise=20 levels to a minimum while maintaining performance and handling = capabilities. The=20 new Xtramile XR01aims to maximise tread life through its compound mix = and=20 deliver improved fuel economy, precise and consistent handling at high = speed and=20 excellent wet grip.

In van tyres, the manufacturer offers the = Eco-van=20 tyre, which it says has been engineered to withstand a higher loading = capacity=20 and meet the needs of everyday commercial use, and the 791 Plus, which = is=20 designed to deliver a car-like smooth, quiet ride and provide = outstanding=20 handling and braking in wet and dry conditions.

Improved handling = capabilities at high speed, water dispersal and all-terrain control are=20 hallmarks of the Couragia Adventure series, which sits alongside the = MR273 =E2=80=93 a=20 steel belted radial for mini-trucks. The Himalaya range =E2=80=93 = recently featured in=20 Tyres & Accesssories August Winter Tyres section =E2=80=93 uses a = winter tread=20 compound for increased traction when braking on snow and ice.

Add to: 3D"Add=20 del.icio.us 3D"Digg=20 Digg 3D"Add Technorati
  • 3Demail=20Email= to a=20 friend=20
    3Demail=20 =20

    E-mail to a friend

    =20
    =20
    =20
    =20
    =20
    =20
    =20 =20
  • 3Dprint=20 = Print=20 version
  • = Plain=20 text
Copyright Tyre Industry Publications Ltd. All = rights=20 reserved
Tags
No=20 tags for this article =20
My tags:=20
Business Directory
  • Blackcircles=20
  • E=20 Tyres
  • Watts=20 Rubber
  • Vintage=20 Tyre Suppliers
  • International=20 Tyre & Wheel Solutions Ltd
Call=20 +44 (0) 1782 214224
or email our advertising = department to=20 enhance your directory entry

Tyre Industry Publications Limited - Registered Office. Unit 1, = Magnolia=20 Centre, Telford Road, Clacton-on-Sea, Essex, CO15 4LP - Company No. = 01023538 -=20 Registered in England

------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/_open_ad/www/delivery/avw.php?zoneid=1&cb=INSERT_RANDOM_NUMBER_HERE&n=a6ff58e4 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 gqjA/kNcmx1T/9k= ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/font_decrease.gif R0lGODlhDgAOAIAAAAhVb+Xl5SH5BAAAAAAALAAAAAAOAA4AAAIQjI+py+0PG5h0qlqj3rzDAgA7 ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/font_enlarge.gif R0lGODlhDgAOAIAAAAhVb+Xl5SH5BAAAAAAALAAAAAAOAA4AAAIXjI+py30AnIEyUAZzVlq364Bf VJUmUwAAOw== ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/thumbnail.php?file=FedGTpromo_781241946.jpg&size=article_medium /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcg SlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMP FB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEc ITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgA 1AEsAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwAB AgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpD REVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR AD8A9/ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDD8Wa0NC8PXN2GAmI8uEHu5 6flyfwrwAksSxJJJySe9dx8TdaN9ri6dG2YbMfNg8FyMn8hx+dcPXl4mpzTt2PucjwnsMNzveWvy 6CUUtJXOe0LRRSUgFrovBOh/254ihSRd1tB+9myOCAeF/E/1rnK9w8AaH/Y/h2OWRcXN2BLJ7D+E fl/Ot8PT55+R5Wb4z6thnb4paI6scACloor1j4EKKKKACiiigApkjrHGzscKoJJ9qfXH+NfE1tpZ ttMMqie5+ZhnkID/AFPH4GoqTUIuTLpwc5KKMDVmmv8AUpL6C7ltbkn93LBIVIA6Ajow9jxWWPip rXhi9W18RWC31t1F3ABG5H+790n24rSDQyxhlmXnkcciq13ZwahbvBdrFNGeoYV58K0ou7O6pQjJ aaHYeHfiJ4Z8TFI7HUo0uWH/AB7T/JIPwPX8Ca6qvk7xf4Pt9Gukubcn7JKSNp52t6ZqhZeN/E2m Wq2tprt9DAn3YxMSF9hnpXfCopK6OGcHF2Z9gUUlQXd9a6fD513cRwRk7Q0jYGfT9K0ILFFU7HU7 LUldrK5jnCEBihzg0281fTtPlEV3ewQSEbgsjgEj1oAvUU0MpUMCCpGc1Rtdb0u+YrbX9vKwBYqr jIA6nFAGhRWLpninSdXvns7SctKoJG5SAwHUj1rZoAWiikoAWiikoAWikooAWikpaACs3XtVj0XR bq/kI/dIdgP8THhR+eK0a8q+KetGW7t9Iib5Ih5s2D1Y9B+A5/Gsq0+SDZ25fhfrWIjT6dfQ89nm kubiSeVi0kjF2J7knJplFFeQfoqSSsgooopDCiikpgdD4L0M674igidSbaE+bN9B0H4nAr3pQAAA MAVyXw90P+yPDyTSpi5u/wB6+Rgqv8K/lz+NdbXqYanyQ82fBZzjPrGJaXwx0X6i0UlFdB5ItFFJ QAtFJRQAEgAk8V88eLI7zVPF15PqMbQyiXEYZs7Yx93b/P8AE17F4s8TQ6IILfhpZskgH7qjv+P9 DXHa2+n+KbSNopUTUIMmMHjeO61hWjzxsnqdeGfJLma0Zz6arJbpGgOQB1PWrSaqHBLrn3rAYSzT C3hjZ5jx5YXJzXR2l0mjQR2epaILpZRukcjDox4wDXBTpSkztqzjFXKGsLb61pE1kyEFx8p9G7Gv GZYp4ZXikX50Yqc17PZzWMN/dXMlrK1ijERxuTk89mHpXNa94Y8Lz6m1xFrFzZidfMMMsPmEEk5w cjjiurDxaTuzjxNnZpH03XJ/EVN3hfP92dD/ADH9a6yub8epv8I3R/ush/8AHhXYcZi/DR1i03U5 JGCorqzE9gAc1xGu6nJrGr3F8wOyRyIweyjoPyx+dXbHVTYeEb61jOJr2cJx12AfN/MD8a0fEuhf 2R4U0cMuJt7mY/7TgHH4BcfhQM63U9X+yfD2K7DYlmtY40P+0ygH8uT+Fc/4Ksba00HU9X1AlIJE MG4DkJ/ER9SQPwrH1TUXv9B0DSoMs4QkqO7biqj9D+ddZ4thTRPAUOnRkctHCSO5+8T+JH60AU/A ul6Surz3VpqEl3JChCgwmMKDxk56muli8YaJPfCzjuiZi5TBjYDI684xj3rmfAIFj4d1fU2HTOD/ ALik/wDs1c34Q0lNa8QpDPloUVpZQDjcOmM+5IoA9Dl8d6BFdeR9qZ+cGRIyVH4/4V0asrqGUgqw yCO4rxTxNa28Xim7tbGIRxLIqKi9AcDP65r2i2hFvaxQjpGgT8higRJRRRQAUUtFACUUtJQBW1C9 i03T57ydsRQoXY187ahfS6lqFxeznMszlz7Z7V6X8VNb8u1t9HibDSnzZsH+EdAfqefwryyvOxdS 8uVdD7Lh/CezoutLeW3oFFFFcZ9CJS0lGaAFre8H6Gde8QwW7Lm3j/ezf7oPT8elYGa9r+HWh/2V 4fW5lXFxe4kbPZf4R+Rz+Nb0KfPPyPMzbGfVsM2viei/ryOvUBVAAAA4xS0UV6x+fhRS0lABRS0l ABSMwRSx6AZp1YviDUIba3+zPkmYchWKkL9RSbSV2OKu7HiHifVL+88S3t5Hds7NKV+yTqAqoDgK PQj/ACaisLwzTxvFmOeNtzwswLAeoI6itLxp4fgXS5tR08yLOr75fMmL7lPXrzkcV5jZ3dza6lHP GxWRGBDCoqSpyXNFWZ69RUXBciaex6Pperxx6ze6pbuH3SFY2HT3rpzr9jcQu9xEAdpLKeVPH6Vy c7Imk217BaRC1uiSwUYMUvfH1OTWPq14YdLfBw0nyj6d65k5KVkc8oprXdDF8SXMtw1qD5lmkm6J fulRngU3XtCvfEupnUtNtvIhdArI02cMOuPbpXM2U5SVmYHnoK9f0KCKLSIUd13gfNn171s20zCy aPbKxfFlrLeeGL6CCNpJWUbUQZJIYHj8q2qK3OY8n8KeFL6XXoZNQspobaD96fNQqGI6Dn3/AJV2 fjrTptS8OMltC8s0cquqIMk9QePoa6GaaO3heaaRY40BZmY4AHqa4PUvipYW8zR2FlJdKpx5jv5a n6cE/wAqmU4x3Z04fCV8S7UY3sZ3grwzfLr6XWoWc0MVspdfNQruboMZ+pP4Vs/ES01C/jsYLKzn nVS7uY0LAHgDp+NN0T4mWOp3kdpd2j2kkrBUcNvUk9AeARXdURkpK6FiMLWw0uWtGzOFh029svhn JaR2kxvJ87ogh3Dc+Dx/u1H8PNGvLCe+uL21lgYqqIJEKkjJJxn6CrOr/EjT9K1S4sTaTzNA2xnR hjPcfh0ql/wtjT/+gbdf99LUurBaXOiOV4ycVKNN2ZkWWh6re+MY7q5065jhe8Mzu8RAA3butes1 naJqo1rSotQW3eBJclFkIyQDjPFYWv8AxB0vRJ2tY1a8uUOGWMgKp9C3r9M1TlFK7Oenha1Wo6UI 3kjrqSvOLT4swPOFu9LeKInl45d5H4ECvQbO8t9Qs4ru1lWSCVdyMO9KM4y2ZeJwOIw1vbRtcnoq K5uYbS3e4uJViijG5nY4AFcFqPxWsoJmSwsJLlQceY7+WD9Bgn88U5TjHdiw2Dr4l2oxuehUySRY o2ds4UEnFcZoHxI0/VrtLS6t2s5pDtQltyMfTPGD+FdrRGSkrojEYarh58laNmeS3Pg7X/FmsXOq XKJZQyv8gnJ3BBwvyj29cVsWnwn0+PButQuJj3CKEH9a9C6UtZLDQ3erO2ecYpxUIPlS0sjlIfh1 4aiAzYvIfV5n/oavQ+DfDsP3dItj/vru/nW7RWipQXQ5JYzES+Ko/vZmL4d0RRxpFgP+3dP8Kf8A 2FpA6aXZf9+F/wAK0KQ0+WPYy9tU/mf3nn3xN1HRvB/gy7vU06xF7MPItF8hcmRv4hx/CMt+FfOt r8SfG+m4WPxFqACgALM/mAfg4Ndb8VtduvGvjx9P00+baaUPKjVXyHkz87j8cD/gNcx4il8SXFlH p2pREjzzKGKDdJJjb94dcCj3UKUpy3dzotE+LvxBnWWU6hFcQQDLmS1j/moBrbsv2i9XilWO+0Oy mHQtFK0ZPvzurgtGvLzQ9Kltic2l5IpuoM4LqjZAPcVR1nUbTVdXuNRGnW9pFIQEt4FwqKBgfjxk n1qYybbLcFZI920/9oXwzcMsd5YalbOeCyokiD8QwP6V2OnfE7wZqhVbbxDZh26JMxiOfTDAV8o2 Gl213C8zTNHz8vGQKrxaRcMyyQhZQZCgVTyffFadCvqtTlUkr3Pt+KaOZA8UiOh6MpyDT6+To/DW teHriyGh6reRXslu93ci2n2CGEc5bBA4AbOev87WifG/xtpoWOVodTiB/wCXmI7iP95SP1zSuYNW PqO4uIrW2luJ5BHDEhd3boqgZJNeHXvxH03VtUluGeeIFsKrKCAo6d/xrVk8V+I/ih4L1Gy0XQXs Zg6RzyS3I2OhBLKhIGTwM+x9680vfh34vsDifQbph6wgSj/x0ms6i5kbUWo77ndtrmj3yeW9/aiF uWEmR+hGDXFJ4asY9Qd5/EFj9kDcOpYuR/ugYz+NYsuga1bf6/SL+P8A3rZx/SoYLO5kkIEDlk5K sMfzrOzSsdF0tbnZeIvE2mQ6XZ6Pp6S/ZI28w3EqbfMIyPl/M0kEnhvWtGSyupjZ34JKXJbKMD2I 7Vix6vPbp9i1CAPbsMCKVeD9P/rVkararZ3ACrIIWGU3jBx6Uo2v5kvbc1P7GjsNYjj+129yinfv gfcpHaukj1AqmA/Fcpo0kEEMwuwUSQDZIozt+oq3m4/5Yr5ydnjOQac4tkKcdj6uopK5/wAXjXW0 uNNAVzdGUb2VlGEwf73viuhuyuY0qftJqF0r9Xscj8Uddk86HRYHITaJZ8Hqf4Qf5/lWf8OvDFtr E9xf38Ilt4CESNvus/U59cDHHvXHahd3V7fSz3srS3LHDuSDnHHbjtXWaPpvju102IaXHNFaSjzU CyRDO4deTmuNS5qnM1c+1qYb6rgFQhNRk+rdvW39bHpsHhjRbXUUv7fToIrhF2qUXAHvjpn3qbXd TTRtEu798fuoyVB7seAPzxVu2SSO0hSZy8qoodj3OOTXPeNtA1DxDpcVrYzxRhH8x0kJG/A4GR9T +ldb0i+VHyNFqrXiq8/dvu+x5h4S0L/hKdfeO6eTyQrSzupwxJ6c+pJ/nXoH/CrdB/5633/f1f8A 4mvLrqz1bw1qISUTWdyvKsjYyPUEdRXp/gPxlLrgfT9QIN7Eu5ZAMeavfI9RXLS5PhktT6fNvrcY /WMNU/d26fn5k3jXWV8L+GobKwPlzSr5MOOqIByfrjA/GvOfB3h7/hJNb8mZmFtEvmTMDyR2GfUn +tavxRuWl8TxwZO2G3UAe5JJ/pXQ/Ci1CaRfXePmknEefZRn/wBmpv36tnsjKk3gsqdaPxz6+v8A wPxOW8f+HLPw/qNt9gRkt7iMnYWLYYHnk89xXR/CjUXe3vtOdiVjKyxj0zwf5D86pfFmYNqGmw/x JE7H8SB/7LTfhQjDUdSn/hSBVP1Jz/ShaVrIurKVbJeeq7vv/wBvWIfiV4ikvdTOkQORbWx/e4P3 5Pf6fzzVjwP4GstW0ltR1RHdZSVgRXK4A4Lce/8AKuBvLhru9nuXOWlkZyfcnNfQeh2q2Wg2Fsox 5cCA/XAz+tFNe0m5MWZTll+Cp0aLs3u1+P4ngOp2Z03V7uzDE/Z5mjDdzg8Gvd/C+oPqnhmwu5Dm R4gHPqw4J/MV4h4jmFx4m1OVfutcyYPtuNexeAYmi8FacrdSHb8C7EfzooaTaQs+XNg6U5fFp+K1 OkooorrPkQooooAK57xjro0HQZJlEjTzMIIhGMsGbv8AgMn8K6A9K4nXL+31PU2tzJ+7hyg2vg57 kY/zxUyaQ0eNWPgFl1O9n0qedIozkTT5Vip6/Xua047GSVZBNLHdeQW8p1IZo1zjcRjg9DxXb61o 0q+HNRa3vLkyfZmZAZSeQM9B64rznw5JBMttdpIuWjMEqO+1d2MAk9ucfnXn4mfZ7m9KEql4rdK5 I+taRIlzZ3VtG6W7eY7lMh36EAjnkVwWt2tlcTgaaXVDn5XGPpivTdX8HC+XFoGjdVLLnc25s/dI GMAdeT1rktG8F6trPiXNwu61tXCXLIcdOw/KumlKTSvuTGUWtTk0naziEJB+bjFb+jWEq+bcJED5 YVU3HGC3AbHXvmtDxpounW+t20GmsC+z54eu09jmtODzNItkjuwhnhCiNuxz0UnqD/hWjsmaXdvd 2OQudd1G0FxHFcPD9oiMUyg8tFjGw+2OKmsJiWtraOOMzTQrGiBOSS2fzrZ8UWunz2Uf2pre1lRn lkmyWeUn+EnPPIP51t/BDw42ueJp9euo91tZDERI4L9APwHP5VM486sRdJ3Z7t4V0JPDvh6109Qv mIoaVl/ikP3jWzilpK2SSVkYttu7DAPaomtLd87oIjn1QVNRTEU5NI02bHm6faPjpuhU4/Smy6Np c67ZtOtJFHZ4FI/lV6iiwXKKaLpUYwmm2aj/AGYFH9KmSxtI12pawqPQRgVYpCcUAFYXi7Wo9E8P 3M3mBbiRDHAueSx4yPp1rdryzxF4J8Sa3r13d/ujC0h8kST9E7YHas6jaXuo78uo0alZOvNRitde vkcNpNkmoapb20s8cETuN8kjhQq9+T3r6DiubNLZfKnhEKKACHGAB7141P8ADrxJCMraRzf9c5l/ qRVeLwJ4llkCDS5F93dQB+tc9Nyp/ZPpcxpYXHuMvbpJen+aPc4Z4riFZYJEkjb7rocg/Q1WtNX0 +/lljtbyGWSJijor8gjg8Vj6HoGoaf4OOkS3qx3JVwssQz5e45wM9eprze++HniOymPk263KA8SQ yD+Rwa3lOSSdjwcNgcNWnOEqyjZ6efmdZ8VLixOkW0DMjXvnBkUH5lXByfYdK5H4dQyy+M7Vo87Y 1d5CP7u0j+ZFFn8PvEl7KPNtBbqTzJPIOPwGT+len+FvCtr4ZtGWNvOuZcebMRjPsB2FZKMpz5mr HrVsTh8DgZYaE+eTvt5nnfxQtmi8UpMR8k1upB9wSD/Sul+Ft7APD13btIqvFOZGBOMKVHP04Nbv i/wvH4m01Y1dY7uEloZD056g+x4/KvLJPAviaGYxjTXbtuSRSpH1zRJShU5kriw9XD43L1hqlRQl Hv5f8Ai8Zaymt+Jbi5hbdAmIoj6qO/4nJ/GvS/h/ob6X4a8yZds94fMYHqFxhR+XP41h+FvhtJBc pe63sOw7ktlO4E/7R6fgK9KqqVN3c5HLmuPpexjhMM7xja79P6ufNl1A1rdzW7jDxSMjD3BxXuV5 4jtNP8HpqiyoQ1uPJXPLORwPz6/Q1zfjXwDcahfPqekqrSyczQFguT/eUnj6iuRg8B+JbiQRHT2j XP3pJFCj9f5VnFTptpI9GtPB5lSp1KlRR5d0/wAUY2nWFxrGqw2kILTTvjPp6k/Tk19DWVrHY2MF pEMRwxrGv0AxXPeEvBtv4aiaaRlnvpBh5ccKP7q+3v3rqK2o0+RXe54+c5jHF1FCn8MfxCiiitjx QopKKAMDxb4p03wrpa3Go3Qg8+QQxHBPzEE547AA81yMBa7t45bOeC7tCd29MEkenWpvHmgWHjSU W9w5U22VicHoT1/z7V5Fc+FvFnge5afS7mbyAf8AlnkoR7ipqUeZXZKqa6Hq2qajfyabLa2kINwy kK/QJ7kE5/KvJoPCV7DqMjXZcWrEvK1rLwSO2Dz+VbmnfEmC6QW3iG0kgk6efESAPfIxiuisbWyu bZf7LuLe5t2Jb5X2yKTyTkZz+Irl9lKHmaqSfkZfhm01ebxfqEUd25tYY2DbnHGSCNo+uK6m3lur ITwy2wRieZk/5ae59D9a546NPb6ub2G+u0k6FRGOgGACR17cmur03V4NTs0S8XbcDKNnhgRx+PrV 02thtXV0jh9W0gf2vb6gLMtsGZHXkue2a5jU/txklklV5DI2NmM479K9YvLJoziN/kYHDDofb2rk r6Btu518ok9Rg4H1FXKPVFwqyS5Txe4a81bWmEsbefNJgRBcYJPQCvsHwF4Yj8J+ErPTQiibHm3B H8Ujdfy4H4V5p4D8BWOoeK4ddkDSfZG8x9/Qyfwce2M/gK9wq4PmV7WMpKzCiilqyRKWkpaACkpa KAErlde8dafoWpGykikmkCBmMZGFJzwffv8AjW5rOqQ6NpVxfT/diXIXPLHsB9TXz7d3c19eTXVw ++aVy7t7mu3B4ZVW3LY4cZinRSUd2fSFQS3kEEjLNIkYVQSzuAOc8dfY1YrMm0n7RqS3UsisqyLI EK/3VYD9WJrhZ6MFFv3mP1LWLXTNHk1RyZrdFDAxENuyQBjnB61BY+IrK8t7iWYmy+zzGGVbplXa 2M4yCQfzqHUPDxv9BtdKa4ASN42mYpnzApyRjPGTWUfAzi3s4Fv18u2kmIUxNhlk7HawJI6ZzyKl uV9Drpwwrp2nKzu/u6f15m7qOv2envbRB0mmuJo4lijcbvn6Nj0qZ9VgTW4tK2uZ5IWnyANqqDjn 8awoPBvka5Hei6j+zx3P2hYRDhhhNqruz0HYYq/Nol43iZ9WhvIkR4BbtG0RLBM5O07hgk+xovIU oYZWSlfR99+iLd7r2l2FvcTT3sO2DHmKjhmUk4AwOc0lt4h0q7ubiCG9hZ7dFkkO8bQp756EdM+m RXPxeBWi0l7T7bE0u5NszQsSVV920gv3Ppip7vwfPdLqA+3xqbq5juARCRjbj5ThuV47YpXn2L9l g9ud+v3dLep0A1XTm8vF/anzf9XiZfn5xxzzzxS32o21hHmWRfMP3Itw3Oc4wAevNY+n+E4LTVor 6Uwy+VB5caeUflcuWL5JJyc/X3q7daTNcXzS/aEELyxSOhjy3yHIUHPAyM9Ouaq7sYShQU0oyuv6 0Lv2+z80xfaoPMU4KeYMg5Axj6kD8ael3byTeSk8TSjPyBwTwcHj68VgSaHdR26x+essmyOCJ0jx 5e195kbJOScA+5HvWpa6Z9kvvOjdVhEPlbADl+chmOeSDu7fxGi7JlCmlpI0aydS8TaPpDmO+v4o pB1QZZh+AyauajfRabp895OcRwoXb3x2r571C+m1LUJ72c5lmcs3+FduFw3tm29keZi8V7FJR3Z6 ne/FLSIWK2ttc3P+1gID+fP6VhXPxV1FmP2Wwto17eYWY/oRXAUV6UcFRj0ueXLHVpdbHV3HxF8R zn5LqKAekcK/1zVF/GfiOTrq0/8AwHA/kKwqK2VCktooydeq95P7zYPivXz11e7/AO/hroPB2oeI Nd1+GB9Uu2tYv3k/z8bR2/E8Vw9e0fDzRBpfh5biRMXF5iVjjkL/AAj+v41z4twpU9Ers6MIp1aq Tbsjf/sWwzn7OAfZj/jSSaNaupU7tp7Zz/OtGivF5me5yo8/1z4WaXqu54isUh74rz6++EHiHSp2 m0hmJByGglA/Q19A0Um7i5V0Pm4eJ/F/htvJ1nTWniXgmSIo359DWnafEDw3fgLcbrOY9RIpAz9R xXvU0MVxE0U0aSRt1V1yD+BrltX+GfhHWR/pGjQRP/ftx5R/8d4P4ik0PY4ganFcQZsbuGZScja4 OKzp5pQdpjJJP8Iq1q3wEWPfN4f1YxSdVhuAQP8AvtTn9KzPCfhHWdD+IFlbeKNSgt7SFDPEv2nK 3LDACjccnBOfwpcvYpOx7P4b0ttJ0SC3lwZyN8xwOXPXp+Va9ICCMjpS1QgooooAKKKKACiisvxB qyaJol1fPyY0wg9WPAH504pydkKUlFNs88+JuvC6vY9HgfMdud82O744H4A/rXn9STzyXNxJPMxa SRi7Me5Jyajr6KjSVKCij5qtVdWbmz6Xooor5w+mCiiigAooooAKKKKACiiigAopByOKr395Dp9j NdzsFiiQsxPtQlfRCbsrs8++KOt4jg0aFxlj5s4HUD+EfzP4CvMquarqMurapc30xO+Zy2Cc7R2H 4DAqnX0WHpeypqJ85iKvtajkFFFFbGAUUUUAbnhLRDr3iCC2ZSYE/eTH0Uf4nA/GvelUKoAGAOgF cd8OtD/szQRdzJtuLw7zkchP4R/X8a7KvCxlb2lSy2R7+Co+zp3e7CiiiuQ7AooooAKKKKAGSSLF G0jsFRQSxPQAV8weOvED+KPFNzfBibZP3Vup7IP8Tk/jXsfxW8RnSfDh06B8XV/lPlPKx/xH8en4 mvBWtpFhMxRhGoJLEcY+td2GhGMfaTdjnquU3yQVyfTfEWt6Mf8AiX6pdW4/uq52/keK6uw+MPiu 0QJM1pee80OD/wCOEV5XNqNxPIRCfLj7ccmuh8HWM19ePNcOXghHQjq3assTi6FOLlJXsbYXCVa1 SNOLtc9l0v4tXckW7UdFRCenlTEH8iP61tR/FLTCP3thdp9Np/rXmsdrulYt0X9aWeBQmQMEV83L MpuWmh9tHJMEoqLTb73PUk+JmgsPmF0v1iz/ACNVJ/i/4Xtm2ym8VsZx5BryxYixwATVXUdPS5hM ci4b+E+hrpo4/wB9KpsYYvh+k6beHb5vPZnpk/xy8MxA+Xa6jKfaNR/Nq0Vhb4m6PZ35+0abpwdi kTqC8vbfkHAHUD8a8D0Hw/ca94jtdIiyryy7XbGdij7zfgK+sbGzg0+xhs7WMRwQoEjQdAAMCval ak04bnxrjzpxmjlLT4ZaDbsGmNzc+0kmB/46BWvH4O8PRptXSbbH+0uT+ZrcoqJV6kt5MI0KUdoo KhubqCztpLi5lSKGMZd3OABUtUNZ0mLWtNexnlkjjdlZjHjJ2kHHIPHFYu9tDeCi5JS2HxatZTSK kcxLN0+Rh/SrfmJ/eX865/U/CUGryeZd393u8to8x7EyG4OcLzxxz6mrN/4bsL2K2RVFstvKsoES KAxUEAMCDkc0ry7GrjR095+emxrh1PRgfxoLqDywH41y0XhrS4dVGpxas63CyGT5WiCZK7Pu7ccD P5mobbwraR6499/awmEochZBG5MjtljyMdAoGBxileXYOXD/APPzp269jqjd232gW3nxiYpvEe4b tucZx6Zqt9hbAIvJRjgkHrxj1/H61iWPhTSdNuA0eoM0iRGIrN5T4G4ueCvByTUH/COTSWs8C6pE LGe8FzcAENn5gxXOBjoB16VtGMWld2OSc3GTUVda2OgGnhZCy3ch6cFz1AHPXvinmyEtvHC905IU q5Dfez1rNj8O6QNBbSopxh42VrlShmIY/Md2O+SOnepdM8L2OlXiXUTSvLHGY0MjZ2g4zj8qLQs9 QUptrT8TbAAGB0rzn4oa35dvDo0L/NJiWYD+6Puj8+fwFegXl1FY2c11O22KJC7n0Ar581fUpdX1 W4v5vvTPnHoOgH5V14Gjzz5nsjkx9bkp8i3ZSooor2jwwooooAK2/CmiNrviC3tiuYFPmTHtsHb8 en41iV7J8OdD/s3QvtsqYnvCHz6R/wAI/mfxrmxVb2VNtbs6cJR9rUSeyOxRFjQIowoGAB2FOoor wD6IKKKKACiiigApruEQsxAUDJJ7CnVwfxQ8R/2ToS6dC2Lq/wApx/DH/Ef1A/E1UI80lEmUuVNn l/ifWG8TeKbm/bJt1Pl26nsg6f1P41zfiiR4tH29pXCE+3X+lX4SyKqwrmVm+Xjj3qv4i0ySC0ge 8YhTJvKnpnB6frXDjKt8WoN6LRI+jwLhDLeWmvemrt+v/AOPtrN5UMjEInQE12eh3dvp9pbQwNlH kJc9ycVx8sr3BUk7Ylyce1a+iW008chQEvGdy/jU4mHPD33ocuDqwpVOWmrvudlqmqpawlInGSMl xz+VWdOl+02Kljll4b3rlVsbi93SsCq9Avv61astSezjZA21gNpyM15csPHk5Ybnt08XLn5paI6O R4LVQHZUycAdzUd5HlVx1Jrk2vZLi+UsWKngFup967vSLf8AtTU7KwDDzpiAVHUDGWP4DNZyoShK NtWzqo42L5pvRI634Y+FlsZbrXp0xLcqIoM/woPvH8SB+Vek1FbQR2ttHBEu2ONQqj0AqWvpIJqC Unsj4jEVFVqyqJWu2woooqjISloooAgvLc3Vs0Icpkg7sZ6HNY/iJr3+yv7Ps4rp3lUJJPGm4qnR up+8R/Ot+igLRatJXR5neaDcGS1itNMvDaQDOJoUV2boMlRyAOme5NRS6HqU00znTZEBkV4ituNy hPurnPyjPLEcmvUaKmz7mDwmFf2PxZ5dBoF61r9nutPu/wB7JuuJkjDSOOS2CehJx+FMHh3UjblT aXSyAbuIFKySE43uCccLwABweeK9Uoos+4vqeF/k/Fnn3h3TbvTb+SOfSJJLSXbGC8WWRFPyjrjr 8xPrXoNFIaaNoU6dOPLTVkee/E/XfIs4tHhf95MfMmweiDoPxP8AKvK69mm8A2up6vNqWr3Mtw8j EiFDtRV7LnrwPpW7Y+HdI01QLTT4I/8Aa27m/M5NenSxdOjTUYq7PNq4SrXqOUnZHhNto+p3ihrb TruZT0KQsR+eK1IPA3iS4GV0yRR/00ZU/ma91CgcAYFLSlmM+iRUcth1bPFF+HHiRuttCv1mX+lP /wCFa+Iv+edt/wB/v/rV7RRUf2hV8i/7Oo+Z4RqXhqTwsLa+8SSRW+nNMsbtE+9m6nAUdeAa7y0+ LfguQLENSaAD5VEsDqP5YryL4z+NrfVfF50hYRPY6b8m5ZCuZT98jHHH3eR2Nedz6lBBbr5CSsJB 92UjgfUde9c1bETqtOR1UMLCknyH2RY+I9G1NA9nqlpMD2WUZ/LrWmGDDIIIPcV8s6A9jBeWt15Q wArAhipHHcA4NekxXk8IWW1uZEU8jY5FVQpKtonZkYirOhK046Hr1FebW3i3V7cjdMkw9JEH8xg1 r23jtel3Zke8TZ/Q1csHVjsrkxxlKW+h2VFYtt4p0i5wPtQjY/wyKV/XpWvHLHKoaORXX1U5rnlC UfiVjojOMvhYSSLFE0kjBUQFmYngAd6+UvGPjf8A4STxhd3yyf6Oshhtlzx5a8A/j1/GvZPjR4sG heE20y3l23upgxAqeVi/jP4j5fxPpXzEYxu+6fXINJScXdDcVJWZ674Jkt72/l5zMIsovqcjIx34 NX/Gfh69uNIDzRlUR1bPoB/+uvLPDt1NZa1azWtzJERIAzqeVBOD9eK9a8XfEO2trWbQvMj1WOe3 2GYfK0b49cDv9frXkYrDVJ4v28H209D1cLWdPDOl01R43OxkfgbUwAB7V3fgECTVJrUrvkurbEaY 4LZHPtgAn8K57VobK3igCL5chjDSY6A+nP4Vv+GNX0+w1G2vbclQMLyOi9DXVWpSxFCUYb2f/AMH JYaqtbno8HhiPTNKaO6nV3EbNLcMMADk59hXKweE5b0C8lt3hWZsqJOPl7HHuOfxr1AR2WugDz45 rfAJiRvv/wC97e1S3McYMkkgAWMDb718bHF1qSu92z0412nyy6HhGr2D218EijZvKJVuOmD3r1L4 Q+HJYba4169TEsx8q2Uj7qD7zD6nj/gPvWPLZWt5rkWiWCrJdXcjtczA7hFk5b8eT+Vey2drDY2k VrbxiOGJQiKOwFfW4CE5U1Umrdr7+pwYzExl7kH69vQnoopCyqMkgD1NeiecLRWXeeI9HsP+PnUr aM+m8E/kKy2+IPhlWx/aOfcQuf6VDqQW7N4YWvNXjBv5M6ikpaKswCiiigAooooAKKKKACiiigAo oooAKKKKACsDxf4gt/DmgTXc8yxM/wC6iZgSN56HgHpyfwrfrgPHOu6vY3f2aLR4LuwaMHzJIy+G 5z7DtUzkoq7N8NRnWqKMN/M8jj8KWHibUFgtZLW6uJ2yZIpQevdiM4P1qbX/AIPS21mpsZorloFO /a5DEdcDPBxzSyXeptrEVxY3FvpjFj5rQ2ygleMAAA9KZH488XaNg6jZwXMTHgsmCR7FePzFTQVF p2k7nXmjxkZrmpRSXVLc5n7JfQSKYocwqoXAPPAx0rsvCusKjCyulKK5+XcMc1oWM/iK6svO0zTb a/sXkLCydFMibjuI+Ye/Y1Cl5o11KY9S0G+0qVGwzQ5IB75BJ/SpjOrB80S6+Dwda8G2m/n/AJfh c6iW0URl1PFU8VmyXMcdxb2+ma8bqKRwDDJEQ4XnPJHt61rYr3cFXlWp3kfLZjgvqdVQ5r3V+v6k eKkt5Z4JQ1vJIkhOAY2IJ/Kk210HhLS/tmpfaXH7q3w31btXRVmoQcmclKLnNRRb1r4aaP4rt7Wb XTcvqEcIjNxFMQwGScc5HBJ7VwWpfs9upd9K10Ec7I7mDn6FlP8ASvcxS14Dd3c99aKx8uT/AAV8 aaeHZbG3ugOd0NwufwDYNYd74R8T2iIJ/Deo7kJyxtWK/mBzX1/SYpOKZam1ofFN2L6+uJpLxXWS MZdZPlYD6Gksbx0QJHMAEO7a4GMema+05LaCUYkhjcejKDVR9B0eQ5k0qxY/7Vuh/pSSa2ByT1aP INC1/RP+EWlv7jy0c/uohJyykDLMCPQY59xXGav8T9Ruv+JdZBpbXONzZ8xx6A9h+dfSY0TSVUKN MswB0AgX/Cqms3Fh4c0W5v1toI/KT5QiAZY8AfnXGsFSjLnmr211O2eMq1/3cVq/+G07Hmvw5vtH 0DTJtY1eT7PqFyfLW3ZcyxoPYcjJ9cdPet/UPixZxErYWEs/o8rbB+XNeWTzyXVxJPMxeWRi7se5 PJplRUxlST0PpMPw9hqaXtLyf4HXX3xJ8QXgZY5IbVD08lOR+JzXO3mrajqH/H5fXE49JJCR+VU6 K5pVJS3Z61LCUKP8OCXyCiiioOk+m6KKx9R8TaXpWpw6fez+VNKm8Ej5QOcZPvtI+uPUV7p+WGxR WMfFWiZULqMDgsFyrZAJzj8ypHHfili8U6JMwVdQiDlioRshid23oeev8xQBsUVmSeItHiuJLeTU rdJo2CujPgqeev5GnHXtIFtJcDUrRoY8B3SUMFz0zj1oA0aKqWGpWupxySWkhkSOQxs20gbh1xnr 161boAKKKKACiiigAooooAa7bVzXPanr9jpsmy5Z191wa5/XPiPBpWt6lp8ylRFGq2z4+9Jzuznt yMeu01xF/wCILjVXD6mxnjK/II3VdvfPH9axqV4wPVwGVyxT5pfD+PyOzvPGuhQySXW0vNEhMchi XJ9geory7XPEs2u6n9pchCcssa5CqB0H1PrUcjLLIYSAQAS2TxwM/wBK1dJ8HprIX7FIiXBXILyY X1Ax1P4VyqrOq7WPblgsPglzQl5O71+RDb6yv2Z90YDlsvMCVkHGB7fj3zWrp2raSu0JeTgBdpDA MCe+RzWHqXh2/wBMlu/tIiUW8ixSsJAQSQCMDqeo5A71xN01/E10I5JfIGXQKcgnPbPatKUanNe5 xY+vh50oxnG68tPzTXyPVb2wiku21TTo7aTy4sSPCQGA65IHOAK5ofEMtKRFZB4hwGZ8FvfpxXGf 2nqC2M0M88jRlAEdR2bkjPrVOB9qivQoVqsLq58/jqOFqKHs1067/nb8j1Gz8b2dzIscttNG7MFU J8+T+le7aHYDTtKhixiQjdJkc7j/AIdK8C+EHho674oXUJ03WenYkORw0n8I/A8/hX0cOlaVcROo uVnHRw8Kb5kLRRRXOdIUUUUAFFFFABXknxQ137VqEejwtmO2w8vu5HA/AH9a9J17VY9F0a5v5CP3 SHYp/ibsPxNfPVxPJdXMtxMxaSRi7E9ya48XUsuRdT6Lh/B+0quvLaO3r/wCOiiivOPsQooooAKK KKAPpquZ1+bwnHqITWxb/azGrAOjFio3lcYHb5/84rp6gls7WeUSS20MkgGAzoCccjqf94/mfWvd Pyw4u3m8CpNMzXcVw91Ox+dTjdk5VQqgYznjnO7vkZtLqXg3Tb+Xyo1SeCTc7RwSMAyh1zkDBxtc Z9seldN/ZlgQAbG2wCSB5S8EnJ7eoH5VBa6DplpJcSRWcW+4YmQsu7OeCOeg9ulAHPTap4J3S3ci wvKrs0n7h2YMrbmyMdjJkj39uGR3/gpbGayFokULzYMAt2zIVJjDgKOmUIz7c9a6SbQNJneJn0+2 zG4cYjABIUqM46gA9D7elSppNhHdSXCWkIlkwWbYOoycj05Zvrk0AZlrr3h+y05bi2k8u2n8ycbY n5A5d8Y6ZI59T71LceLNHtrMXD3X3kkdU2kMdhIYYxwcg9fSr40nTVVVGn2gCghQIV4BGCBx6GkO kaaSCdPtDgED9yvAIwR09OPpQBjS+ONLge13iXyriPzPNVcqv3ePUnLoOBzuFA8d6H9pmiM8gWJS 2/ym+bbnfgYzheMn3Fbf9laeY/LNjbFMk7TEpHJ3Ht6gH8BTf7I00kn+z7TJLE/uV5LDBPTv39aA M+18WaZf38NnaGaWaSQowaJk2YVySdwHeNl9jW7VeOxtIp2njtYEmYlmkWMBiT1JNWKACsfxNrMW haFc3skvlMFKxts3YcjjjvzWxXzb8X/HV3feLW03TZybCxXyZV4KyyZyxx7cD8DSd7aFwS5lzbHA eK7+51bVJL24k33EvzsV6c8gD2AIH4VS0mXUzOkcNwyoWwQxyPyqdZba7m82ZCsh6gHK/l1rR0+S C3uVkMsYjAPDKSc447VlK/Ltc7aKi6yanZetv8jQutGudQicLe7DnjKZzj3rX8J2OteGphdX1vZX 2mSsFltZ5AfM9GCkZGPXFZLa5aQffMX1WFjXXaF498OJbLbPaWUTKnMlxaOSx9Sysf5VzUva6329 D1sU8FzKUXeXWz3KGqytf6jNcRReTE7ZSEyl9g9AT2rF1Gyv7m3eKFz+82hlY5DbenWvQ01fSr2P DWmhyq38UVyYmH4MBVO4ttPc/u7eVM/885EkUfjk0fvE7pnZz4avT9jODS9Uzx+8ivrJRb3kbKD9 3OcHFQxMThVBJPAA711njhYXlt7e38vzU4PJUkdepOCfp6VqfBnwo3iDxcL6eMmy0wiViejS5+Rf foT+HvXZTk2tdz5bGUY06rULuPS57r8PfDP/AAi3hC0snQC6k/fXJHeRv8BgfhXVUgpas5gooooA KKKKACiis7XNUj0bR7m/l6RLkD1boB+dJtJXZUIOclGO7PNvihr32m+i0eB8x2/zzYPBc9B+A/nX n1SXNxLd3UtzO2+WVy7t6knJqOvHqTc5OTP0fBYZYahGkun59QoooqDqCiiikAUUUUAfTVFFFe6f lgtFFFABRRRQAUUUUAFFFFABRRRQBkeKL6fTPCuq31sQJ7e0kkjJGQGCkivi+7j5aUsxdjkknOTR RQLqVo5nJAJyB681etndyfmIx6GiipNFruO892dwccEjioGlYOO+OaKKt7Er4xE1e8hOBIGHowzV m21+9eaONvKKlgPuYI/EUUVzziux6GHq1Lpcz+80NXmmuLe9WeaSX7O8flmRyxUHtz25NfSPwc06 2sPhrprwLhrrdPKT/E5OP5ACiiqpbGWN+NfP82d9RRRWpxhRRRQAUUUUAFeZfFm8mCafZBsQuWkY epHA/maKKwxP8Jnp5Mk8bC/n+R5jRRRXlH6AFFFFABRRRQAUUUUAf//Z ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/delicious_14x14.gif R0lGODlhDgAOAPcEAAAAAAAA/93d3f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAAAOAA4A AAg9AAcIHDgggMGDAQgORHhQoUCGBh0WhCgRYkKHFitC/Mex4z8BIEMK8NhRZEiSHE2CRPlRJUuV I1HCfKkyIAA7 ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/digg_16x16.gif R0lGODlhEAAQAMQZAP////v7+/n5+fj4+Pb29vX19fLy8vDw8O7u7u3t7enp6eXl5eLi4t7e3tvb 29jY2NfX19bW1tXV1dLS0tDQ0M/Pz8zMzKioqJmZmQAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA ABkALAAAAAAQABAAAAV9YCaOZGmOV5piJOaiQAywIhYL9AUUyULbAMGBgUkBeo3ixSZkQDAB3aIR wTxcgCGkgsG5vlebs2LBEBroh/qa/CqPigWjnUFj0A1dfO64j2gZUnxXfy+BAHMXDxI/Miw6DQ4X EhM/AwYIjwAODxcTFD9uGW6idXgNpqdoGSEAOw== ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/technorati_16x16.gif R0lGODlhEAAQAOYAADqwADGsADivADOtADauAP3+/TStAMvquzKsADeuAOb13zCsADWuAFq9KTqv APv++lC4G0e0Dz+yBl6+MKnckW/FQ8fotjuwBdzx0XnKUTOsAJ3XgEW0Dbnjo0OzDE23GTuwAYTO X0y3F0CyCEOzD0CyBs7swC6rAPX78fv9+qDZhPf89b3kqVi8JsLmr9Dswj+xBvj89vj89TSuAD2x Arjio9bvyvT78Nzx0sbotDWtAJHTc+n243vKVNLtxPz++zywBz+xCEi1EMTnsl6+M4/Sb1W6IZ7Y g0a0D/H57eb13pLTcTywApXUdT6xBm/FRLPgndbuyW3EQVC5H0e1EeX13uLz2fr9+HXHT9jvzUa1 D7vjp77lqzmvAEe1D0GyCP///zuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAAAAAAALAAAAAAQABAAAAe9gCxUJCFghjJbTyJGOzaGHAACVoY/WAQMAF0DQC5gEg4NBYZLAWGm pl0aCl86TYYop7FhARZfBhuGPEyypgg+Xwk9hg8QArwnL19hHg+GUTMEpwABE1fKAzWGYCZEAQYI DkVJYMoAThjaNwoHWUraymECLTHa9e+nNCn2hgU4KvBhIBiqciQHlwNQpAQBAU9AhhUULgxYwGDB gARdRsBA1aBCgC68wpSIYCxMl2ghAQgZ8gGJl5cwY2qZ0iEQADs= ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/email_icon.gif R0lGODlhEAAQAPcAAPn8//r8//n7/fX5/GB9qu3z+FCMyOrz/vf6/MDb/Ja14+fx/vn7/+Dq+ePs +eHt/eTv/tTm/U6JxPP2+1GLx97o9zxzvN3q/kWAw9jp/Zy/7VCMyfz9/16Kt+Ts9Ze24+zy+KnF 6k+DxafF7FGFxcLa+KK/6fj6/VyIuvj7/T5ttdbn/fX5/6C/6dDh+Iqu4vH3++z0+IWq4kqExObu +T1wvt7s/VGMyLzQ7Pv8/9vq/drp/dnk8VyMydbk+c3g+Nvr/tLj+aC33FeJx2WQzO30/lGIwOzx 93yd03CW0LnP7LfX/EyIxNjo/cbf/N/s/vb5/LLM8cTb+N7r/uXt+VuIttPl/fP3+1CNyN7p+ff5 /KTD7L3V9O7z+Nfo/WOPzI2w42GPy57B8FmLyEN9wlB9xYeo3Exyr93n91aEtpi24/D1++71/vH1 /E2IxOrv+Iup17PL6lSHxvb6/9/r/kiCw6vG7VCJxOPr84mq3EZ2wmaOzPf6/16Nytzq/Z2z1luG yc7a63KZ0b3T9Ja04z95v1OHw/v9/9zo+fL2+7PK69zr/tDh+fH3/rDK65W88LHN8cne9/T4+/// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAA AAjTACcJHEiwoMGDCBMO/ANHEJEvYfr0GDNEDgkRhlAQEHKiDYCPAAKIzHGIw4Q3HZAkIoSIzQ4/ Nh5AWDCngQweN5IIgKQgSyOZCw7wcfDiUQwDewRYiaKgAYsDRRhQASNmSQEDgAR4iWAnjwMGAWiY 0ZAgwdUyAjIwUjRCDZoKH7aEKOGkABY9KYIocbGCSwsTgyJEciQFxIYaA3D4eEJnCpBFF3Q0+REH D4UzXTysgXFF0oABULQgQHAkUBUCKiwUIoOhzgwmbiRIuGMkDQGFuHEHBAA7 ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/close_icon.gif R0lGODlhEAAQAOYAAAAAAP////b3+OLo67q+wO7w8Z6ts7W/w3+Gic3X27q/wd7j5d3i5AIbJAQs OgUeJxU6RxQ0QEdkb1dudpy4wqG0u9He49zn652lqKmxtAETGQMmMgdOZgZEWQU5SgMhKwIXHgdK YAY/UghSawUzQhBUawUaIRBQZiNabRQwOSdZaSZOWzx3ij95jEFwgCIyNzhQWCg3PGqMl2+JknqV npy7xYOdpoqjq32SmYmfpq3FzXmJjmdwc73M0Zqmqs7d4qu3u9Pf483W2dPZ28bMzh45QbbK0IWP ksTS1oSMjs3Z3Nnl6LzExu7y87S5usDFxvz9/fn5+f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAFIALAAAAAAQABAAAAefgAGCgxc1hj+DiYIWLSOOjixLigE6JRyXmBwlFIlBJyGgoaJGgy4d p6ipHShQAQMisCI9SiIqTTKxSAEVHr29CTQJN74eNgE5JMnJKwFCyskzAQYO1NQSAQsQ1Q44AUMb 4BsRDBNAQOEbB4IwH+1MPh8pBTvtRQKCRA8N+/z9GYkYTIAYSHDgkUkKYmhYuPDFk0mDCCThgcBJ FIgYFQUCADs= ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/printer_icon.gif R0lGODlhEAAQAPcAANfX1/n5+fz8/Lu7u2FhYYGBgWWXyujo6PH1+c3j+2SXye3z+MLc+N/f35eX l+zy92WYym5ubnp6eu70+NPT09LS0oS24s3Nzc/j/EqFx5aWltfn/vj7/XV1ddPn/dLm/N/p9Pb4 +qOjo/b3+bvW9by8vI2v3cPd+crh+sjg+s/k/MzMzPD0+fD0+NjY2ISo1UqFxOzy+Gtra3yq18zh +93d3c3m/Onv9aqsr6urq9Xn/aGhofv7++nw+GKWyIeHh46OjrnO6Obt90NDQ+/0+iUlJSQkJMfg +tHk/FGNyHBwcLXU883j/GSXyu/0+Y2NjU2IxUtLS0yJxVWQy9jo/sjg+W1tbcbGxnFxcU6Lx73a 9s7OzmGUx5WVlVhYWNTU1Nfm8k+MyMPDw+30+iMjI0JCQuHq9CwsLNfo/j8/P+30+Zubm02JxXl5 eZqamnR0dNPm/NPl/fr7/VCMyCoqKqenp+zx+cTd+X2y4kiAw1KNyIODg+vx+WGVx8TExFJSUk+M xlWRymKVyN7o8oSEhH5+fmmV26iqrUiDxLW1tb3Axb+/v7m5ucvLy/Ly8n19ff///wAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAA AAjoACEJDDJjTphAU9iYEMiQIZQHExYsiAEGjyE5DQXqQcAkQRUGHGxYeJERUhIEGFSguAPiwY08 GXkAYgHHQ4IUJJa0gBGA4ZYfUpxs0PGBBgMtRBARKAGphpsVWdRQQRMHyZETYzKIeXPBQYUDj8KK HXvAjxVCAgQ0csS2LdsrabEUChAgR4NGePM2EEGXgAQAABy4WES4MAAggNN0GDDgyRdGkCNT2MOY jpJEiboUKNAmAoE/Q8pEwFxERp1EBXAoWs360JlEa8jskOClzwg7fHoIMTMoBBcjUTQw9AHBgPEm ChRAEMQwIAA7 ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/themes/tpl_4023/img/plain_text_icon.gif R0lGODlhEAAQANUAAPb29vX19d/f3/f39/39/fLy8vPz8+rq6vHx8e/v7+Li4svLy/T09MPDw+np 6evr6+zs7OPj4+fn58XFxebm5vDw8O3t7cLCwvj4+Pr6+vn5+fv7+/7+/snJyczMzP////z8/AAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAaGwE/E 0ykaiwLCZ/nxYDagqBRzSTI7G0Zgi0g4QJKGldMBDTSDgaFyAAEYE8GHDNLYB4DCQwrqcOhQIBsY AQgQBxR9f2V8gwEFCRaKdHyCGAAGBZOMlRkaAACblVEbdhiiUhuqGRkYp36UpBustKipqri2o1Id Swsau1IaHksKC0fIHR4KH0EAOw== ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://www.tyrepress.com/_open_ad/www/delivery/avw.php?zoneid=2&cb=INSERT_RANDOM_NUMBER_HERE&n=a793fa69 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 AK/r9z4//9k= ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/layout_default.css BODY { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 12px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 15px 0px; PADDING-TOP: 0px; FONT-FAMILY: = Arial, Helvetica, sans-serif; TEXT-ALIGN: center; BORDER-RIGHT-WIDTH: = 0px } #container { MARGIN: 0px auto; WIDTH: 990px; POSITION: relative; TEXT-ALIGN: left } #header { =09 } #content { WIDTH: 990px } #dynamic_box_left { FLOAT: left; MARGIN: 0px } #dynamic_box_center { FLOAT: left } #dynamic_box_right { FLOAT: right; MARGIN: 0px } #content_footer { CLEAR: both } #footer { CLEAR: both } #layout_default DIV#dynamic_box_right { WIDTH: 255px; MARGIN-RIGHT: 10px } #layout_default DIV#dynamic_box_left { WIDTH: 160px } #layout_default DIV#dynamic_box_center { MARGIN-TOP: 10px; MARGIN-LEFT: 15px; WIDTH: 700px } * HTML #layout_default DIV#dynamic_box_center { MARGIN-LEFT: 5px } #layout_two_column DIV#dynamic_box_right { WIDTH: 320px } #layout_two_column DIV#dynamic_box_left { DISPLAY: none } #layout_two_column DIV#dynamic_box_center { WIDTH: 670px } #layout_three_columns DIV#dynamic_box_right { WIDTH: 190px } #layout_three_columns DIV#dynamic_box_left { WIDTH: 190px } #layout_three_columns DIV#dynamic_box_center { WIDTH: 610px } #layout_equal DIV#dynamic_box_right { WIDTH: 330px } #layout_equal DIV#dynamic_box_left { WIDTH: 330px } #layout_equal DIV#dynamic_box_center { WIDTH: 330px } #layout_equal_rights DIV#dynamic_box_right { WIDTH: 260px } #layout_equal_rights DIV#dynamic_box_left { WIDTH: 470px } #layout_equal_rights DIV#dynamic_box_center { WIDTH: 260px } #layout_non_equal DIV#dynamic_box_right { WIDTH: 320px } #layout_non_equal DIV#dynamic_box_left { WIDTH: 420px } #layout_non_equal DIV#dynamic_box_center { WIDTH: 250px } #content_features_left { FLOAT: left } #content_features_right { FLOAT: left } .features_equal_default { BACKGROUND: #fff; OVERFLOW: hidden; WIDTH: 100% } .features_equal_default #content_features_left { WIDTH: 720px } .features_equal_default #content_features_right { WIDTH: 260px } .features_equal #content_features_left { WIDTH: 495px } .features_equal #content_features_right { WIDTH: 495px } .features_left #content_features_left { WIDTH: 720px } .features_left #content_features_right { WIDTH: 260px } .features_right #content_features_left { WIDTH: 310px } .features_right #content_features_right { WIDTH: 680px } .features_inside .content_features_col { FLOAT: left; WIDTH: 223px } .features_inside { OVERFLOW: hidden; WIDTH: 720px } .features_inside #content_features_left { WIDTH: 335px } .features_inside #content_features_right { WIDTH: 335px } #main_news_box { FLOAT: left } .main_news_box_row { MARGIN-BOTTOM: 10px; OVERFLOW: hidden; WIDTH: 100% } .main_news_category { DISPLAY: inline; FLOAT: left; MARGIN: 6px; WIDTH: 273px } .category_news_category { DISPLAY: inline; FLOAT: left; MARGIN: 5px; WIDTH: 314px } .tooltip { FONT-SIZE: 12px; Z-INDEX: 10000! important; OVERFLOW: hidden; POSITION: = absolute! important } .tooltip .xtop { DISPLAY: block; FONT-SIZE: 1px; BACKGROUND: none transparent scroll = repeat 0% 0% } .tooltip .xbottom { DISPLAY: block; FONT-SIZE: 1px; BACKGROUND: none transparent scroll = repeat 0% 0% } .tooltip .xb1 { DISPLAY: block; OVERFLOW: hidden } .tooltip .xb2 { DISPLAY: block; OVERFLOW: hidden } .tooltip .xb3 { DISPLAY: block; OVERFLOW: hidden } .tooltip .xb4 { DISPLAY: block; OVERFLOW: hidden } .tooltip .xb1 { HEIGHT: 1px } .tooltip .xb2 { HEIGHT: 1px } .tooltip .xb3 { HEIGHT: 1px } .tooltip .xb2 { BORDER-RIGHT: #333 1px solid; BACKGROUND: #666; BORDER-LEFT: #333 1px = solid } .tooltip .xb3 { BORDER-RIGHT: #333 1px solid; BACKGROUND: #666; BORDER-LEFT: #333 1px = solid } .tooltip .xb4 { BORDER-RIGHT: #333 1px solid; BACKGROUND: #666; BORDER-LEFT: #333 1px = solid } .tooltip .xbottom .xb2 { BACKGROUND: #666 } .tooltip .xbottom .xb3 { BACKGROUND: #666 } .tooltip .xbottom .xb4 { BACKGROUND: #666 } .tooltip .xb1 { BACKGROUND: #333; MARGIN: 0px 5px } .tooltip .xb2 { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 2px; BORDER-BOTTOM-WIDTH: = 0px; MARGIN: 0px 3px; BORDER-RIGHT-WIDTH: 2px } .tooltip .xb3 { MARGIN: 0px 2px } .tooltip .xb4 { MARGIN: 0px 1px; HEIGHT: 2px } .tooltip .xboxcontent { BORDER-RIGHT: #333 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #333 = 0px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0px; MARGIN: 0px; = BORDER-LEFT: #333 1px solid; COLOR: #000; PADDING-TOP: 0px; = BORDER-BOTTOM: #333 0px solid; BACKGROUND-COLOR: #666; TEXT-ALIGN: left; = WORD-WRAP: break-word; text-shadow: 2px 2px 0px #CCC } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/style.css BODY { BACKGROUND: url(../img/body_bg.gif) #9b9b9b repeat-x 50% top; = PADDING-TOP: 5px } .suggest_link { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; BACKGROUND-COLOR: #ffffff } .suggest_link_over { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; BACKGROUND-COLOR: #3366cc } #search_suggest { LEFT: 21px; POSITION: absolute; TOP: 27px; TEXT-ALIGN: left } DIV.sson { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; = BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; = BACKGROUND-COLOR: #ffffff } #container { =09 } #content { BACKGROUND-COLOR: #fff } #container DIV#footer DIV.bottom_corners { =09 } A:hover { TEXT-DECORATION: underline } A IMG { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL LI { LIST-STYLE-TYPE: none } H1 { MARGIN: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } H2 { MARGIN: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } H3 { MARGIN: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } H4 { MARGIN: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif } H1 { FONT-WEIGHT: normal; FONT-SIZE: 18px } H1 A { COLOR: #c90404 } H2 { FONT-SIZE: 12px; PADDING-BOTTOM: 4px; COLOR: #333 } H3 { FONT-SIZE: 12px; PADDING-BOTTOM: 4px; COLOR: #333 } H2 A:hover { COLOR: #333 } H3 A:hover { COLOR: #333 } H4 { =09 } H4 A { =09 } .clear { CLEAR: both } .box .box_title { FONT-WEIGHT: normal; FONT-SIZE: 14px; FONT-FAMILY: Arial, Helvetica, = sans-serif } DIV.subcatlinks { MARGIN: 4px 0px 6px; COLOR: #666 } DIV.subcatlinks A { FONT-SIZE: 90%; COLOR: #cc0000; TEXT-DECORATION: none } DIV.subcatlinks A:hover { COLOR: #000000 } #header { POSITION: relative } .header_image { BACKGROUND: url(../img/header.jpg) no-repeat left top; WIDTH: 990px; = HEIGHT: 132px } .header_image A.logo { DISPLAY: block; FLOAT: left; MARGIN: 20px 20px 0px; WIDTH: 300px; = HEIGHT: 90px } .box_pages { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-SIZE: 10px; BACKGROUND: = #000; PADDING-BOTTOM: 10px; COLOR: #333; PADDING-TOP: 2px; HEIGHT: 1% } .box_pages LI { DISPLAY: inline } .box_pages A { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 10px; PADDING-BOTTOM: = 0px; TEXT-TRANSFORM: uppercase; PADDING-TOP: 0px } .box_pages A:link { COLOR: #999; TEXT-DECORATION: none } .box_pages A:visited { COLOR: #999; TEXT-DECORATION: none } .box_pages A:hover { COLOR: #666; TEXT-DECORATION: none } .search { PADDING-RIGHT: 6px; MARGIN-TOP: 0px; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; PADDING-TOP: 6px; TEXT-ALIGN: right } .search A { COLOR: #666 } .search BUTTON { FONT-WEIGHT: normal; FONT-SIZE: 12px; BACKGROUND: = url(../img/search_button.gif) no-repeat; MARGIN-LEFT: 6px; WIDTH: 50px; = COLOR: #000; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; HEIGHT: 20px; BORDER-BOTTOM-STYLE: none } #box_left_holder { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } #dynamic_box_left DIV.box { MARGIN-BOTTOM: 12px } #dynamic_box_left DIV.box_title { PADDING-RIGHT: 2px; PADDING-LEFT: 3px; BACKGROUND: #a5a5a5; = MARGIN-BOTTOM: 4px; PADDING-BOTTOM: 3px; COLOR: #ffffff; PADDING-TOP: = 4px; BORDER-BOTTOM: #cccccc 1px solid } #dynamic_box_left DIV.box_body { BORDER-BOTTOM: #a5a5a5 4px solid } #box_sections DIV.box_body { MARGIN-BOTTOM: 30px; BORDER-BOTTOM-STYLE: none } #box_sections LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #fff 1px solid; BACKGROUND-COLOR: = #f1f1f1; FONT-VARIANT: small-caps } #box_sections LI UL LI { PADDING-LEFT: 6px; FONT-SIZE: 11px; FONT-VARIANT: normal; = BORDER-BOTTOM-STYLE: none } #box_sections LI A { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; PADDING-BOTTOM: = 4px; COLOR: #8b8b8b; PADDING-TOP: 4px } #box_sections LI A:hover { COLOR: #fff; BACKGROUND-COLOR: #a5a5a5; TEXT-DECORATION: none } #box_sections LI UL LI A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #000000; = TEXT-DECORATION: underline } #box_center_holder H1 { FONT-WEIGHT: bold; FONT-SIZE: 27px; MARGIN-BOTTOM: 3px; PADDING-BOTTOM: = 0px; COLOR: #c40016 } #box_center_holder DIV.category_headline { MARGIN-BOTTOM: 12px; PADDING-BOTTOM: 12px; OVERFLOW: hidden; WIDTH: = 100%; BORDER-BOTTOM: #ddd 1px solid } #box_center_holder DIV.category_headline H2 A { FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #c40016; TEXT-DECORATION: = none } #box_center_holder DIV.category_headline H2 A:hover { COLOR: #666; TEXT-DECORATION: none } #box_center_holder DIV.category_headline DIV.image { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 2px; FLOAT: left; PADDING-BOTTOM: 2px; = MARGIN: 0px 10px 6px 6px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: = 2px; BORDER-BOTTOM: #cccccc 1px solid } #box_center_holder DIV.category_headline DIV.image:hover { BORDER-RIGHT: #08556f 1px solid; BORDER-TOP: #08556f 1px solid; = BORDER-LEFT: #08556f 1px solid; BORDER-BOTTOM: #08556f 1px solid } #box_center_holder DIV.category_headline DIV.summary { LINE-HEIGHT: 1.6em } DIV.article_link { DISPLAY: inline; PADDING-LEFT: 4px; FLOAT: right } DIV.article_link A { FONT-WEIGHT: bold; COLOR: #666 } DIV.article_link A:hover { COLOR: #c00; TEXT-DECORATION: none } DIV.tp_link { DISPLAY: inline; PADDING-LEFT: 4px } DIV.tp_link A { FONT-WEIGHT: bold; COLOR: #215992; TEXT-DECORATION: none } DIV.tp_link A:hover { COLOR: #c00; TEXT-DECORATION: none } DIV.box_body DIV.image { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 2px; FLOAT: left; PADDING-BOTTOM: 2px; = MARGIN: 2px 10px 2px 0px; BORDER-LEFT: #cccccc 1px solid; PADDING-TOP: = 2px; BORDER-BOTTOM: #cccccc 1px solid } DIV.box_body DIV.image:hover { BORDER-RIGHT: #c40016 1px solid; BORDER-TOP: #c40016 1px solid; = BORDER-LEFT: #c40016 1px solid; BORDER-BOTTOM: #c40016 1px solid } .short_holder { OVERFLOW: hidden; WIDTH: 100% } .short_holder H2 { HEIGHT: 28px } .short_holder H3 A { FONT-SIZE: 18px; COLOR: #c40016; TEXT-DECORATION: none } .short_holder H2 A { FONT-SIZE: 18px; COLOR: #c40016; TEXT-DECORATION: none } .short_holder H3 A:hover { COLOR: #333! important; TEXT-DECORATION: none } .short_holder H2 A:hover { COLOR: #333! important; TEXT-DECORATION: none } .short { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; MARGIN-BOTTOM: 12px; = PADDING-BOTTOM: 12px; LINE-HEIGHT: 1.6em; PADDING-TOP: 4px; = BORDER-BOTTOM: #ddd 1px solid } #latest_news_wrap { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: #fff; = PADDING-BOTTOM: 9px; PADDING-TOP: 10px } #latest_news { =09 } #latest_news DIV.short { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; MARGIN-BOTTOM: 4px; = PADDING-BOTTOM: 4px; COLOR: #333; LINE-HEIGHT: normal; PADDING-TOP: 4px; = BORDER-BOTTOM: #013242 1px solid; HEIGHT: 91px } #latest_news DIV.shorter { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; MARGIN-BOTTOM: 4px; = PADDING-BOTTOM: 4px; COLOR: #333; LINE-HEIGHT: normal; PADDING-TOP: 4px; = BORDER-BOTTOM: #013242 1px solid; HEIGHT: 115px } #latest_news DIV.short_holder H2 A { FONT-SIZE: 14px; COLOR: #c40016 } #latest_news DIV.short_holder H2 A:hover { COLOR: #666 } #latest_news DIV.article_link A { FONT-WEIGHT: bold; COLOR: #c40016 } #latest_news DIV.article_link A:hover { COLOR: #333 } DIV#latest_news DIV.short DIV.short_holder DIV.image { BORDER-RIGHT: #c40016 3px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #c40016 3px solid; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; = MARGIN: 2px 10px 2px 0px; BORDER-LEFT: #c40016 3px solid; PADDING-TOP: = 0px; BORDER-BOTTOM: #c40016 3px solid } DIV#latest_news DIV.short DIV.short_holder DIV.image:hover { BORDER-RIGHT: #666 3px solid; BORDER-TOP: #666 3px solid; BORDER-LEFT: = #666 3px solid; BORDER-BOTTOM: #666 3px solid } #category_news_box DIV.box_title { MARGIN-BOTTOM: 6px } #category_news_box DIV.box_title H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 16px; MARGIN-BOTTOM: = 4px; PADDING-BOTTOM: 4px; COLOR: #172973; PADDING-TOP: 4px; = BORDER-BOTTOM: #eee 1px solid } #category_news_box DIV.box_title H4 A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 16px; MARGIN-BOTTOM: = 4px; PADDING-BOTTOM: 4px; COLOR: #172973; PADDING-TOP: 4px; = BORDER-BOTTOM: #eee 1px solid } #category_news_box DIV.box_title SPAN { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-SIZE: 11px; PADDING-BOTTOM: = 0px; COLOR: #000; PADDING-TOP: 0px } #category_news_box DIV.box_title SPAN A { COLOR: #c90404 } #category_news_box DIV.box_title SPAN A:hover { COLOR: #000 } #category_news_box DIV.box_body UL { =09 } #category_news_box DIV.box_body UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid } #category_news_box DIV.box_body UL LI A { PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 14px; FONT-WEIGHT: = lighter; BACKGROUND: url(../img/right_box_bullet.gif) no-repeat 0px 9px; = PADDING-BOTTOM: 4px; COLOR: #000000; PADDING-TOP: 4px; TEXT-DECORATION: = none } #category_news_box DIV.box_body UL LI A:hover { COLOR: #08556f; TEXT-DECORATION: none } #category_holder DIV.subcategory_list DIV.box_body { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } #category_holder DIV.short { BORDER-BOTTOM-WIDTH: 0px; MARGIN-BOTTOM: 12px; PADDING-BOTTOM: 5px } .box_breadcrumb { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 6px; COLOR: = #666666; PADDING-TOP: 6px; BORDER-BOTTOM: #eeeeee 1px solid } .box_breadcrumb A { COLOR: #666 } #article_holder H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 24px; MARGIN-BOTTOM: = 4px; PADDING-BOTTOM: 4px; COLOR: #c40016; PADDING-TOP: 8px; = BORDER-BOTTOM: #eeeeee 3px solid } #article_holder DIV.article_metadata { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 11px; MARGIN-BOTTOM: = 4px; PADDING-BOTTOM: 12px; PADDING-TOP: 0px } #article_holder DIV.article_metadata SPAN.metadata_time { FONT-SIZE: 11px; COLOR: #666666 } #article_holder DIV.font_size { FONT-SIZE: 11px; FLOAT: right; MARGIN-BOTTOM: 12px; TEXT-ALIGN: right } #article_holder DIV.font_size IMG { PADDING-LEFT: 3px; VERTICAL-ALIGN: bottom } #article_holder DIV.image { BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #cccccc 1px solid; PADDING-LEFT: 4px; FLOAT: left; PADDING-BOTTOM: 4px; = BORDER-LEFT: #cccccc 1px solid; MARGIN-RIGHT: 10px; PADDING-TOP: 4px; = BORDER-BOTTOM: #cccccc 1px solid } #article_holder DIV.image SPAN.image_caption { FONT-SIZE: 11px; LINE-HEIGHT: normal } #article_holder DIV#article_body { MARGIN-BOTTOM: 12px; OVERFLOW: hidden; WIDTH: 100%; LINE-HEIGHT: 1.6em } #article_holder DIV#article_body H1 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body H2 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body H3 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body H4 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body H5 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body H6 { FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV#article_body A { COLOR: #666 } #article_holder DIV#article_body A:hover { COLOR: #c40016; TEXT-DECORATION: none } #box_social_bookmarks { PADDING-RIGHT: 6px; BORDER-TOP: #eeeeee 1px solid; PADDING-LEFT: 6px; = PADDING-BOTTOM: 6px; MARGIN: 6px 0px 12px; COLOR: #666666; PADDING-TOP: = 6px; BORDER-BOTTOM: #eeeeee 1px solid } #box_social_bookmarks A { COLOR: #666; TEXT-DECORATION: none } #box_social_bookmarks A:hover { COLOR: #c40016; TEXT-DECORATION: none } #box_social_bookmarks IMG { MARGIN: 0px 2px 0px 5px; VERTICAL-ALIGN: middle } .comment_block H4 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 14px; PADDING-BOTTOM: 6px; MARGIN: 6px 0px; COLOR: #c40016; PADDING-TOP: = 6px; BORDER-BOTTOM: #999 1px solid; FONT-FAMILY: Arial, Helvetica, = sans-serif; BACKGROUND-COLOR: #eee } .comment_block H4 IMG.comment_feed { FLOAT: right } .comment_block H4 SPAN.no_comments { DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: 12px } .comment_block H5 { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: = 12px; PADDING-BOTTOM: 6px; MARGIN: 6px 0px; COLOR: #c40016; PADDING-TOP: = 6px; BORDER-BOTTOM: #ccc 1px solid; FONT-FAMILY: Arial, Helvetica, = sans-serif } #comment_list { MARGIN: 15px 8px } #comment_list DIV.comment_holder { MARGIN-BOTTOM: 20px } #comment_list DIV.comment_header { PADDING-BOTTOM: 6px } #comment_list DIV.comment_header { FONT-SIZE: 11px } #comment_list DIV.comment_header A { FONT-WEIGHT: bold; COLOR: #666 } #comment_list DIV.comment_body_holder { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px; BORDER-BOTTOM: #ebebeb 1px solid; BACKGROUND-COLOR: = #f8f8f8 } #comment_list DIV.comment_body { OVERFLOW: hidden; WIDTH: 100% } #comment_list DIV.comment_body IMG { FLOAT: left } #comment_list DIV.comment_body DIV.comment_text { PADDING-RIGHT: 12px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = MARGIN-LEFT: 50px; COLOR: #666666; PADDING-TOP: 0px } #comment_list DIV.comment_report { FLOAT: right } #comment_list DIV.comment_rate { FLOAT: right } #comment_list DIV.comment_rate { PADDING-RIGHT: 6px } .comment_rate DIV.result { BORDER-RIGHT: #ebebeb 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #ebebeb 1px solid; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FLOAT: left; = PADDING-BOTTOM: 0px; BORDER-LEFT: #ebebeb 1px solid; COLOR: #555555; = PADDING-TOP: 0px; BORDER-BOTTOM: #ebebeb 1px solid; BACKGROUND-COLOR: = #ffffff } .result SPAN.error { FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #ca0405 } DIV#comment_dump { BORDER-RIGHT: #ebebeb 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #ebebeb 1px solid; PADDING-LEFT: 6px; FONT-SIZE: 14px; PADDING-BOTTOM: = 6px; BORDER-LEFT: #ebebeb 1px solid; COLOR: #172973; PADDING-TOP: 6px; = BORDER-BOTTOM: #ebebeb 1px solid; BACKGROUND-COLOR: #f8f8f8 } DIV#comment_dump SPAN.error { COLOR: #ca0405 } #box_pagination { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: #eeeeee; = PADDING-BOTTOM: 6px; MARGIN: 6px 0px 10px; COLOR: #666666; PADDING-TOP: = 6px } #box_pagination SPAN.pagination { FONT-WEIGHT: bold; FLOAT: right } #box_pagination SPAN.pagination A { FONT-WEIGHT: normal; COLOR: #c40016 } #box_pagination SPAN.pagination_total { FONT-WEIGHT: bold; COLOR: #666 } #box_calendar TABLE CAPTION { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px; BORDER-BOTTOM: #ddd 1px solid } #box_calendar TABLE CAPTION A { FONT-WEIGHT: bold; COLOR: #666 } #box_calendar TABLE CAPTION SPAN { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; CURSOR: = pointer; PADDING-TOP: 0px } #box_calendar TABLE TD { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; TEXT-ALIGN: center } #box_right_holder { =09 } #dynamic_box_right DIV#box_right_holder { MARGIN: 10px } #dynamic_box_right .box DIV.box_title { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 14px! important; BACKGROUND: = url(../img/box_right_head_left.gif) no-repeat left top; PADDING-BOTTOM: = 15px! important; TEXT-TRANSFORM: uppercase! important; COLOR: #fff; = LINE-HEIGHT: 22px; PADDING-TOP: 7px! important } #content_features_right .box .box_title { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 14px! important; BACKGROUND: = url(../img/box_right_head_left.gif) no-repeat left top; PADDING-BOTTOM: = 15px! important; TEXT-TRANSFORM: uppercase! important; COLOR: #fff; = LINE-HEIGHT: 22px; PADDING-TOP: 7px! important } #box_related_news .box_title { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 14px! important; BACKGROUND: = url(../img/box_right_head_left.gif) no-repeat left top; PADDING-BOTTOM: = 15px! important; TEXT-TRANSFORM: uppercase! important; COLOR: #fff; = LINE-HEIGHT: 22px; PADDING-TOP: 7px! important } #article_tags .box_title { PADDING-RIGHT: 6px! important; PADDING-LEFT: 6px! important; = FONT-WEIGHT: bold! important; FONT-SIZE: 14px! important; BACKGROUND: = url(../img/box_right_head_left.gif) no-repeat left top; PADDING-BOTTOM: = 15px! important; TEXT-TRANSFORM: uppercase! important; COLOR: #fff; = LINE-HEIGHT: 22px; PADDING-TOP: 7px! important } #dynamic_box_right .box .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top } #content_features_right .box .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top } * HTML #dynamic_box_right .box .box_title_holder { HEIGHT: 1% } #content_features_right .box .box_title_holder { HEIGHT: 1% } #dynamic_box_right .box { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px } #content_features_right .box { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px } #dynamic_box_right .box .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom } #content_features_right .box .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom } #dynamic_box_right .box .box_body DIV.box_content { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px; HEIGHT: 1% } * HTML #dynamic_box_right .box .box_body { HEIGHT: 1% } #content_features_right .box .box_body { HEIGHT: 1% } #dynamic_box_right .box .box_body DIV.box_content H3 { PADDING-BOTTOM: 2px; PADDING-TOP: 4px } #dynamic_box_right DIV.box_body UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px; BORDER-BOTTOM: #ddd 1px solid } #dynamic_box_right DIV.box_body UL LI A { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 24px; BACKGROUND: = url(../img/bullet1.gif) no-repeat 3px 3px; PADDING-BOTTOM: 4px; COLOR: = #232323; PADDING-TOP: 4px; TEXT-DECORATION: none } #dynamic_box_right DIV.box_body UL LI A:hover { COLOR: #08556f } .tabs { FONT-WEIGHT: bold; FONT-SIZE: 12px; TEXT-TRANSFORM: uppercase; = LINE-HEIGHT: normal; FONT-FAMILY: Arial, Helvetica, sans-serif } UL.tabs { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: = 0px; PADDING-TOP: 4px; LIST-STYLE-TYPE: none } .tabs LI { PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .tabs A { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 10px; MARGIN: = 0px 1px 0px 0px; PADDING-TOP: 4px; TEXT-DECORATION: none } *:first-child + HTML .tabs A { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } * HTML .tabs A { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .tabs A SPAN { PADDING-RIGHT: 8px; PADDING-LEFT: 4px; PADDING-BOTTOM: 10px; COLOR: = #fff; PADDING-TOP: 4px } .tabs A:hover { BACKGROUND: url(../img/tabs_left.gif) no-repeat left top; = TEXT-DECORATION: none } .tabs A:hover SPAN { BACKGROUND: url(../img/tabs_right.gif) no-repeat right top; COLOR: #fff } .tabs A.active { BACKGROUND: url(../img/tabs_left.gif) no-repeat left top } .tabs A.active SPAN { BACKGROUND: url(../img/tabs_right.gif) no-repeat right top; COLOR: #fff } .edit_info { BORDER-TOP: #eeeeee 1px solid; MARGIN-TOP: 4px; PADDING-TOP: 4px } .edit_info A { COLOR: #c90404 } .fp_link A { COLOR: #c90404 } .fp_link { BORDER-TOP: #eeeeee 1px solid; MARGIN-TOP: 4px; PADDING-TOP: 4px; = TEXT-ALIGN: center } .fp_info { FONT-SIZE: 11px; MARGIN-BOTTOM: 6px; COLOR: #a5a5a5 } DIV#latest_comments DIV.single_comment IMG { FLOAT: left; MARGIN: 2px 6px 2px 4px } DIV#latest_comments DIV.single_comment { DISPLAY: block; MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 4px; OVERFLOW: = hidden; WIDTH: 100%; BORDER-BOTTOM: #ddd 1px solid } DIV#latest_comments DIV.single_comment DIV.comment_header { FONT-SIZE: 11px; COLOR: #08556f } DIV#latest_comments DIV.single_comment DIV.comment_header A { FONT-WEIGHT: bold; COLOR: #666 } DIV#latest_comments DIV.single_comment DIV.comment_body { FONT-SIZE: 11px; PADDING-TOP: 2px } DIV#box_users DIV.box_body IMG { FLOAT: left; MARGIN: 2px 6px 2px 4px } DIV#box_users DIV.box_body A { DISPLAY: block; FONT-SIZE: 18px; PADDING-BOTTOM: 6px; COLOR: #666; = FONT-FAMILY: Trebuchet MS, Arial, Helvetica, sans-serif } DIV#box_users DIV.box_content { OVERFLOW: hidden; WIDTH: 90% } DIV#box_tags A:hover { COLOR: #666 } DIV#box_tags .view_all A { COLOR: #666 } DIV#box_tags A { COLOR: #c40016; TEXT-DECORATION: none } DIV#box_tags .view_all { BORDER-TOP: #eeeeee 1px solid; MARGIN-TOP: 4px; PADDING-TOP: 4px; = TEXT-ALIGN: right } #article_tags DIV.article_tags { =09 } #article_tags DIV.article_my_tags { BORDER-TOP: #ddd 1px solid; MARGIN-TOP: 6px; PADDING-TOP: 6px } #article_tags DIV.article_add_tag { MARGIN-BOTTOM: 10px; PADDING-TOP: 6px } #dynamic_box_right DIV#box_article_tools { MARGIN-BOTTOM: 36px } #dynamic_box_right DIV#box_article_tools UL { FONT-SIZE: 11px } #dynamic_box_right DIV#box_article_tools UL LI IMG { VERTICAL-ALIGN: text-bottom; MARGIN-RIGHT: 4px } #dynamic_box_right DIV#box_article_tools UL LI A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 4px; COLOR: #666666; PADDING-TOP: = 2px } #dynamic_box_right DIV#box_article_tools UL LI A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #08556f; = TEXT-DECORATION: none } #send_article { PADDING-RIGHT: 6px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 6px; = PADDING-BOTTOM: 6px; PADDING-TOP: 6px } #stars { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; OVERFLOW: = hidden; WIDTH: 150px; PADDING-TOP: 2px } .article_rating { PADDING-RIGHT: 18px; FONT-WEIGHT: bold; FONT-SIZE: 14px; FLOAT: right; = COLOR: #333; PADDING-TOP: 10px } DIV.standard_star { CURSOR: pointer } #dynamic_box_right DIV.content_attachment { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; OVERFLOW: = hidden; WIDTH: 100%; PADDING-TOP: 4px } #dynamic_box_right DIV.content_attachment IMG { PADDING-RIGHT: 4px; FLOAT: left; VERTICAL-ALIGN: bottom } #dynamic_box_right DIV.content_attachment A { FLOAT: left; OVERFLOW: hidden; WIDTH: 206px } .footer { PADDING-RIGHT: 0px; BACKGROUND: url(../img/tpl4023_footer_bg.gif) #000 = no-repeat left top; PADDING-BOTTOM: 30px; COLOR: #666666; PADDING-TOP: = 18px; HEIGHT: 1%; TEXT-ALIGN: left } .footer_logo { DISPLAY: block; FLOAT: left; WIDTH: 300px; HEIGHT: 90px } .footer A { COLOR: #666666; TEXT-DECORATION: none } .static_footer { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; = PADDING-TOP: 0px } .footer_menu { FLOAT: left; WIDTH: 600px } .footer DIV.corner_bottom { =09 } .footer UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; TEXT-TRANSFORM: uppercase; PADDING-TOP: 15px } .footer LI { PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } .footer LI A { FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #08556f; TEXT-DECORATION: = none } .footer LI A:hover { COLOR: #333; TEXT-DECORATION: none } .login_register { PADDING-RIGHT: 20px; PADDING-LEFT: 22px; FONT-SIZE: 10px; BACKGROUND: = url(../img/tpl4023_lock.gif) no-repeat right center; PADDING-BOTTOM: = 2px; MARGIN: 0px auto 5px; TEXT-TRANSFORM: uppercase; WIDTH: 940px; = COLOR: #c30; PADDING-TOP: 2px; POSITION: relative; TEXT-ALIGN: right } .login_register A { COLOR: #999 } .login_register A:hover { COLOR: #c30; TEXT-DECORATION: none } .login_register A IMG { VERTICAL-ALIGN: text-bottom; MARGIN-RIGHT: 5px } #ads1 { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 18px; TEXT-ALIGN: center } #ads2 { MARGIN-BOTTOM: 10px } .search_index DIV.search { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 9999; RIGHT: 10px; = BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 6px; = WIDTH: 350px; PADDING-TOP: 7px; POSITION: absolute; TOP: 100px } *:first-child + HTML .search_index DIV.search { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 5px; = PADDING-TOP: 3px } * HTML .search_index DIV.search { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 5px; = PADDING-TOP: 3px } .search_index DIV.search A { COLOR: #333 } .search_index DIV.search BUTTON { PADDING-BOTTOM: 1px } #tpl4023_stripe { BACKGROUND: url(../img/tpl4023_stripe_bg.gif) no-repeat left top; = MARGIN-BOTTOM: 10px; MARGIN-LEFT: 10px; OVERFLOW: hidden; WIDTH: 720px; = HEIGHT: 1% } #latest_3_news { PADDING-RIGHT: 10px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; MARGIN: = 0px auto; OVERFLOW: hidden; WIDTH: 935px; PADDING-TOP: 10px; = BACKGROUND-COLOR: #eeeeee } DIV#latest_3_news DIV.short { FONT-SIZE: 12px; FLOAT: left; PADDING-BOTTOM: 10px; WIDTH: 285px; = COLOR: #000; BORDER-TOP-STYLE: none; LINE-HEIGHT: normal; MARGIN-RIGHT: = 10px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 140px; = BORDER-BOTTOM-STYLE: none } DIV#latest_3_news DIV.article_link A { COLOR: #215992 } DIV#latest_3_news DIV.article_link A:hover { COLOR: #08556f; TEXT-DECORATION: none } DIV#latest_3_news DIV.short_holder H2 { MARGIN-BOTTOM: 6px; LINE-HEIGHT: 16px } DIV#latest_3_news DIV.short_holder H2 A { FONT-SIZE: 16px; COLOR: #c40016; FONT-FAMILY: "Trebuchet MS", Arial, = Helvetica, sans-serif; TEXT-DECORATION: none } DIV#latest_3_news DIV.short_holder H2 A:hover { COLOR: #333 } #most_box .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top; = HEIGHT: 1% } #most_box .box DIV.box_title { BACKGROUND: url(../img/box_right_head_left.gif) no-repeat left top; = HEIGHT: 1% } #most_box DIV.box_title { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 9px; = PADDING-TOP: 12px } #most_box .box { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px; HEIGHT: 1% } #most_box .box .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom; = HEIGHT: 1% } #most_box .box .box_body DIV.box_content { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px; HEIGHT: 1% } #most_box DIV.box_body UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px; BORDER-BOTTOM: #ddd 1px solid } #most_box DIV.box_body UL LI.first_article { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; = PADDING-TOP: 5px; BORDER-BOTTOM: #ddd 1px solid } #most_box DIV.box_body UL LI A { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 25px; FONT-SIZE: = 14px; BACKGROUND: url(../img/tpl4023_bullet1.gif) no-repeat 5px 1px; = PADDING-BOTTOM: 0px; COLOR: #c40016; PADDING-TOP: 0px; FONT-FAMILY: = Trebuchet MS, Arial, Helvetica, sans-serif } #most_box DIV.box_body UL LI.first_article A { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent = scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px } #most_box DIV.box_body UL LI A:hover { COLOR: #333; TEXT-DECORATION: none } DIV.main_news_box_row .box_title H3 A { FONT-WEIGHT: normal; FONT-SIZE: 18px; COLOR: #c40016 } DIV.main_news_box_row .box_title H3 A:hover { COLOR: #333; TEXT-DECORATION: none } A.search_link { COLOR: #333 } A.search_link:hover { COLOR: #666 } .content_container_wh { BACKGROUND: #fff } P.built { FONT-SIZE: 12px; FLOAT: right; COLOR: #aa010d } P.built A { COLOR: #aa010d; TEXT-DECORATION: none } P.built STRONG { BORDER-BOTTOM: #ffffff 1px dotted } DIV.banner_wide { MARGIN: 5px auto; WIDTH: 950px; HEIGHT: 170px } .box_tabs UL LI A { COLOR: #fff } .short_holder H3 A { COLOR: #c40016! important; FONT-FAMILY: "Trebuchet MS", Arial, = Helvetica, sans-serif; TEXT-DECORATION: none } .article_link A { COLOR: #215992! important; TEXT-DECORATION: none } .short-tmb { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 4px; BACKGROUND: #fff; PADDING-BOTTOM: 4px; = BORDER-LEFT: #999 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #999 1px = solid } .image { FLOAT: left; MARGIN: 0px 15px 5px 0px } .supplier_btn { PADDING-RIGHT: 20px; BACKGROUND: url(../img/bullet1.gif) no-repeat = right center; FLOAT: right } .supplier_btn A { FONT-WEIGHT: bold; COLOR: #215992; TEXT-DECORATION: none } .tyrepedia { RIGHT: 20px; WIDTH: 126px; BOTTOM: 0px; POSITION: absolute; HEIGHT: = 30px } .tyrepedia A { DISPLAY: block; BACKGROUND: url(../img/tyrepedia.gif) no-repeat left = top; WIDTH: 126px; HEIGHT: 30px } .tyrepedia A:hover { BACKGROUND-POSITION: left bottom } #box_social_bookmarks .bookmarks { FLOAT: left; WIDTH: 300px } #box_social_bookmarks .tools { PADDING-RIGHT: 10px; FLOAT: right; WIDTH: 300px } #box_social_bookmarks .tools LI { PADDING-LEFT: 5px; FLOAT: left } #box_related_news .short { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FLOAT: left; PADDING-BOTTOM: = 10px; WIDTH: 45%; PADDING-TOP: 10px; BORDER-BOTTOM-STYLE: none } #send_article { BORDER-RIGHT: #b4b4b4 4px solid; PADDING-RIGHT: 20px; BORDER-TOP: = #b4b4b4 4px solid; PADDING-LEFT: 20px; Z-INDEX: 100; = BACKGROUND-ATTACHMENT: scroll; LEFT: 140px; PADDING-BOTTOM: 20px; = BORDER-LEFT: #b4b4b4 4px solid; WIDTH: 400px; PADDING-TOP: 20px; = BORDER-BOTTOM: #b4b4b4 4px solid; POSITION: absolute; TOP: 300px; = BACKGROUND-COLOR: #ffffff } #email_to_a_friend_dump { BORDER-RIGHT: #b4b4b4 4px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #b4b4b4 4px solid; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: = 12px; Z-INDEX: 200; BACKGROUND-ATTACHMENT: scroll; LEFT: 220px; = PADDING-BOTTOM: 3px; BORDER-LEFT: #b4b4b4 4px solid; WIDTH: 200px; = COLOR: #00b7e9; LINE-HEIGHT: 14px; PADDING-TOP: 3px; BORDER-BOTTOM: = #b4b4b4 4px solid; POSITION: absolute; TOP: -2px; BACKGROUND-COLOR: = #ffffff } FORM.amember_signup { CLEAR: both; WIDTH: 100% } FORM.amember_signup DIV.left { FLOAT: left; WIDTH: 650px } FORM.amember_signup DIV.right { FLOAT: right; WIDTH: 300px; MARGIN-RIGHT: 10px; BACKGROUND-COLOR: = #cccccc } .centered { MARGIN-LEFT: 40px } .vedit { LINE-HEIGHT: 1.5 } .vedit TH { FONT-WEIGHT: normal; VERTICAL-ALIGN: top; WIDTH: 150px; TEXT-ALIGN: = left } .vedit TH B { =09 } .vedit INPUT { WIDTH: 200px } .vedit SELECT { WIDTH: 206px } INPUT.wauto { WIDTH: auto! important } .vedit TD { BORDER-BOTTOM: #fff 10px solid } .vedit .mar-left { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 22px } .header_banner { PADDING-RIGHT: 50px; FLOAT: right; WIDTH: 468px; PADDING-TOP: 30px } .category_news_category H3 A { FONT-SIZE: 16px; COLOR: #ac000c; FONT-FAMILY: Arial, Helvetica, = sans-serif; TEXT-DECORATION: none } .subcat_row { =09 } .subcat_category { FLOAT: left; MARGIN: 10px 0px; WIDTH: 350px; POSITION: relative } .subcat_category A.view { BORDER-RIGHT: #c3d6d9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: = #c3d6d9 1px solid; DISPLAY: block; PADDING-LEFT: 10px; FONT-WEIGHT: = bold; BACKGROUND: #f4f6f7; PADDING-BOTTOM: 0px; BORDER-LEFT: #c3d6d9 1px = solid; WIDTH: 298px; COLOR: #337488; LINE-HEIGHT: 25px; PADDING-TOP: = 0px; BORDER-BOTTOM: #c3d6d9 1px solid; HEIGHT: 25px; TEXT-DECORATION: = none } H3.sub_cat { PADDING-LEFT: 35px; BACKGROUND: url(../img/bg_h1.jpg) no-repeat } H3.sub_cat A { FONT-SIZE: 14px; COLOR: #970a12; LINE-HEIGHT: 40px; TEXT-DECORATION: = none } .subcat_body { MIN-HEIGHT: 100px; HEIGHT: auto! important } .subcat_body P { PADDING-RIGHT: 50px } .subcat_body UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 5px = 0px 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .subcat_body UL LI { MARGIN-BOTTOM: 5px } .subcat_body UL LI A { BACKGROUND-POSITION: 10px 50%; DISPLAY: block; PADDING-LEFT: 35px; = BACKGROUND-IMAGE: url(../img/icon_tyre.gif); COLOR: #337488; = BACKGROUND-REPEAT: no-repeat; TEXT-DECORATION: none } .subcat_body UL LI A:hover { BACKGROUND-IMAGE: url(../img/icon_tyre_on.gif) } #search-heading { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 10px; WIDTH: 700px; PADDING-TOP: 0px; POSITION: relative; HEIGHT: 154px } #search-heading H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } #search-heading H1 SPAN { RIGHT: 10px; BOTTOM: 20px; POSITION: absolute } .print_copy { DISPLAY: none } A.inner_link { FONT-WEIGHT: bold; COLOR: #215992; TEXT-DECORATION: none } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/forms.css FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } INPUT { =09 } SELECT { =09 } TEXTAREA { =09 } SELECT { =09 } TEXTAREA { BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; = BORDER-LEFT: #7f9db9 1px solid; BORDER-BOTTOM: #7f9db9 1px solid } .form_line { MARGIN-BOTTOM: 6px; PADDING-BOTTOM: 6px; OVERFLOW: hidden; WIDTH: 100% } *:first-child + HTML .form_line { MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 6px } INPUT.text { BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; = BORDER-LEFT: #7f9db9 1px solid; BORDER-BOTTOM: #7f9db9 1px solid } SELECT.options { BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; = BORDER-LEFT: #7f9db9 1px solid; BORDER-BOTTOM: #7f9db9 1px solid } INPUT.submit_button { FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif } BUTTON { FONT-SIZE: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif } .formElement P { MARGIN-TOP: 0px } #dynamic_box_right .form_line LABEL { =09 } #dynamic_box_right .form_line DIV.submit { TEXT-ALIGN: right } #dynamic_box_right .form_line DIV.submit A { FLOAT: left; COLOR: #c90404; PADDING-TOP: 3px } #dynamic_box_center DIV.form_line LABEL { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 3px; FONT-SIZE: 12px; = FLOAT: left; PADDING-BOTTOM: 3px; WIDTH: 30%; COLOR: #666666; = PADDING-TOP: 3px; TEXT-ALIGN: right } #dynamic_box_center DIV.formElement { DISPLAY: inline; FLOAT: left; MARGIN-LEFT: 6px } #dynamic_box_center DIV.formElement LABEL { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: = normal; FLOAT: none; PADDING-BOTTOM: 0px; WIDTH: auto; PADDING-TOP: 0px; = TEXT-ALIGN: left } .tos_label { COLOR: #666666 } .tos_label A { COLOR: #c90404 } .tos_box { BORDER-RIGHT: #7f9db9 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #7f9db9 1px solid; MARGIN-TOP: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: = 6px; OVERFLOW: scroll; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 350px; = PADDING-TOP: 6px; BORDER-BOTTOM: #7f9db9 1px solid; HEIGHT: 200px } .tos_box PRE { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px; FONT-FAMILY: Arial, Helvetica, sans-serif } #error_message { BACKGROUND: #fcd6d4; MARGIN-BOTTOM: 6px } #error_message P { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 2px = 0px; COLOR: #555555; PADDING-TOP: 4px } .validation { PADDING-RIGHT: 0px; PADDING-LEFT: 18px; FONT-WEIGHT: bold; FONT-SIZE: = 11px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px } .not_valid { BACKGROUND: url(../img/validation_not_valid.gif) no-repeat 0px 0px; = COLOR: #f3735d } .checking { BACKGROUND: url(../img/validation_info.gif) no-repeat 0px 0px; COLOR: = #6b99c5 } .valid { BACKGROUND: url(../img/validation_valid.gif) no-repeat 0px 0px; COLOR: = #80ca73 } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/handheld.css BODY { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 80%; BACKGROUND: = #cccccc 0% 50%; PADDING-BOTTOM: 0pt; MARGIN: 0pt; WIDTH: 100%; = LINE-HEIGHT: 1.5; PADDING-TOP: 0pt; FONT-FAMILY: 'vera = sans',helvetica,sans-serif } IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #container { CLEAR: both; BACKGROUND: #ffffff; MAX-WIDTH: 420px; MARGIN: auto } #content { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } .header_image IMG { WIDTH: 100% } #mainTicker { DISPLAY: none } #box_newsletter { DISPLAY: none } #box_poll { DISPLAY: none } #box_login { DISPLAY: none } .box_tabs { DISPLAY: none } #box_users { DISPLAY: none } #box_sections DIV.box_title { DISPLAY: none } #mainNav LI UL { DISPLAY: none } #box_sections LI UL { DISPLAY: none } #rotating_headlines DIV.headline_image DIV.image_caption { DISPLAY: none } .comment_block { DISPLAY: none } #box_article_tools { DISPLAY: none } #box_my_tags { DISPLAY: none } #box_article_rating { DISPLAY: none } SPAN.image_caption { DISPLAY: none } #mainNav { FONT-SIZE: 80%; HEIGHT: 20px } #box_sections { FONT-SIZE: 80%; HEIGHT: 20px } .box_pages { FONT-SIZE: 80%; HEIGHT: 20px } #mainNav { BACKGROUND-COLOR: #f1f1f1 } #box_sections { BACKGROUND-COLOR: #f1f1f1 } #footer { BACKGROUND-COLOR: #f1f1f1 } #mainNav UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } #box_sections UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } .box_pages UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } #footer UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } #mainNav UL LI { DISPLAY: inline; MARGIN-RIGHT: 2px; LIST-STYLE-TYPE: none } #box_sections UL LI { DISPLAY: inline; MARGIN-RIGHT: 2px; LIST-STYLE-TYPE: none } .box_pages UL LI { DISPLAY: inline; MARGIN-RIGHT: 2px; LIST-STYLE-TYPE: none } #footer UL LI { DISPLAY: inline; MARGIN-RIGHT: 2px; LIST-STYLE-TYPE: none } #mainNav UL LI A { COLOR: #000000 } #box_sections UL LI A { COLOR: #000000 } #footer UL LI A { COLOR: #000000 } #box_search { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } #box_search INPUT { FONT-SIZE: 10px } #box_search BUTTON { FONT-SIZE: 10px } #rotating_headlines { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 3px; PADDING-TOP: 3px; BACKGROUND-COLOR: #f1f1f1 } #rotating_headlines H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 150%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #rotating_headlines DIV.headline_image IMG { FLOAT: none; WIDTH: 40% } .player UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: = 0px; PADDING-TOP: 3px } .player UL LI { DISPLAY: inline; MARGIN-RIGHT: 2px; LIST-STYLE-TYPE: none } #latest_news { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } #latest_news H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 110%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #latest_news SPAN.summary { FONT-SIZE: 80% } #latest_news DIV.short { HEIGHT: 50px } #category_news_box { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } .main_news_category { MARGIN-BOTTOM: 4px; BORDER-BOTTOM: #cccccc 1px solid } .main_news_category H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: = 110%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px } .main_news_category DIV.short { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; OVERFLOW: = hidden; WIDTH: 100%; PADDING-TOP: 6px } .main_news_category DIV.short DIV.image { FLOAT: left; MARGIN: 4px } .main_news_category H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 90%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } .main_news_category UL { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-SIZE: 80%; PADDING-BOTTOM: = 3px; MARGIN: 0px; PADDING-TOP: 3px } .main_news_category UL LI { LIST-STYLE-POSITION: inside } #box_tags { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; MARGIN: = 3px; PADDING-TOP: 6px; BACKGROUND-COLOR: #f1f1f1 } #article_body { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/article_styles.css .quote_right { PADDING-RIGHT: 15px; DISPLAY: inline; PADDING-LEFT: 15px; FONT-SIZE: = 11px; FLOAT: right; PADDING-BOTTOM: 15px; MARGIN: 15px 0px 10px 15px; = BORDER-LEFT: #08556f 5px solid; WIDTH: 200px; COLOR: #666; PADDING-TOP: = 15px; HEIGHT: auto; FONT-VARIANT: small-caps } .quote_right IMG { MARGIN: 4px } .quote_left { BORDER-RIGHT: #08556f 5px solid; PADDING-RIGHT: 15px; DISPLAY: inline; = PADDING-LEFT: 15px; FONT-SIZE: 11px; FLOAT: left; PADDING-BOTTOM: 15px; = MARGIN: 15px 15px 10px 0px; WIDTH: 200px; COLOR: #666; PADDING-TOP: = 15px; HEIGHT: auto; FONT-VARIANT: small-caps } .quote_left IMG { MARGIN: 4px } .right_image { DISPLAY: inline; FLOAT: right; MARGIN: 6px } .left_image { DISPLAY: inline; FLOAT: left; MARGIN: 6px } #article_holder DIV#article_body H1 { FONT-SIZE: x-large; COLOR: #000000; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } #article_holder DIV#article_body H2 { FONT-SIZE: large } #article_holder DIV#article_body H3 { FONT-SIZE: medium } #article_holder DIV#article_body H4 { FONT-SIZE: small } #article_holder DIV#article_body H5 { FONT-SIZE: x-small; MARGIN: 0px } #article_holder DIV#article_body H6 { FONT-SIZE: xx-small; MARGIN: 0px } #article_holder DIV#article_body UL { PADDING-LEFT: 40px; MARGIN: 12px 0px } #article_holder DIV#article_body UL LI { LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: disc } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/print.css BODY { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; BACKGROUND: #ffffff 0% 50%; = PADDING-BOTTOM: 0pt; MARGIN: 0pt; WIDTH: 100%; LINE-HEIGHT: 1.5; = PADDING-TOP: 0pt; FONT-FAMILY: Georgia, "Times New Roman", Times, serif } #box_related_news { DISPLAY: none } #header { DISPLAY: none } .search_index { DISPLAY: none } .login_register { DISPLAY: none } #article_tags { DISPLAY: none } #more_news_tabbed { DISPLAY: none } #footer { DISPLAY: none } #container { CLEAR: both; BACKGROUND: #ffffff; MARGIN: auto } #admin_menu { DISPLAY: none } #dynamic_box_left { DISPLAY: none } #dynamic_box_right { DISPLAY: none } #dynamic_box_center DIV#box_comments { DISPLAY: none } #dynamic_box_center DIV.box_breadcrumb { DISPLAY: none } #dynamic_box_center DIV.font_size { DISPLAY: none } #article_holder { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; = PADDING-TOP: 6px } #article_body { FONT-SIZE: 90% } #article_body DIV.image { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: black = 1px solid; PADDING-LEFT: 6px; FLOAT: left; PADDING-BOTTOM: 6px; MARGIN: = 6px; BORDER-LEFT: black 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: = black 1px solid } #article_body DIV.image SPAN.image_caption { FONT-SIZE: 80%; FONT-FAMILY: Arial, Helvetica, sans-serif } #article_holder DIV.article_metadata { MARGIN-BOTTOM: 12px; BORDER-BOTTOM: black 1px solid } #article_holder DIV.article_metadata SPAN.metadata_time { FLOAT: right } #article_holder DIV.content_attachment { DISPLAY: none } #article_holder DIV#box_social_bookmarks { DISPLAY: none } .quote_right { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: black = 1px solid; DISPLAY: inline; PADDING-LEFT: 6px; FONT-SIZE: 80%; FLOAT: = right; PADDING-BOTTOM: 6px; MARGIN: 6px; BORDER-LEFT: black 1px solid; = WIDTH: 200px; PADDING-TOP: 6px; BORDER-BOTTOM: black 1px solid; = FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: auto } .quote_left { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: black = 1px solid; DISPLAY: inline; PADDING-LEFT: 6px; FONT-SIZE: 80%; FLOAT: = left; PADDING-BOTTOM: 6px; MARGIN: 6px; BORDER-LEFT: black 1px solid; = WIDTH: 200px; PADDING-TOP: 6px; BORDER-BOTTOM: black 1px solid; = FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: auto } .right_image { DISPLAY: inline; FLOAT: right; MARGIN: 6px } .left_image { DISPLAY: inline; FLOAT: left; MARGIN: 6px } .print_copy { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; = PADDING-BOTTOM: 0px; COLOR: #000; PADDING-TOP: 30px } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/dhtml_menu.css .menu { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: = 0px } .menu UL { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: = 0px } .menu { PADDING-LEFT: 0px } .menu LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; Z-INDEX: 5; FLOAT: left; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: = 0px; LIST-STYLE-TYPE: none; POSITION: relative; BORDER-RIGHT-WIDTH: 0px } .menu LI:hover { Z-INDEX: 10000; WHITE-SPACE: normal } .menu LI LI { FLOAT: none; POSITION: relative! important } .menu UL { Z-INDEX: 10; LEFT: 0px; VISIBILITY: hidden; POSITION: absolute; TOP: = 0px } .menu LI:hover > UL { VISIBILITY: visible; TOP: 100% } .menu LI LI:hover > UL { LEFT: 100%; TOP: 0px } .menu:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; OVERFLOW: hidden; = HEIGHT: 0px; content: "." } .menu UL:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; OVERFLOW: hidden; = HEIGHT: 0px; content: "." } .menu { MIN-HEIGHT: 0px } .menu UL { MIN-HEIGHT: 0px } .menu UL { PADDING-RIGHT: 30px; PADDING-LEFT: 30px; BACKGROUND-IMAGE: = url(../img/empty.gif); PADDING-BOTTOM: 30px; MARGIN: -10px 0px 0px = -30px; PADDING-TOP: 10px } .menu UL UL { PADDING-RIGHT: 30px; PADDING-LEFT: 10px; PADDING-BOTTOM: 30px; MARGIN: = 0px 0px 0px -10px; PADDING-TOP: 30px } #mainNav { MARGIN-TOP: 0px; FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND-IMAGE: = url(../img/nav-bg.jpg); MARGIN-LEFT: 0px; TEXT-TRANSFORM: uppercase; = WIDTH: 990px; MARGIN-RIGHT: 0px; BORDER-BOTTOM: #08556f 5px solid; = BACKGROUND-COLOR: #af0e1a } .menu UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 85%; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none } .menu UL LI { FLOAT: none; MARGIN: 0px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: = none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .menu UL LI UL { FONT-SIZE: 100% } .menu UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 15em; PADDING-TOP: 0px } .menu LI:hover { =09 } .menu LI A { PADDING-RIGHT: 8px; MARGIN-TOP: 2px; DISPLAY: block; PADDING-LEFT: 8px; = MARGIN-BOTTOM: 2px; PADDING-BOTTOM: 0px; LINE-HEIGHT: 26px; PADDING-TOP: = 0px; HEIGHT: 26px } .menu LI A:link { COLOR: #ffffff; TEXT-DECORATION: none } .menu LI A:visited { COLOR: #ffffff; TEXT-DECORATION: none } .menu LI A:hover { COLOR: #ffffff; TEXT-DECORATION: none } .menu LI A:hover { BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #f4e500 } .menu UL LI { BACKGROUND: none transparent scroll repeat 0% 0% } .menu UL LI:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .menu UL LI A:link { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; FONT-SIZE: 12px; = BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: none; = PADDING-BOTTOM: 4px; TEXT-TRANSFORM: none; COLOR: #000; LINE-HEIGHT: = 100%; PADDING-TOP: 4px; POSITION: relative; HEIGHT: auto; = TEXT-DECORATION: none } .menu UL LI A:visited { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; FONT-SIZE: 12px; = BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: none; = PADDING-BOTTOM: 4px; TEXT-TRANSFORM: none; COLOR: #000; LINE-HEIGHT: = 100%; PADDING-TOP: 4px; POSITION: relative; HEIGHT: auto; = TEXT-DECORATION: none } .menu UL LI A:hover { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; FONT-SIZE: 12px; = BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: none; = PADDING-BOTTOM: 4px; TEXT-TRANSFORM: none; COLOR: #000; LINE-HEIGHT: = 100%; PADDING-TOP: 4px; POSITION: relative; HEIGHT: auto; = TEXT-DECORATION: none } .menu UL LI A:hover { COLOR: #333 } .menu UL LI UL LI A:link { =09 } .menu UL LI UL LI A:visited { =09 } .menu UL LI UL LI A:hover { =09 } .menu LI UL LI UL LI A:hover { COLOR: #333 } .menu A:hover { =09 } .menu LI:hover > A { =09 } .menu LI LI:hover > UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } * HTML #mainNav A { FLOAT: left } * HTML .menu { ZOOM: 1 } * HTML .menu UL { ZOOM: 1 } * HTML .menu LI.adxmhover { Z-INDEX: 10000 } * HTML .menu .adxmhoverUL { VISIBILITY: visible } * HTML .menu .adxmhoverUL { LEFT: 0px; TOP: 100% } * HTML .menu .adxmhoverUL .adxmhoverUL { LEFT: 100%; TOP: 0px } * HTML .menu UL A { ZOOM: 1 } * HTML .menu UL LI { DISPLAY: inline! important } * HTML .menu UL LI A:link { DISPLAY: block; TEXT-DECORATION: none } * HTML .menu UL LI A:visited { DISPLAY: block; TEXT-DECORATION: none } * HTML .menu UL LI A:hover { DISPLAY: block; TEXT-DECORATION: none } * HTML #mainNav .menu LI UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } * HTML .menu LI LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; WIDTH: 100%; PADDING-TOP: 0px } * HTML #mainNav .menu UL LI A:link { FLOAT: none } * HTML #mainNav .menu UL LI A:visited { FLOAT: none } * HTML #mainNav .menu UL LI A:hover { FLOAT: none } * HTML .menu UL UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: text/css; charset="big5" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/themes/tpl_4023/css/more_news_tabbed.css #more_news_tabbed .box DIV.box_title { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 16px; BACKGROUND: url(../img/box_right_head_left.gif) no-repeat left = top; PADDING-BOTTOM: 6px; LINE-HEIGHT: 22px; PADDING-TOP: 6px } #box_related_news .box_title { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 16px; BACKGROUND: url(../img/box_right_head_left.gif) no-repeat left = top; PADDING-BOTTOM: 6px; LINE-HEIGHT: 22px; PADDING-TOP: 6px } #article_tags .box_title { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: = 16px; BACKGROUND: url(../img/box_right_head_left.gif) no-repeat left = top; PADDING-BOTTOM: 6px; LINE-HEIGHT: 22px; PADDING-TOP: 6px } #more_news_tabbed .box_tabs DIV.box_title { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 13px; = PADDING-TOP: 8px } #more_news_tabbed .box .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top } #box_related_news .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top } #article_tags .box_title_holder { BACKGROUND: url(../img/box_right_head_right.gif) no-repeat right top } * HTML #more_news_tabbed .box .box_title_holder { HEIGHT: 1% } #box_related_news .box_title_holder { HEIGHT: 1% } #article_tags .box_title_holder { HEIGHT: 1% } #more_news_tabbed .box { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px; HEIGHT: 1% } #box_related_news { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px; HEIGHT: 1% } #article_tags .box { BACKGROUND: url(../img/box_right_body_right.gif) #ffffff no-repeat = right bottom; MARGIN-BOTTOM: 10px; HEIGHT: 1% } #more_news_tabbed .box .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom; = HEIGHT: 1% } #box_related_news .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom; = HEIGHT: 1% } #article_tags .box_body { BACKGROUND: url(../img/box_right_body_left.gif) no-repeat left bottom; = HEIGHT: 1% } #more_news_tabbed .box .box_body DIV.box_content { PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; = PADDING-TOP: 6px; HEIGHT: 1% } * HTML #more_news_tabbed .box .box_body { HEIGHT: 1% } *:first-child + HTML #more_news_tabbed .box .box_body DIV.box_content { HEIGHT: 1% } ------=_NextPart_000_0297_01CA5B9D.BC657800 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.tyrepress.com/compress.php?js,js/framework/prototype,js/control_tabs,js/functions,js/ADxMenu,js/tooltips,js/framework/builder,js/framework/effects,js/bookmark /* Prototype JavaScript framework, version 1.6.0.3=0A= * (c) 2005-2008 Sam Stephenson=0A= *=0A= * Prototype is freely distributable under the terms of an MIT-style = license.=0A= * For details, see the Prototype web site: http://www.prototypejs.org/=0A= *=0A= = *------------------------------------------------------------------------= --*/=0A= =0A= var Prototype =3D {=0A= Version: '1.6.0.3',=0A= =0A= Browser: {=0A= IE: !!(window.attachEvent &&=0A= navigator.userAgent.indexOf('Opera') =3D=3D=3D -1),=0A= Opera: navigator.userAgent.indexOf('Opera') > -1,=0A= WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,=0A= Gecko: navigator.userAgent.indexOf('Gecko') > -1 &&=0A= navigator.userAgent.indexOf('KHTML') =3D=3D=3D -1,=0A= MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)=0A= },=0A= =0A= BrowserFeatures: {=0A= XPath: !!document.evaluate,=0A= SelectorsAPI: !!document.querySelector,=0A= ElementExtensions: !!window.HTMLElement,=0A= SpecificElementExtensions:=0A= document.createElement('div')['__proto__'] &&=0A= document.createElement('div')['__proto__'] !=3D=3D=0A= document.createElement('form')['__proto__']=0A= },=0A= =0A= ScriptFragment: ']*>([\\S\\s]*?)<\/script>',=0A= JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,=0A= =0A= emptyFunction: function() { },=0A= K: function(x) { return x }=0A= };=0A= =0A= if (Prototype.Browser.MobileSafari)=0A= Prototype.BrowserFeatures.SpecificElementExtensions =3D false;=0A= =0A= =0A= /* Based on Alex Arnell's inheritance implementation. */=0A= var Class =3D {=0A= create: function() {=0A= var parent =3D null, properties =3D $A(arguments);=0A= if (Object.isFunction(properties[0]))=0A= parent =3D properties.shift();=0A= =0A= function klass() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= =0A= Object.extend(klass, Class.Methods);=0A= klass.superclass =3D parent;=0A= klass.subclasses =3D [];=0A= =0A= if (parent) {=0A= var subclass =3D function() { };=0A= subclass.prototype =3D parent.prototype;=0A= klass.prototype =3D new subclass;=0A= parent.subclasses.push(klass);=0A= }=0A= =0A= for (var i =3D 0; i < properties.length; i++)=0A= klass.addMethods(properties[i]);=0A= =0A= if (!klass.prototype.initialize)=0A= klass.prototype.initialize =3D Prototype.emptyFunction;=0A= =0A= klass.prototype.constructor =3D klass;=0A= =0A= return klass;=0A= }=0A= };=0A= =0A= Class.Methods =3D {=0A= addMethods: function(source) {=0A= var ancestor =3D this.superclass && this.superclass.prototype;=0A= var properties =3D Object.keys(source);=0A= =0A= if (!Object.keys({ toString: true }).length)=0A= properties.push("toString", "valueOf");=0A= =0A= for (var i =3D 0, length =3D properties.length; i < length; i++) {=0A= var property =3D properties[i], value =3D source[property];=0A= if (ancestor && Object.isFunction(value) &&=0A= value.argumentNames().first() =3D=3D "$super") {=0A= var method =3D value;=0A= value =3D (function(m) {=0A= return function() { return ancestor[m].apply(this, arguments) = };=0A= })(property).wrap(method);=0A= =0A= value.valueOf =3D method.valueOf.bind(method);=0A= value.toString =3D method.toString.bind(method);=0A= }=0A= this.prototype[property] =3D value;=0A= }=0A= =0A= return this;=0A= }=0A= };=0A= =0A= var Abstract =3D { };=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (var property in source)=0A= destination[property] =3D source[property];=0A= return destination;=0A= };=0A= =0A= Object.extend(Object, {=0A= inspect: function(object) {=0A= try {=0A= if (Object.isUndefined(object)) return 'undefined';=0A= if (object =3D=3D=3D null) return 'null';=0A= return object.inspect ? object.inspect() : String(object);=0A= } catch (e) {=0A= if (e instanceof RangeError) return '...';=0A= throw e;=0A= }=0A= },=0A= =0A= toJSON: function(object) {=0A= var type =3D typeof object;=0A= switch (type) {=0A= case 'undefined':=0A= case 'function':=0A= case 'unknown': return;=0A= case 'boolean': return object.toString();=0A= }=0A= =0A= if (object =3D=3D=3D null) return 'null';=0A= if (object.toJSON) return object.toJSON();=0A= if (Object.isElement(object)) return;=0A= =0A= var results =3D [];=0A= for (var property in object) {=0A= var value =3D Object.toJSON(object[property]);=0A= if (!Object.isUndefined(value))=0A= results.push(property.toJSON() + ': ' + value);=0A= }=0A= =0A= return '{' + results.join(', ') + '}';=0A= },=0A= =0A= toQueryString: function(object) {=0A= return $H(object).toQueryString();=0A= },=0A= =0A= toHTML: function(object) {=0A= return object && object.toHTML ? object.toHTML() : = String.interpret(object);=0A= },=0A= =0A= keys: function(object) {=0A= var keys =3D [];=0A= for (var property in object)=0A= keys.push(property);=0A= return keys;=0A= },=0A= =0A= values: function(object) {=0A= var values =3D [];=0A= for (var property in object)=0A= values.push(object[property]);=0A= return values;=0A= },=0A= =0A= clone: function(object) {=0A= return Object.extend({ }, object);=0A= },=0A= =0A= isElement: function(object) {=0A= return !!(object && object.nodeType =3D=3D 1);=0A= },=0A= =0A= isArray: function(object) {=0A= return object !=3D null && typeof object =3D=3D "object" &&=0A= 'splice' in object && 'join' in object;=0A= },=0A= =0A= isHash: function(object) {=0A= return object instanceof Hash;=0A= },=0A= =0A= isFunction: function(object) {=0A= return typeof object =3D=3D "function";=0A= },=0A= =0A= isString: function(object) {=0A= return typeof object =3D=3D "string";=0A= },=0A= =0A= isNumber: function(object) {=0A= return typeof object =3D=3D "number";=0A= },=0A= =0A= isUndefined: function(object) {=0A= return typeof object =3D=3D "undefined";=0A= }=0A= });=0A= =0A= Object.extend(Function.prototype, {=0A= argumentNames: function() {=0A= var names =3D = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]=0A= .replace(/\s+/g, '').split(',');=0A= return names.length =3D=3D 1 && !names[0] ? [] : names;=0A= },=0A= =0A= bind: function() {=0A= if (arguments.length < 2 && Object.isUndefined(arguments[0])) return = this;=0A= var __method =3D this, args =3D $A(arguments), object =3D = args.shift();=0A= return function() {=0A= return __method.apply(object, args.concat($A(arguments)));=0A= }=0A= },=0A= =0A= bindAsEventListener: function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D = args.shift();=0A= return function(event) {=0A= return __method.apply(object, [event || = window.event].concat(args));=0A= }=0A= },=0A= =0A= curry: function() {=0A= if (!arguments.length) return this;=0A= var __method =3D this, args =3D $A(arguments);=0A= return function() {=0A= return __method.apply(this, args.concat($A(arguments)));=0A= }=0A= },=0A= =0A= delay: function() {=0A= var __method =3D this, args =3D $A(arguments), timeout =3D = args.shift() * 1000;=0A= return window.setTimeout(function() {=0A= return __method.apply(__method, args);=0A= }, timeout);=0A= },=0A= =0A= defer: function() {=0A= var args =3D [0.01].concat($A(arguments));=0A= return this.delay.apply(this, args);=0A= },=0A= =0A= wrap: function(wrapper) {=0A= var __method =3D this;=0A= return function() {=0A= return wrapper.apply(this, = [__method.bind(this)].concat($A(arguments)));=0A= }=0A= },=0A= =0A= methodize: function() {=0A= if (this._methodized) return this._methodized;=0A= var __method =3D this;=0A= return this._methodized =3D function() {=0A= return __method.apply(null, [this].concat($A(arguments)));=0A= };=0A= }=0A= });=0A= =0A= Date.prototype.toJSON =3D function() {=0A= return '"' + this.getUTCFullYear() + '-' +=0A= (this.getUTCMonth() + 1).toPaddedString(2) + '-' +=0A= this.getUTCDate().toPaddedString(2) + 'T' +=0A= this.getUTCHours().toPaddedString(2) + ':' +=0A= this.getUTCMinutes().toPaddedString(2) + ':' +=0A= this.getUTCSeconds().toPaddedString(2) + 'Z"';=0A= };=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= var lambda =3D arguments[i];=0A= try {=0A= returnValue =3D lambda();=0A= break;=0A= } catch (e) { }=0A= }=0A= =0A= return returnValue;=0A= }=0A= };=0A= =0A= RegExp.prototype.match =3D RegExp.prototype.test;=0A= =0A= RegExp.escape =3D function(str) {=0A= return String(str).replace(/([.*+?^=3D!:${}()|[\]\/\\])/g, '\\$1');=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create({=0A= initialize: function(callback, frequency) {=0A= this.callback =3D callback;=0A= this.frequency =3D frequency;=0A= this.currentlyExecuting =3D false;=0A= =0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= this.timer =3D setInterval(this.onTimerEvent.bind(this), = this.frequency * 1000);=0A= },=0A= =0A= execute: function() {=0A= this.callback(this);=0A= },=0A= =0A= stop: function() {=0A= if (!this.timer) return;=0A= clearInterval(this.timer);=0A= this.timer =3D null;=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.execute();=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= });=0A= Object.extend(String, {=0A= interpret: function(value) {=0A= return value =3D=3D null ? '' : String(value);=0A= },=0A= specialChar: {=0A= '\b': '\\b',=0A= '\t': '\\t',=0A= '\n': '\\n',=0A= '\f': '\\f',=0A= '\r': '\\r',=0A= '\\': '\\\\'=0A= }=0A= });=0A= =0A= Object.extend(String.prototype, {=0A= gsub: function(pattern, replacement) {=0A= var result =3D '', source =3D this, match;=0A= replacement =3D arguments.callee.prepareReplacement(replacement);=0A= =0A= while (source.length > 0) {=0A= if (match =3D source.match(pattern)) {=0A= result +=3D source.slice(0, match.index);=0A= result +=3D String.interpret(replacement(match));=0A= source =3D source.slice(match.index + match[0].length);=0A= } else {=0A= result +=3D source, source =3D '';=0A= }=0A= }=0A= return result;=0A= },=0A= =0A= sub: function(pattern, replacement, count) {=0A= replacement =3D this.gsub.prepareReplacement(replacement);=0A= count =3D Object.isUndefined(count) ? 1 : count;=0A= =0A= return this.gsub(pattern, function(match) {=0A= if (--count < 0) return match[0];=0A= return replacement(match);=0A= });=0A= },=0A= =0A= scan: function(pattern, iterator) {=0A= this.gsub(pattern, iterator);=0A= return String(this);=0A= },=0A= =0A= truncate: function(length, truncation) {=0A= length =3D length || 30;=0A= truncation =3D Object.isUndefined(truncation) ? '...' : truncation;=0A= return this.length > length ?=0A= this.slice(0, length - truncation.length) + truncation : = String(this);=0A= },=0A= =0A= strip: function() {=0A= return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A= },=0A= =0A= stripTags: function() {=0A= return this.replace(/<\/?[^>]+>/gi, '');=0A= },=0A= =0A= stripScripts: function() {=0A= return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A= },=0A= =0A= extractScripts: function() {=0A= var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A= var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A= return (this.match(matchAll) || []).map(function(scriptTag) {=0A= return (scriptTag.match(matchOne) || ['', ''])[1];=0A= });=0A= },=0A= =0A= evalScripts: function() {=0A= return this.extractScripts().map(function(script) { return = eval(script) });=0A= },=0A= =0A= escapeHTML: function() {=0A= var self =3D arguments.callee;=0A= self.text.data =3D this;=0A= return self.div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D new Element('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A= $A(div.childNodes).inject('', function(memo, node) { return = memo+node.nodeValue }) :=0A= div.childNodes[0].nodeValue) : '';=0A= },=0A= =0A= toQueryParams: function(separator) {=0A= var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A= if (!match) return { };=0A= =0A= return match[1].split(separator || '&').inject({ }, function(hash, = pair) {=0A= if ((pair =3D pair.split('=3D'))[0]) {=0A= var key =3D decodeURIComponent(pair.shift());=0A= var value =3D pair.length > 1 ? pair.join('=3D') : pair[0];=0A= if (value !=3D undefined) value =3D decodeURIComponent(value);=0A= =0A= if (key in hash) {=0A= if (!Object.isArray(hash[key])) hash[key] =3D [hash[key]];=0A= hash[key].push(value);=0A= }=0A= else hash[key] =3D value;=0A= }=0A= return hash;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= succ: function() {=0A= return this.slice(0, this.length - 1) +=0A= String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A= },=0A= =0A= times: function(count) {=0A= return count < 1 ? '' : new Array(count + 1).join(this);=0A= },=0A= =0A= camelize: function() {=0A= var parts =3D this.split('-'), len =3D parts.length;=0A= if (len =3D=3D 1) return parts[0];=0A= =0A= var camelized =3D this.charAt(0) =3D=3D '-'=0A= ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A= : parts[0];=0A= =0A= for (var i =3D 1; i < len; i++)=0A= camelized +=3D parts[i].charAt(0).toUpperCase() + = parts[i].substring(1);=0A= =0A= return camelized;=0A= },=0A= =0A= capitalize: function() {=0A= return this.charAt(0).toUpperCase() + = this.substring(1).toLowerCase();=0A= },=0A= =0A= underscore: function() {=0A= return this.gsub(/::/, = '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{= 1}_#{2}').gsub(/-/,'_').toLowerCase();=0A= },=0A= =0A= dasherize: function() {=0A= return this.gsub(/_/,'-');=0A= },=0A= =0A= inspect: function(useDoubleQuotes) {=0A= var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) {=0A= var character =3D String.specialChar[match[0]];=0A= return character ? character : '\\u00' + = match[0].charCodeAt().toPaddedString(2, 16);=0A= });=0A= if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') = + '"';=0A= return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A= },=0A= =0A= toJSON: function() {=0A= return this.inspect(true);=0A= },=0A= =0A= unfilterJSON: function(filter) {=0A= return this.sub(filter || Prototype.JSONFilter, '#{1}');=0A= },=0A= =0A= isJSON: function() {=0A= var str =3D this;=0A= if (str.blank()) return false;=0A= str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');=0A= return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);=0A= },=0A= =0A= evalJSON: function(sanitize) {=0A= var json =3D this.unfilterJSON();=0A= try {=0A= if (!sanitize || json.isJSON()) return eval('(' + json + ')');=0A= } catch (e) { }=0A= throw new SyntaxError('Badly formed JSON string: ' + this.inspect());=0A= },=0A= =0A= include: function(pattern) {=0A= return this.indexOf(pattern) > -1;=0A= },=0A= =0A= startsWith: function(pattern) {=0A= return this.indexOf(pattern) =3D=3D=3D 0;=0A= },=0A= =0A= endsWith: function(pattern) {=0A= var d =3D this.length - pattern.length;=0A= return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d;=0A= },=0A= =0A= empty: function() {=0A= return this =3D=3D '';=0A= },=0A= =0A= blank: function() {=0A= return /^\s*$/.test(this);=0A= },=0A= =0A= interpolate: function(object, pattern) {=0A= return new Template(this, pattern).evaluate(object);=0A= }=0A= });=0A= =0A= if (Prototype.Browser.WebKit || Prototype.Browser.IE) = Object.extend(String.prototype, {=0A= escapeHTML: function() {=0A= return = this.replace(/&/g,'&').replace(//g,'>');=0A= },=0A= unescapeHTML: function() {=0A= return = this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>= /g,'>');=0A= }=0A= });=0A= =0A= String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A= if (Object.isFunction(replacement)) return replacement;=0A= var template =3D new Template(replacement);=0A= return function(match) { return template.evaluate(match) };=0A= };=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= Object.extend(String.prototype.escapeHTML, {=0A= div: document.createElement('div'),=0A= text: document.createTextNode('')=0A= });=0A= =0A= String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.t= ext);=0A= =0A= var Template =3D Class.create({=0A= initialize: function(template, pattern) {=0A= this.template =3D template.toString();=0A= this.pattern =3D pattern || Template.Pattern;=0A= },=0A= =0A= evaluate: function(object) {=0A= if (Object.isFunction(object.toTemplateReplacements))=0A= object =3D object.toTemplateReplacements();=0A= =0A= return this.template.gsub(this.pattern, function(match) {=0A= if (object =3D=3D null) return '';=0A= =0A= var before =3D match[1] || '';=0A= if (before =3D=3D '\\') return match[2];=0A= =0A= var ctx =3D object, expr =3D match[3];=0A= var pattern =3D /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;=0A= match =3D pattern.exec(expr);=0A= if (match =3D=3D null) return before;=0A= =0A= while (match !=3D null) {=0A= var comp =3D match[1].startsWith('[') ? match[2].gsub('\\\\]', = ']') : match[1];=0A= ctx =3D ctx[comp];=0A= if (null =3D=3D ctx || '' =3D=3D match[3]) break;=0A= expr =3D expr.substring('[' =3D=3D match[3] ? match[1].length : = match[0].length);=0A= match =3D pattern.exec(expr);=0A= }=0A= =0A= return before + String.interpret(ctx);=0A= });=0A= }=0A= });=0A= Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A= =0A= var $break =3D { };=0A= =0A= var Enumerable =3D {=0A= each: function(iterator, context) {=0A= var index =3D 0;=0A= try {=0A= this._each(function(value) {=0A= iterator.call(context, value, index++);=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= return this;=0A= },=0A= =0A= eachSlice: function(number, iterator, context) {=0A= var index =3D -number, slices =3D [], array =3D this.toArray();=0A= if (number < 1) return array;=0A= while ((index +=3D number) < array.length)=0A= slices.push(array.slice(index, index+number));=0A= return slices.collect(iterator, context);=0A= },=0A= =0A= all: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!iterator.call(context, value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var result =3D false;=0A= this.each(function(value, index) {=0A= if (result =3D !!iterator.call(context, value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(iterator.call(context, value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function(iterator, context) {=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator.call(context, value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator, context) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator.call(context, value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(filter, iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var results =3D [];=0A= =0A= if (Object.isString(filter))=0A= filter =3D new RegExp(filter);=0A= =0A= this.each(function(value, index) {=0A= if (filter.match(value))=0A= results.push(iterator.call(context, value, index));=0A= });=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= if (Object.isFunction(this.indexOf))=0A= if (this.indexOf(object) !=3D -1) return true;=0A= =0A= var found =3D false;=0A= this.each(function(value) {=0A= if (value =3D=3D object) {=0A= found =3D true;=0A= throw $break;=0A= }=0A= });=0A= return found;=0A= },=0A= =0A= inGroupsOf: function(number, fillWith) {=0A= fillWith =3D Object.isUndefined(fillWith) ? null : fillWith;=0A= return this.eachSlice(number, function(slice) {=0A= while(slice.length < number) slice.push(fillWith);=0A= return slice;=0A= });=0A= },=0A= =0A= inject: function(memo, iterator, context) {=0A= this.each(function(value, index) {=0A= memo =3D iterator.call(context, memo, value, index);=0A= });=0A= return memo;=0A= },=0A= =0A= invoke: function(method) {=0A= var args =3D $A(arguments).slice(1);=0A= return this.map(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator.call(context, value, index);=0A= if (result =3D=3D null || value >=3D result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator.call(context, value, index);=0A= if (result =3D=3D null || value < result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator, context) {=0A= iterator =3D iterator || Prototype.K;=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= (iterator.call(context, value, index) ?=0A= trues : falses).push(value);=0A= });=0A= return [trues, falses];=0A= },=0A= =0A= pluck: function(property) {=0A= var results =3D [];=0A= this.each(function(value) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator, context) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator.call(context, value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator, context) {=0A= return this.map(function(value, index) {=0A= return {=0A= value: value,=0A= criteria: iterator.call(context, value, index)=0A= };=0A= }).sort(function(left, right) {=0A= var a =3D left.criteria, b =3D right.criteria;=0A= return a < b ? -1 : a > b ? 1 : 0;=0A= }).pluck('value');=0A= },=0A= =0A= toArray: function() {=0A= return this.map();=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (Object.isFunction(args.last()))=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= return iterator(collections.pluck(index));=0A= });=0A= },=0A= =0A= size: function() {=0A= return this.toArray().length;=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= };=0A= =0A= Object.extend(Enumerable, {=0A= map: Enumerable.collect,=0A= find: Enumerable.detect,=0A= select: Enumerable.findAll,=0A= filter: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray,=0A= every: Enumerable.all,=0A= some: Enumerable.any=0A= });=0A= function $A(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) return iterable.toArray();=0A= var length =3D iterable.length || 0, results =3D new Array(length);=0A= while (length--) results[length] =3D iterable[length];=0A= return results;=0A= }=0A= =0A= if (Prototype.Browser.WebKit) {=0A= $A =3D function(iterable) {=0A= if (!iterable) return [];=0A= // In Safari, only use the `toArray` method if it's not a NodeList.=0A= // A NodeList is a function, has an function `item` property, and a = numeric=0A= // `length` property. Adapted from Google Doctype.=0A= if (!(typeof iterable =3D=3D=3D 'function' && typeof iterable.length = =3D=3D=3D=0A= 'number' && typeof iterable.item =3D=3D=3D 'function') && = iterable.toArray)=0A= return iterable.toArray();=0A= var length =3D iterable.length || 0, results =3D new Array(length);=0A= while (length--) results[length] =3D iterable[length];=0A= return results;=0A= };=0A= }=0A= =0A= Array.from =3D $A;=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= if (!Array.prototype._reverse) Array.prototype._reverse =3D = Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0, length =3D this.length; i < length; i++)=0A= iterator(this[i]);=0A= },=0A= =0A= clear: function() {=0A= this.length =3D 0;=0A= return this;=0A= },=0A= =0A= first: function() {=0A= return this[0];=0A= },=0A= =0A= last: function() {=0A= return this[this.length - 1];=0A= },=0A= =0A= compact: function() {=0A= return this.select(function(value) {=0A= return value !=3D null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(Object.isArray(value) ?=0A= value.flatten() : [value]);=0A= });=0A= },=0A= =0A= without: function() {=0A= var values =3D $A(arguments);=0A= return this.select(function(value) {=0A= return !values.include(value);=0A= });=0A= },=0A= =0A= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= reduce: function() {=0A= return this.length > 1 ? this : this[0];=0A= },=0A= =0A= uniq: function(sorted) {=0A= return this.inject([], function(array, value, index) {=0A= if (0 =3D=3D index || (sorted ? array.last() !=3D value : = !array.include(value)))=0A= array.push(value);=0A= return array;=0A= });=0A= },=0A= =0A= intersect: function(array) {=0A= return this.uniq().findAll(function(item) {=0A= return array.detect(function(value) { return item =3D=3D=3D value = });=0A= });=0A= },=0A= =0A= clone: function() {=0A= return [].concat(this);=0A= },=0A= =0A= size: function() {=0A= return this.length;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= },=0A= =0A= toJSON: function() {=0A= var results =3D [];=0A= this.each(function(object) {=0A= var value =3D Object.toJSON(object);=0A= if (!Object.isUndefined(value)) results.push(value);=0A= });=0A= return '[' + results.join(', ') + ']';=0A= }=0A= });=0A= =0A= // use native browser JS 1.6 implementation if available=0A= if (Object.isFunction(Array.prototype.forEach))=0A= Array.prototype._each =3D Array.prototype.forEach;=0A= =0A= if (!Array.prototype.indexOf) Array.prototype.indexOf =3D function(item, = i) {=0A= i || (i =3D 0);=0A= var length =3D this.length;=0A= if (i < 0) i =3D length + i;=0A= for (; i < length; i++)=0A= if (this[i] =3D=3D=3D item) return i;=0A= return -1;=0A= };=0A= =0A= if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf =3D = function(item, i) {=0A= i =3D isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;=0A= var n =3D this.slice(0, i).reverse().indexOf(item);=0A= return (n < 0) ? n : i - n - 1;=0A= };=0A= =0A= Array.prototype.toArray =3D Array.prototype.clone;=0A= =0A= function $w(string) {=0A= if (!Object.isString(string)) return [];=0A= string =3D string.strip();=0A= return string ? string.split(/\s+/) : [];=0A= }=0A= =0A= if (Prototype.Browser.Opera){=0A= Array.prototype.concat =3D function() {=0A= var array =3D [];=0A= for (var i =3D 0, length =3D this.length; i < length; i++) = array.push(this[i]);=0A= for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= if (Object.isArray(arguments[i])) {=0A= for (var j =3D 0, arrayLength =3D arguments[i].length; j < = arrayLength; j++)=0A= array.push(arguments[i][j]);=0A= } else {=0A= array.push(arguments[i]);=0A= }=0A= }=0A= return array;=0A= };=0A= }=0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= return this.toPaddedString(2, 16);=0A= },=0A= =0A= succ: function() {=0A= return this + 1;=0A= },=0A= =0A= times: function(iterator, context) {=0A= $R(0, this, true).each(iterator, context);=0A= return this;=0A= },=0A= =0A= toPaddedString: function(length, radix) {=0A= var string =3D this.toString(radix || 10);=0A= return '0'.times(length - string.length) + string;=0A= },=0A= =0A= toJSON: function() {=0A= return isFinite(this) ? this.toString() : 'null';=0A= }=0A= });=0A= =0A= $w('abs round ceil floor').each(function(method){=0A= Number.prototype[method] =3D Math[method].methodize();=0A= });=0A= function $H(object) {=0A= return new Hash(object);=0A= };=0A= =0A= var Hash =3D Class.create(Enumerable, (function() {=0A= =0A= function toQueryPair(key, value) {=0A= if (Object.isUndefined(value)) return key;=0A= return key + '=3D' + encodeURIComponent(String.interpret(value));=0A= }=0A= =0A= return {=0A= initialize: function(object) {=0A= this._object =3D Object.isHash(object) ? object.toObject() : = Object.clone(object);=0A= },=0A= =0A= _each: function(iterator) {=0A= for (var key in this._object) {=0A= var value =3D this._object[key], pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= },=0A= =0A= set: function(key, value) {=0A= return this._object[key] =3D value;=0A= },=0A= =0A= get: function(key) {=0A= // simulating poorly supported hasOwnProperty=0A= if (this._object[key] !=3D=3D Object.prototype[key])=0A= return this._object[key];=0A= },=0A= =0A= unset: function(key) {=0A= var value =3D this._object[key];=0A= delete this._object[key];=0A= return value;=0A= },=0A= =0A= toObject: function() {=0A= return Object.clone(this._object);=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= index: function(value) {=0A= var match =3D this.detect(function(pair) {=0A= return pair.value =3D=3D=3D value;=0A= });=0A= return match && match.key;=0A= },=0A= =0A= merge: function(object) {=0A= return this.clone().update(object);=0A= },=0A= =0A= update: function(object) {=0A= return new Hash(object).inject(this, function(result, pair) {=0A= result.set(pair.key, pair.value);=0A= return result;=0A= });=0A= },=0A= =0A= toQueryString: function() {=0A= return this.inject([], function(results, pair) {=0A= var key =3D encodeURIComponent(pair.key), values =3D pair.value;=0A= =0A= if (values && typeof values =3D=3D 'object') {=0A= if (Object.isArray(values))=0A= return results.concat(values.map(toQueryPair.curry(key)));=0A= } else results.push(toQueryPair(key, values));=0A= return results;=0A= }).join('&');=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= },=0A= =0A= toJSON: function() {=0A= return Object.toJSON(this.toObject());=0A= },=0A= =0A= clone: function() {=0A= return new Hash(this);=0A= }=0A= }=0A= })());=0A= =0A= Hash.prototype.toTemplateReplacements =3D Hash.prototype.toObject;=0A= Hash.from =3D $H;=0A= var ObjectRange =3D Class.create(Enumerable, {=0A= initialize: function(start, end, exclusive) {=0A= this.start =3D start;=0A= this.end =3D end;=0A= this.exclusive =3D exclusive;=0A= },=0A= =0A= _each: function(iterator) {=0A= var value =3D this.start;=0A= while (this.include(value)) {=0A= iterator(value);=0A= value =3D value.succ();=0A= }=0A= },=0A= =0A= include: function(value) {=0A= if (value < this.start)=0A= return false;=0A= if (this.exclusive)=0A= return value < this.end;=0A= return value <=3D this.end;=0A= }=0A= });=0A= =0A= var $R =3D function(start, end, exclusive) {=0A= return new ObjectRange(start, end, exclusive);=0A= };=0A= =0A= var Ajax =3D {=0A= getTransport: function() {=0A= return Try.these(=0A= function() {return new XMLHttpRequest()},=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A= ) || false;=0A= },=0A= =0A= activeRequestCount: 0=0A= };=0A= =0A= Ajax.Responders =3D {=0A= responders: [],=0A= =0A= _each: function(iterator) {=0A= this.responders._each(iterator);=0A= },=0A= =0A= register: function(responder) {=0A= if (!this.include(responder))=0A= this.responders.push(responder);=0A= },=0A= =0A= unregister: function(responder) {=0A= this.responders =3D this.responders.without(responder);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (Object.isFunction(responder[callback])) {=0A= try {=0A= responder[callback].apply(responder, [request, transport, = json]);=0A= } catch (e) { }=0A= }=0A= });=0A= }=0A= };=0A= =0A= Object.extend(Ajax.Responders, Enumerable);=0A= =0A= Ajax.Responders.register({=0A= onCreate: function() { Ajax.activeRequestCount++ },=0A= onComplete: function() { Ajax.activeRequestCount-- }=0A= });=0A= =0A= Ajax.Base =3D Class.create({=0A= initialize: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= contentType: 'application/x-www-form-urlencoded',=0A= encoding: 'UTF-8',=0A= parameters: '',=0A= evalJSON: true,=0A= evalJS: true=0A= };=0A= Object.extend(this.options, options || { });=0A= =0A= this.options.method =3D this.options.method.toLowerCase();=0A= =0A= if (Object.isString(this.options.parameters))=0A= this.options.parameters =3D = this.options.parameters.toQueryParams();=0A= else if (Object.isHash(this.options.parameters))=0A= this.options.parameters =3D this.options.parameters.toObject();=0A= }=0A= });=0A= =0A= Ajax.Request =3D Class.create(Ajax.Base, {=0A= _complete: false,=0A= =0A= initialize: function($super, url, options) {=0A= $super(options);=0A= this.transport =3D Ajax.getTransport();=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= this.url =3D url;=0A= this.method =3D this.options.method;=0A= var params =3D Object.clone(this.options.parameters);=0A= =0A= if (!['get', 'post'].include(this.method)) {=0A= // simulate other verbs over post=0A= params['_method'] =3D this.method;=0A= this.method =3D 'post';=0A= }=0A= =0A= this.parameters =3D params;=0A= =0A= if (params =3D Object.toQueryString(params)) {=0A= // when GET, append parameters to URL=0A= if (this.method =3D=3D 'get')=0A= this.url +=3D (this.url.include('?') ? '&' : '?') + params;=0A= else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A= params +=3D '&_=3D';=0A= }=0A= =0A= try {=0A= var response =3D new Ajax.Response(this);=0A= if (this.options.onCreate) this.options.onCreate(response);=0A= Ajax.Responders.dispatch('onCreate', this, response);=0A= =0A= this.transport.open(this.method.toUpperCase(), this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous) = this.respondToReadyState.bind(this).defer(1);=0A= =0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= this.setRequestHeaders();=0A= =0A= this.body =3D this.method =3D=3D 'post' ? (this.options.postBody = || params) : null;=0A= this.transport.send(this.body);=0A= =0A= /* Force Firefox to handle ready state 4 for synchronous requests = */=0A= if (!this.options.asynchronous && this.transport.overrideMimeType)=0A= this.onStateChange();=0A= =0A= }=0A= catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var headers =3D {=0A= 'X-Requested-With': 'XMLHttpRequest',=0A= 'X-Prototype-Version': Prototype.Version,=0A= 'Accept': 'text/javascript, text/html, application/xml, text/xml, = */*'=0A= };=0A= =0A= if (this.method =3D=3D 'post') {=0A= headers['Content-type'] =3D this.options.contentType +=0A= (this.options.encoding ? '; charset=3D' + this.options.encoding = : '');=0A= =0A= /* Force "Connection: close" for older Mozilla browsers to work=0A= * around a bug where XMLHttpRequest sends an incorrect=0A= * Content-length header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType &&=0A= (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < = 2005)=0A= headers['Connection'] =3D 'close';=0A= }=0A= =0A= // user-defined headers=0A= if (typeof this.options.requestHeaders =3D=3D 'object') {=0A= var extras =3D this.options.requestHeaders;=0A= =0A= if (Object.isFunction(extras.push))=0A= for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A= headers[extras[i]] =3D extras[i+1];=0A= else=0A= $H(extras).each(function(pair) { headers[pair.key] =3D = pair.value });=0A= }=0A= =0A= for (var name in headers)=0A= this.transport.setRequestHeader(name, headers[name]);=0A= },=0A= =0A= success: function() {=0A= var status =3D this.getStatus();=0A= return !status || (status >=3D 200 && status < 300);=0A= },=0A= =0A= getStatus: function() {=0A= try {=0A= return this.transport.status || 0;=0A= } catch (e) { return 0 }=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var state =3D Ajax.Request.Events[readyState], response =3D new = Ajax.Response(this);=0A= =0A= if (state =3D=3D 'Complete') {=0A= try {=0A= this._complete =3D true;=0A= (this.options['on' + response.status]=0A= || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A= || Prototype.emptyFunction)(response, response.headerJSON);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= var contentType =3D response.getHeader('Content-type');=0A= if (this.options.evalJS =3D=3D 'force'=0A= || (this.options.evalJS && this.isSameOrigin() && contentType=0A= && = contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s= *$/i)))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + state] || Prototype.emptyFunction)(response, = response.headerJSON);=0A= Ajax.Responders.dispatch('on' + state, this, response, = response.headerJSON);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if (state =3D=3D 'Complete') {=0A= // avoid memory leak in MSIE: clean up=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= }=0A= },=0A= =0A= isSameOrigin: function() {=0A= var m =3D this.url.match(/^\s*https?:\/\/[^\/]*/);=0A= return !m || (m[0] =3D=3D = '#{protocol}//#{domain}#{port}'.interpolate({=0A= protocol: location.protocol,=0A= domain: document.domain,=0A= port: location.port ? ':' + location.port : ''=0A= }));=0A= },=0A= =0A= getHeader: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name) || null;=0A= } catch (e) { return null }=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval((this.transport.responseText || '').unfilterJSON());=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= dispatchException: function(exception) {=0A= (this.options.onException || Prototype.emptyFunction)(this, = exception);=0A= Ajax.Responders.dispatch('onException', this, exception);=0A= }=0A= });=0A= =0A= Ajax.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Response =3D Class.create({=0A= initialize: function(request){=0A= this.request =3D request;=0A= var transport =3D this.transport =3D request.transport,=0A= readyState =3D this.readyState =3D transport.readyState;=0A= =0A= if((readyState > 2 && !Prototype.Browser.IE) || readyState =3D=3D 4) = {=0A= this.status =3D this.getStatus();=0A= this.statusText =3D this.getStatusText();=0A= this.responseText =3D String.interpret(transport.responseText);=0A= this.headerJSON =3D this._getHeaderJSON();=0A= }=0A= =0A= if(readyState =3D=3D 4) {=0A= var xml =3D transport.responseXML;=0A= this.responseXML =3D Object.isUndefined(xml) ? null : xml;=0A= this.responseJSON =3D this._getResponseJSON();=0A= }=0A= },=0A= =0A= status: 0,=0A= statusText: '',=0A= =0A= getStatus: Ajax.Request.prototype.getStatus,=0A= =0A= getStatusText: function() {=0A= try {=0A= return this.transport.statusText || '';=0A= } catch (e) { return '' }=0A= },=0A= =0A= getHeader: Ajax.Request.prototype.getHeader,=0A= =0A= getAllHeaders: function() {=0A= try {=0A= return this.getAllResponseHeaders();=0A= } catch (e) { return null }=0A= },=0A= =0A= getResponseHeader: function(name) {=0A= return this.transport.getResponseHeader(name);=0A= },=0A= =0A= getAllResponseHeaders: function() {=0A= return this.transport.getAllResponseHeaders();=0A= },=0A= =0A= _getHeaderJSON: function() {=0A= var json =3D this.getHeader('X-JSON');=0A= if (!json) return null;=0A= json =3D decodeURIComponent(escape(json));=0A= try {=0A= return json.evalJSON(this.request.options.sanitizeJSON ||=0A= !this.request.isSameOrigin());=0A= } catch (e) {=0A= this.request.dispatchException(e);=0A= }=0A= },=0A= =0A= _getResponseJSON: function() {=0A= var options =3D this.request.options;=0A= if (!options.evalJSON || (options.evalJSON !=3D 'force' &&=0A= !(this.getHeader('Content-type') || = '').include('application/json')) ||=0A= this.responseText.blank())=0A= return null;=0A= try {=0A= return this.responseText.evalJSON(options.sanitizeJSON ||=0A= !this.request.isSameOrigin());=0A= } catch (e) {=0A= this.request.dispatchException(e);=0A= }=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create(Ajax.Request, {=0A= initialize: function($super, container, url, options) {=0A= this.container =3D {=0A= success: (container.success || container),=0A= failure: (container.failure || (container.success ? null : = container))=0A= };=0A= =0A= options =3D Object.clone(options);=0A= var onComplete =3D options.onComplete;=0A= options.onComplete =3D (function(response, json) {=0A= this.updateContent(response.responseText);=0A= if (Object.isFunction(onComplete)) onComplete(response, json);=0A= }).bind(this);=0A= =0A= $super(url, options);=0A= },=0A= =0A= updateContent: function(responseText) {=0A= var receiver =3D this.container[this.success() ? 'success' : = 'failure'],=0A= options =3D this.options;=0A= =0A= if (!options.evalScripts) responseText =3D = responseText.stripScripts();=0A= =0A= if (receiver =3D $(receiver)) {=0A= if (options.insertion) {=0A= if (Object.isString(options.insertion)) {=0A= var insertion =3D { }; insertion[options.insertion] =3D = responseText;=0A= receiver.insert(insertion);=0A= }=0A= else options.insertion(receiver, responseText);=0A= }=0A= else receiver.update(responseText);=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create(Ajax.Base, {=0A= initialize: function($super, container, url, options) {=0A= $super(options);=0A= this.onComplete =3D this.options.onComplete;=0A= =0A= this.frequency =3D (this.options.frequency || 2);=0A= this.decay =3D (this.options.decay || 1);=0A= =0A= this.updater =3D { };=0A= this.container =3D container;=0A= this.url =3D url;=0A= =0A= this.start();=0A= },=0A= =0A= start: function() {=0A= this.options.onComplete =3D this.updateComplete.bind(this);=0A= this.onTimerEvent();=0A= },=0A= =0A= stop: function() {=0A= this.updater.options.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(response) {=0A= if (this.options.decay) {=0A= this.decay =3D (response.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D response.responseText;=0A= }=0A= this.timer =3D this.onTimerEvent.bind(this).delay(this.decay * = this.frequency);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= function $(element) {=0A= if (arguments.length > 1) {=0A= for (var i =3D 0, elements =3D [], length =3D arguments.length; i < = length; i++)=0A= elements.push($(arguments[i]));=0A= return elements;=0A= }=0A= if (Object.isString(element))=0A= element =3D document.getElementById(element);=0A= return Element.extend(element);=0A= }=0A= =0A= if (Prototype.BrowserFeatures.XPath) {=0A= document._getElementsByXPath =3D function(expression, parentElement) {=0A= var results =3D [];=0A= var query =3D document.evaluate(expression, $(parentElement) || = document,=0A= null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A= for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A= results.push(Element.extend(query.snapshotItem(i)));=0A= return results;=0A= };=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Node) var Node =3D { };=0A= =0A= if (!Node.ELEMENT_NODE) {=0A= // DOM level 2 ECMAScript Language Binding=0A= Object.extend(Node, {=0A= ELEMENT_NODE: 1,=0A= ATTRIBUTE_NODE: 2,=0A= TEXT_NODE: 3,=0A= CDATA_SECTION_NODE: 4,=0A= ENTITY_REFERENCE_NODE: 5,=0A= ENTITY_NODE: 6,=0A= PROCESSING_INSTRUCTION_NODE: 7,=0A= COMMENT_NODE: 8,=0A= DOCUMENT_NODE: 9,=0A= DOCUMENT_TYPE_NODE: 10,=0A= DOCUMENT_FRAGMENT_NODE: 11,=0A= NOTATION_NODE: 12=0A= });=0A= }=0A= =0A= (function() {=0A= var element =3D this.Element;=0A= this.Element =3D function(tagName, attributes) {=0A= attributes =3D attributes || { };=0A= tagName =3D tagName.toLowerCase();=0A= var cache =3D Element.cache;=0A= if (Prototype.Browser.IE && attributes.name) {=0A= tagName =3D '<' + tagName + ' name=3D"' + attributes.name + '">';=0A= delete attributes.name;=0A= return Element.writeAttribute(document.createElement(tagName), = attributes);=0A= }=0A= if (!cache[tagName]) cache[tagName] =3D = Element.extend(document.createElement(tagName));=0A= return Element.writeAttribute(cache[tagName].cloneNode(false), = attributes);=0A= };=0A= Object.extend(this.Element, element || { });=0A= if (element) this.Element.prototype =3D element.prototype;=0A= }).call(window);=0A= =0A= Element.cache =3D { };=0A= =0A= Element.Methods =3D {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function(element) {=0A= element =3D $(element);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= return element;=0A= },=0A= =0A= hide: function(element) {=0A= element =3D $(element);=0A= element.style.display =3D 'none';=0A= return element;=0A= },=0A= =0A= show: function(element) {=0A= element =3D $(element);=0A= element.style.display =3D '';=0A= return element;=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= return element;=0A= },=0A= =0A= update: function(element, content) {=0A= element =3D $(element);=0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) return = element.update().insert(content);=0A= content =3D Object.toHTML(content);=0A= element.innerHTML =3D content.stripScripts();=0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= },=0A= =0A= replace: function(element, content) {=0A= element =3D $(element);=0A= if (content && content.toElement) content =3D content.toElement();=0A= else if (!Object.isElement(content)) {=0A= content =3D Object.toHTML(content);=0A= var range =3D element.ownerDocument.createRange();=0A= range.selectNode(element);=0A= content.evalScripts.bind(content).defer();=0A= content =3D range.createContextualFragment(content.stripScripts());=0A= }=0A= element.parentNode.replaceChild(content, element);=0A= return element;=0A= },=0A= =0A= insert: function(element, insertions) {=0A= element =3D $(element);=0A= =0A= if (Object.isString(insertions) || Object.isNumber(insertions) ||=0A= Object.isElement(insertions) || (insertions && = (insertions.toElement || insertions.toHTML)))=0A= insertions =3D {bottom:insertions};=0A= =0A= var content, insert, tagName, childNodes;=0A= =0A= for (var position in insertions) {=0A= content =3D insertions[position];=0A= position =3D position.toLowerCase();=0A= insert =3D Element._insertionTranslations[position];=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) {=0A= insert(element, content);=0A= continue;=0A= }=0A= =0A= content =3D Object.toHTML(content);=0A= =0A= tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')=0A= ? element.parentNode : element).tagName.toUpperCase();=0A= =0A= childNodes =3D Element._getContentFromAnonymousElement(tagName, = content.stripScripts());=0A= =0A= if (position =3D=3D 'top' || position =3D=3D 'after') = childNodes.reverse();=0A= childNodes.each(insert.curry(element));=0A= =0A= content.evalScripts.bind(content).defer();=0A= }=0A= =0A= return element;=0A= },=0A= =0A= wrap: function(element, wrapper, attributes) {=0A= element =3D $(element);=0A= if (Object.isElement(wrapper))=0A= $(wrapper).writeAttribute(attributes || { });=0A= else if (Object.isString(wrapper)) wrapper =3D new Element(wrapper, = attributes);=0A= else wrapper =3D new Element('div', wrapper);=0A= if (element.parentNode)=0A= element.parentNode.replaceChild(wrapper, element);=0A= wrapper.appendChild(element);=0A= return wrapper;=0A= },=0A= =0A= inspect: function(element) {=0A= element =3D $(element);=0A= var result =3D '<' + element.tagName.toLowerCase();=0A= $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A= var property =3D pair.first(), attribute =3D pair.last();=0A= var value =3D (element[property] || '').toString();=0A= if (value) result +=3D ' ' + attribute + '=3D' + = value.inspect(true);=0A= });=0A= return result + '>';=0A= },=0A= =0A= recursivelyCollect: function(element, property) {=0A= element =3D $(element);=0A= var elements =3D [];=0A= while (element =3D element[property])=0A= if (element.nodeType =3D=3D 1)=0A= elements.push(Element.extend(element));=0A= return elements;=0A= },=0A= =0A= ancestors: function(element) {=0A= return $(element).recursivelyCollect('parentNode');=0A= },=0A= =0A= descendants: function(element) {=0A= return $(element).select("*");=0A= },=0A= =0A= firstDescendant: function(element) {=0A= element =3D $(element).firstChild;=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= return $(element);=0A= },=0A= =0A= immediateDescendants: function(element) {=0A= if (!(element =3D $(element).firstChild)) return [];=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= if (element) return [element].concat($(element).nextSiblings());=0A= return [];=0A= },=0A= =0A= previousSiblings: function(element) {=0A= return $(element).recursivelyCollect('previousSibling');=0A= },=0A= =0A= nextSiblings: function(element) {=0A= return $(element).recursivelyCollect('nextSibling');=0A= },=0A= =0A= siblings: function(element) {=0A= element =3D $(element);=0A= return = element.previousSiblings().reverse().concat(element.nextSiblings());=0A= },=0A= =0A= match: function(element, selector) {=0A= if (Object.isString(selector))=0A= selector =3D new Selector(selector);=0A= return selector.match($(element));=0A= },=0A= =0A= up: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return $(element.parentNode);=0A= var ancestors =3D element.ancestors();=0A= return Object.isNumber(expression) ? ancestors[expression] :=0A= Selector.findElement(ancestors, expression, index);=0A= },=0A= =0A= down: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return element.firstDescendant();=0A= return Object.isNumber(expression) ? = element.descendants()[expression] :=0A= Element.select(element, expression)[index || 0];=0A= },=0A= =0A= previous: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return = $(Selector.handlers.previousElementSibling(element));=0A= var previousSiblings =3D element.previousSiblings();=0A= return Object.isNumber(expression) ? previousSiblings[expression] :=0A= Selector.findElement(previousSiblings, expression, index);=0A= },=0A= =0A= next: function(element, expression, index) {=0A= element =3D $(element);=0A= if (arguments.length =3D=3D 1) return = $(Selector.handlers.nextElementSibling(element));=0A= var nextSiblings =3D element.nextSiblings();=0A= return Object.isNumber(expression) ? nextSiblings[expression] :=0A= Selector.findElement(nextSiblings, expression, index);=0A= },=0A= =0A= select: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element, args);=0A= },=0A= =0A= adjacent: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element.parentNode, = args).without(element);=0A= },=0A= =0A= identify: function(element) {=0A= element =3D $(element);=0A= var id =3D element.readAttribute('id'), self =3D arguments.callee;=0A= if (id) return id;=0A= do { id =3D 'anonymous_element_' + self.counter++ } while ($(id));=0A= element.writeAttribute('id', id);=0A= return id;=0A= },=0A= =0A= readAttribute: function(element, name) {=0A= element =3D $(element);=0A= if (Prototype.Browser.IE) {=0A= var t =3D Element._attributeTranslations.read;=0A= if (t.values[name]) return t.values[name](element, name);=0A= if (t.names[name]) name =3D t.names[name];=0A= if (name.include(':')) {=0A= return (!element.attributes || !element.attributes[name]) ? null = :=0A= element.attributes[name].value;=0A= }=0A= }=0A= return element.getAttribute(name);=0A= },=0A= =0A= writeAttribute: function(element, name, value) {=0A= element =3D $(element);=0A= var attributes =3D { }, t =3D Element._attributeTranslations.write;=0A= =0A= if (typeof name =3D=3D 'object') attributes =3D name;=0A= else attributes[name] =3D Object.isUndefined(value) ? true : value;=0A= =0A= for (var attr in attributes) {=0A= name =3D t.names[attr] || attr;=0A= value =3D attributes[attr];=0A= if (t.values[attr]) name =3D t.values[attr](element, value);=0A= if (value =3D=3D=3D false || value =3D=3D=3D null)=0A= element.removeAttribute(name);=0A= else if (value =3D=3D=3D true)=0A= element.setAttribute(name, name);=0A= else element.setAttribute(name, value);=0A= }=0A= return element;=0A= },=0A= =0A= getHeight: function(element) {=0A= return $(element).getDimensions().height;=0A= },=0A= =0A= getWidth: function(element) {=0A= return $(element).getDimensions().width;=0A= },=0A= =0A= classNames: function(element) {=0A= return new Element.ClassNames(element);=0A= },=0A= =0A= hasClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= var elementClassName =3D element.className;=0A= return (elementClassName.length > 0 && (elementClassName =3D=3D = className ||=0A= new RegExp("(^|\\s)" + className + = "(\\s|$)").test(elementClassName)));=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= if (!element.hasClassName(className))=0A= element.className +=3D (element.className ? ' ' : '') + className;=0A= return element;=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= element.className =3D element.className.replace(=0A= new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();=0A= return element;=0A= },=0A= =0A= toggleClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= return element[element.hasClassName(className) ?=0A= 'removeClassName' : 'addClassName'](className);=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= var node =3D element.firstChild;=0A= while (node) {=0A= var nextNode =3D node.nextSibling;=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= element.removeChild(node);=0A= node =3D nextNode;=0A= }=0A= return element;=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.blank();=0A= },=0A= =0A= descendantOf: function(element, ancestor) {=0A= element =3D $(element), ancestor =3D $(ancestor);=0A= =0A= if (element.compareDocumentPosition)=0A= return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D 8;=0A= =0A= if (ancestor.contains)=0A= return ancestor.contains(element) && ancestor !=3D=3D element;=0A= =0A= while (element =3D element.parentNode)=0A= if (element =3D=3D ancestor) return true;=0A= =0A= return false;=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var pos =3D element.cumulativeOffset();=0A= window.scrollTo(pos[0], pos[1]);=0A= return element;=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize();=0A= var value =3D element.style[style];=0A= if (!value || value =3D=3D 'auto') {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css[style] : null;=0A= }=0A= if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0;=0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= getOpacity: function(element) {=0A= return $(element).getStyle('opacity');=0A= },=0A= =0A= setStyle: function(element, styles) {=0A= element =3D $(element);=0A= var elementStyle =3D element.style, match;=0A= if (Object.isString(styles)) {=0A= element.style.cssText +=3D ';' + styles;=0A= return styles.include('opacity') ?=0A= element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : = element;=0A= }=0A= for (var property in styles)=0A= if (property =3D=3D 'opacity') = element.setOpacity(styles[property]);=0A= else=0A= elementStyle[(property =3D=3D 'float' || property =3D=3D = 'cssFloat') ?=0A= (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : = 'styleFloat') :=0A= property] =3D styles[property];=0A= =0A= return element;=0A= },=0A= =0A= setOpacity: function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? = '' :=0A= (value < 0.00001) ? 0 : value;=0A= return element;=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= var display =3D element.getStyle('display');=0A= if (display !=3D 'none' && display !=3D null) // Safari bug=0A= return {width: element.offsetWidth, height: element.offsetHeight};=0A= =0A= // All *Width and *Height properties give 0 on elements with display = none,=0A= // so enable the element temporarily=0A= var els =3D element.style;=0A= var originalVisibility =3D els.visibility;=0A= var originalPosition =3D els.position;=0A= var originalDisplay =3D els.display;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D 'block';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D originalDisplay;=0A= els.position =3D originalPosition;=0A= els.visibility =3D originalVisibility;=0A= return {width: originalWidth, height: originalHeight};=0A= },=0A= =0A= makePositioned: function(element) {=0A= element =3D $(element);=0A= var pos =3D Element.getStyle(element, 'position');=0A= if (pos =3D=3D 'static' || !pos) {=0A= element._madePositioned =3D true;=0A= element.style.position =3D 'relative';=0A= // Opera returns the offset relative to the positioning context, = when an=0A= // element is position relative but top and left have not been = defined=0A= if (Prototype.Browser.Opera) {=0A= element.style.top =3D 0;=0A= element.style.left =3D 0;=0A= }=0A= }=0A= return element;=0A= },=0A= =0A= undoPositioned: function(element) {=0A= element =3D $(element);=0A= if (element._madePositioned) {=0A= element._madePositioned =3D undefined;=0A= element.style.position =3D=0A= element.style.top =3D=0A= element.style.left =3D=0A= element.style.bottom =3D=0A= element.style.right =3D '';=0A= }=0A= return element;=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return element;=0A= element._overflow =3D Element.getStyle(element, 'overflow') || = 'auto';=0A= if (element._overflow !=3D=3D 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= return element;=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (!element._overflow) return element;=0A= element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : = element._overflow;=0A= element._overflow =3D null;=0A= return element;=0A= },=0A= =0A= cumulativeOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= } while (element);=0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= positionedOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= if (element) {=0A= if (element.tagName.toUpperCase() =3D=3D 'BODY') break;=0A= var p =3D Element.getStyle(element, 'position');=0A= if (p !=3D=3D 'static') break;=0A= }=0A= } while (element);=0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.getStyle('position') =3D=3D 'absolute') return element;=0A= // Position.prepare(); // To be done manually by Scripty when it = needs it.=0A= =0A= var offsets =3D element.positionedOffset();=0A= var top =3D offsets[1];=0A= var left =3D offsets[0];=0A= var width =3D element.clientWidth;=0A= var height =3D element.clientHeight;=0A= =0A= element._originalLeft =3D left - parseFloat(element.style.left || = 0);=0A= element._originalTop =3D top - parseFloat(element.style.top || = 0);=0A= element._originalWidth =3D element.style.width;=0A= element._originalHeight =3D element.style.height;=0A= =0A= element.style.position =3D 'absolute';=0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.width =3D width + 'px';=0A= element.style.height =3D height + 'px';=0A= return element;=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.getStyle('position') =3D=3D 'relative') return element;=0A= // Position.prepare(); // To be done manually by Scripty when it = needs it.=0A= =0A= element.style.position =3D 'relative';=0A= var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0);=0A= var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0);=0A= =0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.height =3D element._originalHeight;=0A= element.style.width =3D element._originalWidth;=0A= return element;=0A= },=0A= =0A= cumulativeScrollOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.scrollTop || 0;=0A= valueL +=3D element.scrollLeft || 0;=0A= element =3D element.parentNode;=0A= } while (element);=0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= getOffsetParent: function(element) {=0A= if (element.offsetParent) return $(element.offsetParent);=0A= if (element =3D=3D document.body) return $(element);=0A= =0A= while ((element =3D element.parentNode) && element !=3D = document.body)=0A= if (Element.getStyle(element, 'position') !=3D 'static')=0A= return $(element);=0A= =0A= return $(document.body);=0A= },=0A= =0A= viewportOffset: function(forElement) {=0A= var valueT =3D 0, valueL =3D 0;=0A= =0A= var element =3D forElement;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= =0A= // Safari fix=0A= if (element.offsetParent =3D=3D document.body &&=0A= Element.getStyle(element, 'position') =3D=3D 'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= if (!Prototype.Browser.Opera || (element.tagName && = (element.tagName.toUpperCase() =3D=3D 'BODY'))) {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= }=0A= } while (element =3D element.parentNode);=0A= =0A= return Element._returnOffset(valueL, valueT);=0A= },=0A= =0A= clonePosition: function(element, source) {=0A= var options =3D Object.extend({=0A= setLeft: true,=0A= setTop: true,=0A= setWidth: true,=0A= setHeight: true,=0A= offsetTop: 0,=0A= offsetLeft: 0=0A= }, arguments[2] || { });=0A= =0A= // find page position of source=0A= source =3D $(source);=0A= var p =3D source.viewportOffset();=0A= =0A= // find coordinate system to use=0A= element =3D $(element);=0A= var delta =3D [0, 0];=0A= var parent =3D null;=0A= // delta [0,0] will do fine with position: fixed elements,=0A= // position:absolute needs offsetParent deltas=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') {=0A= parent =3D element.getOffsetParent();=0A= delta =3D parent.viewportOffset();=0A= }=0A= =0A= // correct by body offsets (fixes Safari)=0A= if (parent =3D=3D document.body) {=0A= delta[0] -=3D document.body.offsetLeft;=0A= delta[1] -=3D document.body.offsetTop;=0A= }=0A= =0A= // set position=0A= if (options.setLeft) element.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if (options.setTop) element.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if (options.setWidth) element.style.width =3D source.offsetWidth + = 'px';=0A= if (options.setHeight) element.style.height =3D source.offsetHeight = + 'px';=0A= return element;=0A= }=0A= };=0A= =0A= Element.Methods.identify.counter =3D 1;=0A= =0A= Object.extend(Element.Methods, {=0A= getElementsBySelector: Element.Methods.select,=0A= childElements: Element.Methods.immediateDescendants=0A= });=0A= =0A= Element._attributeTranslations =3D {=0A= write: {=0A= names: {=0A= className: 'class',=0A= htmlFor: 'for'=0A= },=0A= values: { }=0A= }=0A= };=0A= =0A= if (Prototype.Browser.Opera) {=0A= Element.Methods.getStyle =3D Element.Methods.getStyle.wrap(=0A= function(proceed, element, style) {=0A= switch (style) {=0A= case 'left': case 'top': case 'right': case 'bottom':=0A= if (proceed(element, 'position') =3D=3D=3D 'static') return = null;=0A= case 'height': case 'width':=0A= // returns '0px' for hidden elements; we want it to return null=0A= if (!Element.visible(element)) return null;=0A= =0A= // returns the border-box dimensions rather than the = content-box=0A= // dimensions, so we subtract padding and borders from the = value=0A= var dim =3D parseInt(proceed(element, style), 10);=0A= =0A= if (dim !=3D=3D element['offset' + style.capitalize()])=0A= return dim + 'px';=0A= =0A= var properties;=0A= if (style =3D=3D=3D 'height') {=0A= properties =3D ['border-top-width', 'padding-top',=0A= 'padding-bottom', 'border-bottom-width'];=0A= }=0A= else {=0A= properties =3D ['border-left-width', 'padding-left',=0A= 'padding-right', 'border-right-width'];=0A= }=0A= return properties.inject(dim, function(memo, property) {=0A= var val =3D proceed(element, property);=0A= return val =3D=3D=3D null ? memo : memo - parseInt(val, 10);=0A= }) + 'px';=0A= default: return proceed(element, style);=0A= }=0A= }=0A= );=0A= =0A= Element.Methods.readAttribute =3D Element.Methods.readAttribute.wrap(=0A= function(proceed, element, attribute) {=0A= if (attribute =3D=3D=3D 'title') return element.title;=0A= return proceed(element, attribute);=0A= }=0A= );=0A= }=0A= =0A= else if (Prototype.Browser.IE) {=0A= // IE doesn't report offsets correctly for static elements, so we = change them=0A= // to "relative" to get the values, then change them back.=0A= Element.Methods.getOffsetParent =3D = Element.Methods.getOffsetParent.wrap(=0A= function(proceed, element) {=0A= element =3D $(element);=0A= // IE throws an error if element is not in document=0A= try { element.offsetParent }=0A= catch(e) { return $(document.body) }=0A= var position =3D element.getStyle('position');=0A= if (position !=3D=3D 'static') return proceed(element);=0A= element.setStyle({ position: 'relative' });=0A= var value =3D proceed(element);=0A= element.setStyle({ position: position });=0A= return value;=0A= }=0A= );=0A= =0A= $w('positionedOffset viewportOffset').each(function(method) {=0A= Element.Methods[method] =3D Element.Methods[method].wrap(=0A= function(proceed, element) {=0A= element =3D $(element);=0A= try { element.offsetParent }=0A= catch(e) { return Element._returnOffset(0,0) }=0A= var position =3D element.getStyle('position');=0A= if (position !=3D=3D 'static') return proceed(element);=0A= // Trigger hasLayout on the offset parent so that IE6 reports=0A= // accurate offsetTop and offsetLeft values for position: fixed.=0A= var offsetParent =3D element.getOffsetParent();=0A= if (offsetParent && offsetParent.getStyle('position') =3D=3D=3D = 'fixed')=0A= offsetParent.setStyle({ zoom: 1 });=0A= element.setStyle({ position: 'relative' });=0A= var value =3D proceed(element);=0A= element.setStyle({ position: position });=0A= return value;=0A= }=0A= );=0A= });=0A= =0A= Element.Methods.cumulativeOffset =3D = Element.Methods.cumulativeOffset.wrap(=0A= function(proceed, element) {=0A= try { element.offsetParent }=0A= catch(e) { return Element._returnOffset(0,0) }=0A= return proceed(element);=0A= }=0A= );=0A= =0A= Element.Methods.getStyle =3D function(element, style) {=0A= element =3D $(element);=0A= style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? = 'styleFloat' : style.camelize();=0A= var value =3D element.style[style];=0A= if (!value && element.currentStyle) value =3D = element.currentStyle[style];=0A= =0A= if (style =3D=3D 'opacity') {=0A= if (value =3D (element.getStyle('filter') || = '').match(/alpha\(opacity=3D(.*)\)/))=0A= if (value[1]) return parseFloat(value[1]) / 100;=0A= return 1.0;=0A= }=0A= =0A= if (value =3D=3D 'auto') {=0A= if ((style =3D=3D 'width' || style =3D=3D 'height') && = (element.getStyle('display') !=3D 'none'))=0A= return element['offset' + style.capitalize()] + 'px';=0A= return null;=0A= }=0A= return value;=0A= };=0A= =0A= Element.Methods.setOpacity =3D function(element, value) {=0A= function stripAlpha(filter){=0A= return filter.replace(/alpha\([^\)]*\)/gi,'');=0A= }=0A= element =3D $(element);=0A= var currentStyle =3D element.currentStyle;=0A= if ((currentStyle && !currentStyle.hasLayout) ||=0A= (!currentStyle && element.style.zoom =3D=3D 'normal'))=0A= element.style.zoom =3D 1;=0A= =0A= var filter =3D element.getStyle('filter'), style =3D element.style;=0A= if (value =3D=3D 1 || value =3D=3D=3D '') {=0A= (filter =3D stripAlpha(filter)) ?=0A= style.filter =3D filter : style.removeAttribute('filter');=0A= return element;=0A= } else if (value < 0.00001) value =3D 0;=0A= style.filter =3D stripAlpha(filter) +=0A= 'alpha(opacity=3D' + (value * 100) + ')';=0A= return element;=0A= };=0A= =0A= Element._attributeTranslations =3D {=0A= read: {=0A= names: {=0A= 'class': 'className',=0A= 'for': 'htmlFor'=0A= },=0A= values: {=0A= _getAttr: function(element, attribute) {=0A= return element.getAttribute(attribute, 2);=0A= },=0A= _getAttrNode: function(element, attribute) {=0A= var node =3D element.getAttributeNode(attribute);=0A= return node ? node.value : "";=0A= },=0A= _getEv: function(element, attribute) {=0A= attribute =3D element.getAttribute(attribute);=0A= return attribute ? attribute.toString().slice(23, -2) : null;=0A= },=0A= _flag: function(element, attribute) {=0A= return $(element).hasAttribute(attribute) ? attribute : null;=0A= },=0A= style: function(element) {=0A= return element.style.cssText.toLowerCase();=0A= },=0A= title: function(element) {=0A= return element.title;=0A= }=0A= }=0A= }=0A= };=0A= =0A= Element._attributeTranslations.write =3D {=0A= names: Object.extend({=0A= cellpadding: 'cellPadding',=0A= cellspacing: 'cellSpacing'=0A= }, Element._attributeTranslations.read.names),=0A= values: {=0A= checked: function(element, value) {=0A= element.checked =3D !!value;=0A= },=0A= =0A= style: function(element, value) {=0A= element.style.cssText =3D value ? value : '';=0A= }=0A= }=0A= };=0A= =0A= Element._attributeTranslations.has =3D {};=0A= =0A= $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +=0A= 'encType maxLength readOnly longDesc = frameBorder').each(function(attr) {=0A= Element._attributeTranslations.write.names[attr.toLowerCase()] =3D = attr;=0A= Element._attributeTranslations.has[attr.toLowerCase()] =3D attr;=0A= });=0A= =0A= (function(v) {=0A= Object.extend(v, {=0A= href: v._getAttr,=0A= src: v._getAttr,=0A= type: v._getAttr,=0A= action: v._getAttrNode,=0A= disabled: v._flag,=0A= checked: v._flag,=0A= readonly: v._flag,=0A= multiple: v._flag,=0A= onload: v._getEv,=0A= onunload: v._getEv,=0A= onclick: v._getEv,=0A= ondblclick: v._getEv,=0A= onmousedown: v._getEv,=0A= onmouseup: v._getEv,=0A= onmouseover: v._getEv,=0A= onmousemove: v._getEv,=0A= onmouseout: v._getEv,=0A= onfocus: v._getEv,=0A= onblur: v._getEv,=0A= onkeypress: v._getEv,=0A= onkeydown: v._getEv,=0A= onkeyup: v._getEv,=0A= onsubmit: v._getEv,=0A= onreset: v._getEv,=0A= onselect: v._getEv,=0A= onchange: v._getEv=0A= });=0A= })(Element._attributeTranslations.read.values);=0A= }=0A= =0A= else if (Prototype.Browser.Gecko && = /rv:1\.8\.0/.test(navigator.userAgent)) {=0A= Element.Methods.setOpacity =3D function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1) ? 0.999999 :=0A= (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value;=0A= return element;=0A= };=0A= }=0A= =0A= else if (Prototype.Browser.WebKit) {=0A= Element.Methods.setOpacity =3D function(element, value) {=0A= element =3D $(element);=0A= element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? = '' :=0A= (value < 0.00001) ? 0 : value;=0A= =0A= if (value =3D=3D 1)=0A= if(element.tagName.toUpperCase() =3D=3D 'IMG' && element.width) {=0A= element.width++; element.width--;=0A= } else try {=0A= var n =3D document.createTextNode(' ');=0A= element.appendChild(n);=0A= element.removeChild(n);=0A= } catch (e) { }=0A= =0A= return element;=0A= };=0A= =0A= // Safari returns margins on body which is incorrect if the child is = absolutely=0A= // positioned. For performance reasons, redefine = Element#cumulativeOffset for=0A= // KHTML/WebKit only.=0A= Element.Methods.cumulativeOffset =3D function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= if (element.offsetParent =3D=3D document.body)=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break;=0A= =0A= element =3D element.offsetParent;=0A= } while (element);=0A= =0A= return Element._returnOffset(valueL, valueT);=0A= };=0A= }=0A= =0A= if (Prototype.Browser.IE || Prototype.Browser.Opera) {=0A= // IE and Opera are missing .innerHTML support for TABLE-related and = SELECT elements=0A= Element.Methods.update =3D function(element, content) {=0A= element =3D $(element);=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) return = element.update().insert(content);=0A= =0A= content =3D Object.toHTML(content);=0A= var tagName =3D element.tagName.toUpperCase();=0A= =0A= if (tagName in Element._insertionTranslations.tags) {=0A= $A(element.childNodes).each(function(node) { = element.removeChild(node) });=0A= Element._getContentFromAnonymousElement(tagName, = content.stripScripts())=0A= .each(function(node) { element.appendChild(node) });=0A= }=0A= else element.innerHTML =3D content.stripScripts();=0A= =0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= };=0A= }=0A= =0A= if ('outerHTML' in document.createElement('div')) {=0A= Element.Methods.replace =3D function(element, content) {=0A= element =3D $(element);=0A= =0A= if (content && content.toElement) content =3D content.toElement();=0A= if (Object.isElement(content)) {=0A= element.parentNode.replaceChild(content, element);=0A= return element;=0A= }=0A= =0A= content =3D Object.toHTML(content);=0A= var parent =3D element.parentNode, tagName =3D = parent.tagName.toUpperCase();=0A= =0A= if (Element._insertionTranslations.tags[tagName]) {=0A= var nextSibling =3D element.next();=0A= var fragments =3D Element._getContentFromAnonymousElement(tagName, = content.stripScripts());=0A= parent.removeChild(element);=0A= if (nextSibling)=0A= fragments.each(function(node) { parent.insertBefore(node, = nextSibling) });=0A= else=0A= fragments.each(function(node) { parent.appendChild(node) });=0A= }=0A= else element.outerHTML =3D content.stripScripts();=0A= =0A= content.evalScripts.bind(content).defer();=0A= return element;=0A= };=0A= }=0A= =0A= Element._returnOffset =3D function(l, t) {=0A= var result =3D [l, t];=0A= result.left =3D l;=0A= result.top =3D t;=0A= return result;=0A= };=0A= =0A= Element._getContentFromAnonymousElement =3D function(tagName, html) {=0A= var div =3D new Element('div'), t =3D = Element._insertionTranslations.tags[tagName];=0A= if (t) {=0A= div.innerHTML =3D t[0] + html + t[1];=0A= t[2].times(function() { div =3D div.firstChild });=0A= } else div.innerHTML =3D html;=0A= return $A(div.childNodes);=0A= };=0A= =0A= Element._insertionTranslations =3D {=0A= before: function(element, node) {=0A= element.parentNode.insertBefore(node, element);=0A= },=0A= top: function(element, node) {=0A= element.insertBefore(node, element.firstChild);=0A= },=0A= bottom: function(element, node) {=0A= element.appendChild(node);=0A= },=0A= after: function(element, node) {=0A= element.parentNode.insertBefore(node, element.nextSibling);=0A= },=0A= tags: {=0A= TABLE: ['', '
', 1],=0A= TBODY: ['', '
', 2],=0A= TR: ['', '
', 3],=0A= TD: ['
', '
', 4],=0A= SELECT: ['', 1]=0A= }=0A= };=0A= =0A= (function() {=0A= Object.extend(this.tags, {=0A= THEAD: this.tags.TBODY,=0A= TFOOT: this.tags.TBODY,=0A= TH: this.tags.TD=0A= });=0A= }).call(Element._insertionTranslations);=0A= =0A= Element.Methods.Simulated =3D {=0A= hasAttribute: function(element, attribute) {=0A= attribute =3D Element._attributeTranslations.has[attribute] || = attribute;=0A= var node =3D $(element).getAttributeNode(attribute);=0A= return !!(node && node.specified);=0A= }=0A= };=0A= =0A= Element.Methods.ByTag =3D { };=0A= =0A= Object.extend(Element, Element.Methods);=0A= =0A= if (!Prototype.BrowserFeatures.ElementExtensions &&=0A= document.createElement('div')['__proto__']) {=0A= window.HTMLElement =3D { };=0A= window.HTMLElement.prototype =3D = document.createElement('div')['__proto__'];=0A= Prototype.BrowserFeatures.ElementExtensions =3D true;=0A= }=0A= =0A= Element.extend =3D (function() {=0A= if (Prototype.BrowserFeatures.SpecificElementExtensions)=0A= return Prototype.K;=0A= =0A= var Methods =3D { }, ByTag =3D Element.Methods.ByTag;=0A= =0A= var extend =3D Object.extend(function(element) {=0A= if (!element || element._extendedByPrototype ||=0A= element.nodeType !=3D 1 || element =3D=3D window) return element;=0A= =0A= var methods =3D Object.clone(Methods),=0A= tagName =3D element.tagName.toUpperCase(), property, value;=0A= =0A= // extend methods for specific tags=0A= if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);=0A= =0A= for (property in methods) {=0A= value =3D methods[property];=0A= if (Object.isFunction(value) && !(property in element))=0A= element[property] =3D value.methodize();=0A= }=0A= =0A= element._extendedByPrototype =3D Prototype.emptyFunction;=0A= return element;=0A= =0A= }, {=0A= refresh: function() {=0A= // extend methods for all tags (Safari doesn't need this)=0A= if (!Prototype.BrowserFeatures.ElementExtensions) {=0A= Object.extend(Methods, Element.Methods);=0A= Object.extend(Methods, Element.Methods.Simulated);=0A= }=0A= }=0A= });=0A= =0A= extend.refresh();=0A= return extend;=0A= })();=0A= =0A= Element.hasAttribute =3D function(element, attribute) {=0A= if (element.hasAttribute) return element.hasAttribute(attribute);=0A= return Element.Methods.Simulated.hasAttribute(element, attribute);=0A= };=0A= =0A= Element.addMethods =3D function(methods) {=0A= var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag;=0A= =0A= if (!methods) {=0A= Object.extend(Form, Form.Methods);=0A= Object.extend(Form.Element, Form.Element.Methods);=0A= Object.extend(Element.Methods.ByTag, {=0A= "FORM": Object.clone(Form.Methods),=0A= "INPUT": Object.clone(Form.Element.Methods),=0A= "SELECT": Object.clone(Form.Element.Methods),=0A= "TEXTAREA": Object.clone(Form.Element.Methods)=0A= });=0A= }=0A= =0A= if (arguments.length =3D=3D 2) {=0A= var tagName =3D methods;=0A= methods =3D arguments[1];=0A= }=0A= =0A= if (!tagName) Object.extend(Element.Methods, methods || { });=0A= else {=0A= if (Object.isArray(tagName)) tagName.each(extend);=0A= else extend(tagName);=0A= }=0A= =0A= function extend(tagName) {=0A= tagName =3D tagName.toUpperCase();=0A= if (!Element.Methods.ByTag[tagName])=0A= Element.Methods.ByTag[tagName] =3D { };=0A= Object.extend(Element.Methods.ByTag[tagName], methods);=0A= }=0A= =0A= function copy(methods, destination, onlyIfAbsent) {=0A= onlyIfAbsent =3D onlyIfAbsent || false;=0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (!Object.isFunction(value)) continue;=0A= if (!onlyIfAbsent || !(property in destination))=0A= destination[property] =3D value.methodize();=0A= }=0A= }=0A= =0A= function findDOMClass(tagName) {=0A= var klass;=0A= var trans =3D {=0A= "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",=0A= "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": = "DList",=0A= "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": = "Heading",=0A= "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",=0A= "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", = "CAPTION":=0A= "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":=0A= "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", = "TR":=0A= "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":=0A= "FrameSet", "IFRAME": "IFrame"=0A= };=0A= if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element';=0A= if (window[klass]) return window[klass];=0A= klass =3D 'HTML' + tagName + 'Element';=0A= if (window[klass]) return window[klass];=0A= klass =3D 'HTML' + tagName.capitalize() + 'Element';=0A= if (window[klass]) return window[klass];=0A= =0A= window[klass] =3D { };=0A= window[klass].prototype =3D = document.createElement(tagName)['__proto__'];=0A= return window[klass];=0A= }=0A= =0A= if (F.ElementExtensions) {=0A= copy(Element.Methods, HTMLElement.prototype);=0A= copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A= }=0A= =0A= if (F.SpecificElementExtensions) {=0A= for (var tag in Element.Methods.ByTag) {=0A= var klass =3D findDOMClass(tag);=0A= if (Object.isUndefined(klass)) continue;=0A= copy(T[tag], klass.prototype);=0A= }=0A= }=0A= =0A= Object.extend(Element, Element.Methods);=0A= delete Element.ByTag;=0A= =0A= if (Element.extend.refresh) Element.extend.refresh();=0A= Element.cache =3D { };=0A= };=0A= =0A= document.viewport =3D {=0A= getDimensions: function() {=0A= var dimensions =3D { }, B =3D Prototype.Browser;=0A= $w('width height').each(function(d) {=0A= var D =3D d.capitalize();=0A= if (B.WebKit && !document.evaluate) {=0A= // Safari <3.0 needs self.innerWidth/Height=0A= dimensions[d] =3D self['inner' + D];=0A= } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {=0A= // Opera <9.5 needs document.body.clientWidth/Height=0A= dimensions[d] =3D document.body['client' + D]=0A= } else {=0A= dimensions[d] =3D document.documentElement['client' + D];=0A= }=0A= });=0A= return dimensions;=0A= },=0A= =0A= getWidth: function() {=0A= return this.getDimensions().width;=0A= },=0A= =0A= getHeight: function() {=0A= return this.getDimensions().height;=0A= },=0A= =0A= getScrollOffsets: function() {=0A= return Element._returnOffset(=0A= window.pageXOffset || document.documentElement.scrollLeft || = document.body.scrollLeft,=0A= window.pageYOffset || document.documentElement.scrollTop || = document.body.scrollTop);=0A= }=0A= };=0A= /* Portions of the Selector class are derived from Jack Slocum's = DomQuery,=0A= * part of YUI-Ext version 0.40, distributed under the terms of an = MIT-style=0A= * license. Please see http://www.yui-ext.com/ for more information. */=0A= =0A= var Selector =3D Class.create({=0A= initialize: function(expression) {=0A= this.expression =3D expression.strip();=0A= =0A= if (this.shouldUseSelectorsAPI()) {=0A= this.mode =3D 'selectorsAPI';=0A= } else if (this.shouldUseXPath()) {=0A= this.mode =3D 'xpath';=0A= this.compileXPathMatcher();=0A= } else {=0A= this.mode =3D "normal";=0A= this.compileMatcher();=0A= }=0A= =0A= },=0A= =0A= shouldUseXPath: function() {=0A= if (!Prototype.BrowserFeatures.XPath) return false;=0A= =0A= var e =3D this.expression;=0A= =0A= // Safari 3 chokes on :*-of-type and :empty=0A= if (Prototype.Browser.WebKit &&=0A= (e.include("-of-type") || e.include(":empty")))=0A= return false;=0A= =0A= // XPath can't do namespaced attributes, nor can it read=0A= // the "checked" property from DOM nodes=0A= if ((/(\[[\w-]*?:|:checked)/).test(e))=0A= return false;=0A= =0A= return true;=0A= },=0A= =0A= shouldUseSelectorsAPI: function() {=0A= if (!Prototype.BrowserFeatures.SelectorsAPI) return false;=0A= =0A= if (!Selector._div) Selector._div =3D new Element('div');=0A= =0A= // Make sure the browser treats the selector as valid. Test on an=0A= // isolated element to minimize cost of this check.=0A= try {=0A= Selector._div.querySelector(this.expression);=0A= } catch(e) {=0A= return false;=0A= }=0A= =0A= return true;=0A= },=0A= =0A= compileMatcher: function() {=0A= var e =3D this.expression, ps =3D Selector.patterns, h =3D = Selector.handlers,=0A= c =3D Selector.criteria, le, p, m;=0A= =0A= if (Selector._cache[e]) {=0A= this.matcher =3D Selector._cache[e];=0A= return;=0A= }=0A= =0A= this.matcher =3D ["this.matcher =3D function(root) {",=0A= "var r =3D root, h =3D Selector.handlers, c =3D = false, n;"];=0A= =0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= p =3D ps[i];=0A= if (m =3D e.match(p)) {=0A= this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :=0A= new Template(c[i]).evaluate(m));=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= =0A= this.matcher.push("return h.unique(n);\n}");=0A= eval(this.matcher.join('\n'));=0A= Selector._cache[this.expression] =3D this.matcher;=0A= },=0A= =0A= compileXPathMatcher: function() {=0A= var e =3D this.expression, ps =3D Selector.patterns,=0A= x =3D Selector.xpath, le, m;=0A= =0A= if (Selector._cache[e]) {=0A= this.xpath =3D Selector._cache[e]; return;=0A= }=0A= =0A= this.matcher =3D ['.//*'];=0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= if (m =3D e.match(ps[i])) {=0A= this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :=0A= new Template(x[i]).evaluate(m));=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= =0A= this.xpath =3D this.matcher.join('');=0A= Selector._cache[this.expression] =3D this.xpath;=0A= },=0A= =0A= findElements: function(root) {=0A= root =3D root || document;=0A= var e =3D this.expression, results;=0A= =0A= switch (this.mode) {=0A= case 'selectorsAPI':=0A= // querySelectorAll queries document-wide, then filters to = descendants=0A= // of the context element. That's not what we want.=0A= // Add an explicit context to the selector if necessary.=0A= if (root !=3D=3D document) {=0A= var oldId =3D root.id, id =3D $(root).identify();=0A= e =3D "#" + id + " " + e;=0A= }=0A= =0A= results =3D $A(root.querySelectorAll(e)).map(Element.extend);=0A= root.id =3D oldId;=0A= =0A= return results;=0A= case 'xpath':=0A= return document._getElementsByXPath(this.xpath, root);=0A= default:=0A= return this.matcher(root);=0A= }=0A= },=0A= =0A= match: function(element) {=0A= this.tokens =3D [];=0A= =0A= var e =3D this.expression, ps =3D Selector.patterns, as =3D = Selector.assertions;=0A= var le, p, m;=0A= =0A= while (e && le !=3D=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in ps) {=0A= p =3D ps[i];=0A= if (m =3D e.match(p)) {=0A= // use the Selector.assertions methods unless the selector=0A= // is too complex.=0A= if (as[i]) {=0A= this.tokens.push([i, Object.clone(m)]);=0A= e =3D e.replace(m[0], '');=0A= } else {=0A= // reluctantly do a document-wide search=0A= // and look for a match in the array=0A= return this.findElements(document).include(element);=0A= }=0A= }=0A= }=0A= }=0A= =0A= var match =3D true, name, matches;=0A= for (var i =3D 0, token; token =3D this.tokens[i]; i++) {=0A= name =3D token[0], matches =3D token[1];=0A= if (!Selector.assertions[name](element, matches)) {=0A= match =3D false; break;=0A= }=0A= }=0A= =0A= return match;=0A= },=0A= =0A= toString: function() {=0A= return this.expression;=0A= },=0A= =0A= inspect: function() {=0A= return "#";=0A= }=0A= });=0A= =0A= Object.extend(Selector, {=0A= _cache: { },=0A= =0A= xpath: {=0A= descendant: "//*",=0A= child: "/*",=0A= adjacent: "/following-sibling::*[1]",=0A= laterSibling: '/following-sibling::*',=0A= tagName: function(m) {=0A= if (m[1] =3D=3D '*') return '';=0A= return "[local-name()=3D'" + m[1].toLowerCase() +=0A= "' or local-name()=3D'" + m[1].toUpperCase() + "']";=0A= },=0A= className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",=0A= id: "[@id=3D'#{1}']",=0A= attrPresence: function(m) {=0A= m[1] =3D m[1].toLowerCase();=0A= return new Template("[@#{1}]").evaluate(m);=0A= },=0A= attr: function(m) {=0A= m[1] =3D m[1].toLowerCase();=0A= m[3] =3D m[5] || m[6];=0A= return new Template(Selector.xpath.operators[m[2]]).evaluate(m);=0A= },=0A= pseudo: function(m) {=0A= var h =3D Selector.xpath.pseudos[m[1]];=0A= if (!h) return '';=0A= if (Object.isFunction(h)) return h(m);=0A= return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);=0A= },=0A= operators: {=0A= '=3D': "[@#{1}=3D'#{3}']",=0A= '!=3D': "[@#{1}!=3D'#{3}']",=0A= '^=3D': "[starts-with(@#{1}, '#{3}')]",=0A= '$=3D': "[substring(@#{1}, (string-length(@#{1}) - = string-length('#{3}') + 1))=3D'#{3}']",=0A= '*=3D': "[contains(@#{1}, '#{3}')]",=0A= '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",=0A= '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"=0A= },=0A= pseudos: {=0A= 'first-child': '[not(preceding-sibling::*)]',=0A= 'last-child': '[not(following-sibling::*)]',=0A= 'only-child': '[not(preceding-sibling::* or = following-sibling::*)]',=0A= 'empty': "[count(*) =3D 0 and (count(text()) =3D 0)]",=0A= 'checked': "[@checked]",=0A= 'disabled': "[(@disabled) and (@type!=3D'hidden')]",=0A= 'enabled': "[not(@disabled) and (@type!=3D'hidden')]",=0A= 'not': function(m) {=0A= var e =3D m[6], p =3D Selector.patterns,=0A= x =3D Selector.xpath, le, v;=0A= =0A= var exclusion =3D [];=0A= while (e && le !=3D e && (/\S/).test(e)) {=0A= le =3D e;=0A= for (var i in p) {=0A= if (m =3D e.match(p[i])) {=0A= v =3D Object.isFunction(x[i]) ? x[i](m) : new = Template(x[i]).evaluate(m);=0A= exclusion.push("(" + v.substring(1, v.length - 1) + ")");=0A= e =3D e.replace(m[0], '');=0A= break;=0A= }=0A= }=0A= }=0A= return "[not(" + exclusion.join(" and ") + ")]";=0A= },=0A= 'nth-child': function(m) {=0A= return = Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);=0A= },=0A= 'nth-last-child': function(m) {=0A= return = Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);=0A= },=0A= 'nth-of-type': function(m) {=0A= return Selector.xpath.pseudos.nth("position() ", m);=0A= },=0A= 'nth-last-of-type': function(m) {=0A= return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", = m);=0A= },=0A= 'first-of-type': function(m) {=0A= m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m);=0A= },=0A= 'last-of-type': function(m) {=0A= m[6] =3D "1"; return = Selector.xpath.pseudos['nth-last-of-type'](m);=0A= },=0A= 'only-of-type': function(m) {=0A= var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + = p['last-of-type'](m);=0A= },=0A= nth: function(fragment, m) {=0A= var mm, formula =3D m[6], predicate;=0A= if (formula =3D=3D 'even') formula =3D '2n+0';=0A= if (formula =3D=3D 'odd') formula =3D '2n+1';=0A= if (mm =3D formula.match(/^(\d+)$/)) // digit only=0A= return '[' + fragment + "=3D " + mm[1] + ']';=0A= if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b=0A= if (mm[1] =3D=3D "-") mm[1] =3D -1;=0A= var a =3D mm[1] ? Number(mm[1]) : 1;=0A= var b =3D mm[2] ? Number(mm[2]) : 0;=0A= predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " +=0A= "((#{fragment} - #{b}) div #{a} >=3D 0)]";=0A= return new Template(predicate).evaluate({=0A= fragment: fragment, a: a, b: b });=0A= }=0A= }=0A= }=0A= },=0A= =0A= criteria: {=0A= tagName: 'n =3D h.tagName(n, r, "#{1}", c); c =3D false;',=0A= className: 'n =3D h.className(n, r, "#{1}", c); c =3D false;',=0A= id: 'n =3D h.id(n, r, "#{1}", c); c =3D false;',=0A= attrPresence: 'n =3D h.attrPresence(n, r, "#{1}", c); c =3D false;',=0A= attr: function(m) {=0A= m[3] =3D (m[5] || m[6]);=0A= return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}", = c); c =3D false;').evaluate(m);=0A= },=0A= pseudo: function(m) {=0A= if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"');=0A= return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c = =3D false;').evaluate(m);=0A= },=0A= descendant: 'c =3D "descendant";',=0A= child: 'c =3D "child";',=0A= adjacent: 'c =3D "adjacent";',=0A= laterSibling: 'c =3D "laterSibling";'=0A= },=0A= =0A= patterns: {=0A= // combinators must be listed first=0A= // (and descendant needs to be last combinator)=0A= laterSibling: /^\s*~\s*/,=0A= child: /^\s*>\s*/,=0A= adjacent: /^\s*\+\s*/,=0A= descendant: /^\s/,=0A= =0A= // selectors follow=0A= tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,=0A= id: /^#([\w\-\*]+)(\b|$)/,=0A= className: /^\.([\w\-\*]+)(\b|$)/,=0A= pseudo:=0A= /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis= )abled|not)(\((.*?)\))?(\b|$|(?=3D\s|[:+~>]))/,=0A= attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,=0A= attr: = /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\4]*?)\4|([^'"][^= \]]*?)))?\]/=0A= },=0A= =0A= // for Selector.match and Element#match=0A= assertions: {=0A= tagName: function(element, matches) {=0A= return matches[1].toUpperCase() =3D=3D = element.tagName.toUpperCase();=0A= },=0A= =0A= className: function(element, matches) {=0A= return Element.hasClassName(element, matches[1]);=0A= },=0A= =0A= id: function(element, matches) {=0A= return element.id =3D=3D=3D matches[1];=0A= },=0A= =0A= attrPresence: function(element, matches) {=0A= return Element.hasAttribute(element, matches[1]);=0A= },=0A= =0A= attr: function(element, matches) {=0A= var nodeValue =3D Element.readAttribute(element, matches[1]);=0A= return nodeValue && Selector.operators[matches[2]](nodeValue, = matches[5] || matches[6]);=0A= }=0A= },=0A= =0A= handlers: {=0A= // UTILITY FUNCTIONS=0A= // joins two collections=0A= concat: function(a, b) {=0A= for (var i =3D 0, node; node =3D b[i]; i++)=0A= a.push(node);=0A= return a;=0A= },=0A= =0A= // marks an array of nodes for counting=0A= mark: function(nodes) {=0A= var _true =3D Prototype.emptyFunction;=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= node._countedByPrototype =3D _true;=0A= return nodes;=0A= },=0A= =0A= unmark: function(nodes) {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= node._countedByPrototype =3D undefined;=0A= return nodes;=0A= },=0A= =0A= // mark each child node with its position (for nth calls)=0A= // "ofType" flag indicates whether we're indexing for nth-of-type=0A= // rather than nth-child=0A= index: function(parentNode, reverse, ofType) {=0A= parentNode._countedByPrototype =3D Prototype.emptyFunction;=0A= if (reverse) {=0A= for (var nodes =3D parentNode.childNodes, i =3D nodes.length - = 1, j =3D 1; i >=3D 0; i--) {=0A= var node =3D nodes[i];=0A= if (node.nodeType =3D=3D 1 && (!ofType || = node._countedByPrototype)) node.nodeIndex =3D j++;=0A= }=0A= } else {=0A= for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node = =3D nodes[i]; i++)=0A= if (node.nodeType =3D=3D 1 && (!ofType || = node._countedByPrototype)) node.nodeIndex =3D j++;=0A= }=0A= },=0A= =0A= // filters out duplicates and extends all nodes=0A= unique: function(nodes) {=0A= if (nodes.length =3D=3D 0) return nodes;=0A= var results =3D [], n;=0A= for (var i =3D 0, l =3D nodes.length; i < l; i++)=0A= if (!(n =3D nodes[i])._countedByPrototype) {=0A= n._countedByPrototype =3D Prototype.emptyFunction;=0A= results.push(Element.extend(n));=0A= }=0A= return Selector.handlers.unmark(results);=0A= },=0A= =0A= // COMBINATOR FUNCTIONS=0A= descendant: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= h.concat(results, node.getElementsByTagName('*'));=0A= return results;=0A= },=0A= =0A= child: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= for (var j =3D 0, child; child =3D node.childNodes[j]; j++)=0A= if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') = results.push(child);=0A= }=0A= return results;=0A= },=0A= =0A= adjacent: function(nodes) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= var next =3D this.nextElementSibling(node);=0A= if (next) results.push(next);=0A= }=0A= return results;=0A= },=0A= =0A= laterSibling: function(nodes) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= h.concat(results, Element.nextSiblings(node));=0A= return results;=0A= },=0A= =0A= nextElementSibling: function(node) {=0A= while (node =3D node.nextSibling)=0A= if (node.nodeType =3D=3D 1) return node;=0A= return null;=0A= },=0A= =0A= previousElementSibling: function(node) {=0A= while (node =3D node.previousSibling)=0A= if (node.nodeType =3D=3D 1) return node;=0A= return null;=0A= },=0A= =0A= // TOKEN FUNCTIONS=0A= tagName: function(nodes, root, tagName, combinator) {=0A= var uTagName =3D tagName.toUpperCase();=0A= var results =3D [], h =3D Selector.handlers;=0A= if (nodes) {=0A= if (combinator) {=0A= // fastlane for ordinary descendant combinators=0A= if (combinator =3D=3D "descendant") {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= h.concat(results, node.getElementsByTagName(tagName));=0A= return results;=0A= } else nodes =3D this[combinator](nodes);=0A= if (tagName =3D=3D "*") return nodes;=0A= }=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node.tagName.toUpperCase() =3D=3D=3D uTagName) = results.push(node);=0A= return results;=0A= } else return root.getElementsByTagName(tagName);=0A= },=0A= =0A= id: function(nodes, root, id, combinator) {=0A= var targetNode =3D $(id), h =3D Selector.handlers;=0A= if (!targetNode) return [];=0A= if (!nodes && root =3D=3D document) return [targetNode];=0A= if (nodes) {=0A= if (combinator) {=0A= if (combinator =3D=3D 'child') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (targetNode.parentNode =3D=3D node) return [targetNode];=0A= } else if (combinator =3D=3D 'descendant') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Element.descendantOf(targetNode, node)) return = [targetNode];=0A= } else if (combinator =3D=3D 'adjacent') {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Selector.handlers.previousElementSibling(targetNode) = =3D=3D node)=0A= return [targetNode];=0A= } else nodes =3D h[combinator](nodes);=0A= }=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node =3D=3D targetNode) return [targetNode];=0A= return [];=0A= }=0A= return (targetNode && Element.descendantOf(targetNode, root)) ? = [targetNode] : [];=0A= },=0A= =0A= className: function(nodes, root, className, combinator) {=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= return Selector.handlers.byClassName(nodes, root, className);=0A= },=0A= =0A= byClassName: function(nodes, root, className) {=0A= if (!nodes) nodes =3D Selector.handlers.descendant([root]);=0A= var needle =3D ' ' + className + ' ';=0A= for (var i =3D 0, results =3D [], node, nodeClassName; node =3D = nodes[i]; i++) {=0A= nodeClassName =3D node.className;=0A= if (nodeClassName.length =3D=3D 0) continue;=0A= if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' = ').include(needle))=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= attrPresence: function(nodes, root, attr, combinator) {=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= var results =3D [];=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (Element.hasAttribute(node, attr)) results.push(node);=0A= return results;=0A= },=0A= =0A= attr: function(nodes, root, attr, value, operator, combinator) {=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= var handler =3D Selector.operators[operator], results =3D [];=0A= for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A= var nodeValue =3D Element.readAttribute(node, attr);=0A= if (nodeValue =3D=3D=3D null) continue;=0A= if (handler(nodeValue, value)) results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= pseudo: function(nodes, name, value, root, combinator) {=0A= if (nodes && combinator) nodes =3D this[combinator](nodes);=0A= if (!nodes) nodes =3D root.getElementsByTagName("*");=0A= return Selector.pseudos[name](nodes, value, root);=0A= }=0A= },=0A= =0A= pseudos: {=0A= 'first-child': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= if (Selector.handlers.previousElementSibling(node)) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= 'last-child': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= if (Selector.handlers.nextElementSibling(node)) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= 'only-child': function(nodes, value, root) {=0A= var h =3D Selector.handlers;=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!h.previousElementSibling(node) && = !h.nextElementSibling(node))=0A= results.push(node);=0A= return results;=0A= },=0A= 'nth-child': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root);=0A= },=0A= 'nth-last-child': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, true);=0A= },=0A= 'nth-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, false, true);=0A= },=0A= 'nth-last-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, formula, root, true, true);=0A= },=0A= 'first-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, "1", root, false, true);=0A= },=0A= 'last-of-type': function(nodes, formula, root) {=0A= return Selector.pseudos.nth(nodes, "1", root, true, true);=0A= },=0A= 'only-of-type': function(nodes, formula, root) {=0A= var p =3D Selector.pseudos;=0A= return p['last-of-type'](p['first-of-type'](nodes, formula, root), = formula, root);=0A= },=0A= =0A= // handles the an+b logic=0A= getIndices: function(a, b, total) {=0A= if (a =3D=3D 0) return b > 0 ? [b] : [];=0A= return $R(1, total).inject([], function(memo, i) {=0A= if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i);=0A= return memo;=0A= });=0A= },=0A= =0A= // handles nth(-last)-child, nth(-last)-of-type, and = (first|last)-of-type=0A= nth: function(nodes, formula, root, reverse, ofType) {=0A= if (nodes.length =3D=3D 0) return [];=0A= if (formula =3D=3D 'even') formula =3D '2n+0';=0A= if (formula =3D=3D 'odd') formula =3D '2n+1';=0A= var h =3D Selector.handlers, results =3D [], indexed =3D [], m;=0A= h.mark(nodes);=0A= for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A= if (!node.parentNode._countedByPrototype) {=0A= h.index(node.parentNode, reverse, ofType);=0A= indexed.push(node.parentNode);=0A= }=0A= }=0A= if (formula.match(/^\d+$/)) { // just a number=0A= formula =3D Number(formula);=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= if (node.nodeIndex =3D=3D formula) results.push(node);=0A= } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // = an+b=0A= if (m[1] =3D=3D "-") m[1] =3D -1;=0A= var a =3D m[1] ? Number(m[1]) : 1;=0A= var b =3D m[2] ? Number(m[2]) : 0;=0A= var indices =3D Selector.pseudos.getIndices(a, b, nodes.length);=0A= for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; = i++) {=0A= for (var j =3D 0; j < l; j++)=0A= if (node.nodeIndex =3D=3D indices[j]) results.push(node);=0A= }=0A= }=0A= h.unmark(nodes);=0A= h.unmark(indexed);=0A= return results;=0A= },=0A= =0A= 'empty': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A= // IE treats comments as element nodes=0A= if (node.tagName =3D=3D '!' || node.firstChild) continue;=0A= results.push(node);=0A= }=0A= return results;=0A= },=0A= =0A= 'not': function(nodes, selector, root) {=0A= var h =3D Selector.handlers, selectorType, m;=0A= var exclusions =3D new Selector(selector).findElements(root);=0A= h.mark(exclusions);=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!node._countedByPrototype) results.push(node);=0A= h.unmark(exclusions);=0A= return results;=0A= },=0A= =0A= 'enabled': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (!node.disabled && (!node.type || node.type !=3D=3D 'hidden'))=0A= results.push(node);=0A= return results;=0A= },=0A= =0A= 'disabled': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (node.disabled) results.push(node);=0A= return results;=0A= },=0A= =0A= 'checked': function(nodes, value, root) {=0A= for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A= if (node.checked) results.push(node);=0A= return results;=0A= }=0A= },=0A= =0A= operators: {=0A= '=3D': function(nv, v) { return nv =3D=3D v; },=0A= '!=3D': function(nv, v) { return nv !=3D v; },=0A= '^=3D': function(nv, v) { return nv =3D=3D v || nv && = nv.startsWith(v); },=0A= '$=3D': function(nv, v) { return nv =3D=3D v || nv && = nv.endsWith(v); },=0A= '*=3D': function(nv, v) { return nv =3D=3D v || nv && nv.include(v); = },=0A= '$=3D': function(nv, v) { return nv.endsWith(v); },=0A= '*=3D': function(nv, v) { return nv.include(v); },=0A= '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + = ' '); },=0A= '|=3D': function(nv, v) { return ('-' + (nv || "").toUpperCase() +=0A= '-').include('-' + (v || "").toUpperCase() + '-'); }=0A= },=0A= =0A= split: function(expression) {=0A= var expressions =3D [];=0A= expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, = function(m) {=0A= expressions.push(m[1].strip());=0A= });=0A= return expressions;=0A= },=0A= =0A= matchElements: function(elements, expression) {=0A= var matches =3D $$(expression), h =3D Selector.handlers;=0A= h.mark(matches);=0A= for (var i =3D 0, results =3D [], element; element =3D elements[i]; = i++)=0A= if (element._countedByPrototype) results.push(element);=0A= h.unmark(matches);=0A= return results;=0A= },=0A= =0A= findElement: function(elements, expression, index) {=0A= if (Object.isNumber(expression)) {=0A= index =3D expression; expression =3D false;=0A= }=0A= return Selector.matchElements(elements, expression || '*')[index || = 0];=0A= },=0A= =0A= findChildElements: function(element, expressions) {=0A= expressions =3D Selector.split(expressions.join(','));=0A= var results =3D [], h =3D Selector.handlers;=0A= for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) {=0A= selector =3D new Selector(expressions[i].strip());=0A= h.concat(results, selector.findElements(element));=0A= }=0A= return (l > 1) ? h.unique(results) : results;=0A= }=0A= });=0A= =0A= if (Prototype.Browser.IE) {=0A= Object.extend(Selector.handlers, {=0A= // IE returns comment nodes on getElementsByTagName("*").=0A= // Filter them out.=0A= concat: function(a, b) {=0A= for (var i =3D 0, node; node =3D b[i]; i++)=0A= if (node.tagName !=3D=3D "!") a.push(node);=0A= return a;=0A= },=0A= =0A= // IE improperly serializes _countedByPrototype in (inner|outer)HTML.=0A= unmark: function(nodes) {=0A= for (var i =3D 0, node; node =3D nodes[i]; i++)=0A= node.removeAttribute('_countedByPrototype');=0A= return nodes;=0A= }=0A= });=0A= }=0A= =0A= function $$() {=0A= return Selector.findChildElements(document, $A(arguments));=0A= }=0A= var Form =3D {=0A= reset: function(form) {=0A= $(form).reset();=0A= return form;=0A= },=0A= =0A= serializeElements: function(elements, options) {=0A= if (typeof options !=3D 'object') options =3D { hash: !!options };=0A= else if (Object.isUndefined(options.hash)) options.hash =3D true;=0A= var key, value, submitted =3D false, submit =3D options.submit;=0A= =0A= var data =3D elements.inject({ }, function(result, element) {=0A= if (!element.disabled && element.name) {=0A= key =3D element.name; value =3D $(element).getValue();=0A= if (value !=3D null && element.type !=3D 'file' && (element.type = !=3D 'submit' || (!submitted &&=0A= submit !=3D=3D false && (!submit || key =3D=3D submit) && = (submitted =3D true)))) {=0A= if (key in result) {=0A= // a key is already present; construct an array of values=0A= if (!Object.isArray(result[key])) result[key] =3D = [result[key]];=0A= result[key].push(value);=0A= }=0A= else result[key] =3D value;=0A= }=0A= }=0A= return result;=0A= });=0A= =0A= return options.hash ? data : Object.toQueryString(data);=0A= }=0A= };=0A= =0A= Form.Methods =3D {=0A= serialize: function(form, options) {=0A= return Form.serializeElements(Form.getElements(form), options);=0A= },=0A= =0A= getElements: function(form) {=0A= return $A($(form).getElementsByTagName('*')).inject([],=0A= function(elements, child) {=0A= if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A= elements.push(Element.extend(child));=0A= return elements;=0A= }=0A= );=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name) return $A(inputs).map(Element.extend);=0A= =0A= for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i = < length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) || (name && input.name = !=3D name))=0A= continue;=0A= matchingInputs.push(Element.extend(input));=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= form =3D $(form);=0A= Form.getElements(form).invoke('disable');=0A= return form;=0A= },=0A= =0A= enable: function(form) {=0A= form =3D $(form);=0A= Form.getElements(form).invoke('enable');=0A= return form;=0A= },=0A= =0A= findFirstElement: function(form) {=0A= var elements =3D $(form).getElements().findAll(function(element) {=0A= return 'hidden' !=3D element.type && !element.disabled;=0A= });=0A= var firstByIndex =3D elements.findAll(function(element) {=0A= return element.hasAttribute('tabIndex') && element.tabIndex >=3D 0;=0A= }).sortBy(function(element) { return element.tabIndex }).first();=0A= =0A= return firstByIndex ? firstByIndex : elements.find(function(element) = {=0A= return ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= form =3D $(form);=0A= form.findFirstElement().activate();=0A= return form;=0A= },=0A= =0A= request: function(form, options) {=0A= form =3D $(form), options =3D Object.clone(options || { });=0A= =0A= var params =3D options.parameters, action =3D = form.readAttribute('action') || '';=0A= if (action.blank()) action =3D window.location.href;=0A= options.parameters =3D form.serialize(true);=0A= =0A= if (params) {=0A= if (Object.isString(params)) params =3D params.toQueryParams();=0A= Object.extend(options.parameters, params);=0A= }=0A= =0A= if (form.hasAttribute('method') && !options.method)=0A= options.method =3D form.method;=0A= =0A= return new Ajax.Request(action, options);=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element =3D {=0A= focus: function(element) {=0A= $(element).focus();=0A= return element;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= return element;=0A= }=0A= };=0A= =0A= Form.Element.Methods =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= if (!element.disabled && element.name) {=0A= var value =3D element.getValue();=0A= if (value !=3D undefined) {=0A= var pair =3D { };=0A= pair[element.name] =3D value;=0A= return Object.toQueryString(pair);=0A= }=0A= }=0A= return '';=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= return Form.Element.Serializers[method](element);=0A= },=0A= =0A= setValue: function(element, value) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= Form.Element.Serializers[method](element, value);=0A= return element;=0A= },=0A= =0A= clear: function(element) {=0A= $(element).value =3D '';=0A= return element;=0A= },=0A= =0A= present: function(element) {=0A= return $(element).value !=3D '';=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= try {=0A= element.focus();=0A= if (element.select && (element.tagName.toLowerCase() !=3D 'input' = ||=0A= !['button', 'reset', 'submit'].include(element.type)))=0A= element.select();=0A= } catch (e) { }=0A= return element;=0A= },=0A= =0A= disable: function(element) {=0A= element =3D $(element);=0A= element.disabled =3D true;=0A= return element;=0A= },=0A= =0A= enable: function(element) {=0A= element =3D $(element);=0A= element.disabled =3D false;=0A= return element;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Field =3D Form.Element;=0A= var $F =3D Form.Element.Methods.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element, value) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element, value);=0A= default:=0A= return Form.Element.Serializers.textarea(element, value);=0A= }=0A= },=0A= =0A= inputSelector: function(element, value) {=0A= if (Object.isUndefined(value)) return element.checked ? = element.value : null;=0A= else element.checked =3D !!value;=0A= },=0A= =0A= textarea: function(element, value) {=0A= if (Object.isUndefined(value)) return element.value;=0A= else element.value =3D value;=0A= },=0A= =0A= select: function(element, value) {=0A= if (Object.isUndefined(value))=0A= return this[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= else {=0A= var opt, currentValue, single =3D !Object.isArray(value);=0A= for (var i =3D 0, length =3D element.length; i < length; i++) {=0A= opt =3D element.options[i];=0A= currentValue =3D this.optionValue(opt);=0A= if (single) {=0A= if (currentValue =3D=3D value) {=0A= opt.selected =3D true;=0A= return;=0A= }=0A= }=0A= else opt.selected =3D value.include(currentValue);=0A= }=0A= }=0A= },=0A= =0A= selectOne: function(element) {=0A= var index =3D element.selectedIndex;=0A= return index >=3D 0 ? this.optionValue(element.options[index]) : = null;=0A= },=0A= =0A= selectMany: function(element) {=0A= var values, length =3D element.length;=0A= if (!length) return null;=0A= =0A= for (var i =3D 0, values =3D []; i < length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) values.push(this.optionValue(opt));=0A= }=0A= return values;=0A= },=0A= =0A= optionValue: function(opt) {=0A= // extend element because hasAttribute may not be native=0A= return Element.extend(opt).hasAttribute('value') ? opt.value : = opt.text;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D Class.create(PeriodicalExecuter, {=0A= initialize: function($super, element, frequency, callback) {=0A= $super(callback, frequency);=0A= this.element =3D $(element);=0A= this.lastValue =3D this.getValue();=0A= },=0A= =0A= execute: function() {=0A= var value =3D this.getValue();=0A= if (Object.isString(this.lastValue) && Object.isString(value) ?=0A= this.lastValue !=3D value : String(this.lastValue) !=3D = String(value)) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= });=0A= =0A= Form.Element.Observer =3D Class.create(Abstract.TimedObserver, {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create(Abstract.TimedObserver, {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D Class.create({=0A= initialize: function(element, callback) {=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A= this.registerFormCallbacks();=0A= else=0A= this.registerCallback(this.element);=0A= },=0A= =0A= onElementEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= },=0A= =0A= registerFormCallbacks: function() {=0A= Form.getElements(this.element).each(this.registerCallback, this);=0A= },=0A= =0A= registerCallback: function(element) {=0A= if (element.type) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= Event.observe(element, 'click', = this.onElementEvent.bind(this));=0A= break;=0A= default:=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= });=0A= =0A= Form.Element.EventObserver =3D Class.create(Abstract.EventObserver, {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create(Abstract.EventObserver, {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) var Event =3D { };=0A= =0A= Object.extend(Event, {=0A= KEY_BACKSPACE: 8,=0A= KEY_TAB: 9,=0A= KEY_RETURN: 13,=0A= KEY_ESC: 27,=0A= KEY_LEFT: 37,=0A= KEY_UP: 38,=0A= KEY_RIGHT: 39,=0A= KEY_DOWN: 40,=0A= KEY_DELETE: 46,=0A= KEY_HOME: 36,=0A= KEY_END: 35,=0A= KEY_PAGEUP: 33,=0A= KEY_PAGEDOWN: 34,=0A= KEY_INSERT: 45,=0A= =0A= cache: { },=0A= =0A= relatedTarget: function(event) {=0A= var element;=0A= switch(event.type) {=0A= case 'mouseover': element =3D event.fromElement; break;=0A= case 'mouseout': element =3D event.toElement; break;=0A= default: return null;=0A= }=0A= return Element.extend(element);=0A= }=0A= });=0A= =0A= Event.Methods =3D (function() {=0A= var isButton;=0A= =0A= if (Prototype.Browser.IE) {=0A= var buttonMap =3D { 0: 1, 1: 4, 2: 2 };=0A= isButton =3D function(event, code) {=0A= return event.button =3D=3D buttonMap[code];=0A= };=0A= =0A= } else if (Prototype.Browser.WebKit) {=0A= isButton =3D function(event, code) {=0A= switch (code) {=0A= case 0: return event.which =3D=3D 1 && !event.metaKey;=0A= case 1: return event.which =3D=3D 1 && event.metaKey;=0A= default: return false;=0A= }=0A= };=0A= =0A= } else {=0A= isButton =3D function(event, code) {=0A= return event.which ? (event.which =3D=3D=3D code + 1) : = (event.button =3D=3D=3D code);=0A= };=0A= }=0A= =0A= return {=0A= isLeftClick: function(event) { return isButton(event, 0) },=0A= isMiddleClick: function(event) { return isButton(event, 1) },=0A= isRightClick: function(event) { return isButton(event, 2) },=0A= =0A= element: function(event) {=0A= event =3D Event.extend(event);=0A= =0A= var node =3D event.target,=0A= type =3D event.type,=0A= currentTarget =3D event.currentTarget;=0A= =0A= if (currentTarget && currentTarget.tagName) {=0A= // Firefox screws up the "click" event when moving between radio = buttons=0A= // via arrow keys. It also screws up the "load" and "error" = events on images,=0A= // reporting the document as the target instead of the original = image.=0A= if (type =3D=3D=3D 'load' || type =3D=3D=3D 'error' ||=0A= (type =3D=3D=3D 'click' && currentTarget.tagName.toLowerCase() = =3D=3D=3D 'input'=0A= && currentTarget.type =3D=3D=3D 'radio'))=0A= node =3D currentTarget;=0A= }=0A= if (node.nodeType =3D=3D Node.TEXT_NODE) node =3D node.parentNode;=0A= return Element.extend(node);=0A= },=0A= =0A= findElement: function(event, expression) {=0A= var element =3D Event.element(event);=0A= if (!expression) return element;=0A= var elements =3D [element].concat(element.ancestors());=0A= return Selector.findElement(elements, expression, 0);=0A= },=0A= =0A= pointer: function(event) {=0A= var docElement =3D document.documentElement,=0A= body =3D document.body || { scrollLeft: 0, scrollTop: 0 };=0A= return {=0A= x: event.pageX || (event.clientX +=0A= (docElement.scrollLeft || body.scrollLeft) -=0A= (docElement.clientLeft || 0)),=0A= y: event.pageY || (event.clientY +=0A= (docElement.scrollTop || body.scrollTop) -=0A= (docElement.clientTop || 0))=0A= };=0A= },=0A= =0A= pointerX: function(event) { return Event.pointer(event).x },=0A= pointerY: function(event) { return Event.pointer(event).y },=0A= =0A= stop: function(event) {=0A= Event.extend(event);=0A= event.preventDefault();=0A= event.stopPropagation();=0A= event.stopped =3D true;=0A= }=0A= };=0A= })();=0A= =0A= Event.extend =3D (function() {=0A= var methods =3D Object.keys(Event.Methods).inject({ }, function(m, = name) {=0A= m[name] =3D Event.Methods[name].methodize();=0A= return m;=0A= });=0A= =0A= if (Prototype.Browser.IE) {=0A= Object.extend(methods, {=0A= stopPropagation: function() { this.cancelBubble =3D true },=0A= preventDefault: function() { this.returnValue =3D false },=0A= inspect: function() { return "[object Event]" }=0A= });=0A= =0A= return function(event) {=0A= if (!event) return false;=0A= if (event._extendedByPrototype) return event;=0A= =0A= event._extendedByPrototype =3D Prototype.emptyFunction;=0A= var pointer =3D Event.pointer(event);=0A= Object.extend(event, {=0A= target: event.srcElement,=0A= relatedTarget: Event.relatedTarget(event),=0A= pageX: pointer.x,=0A= pageY: pointer.y=0A= });=0A= return Object.extend(event, methods);=0A= };=0A= =0A= } else {=0A= Event.prototype =3D Event.prototype || = document.createEvent("HTMLEvents")['__proto__'];=0A= Object.extend(Event.prototype, methods);=0A= return Prototype.K;=0A= }=0A= })();=0A= =0A= Object.extend(Event, (function() {=0A= var cache =3D Event.cache;=0A= =0A= function getEventID(element) {=0A= if (element._prototypeEventID) return element._prototypeEventID[0];=0A= arguments.callee.id =3D arguments.callee.id || 1;=0A= return element._prototypeEventID =3D [++arguments.callee.id];=0A= }=0A= =0A= function getDOMEventName(eventName) {=0A= if (eventName && eventName.include(':')) return "dataavailable";=0A= return eventName;=0A= }=0A= =0A= function getCacheForID(id) {=0A= return cache[id] =3D cache[id] || { };=0A= }=0A= =0A= function getWrappersForEventName(id, eventName) {=0A= var c =3D getCacheForID(id);=0A= return c[eventName] =3D c[eventName] || [];=0A= }=0A= =0A= function createWrapper(element, eventName, handler) {=0A= var id =3D getEventID(element);=0A= var c =3D getWrappersForEventName(id, eventName);=0A= if (c.pluck("handler").include(handler)) return false;=0A= =0A= var wrapper =3D function(event) {=0A= if (!Event || !Event.extend ||=0A= (event.eventName && event.eventName !=3D eventName))=0A= return false;=0A= =0A= Event.extend(event);=0A= handler.call(element, event);=0A= };=0A= =0A= wrapper.handler =3D handler;=0A= c.push(wrapper);=0A= return wrapper;=0A= }=0A= =0A= function findWrapper(id, eventName, handler) {=0A= var c =3D getWrappersForEventName(id, eventName);=0A= return c.find(function(wrapper) { return wrapper.handler =3D=3D = handler });=0A= }=0A= =0A= function destroyWrapper(id, eventName, handler) {=0A= var c =3D getCacheForID(id);=0A= if (!c[eventName]) return false;=0A= c[eventName] =3D c[eventName].without(findWrapper(id, eventName, = handler));=0A= }=0A= =0A= function destroyCache() {=0A= for (var id in cache)=0A= for (var eventName in cache[id])=0A= cache[id][eventName] =3D null;=0A= }=0A= =0A= =0A= // Internet Explorer needs to remove event handlers on page unload=0A= // in order to avoid memory leaks.=0A= if (window.attachEvent) {=0A= window.attachEvent("onunload", destroyCache);=0A= }=0A= =0A= // Safari has a dummy event handler on page unload so that it won't=0A= // use its bfcache. Safari <=3D 3.1 has an issue with restoring the = "document"=0A= // object when page is returned to via the back button using its = bfcache.=0A= if (Prototype.Browser.WebKit) {=0A= window.addEventListener('unload', Prototype.emptyFunction, false);=0A= }=0A= =0A= return {=0A= observe: function(element, eventName, handler) {=0A= element =3D $(element);=0A= var name =3D getDOMEventName(eventName);=0A= =0A= var wrapper =3D createWrapper(element, eventName, handler);=0A= if (!wrapper) return element;=0A= =0A= if (element.addEventListener) {=0A= element.addEventListener(name, wrapper, false);=0A= } else {=0A= element.attachEvent("on" + name, wrapper);=0A= }=0A= =0A= return element;=0A= },=0A= =0A= stopObserving: function(element, eventName, handler) {=0A= element =3D $(element);=0A= var id =3D getEventID(element), name =3D = getDOMEventName(eventName);=0A= =0A= if (!handler && eventName) {=0A= getWrappersForEventName(id, eventName).each(function(wrapper) {=0A= element.stopObserving(eventName, wrapper.handler);=0A= });=0A= return element;=0A= =0A= } else if (!eventName) {=0A= Object.keys(getCacheForID(id)).each(function(eventName) {=0A= element.stopObserving(eventName);=0A= });=0A= return element;=0A= }=0A= =0A= var wrapper =3D findWrapper(id, eventName, handler);=0A= if (!wrapper) return element;=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, wrapper, false);=0A= } else {=0A= element.detachEvent("on" + name, wrapper);=0A= }=0A= =0A= destroyWrapper(id, eventName, handler);=0A= =0A= return element;=0A= },=0A= =0A= fire: function(element, eventName, memo) {=0A= element =3D $(element);=0A= if (element =3D=3D document && document.createEvent && = !element.dispatchEvent)=0A= element =3D document.documentElement;=0A= =0A= var event;=0A= if (document.createEvent) {=0A= event =3D document.createEvent("HTMLEvents");=0A= event.initEvent("dataavailable", true, true);=0A= } else {=0A= event =3D document.createEventObject();=0A= event.eventType =3D "ondataavailable";=0A= }=0A= =0A= event.eventName =3D eventName;=0A= event.memo =3D memo || { };=0A= =0A= if (document.createEvent) {=0A= element.dispatchEvent(event);=0A= } else {=0A= element.fireEvent(event.eventType, event);=0A= }=0A= =0A= return Event.extend(event);=0A= }=0A= };=0A= })());=0A= =0A= Object.extend(Event, Event.Methods);=0A= =0A= Element.addMethods({=0A= fire: Event.fire,=0A= observe: Event.observe,=0A= stopObserving: Event.stopObserving=0A= });=0A= =0A= Object.extend(document, {=0A= fire: Element.Methods.fire.methodize(),=0A= observe: Element.Methods.observe.methodize(),=0A= stopObserving: Element.Methods.stopObserving.methodize(),=0A= loaded: false=0A= });=0A= =0A= (function() {=0A= /* Support for the DOMContentLoaded event is based on work by Dan Webb,=0A= Matthias Miller, Dean Edwards and John Resig. */=0A= =0A= var timer;=0A= =0A= function fireContentLoadedEvent() {=0A= if (document.loaded) return;=0A= if (timer) window.clearInterval(timer);=0A= document.fire("dom:loaded");=0A= document.loaded =3D true;=0A= }=0A= =0A= if (document.addEventListener) {=0A= if (Prototype.Browser.WebKit) {=0A= timer =3D window.setInterval(function() {=0A= if (/loaded|complete/.test(document.readyState))=0A= fireContentLoadedEvent();=0A= }, 0);=0A= =0A= Event.observe(window, "load", fireContentLoadedEvent);=0A= =0A= } else {=0A= document.addEventListener("DOMContentLoaded",=0A= fireContentLoadedEvent, false);=0A= }=0A= =0A= } else {=0A= document.write("