From: Subject: Frederikshavn Marina - frederikshavn marina Date: Sat, 27 Aug 2011 18:20:26 +0200 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CC64E5.FE3694A0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6109 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.arkinord.dk/Frederikshavn_Marina.asp Frederikshavn Marina - frederikshavn = marina
 
 
<= /TR>

Frederikshavn=20 Marina,
EN = 5-=C5RS=20 VISION

S=F8sportshavnen i = Frederikshavn, en=20 selv-ejende instutution, har l=E6nge = =F8nsket sig et=20 nyt sejler/klubhus. I forbindelse med=20 dis-kussionen om et nyt klubhus er der = fra flere=20 sider p=E5peget et behov for en = rede-g=F8relse for=20 s=F8sportshavnens fremtidige udvikling.=20 Byggeudvalget har henvendt sig til=20 Arkitektfirmaet J=F8rgen & Lasse = Andersen for=20 at f=E5 visualiseret ideerne og f=E5 = startet en=20 debat mellem = medlemmerne.

Udgangspunktet er havnens unikke=20 belig-genhed direkte ud til Kattegat. De = over-ordnede m=E5l for en fremtidig havn = er at=20 g=F8re havnen mere attraktiv for = g=E6ster fra s=E5vel=20 s=F8- som landside. En af ambition-erne = er at g=F8re=20 adgangen fra landsiden mere synlig og at = knytte=20 havnen t=E6ttere til = bymilj=F8et.

De = overordnede=20 elementer i fremtids-visionen udg=F8res = af:
Et=20 nyt sejler/klubhus, en forbedring af de=20 best=E5ende caf=E9- og = restaurant-forhold, nye=20 parkeringsomr=E5der, en afsk=E6rmende=20 tr=E6-beplantning, en forbedring af=20 adgangs-forholdene og en havnerelateret=20 service-bygning.

 

=

At bygge er at = investere=20 i livet. At bygge er at samarbejde. At = bygge er=20 i stor udstr=E6kning en = kommunikationsopgave. At=20 bygge er, at placere fysiske elementer i = tid og=20 rum med anvendelse af en unik = kombination af=20 mandskab, materialer og metoder =96 for = at opn=E5 et=20 bestemt arkitektonisk udtryk og en = bestemt=20 funktion.=20 =

=
 
 
------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/topmenu.gif R0lGODlhHABHAMQAAJWVlSAgIHV1dVVVVUtLS0BAQDU1NQsLC4CAgIuLiysrKxUVFWBgYGtra/// /wAAAKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABHAAAF/6AjjmRpnmiqOlDrvnAsz3Rt33iu73zv/8CgcJcgQACN1sDYazyQTwgh4HNCAVJq82nN Vh+NAbhh0PKcj7TavEM23nABELAkyIGDg/qhwPYABwUIAAAMBwNfCS8FbDpdLlNfcG9lX3tpjTlu kw13PJuTCJaXmTigcUOpAwkAZUw+CmAGDwEPiD0CDwyABhAGCl9QiJE9CLazCQgLvT4FaQUQBwei PwJ3DIpAAkktAtDNmFJ8PrkDhrUFfmdRtbfBEAHfP05vAQZvnjtopD6n+EAEFqRRQA2cAgIFFhzI xiOBLRcAFsjTFwVSqRtOCvoC5mNBAAEAEohxxwOBHjUT/ynUyfeJ25AuH4NYAQBG5hOaLiU5GfBv yyVa/Tj1TEW0qNGjSJMqXTokBAA7 ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/bolig.gif R0lGODlhHABIAMQAANKgYy0iFWlQMXhbOTwuHLSJVaV9Tks5Ix4XDlpEKsOUXA8LB4dnQJZyRwAA AP///+GragAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF5+AjjmRpnmiqPlDrvnAsz3Rt33iu73zv/8CgcEgsGo/IpBIIOEAGgQABSHAYBIuAY+Ar OBoQQQBCcPYaDsAzER73DI7C6zD1IQIGgGKw/RUQDoEObEwDAgNyPwANjI0NiTxogoJuPIuOjAxF YpuVQpw9l44HnjqSkw6lOaKOBkIAap+ADgSQPQm0AgkICwo+Cn0tAAiEkWkvoMa2dD93eXvBPQUL k8U+AIYCrkGPEA0CYD9VDgeCmm9bfAIABHXGsF9tPmjwYMk7aIxbDaTzqIGqcLBqtG2JwYMIEypc yLChw4cQI+oIAQA7 ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/kultur.gif R0lGODlhHABIAMQAACstIMnSlZ6ldVZaQGRpSw4PC3N4VbrDi4GHYEhLNR0eFay0gDk8K4+Wa/// /wAAANfhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF3qAjjmRpnmiqOlDrvnAsz3Rt33iu73zv/8CgcEgsGgUNl2DwGzweAAjhwfAJHgZEAfAY BHyNx5drAIbHTPOj0QAk2ALwc/6M9gLsPFxOh37veg1aaUMEdkMDhzt4egYFhDthfQB/PIx5cT8H BEVnRGGBDZk8kpNyoaORYkSbMIJFhrCKQbGAgQmzOaV0uTiXeqk6v6Jqk5WLgYOyRYk+w46QOrt1 x8KBwTsH1a09bZUEWz4HWwECXAnVOgsFCg8KSUHrD9jIDY4Ae919dc6hxEYAAwocSLCgwYMIE/YI AQA7 ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/erhverv.gif R0lGODlhHABIAMQAAMuTiCsfHWVJRJ9za3RUTlc/Og4KCryIf0g0MToqJ4JeWK5+dR0VE5FpYf// /wAAANmdkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF/6AjjmRpnmiqOlDrvnAsz3Rt33iu73zv94CfrGFAKIQuQIHxKB6RkIEg0BRAIQeBISBc EKiPxJN3ACcIB2HjnL5GG65B4Vd4PLiCsG/wICi2DwVBPQ0PQVQEaoYQAXOKDQ0BCJADPoV2mHc+ AJCdlD5ZEJwtBFaEhoVBU5aoi6unnK5cpw0ED5AIszyXmZpAnp2VQG4tREZXSkxOV1JUBqZIWVtd X3ZioGZoamzIwJALrL2+PJyQfZ9CALdu6nDpnecNwrvi4zvlwPM9A+5Rjj11NOVJsKfPHyqCWB3q o+jQP1aQJKGjJ07XPW/yQFkZBaGUwlQQXtGLpcqijlQgRRvuKFTrVoNc4XqZzIHPkz5iOHPq3Mmz p08fIQAAOw== ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/offentlig.gif R0lGODlhHABIAMQAABskJD9VVElhYWSFhRIYGG2SkSQxMHaenTZJSAkMDC09PFJtbX+qqVt5ef// /wAAAIi2tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF/6AjjmRpnmiqOlDrvnAsz3Rt33iuw4wCCQCAYQczPAaBBOAhILYKjwYkAIAYfM7Gg/FD TKvOwaPwUgydEAJgwDgImGhIgfCoP7xxCEMQEJDjDA2Cgw1/RFp2dmBEgYSCA3kwDQuRL1SVLpeY X2iNhAqLO4iJD6E6c44NkFlbm1qpq4ekdaY5r46xoq2YBwGbeqmFaKOJtTkMyG1JZ4BJBE3NCc+R BwTPyVzDs6Wdwbm/RL3ALXzaga2asudc6brrnKwNb4Kg2rPGN56E37ata5FakEUBuIXBwDy3mDyy RwqfDX2D+OEI9CsghH8ICx6ME9CglIyCFKpiWKwbrErIMDQFoPPAgCEnCFoGQEAgwQE0B+C0YEAA jzpLDmtoeWkmjho2bnQ6KZAgkc9OfAJIBEe1qtUQADs= ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/design.gif R0lGODlhHABIAMQAANbGFi4qBXpxDWtjC0xHCKibEreqEw8OAh8cA8a4FT05BlxVCol/DpmNEP// /wAAAOXUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF/6AjjmRpnmiqOlDrvnAsz3Rt33iu73zv/8CgcEgsEgGNpLJh8DUe0Ogj8ANYAYnBQREE aBECoPcADiYQ4Cvg95RCqT3kMlkwigkQQSDA/SkeBVoBD2E9Bg8NEANUCng9T2sCC4pwPAUPTS4E fT0IAQVYAoQ/BghSk2ICAwKZPnJzrTttbpU7r0t1PwIJAAQBA0B/DQRToz2XDAAHeJtOD0ijiz6H AsQJpY49C1CTBwexlrkMCXY/WRBILarO0GvSj8+QlOzy7zxPDaJJvs5uU65JBKCho+uAFAVr4hxY YMAKgwOF7j0g52JBLR3yXNiThWgJP3j+Lua4pSRXuZMoUwyqXMmypcuXMGPaCAEAOw== ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/byplan.gif R0lGODlhHABIAMQAALqpwSgkKWphbpKFmF1UYQ0MDkI8RTUwN3dtfBsYHKyds5+RplBIU4V5iv// /wAAAMe1zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF+aAjjmRpnmiqOlDrvnAsz3Rt33iu73zv/8CgcEgUAhrIZGPhazye0EfgB6gCFITCIQjI JgTAbuEbVCS+VsDPGX1Oe0clclBEgIMDRuKx9SkEAVAIPwMPBQYITmpNfAIKikAIB24PCkJ/gQ8M RAsJBUUEb0OhoKI7cUoGpjpsbas5qEp0RUALBwF3YQUFgbmMTKpBkKRATkiqc4xtUj6xSbM8DQaL QgO7vmEGUokN0D4CUa+w2gHc3jrWBdhN07RLEA0EDUCTD9pPgz2FAuAEAAd9oj2o8mAeMYEEDYq7 YcyJAGkLbbQK10xOMloYM2rcyLGjx48gQ/YIAQA7 ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/arkinord.gif R0lGODlhHABIAMQAACAgIHV1dVVVVUBAQAsLC0tLS4uLixUVFSsrK4CAgGBgYDU1NZWVlWtra/// /wAAAKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAA HABIAAAF/6AjjmRpnmiqOlDrvnAsz3Rt37jMCEUR5DMB4UF8IBjAF4MwSDAYCoIg6Wo8DK8BgNqy Il2FLdfaKJcXYqq1WEwnGeb4j9sKNFyBAR0yIG4LRnQBDwJRAA8DX2oPSIdTe14QAHp7EGQNAAtl c4tsfnRwcZuVLU+kLQUHRAgJlX0IBQMHBFhcBoQuDAeUi4oQYXRWrS4LCHsHAAEMBgK4dAlDRbyg PD6VoaLDnZ5ub0/LBQTG1+EHj6Dl53QGB+bfvklr3KCio6f3+PlK9Q3a8Z6fuGCTsw6egQLBACgK 1y2HAQIKAxxaAA8INFUH7pCC9oATvQZCANjbxqYhjoFmPFFSsYNnWpI+D/4E4jKoEEREFXFEclRp p8tFZTKN/AfQ5A2UQ0kpUCdI1kxbAg4RUbBnEIEFCiIFMyLAgFY6ChD4uXKKmdSfzwYs0Me2rVsY IQAAOw== ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/pictures_ed/FrhavnMarina14-463-85.jpg /9j/4AAQSkZJRgABAgEBLAEsAAD/4Q1sRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAbAAAAcgEyAAIAAAAUAAAAjYdp AAQAAAABAAAApAAAANAAAAEsAAAAAQAAASwAAAABQWRvYmUgUGhvdG9zaG9wIENTIFdpbmRvd3MA MjAwODowNTozMSAyMzoyMjoyOQAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABz6ADAAQAAAAB AAAAVQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAw2AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAQBIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAHQCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A2KuhdRLGu32l0h25tD58dv6R7m7P5CVvTcmtv2YMsvynHcGg 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 OEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoA AAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD///////////////////// ////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////// //////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQC AAAAAAAEAAAAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJ TQQaAAAAAANVAAAABgAAAAAAAAAAAAAAVQAAAc8AAAAQAEkAawBrAGUALQBuAGEAdgBuAGcAaQB2 AGUAdAAtADIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAc8AAABVAAAAAAAAAAAA AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNP YmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAA QnRvbWxvbmcAAABVAAAAAFJnaHRsb25nAAABzwAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAA AAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3Jp Z2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApF U2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAVQAAAABSZ2h0bG9uZwAAAc8A AAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZh bHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAA AQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVy dEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVu dW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAAps ZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRs b25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAACOEJJTQQMAAAA AAxSAAAAAQAAAKAAAAAdAAAB4AAANmAAAAw2ABgAAf/Y/+AAEEpGSUYAAQIBAEgASAAA/+0ADEFk b2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMY EQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4O FBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAdAKADASIA AhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAA AAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGx QiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSV xNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMh MRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0 ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIR AxEAPwDYq6F1Esa7faXSHbm0Pnx2/pHubs/kJW9Nya2/Zgyy/KcdwaDXRbsJcfU27ffWzbs/mf8A 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 A6gGbhPqkn9NB2x9pDa/W2f9bVq71CyrbpZJ2G2S2Y/Sfze33fR+ijqO6TR10/6P4Nx3WfrJY3Z9 pxcKvQMGHSXuDZaYFmUX07me9n9GVc1XZYaMjNOdax0F97g5zZI9ev0sVraa9+xmyvYz0vz0DJGV 6c4jqRES0tBJ0/PfuG1v9Wv/AKaz7Tcc39K2puZ6VmwvcXP27fzvQZXTs/47/rSQ4r2Qar+x1Mph rqfvfU1rNay+NGxte3ba5zGu3ez2O/wirnJrbX6rX5P2esOj0sctrft+m9uY8Pw/QY36VjLPZ+es i0jbaLhR9o2fpHMOv0m/zrah/wBQ9As+2fZ8z0/V+ye31Nvqels32fS3+3Z63/gqQx2dZAeRWyy0 NIE/Q/8AoLrnrPqVutwsVtnpuDXvfdW5wcf3Met/qP8Ab9LahX9Y6jjOfXbVXR6gD2upkODSIBb7 r6fpf8WszL+3/Z6PtxH7P3M9M2hvofQ/Q+sMc/6H6PqLY6c7pozbRbXhuvO37M6l9jcEM2t2+qzF qfW/9Ju3/aLGX/8Acn9F6Sfw447kSHmt4py2BifL+xxMm19rnC+yx9hMWNuOvPtbse93tf8A1GI/ T+pX9Nj0WMG0lzQWD6Toa2x+zZ67mbNtPrerX/wau4Bz/Wyh1QXmQ8biaBW2rc71X1syA7Itp/mv TrxbKn/Z/wDC+ijdPGH6eSeluoLwKQW5QqDS3b+me59znXM/SetsqxWPZ6vo/pv5pOEo1sPpS0xm TfEfrdtan6xUsxhi5GBj5LHD9K94O57gHbLTu9Rn+v6NVrMrpNzqyMJrC5v6ZwcWe8nX0G0+zY1v +m9R6h1Ys/aD/QFG2BrgE+hu1+gLm/vf6D9X/wBGq7vspE1eo0+wNbbsdI2He7fT6e38z02bP+Oe nDhO1jyv/uVkjOO/DKv3gP8Aun//2ThCSU0EIQAAAAAAUwAAAAEBAAAADwBBAGQAbwBiAGUAIABQ AGgAbwB0AG8AcwBoAG8AcAAAABIAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMA AAABADhCSU0EBgAAAAAABwAIAAAAAQEA/+EX+2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8A PD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6 eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nWE1QIHRvb2xraXQgMy4w LTI4LCBmcmFtZXdvcmsgMS42Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9y Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNv bS9pWC8xLjAvJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDo4MzQzNjQzZS0y ZjU3LTExZGQtYjQ2ZC04ZmZiMTEzMjA4MmYnCiAgeG1sbnM6ZXhpZj0naHR0cDovL25zLmFkb2Jl LmNvbS9leGlmLzEuMC8nPgogIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgog IDxleGlmOlBpeGVsWERpbWVuc2lvbj40NjM8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogIDxleGlm OlBpeGVsWURpbWVuc2lvbj44NTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiA8L3JkZjpEZXNjcmlw dGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVpZDo4MzQzNjQzZS0yZjU3LTEx ZGQtYjQ2ZC04ZmZiMTEzMjA4MmYnCiAgeG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bk Zi8xLjMvJz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0 PSd1dWlkOjgzNDM2NDNlLTJmNTctMTFkZC1iNDZkLThmZmIxMTMyMDgyZicKICB4bWxuczpwaG90 b3Nob3A9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8nPgogIDxwaG90b3Nob3A6 SGlzdG9yeT48L3Bob3Rvc2hvcDpIaXN0b3J5PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ODM0MzY0M2UtMmY1Ny0xMWRkLWI0NmQtOGZmYjEx MzIwODJmJwogIHhtbG5zOnRpZmY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvJz4KICA8 dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogIDx0aWZmOlhSZXNvbHV0aW9u PjMwMC8xPC90aWZmOlhSZXNvbHV0aW9uPgogIDx0aWZmOllSZXNvbHV0aW9uPjMwMC8xPC90aWZm OllSZXNvbHV0aW9uPgogIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVu aXQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0ndXVp ZDo4MzQzNjQzZS0yZjU3LTExZGQtYjQ2ZC04ZmZiMTEzMjA4MmYnCiAgeG1sbnM6eGFwPSdodHRw Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eGFwOkNyZWF0ZURhdGU+MjAwOC0wNS0zMVQy MzoyMjoyOSswMTowMDwveGFwOkNyZWF0ZURhdGU+CiAgPHhhcDpNb2RpZnlEYXRlPjIwMDgtMDUt MzFUMjM6MjI6MjkrMDE6MDA8L3hhcDpNb2RpZnlEYXRlPgogIDx4YXA6TWV0YWRhdGFEYXRlPjIw MDgtMDUtMzFUMjM6MjI6MjkrMDE6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgPHhhcDpDcmVhdG9y VG9vbD5BZG9iZSBQaG90b3Nob3AgQ1MgV2luZG93czwveGFwOkNyZWF0b3JUb29sPgogPC9yZGY6 RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6ODM0MzY0M2Ut MmY1Ny0xMWRkLWI0NmQtOGZmYjExMzIwODJmJwogIHhtbG5zOnhhcE1NPSdodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvbW0vJz4KICA8eGFwTU06RG9jdW1lbnRJRD5hZG9iZTpkb2NpZDpwaG90 b3Nob3A6ODM0MzY0M2QtMmY1Ny0xMWRkLWI0NmQtOGZmYjExMzIwODJmPC94YXBNTTpEb2N1bWVu dElEPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1 aWQ6ODM0MzY0M2UtMmY1Ny0xMWRkLWI0NmQtOGZmYjExMzIwODJmJwogIHhtbG5zOmRjPSdodHRw Oi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyc+CiAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9k Yzpmb3JtYXQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCjwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQg ZW5kPSd3Jz8+/+IMWElDQ19QUk9GSUxFAAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJ AAYAMQAAYWNzcE1TRlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwA AAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RS QwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1Q YWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAS c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAA AAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNj AAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAA AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA AAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAA AAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDP FAAD7cwABBMLAANcngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAA AAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCy ALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4 AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oD ZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATT BOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowG nQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiq CL4I0gjnCPsJEAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsL Igs5C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPUR ExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSL FK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUY ihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzM HPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUh oSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3 JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDks biyiLNctDC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5 BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVH e0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9J T5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX 4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2Cq YPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFq SGqfavdrT2una/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQU dHB0zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+ wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZ if6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSV X5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFH obaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1Erbiu La6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsu u6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJ Osm5yjjKt8s2y7bMNcy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc 1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe 9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf///+4ADkFkb2JlAGRAAAAAAf/bAIQA AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD AwMDAwMDAwEBAQEBAQEBAQEBAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMD/8AAEQgAVQHPAwERAAIRAQMRAf/dAAQAOv/EAaIAAAAGAgMBAAAAAAAA AAAAAAcIBgUECQMKAgEACwEAAAYDAQEBAAAAAAAAAAAABgUEAwcCCAEJAAoLEAACAQMEAQMDAgMD AwIGCXUBAgMEEQUSBiEHEyIACDEUQTIjFQlRQhZhJDMXUnGBGGKRJUOhsfAmNHIKGcHRNSfhUzaC 8ZKiRFRzRUY3R2MoVVZXGrLC0uLyZIN0k4Rlo7PD0+MpOGbzdSo5OkhJSlhZWmdoaWp2d3h5eoWG h4iJipSVlpeYmZqkpaanqKmqtLW2t7i5usTFxsfIycrU1dbX2Nna5OXm5+jp6vT19vf4+foRAAIB AwIEBAMFBAQEBgYFbQECAxEEIRIFMQYAIhNBUQcyYRRxCEKBI5EVUqFiFjMJsSTB0UNy8BfhgjQl klMYY0TxorImNRlUNkVkJwpzg5NGdMLS4vJVZXVWN4SFo7PD0+PzKRqUpLTE1OT0laW1xdXl9ShH V2Y4doaWprbG1ub2Z3eHl6e3x9fn90hYaHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6 ytrq+v/aAAwDAQACEQMRAD8AE2Xfe76fIyVybOGTooaYQAxYbH4bJ05E6LkaunyWVCq+PeNIy9NJ TAK3raRT7Jy95NHIiiWOhr2UBxnzBx+VKdB42kCuskkqEmgOog0GmtScenCvS9rMfuvBdew931dT sim2Q9X45K2s7R29T1vmnn8KY6ip4amGJ8jimcSPTA+UIHYGy8Mnbd0EaXRuHkjrwLE1r5cfXgB+ 3puVbGOZYZZNJfANajyzk4AqKihpxr13193Ftiq3m20Ox4s+cnkcJPLHtDA7op6zck1MuMq910We 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 uk/iI49f/9k= ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.arkinord.dk/images/menubgbyplan.gif R0lGODlhAwBIAJEAAAAAAP///8e1z////yH5BAEAAAMALAAAAAADAEgAAAIOjC+py+0Po5y02ouz 3gUAOw== ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.arkinord.dk/styles/byplan_style.css .kategorioverskrift { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #ad93ba; FONT-SIZE: = 18px; FONT-WEIGHT: bold } A.news { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #ad93ba; FONT-SIZE: = 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none } A.news:hover { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #ad93ba; FONT-SIZE: = 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none } .bgroundMain { BACKGROUND-IMAGE: url(../images/bgbyplan.gif); BACKGROUND-REPEAT: = no-repeat; BACKGROUND-POSITION: right top } A { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #ad93ba; FONT-SIZE: = 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none } A:hover { FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #ad93ba; FONT-SIZE: = 11px; FONT-WEIGHT: bold; TEXT-DECORATION: none } H2 { LINE-HEIGHT: 120%; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; = COLOR: #ad93ba; FONT-SIZE: 18px; FONT-WEIGHT: bold } .H14 { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #666666; = FONT-SIZE: 14px; FONT-WEIGHT: bold } .H16 { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #666666; = FONT-SIZE: 16px; FONT-WEIGHT: bold } .H18 { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #666666; = FONT-SIZE: 18px; FONT-WEIGHT: bold } .H20 { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #666666; = FONT-SIZE: 20px; FONT-WEIGHT: bold } .overskrift { LINE-HEIGHT: 120%; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: = #ad93ba; FONT-SIZE: 28px; FONT-WEIGHT: bold } ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.arkinord.dk/styles/style.css .searchItem { BORDER-BOTTOM: #9bbada 1px solid; BORDER-LEFT: #9bbada 1px solid; = BACKGROUND-COLOR: #ffffff; WIDTH: 230px; HEIGHT: 18px; BORDER-TOP: = #9bbada 1px solid; BORDER-RIGHT: #9bbada 1px solid } .searchBtn { BORDER-BOTTOM: #729cc6 1px solid; BORDER-LEFT: #729cc6 1px solid; = BACKGROUND-COLOR: #9bbada; WIDTH: 230px; HEIGHT: 18px; COLOR: #ffffff; = BORDER-TOP: #729cc6 1px solid; BORDER-RIGHT: #729cc6 1px solid } .horizontal-line { BACKGROUND-COLOR: #bcbca7 } .document-1strow { BACKGROUND-COLOR: #f7f6e9 } .document-2ndrow { BACKGROUND-COLOR: #ffffff } .project-active { COLOR: #006600 } .project-inactive { COLOR: #ff0000 } .project-notes { BORDER-BOTTOM: #bcbca7 1px solid; BORDER-LEFT: #bcbca7 1px solid; = BACKGROUND-COLOR: #f7f6e9; BORDER-TOP: #bcbca7 1px solid; BORDER-RIGHT: = #bcbca7 1px solid } .project-notesShow { BORDER-BOTTOM: #bcbca7 1px solid; BORDER-LEFT: #bcbca7 1px solid; = BACKGROUND-COLOR: #ffffff; BORDER-TOP: #bcbca7 1px solid; BORDER-RIGHT: = #bcbca7 1px solid } .infotekster_small { FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: 9px; FONT-WEIGHT: normal } .searchstyle { BORDER-BOTTOM: #8e8369 1px solid; BORDER-LEFT: #8e8369 1px solid; = BACKGROUND-COLOR: #ffffff; FONT-FAMILY: Arial, Tahoma, Verdana, = Helvetica, sans-serif; HEIGHT: 18px; COLOR: #000000; FONT-SIZE: 9px; = BORDER-TOP: #8e8369 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: = #8e8369 1px solid; size: landscape auto } .kategorioverskrift { FONT-FAMILY: Arial, Arial, Helvetica, sans-serif; COLOR: #005882; = FONT-SIZE: 11px; FONT-WEIGHT: normal } .newsoverskrift { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #606060; FONT-SIZE: 12px; FONT-WEIGHT: bold } A.news { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #af2320; FONT-SIZE: 10px; FONT-WEIGHT: bold; TEXT-DECORATION: none } A.news:hover { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #b6b6b6; FONT-SIZE: 10px; FONT-WEIGHT: bold; TEXT-DECORATION: none } .newsarchiveline { BACKGROUND-COLOR: #89aacb } .katalogcolor { BACKGROUND-COLOR: #f1e6d0 } BODY { OVERFLOW-Y: scroll; BACKGROUND-COLOR: #ffffff } .topmainpage { MARGIN-TOP: 0px; MARGIN-LEFT: 0px; marginwidth: 0; marginheight: 0 } .dropdownheader { PADDING-LEFT: 0px; PADDING-RIGHT: 0px } #header { PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } #footer { PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } .bot { TEXT-ALIGN: center; TEXT-TRANSFORM: uppercase; FONT-STYLE: normal; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #505050; = FONT-SIZE: 10px; FONT-WEIGHT: normal; TEXT-DECORATION: none } A.bot { TEXT-ALIGN: center; TEXT-TRANSFORM: uppercase; FONT-STYLE: normal; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #505050; = FONT-SIZE: 10px; FONT-WEIGHT: normal; TEXT-DECORATION: none } A.bot:hover { TEXT-ALIGN: center; TEXT-TRANSFORM: uppercase; FONT-STYLE: normal; = FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; COLOR: #505050; = FONT-SIZE: 10px; FONT-WEIGHT: normal; TEXT-DECORATION: none } .bground { MARGIN-TOP: 0px; MARGIN-LEFT: 0px; marginwidth: 0; marginheight: 0 } TABLE { BORDER-COLLAPSE: collapse; FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif; COLOR: #505050; FONT-SIZE: 10px; FONT-WEIGHT: normal } .picbordercolor { BORDER-BOTTOM-COLOR: #000000; BORDER-TOP-COLOR: #000000; = BORDER-RIGHT-COLOR: #000000; BORDER-LEFT-COLOR: #000000 } A.menutext { TEXT-TRANSFORM: uppercase; FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif; COLOR: #c30c3e; FONT-SIZE: 10px; FONT-WEIGHT: bold; = TEXT-DECORATION: none } A.menutext:hover { TEXT-TRANSFORM: uppercase; FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif; COLOR: #c30c3e; FONT-SIZE: 10px; FONT-WEIGHT: bold; = TEXT-DECORATION: none } A.submenutext { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #606060; FONT-SIZE: 12px; FONT-WEIGHT: normal; TEXT-DECORATION: none } A.submenutext:hover { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #000000; FONT-SIZE: 12px; FONT-WEIGHT: normal; TEXT-DECORATION: none } .tdopacity { FILTER: alpha (opacity=3D75) } .tdopacity:hover { FILTER: alpha (opacity=3D100) } .tableborderright { BORDER-BOTTOM: #000000 0px solid; BORDER-LEFT: #000000 0px solid; = BORDER-TOP: #000000 0px solid; BORDER-RIGHT: #000000 0px solid } A { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; FONT-SIZE: = 11px; FONT-WEIGHT: normal; TEXT-DECORATION: none } A:hover { FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; FONT-SIZE: = 11px; FONT-WEIGHT: normal; TEXT-DECORATION: none } .HeadLightBlue { FONT-FAMILY: Verdana; COLOR: #89aacb; FONT-SIZE: 10px; FONT-WEIGHT: = bold; PADDING-TOP: 10px } .HeadBlue { FONT-FAMILY: Verdana; COLOR: #477bb1; FONT-SIZE: 10px; FONT-WEIGHT: = bold; PADDING-TOP: 10px } .HeadYellow { FONT-FAMILY: Verdana; COLOR: #fbb130; FONT-SIZE: 10px; FONT-WEIGHT: = bold; PADDING-TOP: 10px } .katalogcolor { BACKGROUND-COLOR: #f1e6d0 } INPUT { BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; = FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #000000; FONT-SIZE: 10px; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: = normal; BORDER-RIGHT: #000000 1px solid } .box { BORDER-BOTTOM: #000000 0px solid; BORDER-LEFT: #000000 0px solid; = FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #000000; FONT-SIZE: 10px; BORDER-TOP: #000000 0px solid; FONT-WEIGHT: = normal; BORDER-RIGHT: #000000 0px solid } TEXTAREA { BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; = FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #000000; FONT-SIZE: 11px; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: = normal; BORDER-RIGHT: #000000 1px solid } submit { BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; = FONT-FAMILY: Arial, Tahoma, Verdana, Helvetica, sans-serif; COLOR: = #000000; FONT-SIZE: 10px; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: = normal; BORDER-RIGHT: #000000 1px solid } .Forumline { BACKGROUND-COLOR: #000000 } .ForumHeadBG { BACKGROUND-COLOR: #ebe8d6 } .Linktoppage { FONT-SIZE: 9px } .UserFieldReply { BACKGROUND-COLOR: #ebe8d6 } .UserInPut { BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; = BACKGROUND-COLOR: #f0f0f0; FONT-FAMILY: Arial, Tahoma, Verdana, = Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 11px; BORDER-TOP: = #000000 1px solid; FONT-WEIGHT: normal; BORDER-RIGHT: #000000 1px solid } .LoginStyle { BORDER-BOTTOM: #000000 0px solid; BORDER-LEFT: #000000 0px solid; = BACKGROUND-COLOR: #ffffff; MARGIN: 20px; FONT-FAMILY: Arial, Tahoma, = Verdana, Helvetica, sans-serif; COLOR: #000000; FONT-SIZE: 11px; = BORDER-TOP: #000000 0px solid; FONT-WEIGHT: normal; BORDER-RIGHT: = #000000 0px solid } ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.arkinord.dk/css/lightbox.css #lightbox { Z-INDEX: 100; POSITION: absolute; TEXT-ALIGN: center; LINE-HEIGHT: 0; = WIDTH: 100%; LEFT: 0px } #lightbox IMG { WIDTH: auto; HEIGHT: auto } #lightbox A IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } #outerImageContainer { POSITION: relative; BACKGROUND-COLOR: #fff; MARGIN: 0px auto; WIDTH: = 250px; HEIGHT: 250px; TOP: 50px } #imageContainer { PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 10px } #loading { POSITION: absolute; TEXT-ALIGN: center; LINE-HEIGHT: 0; WIDTH: 100%; = HEIGHT: 25%; TOP: 40%; LEFT: 0% } #hoverNav { Z-INDEX: 10; POSITION: absolute; WIDTH: 100%; HEIGHT: 100%; TOP: 0px; = LEFT: 0px } #imageContainer > #hoverNav { LEFT: 0px } #hoverNav A { OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium } #prevLink { BACKGROUND-IMAGE: url(data:image/gif;base64,AAAA); WIDTH: 49%; DISPLAY: = block; HEIGHT: 100% } #nextLink { BACKGROUND-IMAGE: url(data:image/gif;base64,AAAA); WIDTH: 49%; DISPLAY: = block; HEIGHT: 100% } #prevLink { FLOAT: left; LEFT: 0px } #nextLink { FLOAT: right; RIGHT: 0px } #imageDataContainer { BACKGROUND-COLOR: #fff; MARGIN: 50px auto 0px; WIDTH: 100%; FONT: = 10px/1.4em Verdana, Helvetica, sans-serif; OVERFLOW: auto } #imageData { PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; COLOR: = #666; PADDING-TOP: 0px } #imageData #imageDetails { TEXT-ALIGN: left; WIDTH: 70%; FLOAT: left } #imageData #caption { FONT-WEIGHT: bold } #imageData #numberDisplay { PADDING-BOTTOM: 1em; DISPLAY: block; CLEAR: left } #imageData #bottomNavClose { PADDING-BOTTOM: 0.7em; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; = OUTLINE-WIDTH: medium; WIDTH: 66px; FLOAT: right } #overlay { Z-INDEX: 90; POSITION: absolute; BACKGROUND-COLOR: #000; WIDTH: 100%; = HEIGHT: 500px; TOP: 0px; LEFT: 0px } ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Location: http://www.arkinord.dk/style/dk.css #prevLink:hover { BACKGROUND: url(../images/forrigelabel.gif) no-repeat left 15% } #prevLink:hover:visited { BACKGROUND: url(../images/forrigelabel.gif) no-repeat left 15% } #nextLink:hover { BACKGROUND: url(../images/naestelabel.gif) no-repeat right 15% } #nextLink:hover:visited { BACKGROUND: url(../images/naestelabel.gif) no-repeat right 15% } #bottomNavClose { BACKGROUND-IMAGE: url(../images/luklabel.gif); WIDTH: 66px; HEIGHT: 22px } ------=_NextPart_000_0000_01CC64E5.FE3694A0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.arkinord.dk/js/prototype.js /* Prototype JavaScript framework, version 1.6.0.2=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.2',=0A= =0A= Browser: {=0A= IE: !!(window.attachEvent && !window.opera),=0A= Opera: !!window.opera,=0A= WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,=0A= Gecko: navigator.userAgent.indexOf('Gecko') > -1 && = navigator.userAgent.indexOf('KHTML') =3D=3D -1,=0A= MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)=0A= },=0A= =0A= BrowserFeatures: {=0A= XPath: !!document.evaluate,=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, value =3D Object.extend((function(m) {=0A= return function() { return ancestor[m].apply(this, arguments) = };=0A= })(property).wrap(method), {=0A= valueOf: function() { return method },=0A= toString: function() { return method.toString() }=0A= });=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].split(",").inv= oke("strip");=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= 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= Function.prototype.defer =3D Function.prototype.delay.curry(0.01);=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.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= with (String.prototype.escapeHTML) div.appendChild(text);=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= iterator =3D iterator.bind(context);=0A= try {=0A= this._each(function(value) {=0A= iterator(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= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var index =3D -number, slices =3D [], array =3D this.toArray();=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 ? iterator.bind(context) : Prototype.K;=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!iterator(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var result =3D false;=0A= this.each(function(value, index) {=0A= if (result =3D !!iterator(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(iterator(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function(iterator, context) {=0A= iterator =3D iterator.bind(context);=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator(value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator, context) {=0A= iterator =3D iterator.bind(context);=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(filter, iterator, context) {=0A= iterator =3D iterator ? iterator.bind(context) : 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(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= iterator =3D iterator.bind(context);=0A= this.each(function(value, index) {=0A= memo =3D iterator(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 ? iterator.bind(context) : Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator(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 ? iterator.bind(context) : Prototype.K;=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D iterator(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 ? iterator.bind(context) : Prototype.K;=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= (iterator(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= iterator =3D iterator.bind(context);=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator, context) {=0A= iterator =3D iterator.bind(context);=0A= return this.map(function(value, index) {=0A= return {value: value, criteria: iterator(value, index)};=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= if (!(Object.isFunction(iterable) && iterable =3D=3D '[object = NodeList]') &&=0A= 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= =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) {=0A= $R(0, this, true).each(iterator);=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= 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.map(function(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 values.map(toQueryPair.curry(key)).join('&');=0A= }=0A= return toQueryPair(key, values);=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= }).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).style.display =3D 'none';=0A= return element;=0A= },=0A= =0A= show: function(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(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= var originalAncestor =3D ancestor;=0A= =0A= if (element.compareDocumentPosition)=0A= return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D 8;=0A= =0A= if (element.sourceIndex && !Prototype.Browser.Opera) {=0A= var e =3D element.sourceIndex, a =3D ancestor.sourceIndex,=0A= nextAncestor =3D ancestor.nextSibling;=0A= if (!nextAncestor) {=0A= do { ancestor =3D ancestor.parentNode; }=0A= while (!(nextAncestor =3D ancestor.nextSibling) && = ancestor.parentNode);=0A= }=0A= if (nextAncestor && nextAncestor.sourceIndex)=0A= return (e > a && e < nextAncestor.sourceIndex);=0A= }=0A= =0A= while (element =3D element.parentNode)=0A= if (element =3D=3D originalAncestor) return true;=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) {=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 (window.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 =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;=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;=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 =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= 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= 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.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').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 =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, 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 { };=0A= var B =3D Prototype.Browser;=0A= $w('width height').each(function(d) {=0A= var D =3D d.capitalize();=0A= dimensions[d] =3D (B.WebKit && !document.evaluate) ? self['inner' = + D] :=0A= (B.Opera) ? document.body['client' + D] : = document.documentElement['client' + D];=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=C3=A2=E2=82=AC=E2=84=A2s 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= this.compileMatcher();=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(this.expression))=0A= return false;=0A= =0A= return true;=0A= },=0A= =0A= compileMatcher: function() {=0A= if (this.shouldUseXPath())=0A= return this.compileXPathMatcher();=0A= =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= if (this.xpath) return document._getElementsByXPath(this.xpath, = root);=0A= return this.matcher(root);=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 or = translate(text(), ' \t\r\n', '') =3D '')]",=0A= 'checked': "[@checked]",=0A= 'disabled': "[@disabled]",=0A= 'enabled': "[not(@disabled)]",=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]+)\]/,=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 && = !node.innerHTML.match(/^\s*$/))) 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) 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.startsWith(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() + = '-').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 '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.blur();=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, index) {=0A= if (Object.isUndefined(index))=0A= return this[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= else {=0A= var opt, value, single =3D !Object.isArray(index);=0A= for (var i =3D 0, length =3D element.length; i < length; i++) {=0A= opt =3D element.options[i];=0A= value =3D this.optionValue(opt);=0A= if (single) {=0A= if (value =3D=3D index) {=0A= opt.selected =3D true;=0A= return;=0A= }=0A= }=0A= else opt.selected =3D index.include(value);=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= var node =3D Event.extend(event).target;=0A= return Element.extend(node.nodeType =3D=3D Node.TEXT_NODE ? = node.parentNode : 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= return {=0A= x: event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || = document.body.scrollLeft)),=0A= y: event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || = document.body.scrollTop))=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= if (window.attachEvent) {=0A= window.attachEvent("onunload", destroyCache);=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("