From: <ÓÉ Windows Internet Explorer 8 ±£´æ> Subject: Admissions | Vanderbilt University Date: Wed, 22 Jul 2009 12:51:14 +0800 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0092_01CA0ACB.189F4390" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/applyIntl.php =EF=BB=BF Admissions | = Vanderbilt University =20
= = = = =

Prospective= =20 Students

Admitted=20 Students

Parents

Counselors

Alumni

  • Learning
  • Living
  • Visiting
  • Applying
  • Financing=
  • Random
  • <= /UL>

    Important Dates and Deadlines

    • June
    • 15=20 =E2=80=94 PreVU
    • 22=20 =E2=80=94 PreVU
    • 29=20 =E2=80=94 PreVU
    • July
    • 13=20 =E2=80=94 PreVU
    • 20=20 =E2=80=94 PreVU
    • 27=20 =E2=80=94 PreVU
VU = Calendar | Inside Vandy | Notable = Alumni=20 | FAQ | Contact = Us

International Student Admission

Required Credentials

Please note that the application deadline is 3 January 2009. The = Office of=20 Undergraduate Admission requires international first-year applicants to = submit=20 the following to be considered for admission:

  1. A completed Common Application
  2. A completed Part = 1: The=20 Vanderbilt Common Application Supplement
  3. An official transcript or record of academic achievement in = secondary=20 school and/or nationally sponsored or administered examinations
  4. Official results of the SAT or ACT
  5. Official results of the TOEFL or IELTS, if applicable*
  6. A counselor or administrator letter of recommendation and two = academic=20 teacher letters of recommendation
  7. A completed International Student Financial Aid Application, = if=20 applicable**
  8. A $50 USD non-refundable application fee

Please provide all documents in English

* Applicants whose first language and language of instruction is not = English=20 are required to take the Test of English as a Foreign Language (TOEFL) = or the=20 International English Language Testing Service(IELTS). A minimum score = of 85 on=20 the internet-based test, 230 on the computer-based test, and 6.5 on the = IELTS=20 are recommended. Institutional TOEFL examinations are not acceptable; = the=20 examinations must be taken at an official TOEFL testing center. The = Vanderbilt=20 University TOEFL testing code is 1871.

** Candidates who are not U.S. citizens or permanent residents and = are=20 requesting consideration for need-based financial aid are required to = submit the=20 financial aid application showing their sources of financial support. = Based upon=20 a review of academic qualities, financial need, and availability of = resources, a=20 student may be considered for financial assistance, but need-based aid = is=20 offered to a limited number of international undergraduate applicants. = Visit the=20 Common = Application website=20 for more information on Costs & Finances for U.S. citizens abroad, = U.S.=20 permanent residents, and International citizens.

Testing Requirements

  1. SAT or ACT =E2=80=93 The SAT Reasoning Test or the ACT with Writing = is required of=20 all undergraduate applicants. These standardized university entrance=20 examinations measure verbal and mathematic skills. Please visit either = http://www.sat.org/ = or http://www.act.org/ = to register=20 for these examinations. You can also contact the nearest U.S. Embassy = or=20 EducationUSA office for a list of testing centers, their locations, = and exam=20 schedule. We advise students to take the SAT or ACT exam at least = twice and=20 submit all scores. If you take the same test more than once, we will = focus our=20 evaluation of test scores on the highest scores available (from either = test).=20

    SAT Subject Tests are not required for admission, but if you have = taken SAT=20 Subject Tests we recommend you submit those scores for consideration.=20 Applicants who choose not to submit SAT Subject Tests will not be at a = disadvantage in the admission process.

  2. TOEFL or IELTS =E2=80=93 The results of such standardized English = language=20 proficiency examinations are used by the Admission Committee to better = understand a student's English language ability, especially for = non-native=20 speakers. Because the SAT and ACT are written for U.S. domestic = students, we=20 understand that many international applicants do not score as well on = the SAT=20 Critical Reading test and a TOEFL or IELTS score will enhance the = strength of=20 a student's application. This requirement will only be waived if the = language=20 of instruction has been English or if a student has scored above 600 = on the=20 SAT Critical Reading.

    Students may learn more about TOEFL at http://www.toefl.org/ and IELTS at http://www.ielts.org/. Please=20 contact the nearest U.S. Embassy or EducationUSA office for a listing = of=20 testing centers, their locations, and exam schedule.

Non-U.S. Educational School Systems

If you attend an overseas secondary school that uses a non-U.S. = educational=20 system please download, from the Common Application website, the International = Supplement to=20 the Secondary School Report form and give it to your college counselor = or school=20 administrator to complete and submit with the Secondary School Report = form.

  • Admissions Blog

 

Upcoming Events

3DPreVU=20=20

Learn = more=20 and register

Daily=20 Info Sessions and Tours

Reg= ister=20 Here!

You need FLASH to access the video feature.

Multimedia

Blog VU
Podcasts
VU Tube
VU = Video

2305 West End Avenue
Nashville, TN = 37203-1727
(615)=20 322-2561 | (800) 288-0432
admissions@vanderbilt.edu

------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/UndergradAdmissions.jpg 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 ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/expanded-aid.jpg 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 GVT8ryP/2Q== ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/assets/images/subpages/PreVU_Logo.jpg /9j/4AAQSkZJRgABAQEBIAEgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACRAJYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9TaKK 8r/aw/5Na+Mf/Ymaz/6QzUAeqUV/K7RQB/VFRX8rtFAH9UWc0V/Ox+yv+2h8Qv2UvEttNoGoSan4 Te4E2peFbyU/ZLtSNrlOD5MpAGJUGcom4OoKH92P2e/2j/BH7TXgWPxR4K1B57cMIrqxulEd3ZS4 z5cyAnafQglT/CSKVx2PT6KKKYgooooAKKKKACiiigAooooAKKKKACuA/aE8L6p44+AfxK8OaJa/ bdZ1jwzqWn2Nt5ix+bPLayRxpuchVyzAZYgDPJArv6KAP5e/HngXXPhl4x1bwr4lsv7N17SpzbXl p5qS+VIOq742ZW+qkisGveP28P8Ak8P4s/8AYdm/kK8HoA7L4d/CXxD8UU1NtBigmOniMyrNMIyd +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 ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/smm/delicious.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURQAAAP///93d3QAA/+4iTdsAAAAa SURBVHjaYmCEAmYoYBggARhggoIBEgAIMADrEAGBe3e9DgAAAABJRU5ErkJggg== ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/smm/digg.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAQAAACMJlQBAAAABGdBTUEAAK/INwWK6QAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACmSURBVBhXbZDBCgIxDET3//+gf9CPERRB XRA8LHjYgyKCongYM0mnUXSHhU7mtWkzYPhWhVRA78UCSoC+DhS3z1YgcMMJRwGKL5isxKPh8aE5 ByLeWenlAOOtudF+ByJemmWjVAciXpi9215qbCr5Bko3mK3J5LdwIKB8pOI9WP0DKGaDn0ERYFwt 3giIScTkCHB3tXidwANXnDvAw6vFqwSkz7Uqb59WZAoV3mcwAAAAAElFTkSuQmCC ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/smm/facebook.gif R0lGODlhEAAQAKIAAAAAAP///2B4q2F5rDtZmEVinm2EtOvu9CwAAAAAEAAQAAADOBi63DokyhmH oljeLM7emPcFGQGaZHaekdOm0yHKb7nC1G3jSmH8QIMCWOgFgcNfMQApSSyO6CIBADs= ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/smm/linkedin.gif R0lGODlhEAAQAMQAAIi96C+R18fX72zH4w51qQ940LfT737E59Lm9u3z+wA0oDd1yliU106s3Wa4 4X+35w9Ip5rG6wRPumyk4Guku3+t5KHU7Q5iqT5nuYnR6SZeugJiyw4/mYDP5w0xhf///yH5BAAA AAAALAAAAAAQABAAAAWeIEWMJHmdp+h0bHu8wPMwEMFmGfsesVzVrM/Hsus9Kj9bR0g8yI7ICocw GGQsjqxjwu1OHQcEImJAGADiCIMxbRyYCKH8U1l4CA2HMBJPMBYJHwYYdwF6H3wfAgsLAooaHhcB DUIAjgIaGpcQkZOVl5mbkQUMQg+XEhKXHKMFAQEFjAsQChoYGgqREhu8qRK0CsHBHhS9EBCsHsrL xCEAOw== ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.vanderbilt.edu/Admissions/i/smm/twitter.gif R0lGODlhEAAQAOZNAADc7Znv+Gzo8//+/pSUlDTi8C3h8Ov7/NT3+3vq9HTp9Trj8Djj8XHo9KPv +Pr6+aLw9+z7/Pv7+nLo9Wvn807l8gDb7cj1+rHy+BXf7p/v97Ty+aHv+Kby+Kjx99H2+yjh8Fvl 8o3s94ns9QDY65Dt9mHm8xPf7o7s9wDe7izi8Jjv+Lvz+Uzn8zbj8Wjn83bp9G7o9W3o8w3e7prv +HXp9Afe7yXg7/3+/hvg8Arc7Erk8XHp9dT3+prv98b1/Ejk8Qng7/r9/cj1+2ro8/38/H/q9aLw +MT1+hLf7qTw98L0+f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 BAEAAE0ALAAAAAAQABAAAAeCgE2Cg4SFhUyITIaHEUM/B4qLgkUfDhwIkZJMFyIoSImIhkxLRiMl NAEBK0eZgkwsMQkwDTwTCiatTUwYIUQUAjICLzW5Ax5AO0qguU0SPioGHZKDAxA2QS2gQoYEPTkA KSAMLgUVzDgaOhYA7AAkzE0PGwtJJxkzN/BNBMv604KBAAA7 ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: text/css; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/assets/css/adm-style.css HTML { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } BODY { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DIV { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } SPAN { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } OBJECT { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } IFRAME { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H1 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H2 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H3 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H4 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H5 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } H6 { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } P { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } BLOCKQUOTE { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } PRE { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } A { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } ABBR { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } ACRONYM { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } ADDRESS { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } CODE { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DEL { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DFN { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } EM { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } IMG { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } Q { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DL { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DT { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } DD { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } OL { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } UL { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } LI { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } FIELDSET { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } FORM { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } LABEL { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } LEGEND { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TABLE { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } CAPTION { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TBODY { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TFOOT { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } THEAD { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TR { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TH { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } TD { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; FONT-STYLE: = inherit; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = FONT-FAMILY: inherit; FONT-SIZE: 100%; VERTICAL-ALIGN: baseline; = BORDER-TOP: 0px; FONT-WEIGHT: inherit; BORDER-RIGHT: 0px; PADDING-TOP: = 0px } BODY { LINE-HEIGHT: 1.5 } TABLE { BORDER-SPACING: 0; BORDER-COLLAPSE: separate } CAPTION { TEXT-ALIGN: left; FONT-WEIGHT: normal } TH { TEXT-ALIGN: left; FONT-WEIGHT: normal } TD { TEXT-ALIGN: left; FONT-WEIGHT: normal } TABLE { VERTICAL-ALIGN: middle } TD { VERTICAL-ALIGN: middle } TH { VERTICAL-ALIGN: middle } BLOCKQUOTE:before { CONTENT: "" } BLOCKQUOTE:after { CONTENT: "" } Q:before { CONTENT: "" } Q:after { CONTENT: "" } BLOCKQUOTE { QUOTES: "" "" } Q { QUOTES: "" "" } A IMG { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none } IMG { BEHAVIOR: url(iepngfix/iepngfix.htc) } DIV { BEHAVIOR: url(iepngfix/iepngfix.htc) } HR { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; MARGIN: 0px 0px = 1.45em; WIDTH: 100%; BACKGROUND: #ddd; FLOAT: none; HEIGHT: 0.1em; = COLOR: #ddd; CLEAR: both; BORDER-TOP: medium none; BORDER-RIGHT: medium = none } HR.space { BACKGROUND: #fff; COLOR: #fff } .clear { CLEAR: both } BODY { FONT-FAMILY: "Helvetica Neue", Arial, Helvetica, sans-serif; = BACKGROUND: #fff; COLOR: #222; FONT-SIZE: 75% } H1 { COLOR: #111; FONT-WEIGHT: normal } H2 { COLOR: #111; FONT-WEIGHT: normal } H3 { COLOR: #111; FONT-WEIGHT: normal } H4 { COLOR: #111; FONT-WEIGHT: normal } H5 { COLOR: #111; FONT-WEIGHT: normal } H6 { COLOR: #111; FONT-WEIGHT: normal } H1 { BORDER-BOTTOM: #000 1px solid; PADDING-BOTTOM: 0.3em; LINE-HEIGHT: 1; = MARGIN: 0.7em 0.5em; FONT-SIZE: 2.2em } H2 { MARGIN: 0.5em 0.5em 0.75em; FONT-SIZE: 2em } H2 A { TEXT-DECORATION: none } H2 A:hover { TEXT-DECORATION: none } H2 A { COLOR: #000 } H3 { BORDER-BOTTOM: #997f3d 1px solid; PADDING-BOTTOM: 0.3em; LINE-HEIGHT: = 1; MARGIN: 2em 0.5em 0.75em; COLOR: #000; FONT-SIZE: 1.2em; FONT-WEIGHT: = bold } H3 A { TEXT-DECORATION: none } H3 A:hover { TEXT-DECORATION: none } H3 A { COLOR: #000 } H3 A:hover { COLOR: #997f3d } H4 { LINE-HEIGHT: 1.25; MARGIN: 0.5em 0.5em 1.2em 1em; FONT-SIZE: 1.1em; = FONT-WEIGHT: bold } H5 { MARGIN-BOTTOM: 1.5em; FONT-SIZE: 1em; FONT-WEIGHT: bold } H6 { FONT-SIZE: 1em; FONT-WEIGHT: bold } H1 IMG { MARGIN: 0px } H2 IMG { MARGIN: 0px } H3 IMG { MARGIN: 0px } H4 IMG { MARGIN: 0px } H5 IMG { MARGIN: 0px } H6 IMG { MARGIN: 0px } P { MARGIN: 0px 0.5em 1.5em } P IMG.left { PADDING-BOTTOM: 0px; MARGIN: 1.5em 1.5em 1.5em 0px; PADDING-LEFT: 0px; = PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px } P IMG.right { MARGIN: 1.5em 0px 1.5em 1.5em; FLOAT: right } A:focus { COLOR: #fc3 } A:hover { COLOR: #fc3 } A { DISPLAY: inline; COLOR: #997f3d; TEXT-DECORATION: none } A:visited { COLOR: #c30 } LI A { DISPLAY: inline; COLOR: #997f3d; TEXT-DECORATION: none } BLOCKQUOTE { FONT-STYLE: italic; MARGIN: 1.5em; COLOR: #666 } UL.dropdown-vertical { WIDTH: 200px } UL.dropdown-vertical UL { TOP: 1px; LEFT: 99% } UL.dropdown-vertical LI { FLOAT: none } OL { MARGIN: 0px 0px 0.8em 3em } OL LI A { DISPLAY: inline; COLOR: #997f3d; TEXT-DECORATION: none } LABEL { FONT-WEIGHT: bold } FIELDSET { BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; = PADDING-BOTTOM: 1.4em; MARGIN: 0px 0px 1.5em; PADDING-LEFT: 1.4em; = PADDING-RIGHT: 1.4em; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px = solid; PADDING-TOP: 1.4em } LEGEND { FONT-SIZE: 1.2em; FONT-WEIGHT: bold } INPUT.text { BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; MARGIN: = 0.5em 0px; BORDER-TOP: #bbb 1px solid; BORDER-RIGHT: #bbb 1px solid } INPUT.title { BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; MARGIN: = 0.5em 0px; BORDER-TOP: #bbb 1px solid; BORDER-RIGHT: #bbb 1px solid } TEXTAREA { BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; MARGIN: = 0.5em 0px; BORDER-TOP: #bbb 1px solid; BORDER-RIGHT: #bbb 1px solid } SELECT { BORDER-BOTTOM: #bbb 1px solid; BORDER-LEFT: #bbb 1px solid; MARGIN: = 0.5em 0px; BORDER-TOP: #bbb 1px solid; BORDER-RIGHT: #bbb 1px solid } INPUT.text:focus { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; BORDER-TOP: = #666 1px solid; BORDER-RIGHT: #666 1px solid } INPUT.title:focus { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; BORDER-TOP: = #666 1px solid; BORDER-RIGHT: #666 1px solid } TEXTAREA:focus { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; BORDER-TOP: = #666 1px solid; BORDER-RIGHT: #666 1px solid } SELECT:focus { BORDER-BOTTOM: #666 1px solid; BORDER-LEFT: #666 1px solid; BORDER-TOP: = #666 1px solid; BORDER-RIGHT: #666 1px solid } INPUT.text { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 5px } INPUT.title { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 5px } TEXTAREA { PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; = PADDING-TOP: 5px } BODY { MARGIN: 10px 0px; BACKGROUND: url(../../i/background.jpg) #000 fixed } #container { TEXT-ALIGN: center; MARGIN: 0px auto; WIDTH: 1000px; BACKGROUND: = url(../../i/pagebg.jpg) #000 left top } #header { BORDER-BOTTOM: #000 1px solid; TEXT-ALIGN: left; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: #fff; = HEIGHT: 92px; PADDING-TOP: 0px } .searchForm { MARGIN-TOP: 30px; FLOAT: right; MARGIN-RIGHT: 10px } .searchfield { BORDER-BOTTOM: #999 1px solid; BORDER-LEFT: #999 1px solid; = PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; WIDTH: 100px; PADDING-RIGHT: = 3px; BORDER-TOP: #999 1px solid; BORDER-RIGHT: #999 1px solid; = PADDING-TOP: 3px } .searchbutton { BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; = PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; BACKGROUND: = #000; COLOR: #f6b51e; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px = solid; PADDING-TOP: 3px } #navcol H2 { MARGIN-BOTTOM: 5px; COLOR: #600; FONT-SIZE: 1.3em; FONT-WEIGHT: bold } #maincontent H2 { MARGIN-BOTTOM: 5px; COLOR: #600; FONT-SIZE: 1.3em; FONT-WEIGHT: bold } #breadcrumb { PADDING-BOTTOM: 2px; TEXT-TRANSFORM: capitalize; MARGIN: -18px 10px 0px = 30px; PADDING-LEFT: 2px; WIDTH: 500px; PADDING-RIGHT: 2px; FLOAT: right; = HEIGHT: 30px; FONT-SIZE: 10px; PADDING-TOP: 2px } #breadcrumb A { COLOR: #fc3; FONT-SIZE: 11px } #breadcrumb A:hover { COLOR: #997f3d } #breadcrumb A:visited { TEXT-DECORATION: underline } #navcol { TEXT-ALIGN: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; = WIDTH: 197px; PADDING-RIGHT: 0px; BACKGROUND: #fff; FLOAT: left; = PADDING-TOP: 0px } #leftnav { TEXT-TRANSFORM: uppercase; LIST-STYLE-TYPE: none; BACKGROUND: #600; = LIST-STYLE-IMAGE: none } #leftnav UL { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px } #leftnav UL LI { POSITION: absolute; MARGIN: -2.6em 0px 0px 16.5em; WIDTH: 20em; LEFT: = 9em } #leftnav LI UL { POSITION: relative; DISPLAY: block } #leftnav LI:hover UL { DISPLAY: block } #leftnav LI.over UL { DISPLAY: block } #leftnav UL:hover LI { DISPLAY: block } #leftnav UL UL { POSITION: absolute; MARGIN: 0px 0px 0px 6em; WIDTH: 20em; LEFT: 9em } #leftnav A { DISPLAY: block; TEXT-DECORATION: none } #leftnav LI { BORDER-BOTTOM: #fff 3px solid; BACKGROUND: #600 } #leftnav LI A:link { BORDER-BOTTOM: #900 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 25px; = PADDING-RIGHT: 4px; DISPLAY: block; COLOR: #dfcdaa; TEXT-DECORATION: = none; PADDING-TOP: 4px } #leftnav LI A:visited { BORDER-BOTTOM: #900 1px solid; PADDING-BOTTOM: 4px; PADDING-LEFT: 25px; = PADDING-RIGHT: 4px; DISPLAY: block; COLOR: #dfcdaa; TEXT-DECORATION: = none; PADDING-TOP: 4px } #leftnav LI A:hover { BORDER-BOTTOM: #630 1px solid; BACKGROUND: #993300 } UL#leftnav LI A.active { BACKGROUND: #993300; COLOR: #fff } #starnav { TEXT-TRANSFORM: uppercase; LIST-STYLE-TYPE: none; MARGIN: 15px 0px; = BACKGROUND: #fff; LIST-STYLE-IMAGE: none } #starnav UL { LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none } #starnav A { DISPLAY: block; TEXT-DECORATION: none } #starnav LI { BACKGROUND: url(../../i/star-yellow.jpg) no-repeat 40px 50% } #starnav LI A:link { PADDING-BOTTOM: 0px; PADDING-LEFT: 75px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 25px; COLOR: #333; FONT-WEIGHT: bold; TEXT-DECORATION: = none; PADDING-TOP: 8px } #starnav LI A:visited { PADDING-BOTTOM: 0px; PADDING-LEFT: 75px; PADDING-RIGHT: 0px; DISPLAY: = block; HEIGHT: 25px; COLOR: #333; FONT-WEIGHT: bold; TEXT-DECORATION: = none; PADDING-TOP: 8px } #starnav LI A:hover { BACKGROUND: url(../../i/star-red.jpg) no-repeat 40px 50%; COLOR: #600 } UL#starnav LI A.active { BACKGROUND: url(../../i/star-red.jpg) no-repeat 40px 50% } #secnav { TEXT-TRANSFORM: uppercase; LIST-STYLE-TYPE: none; BACKGROUND: #000; = LIST-STYLE-IMAGE: none } #secnav UL { LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none } #secnav A { DISPLAY: block; TEXT-DECORATION: none } #secnav LI { BORDER-BOTTOM: #fff 3px solid; BACKGROUND: url(../../i/star-black.jpg) = no-repeat 5px 50%; FONT-SIZE: 1.25em } #secnav LI A:link { BORDER-BOTTOM: #333 1px solid; PADDING-BOTTOM: 9px; PADDING-LEFT: 40px; = PADDING-RIGHT: 9px; DISPLAY: block; COLOR: #dbdba1; TEXT-DECORATION: = none; PADDING-TOP: 9px } #secnav LI A:visited { BORDER-BOTTOM: #333 1px solid; PADDING-BOTTOM: 9px; PADDING-LEFT: 40px; = PADDING-RIGHT: 9px; DISPLAY: block; COLOR: #dbdba1; TEXT-DECORATION: = none; PADDING-TOP: 9px } #secnav LI A:hover { BACKGROUND: url(../../i/star-red2.jpg) #600 no-repeat 5px 50%; COLOR: = #fff } UL#secnav LI A.active { BACKGROUND: url(../../i/star-white.jpg) no-repeat 5px 50% } UL#secnav .applynow { BACKGROUND: url(../i/star-white.jpg) #f6b51e no-repeat 5px 50% } UL#secnav .applynow A:link { COLOR: #000; FONT-WEIGHT: bold } UL#secnav .applynow A:visited { COLOR: #000; FONT-WEIGHT: bold } UL#secnav .applynow A:hover { BACKGROUND: url(../../i/star-yellow2.jpg) #600 no-repeat 5px 50%; = COLOR: #fff } #calendar { PADDING-BOTTOM: 15px; PADDING-LEFT: 15px; PADDING-RIGHT: 15px; = BACKGROUND: #ececec; PADDING-TOP: 15px } #calendar UL { LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none } #calendar A { DISPLAY: block; TEXT-DECORATION: none } #calendar LI { BORDER-BOTTOM: #999 1px dotted; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; = PADDING-RIGHT: 3px; FONT-SIZE: 0.8em; PADDING-TOP: 3px } #calendar LI.month { FONT-SIZE: 1em; FONT-WEIGHT: bold } #calendar LI A:link { BORDER-BOTTOM: #333 1px solid; COLOR: #333; TEXT-DECORATION: none } #calendar LI A:visited { BORDER-BOTTOM: #333 1px solid; COLOR: #333; TEXT-DECORATION: none } #calendar LI A:hover { BACKGROUND: #ddd } #maincontent { BORDER-LEFT: #000 3px solid; PADDING-BOTTOM: 0px; MARGIN: 0px; = PADDING-LEFT: 0px; WIDTH: 800px; PADDING-RIGHT: 0px; FLOAT: right; = PADDING-TOP: 0px } #rightcol { TEXT-ALIGN: left; BORDER-LEFT: #000 3px solid; PADDING-BOTTOM: 0px; = MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 247px; PADDING-RIGHT: 0px; = BACKGROUND: #ddd; FLOAT: right; PADDING-TOP: 0px } #alternate { PADDING-BOTTOM: 0.8em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = BACKGROUND: #fff; PADDING-TOP: 0.3em } #alternate LI { LIST-STYLE-TYPE: none; MARGIN: 0.2em 0px 0.5em 0.8em; FONT-WEIGHT: = bold; LIST-STYLE-IMAGE: none } #events { BACKGROUND: #fff } #events H2 { PADDING-BOTTOM: 3px; PADDING-LEFT: 15px; PADDING-RIGHT: 0px; DISPLAY: = block; BACKGROUND: #ececec; PADDING-TOP: 3px } #events P { TEXT-ALIGN: right; PADDING-BOTTOM: 0px; MARGIN: 5px 0px 10px; = PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px } #events P A:link { BORDER-BOTTOM: #666 1px dotted; TEXT-TRANSFORM: uppercase; COLOR: #666; = TEXT-DECORATION: none } #events P A:visited { BORDER-BOTTOM: #666 1px dotted; TEXT-TRANSFORM: uppercase; COLOR: #666; = TEXT-DECORATION: none } #events P A:hover { BORDER-BOTTOM: #000 1px solid; COLOR: #000 } .info { PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; = PADDING-TOP: 10px } #multimedia { PADDING-BOTTOM: 10px; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; = BACKGROUND: url(../i/V-transparent.png) #ececec no-repeat right top; = PADDING-TOP: 20px } #multimedia P A:link { COLOR: #333; FONT-WEIGHT: bold; TEXT-DECORATION: none } #multimedia P A:visited { COLOR: #333; FONT-WEIGHT: bold; TEXT-DECORATION: none } #multimedia P A:hover { COLOR: #997f3d } .address { COLOR: #666; FONT-SIZE: 0.8em; PADDING-TOP: 10px } #maincol { TEXT-ALIGN: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; = WIDTH: 550px; PADDING-RIGHT: 0px; BACKGROUND: #fff; FLOAT: left; = PADDING-TOP: 0px } #maincol P { PADDING-BOTTOM: 0px; LINE-HEIGHT: 125%; PADDING-LEFT: 10px; = PADDING-RIGHT: 5px; PADDING-TOP: 0px } .nav { PADDING-BOTTOM: 6px; TEXT-TRANSFORM: uppercase; MARGIN: 0px; = PADDING-LEFT: 10px; PADDING-RIGHT: 0px; BACKGROUND: #000; COLOR: #666; = PADDING-TOP: 6px } .nav A:link { PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: = #f6b51e; TEXT-DECORATION: none; PADDING-TOP: 0px } .nav A:visited { PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; COLOR: = #f6b51e; TEXT-DECORATION: none; PADDING-TOP: 0px } .nav A:hover { COLOR: #fff } #bullet { MARGIN: 0px 15px 10px 25px } #bullet LI { PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; = PADDING-TOP: 0px } #bullet A { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; DISPLAY: inline; TEXT-DECORATION: none; PADDING-TOP: 0px } #tables { MARGIN: 0px } .titles1 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #d2d2d2; = MARGIN: 1% 0px 3% 0.3%; PADDING-LEFT: 10px; WIDTH: 20%; PADDING-RIGHT: = 10px; FLOAT: left; HEIGHT: 38px; BORDER-TOP: #e4e4e4 1px solid; = BORDER-RIGHT: #e4e4e4 1px solid; PADDING-TOP: 10px } .titles2 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #d2d2d2; = MARGIN: 1% 0px 3% 0.3%; PADDING-LEFT: 10px; WIDTH: 12%; PADDING-RIGHT: = 10px; FLOAT: left; HEIGHT: 38px; BORDER-TOP: #e4e4e4 1px solid; = BORDER-RIGHT: #e4e4e4 1px solid; PADDING-TOP: 10px } .titles3 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #d2d2d2; = MARGIN: 1% 0px 3% 0.3%; PADDING-LEFT: 10px; WIDTH: 38%; PADDING-RIGHT: = 10px; FLOAT: left; HEIGHT: 38px; BORDER-TOP: #e4e4e4 1px solid; = BORDER-RIGHT: #e4e4e4 1px solid; PADDING-TOP: 10px } .titles4 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #d2d2d2; = MARGIN: 1% 0px 3% 0.3%; PADDING-LEFT: 10px; WIDTH: 10%; PADDING-RIGHT: = 10px; FLOAT: left; HEIGHT: 38px; BORDER-TOP: #e4e4e4 1px solid; = BORDER-RIGHT: #e4e4e4 1px solid; PADDING-TOP: 10px } .row1 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px 0px 0px 0.3%; = PADDING-LEFT: 10px; WIDTH: 20%; PADDING-RIGHT: 10px; FLOAT: left; = HEIGHT: 40px; BORDER-TOP: #e4e4e4 1px solid; BORDER-RIGHT: #e4e4e4 1px = solid; PADDING-TOP: 10px } .row2 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px 0px 0px 0.3%; = PADDING-LEFT: 10px; WIDTH: 12%; PADDING-RIGHT: 10px; FLOAT: left; = HEIGHT: 40px; BORDER-TOP: #e4e4e4 1px solid; BORDER-RIGHT: #e4e4e4 1px = solid; PADDING-TOP: 10px } .row3 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px 0px 0px 0.3%; = PADDING-LEFT: 10px; WIDTH: 38%; PADDING-RIGHT: 10px; FLOAT: left; = HEIGHT: 40px; BORDER-TOP: #e4e4e4 1px solid; BORDER-RIGHT: #e4e4e4 1px = solid; PADDING-TOP: 10px } .row4 { BORDER-BOTTOM: #e4e4e4 1px solid; TEXT-ALIGN: center; BORDER-LEFT: = #e4e4e4 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px 0px 0px 0.3%; = PADDING-LEFT: 10px; WIDTH: 10%; PADDING-RIGHT: 10px; FLOAT: left; = HEIGHT: 40px; BORDER-TOP: #e4e4e4 1px solid; BORDER-RIGHT: #e4e4e4 1px = solid; PADDING-TOP: 10px } #tables P { MARGIN: 10px 10px 10px auto; CLEAR: both } .flashy { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 550px; = PADDING-RIGHT: 0px; BACKGROUND: url(../i/photo.jpg) #333 no-repeat; = HEIGHT: 350px; PADDING-TOP: 0px } .news { PADDING-BOTTOM: 15px; MARGIN: 0px; PADDING-LEFT: 15px; PADDING-RIGHT: = 15px; PADDING-TOP: 15px } #sub-photos { MARGIN: 0px 2em 2em; FLOAT: left } #sub-photos A { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none; TEXT-DECORATION: none } #sub-photos A:hover { BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: = medium none; BORDER-RIGHT: medium none; TEXT-DECORATION: none } #divide { BORDER-BOTTOM: #ddd 1px solid; MARGIN: 0px auto; WIDTH: 300px } #leftnews { LIST-STYLE-TYPE: none; MARGIN-TOP: 15px; WIDTH: 250px; PADDING-RIGHT: = 10px; FLOAT: left; LIST-STYLE-IMAGE: none; BORDER-RIGHT: #ccc 1px dotted } #leftnews H2 { FONT-SIZE: 1.7em } #leftnews UL { LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none } #leftnews A { DISPLAY: block; TEXT-DECORATION: none } #leftnews LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; = PADDING-RIGHT: 3px; FONT-SIZE: 0.8em; PADDING-TOP: 3px } #leftnews LI A:link { COLOR: #333; TEXT-DECORATION: none } #leftnews LI A:visited { COLOR: #333; TEXT-DECORATION: none } #leftnews LI A:hover { BACKGROUND: #ddd } #calendarfeeds A { TEXT-DECORATION: none } #rightnews { LIST-STYLE-TYPE: none; MARGIN-TOP: 15px; WIDTH: 250px; FLOAT: right; = LIST-STYLE-IMAGE: none } #rightnews H2 { FONT-SIZE: 1.7em } #rightnews UL { LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none } #rightnews A { DISPLAY: block; TEXT-DECORATION: none } #rightnews LI { BORDER-BOTTOM: #ccc 1px dotted; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; = PADDING-RIGHT: 3px; FONT-SIZE: 0.8em; PADDING-TOP: 3px } #rightnews LI A:link { COLOR: #333; TEXT-DECORATION: none } #rightnews LI A:visited { COLOR: #333; TEXT-DECORATION: none } #rightnews LI A:hover { BACKGROUND: #ddd } #footer { TEXT-ALIGN: center; PADDING-BOTTOM: 10px; LIST-STYLE-TYPE: none; = MARGIN: 0px; PADDING-LEFT: 20px; PADDING-RIGHT: 20px; BACKGROUND: #000; = HEIGHT: 20px; COLOR: #666; CLEAR: both; FONT-SIZE: 0.8em; = LIST-STYLE-IMAGE: none; PADDING-TOP: 10px } #footer A:link { BORDER-BOTTOM: #666 1px solid; COLOR: #666; TEXT-DECORATION: none } #footer A:visited { BORDER-BOTTOM: #666 1px solid; COLOR: #666; TEXT-DECORATION: none } #footer UL { PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px } #footer UL LI { PADDING-RIGHT: 20px; DISPLAY: inline; FLOAT: left } #footer UL LI A:link { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } #footer UL LI A:visited { BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: = 0px } #footer UL LI IMG { FILTER: alpha(opacity=3D30); opacity: .30; -moz-opacity: 0.30 } #footer UL LI IMG:hover { FILTER: alpha(opacity=3D80); opacity: .80; -moz-opacity: 0.80 } ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/inc/swfobject.js /**=0A= * SWFObject v1.5: Flash Player detection and embed - = http://blog.deconcept.com/swfobject/=0A= *=0A= * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT = License:=0A= * http://www.opensource.org/licenses/mit-license.php=0A= *=0A= */=0A= if(typeof deconcept=3D=3D"undefined"){var deconcept=3Dnew = Object();}if(typeof = deconcept.util=3D=3D"undefined"){deconcept.util=3Dnew = Object();}if(typeof = deconcept.SWFObjectUtil=3D=3D"undefined"){deconcept.SWFObjectUtil=3Dnew = Object();}deconcept.SWFObject=3Dfunction(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!= document.getElementById){return;}this.DETECT_KEY=3D_a?_a:"detectflash";th= is.skipDetect=3Ddeconcept.util.getRequestParameter(this.DETECT_KEY);this.= params=3Dnew Object();this.variables=3Dnew = Object();this.attributes=3Dnew = Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id"= ,id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height= ",h);}if(_5){this.setAttribute("version",new = deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=3Dd= econcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&= &this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=3Dtrue;}if(c= ){this.addParam("bgcolor",c);}var = q=3D_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpress= Install",false);this.setAttribute("doExpressInstall",false);var = _c=3D(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.s= etAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);= }};deconcept.SWFObject.prototype=3D{useExpressInstall:function(_d){this.x= iSWFPath=3D!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInsta= ll",true);},setAttribute:function(_e,_f){this.attributes[_e]=3D_f;},getAt= tribute:function(_10){return = this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=3D_12;= },getParams:function(){return = this.params;},addVariable:function(_13,_14){this.variables[_13]=3D_14;},g= etVariable:function(_15){return = this.variables[_15];},getVariables:function(){return = this.variables;},getVariablePairs:function(){var _16=3Dnew Array();var = key;var _18=3Dthis.getVariables();for(key in = _18){_16[_16.length]=3Dkey+"=3D"+_18[key];}return = _16;},getSWFHTML:function(){var = _19=3D"";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.l= ength){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplay= erType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19=3D"0){_19+=3D"flashvar= s=3D\""+_1c+"\"";}_19+=3D"/>";}else{if(this.getAttribute("doExpressInstal= l")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",t= his.xiSWFPath);}_19=3D"";_19+=3D"";var = _1d=3Dthis.getParams();for(var key in _1d){_19+=3D"";}var = _1f=3Dthis.getVariablePairs().join("&");if(_1f.length>0){_19+=3D"";}_19+=3D"";}return = _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var = _21=3Dnew = deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21= )&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.= setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",es= cape(this.getAttribute("xiRedirectUrl")));document.title=3Ddocument.title= .slice(0,47)+" - Flash Player = Installation";this.addVariable("MMdoctitle",document.title);}}if(this.ski= pDetect||this.getAttribute("doExpressInstall")||this.installedVer.version= IsValid(this.getAttribute("version"))){var n=3D(typeof = _20=3D=3D"string")?document.getElementById(_20):_20;n.innerHTML=3Dthis.ge= tSWFHTML();return = true;}else{if(this.getAttribute("redirectUrl")!=3D""){document.location.r= eplace(this.getAttribute("redirectUrl"));}}return = false;}};deconcept.SWFObjectUtil.getPlayerVersion=3Dfunction(){var = _23=3Dnew = deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeType= s.length){var x=3Dnavigator.plugins["Shockwave = Flash"];if(x&&x.description){_23=3Dnew = deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replac= e(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&nav= igator.userAgent.indexOf("Windows CE")>=3D0){var axo=3D1;var = _26=3D3;while(axo){try{_26++;axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=3Dnew = deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=3Dnull;}}}else{try{var = axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var = axo=3Dnew ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=3Dnew = deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess=3D"always";}catch= (e){if(_23.major=3D=3D6){return _23;}}try{axo=3Dnew = ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=3Dnull= ){_23=3Dnew deconcept.PlayerVersion(axo.GetVariable("$version").split(" = ")[1].split(","));}}}return = _23;};deconcept.PlayerVersion=3Dfunction(_29){this.major=3D_29[0]!=3Dnull= ?parseInt(_29[0]):0;this.minor=3D_29[1]!=3Dnull?parseInt(_29[1]):0;this.r= ev=3D_29[2]!=3Dnull?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototyp= e.versionIsValid=3Dfunction(fv){if(this.majorfv.major){return = true;}if(this.minorfv.minor){return true;}if(this.rev=3D0;i--){_2f[i].style.display=3D"none";for(var x in = _2f[i]){if(typeof = _2f[i][x]=3D=3D"function"){_2f[i][x]=3Dfunction(){};}}}};if(deconcept.SWF= Object.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.pre= pUnload=3Dfunction(){__flash_unloadHandler=3Dfunction(){};__flash_savedUn= loadHandler=3Dfunction(){};window.attachEvent("onunload",deconcept.SWFObj= ectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFO= bjectUtil.prepUnload);deconcept.unloadSet=3Dtrue;}}if(!document.getElemen= tById&&document.all){document.getElementById=3Dfunction(id){return = document.all[id];};}var = getQueryParamValue=3Ddeconcept.util.getRequestParameter;var = FlashObject=3Ddeconcept.SWFObject;var SWFObject=3Ddeconcept.SWFObject; ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/js/javascript/prototype.js /* Prototype JavaScript framework, version 1.5.1.1 * (c) 2005-2007 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style = license. * For details, see the Prototype web site: http://www.prototypejs.org/ * /*-----------------------------------------------------------------------= ---*/ var Prototype =3D { Version: '1.5.1.1', Browser: { IE: !!(window.attachEvent && !window.opera), Opera: !!window.opera, WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, Gecko: navigator.userAgent.indexOf('Gecko') > -1 && = navigator.userAgent.indexOf('KHTML') =3D=3D -1 }, BrowserFeatures: { XPath: !!document.evaluate, ElementExtensions: !!window.HTMLElement, SpecificElementExtensions: (document.createElement('div').__proto__ !=3D=3D document.createElement('form').__proto__) }, ScriptFragment: ']*>([\\S\\s]*?)<\/script>', JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, emptyFunction: function() { }, K: function(x) { return x } } var Class =3D { create: function() { return function() { this.initialize.apply(this, arguments); } } } var Abstract =3D new Object(); Object.extend =3D function(destination, source) { for (var property in source) { destination[property] =3D source[property]; } return destination; } Object.extend(Object, { inspect: function(object) { try { if (object =3D=3D=3D undefined) return 'undefined'; if (object =3D=3D=3D null) return 'null'; return object.inspect ? object.inspect() : object.toString(); } catch (e) { if (e instanceof RangeError) return '...'; throw e; } }, toJSON: function(object) { var type =3D typeof object; switch(type) { case 'undefined': case 'function': case 'unknown': return; case 'boolean': return object.toString(); } if (object =3D=3D=3D null) return 'null'; if (object.toJSON) return object.toJSON(); if (object.ownerDocument =3D=3D=3D document) return; var results =3D []; for (var property in object) { var value =3D Object.toJSON(object[property]); if (value !=3D=3D undefined) results.push(property.toJSON() + ': ' + value); } return '{' + results.join(', ') + '}'; }, keys: function(object) { var keys =3D []; for (var property in object) keys.push(property); return keys; }, values: function(object) { var values =3D []; for (var property in object) values.push(object[property]); return values; }, clone: function(object) { return Object.extend({}, object); } }); Function.prototype.bind =3D function() { var __method =3D this, args =3D $A(arguments), object =3D = args.shift(); return function() { return __method.apply(object, args.concat($A(arguments))); } } Function.prototype.bindAsEventListener =3D function(object) { var __method =3D this, args =3D $A(arguments), object =3D = args.shift(); return function(event) { return __method.apply(object, [event || window.event].concat(args)); } } Object.extend(Number.prototype, { toColorPart: function() { return this.toPaddedString(2, 16); }, succ: function() { return this + 1; }, times: function(iterator) { $R(0, this, true).each(iterator); return this; }, toPaddedString: function(length, radix) { var string =3D this.toString(radix || 10); return '0'.times(length - string.length) + string; }, toJSON: function() { return isFinite(this) ? this.toString() : 'null'; } }); Date.prototype.toJSON =3D function() { return '"' + this.getFullYear() + '-' + (this.getMonth() + 1).toPaddedString(2) + '-' + this.getDate().toPaddedString(2) + 'T' + this.getHours().toPaddedString(2) + ':' + this.getMinutes().toPaddedString(2) + ':' + this.getSeconds().toPaddedString(2) + '"'; }; var Try =3D { these: function() { var returnValue; for (var i =3D 0, length =3D arguments.length; i < length; i++) { var lambda =3D arguments[i]; try { returnValue =3D lambda(); break; } catch (e) {} } return returnValue; } } /*-----------------------------------------------------------------------= ---*/ var PeriodicalExecuter =3D Class.create(); PeriodicalExecuter.prototype =3D { initialize: function(callback, frequency) { this.callback =3D callback; this.frequency =3D frequency; this.currentlyExecuting =3D false; this.registerCallback(); }, registerCallback: function() { this.timer =3D setInterval(this.onTimerEvent.bind(this), = this.frequency * 1000); }, stop: function() { if (!this.timer) return; clearInterval(this.timer); this.timer =3D null; }, onTimerEvent: function() { if (!this.currentlyExecuting) { try { this.currentlyExecuting =3D true; this.callback(this); } finally { this.currentlyExecuting =3D false; } } } } Object.extend(String, { interpret: function(value) { return value =3D=3D null ? '' : String(value); }, specialChar: { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\\': '\\\\' } }); Object.extend(String.prototype, { gsub: function(pattern, replacement) { var result =3D '', source =3D this, match; replacement =3D arguments.callee.prepareReplacement(replacement); while (source.length > 0) { if (match =3D source.match(pattern)) { result +=3D source.slice(0, match.index); result +=3D String.interpret(replacement(match)); source =3D source.slice(match.index + match[0].length); } else { result +=3D source, source =3D ''; } } return result; }, sub: function(pattern, replacement, count) { replacement =3D this.gsub.prepareReplacement(replacement); count =3D count =3D=3D=3D undefined ? 1 : count; return this.gsub(pattern, function(match) { if (--count < 0) return match[0]; return replacement(match); }); }, scan: function(pattern, iterator) { this.gsub(pattern, iterator); return this; }, truncate: function(length, truncation) { length =3D length || 30; truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation; return this.length > length ? this.slice(0, length - truncation.length) + truncation : this; }, strip: function() { return this.replace(/^\s+/, '').replace(/\s+$/, ''); }, stripTags: function() { return this.replace(/<\/?[^>]+>/gi, ''); }, stripScripts: function() { return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), = ''); }, extractScripts: function() { var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img'); var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im'); return (this.match(matchAll) || []).map(function(scriptTag) { return (scriptTag.match(matchOne) || ['', ''])[1]; }); }, evalScripts: function() { return this.extractScripts().map(function(script) { return = eval(script) }); }, escapeHTML: function() { var self =3D arguments.callee; self.text.data =3D this; return self.div.innerHTML; }, unescapeHTML: function() { var div =3D document.createElement('div'); div.innerHTML =3D this.stripTags(); return div.childNodes[0] ? (div.childNodes.length > 1 ? $A(div.childNodes).inject('', function(memo, node) { return = memo+node.nodeValue }) : div.childNodes[0].nodeValue) : ''; }, toQueryParams: function(separator) { var match =3D this.strip().match(/([^?#]*)(#.*)?$/); if (!match) return {}; return match[1].split(separator || '&').inject({}, function(hash, = pair) { if ((pair =3D pair.split('=3D'))[0]) { var key =3D decodeURIComponent(pair.shift()); var value =3D pair.length > 1 ? pair.join('=3D') : pair[0]; if (value !=3D undefined) value =3D decodeURIComponent(value); if (key in hash) { if (hash[key].constructor !=3D Array) hash[key] =3D = [hash[key]]; hash[key].push(value); } else hash[key] =3D value; } return hash; }); }, toArray: function() { return this.split(''); }, succ: function() { return this.slice(0, this.length - 1) + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); }, times: function(count) { var result =3D ''; for (var i =3D 0; i < count; i++) result +=3D this; return result; }, camelize: function() { var parts =3D this.split('-'), len =3D parts.length; if (len =3D=3D 1) return parts[0]; var camelized =3D this.charAt(0) =3D=3D '-' ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) : parts[0]; for (var i =3D 1; i < len; i++) camelized +=3D parts[i].charAt(0).toUpperCase() + = parts[i].substring(1); return camelized; }, capitalize: function() { return this.charAt(0).toUpperCase() + = this.substring(1).toLowerCase(); }, underscore: function() { return this.gsub(/::/, = '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{= 1}_#{2}').gsub(/-/,'_').toLowerCase(); }, dasherize: function() { return this.gsub(/_/,'-'); }, inspect: function(useDoubleQuotes) { var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) { var character =3D String.specialChar[match[0]]; return character ? character : '\\u00' + = match[0].charCodeAt().toPaddedString(2, 16); }); if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') = + '"'; return "'" + escapedString.replace(/'/g, '\\\'') + "'"; }, toJSON: function() { return this.inspect(true); }, unfilterJSON: function(filter) { return this.sub(filter || Prototype.JSONFilter, '#{1}'); }, isJSON: function() { var str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); }, evalJSON: function(sanitize) { var json =3D this.unfilterJSON(); try { if (!sanitize || json.isJSON()) return eval('(' + json + ')'); } catch (e) { } throw new SyntaxError('Badly formed JSON string: ' + = this.inspect()); }, include: function(pattern) { return this.indexOf(pattern) > -1; }, startsWith: function(pattern) { return this.indexOf(pattern) =3D=3D=3D 0; }, endsWith: function(pattern) { var d =3D this.length - pattern.length; return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d; }, empty: function() { return this =3D=3D ''; }, blank: function() { return /^\s*$/.test(this); } }); if (Prototype.Browser.WebKit || Prototype.Browser.IE) = Object.extend(String.prototype, { escapeHTML: function() { return = this.replace(/&/g,'&').replace(//g,'>'); }, unescapeHTML: function() { return = this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } }); String.prototype.gsub.prepareReplacement =3D function(replacement) { if (typeof replacement =3D=3D 'function') return replacement; var template =3D new Template(replacement); return function(match) { return template.evaluate(match) }; } String.prototype.parseQuery =3D String.prototype.toQueryParams; Object.extend(String.prototype.escapeHTML, { div: document.createElement('div'), text: document.createTextNode('') }); with (String.prototype.escapeHTML) div.appendChild(text); var Template =3D Class.create(); Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/; Template.prototype =3D { initialize: function(template, pattern) { this.template =3D template.toString(); this.pattern =3D pattern || Template.Pattern; }, evaluate: function(object) { return this.template.gsub(this.pattern, function(match) { var before =3D match[1]; if (before =3D=3D '\\') return match[2]; return before + String.interpret(object[match[3]]); }); } } var $break =3D {}, $continue =3D new Error('"throw $continue" is = deprecated, use "return" instead'); var Enumerable =3D { each: function(iterator) { var index =3D 0; try { this._each(function(value) { iterator(value, index++); }); } catch (e) { if (e !=3D $break) throw e; } return this; }, eachSlice: function(number, iterator) { var index =3D -number, slices =3D [], array =3D this.toArray(); while ((index +=3D number) < array.length) slices.push(array.slice(index, index+number)); return slices.map(iterator); }, all: function(iterator) { var result =3D true; this.each(function(value, index) { result =3D result && !!(iterator || Prototype.K)(value, index); if (!result) throw $break; }); return result; }, any: function(iterator) { var result =3D false; this.each(function(value, index) { if (result =3D !!(iterator || Prototype.K)(value, index)) throw $break; }); return result; }, collect: function(iterator) { var results =3D []; this.each(function(value, index) { results.push((iterator || Prototype.K)(value, index)); }); return results; }, detect: function(iterator) { var result; this.each(function(value, index) { if (iterator(value, index)) { result =3D value; throw $break; } }); return result; }, findAll: function(iterator) { var results =3D []; this.each(function(value, index) { if (iterator(value, index)) results.push(value); }); return results; }, grep: function(pattern, iterator) { var results =3D []; this.each(function(value, index) { var stringValue =3D value.toString(); if (stringValue.match(pattern)) results.push((iterator || Prototype.K)(value, index)); }) return results; }, include: function(object) { var found =3D false; this.each(function(value) { if (value =3D=3D object) { found =3D true; throw $break; } }); return found; }, inGroupsOf: function(number, fillWith) { fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith; return this.eachSlice(number, function(slice) { while(slice.length < number) slice.push(fillWith); return slice; }); }, inject: function(memo, iterator) { this.each(function(value, index) { memo =3D iterator(memo, value, index); }); return memo; }, invoke: function(method) { var args =3D $A(arguments).slice(1); return this.map(function(value) { return value[method].apply(value, args); }); }, max: function(iterator) { var result; this.each(function(value, index) { value =3D (iterator || Prototype.K)(value, index); if (result =3D=3D undefined || value >=3D result) result =3D value; }); return result; }, min: function(iterator) { var result; this.each(function(value, index) { value =3D (iterator || Prototype.K)(value, index); if (result =3D=3D undefined || value < result) result =3D value; }); return result; }, partition: function(iterator) { var trues =3D [], falses =3D []; this.each(function(value, index) { ((iterator || Prototype.K)(value, index) ? trues : falses).push(value); }); return [trues, falses]; }, pluck: function(property) { var results =3D []; this.each(function(value, index) { results.push(value[property]); }); return results; }, reject: function(iterator) { var results =3D []; this.each(function(value, index) { if (!iterator(value, index)) results.push(value); }); return results; }, sortBy: function(iterator) { return this.map(function(value, index) { return {value: value, criteria: iterator(value, index)}; }).sort(function(left, right) { var a =3D left.criteria, b =3D right.criteria; return a < b ? -1 : a > b ? 1 : 0; }).pluck('value'); }, toArray: function() { return this.map(); }, zip: function() { var iterator =3D Prototype.K, args =3D $A(arguments); if (typeof args.last() =3D=3D 'function') iterator =3D args.pop(); var collections =3D [this].concat(args).map($A); return this.map(function(value, index) { return iterator(collections.pluck(index)); }); }, size: function() { return this.toArray().length; }, inspect: function() { return '#'; } } Object.extend(Enumerable, { map: Enumerable.collect, find: Enumerable.detect, select: Enumerable.findAll, member: Enumerable.include, entries: Enumerable.toArray }); var $A =3D Array.from =3D function(iterable) { if (!iterable) return []; if (iterable.toArray) { return iterable.toArray(); } else { var results =3D []; for (var i =3D 0, length =3D iterable.length; i < length; i++) results.push(iterable[i]); return results; } } if (Prototype.Browser.WebKit) { $A =3D Array.from =3D function(iterable) { if (!iterable) return []; if (!(typeof iterable =3D=3D 'function' && iterable =3D=3D '[object = NodeList]') && iterable.toArray) { return iterable.toArray(); } else { var results =3D []; for (var i =3D 0, length =3D iterable.length; i < length; i++) results.push(iterable[i]); return results; } } } Object.extend(Array.prototype, Enumerable); if (!Array.prototype._reverse) Array.prototype._reverse =3D Array.prototype.reverse; Object.extend(Array.prototype, { _each: function(iterator) { for (var i =3D 0, length =3D this.length; i < length; i++) iterator(this[i]); }, clear: function() { this.length =3D 0; return this; }, first: function() { return this[0]; }, last: function() { return this[this.length - 1]; }, compact: function() { return this.select(function(value) { return value !=3D null; }); }, flatten: function() { return this.inject([], function(array, value) { return array.concat(value && value.constructor =3D=3D Array ? value.flatten() : [value]); }); }, without: function() { var values =3D $A(arguments); return this.select(function(value) { return !values.include(value); }); }, indexOf: function(object) { for (var i =3D 0, length =3D this.length; i < length; i++) if (this[i] =3D=3D object) return i; return -1; }, reverse: function(inline) { return (inline !=3D=3D false ? this : this.toArray())._reverse(); }, reduce: function() { return this.length > 1 ? this : this[0]; }, uniq: function(sorted) { return this.inject([], function(array, value, index) { if (0 =3D=3D index || (sorted ? array.last() !=3D value : = !array.include(value))) array.push(value); return array; }); }, clone: function() { return [].concat(this); }, size: function() { return this.length; }, inspect: function() { return '[' + this.map(Object.inspect).join(', ') + ']'; }, toJSON: function() { var results =3D []; this.each(function(object) { var value =3D Object.toJSON(object); if (value !=3D=3D undefined) results.push(value); }); return '[' + results.join(', ') + ']'; } }); Array.prototype.toArray =3D Array.prototype.clone; function $w(string) { string =3D string.strip(); return string ? string.split(/\s+/) : []; } if (Prototype.Browser.Opera){ Array.prototype.concat =3D function() { var array =3D []; for (var i =3D 0, length =3D this.length; i < length; i++) = array.push(this[i]); for (var i =3D 0, length =3D arguments.length; i < length; i++) { if (arguments[i].constructor =3D=3D Array) { for (var j =3D 0, arrayLength =3D arguments[i].length; j < = arrayLength; j++) array.push(arguments[i][j]); } else { array.push(arguments[i]); } } return array; } } var Hash =3D function(object) { if (object instanceof Hash) this.merge(object); else Object.extend(this, object || {}); }; Object.extend(Hash, { toQueryString: function(obj) { var parts =3D []; parts.add =3D arguments.callee.addPair; this.prototype._each.call(obj, function(pair) { if (!pair.key) return; var value =3D pair.value; if (value && typeof value =3D=3D 'object') { if (value.constructor =3D=3D Array) value.each(function(value) { parts.add(pair.key, value); }); return; } parts.add(pair.key, value); }); return parts.join('&'); }, toJSON: function(object) { var results =3D []; this.prototype._each.call(object, function(pair) { var value =3D Object.toJSON(pair.value); if (value !=3D=3D undefined) results.push(pair.key.toJSON() + ': ' = + value); }); return '{' + results.join(', ') + '}'; } }); Hash.toQueryString.addPair =3D function(key, value, prefix) { key =3D encodeURIComponent(key); if (value =3D=3D=3D undefined) this.push(key); else this.push(key + '=3D' + (value =3D=3D null ? '' : = encodeURIComponent(value))); } Object.extend(Hash.prototype, Enumerable); Object.extend(Hash.prototype, { _each: function(iterator) { for (var key in this) { var value =3D this[key]; if (value && value =3D=3D Hash.prototype[key]) continue; var pair =3D [key, value]; pair.key =3D key; pair.value =3D value; iterator(pair); } }, keys: function() { return this.pluck('key'); }, values: function() { return this.pluck('value'); }, merge: function(hash) { return $H(hash).inject(this, function(mergedHash, pair) { mergedHash[pair.key] =3D pair.value; return mergedHash; }); }, remove: function() { var result; for(var i =3D 0, length =3D arguments.length; i < length; i++) { var value =3D this[arguments[i]]; if (value !=3D=3D undefined){ if (result =3D=3D=3D undefined) result =3D value; else { if (result.constructor !=3D Array) result =3D [result]; result.push(value) } } delete this[arguments[i]]; } return result; }, toQueryString: function() { return Hash.toQueryString(this); }, inspect: function() { return '#'; }, toJSON: function() { return Hash.toJSON(this); } }); function $H(object) { if (object instanceof Hash) return object; return new Hash(object); }; // Safari iterates over shadowed properties if (function() { var i =3D 0, Test =3D function(value) { this.key =3D value }; Test.prototype.key =3D 'foo'; for (var property in new Test('bar')) i++; return i > 1; }()) Hash.prototype._each =3D function(iterator) { var cache =3D []; for (var key in this) { var value =3D this[key]; if ((value && value =3D=3D Hash.prototype[key]) || = cache.include(key)) continue; cache.push(key); var pair =3D [key, value]; pair.key =3D key; pair.value =3D value; iterator(pair); } }; ObjectRange =3D Class.create(); Object.extend(ObjectRange.prototype, Enumerable); Object.extend(ObjectRange.prototype, { initialize: function(start, end, exclusive) { this.start =3D start; this.end =3D end; this.exclusive =3D exclusive; }, _each: function(iterator) { var value =3D this.start; while (this.include(value)) { iterator(value); value =3D value.succ(); } }, include: function(value) { if (value < this.start) return false; if (this.exclusive) return value < this.end; return value <=3D this.end; } }); var $R =3D function(start, end, exclusive) { return new ObjectRange(start, end, exclusive); } var Ajax =3D { getTransport: function() { return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false; }, activeRequestCount: 0 } Ajax.Responders =3D { responders: [], _each: function(iterator) { this.responders._each(iterator); }, register: function(responder) { if (!this.include(responder)) this.responders.push(responder); }, unregister: function(responder) { this.responders =3D this.responders.without(responder); }, dispatch: function(callback, request, transport, json) { this.each(function(responder) { if (typeof responder[callback] =3D=3D 'function') { try { responder[callback].apply(responder, [request, transport, = json]); } catch (e) {} } }); } }; Object.extend(Ajax.Responders, Enumerable); Ajax.Responders.register({ onCreate: function() { Ajax.activeRequestCount++; }, onComplete: function() { Ajax.activeRequestCount--; } }); Ajax.Base =3D function() {}; Ajax.Base.prototype =3D { setOptions: function(options) { this.options =3D { method: 'post', asynchronous: true, contentType: 'application/x-www-form-urlencoded', encoding: 'UTF-8', parameters: '' } Object.extend(this.options, options || {}); this.options.method =3D this.options.method.toLowerCase(); if (typeof this.options.parameters =3D=3D 'string') this.options.parameters =3D = this.options.parameters.toQueryParams(); } } Ajax.Request =3D Class.create(); Ajax.Request.Events =3D ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), { _complete: false, initialize: function(url, options) { this.transport =3D Ajax.getTransport(); this.setOptions(options); this.request(url); }, request: function(url) { this.url =3D url; this.method =3D this.options.method; var params =3D Object.clone(this.options.parameters); if (!['get', 'post'].include(this.method)) { // simulate other verbs over post params['_method'] =3D this.method; this.method =3D 'post'; } this.parameters =3D params; if (params =3D Hash.toQueryString(params)) { // when GET, append parameters to URL if (this.method =3D=3D 'get') this.url +=3D (this.url.include('?') ? '&' : '?') + params; else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) params +=3D '&_=3D'; } try { if (this.options.onCreate) this.options.onCreate(this.transport); Ajax.Responders.dispatch('onCreate', this, this.transport); this.transport.open(this.method.toUpperCase(), this.url, this.options.asynchronous); if (this.options.asynchronous) setTimeout(function() { this.respondToReadyState(1) = }.bind(this), 10); this.transport.onreadystatechange =3D = this.onStateChange.bind(this); this.setRequestHeaders(); this.body =3D this.method =3D=3D 'post' ? (this.options.postBody = || params) : null; this.transport.send(this.body); /* Force Firefox to handle ready state 4 for synchronous requests = */ if (!this.options.asynchronous && this.transport.overrideMimeType) this.onStateChange(); } catch (e) { this.dispatchException(e); } }, onStateChange: function() { var readyState =3D this.transport.readyState; if (readyState > 1 && !((readyState =3D=3D 4) && this._complete)) this.respondToReadyState(this.transport.readyState); }, setRequestHeaders: function() { var headers =3D { 'X-Requested-With': 'XMLHttpRequest', 'X-Prototype-Version': Prototype.Version, 'Accept': 'text/javascript, text/html, application/xml, text/xml, = */*' }; if (this.method =3D=3D 'post') { headers['Content-type'] =3D this.options.contentType + (this.options.encoding ? '; charset=3D' + this.options.encoding = : ''); /* Force "Connection: close" for older Mozilla browsers to work * around a bug where XMLHttpRequest sends an incorrect * Content-length header. See Mozilla Bugzilla #246651. */ if (this.transport.overrideMimeType && (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < = 2005) headers['Connection'] =3D 'close'; } // user-defined headers if (typeof this.options.requestHeaders =3D=3D 'object') { var extras =3D this.options.requestHeaders; if (typeof extras.push =3D=3D 'function') for (var i =3D 0, length =3D extras.length; i < length; i +=3D = 2) headers[extras[i]] =3D extras[i+1]; else $H(extras).each(function(pair) { headers[pair.key] =3D = pair.value }); } for (var name in headers) this.transport.setRequestHeader(name, headers[name]); }, success: function() { return !this.transport.status || (this.transport.status >=3D 200 && this.transport.status < = 300); }, respondToReadyState: function(readyState) { var state =3D Ajax.Request.Events[readyState]; var transport =3D this.transport, json =3D this.evalJSON(); if (state =3D=3D 'Complete') { try { this._complete =3D true; (this.options['on' + this.transport.status] || this.options['on' + (this.success() ? 'Success' : = 'Failure')] || Prototype.emptyFunction)(transport, json); } catch (e) { this.dispatchException(e); } var contentType =3D this.getHeader('Content-type'); if (contentType && contentType.strip(). match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)) this.evalResponse(); } try { (this.options['on' + state] || Prototype.emptyFunction)(transport, = json); Ajax.Responders.dispatch('on' + state, this, transport, json); } catch (e) { this.dispatchException(e); } if (state =3D=3D 'Complete') { // avoid memory leak in MSIE: clean up this.transport.onreadystatechange =3D Prototype.emptyFunction; } }, getHeader: function(name) { try { return this.transport.getResponseHeader(name); } catch (e) { return null } }, evalJSON: function() { try { var json =3D this.getHeader('X-JSON'); return json ? json.evalJSON() : null; } catch (e) { return null } }, evalResponse: function() { try { return eval((this.transport.responseText || '').unfilterJSON()); } catch (e) { this.dispatchException(e); } }, dispatchException: function(exception) { (this.options.onException || Prototype.emptyFunction)(this, = exception); Ajax.Responders.dispatch('onException', this, exception); } }); Ajax.Updater =3D Class.create(); Object.extend(Object.extend(Ajax.Updater.prototype, = Ajax.Request.prototype), { initialize: function(container, url, options) { this.container =3D { success: (container.success || container), failure: (container.failure || (container.success ? null : = container)) } this.transport =3D Ajax.getTransport(); this.setOptions(options); var onComplete =3D this.options.onComplete || = Prototype.emptyFunction; this.options.onComplete =3D (function(transport, param) { this.updateContent(); onComplete(transport, param); }).bind(this); this.request(url); }, updateContent: function() { var receiver =3D this.container[this.success() ? 'success' : = 'failure']; var response =3D this.transport.responseText; if (!this.options.evalScripts) response =3D response.stripScripts(); if (receiver =3D $(receiver)) { if (this.options.insertion) new this.options.insertion(receiver, response); else receiver.update(response); } if (this.success()) { if (this.onComplete) setTimeout(this.onComplete.bind(this), 10); } } }); Ajax.PeriodicalUpdater =3D Class.create(); Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), { initialize: function(container, url, options) { this.setOptions(options); this.onComplete =3D this.options.onComplete; this.frequency =3D (this.options.frequency || 2); this.decay =3D (this.options.decay || 1); this.updater =3D {}; this.container =3D container; this.url =3D url; this.start(); }, start: function() { this.options.onComplete =3D this.updateComplete.bind(this); this.onTimerEvent(); }, stop: function() { this.updater.options.onComplete =3D undefined; clearTimeout(this.timer); (this.onComplete || Prototype.emptyFunction).apply(this, arguments); }, updateComplete: function(request) { if (this.options.decay) { this.decay =3D (request.responseText =3D=3D this.lastText ? this.decay * this.options.decay : 1); this.lastText =3D request.responseText; } this.timer =3D setTimeout(this.onTimerEvent.bind(this), this.decay * this.frequency * 1000); }, onTimerEvent: function() { this.updater =3D new Ajax.Updater(this.container, this.url, = this.options); } }); function $(element) { if (arguments.length > 1) { for (var i =3D 0, elements =3D [], length =3D arguments.length; i < = length; i++) elements.push($(arguments[i])); return elements; } if (typeof element =3D=3D 'string') element =3D document.getElementById(element); return Element.extend(element); } if (Prototype.BrowserFeatures.XPath) { document._getElementsByXPath =3D function(expression, parentElement) { var results =3D []; var query =3D document.evaluate(expression, $(parentElement) || = document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i =3D 0, length =3D query.snapshotLength; i < length; i++) results.push(query.snapshotItem(i)); return results; }; document.getElementsByClassName =3D function(className, parentElement) = { var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + = " ')]"; return document._getElementsByXPath(q, parentElement); } } else document.getElementsByClassName =3D function(className, = parentElement) { var children =3D ($(parentElement) || = document.body).getElementsByTagName('*'); var elements =3D [], child, pattern =3D new RegExp("(^|\\s)" + = className + "(\\s|$)"); for (var i =3D 0, length =3D children.length; i < length; i++) { child =3D children[i]; var elementClassName =3D child.className; if (elementClassName.length =3D=3D 0) continue; if (elementClassName =3D=3D className || = elementClassName.match(pattern)) elements.push(Element.extend(child)); } return elements; }; /*-----------------------------------------------------------------------= ---*/ if (!window.Element) var Element =3D {}; Element.extend =3D function(element) { var F =3D Prototype.BrowserFeatures; if (!element || !element.tagName || element.nodeType =3D=3D 3 || element._extended || F.SpecificElementExtensions || element =3D=3D = window) return element; var methods =3D {}, tagName =3D element.tagName, cache =3D = Element.extend.cache, T =3D Element.Methods.ByTag; // extend methods for all tags (Safari doesn't need this) if (!F.ElementExtensions) { Object.extend(methods, Element.Methods), Object.extend(methods, Element.Methods.Simulated); } // extend methods for specific tags if (T[tagName]) Object.extend(methods, T[tagName]); for (var property in methods) { var value =3D methods[property]; if (typeof value =3D=3D 'function' && !(property in element)) element[property] =3D cache.findOrStore(value); } element._extended =3D Prototype.emptyFunction; return element; }; Element.extend.cache =3D { findOrStore: function(value) { return this[value] =3D this[value] || function() { return value.apply(null, [this].concat($A(arguments))); } } }; Element.Methods =3D { visible: function(element) { return $(element).style.display !=3D 'none'; }, toggle: function(element) { element =3D $(element); Element[Element.visible(element) ? 'hide' : 'show'](element); return element; }, hide: function(element) { $(element).style.display =3D 'none'; return element; }, show: function(element) { $(element).style.display =3D ''; return element; }, remove: function(element) { element =3D $(element); element.parentNode.removeChild(element); return element; }, update: function(element, html) { html =3D typeof html =3D=3D 'undefined' ? '' : html.toString(); $(element).innerHTML =3D html.stripScripts(); setTimeout(function() {html.evalScripts()}, 10); return element; }, replace: function(element, html) { element =3D $(element); html =3D typeof html =3D=3D 'undefined' ? '' : html.toString(); if (element.outerHTML) { element.outerHTML =3D html.stripScripts(); } else { var range =3D element.ownerDocument.createRange(); range.selectNodeContents(element); element.parentNode.replaceChild( range.createContextualFragment(html.stripScripts()), element); } setTimeout(function() {html.evalScripts()}, 10); return element; }, inspect: function(element) { element =3D $(element); var result =3D '<' + element.tagName.toLowerCase(); $H({'id': 'id', 'className': 'class'}).each(function(pair) { var property =3D pair.first(), attribute =3D pair.last(); var value =3D (element[property] || '').toString(); if (value) result +=3D ' ' + attribute + '=3D' + = value.inspect(true); }); return result + '>'; }, recursivelyCollect: function(element, property) { element =3D $(element); var elements =3D []; while (element =3D element[property]) if (element.nodeType =3D=3D 1) elements.push(Element.extend(element)); return elements; }, ancestors: function(element) { return $(element).recursivelyCollect('parentNode'); }, descendants: function(element) { return = $A($(element).getElementsByTagName('*')).each(Element.extend); }, firstDescendant: function(element) { element =3D $(element).firstChild; while (element && element.nodeType !=3D 1) element =3D = element.nextSibling; return $(element); }, immediateDescendants: function(element) { if (!(element =3D $(element).firstChild)) return []; while (element && element.nodeType !=3D 1) element =3D = element.nextSibling; if (element) return [element].concat($(element).nextSiblings()); return []; }, previousSiblings: function(element) { return $(element).recursivelyCollect('previousSibling'); }, nextSiblings: function(element) { return $(element).recursivelyCollect('nextSibling'); }, siblings: function(element) { element =3D $(element); return = element.previousSiblings().reverse().concat(element.nextSiblings()); }, match: function(element, selector) { if (typeof selector =3D=3D 'string') selector =3D new Selector(selector); return selector.match($(element)); }, up: function(element, expression, index) { element =3D $(element); if (arguments.length =3D=3D 1) return $(element.parentNode); var ancestors =3D element.ancestors(); return expression ? Selector.findElement(ancestors, expression, = index) : ancestors[index || 0]; }, down: function(element, expression, index) { element =3D $(element); if (arguments.length =3D=3D 1) return element.firstDescendant(); var descendants =3D element.descendants(); return expression ? Selector.findElement(descendants, expression, = index) : descendants[index || 0]; }, previous: function(element, expression, index) { element =3D $(element); if (arguments.length =3D=3D 1) return = $(Selector.handlers.previousElementSibling(element)); var previousSiblings =3D element.previousSiblings(); return expression ? Selector.findElement(previousSiblings, = expression, index) : previousSiblings[index || 0]; }, next: function(element, expression, index) { element =3D $(element); if (arguments.length =3D=3D 1) return = $(Selector.handlers.nextElementSibling(element)); var nextSiblings =3D element.nextSiblings(); return expression ? Selector.findElement(nextSiblings, expression, = index) : nextSiblings[index || 0]; }, getElementsBySelector: function() { var args =3D $A(arguments), element =3D $(args.shift()); return Selector.findChildElements(element, args); }, getElementsByClassName: function(element, className) { return document.getElementsByClassName(className, element); }, readAttribute: function(element, name) { element =3D $(element); if (Prototype.Browser.IE) { if (!element.attributes) return null; var t =3D Element._attributeTranslations; if (t.values[name]) return t.values[name](element, name); if (t.names[name]) name =3D t.names[name]; var attribute =3D element.attributes[name]; return attribute ? attribute.nodeValue : null; } return element.getAttribute(name); }, getHeight: function(element) { return $(element).getDimensions().height; }, getWidth: function(element) { return $(element).getDimensions().width; }, classNames: function(element) { return new Element.ClassNames(element); }, hasClassName: function(element, className) { if (!(element =3D $(element))) return; var elementClassName =3D element.className; if (elementClassName.length =3D=3D 0) return false; if (elementClassName =3D=3D className || elementClassName.match(new RegExp("(^|\\s)" + className + = "(\\s|$)"))) return true; return false; }, addClassName: function(element, className) { if (!(element =3D $(element))) return; Element.classNames(element).add(className); return element; }, removeClassName: function(element, className) { if (!(element =3D $(element))) return; Element.classNames(element).remove(className); return element; }, toggleClassName: function(element, className) { if (!(element =3D $(element))) return; Element.classNames(element)[element.hasClassName(className) ? = 'remove' : 'add'](className); return element; }, observe: function() { Event.observe.apply(Event, arguments); return $A(arguments).first(); }, stopObserving: function() { Event.stopObserving.apply(Event, arguments); return $A(arguments).first(); }, // removes whitespace-only text node children cleanWhitespace: function(element) { element =3D $(element); var node =3D element.firstChild; while (node) { var nextNode =3D node.nextSibling; if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue)) element.removeChild(node); node =3D nextNode; } return element; }, empty: function(element) { return $(element).innerHTML.blank(); }, descendantOf: function(element, ancestor) { element =3D $(element), ancestor =3D $(ancestor); while (element =3D element.parentNode) if (element =3D=3D ancestor) return true; return false; }, scrollTo: function(element) { element =3D $(element); var pos =3D Position.cumulativeOffset(element); window.scrollTo(pos[0], pos[1]); return element; }, getStyle: function(element, style) { element =3D $(element); style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize(); var value =3D element.style[style]; if (!value) { var css =3D document.defaultView.getComputedStyle(element, null); value =3D css ? css[style] : null; } if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0; return value =3D=3D 'auto' ? null : value; }, getOpacity: function(element) { return $(element).getStyle('opacity'); }, setStyle: function(element, styles, camelized) { element =3D $(element); var elementStyle =3D element.style; for (var property in styles) if (property =3D=3D 'opacity') = element.setOpacity(styles[property]) else elementStyle[(property =3D=3D 'float' || property =3D=3D = 'cssFloat') ? (elementStyle.styleFloat =3D=3D=3D undefined ? 'cssFloat' : = 'styleFloat') : (camelized ? property : property.camelize())] =3D = styles[property]; return element; }, setOpacity: function(element, value) { element =3D $(element); element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? = '' : (value < 0.00001) ? 0 : value; return element; }, getDimensions: function(element) { element =3D $(element); var display =3D $(element).getStyle('display'); if (display !=3D 'none' && display !=3D null) // Safari bug return {width: element.offsetWidth, height: element.offsetHeight}; // All *Width and *Height properties give 0 on elements with display = none, // so enable the element temporarily var els =3D element.style; var originalVisibility =3D els.visibility; var originalPosition =3D els.position; var originalDisplay =3D els.display; els.visibility =3D 'hidden'; els.position =3D 'absolute'; els.display =3D 'block'; var originalWidth =3D element.clientWidth; var originalHeight =3D element.clientHeight; els.display =3D originalDisplay; els.position =3D originalPosition; els.visibility =3D originalVisibility; return {width: originalWidth, height: originalHeight}; }, makePositioned: function(element) { element =3D $(element); var pos =3D Element.getStyle(element, 'position'); if (pos =3D=3D 'static' || !pos) { element._madePositioned =3D true; element.style.position =3D 'relative'; // Opera returns the offset relative to the positioning context, = when an // element is position relative but top and left have not been = defined if (window.opera) { element.style.top =3D 0; element.style.left =3D 0; } } return element; }, undoPositioned: function(element) { element =3D $(element); if (element._madePositioned) { element._madePositioned =3D undefined; element.style.position =3D element.style.top =3D element.style.left =3D element.style.bottom =3D element.style.right =3D ''; } return element; }, makeClipping: function(element) { element =3D $(element); if (element._overflow) return element; element._overflow =3D element.style.overflow || 'auto'; if ((Element.getStyle(element, 'overflow') || 'visible') !=3D = 'hidden') element.style.overflow =3D 'hidden'; return element; }, undoClipping: function(element) { element =3D $(element); if (!element._overflow) return element; element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : = element._overflow; element._overflow =3D null; return element; } }; Object.extend(Element.Methods, { childOf: Element.Methods.descendantOf, childElements: Element.Methods.immediateDescendants }); if (Prototype.Browser.Opera) { Element.Methods._getStyle =3D Element.Methods.getStyle; Element.Methods.getStyle =3D function(element, style) { switch(style) { case 'left': case 'top': case 'right': case 'bottom': if (Element._getStyle(element, 'position') =3D=3D 'static') = return null; default: return Element._getStyle(element, style); } }; } else if (Prototype.Browser.IE) { Element.Methods.getStyle =3D function(element, style) { element =3D $(element); style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? = 'styleFloat' : style.camelize(); var value =3D element.style[style]; if (!value && element.currentStyle) value =3D = element.currentStyle[style]; if (style =3D=3D 'opacity') { if (value =3D (element.getStyle('filter') || = '').match(/alpha\(opacity=3D(.*)\)/)) if (value[1]) return parseFloat(value[1]) / 100; return 1.0; } if (value =3D=3D 'auto') { if ((style =3D=3D 'width' || style =3D=3D 'height') && = (element.getStyle('display') !=3D 'none')) return element['offset'+style.capitalize()] + 'px'; return null; } return value; }; Element.Methods.setOpacity =3D function(element, value) { element =3D $(element); var filter =3D element.getStyle('filter'), style =3D element.style; if (value =3D=3D 1 || value =3D=3D=3D '') { style.filter =3D filter.replace(/alpha\([^\)]*\)/gi,''); return element; } else if (value < 0.00001) value =3D 0; style.filter =3D filter.replace(/alpha\([^\)]*\)/gi, '') + 'alpha(opacity=3D' + (value * 100) + ')'; return element; }; // IE is missing .innerHTML support for TABLE-related elements Element.Methods.update =3D function(element, html) { element =3D $(element); html =3D typeof html =3D=3D 'undefined' ? '' : html.toString(); var tagName =3D element.tagName.toUpperCase(); if (['THEAD','TBODY','TR','TD'].include(tagName)) { var div =3D document.createElement('div'); switch (tagName) { case 'THEAD': case 'TBODY': div.innerHTML =3D '' + html.stripScripts() + = '
'; depth =3D 2; break; case 'TR': div.innerHTML =3D '' + html.stripScripts() = + '
'; depth =3D 3; break; case 'TD': div.innerHTML =3D '
' + = html.stripScripts() + '
'; depth =3D 4; } $A(element.childNodes).each(function(node) { = element.removeChild(node) }); depth.times(function() { div =3D div.firstChild }); $A(div.childNodes).each(function(node) { element.appendChild(node) = }); } else { element.innerHTML =3D html.stripScripts(); } setTimeout(function() { html.evalScripts() }, 10); return element; } } else if (Prototype.Browser.Gecko) { Element.Methods.setOpacity =3D function(element, value) { element =3D $(element); element.style.opacity =3D (value =3D=3D 1) ? 0.999999 : (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value; return element; }; } Element._attributeTranslations =3D { names: { colspan: "colSpan", rowspan: "rowSpan", valign: "vAlign", datetime: "dateTime", accesskey: "accessKey", tabindex: "tabIndex", enctype: "encType", maxlength: "maxLength", readonly: "readOnly", longdesc: "longDesc" }, values: { _getAttr: function(element, attribute) { return element.getAttribute(attribute, 2); }, _flag: function(element, attribute) { return $(element).hasAttribute(attribute) ? attribute : null; }, style: function(element) { return element.style.cssText.toLowerCase(); }, title: function(element) { var node =3D element.getAttributeNode('title'); return node.specified ? node.nodeValue : null; } } }; (function() { Object.extend(this, { href: this._getAttr, src: this._getAttr, type: this._getAttr, disabled: this._flag, checked: this._flag, readonly: this._flag, multiple: this._flag }); }).call(Element._attributeTranslations.values); Element.Methods.Simulated =3D { hasAttribute: function(element, attribute) { var t =3D Element._attributeTranslations, node; attribute =3D t.names[attribute] || attribute; node =3D $(element).getAttributeNode(attribute); return node && node.specified; } }; Element.Methods.ByTag =3D {}; Object.extend(Element, Element.Methods); if (!Prototype.BrowserFeatures.ElementExtensions && document.createElement('div').__proto__) { window.HTMLElement =3D {}; window.HTMLElement.prototype =3D = document.createElement('div').__proto__; Prototype.BrowserFeatures.ElementExtensions =3D true; } Element.hasAttribute =3D function(element, attribute) { if (element.hasAttribute) return element.hasAttribute(attribute); return Element.Methods.Simulated.hasAttribute(element, attribute); }; Element.addMethods =3D function(methods) { var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag; if (!methods) { Object.extend(Form, Form.Methods); Object.extend(Form.Element, Form.Element.Methods); Object.extend(Element.Methods.ByTag, { "FORM": Object.clone(Form.Methods), "INPUT": Object.clone(Form.Element.Methods), "SELECT": Object.clone(Form.Element.Methods), "TEXTAREA": Object.clone(Form.Element.Methods) }); } if (arguments.length =3D=3D 2) { var tagName =3D methods; methods =3D arguments[1]; } if (!tagName) Object.extend(Element.Methods, methods || {}); else { if (tagName.constructor =3D=3D Array) tagName.each(extend); else extend(tagName); } function extend(tagName) { tagName =3D tagName.toUpperCase(); if (!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName] =3D {}; Object.extend(Element.Methods.ByTag[tagName], methods); } function copy(methods, destination, onlyIfAbsent) { onlyIfAbsent =3D onlyIfAbsent || false; var cache =3D Element.extend.cache; for (var property in methods) { var value =3D methods[property]; if (!onlyIfAbsent || !(property in destination)) destination[property] =3D cache.findOrStore(value); } } function findDOMClass(tagName) { var klass; var trans =3D { "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": = "DList", "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": = "Heading", "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", = "CAPTION": "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", = "THEAD": "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", = "TR": "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": "FrameSet", "IFRAME": "IFrame" }; if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element'; if (window[klass]) return window[klass]; klass =3D 'HTML' + tagName + 'Element'; if (window[klass]) return window[klass]; klass =3D 'HTML' + tagName.capitalize() + 'Element'; if (window[klass]) return window[klass]; window[klass] =3D {}; window[klass].prototype =3D = document.createElement(tagName).__proto__; return window[klass]; } if (F.ElementExtensions) { copy(Element.Methods, HTMLElement.prototype); copy(Element.Methods.Simulated, HTMLElement.prototype, true); } if (F.SpecificElementExtensions) { for (var tag in Element.Methods.ByTag) { var klass =3D findDOMClass(tag); if (typeof klass =3D=3D "undefined") continue; copy(T[tag], klass.prototype); } } Object.extend(Element, Element.Methods); delete Element.ByTag; }; var Toggle =3D { display: Element.toggle }; /*-----------------------------------------------------------------------= ---*/ Abstract.Insertion =3D function(adjacency) { this.adjacency =3D adjacency; } Abstract.Insertion.prototype =3D { initialize: function(element, content) { this.element =3D $(element); this.content =3D content.stripScripts(); if (this.adjacency && this.element.insertAdjacentHTML) { try { this.element.insertAdjacentHTML(this.adjacency, this.content); } catch (e) { var tagName =3D this.element.tagName.toUpperCase(); if (['TBODY', 'TR'].include(tagName)) { this.insertContent(this.contentFromAnonymousTable()); } else { throw e; } } } else { this.range =3D this.element.ownerDocument.createRange(); if (this.initializeRange) this.initializeRange(); = this.insertContent([this.range.createContextualFragment(this.content)]); } setTimeout(function() {content.evalScripts()}, 10); }, contentFromAnonymousTable: function() { var div =3D document.createElement('div'); div.innerHTML =3D '' + this.content + = '
'; return $A(div.childNodes[0].childNodes[0].childNodes); } } var Insertion =3D new Object(); Insertion.Before =3D Class.create(); Insertion.Before.prototype =3D Object.extend(new = Abstract.Insertion('beforeBegin'), { initializeRange: function() { this.range.setStartBefore(this.element); }, insertContent: function(fragments) { fragments.each((function(fragment) { this.element.parentNode.insertBefore(fragment, this.element); }).bind(this)); } }); Insertion.Top =3D Class.create(); Insertion.Top.prototype =3D Object.extend(new = Abstract.Insertion('afterBegin'), { initializeRange: function() { this.range.selectNodeContents(this.element); this.range.collapse(true); }, insertContent: function(fragments) { fragments.reverse(false).each((function(fragment) { this.element.insertBefore(fragment, this.element.firstChild); }).bind(this)); } }); Insertion.Bottom =3D Class.create(); Insertion.Bottom.prototype =3D Object.extend(new = Abstract.Insertion('beforeEnd'), { initializeRange: function() { this.range.selectNodeContents(this.element); this.range.collapse(this.element); }, insertContent: function(fragments) { fragments.each((function(fragment) { this.element.appendChild(fragment); }).bind(this)); } }); Insertion.After =3D Class.create(); Insertion.After.prototype =3D Object.extend(new = Abstract.Insertion('afterEnd'), { initializeRange: function() { this.range.setStartAfter(this.element); }, insertContent: function(fragments) { fragments.each((function(fragment) { this.element.parentNode.insertBefore(fragment, this.element.nextSibling); }).bind(this)); } }); /*-----------------------------------------------------------------------= ---*/ Element.ClassNames =3D Class.create(); Element.ClassNames.prototype =3D { initialize: function(element) { this.element =3D $(element); }, _each: function(iterator) { this.element.className.split(/\s+/).select(function(name) { return name.length > 0; })._each(iterator); }, set: function(className) { this.element.className =3D className; }, add: function(classNameToAdd) { if (this.include(classNameToAdd)) return; this.set($A(this).concat(classNameToAdd).join(' ')); }, remove: function(classNameToRemove) { if (!this.include(classNameToRemove)) return; this.set($A(this).without(classNameToRemove).join(' ')); }, toString: function() { return $A(this).join(' '); } }; Object.extend(Element.ClassNames.prototype, Enumerable); /* Portions of the Selector class are derived from Jack = Slocum=C3=A2=E2=82=AC=E2=84=A2s DomQuery, * part of YUI-Ext version 0.40, distributed under the terms of an = MIT-style * license. Please see http://www.yui-ext.com/ for more information. */ var Selector =3D Class.create(); Selector.prototype =3D { initialize: function(expression) { this.expression =3D expression.strip(); this.compileMatcher(); }, compileMatcher: function() { // Selectors with namespaced attributes can't use the XPath version if (Prototype.BrowserFeatures.XPath && = !(/\[[\w-]*?:/).test(this.expression)) return this.compileXPathMatcher(); var e =3D this.expression, ps =3D Selector.patterns, h =3D = Selector.handlers, c =3D Selector.criteria, le, p, m; if (Selector._cache[e]) { this.matcher =3D Selector._cache[e]; return; } this.matcher =3D ["this.matcher =3D function(root) {", "var r =3D root, h =3D Selector.handlers, c =3D = false, n;"]; while (e && le !=3D e && (/\S/).test(e)) { le =3D e; for (var i in ps) { p =3D ps[i]; if (m =3D e.match(p)) { this.matcher.push(typeof c[i] =3D=3D 'function' ? c[i](m) : new Template(c[i]).evaluate(m)); e =3D e.replace(m[0], ''); break; } } } this.matcher.push("return h.unique(n);\n}"); eval(this.matcher.join('\n')); Selector._cache[this.expression] =3D this.matcher; }, compileXPathMatcher: function() { var e =3D this.expression, ps =3D Selector.patterns, x =3D Selector.xpath, le, m; if (Selector._cache[e]) { this.xpath =3D Selector._cache[e]; return; } this.matcher =3D ['.//*']; while (e && le !=3D e && (/\S/).test(e)) { le =3D e; for (var i in ps) { if (m =3D e.match(ps[i])) { this.matcher.push(typeof x[i] =3D=3D 'function' ? x[i](m) : new Template(x[i]).evaluate(m)); e =3D e.replace(m[0], ''); break; } } } this.xpath =3D this.matcher.join(''); Selector._cache[this.expression] =3D this.xpath; }, findElements: function(root) { root =3D root || document; if (this.xpath) return document._getElementsByXPath(this.xpath, = root); return this.matcher(root); }, match: function(element) { return this.findElements(document).include(element); }, toString: function() { return this.expression; }, inspect: function() { return "#"; } }; Object.extend(Selector, { _cache: {}, xpath: { descendant: "//*", child: "/*", adjacent: "/following-sibling::*[1]", laterSibling: '/following-sibling::*', tagName: function(m) { if (m[1] =3D=3D '*') return ''; return "[local-name()=3D'" + m[1].toLowerCase() + "' or local-name()=3D'" + m[1].toUpperCase() + "']"; }, className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", id: "[@id=3D'#{1}']", attrPresence: "[@#{1}]", attr: function(m) { m[3] =3D m[5] || m[6]; return new Template(Selector.xpath.operators[m[2]]).evaluate(m); }, pseudo: function(m) { var h =3D Selector.xpath.pseudos[m[1]]; if (!h) return ''; if (typeof h =3D=3D=3D 'function') return h(m); return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); }, operators: { '=3D': "[@#{1}=3D'#{3}']", '!=3D': "[@#{1}!=3D'#{3}']", '^=3D': "[starts-with(@#{1}, '#{3}')]", '$=3D': "[substring(@#{1}, (string-length(@#{1}) - = string-length('#{3}') + 1))=3D'#{3}']", '*=3D': "[contains(@#{1}, '#{3}')]", '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" }, pseudos: { 'first-child': '[not(preceding-sibling::*)]', 'last-child': '[not(following-sibling::*)]', 'only-child': '[not(preceding-sibling::* or = following-sibling::*)]', 'empty': "[count(*) =3D 0 and (count(text()) =3D 0 or = translate(text(), ' \t\r\n', '') =3D '')]", 'checked': "[@checked]", 'disabled': "[@disabled]", 'enabled': "[not(@disabled)]", 'not': function(m) { var e =3D m[6], p =3D Selector.patterns, x =3D Selector.xpath, le, m, v; var exclusion =3D []; while (e && le !=3D e && (/\S/).test(e)) { le =3D e; for (var i in p) { if (m =3D e.match(p[i])) { v =3D typeof x[i] =3D=3D 'function' ? x[i](m) : new = Template(x[i]).evaluate(m); exclusion.push("(" + v.substring(1, v.length - 1) + ")"); e =3D e.replace(m[0], ''); break; } } } return "[not(" + exclusion.join(" and ") + ")]"; }, 'nth-child': function(m) { return = Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); }, 'nth-last-child': function(m) { return = Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); }, 'nth-of-type': function(m) { return Selector.xpath.pseudos.nth("position() ", m); }, 'nth-last-of-type': function(m) { return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", = m); }, 'first-of-type': function(m) { m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m); }, 'last-of-type': function(m) { m[6] =3D "1"; return = Selector.xpath.pseudos['nth-last-of-type'](m); }, 'only-of-type': function(m) { var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + = p['last-of-type'](m); }, nth: function(fragment, m) { var mm, formula =3D m[6], predicate; if (formula =3D=3D 'even') formula =3D '2n+0'; if (formula =3D=3D 'odd') formula =3D '2n+1'; if (mm =3D formula.match(/^(\d+)$/)) // digit only return '[' + fragment + "=3D " + mm[1] + ']'; if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b if (mm[1] =3D=3D "-") mm[1] =3D -1; var a =3D mm[1] ? Number(mm[1]) : 1; var b =3D mm[2] ? Number(mm[2]) : 0; predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " + "((#{fragment} - #{b}) div #{a} >=3D 0)]"; return new Template(predicate).evaluate({ fragment: fragment, a: a, b: b }); } } } }, criteria: { tagName: 'n =3D h.tagName(n, r, "#{1}", c); c =3D false;', className: 'n =3D h.className(n, r, "#{1}", c); c =3D false;', id: 'n =3D h.id(n, r, "#{1}", c); c =3D false;', attrPresence: 'n =3D h.attrPresence(n, r, "#{1}"); c =3D false;', attr: function(m) { m[3] =3D (m[5] || m[6]); return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = =3D false;').evaluate(m); }, pseudo: function(m) { if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"'); return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c = =3D false;').evaluate(m); }, descendant: 'c =3D "descendant";', child: 'c =3D "child";', adjacent: 'c =3D "adjacent";', laterSibling: 'c =3D "laterSibling";' }, patterns: { // combinators must be listed first // (and descendant needs to be last combinator) laterSibling: /^\s*~\s*/, child: /^\s*>\s*/, adjacent: /^\s*\+\s*/, descendant: /^\s/, // selectors follow tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, id: /^#([\w\-\*]+)(\b|$)/, className: /^\.([\w\-\*]+)(\b|$)/, pseudo: = /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis= )abled|not)(\((.*?)\))?(\b|$|\s|(?=3D:))/, attrPresence: /^\[([\w]+)\]/, attr: = /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\]]*?)\4|([^'"][^= \]]*?)))?\]/ }, handlers: { // UTILITY FUNCTIONS // joins two collections concat: function(a, b) { for (var i =3D 0, node; node =3D b[i]; i++) a.push(node); return a; }, // marks an array of nodes for counting mark: function(nodes) { for (var i =3D 0, node; node =3D nodes[i]; i++) node._counted =3D true; return nodes; }, unmark: function(nodes) { for (var i =3D 0, node; node =3D nodes[i]; i++) node._counted =3D undefined; return nodes; }, // mark each child node with its position (for nth calls) // "ofType" flag indicates whether we're indexing for nth-of-type // rather than nth-child index: function(parentNode, reverse, ofType) { parentNode._counted =3D true; if (reverse) { for (var nodes =3D parentNode.childNodes, i =3D nodes.length - = 1, j =3D 1; i >=3D 0; i--) { node =3D nodes[i]; if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) = node.nodeIndex =3D j++; } } else { for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node = =3D nodes[i]; i++) if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) = node.nodeIndex =3D j++; } }, // filters out duplicates and extends all nodes unique: function(nodes) { if (nodes.length =3D=3D 0) return nodes; var results =3D [], n; for (var i =3D 0, l =3D nodes.length; i < l; i++) if (!(n =3D nodes[i])._counted) { n._counted =3D true; results.push(Element.extend(n)); } return Selector.handlers.unmark(results); }, // COMBINATOR FUNCTIONS descendant: function(nodes) { var h =3D Selector.handlers; for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) h.concat(results, node.getElementsByTagName('*')); return results; }, child: function(nodes) { var h =3D Selector.handlers; for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) { for (var j =3D 0, children =3D [], child; child =3D = node.childNodes[j]; j++) if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') = results.push(child); } return results; }, adjacent: function(nodes) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) { var next =3D this.nextElementSibling(node); if (next) results.push(next); } return results; }, laterSibling: function(nodes) { var h =3D Selector.handlers; for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) h.concat(results, Element.nextSiblings(node)); return results; }, nextElementSibling: function(node) { while (node =3D node.nextSibling) if (node.nodeType =3D=3D 1) return node; return null; }, previousElementSibling: function(node) { while (node =3D node.previousSibling) if (node.nodeType =3D=3D 1) return node; return null; }, // TOKEN FUNCTIONS tagName: function(nodes, root, tagName, combinator) { tagName =3D tagName.toUpperCase(); var results =3D [], h =3D Selector.handlers; if (nodes) { if (combinator) { // fastlane for ordinary descendant combinators if (combinator =3D=3D "descendant") { for (var i =3D 0, node; node =3D nodes[i]; i++) h.concat(results, node.getElementsByTagName(tagName)); return results; } else nodes =3D this[combinator](nodes); if (tagName =3D=3D "*") return nodes; } for (var i =3D 0, node; node =3D nodes[i]; i++) if (node.tagName.toUpperCase() =3D=3D tagName) = results.push(node); return results; } else return root.getElementsByTagName(tagName); }, id: function(nodes, root, id, combinator) { var targetNode =3D $(id), h =3D Selector.handlers; if (!nodes && root =3D=3D document) return targetNode ? = [targetNode] : []; if (nodes) { if (combinator) { if (combinator =3D=3D 'child') { for (var i =3D 0, node; node =3D nodes[i]; i++) if (targetNode.parentNode =3D=3D node) return = [targetNode]; } else if (combinator =3D=3D 'descendant') { for (var i =3D 0, node; node =3D nodes[i]; i++) if (Element.descendantOf(targetNode, node)) return = [targetNode]; } else if (combinator =3D=3D 'adjacent') { for (var i =3D 0, node; node =3D nodes[i]; i++) if (Selector.handlers.previousElementSibling(targetNode) = =3D=3D node) return [targetNode]; } else nodes =3D h[combinator](nodes); } for (var i =3D 0, node; node =3D nodes[i]; i++) if (node =3D=3D targetNode) return [targetNode]; return []; } return (targetNode && Element.descendantOf(targetNode, root)) ? = [targetNode] : []; }, className: function(nodes, root, className, combinator) { if (nodes && combinator) nodes =3D this[combinator](nodes); return Selector.handlers.byClassName(nodes, root, className); }, byClassName: function(nodes, root, className) { if (!nodes) nodes =3D Selector.handlers.descendant([root]); var needle =3D ' ' + className + ' '; for (var i =3D 0, results =3D [], node, nodeClassName; node =3D = nodes[i]; i++) { nodeClassName =3D node.className; if (nodeClassName.length =3D=3D 0) continue; if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' = ').include(needle)) results.push(node); } return results; }, attrPresence: function(nodes, root, attr) { var results =3D []; for (var i =3D 0, node; node =3D nodes[i]; i++) if (Element.hasAttribute(node, attr)) results.push(node); return results; }, attr: function(nodes, root, attr, value, operator) { if (!nodes) nodes =3D root.getElementsByTagName("*"); var handler =3D Selector.operators[operator], results =3D []; for (var i =3D 0, node; node =3D nodes[i]; i++) { var nodeValue =3D Element.readAttribute(node, attr); if (nodeValue =3D=3D=3D null) continue; if (handler(nodeValue, value)) results.push(node); } return results; }, pseudo: function(nodes, name, value, root, combinator) { if (nodes && combinator) nodes =3D this[combinator](nodes); if (!nodes) nodes =3D root.getElementsByTagName("*"); return Selector.pseudos[name](nodes, value, root); } }, pseudos: { 'first-child': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) { if (Selector.handlers.previousElementSibling(node)) continue; results.push(node); } return results; }, 'last-child': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) { if (Selector.handlers.nextElementSibling(node)) continue; results.push(node); } return results; }, 'only-child': function(nodes, value, root) { var h =3D Selector.handlers; for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) if (!h.previousElementSibling(node) && = !h.nextElementSibling(node)) results.push(node); return results; }, 'nth-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root); }, 'nth-last-child': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true); }, 'nth-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, false, true); }, 'nth-last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, formula, root, true, true); }, 'first-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, false, true); }, 'last-of-type': function(nodes, formula, root) { return Selector.pseudos.nth(nodes, "1", root, true, true); }, 'only-of-type': function(nodes, formula, root) { var p =3D Selector.pseudos; return p['last-of-type'](p['first-of-type'](nodes, formula, root), = formula, root); }, // handles the an+b logic getIndices: function(a, b, total) { if (a =3D=3D 0) return b > 0 ? [b] : []; return $R(1, total).inject([], function(memo, i) { if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i); return memo; }); }, // handles nth(-last)-child, nth(-last)-of-type, and = (first|last)-of-type nth: function(nodes, formula, root, reverse, ofType) { if (nodes.length =3D=3D 0) return []; if (formula =3D=3D 'even') formula =3D '2n+0'; if (formula =3D=3D 'odd') formula =3D '2n+1'; var h =3D Selector.handlers, results =3D [], indexed =3D [], m; h.mark(nodes); for (var i =3D 0, node; node =3D nodes[i]; i++) { if (!node.parentNode._counted) { h.index(node.parentNode, reverse, ofType); indexed.push(node.parentNode); } } if (formula.match(/^\d+$/)) { // just a number formula =3D Number(formula); for (var i =3D 0, node; node =3D nodes[i]; i++) if (node.nodeIndex =3D=3D formula) results.push(node); } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // = an+b if (m[1] =3D=3D "-") m[1] =3D -1; var a =3D m[1] ? Number(m[1]) : 1; var b =3D m[2] ? Number(m[2]) : 0; var indices =3D Selector.pseudos.getIndices(a, b, nodes.length); for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; = i++) { for (var j =3D 0; j < l; j++) if (node.nodeIndex =3D=3D indices[j]) results.push(node); } } h.unmark(nodes); h.unmark(indexed); return results; }, 'empty': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) { // IE treats comments as element nodes if (node.tagName =3D=3D '!' || (node.firstChild && = !node.innerHTML.match(/^\s*$/))) continue; results.push(node); } return results; }, 'not': function(nodes, selector, root) { var h =3D Selector.handlers, selectorType, m; var exclusions =3D new Selector(selector).findElements(root); h.mark(exclusions); for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) if (!node._counted) results.push(node); h.unmark(exclusions); return results; }, 'enabled': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) if (!node.disabled) results.push(node); return results; }, 'disabled': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) if (node.disabled) results.push(node); return results; }, 'checked': function(nodes, value, root) { for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) if (node.checked) results.push(node); return results; } }, operators: { '=3D': function(nv, v) { return nv =3D=3D v; }, '!=3D': function(nv, v) { return nv !=3D v; }, '^=3D': function(nv, v) { return nv.startsWith(v); }, '$=3D': function(nv, v) { return nv.endsWith(v); }, '*=3D': function(nv, v) { return nv.include(v); }, '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + = ' '); }, '|=3D': function(nv, v) { return ('-' + nv.toUpperCase() + = '-').include('-' + v.toUpperCase() + '-'); } }, matchElements: function(elements, expression) { var matches =3D new Selector(expression).findElements(), h =3D = Selector.handlers; h.mark(matches); for (var i =3D 0, results =3D [], element; element =3D elements[i]; = i++) if (element._counted) results.push(element); h.unmark(matches); return results; }, findElement: function(elements, expression, index) { if (typeof expression =3D=3D 'number') { index =3D expression; expression =3D false; } return Selector.matchElements(elements, expression || '*')[index || = 0]; }, findChildElements: function(element, expressions) { var exprs =3D expressions.join(','), expressions =3D []; exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { expressions.push(m[1].strip()); }); var results =3D [], h =3D Selector.handlers; for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) { selector =3D new Selector(expressions[i].strip()); h.concat(results, selector.findElements(element)); } return (l > 1) ? h.unique(results) : results; } }); function $$() { return Selector.findChildElements(document, $A(arguments)); } var Form =3D { reset: function(form) { $(form).reset(); return form; }, serializeElements: function(elements, getHash) { var data =3D elements.inject({}, function(result, element) { if (!element.disabled && element.name) { var key =3D element.name, value =3D $(element).getValue(); if (value !=3D null) { if (key in result) { if (result[key].constructor !=3D Array) result[key] =3D = [result[key]]; result[key].push(value); } else result[key] =3D value; } } return result; }); return getHash ? data : Hash.toQueryString(data); } }; Form.Methods =3D { serialize: function(form, getHash) { return Form.serializeElements(Form.getElements(form), getHash); }, getElements: function(form) { return $A($(form).getElementsByTagName('*')).inject([], function(elements, child) { if (Form.Element.Serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child)); return elements; } ); }, getInputs: function(form, typeName, name) { form =3D $(form); var inputs =3D form.getElementsByTagName('input'); if (!typeName && !name) return $A(inputs).map(Element.extend); for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i = < length; i++) { var input =3D inputs[i]; if ((typeName && input.type !=3D typeName) || (name && input.name = !=3D name)) continue; matchingInputs.push(Element.extend(input)); } return matchingInputs; }, disable: function(form) { form =3D $(form); Form.getElements(form).invoke('disable'); return form; }, enable: function(form) { form =3D $(form); Form.getElements(form).invoke('enable'); return form; }, findFirstElement: function(form) { return $(form).getElements().find(function(element) { return element.type !=3D 'hidden' && !element.disabled && ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase()); }); }, focusFirstElement: function(form) { form =3D $(form); form.findFirstElement().activate(); return form; }, request: function(form, options) { form =3D $(form), options =3D Object.clone(options || {}); var params =3D options.parameters; options.parameters =3D form.serialize(true); if (params) { if (typeof params =3D=3D 'string') params =3D = params.toQueryParams(); Object.extend(options.parameters, params); } if (form.hasAttribute('method') && !options.method) options.method =3D form.method; return new Ajax.Request(form.readAttribute('action'), options); } } /*-----------------------------------------------------------------------= ---*/ Form.Element =3D { focus: function(element) { $(element).focus(); return element; }, select: function(element) { $(element).select(); return element; } } Form.Element.Methods =3D { serialize: function(element) { element =3D $(element); if (!element.disabled && element.name) { var value =3D element.getValue(); if (value !=3D undefined) { var pair =3D {}; pair[element.name] =3D value; return Hash.toQueryString(pair); } } return ''; }, getValue: function(element) { element =3D $(element); var method =3D element.tagName.toLowerCase(); return Form.Element.Serializers[method](element); }, clear: function(element) { $(element).value =3D ''; return element; }, present: function(element) { return $(element).value !=3D ''; }, activate: function(element) { element =3D $(element); try { element.focus(); if (element.select && (element.tagName.toLowerCase() !=3D 'input' = || !['button', 'reset', 'submit'].include(element.type))) element.select(); } catch (e) {} return element; }, disable: function(element) { element =3D $(element); element.blur(); element.disabled =3D true; return element; }, enable: function(element) { element =3D $(element); element.disabled =3D false; return element; } } /*-----------------------------------------------------------------------= ---*/ var Field =3D Form.Element; var $F =3D Form.Element.Methods.getValue; /*-----------------------------------------------------------------------= ---*/ Form.Element.Serializers =3D { input: function(element) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': return Form.Element.Serializers.inputSelector(element); default: return Form.Element.Serializers.textarea(element); } }, inputSelector: function(element) { return element.checked ? element.value : null; }, textarea: function(element) { return element.value; }, select: function(element) { return this[element.type =3D=3D 'select-one' ? 'selectOne' : 'selectMany'](element); }, selectOne: function(element) { var index =3D element.selectedIndex; return index >=3D 0 ? this.optionValue(element.options[index]) : = null; }, selectMany: function(element) { var values, length =3D element.length; if (!length) return null; for (var i =3D 0, values =3D []; i < length; i++) { var opt =3D element.options[i]; if (opt.selected) values.push(this.optionValue(opt)); } return values; }, optionValue: function(opt) { // extend element because hasAttribute may not be native return Element.extend(opt).hasAttribute('value') ? opt.value : = opt.text; } } /*-----------------------------------------------------------------------= ---*/ Abstract.TimedObserver =3D function() {} Abstract.TimedObserver.prototype =3D { initialize: function(element, frequency, callback) { this.frequency =3D frequency; this.element =3D $(element); this.callback =3D callback; this.lastValue =3D this.getValue(); this.registerCallback(); }, registerCallback: function() { setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); }, onTimerEvent: function() { var value =3D this.getValue(); var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' = =3D=3D typeof value ? this.lastValue !=3D value : String(this.lastValue) !=3D = String(value)); if (changed) { this.callback(this.element, value); this.lastValue =3D value; } } } Form.Element.Observer =3D Class.create(); Form.Element.Observer.prototype =3D Object.extend(new = Abstract.TimedObserver(), { getValue: function() { return Form.Element.getValue(this.element); } }); Form.Observer =3D Class.create(); Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), = { getValue: function() { return Form.serialize(this.element); } }); /*-----------------------------------------------------------------------= ---*/ Abstract.EventObserver =3D function() {} Abstract.EventObserver.prototype =3D { initialize: function(element, callback) { this.element =3D $(element); this.callback =3D callback; this.lastValue =3D this.getValue(); if (this.element.tagName.toLowerCase() =3D=3D 'form') this.registerFormCallbacks(); else this.registerCallback(this.element); }, onElementEvent: function() { var value =3D this.getValue(); if (this.lastValue !=3D value) { this.callback(this.element, value); this.lastValue =3D value; } }, registerFormCallbacks: function() { = Form.getElements(this.element).each(this.registerCallback.bind(this)); }, registerCallback: function(element) { if (element.type) { switch (element.type.toLowerCase()) { case 'checkbox': case 'radio': Event.observe(element, 'click', = this.onElementEvent.bind(this)); break; default: Event.observe(element, 'change', = this.onElementEvent.bind(this)); break; } } } } Form.Element.EventObserver =3D Class.create(); Form.Element.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), { getValue: function() { return Form.Element.getValue(this.element); } }); Form.EventObserver =3D Class.create(); Form.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), { getValue: function() { return Form.serialize(this.element); } }); if (!window.Event) { var Event =3D new Object(); } Object.extend(Event, { KEY_BACKSPACE: 8, KEY_TAB: 9, KEY_RETURN: 13, KEY_ESC: 27, KEY_LEFT: 37, KEY_UP: 38, KEY_RIGHT: 39, KEY_DOWN: 40, KEY_DELETE: 46, KEY_HOME: 36, KEY_END: 35, KEY_PAGEUP: 33, KEY_PAGEDOWN: 34, element: function(event) { return $(event.target || event.srcElement); }, isLeftClick: function(event) { return (((event.which) && (event.which =3D=3D 1)) || ((event.button) && (event.button =3D=3D 1))); }, pointerX: function(event) { return event.pageX || (event.clientX + (document.documentElement.scrollLeft || = document.body.scrollLeft)); }, pointerY: function(event) { return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)); }, stop: function(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue =3D false; event.cancelBubble =3D true; } }, // find the first node with the given tagName, starting from the // node the event was triggered on; traverses the DOM upwards findElement: function(event, tagName) { var element =3D Event.element(event); while (element.parentNode && (!element.tagName || (element.tagName.toUpperCase() !=3D tagName.toUpperCase()))) element =3D element.parentNode; return element; }, observers: false, _observeAndCache: function(element, name, observer, useCapture) { if (!this.observers) this.observers =3D []; if (element.addEventListener) { this.observers.push([element, name, observer, useCapture]); element.addEventListener(name, observer, useCapture); } else if (element.attachEvent) { this.observers.push([element, name, observer, useCapture]); element.attachEvent('on' + name, observer); } }, unloadCache: function() { if (!Event.observers) return; for (var i =3D 0, length =3D Event.observers.length; i < length; = i++) { Event.stopObserving.apply(this, Event.observers[i]); Event.observers[i][0] =3D null; } Event.observers =3D false; }, observe: function(element, name, observer, useCapture) { element =3D $(element); useCapture =3D useCapture || false; if (name =3D=3D 'keypress' && (Prototype.Browser.WebKit || element.attachEvent)) name =3D 'keydown'; Event._observeAndCache(element, name, observer, useCapture); }, stopObserving: function(element, name, observer, useCapture) { element =3D $(element); useCapture =3D useCapture || false; if (name =3D=3D 'keypress' && (Prototype.Browser.WebKit || element.attachEvent)) name =3D 'keydown'; if (element.removeEventListener) { element.removeEventListener(name, observer, useCapture); } else if (element.detachEvent) { try { element.detachEvent('on' + name, observer); } catch (e) {} } } }); /* prevent memory leaks in IE */ if (Prototype.Browser.IE) Event.observe(window, 'unload', Event.unloadCache, false); var Position =3D { // set to true if needed, warning: firefox performance problems // NOT neeeded for page scrolling, only if draggable contained in // scrollable elements includeScrollOffsets: false, // must be called before calling withinIncludingScrolloffset, every = time the // page is scrolled prepare: function() { this.deltaX =3D window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; this.deltaY =3D window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; }, realOffset: function(element) { var valueT =3D 0, valueL =3D 0; do { valueT +=3D element.scrollTop || 0; valueL +=3D element.scrollLeft || 0; element =3D element.parentNode; } while (element); return [valueL, valueT]; }, cumulativeOffset: function(element) { var valueT =3D 0, valueL =3D 0; do { valueT +=3D element.offsetTop || 0; valueL +=3D element.offsetLeft || 0; element =3D element.offsetParent; } while (element); return [valueL, valueT]; }, positionedOffset: function(element) { var valueT =3D 0, valueL =3D 0; do { valueT +=3D element.offsetTop || 0; valueL +=3D element.offsetLeft || 0; element =3D element.offsetParent; if (element) { if(element.tagName=3D=3D'BODY') break; var p =3D Element.getStyle(element, 'position'); if (p =3D=3D 'relative' || p =3D=3D 'absolute') break; } } while (element); return [valueL, valueT]; }, offsetParent: function(element) { if (element.offsetParent) return element.offsetParent; if (element =3D=3D document.body) return element; while ((element =3D element.parentNode) && element !=3D = document.body) if (Element.getStyle(element, 'position') !=3D 'static') return element; return document.body; }, // caches x/y coordinate pair to use with overlap within: function(element, x, y) { if (this.includeScrollOffsets) return this.withinIncludingScrolloffsets(element, x, y); this.xcomp =3D x; this.ycomp =3D y; this.offset =3D this.cumulativeOffset(element); return (y >=3D this.offset[1] && y < this.offset[1] + element.offsetHeight && x >=3D this.offset[0] && x < this.offset[0] + element.offsetWidth); }, withinIncludingScrolloffsets: function(element, x, y) { var offsetcache =3D this.realOffset(element); this.xcomp =3D x + offsetcache[0] - this.deltaX; this.ycomp =3D y + offsetcache[1] - this.deltaY; this.offset =3D this.cumulativeOffset(element); return (this.ycomp >=3D this.offset[1] && this.ycomp < this.offset[1] + element.offsetHeight && this.xcomp >=3D this.offset[0] && this.xcomp < this.offset[0] + element.offsetWidth); }, // within must be called directly before overlap: function(mode, element) { if (!mode) return 0; if (mode =3D=3D 'vertical') return ((this.offset[1] + element.offsetHeight) - this.ycomp) / element.offsetHeight; if (mode =3D=3D 'horizontal') return ((this.offset[0] + element.offsetWidth) - this.xcomp) / element.offsetWidth; }, page: function(forElement) { var valueT =3D 0, valueL =3D 0; var element =3D forElement; do { valueT +=3D element.offsetTop || 0; valueL +=3D element.offsetLeft || 0; // Safari fix if (element.offsetParent =3D=3D document.body) if (Element.getStyle(element,'position')=3D=3D'absolute') break; } while (element =3D element.offsetParent); element =3D forElement; do { if (!window.opera || element.tagName=3D=3D'BODY') { valueT -=3D element.scrollTop || 0; valueL -=3D element.scrollLeft || 0; } } while (element =3D element.parentNode); return [valueL, valueT]; }, clone: function(source, target) { var options =3D Object.extend({ setLeft: true, setTop: true, setWidth: true, setHeight: true, offsetTop: 0, offsetLeft: 0 }, arguments[2] || {}) // find page position of source source =3D $(source); var p =3D Position.page(source); // find coordinate system to use target =3D $(target); var delta =3D [0, 0]; var parent =3D null; // delta [0,0] will do fine with position: fixed elements, // position:absolute needs offsetParent deltas if (Element.getStyle(target,'position') =3D=3D 'absolute') { parent =3D Position.offsetParent(target); delta =3D Position.page(parent); } // correct by body offsets (fixes Safari) if (parent =3D=3D document.body) { delta[0] -=3D document.body.offsetLeft; delta[1] -=3D document.body.offsetTop; } // set position if(options.setLeft) target.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px'; if(options.setTop) target.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px'; if(options.setWidth) target.style.width =3D source.offsetWidth + = 'px'; if(options.setHeight) target.style.height =3D source.offsetHeight + = 'px'; }, absolutize: function(element) { element =3D $(element); if (element.style.position =3D=3D 'absolute') return; Position.prepare(); var offsets =3D Position.positionedOffset(element); var top =3D offsets[1]; var left =3D offsets[0]; var width =3D element.clientWidth; var height =3D element.clientHeight; element._originalLeft =3D left - parseFloat(element.style.left || = 0); element._originalTop =3D top - parseFloat(element.style.top || = 0); element._originalWidth =3D element.style.width; element._originalHeight =3D element.style.height; element.style.position =3D 'absolute'; element.style.top =3D top + 'px'; element.style.left =3D left + 'px'; element.style.width =3D width + 'px'; element.style.height =3D height + 'px'; }, relativize: function(element) { element =3D $(element); if (element.style.position =3D=3D 'relative') return; Position.prepare(); element.style.position =3D 'relative'; var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0); var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0); element.style.top =3D top + 'px'; element.style.left =3D left + 'px'; element.style.height =3D element._originalHeight; element.style.width =3D element._originalWidth; } } // Safari returns margins on body which is incorrect if the child is = absolutely // positioned. For performance reasons, redefine = Position.cumulativeOffset for // KHTML/WebKit only. if (Prototype.Browser.WebKit) { Position.cumulativeOffset =3D function(element) { var valueT =3D 0, valueL =3D 0; do { valueT +=3D element.offsetTop || 0; valueL +=3D element.offsetLeft || 0; if (element.offsetParent =3D=3D document.body) if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break; element =3D element.offsetParent; } while (element); return [valueL, valueT]; } } Element.addMethods(); ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/js/javascript/effects.js // script.aculo.us effects.js v1.7.0, Fri Jan 19 19:16:36 CET 2007=0A= =0A= // Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, = http://mir.aculo.us)=0A= // Contributors:=0A= // Justin Palmer (http://encytemedia.com/)=0A= // Mark Pilgrim (http://diveintomark.org/)=0A= // Martin Bialasinki=0A= // =0A= // script.aculo.us is freely distributable under the terms of an = MIT-style license.=0A= // For details, see the script.aculo.us web site: = http://script.aculo.us/ =0A= =0A= // converts rgb() and #xxx to #xxxxxx format, =0A= // returns self (or first argument) if not convertable =0A= String.prototype.parseColor =3D function() { =0A= var color =3D '#';=0A= if(this.slice(0,4) =3D=3D 'rgb(') { =0A= var cols =3D this.slice(4,this.length-1).split(','); =0A= var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while = (++i<3); =0A= } else { =0A= if(this.slice(0,1) =3D=3D '#') { =0A= if(this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D = (this.charAt(i) + this.charAt(i)).toLowerCase(); =0A= if(this.length=3D=3D7) color =3D this.toLowerCase(); =0A= } =0A= } =0A= return(color.length=3D=3D7 ? color : (arguments[0] || this)); =0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Element.collectTextNodes =3D function(element) { =0A= return $A($(element).childNodes).collect( function(node) {=0A= return (node.nodeType=3D=3D3 ? node.nodeValue : =0A= (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A= }).flatten().join('');=0A= }=0A= =0A= Element.collectTextNodesIgnoreClass =3D function(element, className) { =0A= return $A($(element).childNodes).collect( function(node) {=0A= return (node.nodeType=3D=3D3 ? node.nodeValue : =0A= ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A= Element.collectTextNodesIgnoreClass(node, className) : ''));=0A= }).flatten().join('');=0A= }=0A= =0A= Element.setContentZoom =3D function(element, percent) {=0A= element =3D $(element); =0A= element.setStyle({fontSize: (percent/100) + 'em'}); =0A= if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);=0A= return element;=0A= }=0A= =0A= Element.getOpacity =3D function(element){=0A= return $(element).getStyle('opacity');=0A= }=0A= =0A= Element.setOpacity =3D function(element, value){=0A= return $(element).setStyle({opacity:value});=0A= }=0A= =0A= Element.getInlineOpacity =3D function(element){=0A= return $(element).style.opacity || '';=0A= }=0A= =0A= Element.forceRerendering =3D function(element) {=0A= try {=0A= element =3D $(element);=0A= var n =3D document.createTextNode(' ');=0A= element.appendChild(n);=0A= element.removeChild(n);=0A= } catch(e) { }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Array.prototype.call =3D function() {=0A= var args =3D arguments;=0A= this.each(function(f){ f.apply(this, args) });=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Effect =3D {=0A= _elementDoesNotExistError: {=0A= name: 'ElementDoesNotExistError',=0A= message: 'The specified DOM element does not exist, but is required = for this effect to operate'=0A= },=0A= tagifyText: function(element) {=0A= if(typeof Builder =3D=3D 'undefined')=0A= throw("Effect.tagifyText requires including script.aculo.us' = builder.js library");=0A= =0A= var tagifyStyle =3D 'position:relative';=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle = +=3D ';zoom:1';=0A= =0A= element =3D $(element);=0A= $A(element.childNodes).each( function(child) {=0A= if(child.nodeType=3D=3D3) {=0A= child.nodeValue.toArray().each( function(character) {=0A= element.insertBefore(=0A= Builder.node('span',{style: tagifyStyle},=0A= character =3D=3D ' ' ? String.fromCharCode(160) : = character), =0A= child);=0A= });=0A= Element.remove(child);=0A= }=0A= });=0A= },=0A= multiple: function(element, effect) {=0A= var elements;=0A= if(((typeof element =3D=3D 'object') || =0A= (typeof element =3D=3D 'function')) && =0A= (element.length))=0A= elements =3D element;=0A= else=0A= elements =3D $(element).childNodes;=0A= =0A= var options =3D Object.extend({=0A= speed: 0.1,=0A= delay: 0.0=0A= }, arguments[2] || {});=0A= var masterDelay =3D options.delay;=0A= =0A= $A(elements).each( function(element, index) {=0A= new effect(element, Object.extend(options, { delay: index * = options.speed + masterDelay }));=0A= });=0A= },=0A= PAIRS: {=0A= 'slide': ['SlideDown','SlideUp'],=0A= 'blind': ['BlindDown','BlindUp'],=0A= 'appear': ['Appear','Fade']=0A= },=0A= toggle: function(element, effect) {=0A= element =3D $(element);=0A= effect =3D (effect || 'appear').toLowerCase();=0A= var options =3D Object.extend({=0A= queue: { position:'end', scope:(element.id || 'global'), limit: 1 }=0A= }, arguments[2] || {});=0A= Effect[element.visible() ? =0A= Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, = options);=0A= }=0A= };=0A= =0A= var Effect2 =3D Effect; // deprecated=0A= =0A= /* ------------- transitions ------------- */=0A= =0A= Effect.Transitions =3D {=0A= linear: Prototype.K,=0A= sinoidal: function(pos) {=0A= return (-Math.cos(pos*Math.PI)/2) + 0.5;=0A= },=0A= reverse: function(pos) {=0A= return 1-pos;=0A= },=0A= flicker: function(pos) {=0A= return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A= },=0A= wobble: function(pos) {=0A= return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A= },=0A= pulse: function(pos, pulses) { =0A= pulses =3D pulses || 5; =0A= return (=0A= Math.round((pos % (1/pulses)) * pulses) =3D=3D 0 ? =0A= ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : =0A= 1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2))=0A= );=0A= },=0A= none: function(pos) {=0A= return 0;=0A= },=0A= full: function(pos) {=0A= return 1;=0A= }=0A= };=0A= =0A= /* ------------- core effects ------------- */=0A= =0A= Effect.ScopedQueue =3D Class.create();=0A= Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), {=0A= initialize: function() {=0A= this.effects =3D [];=0A= this.interval =3D null;=0A= },=0A= _each: function(iterator) {=0A= this.effects._each(iterator);=0A= },=0A= add: function(effect) {=0A= var timestamp =3D new Date().getTime();=0A= =0A= var position =3D (typeof effect.options.queue =3D=3D 'string') ? =0A= effect.options.queue : effect.options.queue.position;=0A= =0A= switch(position) {=0A= case 'front':=0A= // move unstarted effects after this effect =0A= this.effects.findAll(function(e){ return e.state=3D=3D'idle' = }).each( function(e) {=0A= e.startOn +=3D effect.finishOn;=0A= e.finishOn +=3D effect.finishOn;=0A= });=0A= break;=0A= case 'with-last':=0A= timestamp =3D this.effects.pluck('startOn').max() || timestamp;=0A= break;=0A= case 'end':=0A= // start effect after last queued effect has finished=0A= timestamp =3D this.effects.pluck('finishOn').max() || timestamp;=0A= break;=0A= }=0A= =0A= effect.startOn +=3D timestamp;=0A= effect.finishOn +=3D timestamp;=0A= =0A= if(!effect.options.queue.limit || (this.effects.length < = effect.options.queue.limit))=0A= this.effects.push(effect);=0A= =0A= if(!this.interval) =0A= this.interval =3D setInterval(this.loop.bind(this), 15);=0A= },=0A= remove: function(effect) {=0A= this.effects =3D this.effects.reject(function(e) { return = e=3D=3Deffect });=0A= if(this.effects.length =3D=3D 0) {=0A= clearInterval(this.interval);=0A= this.interval =3D null;=0A= }=0A= },=0A= loop: function() {=0A= var timePos =3D new Date().getTime();=0A= for(var i=3D0, len=3Dthis.effects.length;i=3D this.startOn) {=0A= if(timePos >=3D this.finishOn) {=0A= this.render(1.0);=0A= this.cancel();=0A= this.event('beforeFinish');=0A= if(this.finish) this.finish(); =0A= this.event('afterFinish');=0A= return; =0A= }=0A= var pos =3D (timePos - this.startOn) / (this.finishOn - = this.startOn);=0A= var frame =3D Math.round(pos * this.options.fps * = this.options.duration);=0A= if(frame > this.currentFrame) {=0A= this.render(pos);=0A= this.currentFrame =3D frame;=0A= }=0A= }=0A= },=0A= render: function(pos) {=0A= if(this.state =3D=3D 'idle') {=0A= this.state =3D 'running';=0A= this.event('beforeSetup');=0A= if(this.setup) this.setup();=0A= this.event('afterSetup');=0A= }=0A= if(this.state =3D=3D 'running') {=0A= if(this.options.transition) pos =3D this.options.transition(pos);=0A= pos *=3D (this.options.to-this.options.from);=0A= pos +=3D this.options.from;=0A= this.position =3D pos;=0A= this.event('beforeUpdate');=0A= if(this.update) this.update(pos);=0A= this.event('afterUpdate');=0A= }=0A= },=0A= cancel: function() {=0A= if(!this.options.sync)=0A= Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A= 'global' : this.options.queue.scope).remove(this);=0A= this.state =3D 'finished';=0A= },=0A= event: function(eventName) {=0A= if(this.options[eventName + 'Internal']) this.options[eventName + = 'Internal'](this);=0A= if(this.options[eventName]) this.options[eventName](this);=0A= },=0A= inspect: function() {=0A= var data =3D $H();=0A= for(property in this)=0A= if(typeof this[property] !=3D 'function') data[property] =3D = this[property];=0A= return '#';=0A= }=0A= }=0A= =0A= Effect.Parallel =3D Class.create();=0A= Object.extend(Object.extend(Effect.Parallel.prototype, = Effect.Base.prototype), {=0A= initialize: function(effects) {=0A= this.effects =3D effects || [];=0A= this.start(arguments[1]);=0A= },=0A= update: function(position) {=0A= this.effects.invoke('render', position);=0A= },=0A= finish: function(position) {=0A= this.effects.each( function(effect) {=0A= effect.render(1.0);=0A= effect.cancel();=0A= effect.event('beforeFinish');=0A= if(effect.finish) effect.finish(position);=0A= effect.event('afterFinish');=0A= });=0A= }=0A= });=0A= =0A= Effect.Event =3D Class.create();=0A= Object.extend(Object.extend(Effect.Event.prototype, = Effect.Base.prototype), {=0A= initialize: function() {=0A= var options =3D Object.extend({=0A= duration: 0=0A= }, arguments[0] || {});=0A= this.start(options);=0A= },=0A= update: Prototype.emptyFunction=0A= });=0A= =0A= Effect.Opacity =3D Class.create();=0A= Object.extend(Object.extend(Effect.Opacity.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= if(!this.element) throw(Effect._elementDoesNotExistError);=0A= // make this work on IE on elements without 'layout'=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera && = (!this.element.currentStyle.hasLayout))=0A= this.element.setStyle({zoom: 1});=0A= var options =3D Object.extend({=0A= from: this.element.getOpacity() || 0.0,=0A= to: 1.0=0A= }, arguments[1] || {});=0A= this.start(options);=0A= },=0A= update: function(position) {=0A= this.element.setOpacity(position);=0A= }=0A= });=0A= =0A= Effect.Move =3D Class.create();=0A= Object.extend(Object.extend(Effect.Move.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= if(!this.element) throw(Effect._elementDoesNotExistError);=0A= var options =3D Object.extend({=0A= x: 0,=0A= y: 0,=0A= mode: 'relative'=0A= }, arguments[1] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= // Bug in Opera: Opera returns the "real" position of a static = element or=0A= // relative element that does not have top/left explicitly set.=0A= // =3D=3D> Always set top and left for position relative elements in = your stylesheets =0A= // (to 0 if you do not need them) =0A= this.element.makePositioned();=0A= this.originalLeft =3D parseFloat(this.element.getStyle('left') || = '0');=0A= this.originalTop =3D parseFloat(this.element.getStyle('top') || = '0');=0A= if(this.options.mode =3D=3D 'absolute') {=0A= // absolute movement, so we need to calc deltaX and deltaY=0A= this.options.x =3D this.options.x - this.originalLeft;=0A= this.options.y =3D this.options.y - this.originalTop;=0A= }=0A= },=0A= update: function(position) {=0A= this.element.setStyle({=0A= left: Math.round(this.options.x * position + this.originalLeft) + = 'px',=0A= top: Math.round(this.options.y * position + this.originalTop) + = 'px'=0A= });=0A= }=0A= });=0A= =0A= // for backwards compatibility=0A= Effect.MoveBy =3D function(element, toTop, toLeft) {=0A= return new Effect.Move(element, =0A= Object.extend({ x: toLeft, y: toTop }, arguments[3] || {}));=0A= };=0A= =0A= Effect.Scale =3D Class.create();=0A= Object.extend(Object.extend(Effect.Scale.prototype, = Effect.Base.prototype), {=0A= initialize: function(element, percent) {=0A= this.element =3D $(element);=0A= if(!this.element) throw(Effect._elementDoesNotExistError);=0A= var options =3D Object.extend({=0A= scaleX: true,=0A= scaleY: true,=0A= scaleContent: true,=0A= scaleFromCenter: false,=0A= scaleMode: 'box', // 'box' or 'contents' or {} with = provided values=0A= scaleFrom: 100.0,=0A= scaleTo: percent=0A= }, arguments[2] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= this.restoreAfterFinish =3D this.options.restoreAfterFinish || false;=0A= this.elementPositioning =3D this.element.getStyle('position');=0A= =0A= this.originalStyle =3D {};=0A= ['top','left','width','height','fontSize'].each( function(k) {=0A= this.originalStyle[k] =3D this.element.style[k];=0A= }.bind(this));=0A= =0A= this.originalTop =3D this.element.offsetTop;=0A= this.originalLeft =3D this.element.offsetLeft;=0A= =0A= var fontSize =3D this.element.getStyle('font-size') || '100%';=0A= ['em','px','%','pt'].each( function(fontSizeType) {=0A= if(fontSize.indexOf(fontSizeType)>0) {=0A= this.fontSize =3D parseFloat(fontSize);=0A= this.fontSizeType =3D fontSizeType;=0A= }=0A= }.bind(this));=0A= =0A= this.factor =3D (this.options.scaleTo - this.options.scaleFrom)/100;=0A= =0A= this.dims =3D null;=0A= if(this.options.scaleMode=3D=3D'box')=0A= this.dims =3D [this.element.offsetHeight, = this.element.offsetWidth];=0A= if(/^content/.test(this.options.scaleMode))=0A= this.dims =3D [this.element.scrollHeight, = this.element.scrollWidth];=0A= if(!this.dims)=0A= this.dims =3D [this.options.scaleMode.originalHeight,=0A= this.options.scaleMode.originalWidth];=0A= },=0A= update: function(position) {=0A= var currentScale =3D (this.options.scaleFrom/100.0) + (this.factor * = position);=0A= if(this.options.scaleContent && this.fontSize)=0A= this.element.setStyle({fontSize: this.fontSize * currentScale + = this.fontSizeType });=0A= this.setDimensions(this.dims[0] * currentScale, this.dims[1] * = currentScale);=0A= },=0A= finish: function(position) {=0A= if(this.restoreAfterFinish) = this.element.setStyle(this.originalStyle);=0A= },=0A= setDimensions: function(height, width) {=0A= var d =3D {};=0A= if(this.options.scaleX) d.width =3D Math.round(width) + 'px';=0A= if(this.options.scaleY) d.height =3D Math.round(height) + 'px';=0A= if(this.options.scaleFromCenter) {=0A= var topd =3D (height - this.dims[0])/2;=0A= var leftd =3D (width - this.dims[1])/2;=0A= if(this.elementPositioning =3D=3D 'absolute') {=0A= if(this.options.scaleY) d.top =3D this.originalTop-topd + 'px';=0A= if(this.options.scaleX) d.left =3D this.originalLeft-leftd + = 'px';=0A= } else {=0A= if(this.options.scaleY) d.top =3D -topd + 'px';=0A= if(this.options.scaleX) d.left =3D -leftd + 'px';=0A= }=0A= }=0A= this.element.setStyle(d);=0A= }=0A= });=0A= =0A= Effect.Highlight =3D Class.create();=0A= Object.extend(Object.extend(Effect.Highlight.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= if(!this.element) throw(Effect._elementDoesNotExistError);=0A= var options =3D Object.extend({ startcolor: '#ffff99' }, = arguments[1] || {});=0A= this.start(options);=0A= },=0A= setup: function() {=0A= // Prevent executing on elements not in the layout flow=0A= if(this.element.getStyle('display')=3D=3D'none') { this.cancel(); = return; }=0A= // Disable background image during the effect=0A= this.oldStyle =3D {};=0A= if (!this.options.keepBackgroundImage) {=0A= this.oldStyle.backgroundImage =3D = this.element.getStyle('background-image');=0A= this.element.setStyle({backgroundImage: 'none'});=0A= }=0A= if(!this.options.endcolor)=0A= this.options.endcolor =3D = this.element.getStyle('background-color').parseColor('#ffffff');=0A= if(!this.options.restorecolor)=0A= this.options.restorecolor =3D = this.element.getStyle('background-color');=0A= // init color calculations=0A= this._base =3D $R(0,2).map(function(i){ return = parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A= this._delta =3D $R(0,2).map(function(i){ return = parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] = }.bind(this));=0A= },=0A= update: function(position) {=0A= this.element.setStyle({backgroundColor: = $R(0,2).inject('#',function(m,v,i){=0A= return = m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); = }.bind(this)) });=0A= },=0A= finish: function() {=0A= this.element.setStyle(Object.extend(this.oldStyle, {=0A= backgroundColor: this.options.restorecolor=0A= }));=0A= }=0A= });=0A= =0A= Effect.ScrollTo =3D Class.create();=0A= Object.extend(Object.extend(Effect.ScrollTo.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= this.start(arguments[1] || {});=0A= },=0A= setup: function() {=0A= Position.prepare();=0A= var offsets =3D Position.cumulativeOffset(this.element);=0A= if(this.options.offset) offsets[1] +=3D this.options.offset;=0A= var max =3D window.innerHeight ? =0A= window.height - window.innerHeight :=0A= document.body.scrollHeight - =0A= (document.documentElement.clientHeight ? =0A= document.documentElement.clientHeight : = document.body.clientHeight);=0A= this.scrollStart =3D Position.deltaY;=0A= this.delta =3D (offsets[1] > max ? max : offsets[1]) - = this.scrollStart;=0A= },=0A= update: function(position) {=0A= Position.prepare();=0A= window.scrollTo(Position.deltaX, =0A= this.scrollStart + (position*this.delta));=0A= }=0A= });=0A= =0A= /* ------------- combination effects ------------- */=0A= =0A= Effect.Fade =3D function(element) {=0A= element =3D $(element);=0A= var oldOpacity =3D element.getInlineOpacity();=0A= var options =3D Object.extend({=0A= from: element.getOpacity() || 1.0,=0A= to: 0.0,=0A= afterFinishInternal: function(effect) { =0A= if(effect.options.to!=3D0) return;=0A= effect.element.hide().setStyle({opacity: oldOpacity}); =0A= }}, arguments[1] || {});=0A= return new Effect.Opacity(element,options);=0A= }=0A= =0A= Effect.Appear =3D function(element) {=0A= element =3D $(element);=0A= var options =3D Object.extend({=0A= from: (element.getStyle('display') =3D=3D 'none' ? 0.0 : = element.getOpacity() || 0.0),=0A= to: 1.0,=0A= // force Safari to render floated elements properly=0A= afterFinishInternal: function(effect) {=0A= effect.element.forceRerendering();=0A= },=0A= beforeSetup: function(effect) {=0A= effect.element.setOpacity(effect.options.from).show(); =0A= }}, arguments[1] || {});=0A= return new Effect.Opacity(element,options);=0A= }=0A= =0A= Effect.Puff =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D { =0A= opacity: element.getInlineOpacity(), =0A= position: element.getStyle('position'),=0A= top: element.style.top,=0A= left: element.style.left,=0A= width: element.style.width,=0A= height: element.style.height=0A= };=0A= return new Effect.Parallel(=0A= [ new Effect.Scale(element, 200, =0A= { sync: true, scaleFromCenter: true, scaleContent: true, = restoreAfterFinish: true }), =0A= new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], =0A= Object.extend({ duration: 1.0, =0A= beforeSetupInternal: function(effect) {=0A= Position.absolutize(effect.effects[0].element)=0A= },=0A= afterFinishInternal: function(effect) {=0A= effect.effects[0].element.hide().setStyle(oldStyle); }=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.BlindUp =3D function(element) {=0A= element =3D $(element);=0A= element.makeClipping();=0A= return new Effect.Scale(element, 0,=0A= Object.extend({ scaleContent: false, =0A= scaleX: false, =0A= restoreAfterFinish: true,=0A= afterFinishInternal: function(effect) {=0A= effect.element.hide().undoClipping();=0A= } =0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.BlindDown =3D function(element) {=0A= element =3D $(element);=0A= var elementDimensions =3D element.getDimensions();=0A= return new Effect.Scale(element, 100, Object.extend({ =0A= scaleContent: false, =0A= scaleX: false,=0A= scaleFrom: 0,=0A= scaleMode: {originalHeight: elementDimensions.height, originalWidth: = elementDimensions.width},=0A= restoreAfterFinish: true,=0A= afterSetup: function(effect) {=0A= effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A= }, =0A= afterFinishInternal: function(effect) {=0A= effect.element.undoClipping();=0A= }=0A= }, arguments[1] || {}));=0A= }=0A= =0A= Effect.SwitchOff =3D function(element) {=0A= element =3D $(element);=0A= var oldOpacity =3D element.getInlineOpacity();=0A= return new Effect.Appear(element, Object.extend({=0A= duration: 0.4,=0A= from: 0,=0A= transition: Effect.Transitions.flicker,=0A= afterFinishInternal: function(effect) {=0A= new Effect.Scale(effect.element, 1, { =0A= duration: 0.3, scaleFromCenter: true,=0A= scaleX: false, scaleContent: false, restoreAfterFinish: true,=0A= beforeSetup: function(effect) { =0A= effect.element.makePositioned().makeClipping();=0A= },=0A= afterFinishInternal: function(effect) {=0A= = effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: = oldOpacity});=0A= }=0A= })=0A= }=0A= }, arguments[1] || {}));=0A= }=0A= =0A= Effect.DropOut =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: element.getStyle('top'),=0A= left: element.getStyle('left'),=0A= opacity: element.getInlineOpacity() };=0A= return new Effect.Parallel(=0A= [ new Effect.Move(element, {x: 0, y: 100, sync: true }), =0A= new Effect.Opacity(element, { sync: true, to: 0.0 }) ],=0A= Object.extend(=0A= { duration: 0.5,=0A= beforeSetup: function(effect) {=0A= effect.effects[0].element.makePositioned(); =0A= },=0A= afterFinishInternal: function(effect) {=0A= = effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);=0A= } =0A= }, arguments[1] || {}));=0A= }=0A= =0A= Effect.Shake =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: element.getStyle('top'),=0A= left: element.getStyle('left') };=0A= return new Effect.Move(element, =0A= { x: 20, y: 0, duration: 0.05, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: 40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: 40, y: 0, duration: 0.1, afterFinishInternal: = function(effect) {=0A= new Effect.Move(effect.element,=0A= { x: -20, y: 0, duration: 0.05, afterFinishInternal: = function(effect) {=0A= effect.element.undoPositioned().setStyle(oldStyle);=0A= }}) }}) }}) }}) }}) }});=0A= }=0A= =0A= Effect.SlideDown =3D function(element) {=0A= element =3D $(element).cleanWhitespace();=0A= // SlideDown need to have the content of the element wrapped in a = container element with fixed height!=0A= var oldInnerBottom =3D element.down().getStyle('bottom');=0A= var elementDimensions =3D element.getDimensions();=0A= return new Effect.Scale(element, 100, Object.extend({ =0A= scaleContent: false, =0A= scaleX: false, =0A= scaleFrom: window.opera ? 0 : 1,=0A= scaleMode: {originalHeight: elementDimensions.height, originalWidth: = elementDimensions.width},=0A= restoreAfterFinish: true,=0A= afterSetup: function(effect) {=0A= effect.element.makePositioned();=0A= effect.element.down().makePositioned();=0A= if(window.opera) effect.element.setStyle({top: ''});=0A= effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A= },=0A= afterUpdateInternal: function(effect) {=0A= effect.element.down().setStyle({bottom:=0A= (effect.dims[0] - effect.element.clientHeight) + 'px' }); =0A= },=0A= afterFinishInternal: function(effect) {=0A= effect.element.undoClipping().undoPositioned();=0A= effect.element.down().undoPositioned().setStyle({bottom: = oldInnerBottom}); }=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= Effect.SlideUp =3D function(element) {=0A= element =3D $(element).cleanWhitespace();=0A= var oldInnerBottom =3D element.down().getStyle('bottom');=0A= return new Effect.Scale(element, window.opera ? 0 : 1,=0A= Object.extend({ scaleContent: false, =0A= scaleX: false, =0A= scaleMode: 'box',=0A= scaleFrom: 100,=0A= restoreAfterFinish: true,=0A= beforeStartInternal: function(effect) {=0A= effect.element.makePositioned();=0A= effect.element.down().makePositioned();=0A= if(window.opera) effect.element.setStyle({top: ''});=0A= effect.element.makeClipping().show();=0A= }, =0A= afterUpdateInternal: function(effect) {=0A= effect.element.down().setStyle({bottom:=0A= (effect.dims[0] - effect.element.clientHeight) + 'px' });=0A= },=0A= afterFinishInternal: function(effect) {=0A= = effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: = oldInnerBottom});=0A= effect.element.down().undoPositioned();=0A= }=0A= }, arguments[1] || {})=0A= );=0A= }=0A= =0A= // Bug in opera makes the TD containing this element expand for a = instance after finish =0A= Effect.Squish =3D function(element) {=0A= return new Effect.Scale(element, window.opera ? 1 : 0, { =0A= restoreAfterFinish: true,=0A= beforeSetup: function(effect) {=0A= effect.element.makeClipping(); =0A= }, =0A= afterFinishInternal: function(effect) {=0A= effect.element.hide().undoClipping(); =0A= }=0A= });=0A= }=0A= =0A= Effect.Grow =3D function(element) {=0A= element =3D $(element);=0A= var options =3D Object.extend({=0A= direction: 'center',=0A= moveTransition: Effect.Transitions.sinoidal,=0A= scaleTransition: Effect.Transitions.sinoidal,=0A= opacityTransition: Effect.Transitions.full=0A= }, arguments[1] || {});=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= height: element.style.height,=0A= width: element.style.width,=0A= opacity: element.getInlineOpacity() };=0A= =0A= var dims =3D element.getDimensions(); =0A= var initialMoveX, initialMoveY;=0A= var moveX, moveY;=0A= =0A= switch (options.direction) {=0A= case 'top-left':=0A= initialMoveX =3D initialMoveY =3D moveX =3D moveY =3D 0; =0A= break;=0A= case 'top-right':=0A= initialMoveX =3D dims.width;=0A= initialMoveY =3D moveY =3D 0;=0A= moveX =3D -dims.width;=0A= break;=0A= case 'bottom-left':=0A= initialMoveX =3D moveX =3D 0;=0A= initialMoveY =3D dims.height;=0A= moveY =3D -dims.height;=0A= break;=0A= case 'bottom-right':=0A= initialMoveX =3D dims.width;=0A= initialMoveY =3D dims.height;=0A= moveX =3D -dims.width;=0A= moveY =3D -dims.height;=0A= break;=0A= case 'center':=0A= initialMoveX =3D dims.width / 2;=0A= initialMoveY =3D dims.height / 2;=0A= moveX =3D -dims.width / 2;=0A= moveY =3D -dims.height / 2;=0A= break;=0A= }=0A= =0A= return new Effect.Move(element, {=0A= x: initialMoveX,=0A= y: initialMoveY,=0A= duration: 0.01, =0A= beforeSetup: function(effect) {=0A= effect.element.hide().makeClipping().makePositioned();=0A= },=0A= afterFinishInternal: function(effect) {=0A= new Effect.Parallel(=0A= [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, = from: 0.0, transition: options.opacityTransition }),=0A= new Effect.Move(effect.element, { x: moveX, y: moveY, sync: = true, transition: options.moveTransition }),=0A= new Effect.Scale(effect.element, 100, {=0A= scaleMode: { originalHeight: dims.height, originalWidth: = dims.width }, =0A= sync: true, scaleFrom: window.opera ? 1 : 0, transition: = options.scaleTransition, restoreAfterFinish: true})=0A= ], Object.extend({=0A= beforeSetup: function(effect) {=0A= effect.effects[0].element.setStyle({height: = '0px'}).show(); =0A= },=0A= afterFinishInternal: function(effect) {=0A= = effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldSty= le); =0A= }=0A= }, options)=0A= )=0A= }=0A= });=0A= }=0A= =0A= Effect.Shrink =3D function(element) {=0A= element =3D $(element);=0A= var options =3D Object.extend({=0A= direction: 'center',=0A= moveTransition: Effect.Transitions.sinoidal,=0A= scaleTransition: Effect.Transitions.sinoidal,=0A= opacityTransition: Effect.Transitions.none=0A= }, arguments[1] || {});=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= height: element.style.height,=0A= width: element.style.width,=0A= opacity: element.getInlineOpacity() };=0A= =0A= var dims =3D element.getDimensions();=0A= var moveX, moveY;=0A= =0A= switch (options.direction) {=0A= case 'top-left':=0A= moveX =3D moveY =3D 0;=0A= break;=0A= case 'top-right':=0A= moveX =3D dims.width;=0A= moveY =3D 0;=0A= break;=0A= case 'bottom-left':=0A= moveX =3D 0;=0A= moveY =3D dims.height;=0A= break;=0A= case 'bottom-right':=0A= moveX =3D dims.width;=0A= moveY =3D dims.height;=0A= break;=0A= case 'center': =0A= moveX =3D dims.width / 2;=0A= moveY =3D dims.height / 2;=0A= break;=0A= }=0A= =0A= return new Effect.Parallel(=0A= [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, = transition: options.opacityTransition }),=0A= new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, = transition: options.scaleTransition, restoreAfterFinish: true}),=0A= new Effect.Move(element, { x: moveX, y: moveY, sync: true, = transition: options.moveTransition })=0A= ], Object.extend({ =0A= beforeStartInternal: function(effect) {=0A= effect.effects[0].element.makePositioned().makeClipping(); =0A= },=0A= afterFinishInternal: function(effect) {=0A= = effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle= (oldStyle); }=0A= }, options)=0A= );=0A= }=0A= =0A= Effect.Pulsate =3D function(element) {=0A= element =3D $(element);=0A= var options =3D arguments[1] || {};=0A= var oldOpacity =3D element.getInlineOpacity();=0A= var transition =3D options.transition || Effect.Transitions.sinoidal;=0A= var reverser =3D function(pos){ return = transition(1-Effect.Transitions.pulse(pos, options.pulses)) };=0A= reverser.bind(transition);=0A= return new Effect.Opacity(element, =0A= Object.extend(Object.extend({ duration: 2.0, from: 0,=0A= afterFinishInternal: function(effect) { = effect.element.setStyle({opacity: oldOpacity}); }=0A= }, options), {transition: reverser}));=0A= }=0A= =0A= Effect.Fold =3D function(element) {=0A= element =3D $(element);=0A= var oldStyle =3D {=0A= top: element.style.top,=0A= left: element.style.left,=0A= width: element.style.width,=0A= height: element.style.height };=0A= element.makeClipping();=0A= return new Effect.Scale(element, 5, Object.extend({ =0A= scaleContent: false,=0A= scaleX: false,=0A= afterFinishInternal: function(effect) {=0A= new Effect.Scale(element, 1, { =0A= scaleContent: false, =0A= scaleY: false,=0A= afterFinishInternal: function(effect) {=0A= effect.element.hide().undoClipping().setStyle(oldStyle);=0A= } });=0A= }}, arguments[1] || {}));=0A= };=0A= =0A= Effect.Morph =3D Class.create();=0A= Object.extend(Object.extend(Effect.Morph.prototype, = Effect.Base.prototype), {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= if(!this.element) throw(Effect._elementDoesNotExistError);=0A= var options =3D Object.extend({=0A= style: {}=0A= }, arguments[1] || {});=0A= if (typeof options.style =3D=3D 'string') {=0A= if(options.style.indexOf(':') =3D=3D -1) {=0A= var cssText =3D '', selector =3D '.' + options.style;=0A= $A(document.styleSheets).reverse().each(function(styleSheet) {=0A= if (styleSheet.cssRules) cssRules =3D styleSheet.cssRules;=0A= else if (styleSheet.rules) cssRules =3D styleSheet.rules;=0A= $A(cssRules).reverse().each(function(rule) {=0A= if (selector =3D=3D rule.selectorText) {=0A= cssText =3D rule.style.cssText;=0A= throw $break;=0A= }=0A= });=0A= if (cssText) throw $break;=0A= });=0A= this.style =3D cssText.parseStyle();=0A= options.afterFinishInternal =3D function(effect){=0A= effect.element.addClassName(effect.options.style);=0A= effect.transforms.each(function(transform) {=0A= if(transform.style !=3D 'opacity')=0A= effect.element.style[transform.style.camelize()] =3D '';=0A= });=0A= }=0A= } else this.style =3D options.style.parseStyle();=0A= } else this.style =3D $H(options.style)=0A= this.start(options);=0A= },=0A= setup: function(){=0A= function parseColor(color){=0A= if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) = color =3D '#ffffff';=0A= color =3D color.parseColor();=0A= return $R(0,2).map(function(i){=0A= return parseInt( color.slice(i*2+1,i*2+3), 16 ) =0A= });=0A= }=0A= this.transforms =3D this.style.map(function(pair){=0A= var property =3D pair[0].underscore().dasherize(), value =3D = pair[1], unit =3D null;=0A= =0A= if(value.parseColor('#zzzzzz') !=3D '#zzzzzz') {=0A= value =3D value.parseColor();=0A= unit =3D 'color';=0A= } else if(property =3D=3D 'opacity') {=0A= value =3D parseFloat(value);=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera && = (!this.element.currentStyle.hasLayout))=0A= this.element.setStyle({zoom: 1});=0A= } else if(Element.CSS_LENGTH.test(value)) =0A= var components =3D value.match(/^([\+\-]?[0-9\.]+)(.*)$/),=0A= value =3D parseFloat(components[1]), unit =3D = (components.length =3D=3D 3) ? components[2] : null;=0A= =0A= var originalValue =3D this.element.getStyle(property);=0A= return $H({ =0A= style: property, =0A= originalValue: unit=3D=3D'color' ? parseColor(originalValue) : = parseFloat(originalValue || 0), =0A= targetValue: unit=3D=3D'color' ? parseColor(value) : value,=0A= unit: unit=0A= });=0A= }.bind(this)).reject(function(transform){=0A= return (=0A= (transform.originalValue =3D=3D transform.targetValue) ||=0A= (=0A= transform.unit !=3D 'color' &&=0A= (isNaN(transform.originalValue) || = isNaN(transform.targetValue))=0A= )=0A= )=0A= });=0A= },=0A= update: function(position) {=0A= var style =3D $H(), value =3D null;=0A= this.transforms.each(function(transform){=0A= value =3D transform.unit=3D=3D'color' ?=0A= $R(0,2).inject('#',function(m,v,i){=0A= return m+(Math.round(transform.originalValue[i]+=0A= (transform.targetValue[i] - = transform.originalValue[i])*position)).toColorPart() }) : =0A= transform.originalValue + Math.round(=0A= ((transform.targetValue - transform.originalValue) * position) = * 1000)/1000 + transform.unit;=0A= style[transform.style] =3D value;=0A= });=0A= this.element.setStyle(style);=0A= }=0A= });=0A= =0A= Effect.Transform =3D Class.create();=0A= Object.extend(Effect.Transform.prototype, {=0A= initialize: function(tracks){=0A= this.tracks =3D [];=0A= this.options =3D arguments[1] || {};=0A= this.addTracks(tracks);=0A= },=0A= addTracks: function(tracks){=0A= tracks.each(function(track){=0A= var data =3D $H(track).values().first();=0A= this.tracks.push($H({=0A= ids: $H(track).keys().first(),=0A= effect: Effect.Morph,=0A= options: { style: data }=0A= }));=0A= }.bind(this));=0A= return this;=0A= },=0A= play: function(){=0A= return new Effect.Parallel(=0A= this.tracks.map(function(track){=0A= var elements =3D [$(track.ids) || $$(track.ids)].flatten();=0A= return elements.map(function(e){ return new track.effect(e, = Object.extend({ sync:true }, track.options)) });=0A= }).flatten(),=0A= this.options=0A= );=0A= }=0A= });=0A= =0A= Element.CSS_PROPERTIES =3D $w(=0A= 'backgroundColor backgroundPosition borderBottomColor = borderBottomStyle ' + =0A= 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +=0A= 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +=0A= 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +=0A= 'fontSize fontWeight height left letterSpacing lineHeight ' +=0A= 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight = '+=0A= 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +=0A= 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +=0A= 'right textIndent top width wordSpacing zIndex');=0A= =0A= Element.CSS_LENGTH =3D = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;=0A= =0A= String.prototype.parseStyle =3D function(){=0A= var element =3D Element.extend(document.createElement('div'));=0A= element.innerHTML =3D '
';=0A= var style =3D element.down().style, styleRules =3D $H();=0A= =0A= Element.CSS_PROPERTIES.each(function(property){=0A= if(style[property]) styleRules[property] =3D style[property]; =0A= });=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera && = this.indexOf('opacity') > -1) {=0A= styleRules.opacity =3D = this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];=0A= }=0A= return styleRules;=0A= };=0A= =0A= Element.morph =3D function(element, style) {=0A= new Effect.Morph(element, Object.extend({ style: style }, arguments[2] = || {}));=0A= return element;=0A= };=0A= =0A= ['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setCont= entZoom',=0A= 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( =0A= function(f) { Element.Methods[f] =3D Element[f]; }=0A= );=0A= =0A= Element.Methods.visualEffect =3D function(element, effect, options) {=0A= s =3D effect.gsub(/_/, '-').camelize();=0A= effect_class =3D s.charAt(0).toUpperCase() + s.substring(1);=0A= new Effect[effect_class](element, options);=0A= return $(element);=0A= };=0A= =0A= Element.addMethods(); ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.vanderbilt.edu/Admissions/js/javascript/accordion.js // accordion.js v2.0 // // Copyright (c) 2007 stickmanlabs // Author: Kevin P Miller | http://www.stickmanlabs.com //=20 // Accordion is freely distributable under the terms of an MIT-style = license. // // I don't care what you think about the file size... // Be a pro:=20 // = http://www.thinkvitamin.com/features/webapps/serving-javascript-fast // = http://rakaz.nl/item/make_your_pages_load_faster_by_combining_and_compres= sing_javascript_and_css_files // /*-----------------------------------------------------------------------= ------------------------*/ if (typeof Effect =3D=3D 'undefined')=20 throw("accordion.js requires including script.aculo.us' effects.js = library!"); var accordion =3D Class.create(); accordion.prototype =3D { // // Setup the Variables // showAccordion : null, currentAccordion : null, duration : null, effects : [], animating : false, =09 // =20 // Initialize the accordions // initialize: function(container, options) { if (!$(container)) { throw(container+" doesn't exist!"); return false; } =20 this.options =3D Object.extend({ resizeSpeed : 8, classNames : { toggle : 'accordion_toggle', toggleActive : 'accordion_toggle_active', content : 'accordion_content' }, defaultSize : { height : null, width : null }, direction : 'vertical', onEvent : 'click' }, options || {}); =09 this.duration =3D ((11-this.options.resizeSpeed)*0.15); var accordions =3D $$('#'+container+' = .'+this.options.classNames.toggle); accordions.each(function(accordion) { Event.observe(accordion, this.options.onEvent, = this.activate.bind(this, accordion), false); if (this.options.onEvent =3D=3D 'click') { accordion.onclick =3D function() {return false;}; } =09 if (this.options.direction =3D=3D 'horizontal') { var options =3D $H({width: '0px'}); } else { var options =3D $H({height: '0px'}); =09 } options.merge({display: 'none'}); =09 =09 this.currentAccordion =3D $(accordion.next(0)).setStyle(options); =09 }.bind(this)); }, =09 // // Activate an accordion // activate : function(accordion) { if (this.animating) { return false; } =09 this.effects =3D []; =09 this.currentAccordion =3D $(accordion.next(0)); this.currentAccordion.setStyle({ display: 'block' }); =09 =09 = this.currentAccordion.previous(0).addClassName(this.options.classNames.to= ggleActive); if (this.options.direction =3D=3D 'horizontal') { this.scaling =3D $H({ scaleX: true, scaleY: false }); } else { this.scaling =3D $H({ scaleX: false, scaleY: true }); =09 } =09 if (this.currentAccordion =3D=3D this.showAccordion) { this.deactivate(); } else { this._handleAccordion(); } }, //=20 // Deactivate an active accordion // deactivate : function() { var options =3D $H({ duration: this.duration, scaleContent: false, transition: Effect.Transitions.sinoidal, queue: { position: 'end',=20 scope: 'accordionAnimation' }, scaleMode: {=20 originalHeight: this.options.defaultSize.height ? = this.options.defaultSize.height : this.currentAccordion.scrollHeight, originalWidth: this.options.defaultSize.width ? = this.options.defaultSize.width : this.currentAccordion.scrollWidth }, afterFinish: function() { this.showAccordion.setStyle({ height: 'auto', display: 'none' }); =09 this.showAccordion =3D null; this.animating =3D false; }.bind(this) }); =20 options.merge(this.scaling); = this.showAccordion.previous(0).removeClassName(this.options.classNames.to= ggleActive); =20 new Effect.Scale(this.showAccordion, 0, options); }, // // Handle the open/close actions of the accordion // _handleAccordion : function() { var options =3D $H({ sync: true, scaleFrom: 0, scaleContent: false, transition: Effect.Transitions.sinoidal, scaleMode: {=20 originalHeight: this.options.defaultSize.height ? = this.options.defaultSize.height : this.currentAccordion.scrollHeight, originalWidth: this.options.defaultSize.width ? = this.options.defaultSize.width : this.currentAccordion.scrollWidth } }); options.merge(this.scaling); =09 this.effects.push( new Effect.Scale(this.currentAccordion, 100, options) ); if (this.showAccordion) { = this.showAccordion.previous(0).removeClassName(this.options.classNames.to= ggleActive); =09 options =3D $H({ sync: true, scaleContent: false, transition: Effect.Transitions.sinoidal }); options.merge(this.scaling); =09 this.effects.push( new Effect.Scale(this.showAccordion, 0, options) ); =09 } =09 new Effect.Parallel(this.effects, { duration: this.duration,=20 queue: { position: 'end',=20 scope: 'accordionAnimation' }, beforeStart: function() { this.animating =3D true; }.bind(this), afterFinish: function() { if (this.showAccordion) { this.showAccordion.setStyle({ display: 'none' }); =09 } $(this.currentAccordion).setStyle({ height: 'auto' }); this.showAccordion =3D this.currentAccordion; this.animating =3D false; }.bind(this) }); } } ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://feeds2.feedburner.com/TheVandyAdmissionsBlog?format=sigpro&nItems=5 document.write('
');=0A= document.write('
    ');=0A= document.write('
  • Waitlist Released: = VU 2013 Class Full');=0A= document.write('
    Later today we will be emailing official word that = we are releasing our waitlist for the Vanderbilt class of…
    ');=0A= document.write('
  • ');=0A= document.write('
  • On My Way');=0A= document.write('
    Good morning blog readers, friends, and people who = were mysteriously sent here using Bing: This blog began several = years…
    ');=0A= document.write('
  • ');=0A= document.write('
  • Common App = Available for VU Class of 2014');=0A= document.write('
    All is still quiet on the waitlist front, and I = have no news there.\u00A0 The waitlist is still open…
    ');=0A= document.write('
  • ');=0A= document.write('
  • PreVU Days: Good = Morning Class of 2014');=0A= document.write('
    “June, she’ll make you change your = tune,” says the legend Paul Simon.\u00A0 While most of = Vanderbilt’s campus is winding…
    ');=0A= document.write('
  • ');=0A= document.write('
  • A Post = for New Vandy Parents and Short Waitlist Update');=0A= document.write('
    I have three sons, all under the age of three, and = I work in admissions.\u00A0 That means that my…
    ');=0A= document.write('
  • ');=0A= document.write('
');=0A= document.write('
3D"Headlines
');=0A= document.write('
');=0A= ------=_NextPart_000_0092_01CA0ACB.189F4390 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.google-analytics.com/urchin.js //-- Google Analytics Urchin Module=0A= //-- Copyright 2007 Google, All Rights Reserved.=0A= =0A= //-- Urchin On Demand Settings ONLY=0A= var _uacct=3D""; // set up the Urchin Account=0A= var _userv=3D1; // service mode (0=3Dlocal,1=3Dremote,2=3Dboth)=0A= =0A= //-- UTM User Settings=0A= var _ufsc=3D1; // set client info flag (1=3Don|0=3Doff)=0A= var _udn=3D"auto"; // (auto|none|domain) set the domain name for cookies=0A= var _uhash=3D"on"; // (on|off) unique domain hash for cookies=0A= var _utimeout=3D"1800"; // set the inactive session timeout in seconds=0A= var _ugifpath=3D"/__utm.gif"; // set the web path to the __utm.gif file=0A= var _utsp=3D"|"; // transaction field separator=0A= var _uflash=3D1; // set flash version detect option (1=3Don|0=3Doff)=0A= var _utitle=3D1; // set the document title detect option = (1=3Don|0=3Doff)=0A= var _ulink=3D0; // enable linker functionality (1=3Don|0=3Doff)=0A= var _uanchor=3D0; // enable use of anchors for campaign = (1=3Don|0=3Doff)=0A= var _utcp=3D"/"; // the cookie path for tracking=0A= var _usample=3D100; // The sampling % of visitors to track (1-100).=0A= =0A= //-- UTM Campaign Tracking Settings=0A= var _uctm=3D1; // set campaign tracking module (1=3Don|0=3Doff)=0A= var _ucto=3D"15768000"; // set timeout in seconds (6 month default)=0A= var _uccn=3D"utm_campaign"; // name=0A= var _ucmd=3D"utm_medium"; // medium (cpc|cpm|link|email|organic)=0A= var _ucsr=3D"utm_source"; // source=0A= var _uctr=3D"utm_term"; // term/keyword=0A= var _ucct=3D"utm_content"; // content=0A= var _ucid=3D"utm_id"; // id number=0A= var _ucno=3D"utm_nooverride"; // don't override=0A= =0A= //-- Auto/Organic Sources and Keywords=0A= var _uOsr=3Dnew Array();=0A= var _uOkw=3Dnew Array();=0A= _uOsr[0]=3D"google"; _uOkw[0]=3D"q";=0A= _uOsr[1]=3D"yahoo"; _uOkw[1]=3D"p";=0A= _uOsr[2]=3D"msn"; _uOkw[2]=3D"q";=0A= _uOsr[3]=3D"aol"; _uOkw[3]=3D"query";=0A= _uOsr[4]=3D"aol"; _uOkw[4]=3D"encquery";=0A= _uOsr[5]=3D"lycos"; _uOkw[5]=3D"query";=0A= _uOsr[6]=3D"ask"; _uOkw[6]=3D"q";=0A= _uOsr[7]=3D"altavista"; _uOkw[7]=3D"q";=0A= _uOsr[8]=3D"netscape"; _uOkw[8]=3D"query";=0A= _uOsr[9]=3D"cnn"; _uOkw[9]=3D"query";=0A= _uOsr[10]=3D"looksmart"; _uOkw[10]=3D"qt";=0A= _uOsr[11]=3D"about"; _uOkw[11]=3D"terms";=0A= _uOsr[12]=3D"mamma"; _uOkw[12]=3D"query";=0A= _uOsr[13]=3D"alltheweb"; _uOkw[13]=3D"q";=0A= _uOsr[14]=3D"gigablast"; _uOkw[14]=3D"q";=0A= _uOsr[15]=3D"voila"; _uOkw[15]=3D"rdata";=0A= _uOsr[16]=3D"virgilio"; _uOkw[16]=3D"qs";=0A= _uOsr[17]=3D"live"; _uOkw[17]=3D"q";=0A= _uOsr[18]=3D"baidu"; _uOkw[18]=3D"wd";=0A= _uOsr[19]=3D"alice"; _uOkw[19]=3D"qs";=0A= _uOsr[20]=3D"yandex"; _uOkw[20]=3D"text";=0A= _uOsr[21]=3D"najdi"; _uOkw[21]=3D"q";=0A= _uOsr[22]=3D"aol"; _uOkw[22]=3D"q";=0A= _uOsr[23]=3D"club-internet"; _uOkw[23]=3D"query";=0A= _uOsr[24]=3D"mama"; _uOkw[24]=3D"query";=0A= _uOsr[25]=3D"seznam"; _uOkw[25]=3D"q";=0A= _uOsr[26]=3D"search"; _uOkw[26]=3D"q";=0A= _uOsr[27]=3D"wp"; _uOkw[27]=3D"szukaj";=0A= _uOsr[28]=3D"onet"; _uOkw[28]=3D"qt";=0A= _uOsr[29]=3D"netsprint"; _uOkw[29]=3D"q";=0A= _uOsr[30]=3D"google.interia"; _uOkw[30]=3D"q";=0A= _uOsr[31]=3D"szukacz"; _uOkw[31]=3D"q";=0A= _uOsr[32]=3D"yam"; _uOkw[32]=3D"k";=0A= _uOsr[33]=3D"pchome"; _uOkw[33]=3D"q";=0A= _uOsr[34]=3D"kvasir"; _uOkw[34]=3D"searchExpr";=0A= _uOsr[35]=3D"sesam"; _uOkw[35]=3D"q";=0A= _uOsr[36]=3D"ozu"; _uOkw[36]=3D"q";=0A= _uOsr[37]=3D"terra"; _uOkw[37]=3D"query";=0A= _uOsr[38]=3D"nostrum"; _uOkw[38]=3D"query";=0A= _uOsr[39]=3D"mynet"; _uOkw[39]=3D"q";=0A= _uOsr[40]=3D"ekolay"; _uOkw[40]=3D"q";=0A= _uOsr[41]=3D"search.ilse"; _uOkw[41]=3D"search_for";=0A= _uOsr[42]=3D"bing"; _uOkw[42]=3D"q";=0A= =0A= //-- Auto/Organic Keywords to Ignore=0A= var _uOno=3Dnew Array();=0A= //_uOno[0]=3D"urchin";=0A= //_uOno[1]=3D"urchin.com";=0A= //_uOno[2]=3D"www.urchin.com";=0A= =0A= //-- Referral domains to Ignore=0A= var _uRno=3Dnew Array();=0A= //_uRno[0]=3D".urchin.com";=0A= =0A= //-- **** Don't modify below this point ***=0A= var = _uff,_udh,_udt,_ubl=3D0,_udo=3D"",_uu,_ufns=3D0,_uns=3D0,_ur=3D"-",_ufno=3D= 0,_ust=3D0,_ubd=3Ddocument,_udl=3D_ubd.location,_udlh=3D"",_uwv=3D"1.3";=0A= var _ugifpath2=3D"http://www.google-analytics.com/__utm.gif";=0A= if (_udl.hash) _udlh=3D_udl.href.substring(_udl.href.indexOf('#'));=0A= if (_udl.protocol=3D=3D"https:") = _ugifpath2=3D"https://ssl.google-analytics.com/__utm.gif";=0A= if (!_utcp || _utcp=3D=3D"") _utcp=3D"/";=0A= function urchinTracker(page) {=0A= if (_udl.protocol=3D=3D"file:") return;=0A= if (_uff && (!page || page=3D=3D"")) return;=0A= var a,b,c,xx,v,z,k,x=3D"",s=3D"",f=3D0,nv=3D0;=0A= var nx=3D" expires=3D"+_uNx()+";";=0A= var dc=3D_ubd.cookie;=0A= _udh=3D_uDomain();=0A= if (!_uVG()) return;=0A= _uu=3DMath.round(Math.random()*2147483647);=0A= _udt=3Dnew Date();=0A= _ust=3DMath.round(_udt.getTime()/1000);=0A= a=3Ddc.indexOf("__utma=3D"+_udh+".");=0A= b=3Ddc.indexOf("__utmb=3D"+_udh);=0A= c=3Ddc.indexOf("__utmc=3D"+_udh);=0A= if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A= if (_utimeout && _utimeout!=3D"") {=0A= x=3Dnew Date(_udt.getTime()+(_utimeout*1000));=0A= x=3D" expires=3D"+x.toGMTString()+";";=0A= }=0A= if (_ulink) {=0A= if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A= s+=3D_udl.search;=0A= if(s && s!=3D"" && s.indexOf("__utma=3D")>=3D0) {=0A= if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A= if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A= if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A= v=3D_uGC(s,"__utmv=3D","&");=0A= z=3D_uGC(s,"__utmz=3D","&");=0A= k=3D_uGC(s,"__utmk=3D","&");=0A= xx=3D_uGC(s,"__utmx=3D","&");=0A= if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) = {_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A= if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A= else if(a!=3D"-") f=3D2;=0A= }=0A= }=0A= if(f=3D=3D1) {=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A= } else if (f=3D=3D2) {=0A= a=3D_uFixA(s,"&",_ust);=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A= _ufns=3D1;=0A= } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A= b =3D _uGC(dc,"__utmb=3D"+_udh,";");=0A= b =3D ("-" =3D=3D b) ? _udh : b; =0A= _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A= } else {=0A= if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A= else {=0A= a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A= nv=3D1;=0A= }=0A= _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A= _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A= _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A= _ufns=3D1;=0A= }=0A= if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A= xx=3D_uUES(xx);=0A= if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= if (_ulink && v && v!=3D"" && v!=3D"-") {=0A= v=3D_uUES(v);=0A= if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= var wc=3Dwindow;=0A= var c=3D_ubd.cookie;=0A= if(wc && wc.gaGlobal && wc.gaGlobal.dh=3D=3D_udh){=0A= var g=3Dwc.gaGlobal;=0A= var ua=3Dc.split("__utma=3D"+_udh+".")[1].split(";")[0].split(".");=0A= if(g.sid)ua[3]=3Dg.sid;=0A= if(nv>0){=0A= ua[2]=3Dua[3];=0A= if(g.vid){=0A= var v=3Dg.vid.split(".");=0A= ua[0]=3Dv[0];=0A= ua[1]=3Dv[1];=0A= }=0A= }=0A= _ubd.cookie=3D"__utma=3D"+_udh+"."+ua.join(".")+"; = path=3D"+_utcp+";"+nx+_udo;=0A= }=0A= _uInfo(page);=0A= _ufns=3D0;=0A= _ufno=3D0;=0A= if (!page || page=3D=3D"") _uff=3D1;=0A= }=0A= function _uGH() {=0A= var hid;=0A= var wc=3Dwindow;=0A= if (wc && wc.gaGlobal && wc.gaGlobal.hid) {=0A= hid=3Dwc.gaGlobal.hid;=0A= } else {=0A= hid=3DMath.round(Math.random()*0x7fffffff);=0A= if (!wc.gaGlobal) wc.gaGlobal=3D{};=0A= wc.gaGlobal.hid=3Dhid;=0A= }=0A= return hid;=0A= }=0A= function _uInfo(page) {=0A= var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A= if (page && page!=3D"") pg=3D_uES(page,1);=0A= _ur=3D_ubd.referrer;=0A= if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A= else {=0A= dm=3D_ubd.domain;=0A= if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A= p=3D_ur.indexOf(dm);=0A= if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A= if (_ur.indexOf("[")=3D=3D0 && = _ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A= }=0A= s+=3D"&utmn=3D"+_uu;=0A= if (_ufsc) s+=3D_uBInfo();=0A= if (_uctm) s+=3D_uCInfo();=0A= if (_utitle && _ubd.title && _ubd.title!=3D"") = s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A= if (_udl.hostname && _udl.hostname!=3D"") = s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A= if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A= s+=3D"&utmhid=3D"+_uGH();=0A= s+=3D"&utmr=3D"+_ur;=0A= s+=3D"&utmp=3D"+pg;=0A= if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A= var i=3Dnew Image(1,1);=0A= i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A= i.onload=3Dfunction() { _uVoid(); }=0A= }=0A= if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A= var i2=3Dnew Image(1,1);=0A= = i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+= _uGCS();=0A= i2.onload=3Dfunction() { _uVoid(); }=0A= }=0A= return;=0A= }=0A= function _uVoid() { return; }=0A= function _uCInfo() {=0A= if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A= if (!_uVG()) return;=0A= var = c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""= ;=0A= if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A= s+=3D_udl.search;=0A= var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A= var dc=3D_ubd.cookie;=0A= x=3D" expires=3D"+x.toGMTString()+";";=0A= if (_ulink && !_ubl) {=0A= z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A= if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { = _ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A= }=0A= z=3Ddc.indexOf("__utmz=3D"+_udh+".");=0A= if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh+".",";"); }=0A= else { z=3D"-"; }=0A= t=3D_uGC(s,_ucid+"=3D","&");=0A= t2=3D_uGC(s,_ucsr+"=3D","&");=0A= t3=3D_uGC(s,"gclid=3D","&");=0A= if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && = t3!=3D"")) {=0A= if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A= if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; = c+=3D"utmcsr=3D"+_uEC(t2); }=0A= if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; = c+=3D"utmgclid=3D"+_uEC(t3); }=0A= t=3D_uGC(s,_uccn+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A= else c+=3D"|utmccn=3D(not+set)";=0A= t=3D_uGC(s,_ucmd+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A= else c+=3D"|utmcmd=3D(not+set)";=0A= t=3D_uGC(s,_uctr+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A= else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") = c+=3D"|utmctr=3D"+_uEC(t); }=0A= t=3D_uGC(s,_ucct+"=3D","&");=0A= if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A= t=3D_uGC(s,_ucno+"=3D","&");=0A= if (t=3D=3D"1") o=3D1;=0A= if (z!=3D"-" && o=3D=3D1) return "";=0A= }=0A= if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && = _ufno=3D=3D1) return ""; }=0A= if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1) c=3D_uRef(); if = (z!=3D"-" && _ufno=3D=3D1) return ""; }=0A= if (c=3D=3D"-" || c=3D=3D"") {=0A= if (z=3D=3D"-" && _ufns=3D=3D1) { = c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A= if (c=3D=3D"-" || c=3D=3D"") return "";=0A= }=0A= if (z!=3D"-") {=0A= i=3Dz.indexOf(".");=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= if (i>-1) i=3Dz.indexOf(".",i+1);=0A= t=3Dz.substring(i+1,z.length);=0A= if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A= t=3Dz.substring(0,i);=0A= if ((i=3Dt.lastIndexOf(".")) > -1) {=0A= t=3Dt.substring(i+1,t.length);=0A= cn=3D(t*1);=0A= }=0A= }=0A= if (cs=3D=3D0 || _ufns=3D=3D1) {=0A= t=3D_uGC(dc,"__utma=3D"+_udh+".",";");=0A= if ((i=3Dt.lastIndexOf(".")) > 9) {=0A= _uns=3Dt.substring(i+1,t.length);=0A= _uns=3D(_uns*1);=0A= }=0A= cn++;=0A= if (_uns=3D=3D0) _uns=3D1;=0A= _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; = path=3D"+_utcp+"; "+x+_udo;=0A= }=0A= if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A= else return "&utmcr=3D1";=0A= }=0A= function _uRef() {=0A= if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A= var i=3D0,h,k,n;=0A= if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A= h=3D_ur.substring(i+3,_ur.length);=0A= if (h.indexOf("/") > -1) {=0A= k=3Dh.substring(h.indexOf("/"),h.length);=0A= if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A= h=3Dh.substring(0,h.indexOf("/"));=0A= }=0A= h=3Dh.toLowerCase();=0A= n=3Dh;=0A= if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A= for (var ii=3D0;ii<_uRno.length;ii++) {=0A= if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && = n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A= }=0A= if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A= return = "utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D= referral";=0A= }=0A= function _uOrg(t) {=0A= if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A= var i=3D0,h,k;=0A= if ((i=3D_ur.indexOf("://"))<0 || _uGCse()) return "";=0A= h=3D_ur.substring(i+3,_ur.length);=0A= if (h.indexOf("/") > -1) {=0A= h=3Dh.substring(0,h.indexOf("/"));=0A= }=0A= for (var ii=3D0;ii<_uOsr.length;ii++) {=0A= if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A= if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || = (i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A= k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A= if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A= for (var yy=3D0;yy<_uOno.length;yy++) {=0A= if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; = break; }=0A= }=0A= if (t) return _uEC(k);=0A= else return = "utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|= utmcmd=3Dorganic";=0A= }=0A= }=0A= }=0A= return "";=0A= }=0A= function _uGCse() {=0A= var h,p;=0A= h=3Dp=3D_ur.split("://")[1];=0A= if(h.indexOf("/")>-1) {=0A= h=3Dh.split("/")[0];=0A= p=3Dp.substring(p.indexOf("/")+1,p.length);=0A= }=0A= if(p.indexOf("?")>-1) {=0A= p=3Dp.split("?")[0];=0A= }=0A= if(h.toLowerCase().indexOf("google")>-1) {=0A= if(_ur.indexOf("?q=3D")>-1 || _ur.indexOf("&q=3D")>-1) {=0A= if (p.toLowerCase().indexOf("cse")>-1) {=0A= return true;=0A= }=0A= }=0A= }=0A= }=0A= function _uBInfo() {=0A= var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A= var n=3Dnavigator;=0A= if (self.screen) {=0A= sr=3Dscreen.width+"x"+screen.height;=0A= sc=3Dscreen.colorDepth+"-bit";=0A= } else if (self.java) {=0A= var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A= var s=3Dj.getScreenSize();=0A= sr=3Ds.width+"x"+s.height;=0A= }=0A= if (n.language) { ul=3Dn.language.toLowerCase(); }=0A= else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A= je=3Dn.javaEnabled()?1:0;=0A= if (_uflash) fl=3D_uFlash();=0A= if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A= else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A= return = "&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j= e+"&utmfl=3D"+fl;=0A= }=0A= function __utmSetTrans() {=0A= var e;=0A= if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A= else if (_ubd.utmform && _ubd.utmform.utmtrans) = e=3D_ubd.utmform.utmtrans;=0A= if (!e) return;=0A= var l=3De.value.split("UTM:");=0A= var i,i2,c;=0A= if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A= if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A= =0A= for (var ii=3D0;ii-1) return;=0A= if (h) { url=3Dl+"#"+p; }=0A= else {=0A= if (iq=3D=3D-1 && ih=3D=3D-1) url=3Dl+"?"+p;=0A= else if (ih=3D=3D-1) url=3Dl+"&"+p;=0A= else if (iq=3D=3D-1) url=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A= else url=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A= }=0A= }=0A= return url;=0A= }=0A= function __utmLinker(l,h) {=0A= if (!_ulink || !l || l=3D=3D"") return;=0A= _udl.href=3D__utmLinkerUrl(l,h);=0A= }=0A= function __utmLinkPost(f,h) {=0A= if (!_ulink || !f || !f.action) return;=0A= f.action=3D__utmLinkerUrl(f.action, h);=0A= return;=0A= }=0A= function __utmSetVar(v) {=0A= if (!v || v=3D=3D"") return;=0A= if (!_udo || _udo =3D=3D "") {=0A= _udh=3D_uDomain();=0A= if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A= }=0A= if (!_uVG()) return;=0A= var r=3DMath.round(Math.random() * 2147483647);=0A= _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; = expires=3D"+_uNx()+";"+_udo;=0A= var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A= if (_usample && _usample !=3D 100) s+=3D"&utmsp=3D"+_uES(_usample);=0A= if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A= var i=3Dnew Image(1,1);=0A= i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A= i.onload=3Dfunction() { _uVoid(); }=0A= }=0A= if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A= var i2=3Dnew Image(1,1);=0A= = i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+= _uGCS();=0A= i2.onload=3Dfunction() { _uVoid(); }=0A= }=0A= }=0A= function _uGCS() {=0A= var t,c=3D"",dc=3D_ubd.cookie;=0A= if ((t=3D_uGC(dc,"__utma=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utma=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") = c+=3D_uES("__utmx=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmz=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utmz=3D"+t+";+");=0A= if ((t=3D_uGC(dc,"__utmv=3D"+_udh+".",";"))!=3D"-") = c+=3D_uES("__utmv=3D"+t+";");=0A= if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A= return c;=0A= }=0A= function _uGC(l,n,s) {=0A= if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A= var i,i2,i3,c=3D"-";=0A= i=3Dl.indexOf(n);=0A= i3=3Dn.indexOf("=3D")+1;=0A= if (i > -1) {=0A= i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A= c=3Dl.substring((i+i3),i2);=0A= }=0A= return c;=0A= }=0A= function _uDomain() {=0A= if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A= if (_udn=3D=3D"auto") {=0A= var d=3D_ubd.domain;=0A= if (d.substring(0,4)=3D=3D"www.") {=0A= d=3Dd.substring(4,d.length);=0A= }=0A= _udn=3Dd;=0A= }=0A= _udn =3D _udn.toLowerCase(); =0A= if (_uhash=3D=3D"off") return 1;=0A= return _uHash(_udn);=0A= }=0A= function _uHash(d) {=0A= if (!d || d=3D=3D"") return 1;=0A= var h=3D0,g=3D0;=0A= for (var i=3Dd.length-1;i>=3D0;i--) {=0A= var c=3DparseInt(d.charCodeAt(i));=0A= h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A= if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A= }=0A= return h;=0A= }=0A= function _uFixA(c,s,t) {=0A= if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A= var a=3D_uGC(c,"__utma=3D"+_udh+".",s);=0A= var lt=3D0,i=3D0;=0A= if ((i=3Da.lastIndexOf(".")) > 9) {=0A= _uns=3Da.substring(i+1,a.length);=0A= _uns=3D(_uns*1)+1;=0A= a=3Da.substring(0,i);=0A= if ((i=3Da.lastIndexOf(".")) > 7) {=0A= lt=3Da.substring(i+1,a.length);=0A= a=3Da.substring(0,i);=0A= }=0A= if ((i=3Da.lastIndexOf(".")) > 5) {=0A= a=3Da.substring(0,i);=0A= }=0A= a+=3D"."+lt+"."+t+"."+_uns;=0A= }=0A= return a;=0A= }=0A= function _uTrim(s) {=0A= if (!s || s=3D=3D"") return "";=0A= while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || = (s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A= while ((s.charAt(s.length-1)=3D=3D' ') || = (s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) = s=3Ds.substring(0,s.length-1);=0A= return s;=0A= }=0A= function _uEC(s) {=0A= var n=3D"";=0A= if (!s || s=3D=3D"") return "";=0A= for (var i=3D0;i0) r=3Da.substring(i+1,i2); else return = ""; =0A= if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return = ""; =0A= if (f) {=0A= return r;=0A= } else {=0A= var c=3Dnew = Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'= ,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A= return = c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r= &7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5= &m]+c[t&m];=0A= }=0A= }=0A= function _uIN(n) {=0A= if (!n) return false;=0A= for (var i=3D0;i"9") && (c!=3D".")) return false;=0A= }=0A= return true;=0A= }=0A= function _uES(s,u) {=0A= if (typeof(encodeURIComponent) =3D=3D 'function') {=0A= if (u) return encodeURI(s);=0A= else return encodeURIComponent(s);=0A= } else {=0A= return escape(s);=0A= }=0A= }=0A= function _uUES(s) {=0A= if (typeof(decodeURIComponent) =3D=3D 'function') {=0A= return decodeURIComponent(s);=0A= } else {=0A= return unescape(s);=0A= }=0A= }=0A= function _uVG() {=0A= if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") = =3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && = _udn.indexOf("google.org")=3D=3D-1) {=0A= return false;=0A= }=0A= return true;=0A= }=0A= function _uSP() {=0A= var s=3D100;=0A= if (_usample) s=3D_usample;=0A= if(s>=3D100 || s<=3D0) return true;=0A= return ((__utmVisitorCode(1)%10000)<(s*100));=0A= }=0A= function urchinPathCopy(p){=0A= var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A= cs=3Dnew Array("a","b","c","v","x","z");=0A= h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A= nx=3D_uNx()+";";=0A= tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A= tx=3Dtx.toGMTString()+";";=0A= sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A= sx=3Dsx.toGMTString()+";";=0A= for (i=3D0;i<6;i++){=0A= t=3D" expires=3D";=0A= if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) = t+=3Dsx; else t+=3Dnx;=0A= c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A= if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A= }=0A= }=0A= function _uCO() {=0A= if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A= var d=3D'www.google.com';=0A= if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A= _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A= var sc=3Ddocument.createElement('script');=0A= sc.type=3D'text/javascript';=0A= sc.id=3D"_gasojs";=0A= = sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+= Math.random();=0A= document.getElementsByTagName('head')[0].appendChild(sc); =0A= }=0A= function _uGT() {=0A= var h=3Dlocation.hash, a;=0A= if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A= a=3D_uGC(h,"gaso=3D","&");=0A= } else {=0A= a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A= }=0A= return a;=0A= }=0A= var _utk=3D_uGT();=0A= if (_utk && _utk!=3D"" && _utk.length>10 && _utk.indexOf("=3D")=3D=3D-1) = {=0A= if (window.addEventListener) {=0A= window.addEventListener('load', _uCO, false); =0A= } else if (window.attachEvent) { =0A= window.attachEvent('onload', _uCO);=0A= }=0A= }=0A= =0A= function _uNx() {=0A= return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A= }=0A= ------=_NextPart_000_0092_01CA0ACB.189F4390--