From: Subject: EECS - Co-op Record Setup Request (PlacePro) Date: Wed, 9 Apr 2008 14:51:50 -0400 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01C89A51.3E263920" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/lfserver?DFS__Action=RouteGetForm&DFS__EventID=b1bca73a04d5ff1505846910_1657124114&DFS__DS=1&DFS__FormType=crp =EF=BB=BF EECS - Co-op Record Setup Request = (PlacePro)

=20

=20

=20

=20

=20

=20

If not, additional work location = ;contact information is requested by this f= orm below.=20

Use the Ctrl key for multiple selec= tions in the following sections:=20

=20

=20

=20

=20

Job Contact Information=20

=20

=20

=20

=20

=20

=20

This form is for posting NEW JOBS ONLY. 

Employers who wish to reactivate previo= usly posted =20 jobs should contact the Co=E2=88=92op C= oordinator they =20 have worked with previously directly.= =20

Will the student be working in&n= bsp;the same =20 location as the Supervisor Contact&nb= sp;above?=20

=20

=20

=20

=20

=20

=20

I am=20

=20

=20

=20

=20

  Yellow Highlighting or an = ; *  indicates a Required Field=20

=20

=20

=20

=20

=20

=20

=20

=20

To submit  form, press Go button.=20

=20

=20

 

Submit=20

=20

=20

If the following section is greyed = out, skip to the bottom of the form&nb= sp;to submit.=20

Else, fill out the appropriate sections.= =20

If the following section is greyed = out, skip to the bottom of the form&nb= sp;to submit.=20

Else, fill out the appropriate sections.= =20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

Select the first term the job is = ;to be offered to students: *=20

 

Select One2008=20

=20

=20

 

Select One=20

Majors are sorted by College)

=20

 Work Location Contact Information=20

=20

=20

 Company or Organization Information=20

=20

=20

=20

=20

=

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20 =20

=20

=20

=20

=20

=20

=20

=20

=

=20

=

=20

=

=20

=20

=20

=20

=20

=20 =20

=20

Address * =

=20

=20

=20

=20

=20

=

=20

Will student be supervised and w= orking at the same location =20 as the contact listed above? =20

 

=

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=

=20

=20

=20

=20

=20

=

=20

=

=20

=20

=20

=20

=20

=20

=20

 Job Information=20

=20

=20

=

Select OneHourlyUnpaid=20

 

- Select One -Suited to All LevelsEntryIntermediate to = AdvancedAdvancedNon-Classified=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

Supervisor Contact Information=20

=20

=20

=

=20

=20

=20

=20

=20

=20

=20

=

=20

=

=20

=20

=20

=20

=20

=20

=20

=20

=20

Code *=20

=20

=

=20

=20

=20

=20

=20

=

=20

Code *=20

=20

=

=20

=20

=20

=

=20

=

=20 = =20 =20 = = = =20 =20 =
=20 =20 = Continuous=20
Online=20
  • Save Offline
Offline=20
  • Reconnect=20
  • Save=20
  • Save As =
= >>=20
------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/Picture39_Image.jpg /9j/4AAQSkZJRgABAAEAlgCWAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE AAICAgICAgICAgICAgICAgQCAgICAgQDAwIEBQUGBgUFBQUGBwkHBgYIBgUFCAoICAkJCgoKBgcL DAsKDAkKCgkBAgICAgICBAICBAkGBQYJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEB AQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK 0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5 usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAOEFEAMBEQACEQEDEQH/ 2gAMAwEAAhEDEQA/AOG3e1fjJ/pGG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1A Bu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3t QAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd 7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA 3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72o AN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9 qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAb vagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UA G72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1 ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3 tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qAIqZmFABQAUAFABQAUAFABQAUAFABQA UAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQ AUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAB QAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFA BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAF ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAm40EBuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABuNABu NABuNABuNAEe72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3 tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qAD d7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvag A3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72 oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu 9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQA bvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7U AG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e 1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN 3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qADd7UAG72oAN3tQAbvagA3e1ABu9qA Dd7UAG72oAN3tQAbvagA3e1ABu9qADd7UARVoIKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAK 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 virqlm0dxZ3PxC1j7Hd2cvnQXUS3kqxSqy/KyMq7q4cXXo+3rHVh8hz9UP8Ac6v/AIBM8r8mb/nj J/35rDnomn9g5z/0CVv/AACZ+tH7B/xm0O1+H2t+APGPiDSdBk8K6r/aHh99f1KGxSazvN7SRRGR h/q51kdv+vkV7+VY6iqHsK9XU83G8O58q3+51f8AwXM8v/bp8F+BtY1DT/i34G8T+E9V1G7aLRPG Wl6R4gtLq6mZV22t4kUbFm+VfKk/7Zf7dY5r7H/eKFY1wWSZ/wD7v9Tq/wDgEz89LGORLqFmST+P /wBBr5+vP9wfoXh7lGZYPjHCV6+EnCHv/Y/uTN2vLP6ZCgAoAKACgAoAKACgAoAKACgAoAKACgAo AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACg AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA GUjMKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAK ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAo AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgB u6tBBuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABu oAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1AB uoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1A BuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1 ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN 1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoA N1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuo AN1ABuoAN1ABuoAN1ABuoAN1ABuoAN1ABuoAjpEBQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQ AUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAB QAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFA BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAF ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUA FABQAUAFABQAUAFABQAUAFABQAUAFABQAUAM3e9MzDd70AG73oAN3vQAbvegA3e9ABu96ADd70AG 73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9A Bu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3v QAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd 70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA 3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73o AN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu9 6ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAb vegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70A G73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9 ABu96ADd70AG73oAN3vQAbvegA3e9ABu96ADd70AG73oAN3vQAbvegA3e9ACVRAUAFABQAUAFABQ AUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAB QAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFA BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAF ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUA FABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAEdUIKACgAoAKACgAoA KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAo AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACg AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCOgAoAKACgAoAKACgAo AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACg AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAGUiAoAKACgAoAKACgAoA KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAo AKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgA oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACg AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAGbqZIbqADdQAbqADdQAbq ADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAb qADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQA bqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQ AbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADd QAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqAD dQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqA DdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbqADdQAbq ADdQAbqADdQAbqAG0AFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFA BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAF ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUA FABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAU AFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQA UAFABQAUAFABQAykZhQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQA UAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQ AUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAB QAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFA BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAF ABQAUAFABQAUAf/Z ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/calendarLauncher.gif R0lGODlhGgAVAPeuANXq/+Hw/+by/wCVAFit7NDo/zSa5FGq5YHp+Uem5UCh5U6p5cHg/7rc/0Wk 5USk5wCWAE+q5Vyw5z6h5Tug5Uun5QB91dLt/0Oj5QCZAEyo5WvWNsAQAHfL9f/dnwAqlP/QlLrf /9oaAACB1mnMM+geAHDWOFKr5vEiAEqn5WzQNk+p5Uil5vUkAKv/c//Ehkun51qv5t3w//+8fmfN M0Gj5nDROM0VAGTLMQAAAP+paf/XmPkmAFSs52nUMwB+1Vy4LnrN9f0nAP4oAEKj5bvl/wBLrrLr +QCTAPL5/8Xs+QBWtgBCp0qn5Dye5Mvs/wBQslOs5QBlws7n/wB+1Lfj/wA2nUOj5AA7or7e/3vN 9QB0zQBjwD2h5rnj/wBsyPH4/wB81AB91Mbp/wBaugAul63W/wBYyI3p+QCB37/f/wBevQBIq/3+ /zac5Pb6/wBTtABPsX3O9bbj/wBApwB1z57p+f8pAMzs/wCYAABpxcPo//+UVLjj/wA0mbja/wAv lwB30AAymgB908Xp//j7/3zN9en0/77l//v9/64KAABIqgA7oQBFqQB50gBMr+z1/8Xi/3bK9QAr lNHt///hrP+2eQB+0wBxyu32/wBvysHo/wB80qbS/wA9pABRsv/OkAA2ngCA1arU/zqf5QCSAPH5 //f8/+fz/2PJMGvPNqP/bgCUAGbMM////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAK4ALAAAAAAaABUA AAj/AF25ysCqoMGDCBFmECiQlYtVECNKnBjRBSuGriCQSJXKBw6OIENy9JiKBASMEFS12pADCI1W MGPGZOlS1UmGeWyoUmVCxc6fQHf2VGVjIcM0SEoNKKWU6dKmUJeyOoPRwqlTBK5mxaq1K9c2cKqa MnVgbFmyZtOiTfQJ44goCySsiBAjAt0IKyQsiLtXQhMlcTD+ECBAgwxKhi5ckHNBhgbCFSALKGRE cIAAFZ7cGSKERwsUeCpcTjE6wBs2bjUkOBFkCB8dM0CU0HIiQYIetntcOdKoKgAADggJ0WHpxQ4R Yxz8Vg4cQBI6GMUUKIBhE48ZL0B5uLEHw3Qi36eApvGEURQGBSw6tACxw0MlDkFYKFAAYz4MJ3YY YQwTicGEIiiUIMINHCiCyAQM+JfgBGpkYgVGg2TRAAUhzCFJFX104EUIFDQwoYcU/AGJIBhR0QUp D5BCSg0qsoiiiimi6AYaZWDEiRmjGDBKjjvqyOOPBnRyyAcYOYIKKggcmSSSSjbJJCqTYHRJIHVs gYkmX+ghBRdrkLEEFI8swgQWoQDygR8CBQQAOw== ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/vm_arrow.gif R0lGODlhFAAUALMAANnZ2VlZWH9/f////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAMALAAAAAAUABQAAAQfcMhJq7046827/2AoBkJpCgBHnmm3oiDZinRt33juRQA7 ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/online.png iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAALHRFWHRDcmVhdGlvbiBUaW1lAFdl ZCAyOCBKYW4gMjAwNCAxMjozNDo1NSAtMDcwMEJ9U5cAAAAHdElNRQfUAR0WHyrUIkrhAAAACXBI WXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGPC/xhBQAAAKtQTFRF7+/e7+//////hLWEEHMQGHMY GHsYEHsQCHsIAHsAAHMAe7V7EIQQIYwhKZQpMZQxKZwpIZwhGKUYEKUQCKUIAJQAAGsAGIwYOZw5 OaU5pdalIa0hGK0YELUQCK0IAJwAIZQhQqVCSqVKIbUhGLUYEK0QQpxCUqVSQq1CCIQIMZwxOa05 GIQYWq1aIXshY61ja7Vre717c71zjMaMY7Vjtd61nM6cUq1SjL2MEFW3mgAAAAF0Uk5TAEDm2GYA AAC9SURBVHjaldBZE8EwFAVgDd1ok24Iakm0DSW64///MqFRfTHDefzmzpkzdzD4JwroRZHWlDVn jFKSYGTfWwXltSrKvM74jRKkghbzqhDUAHGL0UUiL8qMM9GXpqhDluec0UQohLDDLHsiFup0SPhn kfvGhPXwLDGlr5UnYaFnSYQJZZQchEWxf5S4w4QSImwfxYEhcQ4xxoslWIXrzdaUaNkQIei4nucH 01mLynCkqqqm6bphmOOJ8v11P+YBFSETiiQvNCgAAAAASUVORK5CYII= ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/save.png iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAFXRFWHRDcmVhdGlvbiBUaW1lAAfU Bw8QMgSMAui3AAAAB3RJTUUH1AcPEDIsbLajPQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAepJREFU eNrFlL9rFFEQx2d21+gLBI47DYIgOQSLg+RfsNLCPyABixwoiH2KNEmRIoI/qjR2YhuJRTqrNLFL l0bEBIyokDM/jluze/d+jfPeu7vkcpvCNA6zb/fNvs+b78z+wIODJlzWokuTbEn3TDmQ/AcORwBF F177sL21tWutJSLr7aKLML57+/gU5tDCwiNjaOJOyQConks/Hin43QFpQG/spunJ6uraQM0MMzkz M89LNYDtOfFIYLyPRbC8/HJHKl48ULMXA/WlOeUB4z3wikBaN4oYHj57arM2yz4Pc2a701Bwlzxj ep4baFtAciLtt++h/vOw1sDRkTANgn3aGF3OHN0u/c4Ny3ZtfPNqw/as3+ezFoIFDRteVEgWZDZe 1a3boqO0RdaMhkjmeSc7kVmutf3yeV8IUS6XC2oOspl8MnsP/AOTWh81m8eNxmSttvj8Pd9ttVql UqkAPjxMnTJ003p9Jcuy+RfTzR8/2zaZrAFdEcbbWdkDNbv8gG2izFsg8XrVvctx3IcLGsbVcZR3 +KNUgAN5tTLuFMY0DJ/KXl//WK1WuUN5mr5eqccQVcZvjoprInGVJJEdlo3dnwHJzU9fOVq5MWa1 4fsQJxDFiBEiRQiI8Gtv32dxx4P7U/xV4n/7k/wFv0r8VyH33S0AAAAASUVORK5CYII= ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/offline.png iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAALHRFWHRDcmVhdGlvbiBUaW1lAFRo dSAyMiBKYW4gMjAwNCAxODoxMjoxOCAtMDcwMLBeUWUAAAAHdElNRQfUARcBEiD3jYgjAAAACXBI WXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGPC/xhBQAAALpQTFRF////xjExvSEhpVJjlJTG1jEx zhgYtVJj1kpKlJTW1tbe3t7ezs7era3GjIy11ikpvTlCxikx1jlC9/f3xsbepaXO3oSM5ykppaW1 e3vOjIy9raXG72Nj9ykp9zE53lJaa2uMjIzWY2PG/0JC/1pS/zk570JClLXGWlqc55yc/1pa53uE 92Nr70pKOTlavYy191pa/2Nj1mNzY1qMSqXv72tr93t7/2tzhHO9KSlSCIzv93Nzvb3OjKXOg6Mj 0gAAAAF0Uk5TAEDm2GYAAACeSURBVHjaldDHEoIwEIDhJUaUoqhEYuwRCwoWLFh5/9cSMJkBD478 l535ZveyACV7JcVxzAq42mX9RnlZQLn0P3pJ3xhd/dv9AdEzj/tDeDydg/DyQS+Lrd2NH7hbcT/l nM+IoTvufLEU1sOEaKyP8WA4Gk8EarZtkC4GcCilHYm6YZqNJoBltdqWVJwGUFVrAIpaz79EQZV0 IFTq5W9YThnW3L2s1gAAAABJRU5ErkJggg== ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/print.css BODY { FONT-SIZE: 0.111in! important; BACKGROUND-COLOR: white } #DFS__container { DISPLAY: block! important; POSITION: relative! important } *.pgdiv { DISPLAY: block! important; LEFT: 0px; VISIBILITY: visible; = MARGIN-BOTTOM: 0.3in; POSITION: relative! important; TOP: 0px } #DFS__toolbarBot { DISPLAY: none } #DFS__ctrlPgFlipTop { DISPLAY: none } #DFS__ctrlPgUpTop { DISPLAY: none } #DFS__ctrlPgDnTop { DISPLAY: none } #toolform { DISPLAY: none } #DFS__pagediv1 { WIDTH: 6.8in! important; HEIGHT: 26.8in! important } #DFS__shimdiv1 { WIDTH: 0.8in! important; HEIGHT: 0.8in! important } HTML > BODY #DFS__shimdiv1 { WIDTH: 6.8in! important; HEIGHT: 0px! important } #Coop_Time_Frame { WIDTH: 2.058in! important; HEIGHT: 0.22in! important } #Year_of_Coop { WIDTH: 1.417in! important; HEIGHT: 0.22in! important } #Coop_Type { WIDTH: 2.508in! important; HEIGHT: 0.22in! important } #drop_College { WIDTH: 3.208in! important; HEIGHT: 0.22in! important } #drop_Coordinator { WIDTH: 2.672in! important; HEIGHT: 0.22in! important } #State { WIDTH: 1.598in! important; HEIGHT: 0.207in! important } #Pers_qualities { WIDTH: 2.924in! important; HEIGHT: 0.742in! important } #Skills { WIDTH: 2.924in! important; HEIGHT: 0.742in! important } #Industry { WIDTH: 2.924in! important; HEIGHT: 0.692in! important } #Region { WIDTH: 2.924in! important; HEIGHT: 0.695in! important } #Majors { WIDTH: 3.938in! important; HEIGHT: 0.821in! important } #Job_Level { WIDTH: 1.617in! important; HEIGHT: 0.23in! important } #Wage_Type { WIDTH: 1.417in! important; HEIGHT: 0.22in! important } #WL_State { WIDTH: 1.598in! important; HEIGHT: 0.224in! important } #DFS__ActionList { WIDTH: 2.002in! important; HEIGHT: 0.22in! important } #SC_State { WIDTH: 1.598in! important; HEIGHT: 0.224in! important } #Company_Description { WIDTH: 6.19in! important; HEIGHT: 1.356in! important } #Directions { WIDTH: 6.19in! important; HEIGHT: 0.774in! important } #Job_Description { WIDTH: 6.193in! important; HEIGHT: 1.204in! important } #DFS__GO { DISPLAY: none! important } #DFS__ActionList { DISPLAY: none! important } HTML > BODY #textWrapper_Text9 { LEFT: 0.382in! important; WIDTH: 2.649in! important; TOP: 3.07in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text10 { LEFT: 0.739in! important; WIDTH: 3.582in! important; TOP: 3.82in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text8_2 { LEFT: 0.376in! important; WIDTH: 4.414in! important; TOP: 4.06in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text8_3 { LEFT: 0.376in! important; WIDTH: 2.775in! important; TOP: 4.515in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text8_4 { LEFT: 0.376in! important; WIDTH: 2.251in! important; TOP: 4.914in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text12 { LEFT: 1.474in! important; WIDTH: 1.635in! important; TOP: 6.493in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text13 { LEFT: 4.286in! important; WIDTH: 1.75in! important; TOP: 6.476in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text42 { LEFT: 0.376in! important; WIDTH: 3.102in! important; TOP: 2.43in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text43 { LEFT: 0.359in! important; WIDTH: 0in! important; TOP: 2.657in! = important; HEIGHT: 0.124in! important } HTML > BODY #textWrapper_Text44 { LEFT: 2.602in! important; WIDTH: 0in! important; TOP: 2.655in! = important; HEIGHT: 0.124in! important } HTML > BODY #textWrapper_Text48 { LEFT: -2.913in! important; WIDTH: 0.735in! important; TOP: 1.098in! = important; HEIGHT: 0.257in! important } HTML > BODY #lbldivfor_Radio_FormType { LEFT: 0.353in! important; WIDTH: 0.45in! important; TOP: 1.394in! = important; HEIGHT: 0.274in! important } HTML > BODY #textWrapper_Text49 { LEFT: 1.225in! important; WIDTH: 0.873in! important; TOP: 1.416in! = important; HEIGHT: 0.181in! important } HTML > BODY #textWrapper_Text58 { LEFT: 2.342in! important; WIDTH: 1.677in! important; TOP: 1.416in! = important; HEIGHT: 0.181in! important } HTML > BODY #textWrapper_Text2 { LEFT: 0.376in! important; WIDTH: 2.463in! important; TOP: 1.99in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text1 { LEFT: 3.856in! important; WIDTH: 2.743in! important; TOP: 1.99in! = important; HEIGHT: 0.173in! important } HTML > BODY #textWrapper_Text350_2 { LEFT: 0.376in! important; WIDTH: 0.648in! important; TOP: 7.214in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text361_2 { LEFT: 3.234in! important; WIDTH: 0.105in! important; TOP: 7.214in! = important; HEIGHT: 0.136in! important } HTML > BODY #textWrapper_Text394_2 { LEFT: 3.732in! important; WIDTH: 0.636in! important; TOP: 7.214in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_3 { LEFT: 0.376in! important; WIDTH: 0.759in! important; TOP: 8.031in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text151_5 { LEFT: 0.376in! important; WIDTH: 0.858in! important; TOP: 8.851in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text218_3 { LEFT: 0.376in! important; WIDTH: 0.284in! important; TOP: 9.239in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text905_3 { LEFT: 0.376in! important; WIDTH: 0.975in! important; TOP: 9.661in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text151_6 { LEFT: 0.376in! important; WIDTH: 0.957in! important; TOP: 8.456in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text14_2 { LEFT: 2.329in! important; WIDTH: 0.389in! important; TOP: 9.639in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text15_2 { LEFT: 4.225in! important; WIDTH: 0.432in! important; TOP: 9.244in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6532_2 { LEFT: 3.959in! important; WIDTH: 0.795in! important; TOP: 7.633in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text6545_8 { LEFT: 3.001in! important; WIDTH: 0.679in! important; TOP: 8.036in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_9 { LEFT: 4.956in! important; WIDTH: 0.185in! important; TOP: 8.036in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text16_3 { LEFT: 0.376in! important; WIDTH: 0.467in! important; TOP: 7.639in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text19_1 { LEFT: 3.688in! important; WIDTH: 0.267in! important; TOP: 10.174in! = important; HEIGHT: 0.155in! important } HTML > BODY #textWrapper_Text20_1 { LEFT: 4.389in! important; WIDTH: 0.2in! important; TOP: 10.174in! = important; HEIGHT: 0.155in! important } HTML > BODY #textWrapper_Text21_1 { LEFT: 0.374in! important; WIDTH: 3.079in! important; TOP: 10.11in! = important; HEIGHT: 0.309in! important } HTML > BODY #textWrapper_Text9_5 { LEFT: 0.393in! important; WIDTH: 3.349in! important; TOP: 22.705in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text35_1 { LEFT: 2.009in! important; WIDTH: 0.488in! important; TOP: 8.044in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text55_3 { LEFT: 2.546in! important; WIDTH: 0.346in! important; TOP: 9.246in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text30_1 { LEFT: 3.609in! important; WIDTH: 2.547in! important; TOP: 17.09in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text30_2 { LEFT: 0.376in! important; WIDTH: 1.807in! important; TOP: 17.105in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text30_7 { LEFT: 3.609in! important; WIDTH: 1.84in! important; TOP: 16.182in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text30_8 { LEFT: 0.376in! important; WIDTH: 2.025in! important; TOP: 16.177in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text32_2 { LEFT: 0.376in! important; WIDTH: 3.344in! important; TOP: 14.848in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text32_3 { LEFT: 0.376in! important; WIDTH: 0.988in! important; TOP: 13.44in! = important; HEIGHT: 0.19in! important } HTML > BODY #textWrapper_Text30_9 { LEFT: 2.61in! important; WIDTH: 3.755in! important; TOP: 12.405in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text29_1 { LEFT: 0.366in! important; WIDTH: 0.586in! important; TOP: 13.008in! = important; HEIGHT: 0.253in! important } HTML > BODY #textWrapper_Text28_1 { LEFT: 0.376in! important; WIDTH: 2.032in! important; TOP: 12.411in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text25_1 { LEFT: 0.376in! important; WIDTH: 0.558in! important; TOP: 11.885in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text22_1 { LEFT: 2.025in! important; WIDTH: 1.002in! important; TOP: 11.873in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text23_1 { LEFT: 3.71in! important; WIDTH: 0.784in! important; TOP: 11.863in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text26_1 { LEFT: 5.475in! important; WIDTH: 0.863in! important; TOP: 11.853in! = important; HEIGHT: 0.175in! important } HTML > BODY #textWrapper_Text27_1 { LEFT: 0.376in! important; WIDTH: 1.821in! important; TOP: 11.495in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text16_5 { LEFT: 0.376in! important; WIDTH: 0.529in! important; TOP: 11.053in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text8 { LEFT: 0.376in! important; WIDTH: 5.968in! important; TOP: 3.34in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text9_4 { LEFT: 0.43in! important; WIDTH: 1.757in! important; TOP: 6.903in! = important; HEIGHT: 0.237in! important } HTML > BODY #textWrapper_Text9_1 { LEFT: 0.438in! important; WIDTH: 1.147in! important; TOP: 10.814in! = important; HEIGHT: 0.237in! important } HTML > BODY #textWrapper_Text350_1 { LEFT: 0.376in! important; WIDTH: 0.648in! important; TOP: 22.977in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text361_1 { LEFT: 3.25in! important; WIDTH: 0.105in! important; TOP: 22.977in! = important; HEIGHT: 0.136in! important } HTML > BODY #textWrapper_Text394_1 { LEFT: 3.748in! important; WIDTH: 0.636in! important; TOP: 22.977in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6532_1 { LEFT: 3.975in! important; WIDTH: 0.912in! important; TOP: 23.396in! = important; HEIGHT: 0.257in! important } HTML > BODY #textWrapper_Text6545_1 { LEFT: 0.376in! important; WIDTH: 0.759in! important; TOP: 23.794in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text35_2 { LEFT: 2.025in! important; WIDTH: 0.488in! important; TOP: 23.808in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_2 { LEFT: 3.016in! important; WIDTH: 0.679in! important; TOP: 23.8in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_4 { LEFT: 4.971in! important; WIDTH: 0.185in! important; TOP: 23.799in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text151_1 { LEFT: 0.376in! important; WIDTH: 0.858in! important; TOP: 24.614in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text151_2 { LEFT: 0.376in! important; WIDTH: 0.957in! important; TOP: 24.219in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text218_1 { LEFT: 0.376in! important; WIDTH: 0.284in! important; TOP: 25.002in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text55_1 { LEFT: 2.562in! important; WIDTH: 0.346in! important; TOP: 25.01in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text15_1 { LEFT: 4.241in! important; WIDTH: 0.432in! important; TOP: 25.008in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text14_1 { LEFT: 2.345in! important; WIDTH: 0.389in! important; TOP: 25.403in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text905_1 { LEFT: 0.376in! important; WIDTH: 0.975in! important; TOP: 25.425in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text16_1 { LEFT: 0.376in! important; WIDTH: 0.3in! important; TOP: 23.399in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text60 { LEFT: 0.355in! important; WIDTH: 2.804in! important; TOP: 1.737in! = important; HEIGHT: 0.162in! important } HTML > BODY #textWrapper_Text62 { LEFT: 4.456in! important; WIDTH: 0.903in! important; TOP: 2.479in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text66 { LEFT: -2.378in! important; WIDTH: 1.05in! important; TOP: 2.629in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text64 { LEFT: -2.395in! important; WIDTH: 1.074in! important; TOP: 2.262in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text350_3 { LEFT: 0.376in! important; WIDTH: 0.648in! important; TOP: 18.827in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text361_3 { LEFT: 3.245in! important; WIDTH: 0.105in! important; TOP: 18.827in! = important; HEIGHT: 0.136in! important } HTML > BODY #textWrapper_Text394_3 { LEFT: 3.742in! important; WIDTH: 0.636in! important; TOP: 18.827in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6532_3 { LEFT: 3.969in! important; WIDTH: 0.883in! important; TOP: 19.246in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_5 { LEFT: 0.376in! important; WIDTH: 0.759in! important; TOP: 19.644in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text35_3 { LEFT: 2.019in! important; WIDTH: 0.488in! important; TOP: 19.658in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_6 { LEFT: 3.011in! important; WIDTH: 0.679in! important; TOP: 19.65in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text6545_7 { LEFT: 4.966in! important; WIDTH: 0.185in! important; TOP: 19.649in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text16_2 { LEFT: 0.376in! important; WIDTH: 0.353in! important; TOP: 19.221in! = important; HEIGHT: 0.157in! important } HTML > BODY #textWrapper_Text151_3 { LEFT: 0.376in! important; WIDTH: 0.858in! important; TOP: 20.464in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text151_4 { LEFT: 0.376in! important; WIDTH: 0.957in! important; TOP: 20.069in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text218_2 { LEFT: 0.376in! important; WIDTH: 0.284in! important; TOP: 20.852in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text55_4 { LEFT: 2.556in! important; WIDTH: 0.346in! important; TOP: 20.86in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text15_3 { LEFT: 4.235in! important; WIDTH: 0.432in! important; TOP: 20.858in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text14_3 { LEFT: 2.34in! important; WIDTH: 0.389in! important; TOP: 21.253in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text905_2 { LEFT: 0.376in! important; WIDTH: 0.975in! important; TOP: 21.275in! = important; HEIGHT: 0.129in! important } HTML > BODY #lbldivfor_Radio_Work_Locale_Info { LEFT: 0.376in! important; WIDTH: 2.087in! important; TOP: 21.808in! = important; HEIGHT: 0.348in! important } HTML > BODY #textWrapper_Text67 { LEFT: 3.08in! important; WIDTH: 0.222in! important; TOP: 21.86in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text68 { LEFT: 3.545in! important; WIDTH: 0.166in! important; TOP: 21.86in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text9_2 { LEFT: 0.387in! important; WIDTH: 2.207in! important; TOP: 18.555in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text70 { LEFT: -2.853in! important; WIDTH: 0.975in! important; TOP: 1.626in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text71 { LEFT: -1.978in! important; WIDTH: 1.216in! important; TOP: 6.017in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text72 { LEFT: -1.978in! important; WIDTH: 1.208in! important; TOP: 6.384in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text73 { LEFT: -1.978in! important; WIDTH: 1.538in! important; TOP: 10.229in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text74 { LEFT: -1.978in! important; WIDTH: 1.173in! important; TOP: 3.787in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text75 { LEFT: -1.978in! important; WIDTH: 1.27in! important; TOP: 22.029in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text76 { LEFT: -2.57in! important; WIDTH: 0.747in! important; TOP: 12.512in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text77 { LEFT: -1.978in! important; WIDTH: 0.766in! important; TOP: 15.687in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text78 { LEFT: -1.978in! important; WIDTH: 0.809in! important; TOP: 16.087in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text79 { LEFT: -1.978in! important; WIDTH: 0.673in! important; TOP: 16.804in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text80 { LEFT: -1.978in! important; WIDTH: 1.111in! important; TOP: 17.196in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text81 { LEFT: -2.62in! important; WIDTH: 1.21in! important; TOP: 13.702in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text82 { LEFT: -2.628in! important; WIDTH: 0.907in! important; TOP: 15.037in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text83 { LEFT: -2.145in! important; WIDTH: 1.506in! important; TOP: 5.037in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text84 { LEFT: 0.37in! important; WIDTH: 6.175in! important; TOP: 15.945in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text85 { LEFT: 0.37in! important; WIDTH: 4.287in! important; TOP: 10.395in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text86 { LEFT: 0.895in! important; WIDTH: 5.021in! important; TOP: 18.195in! = important; HEIGHT: 0.271in! important } HTML > BODY #textWrapper_Text87 { LEFT: 1.92in! important; WIDTH: 2.971in! important; TOP: 25.987in! = important; HEIGHT: 0.129in! important } HTML > BODY #textWrapper_Text86_1 { LEFT: 0.908in! important; WIDTH: 5.021in! important; TOP: 22.389in! = important; HEIGHT: 0.271in! important } HTML > BODY #textWrapper_Text40 { LEFT: 0.338in! important; WIDTH: 0.062in! important; TOP: 0.031in! = important; HEIGHT: 0.124in! important } HTML > BODY #textWrapper_Text54 { LEFT: 3.874in! important; WIDTH: 2.729in! important; TOP: 0.555in! = important; HEIGHT: 0.571in! important } HTML > BODY #Parent_Company { LEFT: 0.376in! important; WIDTH: 6.19in! important; TOP: 4.25in! = important; HEIGHT: 0.204in! important } HTML > BODY #Web_URL { LEFT: 0.355in! important; WIDTH: 6.19in! important; TOP: 4.648in! = important; HEIGHT: 0.204in! important } HTML > BODY #Company_Description { LEFT: 0.376in! important; WIDTH: 6.19in! important; TOP: 5.055in! = important; HEIGHT: 1.356in! important } HTML > BODY #Fname { LEFT: 0.376in! important; WIDTH: 2.733in! important; TOP: 7.361in! = important; HEIGHT: 0.204in! important } HTML > BODY #Mid_Int_1 { LEFT: 3.234in! important; WIDTH: 0.38in! important; TOP: 7.361in! = important; HEIGHT: 0.204in! important } HTML > BODY #Lname { LEFT: 3.732in! important; WIDTH: 2.813in! important; TOP: 7.361in! = important; HEIGHT: 0.204in! important } HTML > BODY #Phone { LEFT: 0.351in! important; WIDTH: 1.558in! important; TOP: 8.171in! = important; HEIGHT: 0.204in! important } HTML > BODY #Street_Address_2 { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 8.991in! = important; HEIGHT: 0.204in! important } HTML > BODY #City { LEFT: 0.376in! important; WIDTH: 2.105in! important; TOP: 9.386in! = important; HEIGHT: 0.204in! important } HTML > BODY #Postal_Code { LEFT: 0.376in! important; WIDTH: 1.77in! important; TOP: 9.782in! = important; HEIGHT: 0.204in! important } HTML > BODY #Street_Address_1 { LEFT: 0.35in! important; WIDTH: 6.195in! important; TOP: 8.596in! = important; HEIGHT: 0.204in! important } HTML > BODY #Country { LEFT: 2.301in! important; WIDTH: 4.244in! important; TOP: 9.771in! = important; HEIGHT: 0.221in! important } HTML > BODY #Province { LEFT: 4.19in! important; WIDTH: 2.355in! important; TOP: 9.376in! = important; HEIGHT: 0.227in! important } HTML > BODY #Email { LEFT: 3.959in! important; WIDTH: 2.586in! important; TOP: 7.771in! = important; HEIGHT: 0.204in! important } HTML > BODY #Mobile { LEFT: 3.001in! important; WIDTH: 1.603in! important; TOP: 8.177in! = important; HEIGHT: 0.204in! important } HTML > BODY #Fax { LEFT: 4.956in! important; WIDTH: 1.589in! important; TOP: 8.176in! = important; HEIGHT: 0.204in! important } HTML > BODY #Title { LEFT: 0.376in! important; WIDTH: 3.388in! important; TOP: 7.771in! = important; HEIGHT: 0.204in! important } HTML > BODY #Ext { LEFT: 1.996in! important; WIDTH: 0.604in! important; TOP: 8.176in! = important; HEIGHT: 0.208in! important } HTML > BODY #Directions { LEFT: 0.376in! important; WIDTH: 6.19in! important; TOP: 15.031in! = important; HEIGHT: 0.774in! important } HTML > BODY #Job_Description { LEFT: 0.376in! important; WIDTH: 6.193in! important; TOP: 13.602in! = important; HEIGHT: 1.204in! important } HTML > BODY #GPA_Requirement { LEFT: 0.376in! important; WIDTH: 1.98in! important; TOP: 12.668in! = important; HEIGHT: 0.224in! important } HTML > BODY #Wage_Low { LEFT: 2.025in! important; WIDTH: 1.384in! important; TOP: 12.004in! = important; HEIGHT: 0.219in! important } HTML > BODY #Wage_High { LEFT: 3.71in! important; WIDTH: 1.474in! important; TOP: 12.004in! = important; HEIGHT: 0.219in! important } HTML > BODY #Hours_per_week { LEFT: 5.45in! important; WIDTH: 0.964in! important; TOP: 12.004in! = important; HEIGHT: 0.219in! important } HTML > BODY #No_of_Positions { LEFT: 0.376in! important; WIDTH: 1.643in! important; TOP: 11.622in! = important; HEIGHT: 0.204in! important } HTML > BODY #Job_Title { LEFT: 0.376in! important; WIDTH: 6.2in! important; TOP: 11.236in! = important; HEIGHT: 0.204in! important } HTML > BODY #Company_Name { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 3.475in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Fname { LEFT: 0.376in! important; WIDTH: 2.733in! important; TOP: 23.125in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Mid_Int { LEFT: 3.25in! important; WIDTH: 0.38in! important; TOP: 23.125in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Lname { LEFT: 3.748in! important; WIDTH: 2.813in! important; TOP: 23.125in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Email { LEFT: 3.975in! important; WIDTH: 2.586in! important; TOP: 23.535in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Phone { LEFT: 0.376in! important; WIDTH: 1.558in! important; TOP: 23.935in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Ext { LEFT: 2.012in! important; WIDTH: 0.604in! important; TOP: 23.94in! = important; HEIGHT: 0.208in! important } HTML > BODY #WL_Mobile { LEFT: 3.016in! important; WIDTH: 1.603in! important; TOP: 23.941in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Fax { LEFT: 4.971in! important; WIDTH: 1.589in! important; TOP: 23.94in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Street_Address_2 { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 24.755in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Street_Address_1 { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 24.36in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_City { LEFT: 0.376in! important; WIDTH: 2.105in! important; TOP: 25.15in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Province { LEFT: 4.205in! important; WIDTH: 2.355in! important; TOP: 25.14in! = important; HEIGHT: 0.227in! important } HTML > BODY #WL_Country { LEFT: 2.317in! important; WIDTH: 4.244in! important; TOP: 25.535in! = important; HEIGHT: 0.221in! important } HTML > BODY #WL_Postal_Code { LEFT: 0.376in! important; WIDTH: 1.77in! important; TOP: 25.546in! = important; HEIGHT: 0.204in! important } HTML > BODY #WL_Title { LEFT: 0.376in! important; WIDTH: 3.388in! important; TOP: 23.531in! = important; HEIGHT: 0.204in! important } HTML > BODY #Other_Time_Frame { LEFT: 4.456in! important; WIDTH: 1.574in! important; TOP: 2.62in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Route_Email { LEFT: -2.378in! important; WIDTH: 1.974in! important; TOP: 2.77in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Route_Coord { LEFT: -2.395in! important; WIDTH: 1.991in! important; TOP: 2.403in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Fname { LEFT: 0.376in! important; WIDTH: 2.733in! important; TOP: 18.975in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Mid_Int { LEFT: 3.245in! important; WIDTH: 0.38in! important; TOP: 18.975in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Lname { LEFT: 3.742in! important; WIDTH: 2.813in! important; TOP: 18.975in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Email { LEFT: 3.969in! important; WIDTH: 2.586in! important; TOP: 19.385in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Phone { LEFT: 0.376in! important; WIDTH: 1.558in! important; TOP: 19.785in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Ext { LEFT: 2.006in! important; WIDTH: 0.604in! important; TOP: 19.79in! = important; HEIGHT: 0.208in! important } HTML > BODY #SC_Mobile { LEFT: 3.011in! important; WIDTH: 1.603in! important; TOP: 19.791in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Fax { LEFT: 4.966in! important; WIDTH: 1.589in! important; TOP: 19.79in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Title { LEFT: 0.376in! important; WIDTH: 3.388in! important; TOP: 19.381in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Street_Address_2 { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 20.605in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Street_Address_1 { LEFT: 0.376in! important; WIDTH: 6.195in! important; TOP: 20.21in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_City { LEFT: 0.376in! important; WIDTH: 2.105in! important; TOP: 21in! = important; HEIGHT: 0.204in! important } HTML > BODY #SC_Province { LEFT: 4.2in! important; WIDTH: 2.355in! important; TOP: 20.99in! = important; HEIGHT: 0.227in! important } HTML > BODY #SC_Country { LEFT: 2.311in! important; WIDTH: 4.244in! important; TOP: 21.385in! = important; HEIGHT: 0.221in! important } HTML > BODY #SC_Postal_Code { LEFT: 0.376in! important; WIDTH: 1.77in! important; TOP: 21.396in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Form_Type { LEFT: -2.853in! important; WIDTH: 2.449in! important; TOP: 1.766in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Minority_Owned { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 6.158in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Women_Owned { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 6.525in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Student_Locale_Same { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 10.37in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Previous_Coop { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 3.928in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Radio_Work_Info { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 22.17in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Majors { LEFT: -2.57in! important; WIDTH: 2.166in! important; TOP: 12.653in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Region { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 15.828in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Industry { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 16.228in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Skills { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 16.945in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Pers_qualities { LEFT: -1.978in! important; WIDTH: 1.574in! important; TOP: 17.336in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Job_Description { LEFT: -2.62in! important; WIDTH: 2.216in! important; TOP: 13.843in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Directions { LEFT: -2.628in! important; WIDTH: 2.224in! important; TOP: 15.178in! = important; HEIGHT: 0.204in! important } HTML > BODY #Hidden_Company_Description { LEFT: -2.145in! important; WIDTH: 1.741in! important; TOP: 5.178in! = important; HEIGHT: 0.663in! important } HTML > BODY #Date { LEFT: 0.266in! important; WIDTH: 1.094in! important; TOP: 0.011in! = important; HEIGHT: 0.163in! important } HTML > BODY #Check_Previous_Coop { LEFT: 0.477in! important; WIDTH: 0.125in! important; TOP: 3.822in! = important; HEIGHT: 0.125in! important } HTML > BODY #Check_Women_Owned { LEFT: 1.217in! important; WIDTH: 0.13in! important; TOP: 6.472in! = important; HEIGHT: 0.135in! important } HTML > BODY #Check_Minority_Owned { LEFT: 4.053in! important; WIDTH: 0.125in! important; TOP: 6.475in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_FormType_RadioButton3 { LEFT: 1.033in! important; WIDTH: 0.125in! important; TOP: 1.444in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_FormType_RadioButton7 { LEFT: 2.149in! important; WIDTH: 0.125in! important; TOP: 1.444in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_Student_Locale_Same_RadioButton1_1 { LEFT: 3.495in! important; WIDTH: 0.125in! important; TOP: 10.189in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_Student_Locale_Same_RadioButton2_1 { LEFT: 4.197in! important; WIDTH: 0.125in! important; TOP: 10.189in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_Work_Locale_Info_RadioButton8 { LEFT: 2.887in! important; WIDTH: 0.125in! important; TOP: 21.862in! = important; HEIGHT: 0.125in! important } HTML > BODY #Radio_Work_Locale_Info_RadioButton9 { LEFT: 3.352in! important; WIDTH: 0.125in! important; TOP: 21.862in! = important; HEIGHT: 0.125in! important } HTML > BODY #Coop_Time_Frame { LEFT: 0.376in! important; WIDTH: 2.058in! important; TOP: 2.609in! = important; HEIGHT: 0.22in! important } HTML > BODY #Year_of_Coop { LEFT: 2.625in! important; WIDTH: 1.417in! important; TOP: 2.607in! = important; HEIGHT: 0.22in! important } HTML > BODY #Coop_Type { LEFT: -2.913in! important; WIDTH: 2.508in! important; TOP: 1.233in! = important; HEIGHT: 0.22in! important } HTML > BODY #drop_College { LEFT: 0.376in! important; WIDTH: 3.208in! important; TOP: 2.139in! = important; HEIGHT: 0.22in! important } HTML > BODY #drop_Coordinator { LEFT: 3.856in! important; WIDTH: 2.672in! important; TOP: 2.131in! = important; HEIGHT: 0.22in! important } HTML > BODY #State { LEFT: 2.546in! important; WIDTH: 1.598in! important; TOP: 9.385in! = important; HEIGHT: 0.207in! important } HTML > BODY #Pers_qualities { LEFT: 3.609in! important; WIDTH: 2.924in! important; TOP: 17.241in! = important; HEIGHT: 0.742in! important } HTML > BODY #Skills { LEFT: 0.376in! important; WIDTH: 2.924in! important; TOP: 17.246in! = important; HEIGHT: 0.742in! important } HTML > BODY #Industry { LEFT: 3.609in! important; WIDTH: 2.924in! important; TOP: 16.322in! = important; HEIGHT: 0.692in! important } HTML > BODY #Region { LEFT: 0.376in! important; WIDTH: 2.924in! important; TOP: 16.317in! = important; HEIGHT: 0.695in! important } HTML > BODY #Majors { LEFT: 2.605in! important; WIDTH: 3.938in! important; TOP: 12.546in! = important; HEIGHT: 0.821in! important } HTML > BODY #Job_Level { LEFT: 0.376in! important; WIDTH: 1.617in! important; TOP: 13.131in! = important; HEIGHT: 0.23in! important } HTML > BODY #Wage_Type { LEFT: 0.376in! important; WIDTH: 1.417in! important; TOP: 12.004in! = important; HEIGHT: 0.22in! important } HTML > BODY #WL_State { LEFT: 2.562in! important; WIDTH: 1.598in! important; TOP: 25.149in! = important; HEIGHT: 0.224in! important } HTML > BODY #DFS__ActionList { LEFT: 1.045in! important; WIDTH: 2.002in! important; TOP: 26.271in! = important; HEIGHT: 0.22in! important } HTML > BODY #SC_State { LEFT: 2.556in! important; WIDTH: 1.598in! important; TOP: 20.999in! = important; HEIGHT: 0.224in! important } HTML > BODY #Rectangle4_7 { LEFT: 0.286in! important; WIDTH: 6.32in! important; TOP: 22.795in! = important; HEIGHT: 3.05in! important } HTML > BODY #Rectangle4_3 { LEFT: 0.273in! important; WIDTH: 6.32in! important; TOP: 10.903in! = important; HEIGHT: 7.151in! important } HTML > BODY #Rectangle4_4 { LEFT: 0.28in! important; WIDTH: 6.32in! important; TOP: 6.991in! = important; HEIGHT: 3.541in! important } HTML > BODY #Rectangle4_2 { LEFT: 0.28in! important; WIDTH: 6.32in! important; TOP: 3.161in! = important; HEIGHT: 3.613in! important } HTML > BODY #Rectangle4_1 { LEFT: 0.28in! important; WIDTH: 6.32in! important; TOP: 1.661in! = important; HEIGHT: 1.263in! important } HTML > BODY #Rectangle4_9 { LEFT: 0.396in! important; WIDTH: 2.611in! important; TOP: 3.162in! = important; HEIGHT: 0.08in! important } HTML > BODY #Rectangle12 { LEFT: 0.947in! important; WIDTH: 3.175in! important; TOP: 1.4in! = important; HEIGHT: 0.216in! important } HTML > BODY #Rectangle4_8 { LEFT: 0.411in! important; WIDTH: 2.403in! important; TOP: 22.782in! = important; HEIGHT: 0.075in! important } HTML > BODY #Rectangle4_5 { LEFT: 0.388in! important; WIDTH: 1.678in! important; TOP: 7.066in! = important; HEIGHT: 0.08in! important } HTML > BODY #Rectangle4_12 { LEFT: 0.37in! important; WIDTH: 1.729in! important; TOP: 6.97in! = important; HEIGHT: 0.08in! important } HTML > BODY #Rectangle4_6 { LEFT: 0.415in! important; WIDTH: 1.178in! important; TOP: 10.903in! = important; HEIGHT: 0.08in! important } HTML > BODY #Rectangle4_10 { LEFT: 0.28in! important; WIDTH: 6.32in! important; TOP: 18.645in! = important; HEIGHT: 3.566in! important } HTML > BODY #Rectangle4_11 { LEFT: 0.405in! important; WIDTH: 2.178in! important; TOP: 18.632in! = important; HEIGHT: 0.075in! important } HTML > BODY #Rectangle11 { LEFT: 0.937in! important; WIDTH: 2.191in! important; TOP: 26.266in! = important; HEIGHT: 0.241in! important } HTML > BODY #DFS__GO { LEFT: 3.16in! important; WIDTH: 0.565in! important; TOP: 26.271in! = important; HEIGHT: 0.22in! important } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS00_Lib_Strings.js CSTXT_ERR_AL =3D "alpha"; CSTXT_ERR_ALSL =3D "special"; CSTXT_ERR_AND =3D "and"; CSTXT_ERR_INVLDCHAR1_STR =3D "Invalid character"; CSTXT_ERR_INVLDCHAR2_STR =3D "Invalid character(s). This = field only allows %1 characters."; CSTXT_ERR_LENTOOLONG1_STR =3D "There are too many characters = entered in this field"; CSTXT_ERR_LENTOOLONG2_STR =3D "The maximum field length is = %s characters"; CSTXT_ERR_LENTOOLONG3_STR =3D "The field value '%s' exceeds = the maximum field length of %s characters"; CSTXT_ERR_LENTOOSHORT1_STR =3D "Not enough characters = entered"; CSTXT_ERR_LENTOOSHORT2_STR =3D "This field requires at least = %s characters"; CSTXT_ERR_NUM =3D "numeric"; CSTXT_ERR_NUMSL =3D "special"; CSTXT_ERR_SPACE =3D "space"; CS_ACROBAT40_WARN =3D "This form requires Adobe = Acrobat 5.05 or later or Adobe Reader 5.05 or later. To view it or fill = it out, you will need to upgrade Adobe Acrobat or download a new copy of = Adobe Reader from Adobe.com."; CS_ACTION_BUTTON_TOOLTIP =3D "Perform the action selected = in the Action List."; CS_ACTION_LIST =3D "[Preview]"; CS_ACTION_LIST_TOOLTIP =3D "Select an action to = perform."; CS_BACK_BUTTON =3D "<<"; CS_CAL_CANCEL =3D "Cancel"; CS_CAL_CLOSE =3D "Close"; CS_CAL_FRI =3D "Fri"; CS_CAL_FRIDAY =3D "Friday"; CS_CAL_GOTO =3D "Go to"; CS_CAL_GOTO_MONTH =3D "Any month"; CS_CAL_GOTO_TODAY =3D "Today's date"; CS_CAL_GOTO_YEAR =3D "Any year"; CS_CAL_MON =3D "Mon"; CS_CAL_MONDAY =3D "Monday"; CS_CAL_SAT =3D "Sat"; CS_CAL_SATURDAY =3D "Saturday"; CS_CAL_SELECT_MONTH =3D "Select a month"; CS_CAL_SHOW_CAL =3D "Show calendar"; CS_CAL_SUN =3D "Sun"; CS_CAL_SUNDAY =3D "Sunday"; CS_CAL_THU =3D "Thu"; CS_CAL_THURSDAY =3D "Thursday"; CS_CAL_TUE =3D "Tue"; CS_CAL_TUESDAY =3D "Tuesday"; CS_CAL_WED =3D "Wed"; CS_CAL_WEDNESDAY =3D "Wednesday"; CS_CAL_YEAR_INSTRUCTION_A =3D "Type a four digit year."; CS_CAL_YEAR_INSTRUCTION_B =3D "Press the Enter key when = finished."; CS_CHOOSE_COMBO_STR =3D "->Choose an item"; CS_CONTINUOUS_MODE =3D "Continuous"; CS_CSERR_ERR_SUCCESS_STR =3D "Success"; CS_CSERR_ERR_UNDEFINED_STR =3D "Undefined Error"; CS_CSFMT_ERR_INVLDFMTOBJ_STR =3D "Invalid Format Object"; CS_CSFMT_ERR_INVLDFMTTYPE_STR =3D "Invalid Format Type"; CS_DATETIME_APR =3D "Apr"; CS_DATETIME_APRIL =3D "April"; CS_DATETIME_AUG =3D "Aug"; CS_DATETIME_AUGUST =3D "August"; CS_DATETIME_DEC =3D "Dec"; CS_DATETIME_DECEMBER =3D "December"; CS_DATETIME_FEB =3D "Feb"; CS_DATETIME_FEBRUARY =3D "February"; CS_DATETIME_JAN =3D "Jan"; CS_DATETIME_JANUARY =3D "January"; CS_DATETIME_JLY =3D "Jly"; CS_DATETIME_JUL =3D "Jul"; CS_DATETIME_JULY =3D "July"; CS_DATETIME_JUN =3D "Jun"; CS_DATETIME_JUNE =3D "June"; CS_DATETIME_MAR =3D "Mar"; CS_DATETIME_MARCH =3D "March"; CS_DATETIME_MAY =3D "May"; CS_DATETIME_NOV =3D "Nov"; CS_DATETIME_NOVEMBER =3D "November"; CS_DATETIME_OCT =3D "Oct"; CS_DATETIME_OCTOBER =3D "October"; CS_DATETIME_SEP =3D "Sep"; CS_DATETIME_SEPT =3D "Sept"; CS_DATETIME_SEPTEMBER =3D "September"; CS_DIGITAL_APPROVE_CLEAR_MSG =3D "This will clear this = signature and unlock any associated fields. Continue?"; CS_DIGITAL_APPROVE_CLICK =3D "I, %1, on %2, hereby affirm = that %3\nRole: %4\nForm: %5\nSignature Field: %6\nSignature Description: = %7"; CS_DIGITAL_APPROVE_SUBMIT =3D "Signing this field will = submit the form. Continue?"; CS_DIGITAL_APPROVE_USER =3D "(Anonymous)"; CS_DTOBJ_ERR_DATE_OUTOFRANGE_A_STR =3D "Date must be after or equal = to %s"; CS_DTOBJ_ERR_DATE_OUTOFRANGE_B_STR =3D "Date must be before or equal = to %s"; CS_DTOBJ_ERR_DATE_OUTOFRANGE_R_STR =3D "Date must be between or equal = to %s and %s"; CS_DTOBJ_ERR_DATE_OUTOFRANGE_STR =3D "Date is out of range"; CS_DTOBJ_ERR_DAY_OUTOFRANGE_STR =3D "Day is out of range"; CS_DTOBJ_ERR_FORMAT_INVALID_STR =3D "Format is invalid, format the = value like this %s"; CS_DTOBJ_ERR_HOUR_OUTOFRANGE_STR =3D "Hour is out of range"; CS_DTOBJ_ERR_MINUTE_OUTOFRANGE_STR =3D "Minutes are out of range"; CS_DTOBJ_ERR_MONTH_OUTOFRANGE_STR =3D "Month is out of range"; CS_DTOBJ_ERR_MONTH_UNRECOGNIZABLE_STR =3D "Month is Unrecognizable"; CS_DTOBJ_ERR_SECOND_OUTOFRANGE_STR =3D "Seconds are out of range"; CS_DTOBJ_ERR_TEMPLATE_INVALID_STR =3D "Template is invalid"; CS_DTOBJ_ERR_YEAR_OUTOFRANGE_STR =3D "Year is out of range"; CS_ERR_CALC_LENGTH_STR =3D "%s exceeds the maximum length = of %d characters for the calculation result field '%s'"; CS_ERR_CALC_RANGE_STR =3D "The value of the calculation = result field '%s' is invalid:\r"; CS_ERR_ENTRY_REQUIRED_STR =3D "A required field was found = empty!"; CS_ERR_NEED50ORGREATER_STR =3D "This PDF document requires = Acrobat (or Reader) 5.0 or greater."; CS_ERR_NOTPUBLISHED =3D "This action requires the form = to be published to a LiquidOffice server."; CS_GO =3D "Go"; CS_INFOPATH_BACK_BUTTON =3D "<<"; CS_INFOPATH_CONFIRM_CANCEL =3D "Cancel"; CS_INFOPATH_CONFIRM_OK =3D "OK"; CS_INFOPATH_CONFIRM_TITLE =3D "LiquidOffice confirmation = dialog"; CS_INFOPATH_DOCUMENTS =3D "My Documents"; CS_INFOPATH_NO_TASKPANE_MESSAGE1 =3D "Custom TaskPane not supported = in preview mode with InfoPath Service Pack 1."; CS_INFOPATH_NO_TASKPANE_MESSAGE2 =3D "This does not affect the = publishing of forms."; CS_INFOPATH_PRINTABLE =3D "All Pages (printable)"; CS_INFOPATH_REDIRECT =3D "Processing your submission. = Please wait..."; CS_INFOPATH_REDIRECT_MESSAGE1 =3D "If InfoPath does not = immediately redirect, please click here to continue."; CS_INFOPATH_REDIRECT_MESSAGE2 =3D "To return to your InfoPath = form, please use the controls on the LiquidOffice Task Pane to select a = different page."; CS_INFOPATH_REDIRECT_MESSAGE3 =3D "Please wait..."; CS_INFOPATH_REDIRECT_MESSAGE4 =3D "Your form is being = submitted..."; CS_INFOPATH_SIGNATURE_INFO =3D "Info"; CS_INFOPATH_SIGNATURE_INFO_TITLE =3D "Signature info"; CS_INFOPATH_SIGNATURE_SIGN =3D "Click to Sign Now"; CS_INFOPATH_SIGNATURE_UNSIGN =3D "Signed by %1 \nClick to = Unsign Now"; CS_INK_LOADING =3D "Ink picture loading..."; CS_INVALIDFIELD =3D "Please check field '%s', it = was invalid before submitting."; CS_LOOKUP_LIST =3D "[lookup]"; CS_MSXML_WARN =3D "This browser requires MSXML = for some features of this form to work correctly. If you have trouble = installing this control, please contact your system administrator."; CS_NEXT_BUTTON =3D ">>"; CS_NUMBEROBJ_ERR_CHAR_LENGTH =3D "%s exceeds the field's = maximum length of %d characters"; CS_NUMBEROBJ_ERR_FORMAT_INVALID_STR =3D "Format is invalid, format = with numeric characters only"; CS_NUMBEROBJ_ERR_OUTOFRANGE_B_STR =3D "Value must be between or = equal to %s and %s"; CS_NUMBEROBJ_ERR_OUTOFRANGE_E_STR =3D "Value must be equal to %s"; CS_NUMBEROBJ_ERR_OUTOFRANGE_G_STR =3D "Value must be greater than or = equal to %s"; CS_NUMBEROBJ_ERR_OUTOFRANGE_L_STR =3D "Value must be less than or = equal to %s"; CS_NUMBEROBJ_ERR_OUTOFRANGE_STR =3D "Value is out of range"; CS_OBJ_ERR_SUCCESS_STR =3D "Success"; CS_OBJ_ERR_UNDEFINED_STR =3D "Undefined Error"; CS_OFFLINE =3D "Offline"; CS_OFFLINE_ERR_OFFLINE =3D "This form is currently = offline. You must reconnect first"; CS_OFFLINE_ERR_SAVE =3D "Did not save offline:"; CS_OFFLINE_ERR_USER =3D "Unable to reconnect with a = different user"; CS_OFFLINE_MSG_PREVIEW =3D "Warning: preview forms saved = offline do not submit"; CS_OFFLINE_RECONNECT =3D "Reconnect"; CS_OFFLINE_RECONNECT_TT =3D "Reestablish a connection to = the LiquidOffice server"; CS_OFFLINE_SAVE =3D "Save"; CS_OFFLINE_SAVE_AS =3D "Save As"; CS_OFFLINE_SAVE_TT =3D "Save your form to disk"; CS_OFFLINE_WARN_NEED_CERT =3D "Did not reconnect to secure = server. You may need to install the certificate and try again."; CS_OFFLINE_WARN_RECONNECT =3D "Did not reconnect. Please = close all browser windows, re-open form and try again."; CS_OFFLINE_WORK_OFFLINE =3D "Save Offline"; CS_OFFLINE_WORK_OFFLINE_TT =3D "Save your form to disk and = work offline"; CS_ONLINE =3D "Online"; CS_OTHER_COMBO_STR =3D "[Other...]"; CS_PAGED_MODE =3D "Paged"; CS_POP_CLICKTODRAG =3D "Click to drag"; CS_PRINT_BUTTON =3D "Printable Version"; CS_PRINT_BUTTON_TT =3D "Open a new window with all = pages displayed, suitable for printing"; CS_SIGNATURE =3D "Warning: this form uses = digital signature technology that is not supported in HTML, and will not = be able to accept digital signatures without Adobe Acrobat."; CS_SIG_VERIFY_FAILED =3D "Signed data has been changed = since signing. Do you want to restore the original signed values?"; CS_SIG_VERIFY_FAILED_TITLE =3D "Validation Failed"; CS_SIG_VERIFY_OK =3D "Signed data has not been = changed since signing."; CS_TEMPLATEOBJ_ERR_FORMAT_INVALID_STR =3D "Format is invalid, format the = value like this %s"; CS_WARN_BLANK_FORM_STR =3D "Your form did not load = properly. Press Refresh in your Browser to retry."; CS_WARN_SUBMIT_PENDING_STR =3D "A lookup or validation is = still pending.\nDo you wish to wait?"; CS_XMLHTTP_INVALID =3D "The server provided an = invalid response"; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS00_Lib_Locale.js var CS_LOCALE =3D 1033; CS_TEXT_ALPHA =3D = "A-Za-z\u00c0-\u1f4d\u1f50-\u1f57\u1f59-\u1fbc\u1fc2-\u1fcc\u1fd0-\u1fdb\= u1fe0-\u1fec\u1ff2-\u1ffc\u3041-\u3094\u30a1-\u30fa\u30fc-\u30fe\u3105-\u= 312c\u3131-\u318e\u31a0-\u31b7\u3400-\u34ff\u4d00-\u4db5\u4e00-\u9fa5\uac= 00-\ud7a3\ufa00-\ufa2d\uff21-\uff3a\uff61-\uffbe\uffc2-\uffc7\uffca-\uffc= f\uffd2-\uffd7\uffda-\uffdc"; CS_TEXT_NUM =3D "0-9\uff10-\uff19"; CS_TEXT_ALNUM =3D = "0-9A-Za-z\u00c0-\u1f4d\u1f50-\u1f57\u1f59-\u1fbc\u1fc2-\u1fcc\u1fd0-\u1f= db\u1fe0-\u1fec\u1ff2-\u1ffc\u3041-\u3094\u30a1-\u30fa\u30fc-\u30fe\u3105= -\u312c\u3131-\u318e\u31a0-\u31b7\u3400-\u34ff\u4d00-\u4db5\u4e00-\u9fa5\= uac00-\ud7a3\ufa00-\ufa2d\uff10-\uff19\uff21-\uff3a\uff61-\uffbe\uffc2-\u= ffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; CS_TEXT_UPPER =3D = "A-Z\u00c0-\u1f4d\u1f59-\u1f5f\u1f68-\u1f6f\u1f88-\u1f8f\u1f98-\u1f9f\u1f= a8-\u1faf\u1fb8-\u1fbc\u1fc8-\u1fcc\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ff= c\u3041-\u3094\u30a1-\u30fa\u30fc-\u30fe\u3105-\u312c\u3131-\u318e\u31a0-= \u31b7\u3400-\u34ff\u4d00-\u4db5\u4e00-\u9fa5\uac00-\ud7a3\ufa00-\ufa2d\u= ff21-\uff3a\uff61-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uf= fdc"; CS_TEXT_LOWER =3D = "a-z\u00df-\u00ff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u= 0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u0= 12b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0= 142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0= 159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u01= 71\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u0= 18d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01ab\u01ad\u0= 1b0\u01b4\u01b6\u01b9\u01bd\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01= dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u0= 1f5\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u02= 11\u0213\u0215\u0217-\u0293\u0299-\u02a0\u03ac-\u03ce\u03e3\u03e5\u03e7\u= 03e9\u03eb\u03ed\u03ef\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u= 046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u0491\u0= 493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04= ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c= 4\u04c8\u04cc\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3= \u04e5\u04e7\u04e9\u04eb\u04ef\u04f1\u04f3\u04f5\u04f9\u0561-\u0586\u1e01= \u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\= u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u= 1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1= e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e= 63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7= b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93= \u1e95-\u1e9b\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3= \u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\= u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u= 1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9-\u1f07\u= 1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1= f67\u1f70-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb7\u1fc2-\u1fc7\u1fd= 0-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff7"; CS_TEXT_SPACE =3D " \u00a0\u115f-\u1160\u2000-\u200d\u3000\u3164"; CS_TEXT_ALPHASPL =3D = "\\!-\\/\\:-@\\[-`\\{-~=80\u00a1-\u00bf\u00d7\u00f7\u01c4-\u01cc\u02a3-\u= 02a8\u0374-\u0375\u037e\u0384-\u0385\u0387\u0482-\u0486\u04a4-\u04a5\u04d= 4-\u04d5\u055a-\u055f\u0589-\u058a\u0591-\u05c4\u05f0-\u05f2\u064b\u0660-= \u066d\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u= 0b66-\u0b6f\u0be7-\u0bf2\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e3f\u0e= 50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f33\u1040-\u1049\u1369-\u137c\u17e0-\u17e= 9\u1810-\u1819\u1fbd-\u1fc1\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u2010-= \u2027\u2030-\u2046\u2048-\u204d\u2070-\u207e\u2080-\u208e\u20a0-\u20af\u= 2100-\u213a\u2160-\u2182\u2190-\u21f3\u2200-\u22f1\u2300-\u237b\u237d-\u2= 39a\u2400-\u2426\u2440-\u244a\u2460-\u24e9\u2500-\u2595\u25a0-\u25f7\u260= 0-\u2613\u2619-\u2671\u2701-\u2704\u2706-\u2709\u270c-\u2727\u2729-\u274b= \u274d\u274f-\u2752\u2756\u2758-\u275e\u2761-\u2767\u2776-\u2794\u3001-\u= 3029\u3030-\u303a\u30fb\u3200-\u321c\u3220-\u3243\u3260-\u327b\u3280-\u32= b0\u32d0-\u32fe\u3300-\u3357\u3371-\u3376\u3380-\u33dd\ufb00-\ufb06\ufb1f= \ufbea-\ufbfb\ufc00-\ufd3d\ufd50-\ufdfb\ufe20-\ufe23\ufe49-\ufe52\ufe54-\= ufe66\ufe68-\ufe6b\ufe70-\ufe7f\ufef5-\ufefc\uff01-\uff0f\uff1a-\uff20\uf= f3b-\uff40\uff5b-\uff5e\uff61-\uff65\uffe0-\uffe6"; CS_TEXT_NUMSPL =3D = "\\!-\\/\\:-@\\[-`\\{-~=80\u00a1-\u00bf\u00d7\u00f7\u01c4-\u01cc\u02a3-\u= 02a8\u0374-\u0375\u037e\u0384-\u0385\u0387\u0482-\u0486\u04a4-\u04a5\u04d= 4-\u04d5\u055a-\u055f\u0589-\u058a\u0591-\u05c4\u05f0-\u05f2\u064b\u0660-= \u066d\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u= 0b66-\u0b6f\u0be7-\u0bf2\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0e3f\u0e= 50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f33\u1040-\u1049\u1369-\u137c\u17e0-\u17e= 9\u1810-\u1819\u1fbd-\u1fc1\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u2010-= \u2027\u2030-\u2046\u2048-\u204d\u2070-\u207e\u2080-\u208e\u20a0-\u20af\u= 2100-\u213a\u2160-\u2182\u2190-\u21f3\u2200-\u22f1\u2300-\u237b\u237d-\u2= 39a\u2400-\u2426\u2440-\u244a\u2460-\u24e9\u2500-\u2595\u25a0-\u25f7\u260= 0-\u2613\u2619-\u2671\u2701-\u2704\u2706-\u2709\u270c-\u2727\u2729-\u274b= \u274d\u274f-\u2752\u2756\u2758-\u275e\u2761-\u2767\u2776-\u2794\u3001-\u= 3029\u3030-\u303a\u30fb\u3200-\u321c\u3220-\u3243\u3260-\u327b\u3280-\u32= b0\u32d0-\u32fe\u3300-\u3357\u3371-\u3376\u3380-\u33dd\ufb00-\ufb06\ufb1f= \ufbea-\ufbfb\ufc00-\ufd3d\ufd50-\ufdfb\ufe20-\ufe23\ufe49-\ufe52\ufe54-\= ufe66\ufe68-\ufe6b\ufe70-\ufe7f\ufef5-\ufefc\uff01-\uff0f\uff1a-\uff20\uf= f3b-\uff40\uff5b-\uff5e\uff61-\uff65\uffe0-\uffe6"; CS_TEXT_PUNC =3D = "\\!-#%-*\\--\\/\\:-\\;\\?-@\\[-]_\\{-}\u00a1\u00a6-\u00a7\u00a9\u00ab-\u= 00ae\u00b0\u00b5-\u00b7\u00bb\u00bf\u0294-\u0298\u0374-\u0375\u037e\u055a= \u055c-\u055f\u0589\u05f3-\u05f4\u060c\u061b\u061f\u06ea-\u06ed\u10fb\u20= 10-\u2029\u2030-\u2044\u3001-\u3003\u3008-\u3011\u3014-\u301b\u301d-\u301= f\u3031-\u3035\u30fb\ufd3e-\ufd3f\ufe35-\ufe44\ufe49-\ufe52\ufe54-\ufe66\= ufe68-\ufe6b\uff01-\uff0f\uff1a-\uff20\uff3b-\uff3d\uff5b-\uff5e\uff61-\u= ff65"; CS_TEXT_RETURN =3D "\\r\\n"; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS10_Lib_Shared.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved function CS_isCharIn( c, seps ) { var ret =3D false; var i; for (i =3D 0; i < seps.length; i++) { if (seps.charAt( i ) =3D=3D c) { ret =3D true; break; } } return ret; } CS_REGEXPLITS =3D "/\\.*+?|()[]{}^$ "; function CS_EscapeRegExpLiterals( s ) { var ret =3D ""; var i; for (i =3D 0; i < s.length; i++) { if (CS_isCharIn( s.charAt( i ), CS_REGEXPLITS )) ret +=3D "\\"; ret +=3D s.charAt( i ); } return ret; } var CS_IntZeroMatch =3D /^0*(\d)/; function CS_ParseInt( str ) { if (typeof( str ) =3D=3D "number") return str; var ret =3D str.replace( CS_IntZeroMatch, "$1" ); if (ret =3D=3D "") ret =3D "0"; ret =3D parseInt( ret ); return ret; } function CS_ParseIntEx( str ) { if (typeof( str ) =3D=3D "string" && str !=3D "") return CS_ParseInt( str ); if (typeof( str ) =3D=3D "number") return str; } var CS_FloatMatch =3D /^-?[0-9]*(\.[0-9]+)?$/; function CS_ParseFloat( str ) { if (typeof( str ) =3D=3D "number") return str; var ret =3D str.match( CS_FloatMatch ); if (ret !=3D null) ret =3D parseFloat( ret[0] ); return ret; } function CS_ParseFloatEx( str ) { if (typeof( str ) =3D=3D "string" && str !=3D "") return CS_ParseFloat( str ); if (typeof( str ) =3D=3D "number") return str; } function CS_NumberForceLengthPrepend( num, length ) { if (num =3D=3D null) num =3D 0; var ret =3D ""; var ter =3D ""; var tmp =3D num.toString(); var i =3D 0; for (i =3D 0; i < length; i++) { if (i >=3D tmp.length) { ter +=3D "0"; } else { ter +=3D tmp.charAt( tmp.length - i - 1 ); } } for (i =3D 0; i < ter.length; i++) ret +=3D ter.charAt( ter.length - i - 1); return ret; } function CS_NumberForceLengthAppend( num, length ) { var ret =3D ""; var tmp =3D num.toString(); var i =3D 0; if (tmp.length < length) { ret =3D tmp; for (i =3D 0; i < length - tmp.length; i++) ret +=3D "0"; } else { ret =3D tmp.slice( 0, length ); } return ret; } function CS_ReverseString( s ) { var ret =3D ""; var l =3D s.length; for (var i =3D l - 1; i >=3D 0; i--) ret +=3D s.charAt( i ); return ret; } function CS_NumToString( n, dp, dps, ss, cs, app, rnd ) { var ret =3D ""; var nn =3D n < 0 ? n * -1 : n; var e =3D Math.floor( (Math.LOG10E * Math.log( nn )) + = 0.000000000000001 );=20 var nm =3D nn * Math.pow( 10, -e ); =20 if (rnd) { nm =3D CS_Round( nm, dp + e ); if (nm =3D=3D 10) { =20 nm =3D 1; e +=3D 1; } } var nms =3D nm.toString(); var nmsl =3D nms.length; var ns =3D ""; =20 =20 =20 for (var i =3D 0; i < nmsl; i++) ns +=3D nms.charAt( i ) !=3D "." ? nms.charAt( i ) : ""; var nsl =3D ns.length; if (e =3D=3D (-1/0) || e < 0) { =20 var ct =3D 1 + 1 + dp;=20 =20 =20 =20 var nsidx =3D 0; ret +=3D "0"; if (dp !=3D 0) ret +=3D dps; for (var i =3D 2; i < ct; i++) { nsidx =3D i - 1 + e;=20 if (nsidx >=3D 0 && nsidx < nsl) { ret +=3D ns.charAt( nsidx ); } else { ret +=3D "0"; } } } else { var ct =3D dp + e + 1;=20 var cnt =3D 0; var nsidx =3D 0; var emc =3D 0; for (var i =3D 0; i < ct; i++) { nsidx =3D cnt; emc =3D e - cnt; if (nsidx >=3D 0 && nsidx < nsl) { ret +=3D ns.charAt( nsidx ); } else { ret +=3D "0"; } cnt++; if (emc =3D=3D 0 && dp !=3D 0) ret +=3D dps; if (emc > 0 && (emc % 3) =3D=3D 0) ret +=3D ss; } } var r =3D ""; if (n < 0) r +=3D "-"; if (!app) { r +=3D cs + ret; } else { r +=3D ret + cs } return r; } function CS_Round( num, dp ) { var fudge =3D Math.pow(10, dp); var sg =3D num >=3D 0 ? 1 : -1; num *=3D sg; num *=3D fudge; num =3D Math.round(num); num /=3D fudge; return num *=3D sg; } function CS_CharFilter( string, filter ) { if (filter =3D=3D null) return true; var t =3D "[^" + filter + "]"; var pattern =3D new RegExp( t ); return !pattern.test( string ); } function CS_ObjectProperties( obj, bVal ) { var names =3D ""; for (var i in obj) { names +=3D typeof( obj[ i ] ) + " " + i; if (bVal) names +=3D " =3D " + obj[ i ]; names +=3D "\n"; } return names; } var CS_DLRSGN =3D ""; var CS_DLRSGNRX =3D //g; function CS_InsertString( srcStr, insStr ) { =20 =20 =20 =20 =20 =20 var p =3D /\%s/; var ds =3D /\$/g; var rpl =3D insStr.replace( ds, CS_DLRSGN ); var ret =3D srcStr.replace( p, rpl ); ret =3D ret.replace( CS_DLRSGNRX, "$" ); return ret; } function CS_Dec_Chop( numb, places ) { if (places<0) return 0; var numbStr =3D numb.toString(); var decLoc =3D numbStr.indexOf("."); if (places=3D=3D0) { if (decLoc=3D=3D-1) return numbStr; else return numbStr.substr(0, decLoc); } else { if (decLoc=3D=3D-1) { numbStr +=3D "."; decLoc =3D numbStr.length - 1; } =20 for( var idx=3D0; idx < places; idx++) numbStr +=3D "0"; return numbStr.substr( 0, decLoc + places + 1 ); } } function CS_FormatMessage( msg ) { =20 =20 =20 var args =3D CS_FormatMessage.arguments; var result =3D msg; for ( var idx=3D1; idx < args.length; idx++) { var rx =3D new RegExp( "%" + idx, "g" ); result =3D result.replace( rx, args[idx] ); } return result; } var CS_TrimTailWSRgx =3D /\s*\s$/; var CS_TrimLeadWSRgx =3D /^\s*\s/; var CS_NormalizeSRgx =3D /\ {2,}/g; function CS_ReplaceStr( str, rgx, rpl ) { var r =3D ""; if (typeof( str ) =3D=3D "string") { r =3D str.replace( rgx, rpl ); } return r; } function CS_TrimWS( str ) { return CS_ReplaceStr( CS_ReplaceStr( str, CS_TrimLeadWSRgx, "" ), = CS_TrimTailWSRgx, "" ); } function CS_TrimLeadWS( str ) { return CS_ReplaceStr( str, CS_TrimLeadWSRgx, "" ); } function CS_TrimTailWS( str ) { return CS_ReplaceStr( str, CS_TrimTailWSRgx, "" ); } function CS_NormalizeSpaces( str ) { return CS_ReplaceStr( str, CS_NormalizeSRgx, " " ); } function CS_Array_Push( a, e ) { a[a.length] =3D e; return a.length; } function CS_Array_Pop( a ) { var ret =3D a[a.length-1]; if (a.length > 0) a.length--; return ret; } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS15_Lib_htutils.js // = *************************************************************************= *=0A= // HTML Miscellaneous Utility Functions =0A= //=0A= // Author: Kevin Horning=0A= // Date: 5/18/2004=0A= // Requires: N/A=0A= // Copyright 2001-2006 Cardiff, Inc. All rights reserved.=0A= //=0A= =0A= =0A= CSUtil =3D {=0A= ua: navigator.userAgent,=0A= isIE: null,=0A= isNS: null,=0A= isGecko: null,=0A= isMac: null,=0A= isSafari: null,=0A= safari: { buildMaj: "999", buildMin: "999", webkitMaj: "999", = webkitMin: "999" }=0A= };=0A= CSUtil.isIE =3D (CSUtil.ua.indexOf("MSIE") > 1);=0A= CSUtil.isME =3D (CSUtil.ua.indexOf("Windows 98") > 0);=0A= CSUtil.isNS =3D (CSUtil.ua.indexOf("Netscape") > 1);=0A= CSUtil.isGecko =3D (CSUtil.ua.indexOf("Gecko") > 1);=0A= CSUtil.isSafari =3D (CSUtil.ua.indexOf("Safari") > 1);=0A= CSUtil.isMac =3D (CSUtil.ua.indexOf("Mac") > 1);=0A= =0A= CSUtil.safariBuildRE =3D /Safari\/(\d+).*$/;=0A= CSUtil.safariWebKitRE =3D /AppleWebKit\/(\d+).*$/;=0A= =0A= // If using Safari, get the build number, defaults to 999=0A= if (CSUtil.isSafari && CSUtil.ua.search( CSUtil.safariBuildRE )) {=0A= CSUtil.safari.buildMaj =3D CSUtil.ua.match( CSUtil.safariBuildRE )[1];=0A= }=0A= // If using Safari, get the AppleWebKit version, defaults to 999=0A= if (CSUtil.isSafari && CSUtil.ua.search( CSUtil.safariWebKitRE )) {=0A= CSUtil.safari.webkitMaj =3D CSUtil.ua.match( CSUtil.safariWebKitRE = )[1];=0A= }=0A= =0A= CSUtil.NAMESTEM =3D "HTobj__";=0A= =0A= //=0A= // Returns the position and dimensions of a DHTML object.=0A= // =0A= CSUtil.getDim =3D function ( el ) {=0A= var lw =3D el.offsetWidth;=0A= var lh =3D el.offsetHeight;=0A= for (var lx =3D 0, ly =3D 0; el !=3D null; lx +=3D el.offsetLeft, ly = +=3D el.offsetTop, el =3D el.offsetParent);=0A= return { x:lx, y:ly, w:lw, h:lh };=0A= }=0A= =0A= =0A= //=0A= // Create iframe to block out select boxes. =0A= // Fixes IE bug: select boxes have permanent z-index of infinity.=0A= //=0A= CSUtil.createIFrame =3D function ( el ) {=0A= if (el && CSUtil.isIE) {=0A= var dim =3D CSUtil.getDim( el );=0A= var oIFrameBlock =3D document.createElement( 'IFRAME' );=0A= var source =3D "";=0A= var ssl_protocol =3D document.location.protocol;=0A= var ssl_host =3D document.location.hostname;=0A= var ssl_port =3D document.location.port;=0A= if (ssl_protocol.indexOf('https:') !=3D -1)=0A= source =3D ssl_protocol + "//" + ssl_host + ((ssl_port !=3D "") ? = ":"+ssl_port : "") + "/robots.txt";=0A= =0A= oIFrameBlock.setAttribute('id', el.id + '_iFrame');=0A= oIFrameBlock.setAttribute('src', source);=0A= oIFrameBlock.setAttribute('frameBorder','0');=0A= oIFrameBlock.setAttribute('scrolling', 'no');=0A= with ( oIFrameBlock.style ) {=0A= position =3D "absolute";=0A= top =3D 0;=0A= left =3D "-1px"; =0A= width =3D "101%";=0A= height =3D dim.h;=0A= filter =3D "progid:DXImageTransform.Microsoft.Alpha( = style=3D0, opacity=3D0 )"; // debug here=0A= //border =3D "1px solid red"; = // switch these lines=0A= zIndex =3D -1;=0A= }=0A= el.appendChild( oIFrameBlock );=0A= =0A= return true;=0A= } =0A= }=0A= =0A= CSUtil.resizeIFrames =3D function() {=0A= var f =3D document.getElementsByTagName("IFRAME");=0A= for (var i=3D0; i currWinHeight);=0A= var adjustX =3D ((parseInt(o.offsetLeft) + oDim.w) > currWinWidth);=0A= =0A= // Adjust y.=0A= if (adjustY) {=0A= // Positioning for each type of object.=0A= if (forPop) {=0A= o.style.top =3D CSUtil.pxperc( (tDim.y - tDim.h) , pg ) + "%";=0A= o.style.left =3D CSUtil.pxperc( (tDim.x + tDim.w) , pg ) + "%";=0A= } else if (forCal) {=0A= o.style.top =3D CSUtil.pxperc( (oDim.y - (tDim.h*2 + oDim.h)) + = ((document.all)?zfactor:2), pg ) + "%";=0A= } =0A= }=0A= =0A= // Adjust x.=0A= if (adjustX) {=0A= o.style.left =3D CSUtil.pxperc((oDim.x + tDim.w) - oDim.w, pg ) + = "%";=0A= }=0A= =0A= return;=0A= } =0A= }=0A= =0A= =0A= // = *************************************************************************= *=0A= // HTML Drag Drop =0A= //=0A= // Author: Kevin Horning=0A= // Date: 5/18/2004=0A= // Copyright 2001-2006 Cardiff, Inc. All rights reserved.=0A= //=0A= // Setup DHTML element drag and drop framework.=0A= //=0A= =0A= CSUtil.mm_x =3D 0;=0A= CSUtil.mm_y =3D 0;=0A= CSUtil.pos_x =3D 0;=0A= CSUtil.pos_y =3D 0;=0A= CSUtil.dragOk =3D new Array();=0A= CSUtil.elMove =3D null;=0A= CSUtil.showMousePos =3D false;=0A= =0A= //=0A= // Function for onMouseDown.=0A= //=0A= CSUtil.doMouseDown =3D function ( e ) {=0A= var evt =3D (document.all) ? event : arguments[0];=0A= CSUtil.elMove =3D (document.all) ? event.srcElement : = arguments[0].target;=0A= =0A= // don't use links (Anchors) as drag handles=0A= if (CSUtil.elMove.tagName =3D=3D "A") {=0A= //cs_trace("anchor element, return");=0A= return;=0A= }=0A= =0A= // If any button but the left button is used, do nothing=0A= if ((CSUtil.isIE || CSUtil.isSafari) && evt.button !=3D 1) {=0A= //cs_trace("not left button IE, button: " + evt.button);=0A= return;=0A= }=0A= =0A= if (!CSUtil.isIE && !CSUtil.isSafari && evt.button !=3D 0) {=0A= //cs_trace("not left button DOM2, button: " + evt.button);=0A= return;=0A= }=0A= =0A= CSUtil.elMove =3D CSUtil.verifyMove( CSUtil.elMove );=0A= if (CSUtil.elMove) {=0A= CSUtil.pos_x =3D (document.all) ? CSUtil.elMove.style.pixelLeft : = CSUtil.elMove.offsetLeft;=0A= CSUtil.pos_y =3D (document.all) ? CSUtil.elMove.style.pixelTop : = CSUtil.elMove.offsetTop;=0A= CSUtil.mm_x =3D evt.clientX;=0A= CSUtil.mm_y =3D evt.clientY;=0A= document.onmousemove =3D CSUtil.doMouseMove;=0A= } else {=0A= //cs_trace("move unverified, return");=0A= return;=0A= }=0A= }=0A= =0A= =0A= =0A= //=0A= // Function for onMouseMove.=0A= //=0A= CSUtil.doMouseMove =3D function ( e ) {=0A= CSUtil.elMove =3D CSUtil.verifyMove( CSUtil.elMove );=0A= if (CSUtil.elMove) {=0A= var evt =3D (document.all) ? event : arguments[0];=0A= =0A= if (CSUtil.elMove.style) {=0A= CSUtil.elMove.style.left =3D CSUtil.pxperc( parseInt(CSUtil.pos_x) = + evt.clientX - parseInt(CSUtil.mm_x), CSExt.VisiblePage ) + "%";=0A= CSUtil.elMove.style.top =3D CSUtil.pxperc( parseInt(CSUtil.pos_y) = + evt.clientY - parseInt(CSUtil.mm_y), CSExt.VisiblePage ) + "%";=0A= }=0A= } else {=0A= //cs_trace("mousemove, move not verified");=0A= }=0A= }=0A= =0A= //=0A= // Generic function for capturing mouse position.=0A= //=0A= CSUtil.getMouseXY =3D function (e) { =0A= var evt =3D (document.all) ? event : arguments[0];=0A= if (evt && document.body) {=0A= var tempX =3D 0;=0A= var tempY =3D 0;=0A= if (CSUtil.isIE) { =0A= tempX =3D evt.clientX + document.body.scrollLeft;=0A= tempY =3D evt.clientY + document.body.scrollTop;=0A= } else { // NS not passing event...=0A= tempX =3D evt.pageX;=0A= tempY =3D evt.pageY; =0A= } =0A= CSUtil.mm_x =3D tempX;=0A= CSUtil.mm_y =3D tempY;=0A= if (CSUtil.showMousePos) cs_monitor(CSUtil.mm_x + "," + CSUtil.mm_y);=0A= return {x:tempX, y:tempY};=0A= }=0A= }=0A= =0A= //=0A= // Function for onMouseUp.=0A= //=0A= CSUtil.doMouseUp =3D function () {=0A= // Once the mouse comes up after a drag, both the moving element and = the=0A= // onmousemove function need to be reset=0A= if (CSUtil.elMove !=3D null) {=0A= CSUtil.elMove =3D null;=0A= document.onmousemove =3D CSUtil.getMouseXY;=0A= } else {=0A= //cs_trace("element not set");=0A= }=0A= }=0A= =0A= //=0A= // Approves a passed element for moving.=0A= // Only elements approved for moving can be drag/dropped.=0A= // If no handle any child element can drag, otherwise only specified=0A= // handle child can drag.=0A= //=0A= CSUtil.moveApproved =3D function ( objID, handle ) {=0A= if (objID && CSUtil.dragOk) {=0A= for (var i =3D 0; i < CSUtil.dragOk.length; i++) {=0A= if (CSUtil.dragOk[i].objID =3D=3D objID) {=0A= return false;=0A= }=0A= }=0A= var item =3D CSUtil.dragOk.length;=0A= var obj =3D document.getElementById(objID);=0A= CSUtil.dragOk[item] =3D {}=0A= CSUtil.dragOk[item].objID =3D objID;=0A= if (typeof handle !=3D "undefined") {=0A= CSUtil.dragOk[item].handle =3D handle;=0A= var handleobj =3D document.getElementById(handle);=0A= if (obj && handleobj) {=0A= if (handleobj.style.cursor !=3D "") {=0A= CSUtil.dragOk[item].cursor =3D handleobj.style.cursor;=0A= } =0A= handleobj.style.cursor =3D "move";=0A= }=0A= } else {=0A= obj.style.cursor =3D "move";=0A= } =0A= =0A= if(obj && !document.all) { // NS only=0A= = obj.setAttribute("onmouseup","javascript:CSUtil.doMouseUp(event);");=0A= } =0A= =0A= return true;=0A= }=0A= }=0A= =0A= // =0A= // Removes a passed element from the move approval list.=0A= // Subsequently, element cannot be moved.=0A= //=0A= CSUtil.moveDenied =3D function ( objID ) {=0A= var ret =3D false;=0A= if (objID && CSUtil.dragOk) {=0A= var j =3D 0;=0A= var tempArray =3D new Array();=0A= for (var i =3D 0; i < CSUtil.dragOk.length; i++) {=0A= if (CSUtil.dragOk[i].objID !=3D objID) {=0A= tempArray[j++] =3D CSUtil.dragOk[i];=0A= } else {=0A= ret =3D true;=0A= var cursorobj =3D null;=0A= if (CSUtil.dragOk[i].handle) {=0A= cursorobj =3D document.getElementById(CSUtil.dragOk[i].handle);=0A= } else {=0A= cursorobj =3D document.getElementById(objID);=0A= }=0A= if (CSUtil.dragOk[i].cursor) {=0A= cursorobj.style.cursor =3D CSUtil.dragOk[i].cursor;=0A= } else {=0A= cursorobj.style.cursor =3D "default";=0A= } =0A= }=0A= }=0A= CSUtil.dragOk =3D tempArray;=0A= }=0A= return ret;=0A= }=0A= =0A= //=0A= // Returns an element (or container) if approved for move.=0A= //=0A= CSUtil.verifyMove =3D function ( obj ) {=0A= if (obj && obj.tagName !=3D "HTML") {=0A= var compObj =3D obj;=0A= // Loop through list of permitted objects.=0A= for (var i =3D 0; i < CSUtil.dragOk.length; i++) {=0A= compObj =3D obj;=0A= // Loop through object's parents if necessary because the = container=0A= // object may have the permission.=0A= do {=0A= var objID =3D compObj.id;=0A= if (objID =3D=3D CSUtil.dragOk[i].objID) {=0A= // Found a matching permission.=0A= if (CSUtil.dragOk[i].handle) { =0A= // Check to see if drag handle required then if drag handle = or object (or drag handle child) is being used.=0A= // Considering drag handle child allows for title text to = be used.=0A= if (obj.nodeType =3D=3D 1) { // For Safari skip text node = in handle.=0A= if (obj.id =3D=3D CSUtil.dragOk[i].handle || obj.id =3D=3D = CSUtil.dragOk[i].objID || obj.parentNode.id =3D=3D = CSUtil.dragOk[i].handle)=0A= return document.getElementById( objID );=0A= else =0A= return null;=0A= }=0A= } =0A= return document.getElementById( objID );=0A= } else {=0A= // Get parent and try again.=0A= compObj =3D compObj.parentNode;=0A= }=0A= } while (compObj.tagName !=3D "BODY" && compObj.tagName !=3D = "HTML"); =0A= }=0A= }=0A= return null;=0A= }=0A= =0A= =0A= =0A= //=0A= // IE, Safari, Firefox setup.=0A= // =0A= document.onmousedown =3D CSUtil.doMouseDown;=0A= document.onmouseup =3D CSUtil.doMouseUp;=0A= document.onmousemove =3D CSUtil.getMouseXY;=0A= =0A= //=0A= // Netscape setup.=0A= // =0A= if (navigator.appName =3D=3D 'Netscape') {=0A= document.captureEvents(Event.MOUSEMOVE);=0A= }=0A= =0A= =0A= // = *************************************************************************= *=0A= // HTML Popup Note =0A= //=0A= // Author: Kevin Horning=0A= // Date: 5/18/2004=0A= // Requires: html_utils.js=0A= // Copyright 2001-2006 Cardiff, Inc. All rights reserved.=0A= //=0A= //=0A= // Creates a "sticky note" type popup message.=0A= // parameters:=0A= // pTarget =3D The associated button element which triggers = the note.=0A= // pColor =3D Color of note in standard HTML hexadecimal = notation.=0A= // pWidth =3D The width of the note.=0A= // pMsg =3D The text content of the note.=0A= //=0A= =0A= CSUtil.popup =3D {};=0A= =0A= CSUtil.popup.NAMESTEM =3D CSUtil.NAMESTEM + 'Popup_'; // Use for = id's to keep unique.=0A= =0A= CSUtil.popup.createPopup =3D function( pTarget, pColor, pWidth, pMsg ) {=0A= var HTML_NONE =3D 0; // Strip out HTML tags.=0A= var HTML_ALL =3D 1; // Leave in HTML tags.=0A= var HTML_LIMITED =3D 2; // Allow hyperlinks.=0A= =0A= var oTarget =3D null; // The html element that called = the note. Typically a button.=0A= var popColor =3D (pColor.search(/^#(([A-F])|\d){3,6}$/i) !=3D = -1) ? pColor : "#FFFFC0"; // Validate color or use default (yellow).=0A= var width =3D 0; // Desired width of popup note.=0A= var sMsg =3D ""; // Message text.=0A= var objType =3D "obj";=0A= =0A= var bHTMLEnabled =3D HTML_ALL; =0A= var closeSquare =3D 18;=0A= =0A= if (pTarget) {=0A= oTarget =3D pTarget;=0A= }=0A= if (parseInt(pWidth) > 0) {=0A= width =3D pWidth;=0A= }=0A= if (pMsg.length > 0) {=0A= sMsg =3D pMsg;=0A= }=0A= =0A= //=0A= // Get position of calling button (or element).=0A= //=0A= var t =3D CSUtil.getDim( oTarget );=0A= var pg =3D CSClient.getPageNumber( oTarget );=0A= =0A= // Make adjustment for zoom.=0A= var zoom =3D document.getElementById('DFS__ctrlZoom').value;=0A= var zfactor =3D 0;=0A= if (zoom =3D=3D 80)=0A= zfactor =3D 6;=0A= else if (zoom =3D=3D 120)=0A= zfactor =3D 14;=0A= =0A= if (CSUtil.isNS)=0A= zfactor =3D 0;=0A= =0A= //=0A= // Set pop position and dimension properties. Position note below = calling button.=0A= //=0A= var popX =3D t.x; =0A= var popY =3D CSUtil.continousAdj( t.y, pg ); =0A= var popWidth =3D width;=0A= =0A= //=0A= // If popup exist, reset original position and quit.=0A= //=0A= var existing =3D document.getElementById(CSUtil.popup.NAMESTEM + = 'popupCtrlContainer_' + oTarget.id);=0A= if (existing) { =0A= existing.style.left =3D CSUtil.pxperc( popX - 3, pg ) + "%"; = =0A= existing.style.top =3D CSUtil.pxperc( popY - 3 + zfactor, pg ) + = "%"; =0A= return;=0A= } =0A= =0A= //=0A= // Create popUpContainer.=0A= //=0A= var popUpContainer =3D document.createElement( 'div' );=0A= popUpContainer.setAttribute('id', CSUtil.popup.NAMESTEM + = 'popupCtrlContainer_' + oTarget.id); =0A= //popUpContainer.setAttribute('title', oTarget.innerHTML + " note");=0A= popUpContainer.onmousedown =3D function () { = CSUtil.popup.bringPopupForward( popUpContainer ); };=0A= with ( popUpContainer.style ) {=0A= position =3D "absolute"; =0A= //left =3D popX + "px"; =0A= //top =3D popY + "px";=0A= left =3D CSUtil.pxperc( popX - 3, pg ) + "%"; = =0A= top =3D CSUtil.pxperc( popY - 3 + zfactor, pg ) + "%"; =0A= width =3D popWidth + "px";=0A= backgroundColor =3D popColor; =0A= border =3D "1px solid gray"; =0A= zIndex =3D 99999;=0A= }=0A= //document.body.appendChild( popUpContainer );=0A= var shimDiv =3D CSUtil.getShimDiv( oTarget );=0A= shimDiv.appendChild( popUpContainer );=0A= =0A= //=0A= // Create drag control.=0A= //=0A= var dragCtrl =3D document.createElement( 'div' );=0A= dragCtrl.setAttribute('id', CSUtil.popup.NAMESTEM + 'dragCtrl' + = oTarget.id);=0A= dragCtrl.setAttribute( 'title', CS_POP_CLICKTODRAG );=0A= if (!document.all) {=0A= // NS only=0A= = dragCtrl.setAttribute("onmouseup","javascript:CSUtil.doMouseUp(event);");=0A= } =0A= /* removed from spec=0A= dragCtrl.onmouseover =3D function () { =0A= var pop =3D document.getElementById(CSUtil.popup.NAMESTEM + = 'popupCtrlContainer_' + oTarget.id);=0A= pop.style.border =3D "1px dashed blue";=0A= }=0A= dragCtrl.onmouseout =3D function () { =0A= var pop =3D document.getElementById(CSUtil.popup.NAMESTEM + = 'popupCtrlContainer_' + oTarget.id);=0A= pop.style.border =3D "1px solid gray"; =0A= } */ =0A= with ( dragCtrl.style ) {=0A= height =3D (closeSquare) + "px";=0A= backgroundColor =3D CSExt.cal.dragColor;=0A= backgroundImage =3D "url(" + CSExt.handleImg + ")";=0A= borderBottom =3D "1px solid gray";=0A= cursor =3D "move";=0A= }=0A= if (1) {=0A= var titlediv =3D document.createElement( 'span' );=0A= with (titlediv.style) {=0A= position =3D "absolute";=0A= borderRight =3D "1px solid gray";=0A= backgroundColor =3D "#404040"; =0A= color =3D "white"; =0A= paddingLeft =3D "5px"; =0A= paddingRight =3D "5px";=0A= fontFamily =3D CSExt.cal.font;=0A= lineHeight =3D (closeSquare) + "px";=0A= }=0A= // Make sure button has text and not image. Heat# 140241=0A= var btnText =3D oTarget.childNodes[0];=0A= if (typeof btnText !=3D "undefined" && btnText.tagName !=3D "IMG") {=0A= titlediv.innerHTML =3D oTarget.innerHTML; =0A= dragCtrl.appendChild( titlediv );=0A= }=0A= }=0A= popUpContainer.appendChild( dragCtrl ); =0A= =0A= //=0A= // Create closeCtrlFrame.=0A= //=0A= var closeCtrlFrame =3D document.createElement( 'div' );=0A= closeCtrlFrame.setAttribute('id', CSUtil.popup.NAMESTEM + = 'closeCtrlFrame_' + oTarget.id);=0A= if (!document.all) {=0A= // NS only=0A= = closeCtrlFrame.setAttribute("onmouseup","javascript:CSUtil.doMouseUp(even= t);");=0A= } =0A= with ( closeCtrlFrame.style ) {=0A= height =3D closeSquare + "px";=0A= }=0A= popUpContainer.appendChild( closeCtrlFrame );=0A= =0A= //=0A= // Create closeCtrl.=0A= //=0A= var closeCtrl =3D document.createElement( 'div' );=0A= closeCtrl.setAttribute('id', CSUtil.popup.NAMESTEM + 'closeCtrl_' + = oTarget.id);=0A= closeCtrl.setAttribute('title', CS_CAL_CLOSE);=0A= closeCtrl.onclick =3D function () { CSUtil.popup.removePopup( = popUpContainer ) };=0A= with ( closeCtrl.style ) {=0A= position =3D "absolute";=0A= //left =3D (popWidth - (closeSquare+1)) + "px"; =0A= top =3D "0px";=0A= width =3D closeSquare + "px";=0A= height =3D closeSquare + "px";=0A= textAlign =3D "center";=0A= borderLeft =3D "1px solid gray";=0A= borderBottom =3D "1px solid gray"; =0A= backgroundColor =3D "#FF8080";=0A= fontSize =3D "80%"; =0A= fontFamily =3D "Lucida Sans Unicode";=0A= cursor =3D CSExt.cal.pointerCursor;=0A= }=0A= closeCtrl.innerHTML =3D "×";=0A= closeCtrlFrame.appendChild( closeCtrl );=0A= =0A= //=0A= // Create message container.=0A= //=0A= var oMsgContainer =3D document.createElement( 'div' );=0A= closeCtrl.setAttribute('id', CSUtil.popup.NAMESTEM + 'msgContainer_' + = oTarget.id);=0A= if(!document.all) { // NS only=0A= = oMsgContainer.setAttribute("onmouseup","javascript:CSUtil.doMouseUp(event= );");=0A= } =0A= with ( oMsgContainer.style ) {=0A= paddingLeft =3D "10px";=0A= paddingBottom =3D "15px";=0A= paddingRight =3D "10px";=0A= fontFamily =3D oTarget.style.fontFamily;=0A= textAlign =3D "left";=0A= cursor =3D "default";=0A= }=0A= popUpContainer.appendChild( oMsgContainer );=0A= =0A= //=0A= // Prepare message text.=0A= //=0A= var msgToUse =3D sMsg;=0A= =0A= if (bHTMLEnabled =3D=3D HTML_NONE) {=0A= msgToUse =3D msgToUse.replace(/<(.|\s)[^>]*>/gi,"");=0A= =0A= } else if (bHTMLEnabled =3D=3D HTML_ALL) {=0A= msgToUse =3D msgToUse.replace(/((http:\/\/)\S+\w)/gi,"$1");=0A= =0A= } else if (bHTMLEnabled =3D=3D HTML_LIMITED) {=0A= msgToUse =3D msgToUse.replace(/<(.|\s)[^>]*>/gi,"");=0A= msgToUse =3D msgToUse.replace(/((http:\/\/)\S+\w)/gi,"$1");=0A= }=0A= oMsgContainer.innerHTML =3D msgToUse;=0A= =0A= // =0A= // Adjust close control position in case a link increases width.=0A= // =0A= var finalSize =3D CSUtil.getDim( popUpContainer );=0A= var longest =3D finalSize.w;=0A= =0A= // =0A= // Netscape/Safari work-around. NS/S won't expand the div if a = long url =0A= // should force the popup to be wider, so need to write out each = word of =0A= // message and measure its width to determine longest word, and thus=0A= // calculate the proper width.=0A= //=0A= if (!document.all) {=0A= var words =3D msgToUse.split(" ");=0A= var holder =3D document.createElement("div");=0A= holder.style.fontFamily =3D oMsgContainer.style.fontFamily;=0A= document.body.appendChild( holder );=0A= for (var i=3D0; i longest) {=0A= longest =3D temp.offsetWidth;=0A= } =0A= temp.innerHTML =3D words[i] + ": " + temp.offsetWidth;=0A= }=0A= document.body.removeChild( holder );=0A= popUpContainer.style.width =3D longest + "px";=0A= }=0A= // End work-around.=0A= =0A= // Now get around to adjusting close control.=0A= closeCtrl.style.left =3D (longest - (closeSquare + = ((document.all)?3:1) )) + "px"; =0A= // And adjust the width of the drag handle. =0A= dragCtrl.style.width =3D closeCtrl.style.left;=0A= =0A= // =0A= // Adjust x and y positions of an object relative to the target = element=0A= // if it would be positioned off the screen to the right or bottom.=0A= //=0A= CSUtil.repositionIt( popUpContainer, oTarget );=0A= =0A= //=0A= // Create iframe to block out select boxes. =0A= // Fixes IE bug: select boxes have permanent z-index of infinity.=0A= //=0A= CSUtil.createIFrame( popUpContainer );=0A= =0A= CSUtil.popup.bringPopupForward( popUpContainer );=0A= =0A= // =0A= // "Approve" div for moving.=0A= //=0A= CSUtil.moveApproved( popUpContainer.id, CSUtil.popup.NAMESTEM + = 'dragCtrl' + oTarget.id );=0A= =0A= return popUpContainer;=0A= }=0A= =0A= //=0A= // Closes an open popup message.=0A= //=0A= CSUtil.popup.removePopup =3D function ( el ) {=0A= =0A= if (el && el.id) {=0A= document.getElementById( el.id ).parentNode.removeChild( el );=0A= } =0A= }=0A= =0A= //=0A= // Works to Get dynamically created div containers, assuming "body" = is the parent.=0A= //=0A= CSUtil.popup.getPopupParentContainer =3D function ( el ) {=0A= =0A= var retObj =3D null;=0A= =0A= if (el) {=0A= while ( el.parentNode ) {=0A= el =3D el.parentNode;=0A= var elId =3D "";=0A= if (typeof el.id !=3D "undefined") {=0A= elId =3D el.id;=0A= }=0A= if (el.id !=3D null && el.id !=3D "undefined" && el.tagName !=3D = "div" && elId.indexOf(CSUtil.popup.NAMESTEM) !=3D -1) {=0A= break;=0A= } =0A= } =0A= retObj =3D el;=0A= }=0A= =0A= return retObj;=0A= }=0A= =0A= //=0A= // Returns an array of all popups (div elements containing the popup = name stem).=0A= //=0A= CSUtil.popup.getAllPopups =3D function () {=0A= =0A= var x =3D 0;=0A= var allPopups =3D new Array();=0A= var allDivs =3D document.getElementsByTagName( "div" );=0A= =0A= for (var i =3D 0; i < allDivs.length; i++) {=0A= if (allDivs[i].id.indexOf(CSUtil.popup.NAMESTEM) !=3D -1)=0A= allPopups[x++] =3D allDivs[i];=0A= } =0A= =0A= return allPopups;=0A= }=0A= =0A= //=0A= // Brings the passed popup element forward, in front of any sibling = popups.=0A= //=0A= CSUtil.popup.bringPopupForward =3D function ( el ) {=0A= =0A= if (el && typeof el.id !=3D "undefined") {=0A= var allPopups =3D CSUtil.popup.getAllPopups();=0A= for (var i =3D 0; i < allPopups.length; i++) {=0A= allPopups[i].style.zIndex =3D 9999;=0A= }=0A= el.style.zIndex =3D 99999;=0A= } =0A= }=0A= =0A= =0A= //=0A= // Converit a pixels value into a pertentage value based on the shim = value.=0A= //=0A= CSUtil.pxperc =3D function( px, pg ) {=0A= if (!isNaN(px) && parseInt(pg) > 0) {=0A= var shimpx =3D document.getElementById('DFS__shimdiv' + = pg).offsetWidth;=0A= return Math.round((px / shimpx) * 100); // from layout.xsl: = round($posvalue div $unitsPerInch * 100)=0A= }=0A= } =0A= =0A= =0A= //=0A= // Grabs the shim div element object. Needed for a variety of = manipulations.=0A= //=0A= CSUtil.getShimDiv =3D function( el ) {=0A= var shimdiv =3D null;=0A= var pg =3D CSClient.getPageNumber( el );=0A= if (parseInt(pg) > 0) {=0A= shimdiv =3D document.getElementById('DFS__shimdiv' + pg);=0A= }=0A= =0A= return shimdiv;=0A= }=0A= =0A= //=0A= // Make adjustment for continuous view.=0A= //=0A= CSUtil.continousAdj =3D function( px, pg ) {=0A= =0A= if (!document.toolform.DFS__ctrlSetView || !px || !pg)=0A= return null;=0A= =0A= if (document.toolform.DFS__ctrlSetView.value =3D=3D = CS_CONTINUOUS_MODE) {=0A= return (px - document.getElementById('DFS__pagediv' + pg).offsetTop) = + document.getElementById('DFS__toolbarTop').offsetHeight;=0A= } else {=0A= return px;=0A= }=0A= }=0A= =0A= //=0A= // Show/Hide offline controls=0A= //=0A= CSUtil.showMenu =3D function ( menu ) {=0A= var d =3D document.getElementById(menu); =0A= d.style.display =3D "block"; =0A= CSUtil.resizeIFrame(d.parentElement);=0A= d.tm =3D CSUtil.timeout("hideMenu("+menu+")", 5); =0A= }=0A= =0A= CSUtil.hideMenu =3D function ( menu ) {=0A= var d =3D document.getElementById(menu); =0A= d.style.display =3D "none";=0A= CSUtil.resizeIFrame(d.parentElement);=0A= }=0A= =0A= CSUtil.timeout =3D function ( funcstr, delay ) {=0A= return window.setTimeout(funcstr, delay*1000);=0A= }=0A= =0A= CSUtil.resizeIFrame =3D function ( el ) {=0A= if (el) {=0A= var ifr =3D document.getElementById(el.id + "_iFrame");=0A= if (ifr) {=0A= ifr.style.width =3D el.offsetWidth;=0A= ifr.style.height =3D el.offsetHeight; =0A= } =0A= } =0A= }=0A= =0A= function cs_screenout( message, color ) {=0A= var clr =3D (typeof color !=3D "undefined") ? color : 'blue';=0A= var pg =3D document.getElementById('DFS__pagediv' + CSExt.VisiblePage);=0A= var sd =3D document.getElementById('cs_screenDebug');=0A= var msg =3D "";=0A= if (typeof message !=3D "string") {=0A= if (message =3D=3D null) {=0A= msg =3D "Null";=0A= } else if (message && message.id) {=0A= msg =3D message.id;=0A= } else {=0A= msg =3D message.toString();=0A= }=0A= } else {=0A= msg =3D message;=0A= } =0A= if (pg) {=0A= if (!sd) {=0A= sd =3D document.createElement('div');=0A= sd.setAttribute('id', 'cs_screenDebug');=0A= with (sd.style) { =0A= position=3D'absolute'; =0A= top=3D'30px'; =0A= left=3DparseInt(pg.offsetWidth)+20+'px'=0A= height=3DparseInt(screen.height*.6)+'px';=0A= width=3DparseInt(screen.width)-parseInt(left)-50+'px'=0A= textAlign=3D'left'; =0A= fontSize=3D'10pt'; =0A= zIndex=3D'999999'; =0A= fontFamily=3D'Courier'; =0A= overflow=3D'auto';=0A= } =0A= document.body.appendChild(sd);=0A= }=0A= // Highlight field names.=0A= for (var fn in CSExt.f) {=0A= var r =3D new RegExp( "(" + fn + "\\s)", "gi" );=0A= msg =3D msg.replace(r, "$1");=0A= } =0A= sd.style.color =3D clr;=0A= var count =3D sd.getElementsByTagName('div');=0A= sd.innerHTML =3D "
" + = (count.length+1) + ": " + msg + "
" + sd.innerHTML;=0A= }=0A= }=0A= =0A= function cs_debug( output ) {=0A= var str =3D "";=0A= if (output !=3D 1) { // 1 =3D retain previous output=0A= var sd =3D document.getElementById('cs_screenDebug');=0A= if (sd)=0A= sd.parentNode.removeChild(sd); =0A= }=0A= cs_screenout(" ★ = DEBUG ★ ", "yellow");=0A= for (var i=3D0; i$1");=0A= } =0A= sm.style.color =3D clr;=0A= sm.innerHTML =3D msg;=0A= } =0A= }=0A= =0A= //=0A= // Helper functions to parse the querystring.=0A= //=0A= function cs_loadQuerystring() {=0A= // load querystring into array=0A= var search =3D document.location.search;=0A= var qs =3D search.substr(1, search.length);=0A= pairs =3D qs.split("&");=0A= return pairs;=0A= }=0A= =0A= function cs_getQSValue( key ) {=0A= var pairs =3D cs_loadQuerystring();=0A= for (i =3D 0; i < pairs.length; i++){=0A= var val =3D null;=0A= var keyvalue =3D pairs[i];=0A= var k =3D keyvalue.split("=3D");=0A= if (k[0] =3D=3D key){=0A= val =3D k[1];=0A= break;=0A= }=0A= }=0A= return val; =0A= }=0A= =0A= =0A= //=0A= // This function creates a title (the hovering yellow text) for Lists=0A= // because IE does not support them.=0A= // List events: onmouseover=3D"cs_showTitle(this, this.title);" = onmouseout=3D"cs_destroyTTdiv();" onmousemove=3D"CSUtil.getMouseXY();"=0A= // Ink events: onmouseover=3D"cs_showTitle(this, '{$tooltip}');" = onmouseout=3D"cs_destroyTTdiv();" onmousemove=3D"CSUtil.getMouseXY();=0A= function cs_showTitle( fld, msg) {=0A= if (!CSUtil.isIE) return;=0A= =0A= var f =3D new CSField_Obj(fld);=0A= var pg =3D f.cs_getPageNumber();=0A= =0A= if (fld.tagName =3D=3D "OBJECT" && (fld.id && fld.id.indexOf("INK__") = !=3D -1)) {=0A= // Get around ink wrapper div.=0A= cs_createTTdiv( fld.parentNode, msg );=0A= } else { =0A= cs_createTTdiv( fld, msg );=0A= }=0A= var div =3D document.getElementById("DFS__tipdiv");=0A= if (div) {=0A= with (div.style) {=0A= fontSize =3D "8pt";=0A= borderColor =3D "black";=0A= paddingLeft =3D 2;=0A= paddingRight =3D 2; =0A= paddingTop =3D 1;=0A= paddingBottom =3D 1;=0A= } =0A= CSUtil.createIFrame( div );=0A= document.getElementById("DFS__tipdiv_iFrame").style.width =3D = div.offsetWidth+1;=0A= document.getElementById("DFS__tipdiv_iFrame").style.left =3D "-2px";=0A= document.getElementById("DFS__tipdiv_iFrame").style.height =3D = div.offsetHeight+1;=0A= document.getElementById("DFS__tipdiv_iFrame").style.top =3D "-2px";=0A= } =0A= CSUtil.timeout( "cs_positionTitle("+pg+")", .5);=0A= }=0A= =0A= function cs_positionTitle( page ) {=0A= =0A= // Account for multiple pages.=0A= var pg =3D page;=0A= var offset =3D csget("DFS__pagediv" + pg).offsetTop - = document.documentElement.scrollTop - 15; =0A= =0A= // Get updated position from latest mouse move.=0A= var div =3D document.getElementById("DFS__tipdiv");=0A= if (div) {=0A= with (div.style) {=0A= top =3D CSUtil.mm_y - offset; =0A= left =3D CSUtil.mm_x;=0A= } =0A= } =0A= cs_trace("CSUtil.mm_y:" + CSUtil.mm_y + " | offset: " + offset + " =3D = " + (CSUtil.mm_y-offset), 0);=0A= cs_setVisibleTTdiv(true);=0A= }=0A= =0A= function csget(id) { return (typeof id !=3D "string") ? null : = document.getElementById(id); }=0A= ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS20_Lib_Parser.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved var CS_CHK =3D 1; var CS_SEP =3D 2; var CS_KWD =3D 3; var CS_BRK =3D 4;=20 var CS_BRKCH =3D "!"; var CS_ESCCH =3D "\\"; function CSChunk_toString() { return this.chunk + ": " + this.type; } function CSChunk() { this.chunk =3D ""; this.type =3D 0; } CSChunk.prototype.toString =3D CSChunk_toString; function CS_findChunks( templ, seps ) { var ret =3D null; var t =3D templ; var arr =3D new Array(); do { if (t =3D=3D null) break; var len =3D t.length; var i =3D 0; var j =3D -1; var type =3D 0; var last =3D 0; var c; var bSep; while (i < len) { c =3D t.charAt( i );=20 bSep =3D CS_isCharIn( c, seps ) || c =3D=3D CS_ESCCH; type =3D bSep ? CS_SEP : CS_CHK; if (c =3D=3D CS_BRKCH) type =3D CS_BRK; if (type !=3D last) { arr[++j] =3D new CSChunk(); arr[j].type =3D type; } if (c =3D=3D CS_ESCCH && i + 1 < len) { arr[j].chunk +=3D t.charAt( ++i ); } else { arr[j].chunk +=3D c; } i++; last =3D type; } ret =3D arr; } while (false); return ret; } function CS_findKeywords( chunk, rgxkwd ) { var ret =3D null; var res =3D null; var chunkstr =3D chunk; var arr =3D new Array(); var j =3D 0; =20 =20 while ((res =3D rgxkwd.exec( chunkstr )) !=3D null && chunkstr.length = > 0) { arr[j] =3D new CSChunk(); arr[j].chunk =3D res[0]; arr[j].type =3D CS_KWD; chunkstr =3D chunkstr.substr( res[0].length ); rgxkwd.lastIndex =3D 0; ++j; } if (arr.length > 0) ret =3D arr; return ret; } function CS_buildTokenArray( templ, seps, rgxkwd ) { var ret =3D null; var arr =3D new Array(); do { var chunks =3D CS_findChunks( templ, seps ); if (chunks =3D=3D null) break; var len =3D chunks.length; var toks =3D null; var i =3D 0, j =3D 0, k =3D 0; for (i =3D 0; i < len; i++) { if (chunks[i].type =3D=3D CS_CHK) { toks =3D CS_findKeywords( chunks[i].chunk, rgxkwd ); if (toks =3D=3D null) continue; for (j =3D 0; j < toks.length; j++) { arr[k++] =3D toks[j]; } } else { arr[k++] =3D chunks[i]; } } ret =3D arr; } while (false); return ret; } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS25_Lib_CSErr.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSErr.ERR_FAM = 0x0000; CSErr.ERR_SUCCESS = CSErr.ERR_FAM | 0x0000; CSErr.ERR_UNDEFINED = CSErr.ERR_FAM | 0x0001; CSErr.ERR_SUCCESS_STR = CS_CSERR_ERR_SUCCESS_STR; CSErr.ERR_UNDEFINED_STR = CS_CSERR_ERR_UNDEFINED_STR; function CSErr_getErrorStringStat( no, ex ) { var ret = CSErr.ERR_UNDEFINED_STR; if (no == CSErr.ERR_SUCCESS) ret = CSErr.ERR_SUCCESS_STR; return ret; } function CSErr_getErrorString() { return CSErr_getErrStrStat( this ); } function CSErr_getErrStrStat( err ) { return CSErr_getErrorStringStat( err.no, err.ex ); } function CSErr_toString() { return "no: " + this.no + "\rex: " + this.ex; } function CSErr( no, ex ) { this.no = no; this.ex = ex; } CSErr.prototype.toString = CSErr_toString; CSErr.prototype.getErrorString = CSErr_getErrorString; CSErr.getErrorString = CSErr_getErrStrStat; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS30_Lib_CSNum.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSNum.ERR_FAM =3D 0x3000; CSNum.ERR_OUTOFRANGE =3D CSNum.ERR_FAM | 0x0004; CSNum.ERR_INVLDFMT =3D CSNum.ERR_FAM | 0x0008; CSNum.ERR_OUTOFRANGE_B_STR =3D CS_NUMBEROBJ_ERR_OUTOFRANGE_B_STR; CSNum.ERR_OUTOFRANGE_G_STR =3D CS_NUMBEROBJ_ERR_OUTOFRANGE_G_STR; CSNum.ERR_OUTOFRANGE_L_STR =3D CS_NUMBEROBJ_ERR_OUTOFRANGE_L_STR; CSNum.ERR_OUTOFRANGE_E_STR =3D CS_NUMBEROBJ_ERR_OUTOFRANGE_E_STR; CSNum.ERR_FORMAT_INVALID_STR =3D CS_NUMBEROBJ_ERR_FORMAT_INVALID_STR; function CSNum_getErrorStringStat( num, ex )=20 { var ret =3D CSErr.ERR_UNDEFINED_STR; if (num =3D=3D CSNum.ERR_OUTOFRANGE) { if (ex.min !=3D null && ex.max !=3D null) { if (ex.min =3D=3D ex.max) { ret =3D CS_InsertString( CSNum.ERR_OUTOFRANGE_E_STR, ex.min ); } else { var tmp =3D CS_InsertString( CSNum.ERR_OUTOFRANGE_B_STR, ex.min = ) ret =3D CS_InsertString( tmp, ex.max ); } } else if (ex.min !=3D null && ex.max =3D=3D null) { ret =3D CS_InsertString( CSNum.ERR_OUTOFRANGE_G_STR, ex.min ); } else if (ex.min =3D=3D null && ex.max !=3D null) { ret =3D CS_InsertString( CSNum.ERR_OUTOFRANGE_L_STR, ex.max ); } else { ret =3D CSNum.ERR_OUTOFRANGE_STR; } } else if (num =3D=3D CSNum.ERR_INVLDFMT) { ret =3D CSNum.ERR_FORMAT_INVALID_STR; } return ret; } function CSNum_getErrorString()=20 { return CSNum_getErrStrStat( this.err ); } function CSNum_getErrStrStat( err ) { return CSNum_getErrorStringStat( err.no, err.ex ); } function CSNum_insertPlaces( str, p ) { var i =3D 0 var ret =3D "" if (p =3D=3D null) p =3D ","; =20 =20 =20 str =3D str.replace( /^0*/, "" ) var tmp =3D str.charAt( str.length - 1 ) for (i =3D 2; i <=3D str.length; i++ ) { if (i % 3 =3D=3D 1 && str.charAt( str.length - i ) !=3D "") { tmp +=3D p + str.charAt( str.length - i ) } else { tmp +=3D str.charAt( str.length - i ) } } =20 =20 =20 for (i =3D 0; i < tmp.length; i++) { ret +=3D tmp.charAt( tmp.length - i - 1 ) } if (ret =3D=3D "")=20 ret =3D "0"; return ret } function CSNum_evaluate( uval, cs, ds, ss, dp, app ) { var ret =3D null; this.err =3D new CSErr( CSErr.ERR_UNDEFINED ); do { cs =3D (cs =3D=3D null) ? "" : cs; dp =3D (dp =3D=3D null) ? 0 : dp; if (ds =3D=3D null || ds =3D=3D "") { ds =3D "."; dp =3D 0; } uval =3D uval.toString(); =20 =20 var rgxcln =3D new RegExp( cs ); var cln =3D uval.replace( rgxcln, "" ); =20 var dsx =3D CS_EscapeRegExpLiterals( ds ); rgxcln =3D new RegExp( "[^\\d\\-" + dsx + "]", "g" ); cln =3D cln.replace( rgxcln, "" ); =20 =20 =20 =20 rgxcln =3D new RegExp( dsx, "g" ); cln =3D cln.replace( rgxcln, "." ); var f =3D parseFloat( cln ); if (isNaN( f )) { this.err =3D new CSErr( CSNum.ERR_INVLDFMT ); break; } ret =3D f; this.num =3D f; this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); return ret; }=20 function CSNum_format( ival, cs, ds, ss, dp, app ) { if (ds =3D=3D null || ds =3D=3D "" || dp =3D=3D 0) { ds =3D ""; dp =3D 0; } ss =3D ss !=3D null ? ss : ""; if (ival =3D=3D null)=20 n =3D 0; var s =3D ""; if (!isNaN( ival ) && isFinite( ival )) { s =3D CS_NumToString( ival, dp, ds, ss, cs, app, true ); } else { return s; } return s; } function CSNum_validateRange( ival, mn, mx, cs, ds, ss, dp, app ) { var ret =3D true; if ((mn !=3D null && ival < mn) || (mx !=3D null && ival > mx)) { this.err =3D new CSErr( CSNum.ERR_OUTOFRANGE, new Object() ); var n =3D new CSNum(); this.err.ex.min =3D mn =3D=3D null ? mn : n.format( mn, cs, ds, ss, = dp, app ); this.err.ex.max =3D mx =3D=3D null ? mx : n.format( mx, cs, ds, ss, = dp, app ); ret =3D false; } return ret; =20 } function CSNum_valueOf() { return this.num; } function CSNum_toString() { return "num: " + this.num + "\rerror: " + this.err.no + "\rerror str: = " + this.getErrorString() + "\rres: " + this.res; } function CSNum_reset( num ) { this.num =3D num =3D=3D null ? 0 : num; this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } function CSNum( num ) { this.reset( num ); } CSNum.prototype.reset =3D CSNum_reset; CSNum.prototype.valueOf =3D CSNum_valueOf; CSNum.prototype.toString =3D CSNum_toString; CSNum.prototype.getErrorString =3D CSNum_getErrorString; CSNum.prototype.evaluate =3D CSNum_evaluate; CSNum.prototype.format =3D CSNum_format; CSNum.prototype.validateRange =3D CSNum_validateRange; CSNum.getErrorString =3D CSNum_getErrStrStat; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS30_Lib_CSDate.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved var CS_DATETIMEDAYARRAY =3D [ 31, 31, 29, 31, 30, 31, 30, 31, 31, 30, = 31, 30, 31 ];=20 var CS_DATEKWDS =3D "Y+|M+|D+|H+|h+|m+|s+|T|t"; var CS_DATESEPS =3D "/-.:_, "; var CS_DATERGXSEPS =3D "\\/\\-\\.\\:\\_\\,\\ "; CSDate.ERR_FAM =3D 0x2000; CSDate.ERR_YEAR_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0002; CSDate.ERR_MONTH_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0004; CSDate.ERR_DAY_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0008; CSDate.ERR_HOUR_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0010; CSDate.ERR_MINUTE_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0020; CSDate.ERR_SECOND_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0040; CSDate.ERR_TEMPLATE_INVALID =3D CSDate.ERR_FAM | 0x0080; CSDate.ERR_FORMAT_INVALID =3D CSDate.ERR_FAM | 0x0100; CSDate.ERR_MONTH_UNRECOGNIZABLE =3D CSDate.ERR_FAM | 0x0200; CSDate.ERR_DATE_OUTOFRANGE =3D CSDate.ERR_FAM | 0x0400; CSDate.ERR_YEAR_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_YEAR_OUTOFRANGE_STR CSDate.ERR_MONTH_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_MONTH_OUTOFRANGE_STR; CSDate.ERR_DAY_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_DAY_OUTOFRANGE_STR; CSDate.ERR_HOUR_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_HOUR_OUTOFRANGE_STR; CSDate.ERR_MINUTE_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_MINUTE_OUTOFRANGE_STR; CSDate.ERR_SECOND_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_SECOND_OUTOFRANGE_STR; CSDate.ERR_TEMPLATE_INVALID_STR =3D CS_DTOBJ_ERR_TEMPLATE_INVALID_STR; CSDate.ERR_FORMAT_INVALID_STR =3D CS_DTOBJ_ERR_FORMAT_INVALID_STR; CSDate.ERR_MONTH_UNRECOGNIZABLE_STR =3D = CS_DTOBJ_ERR_MONTH_UNRECOGNIZABLE_STR; CSDate.ERR_DATE_OUTOFRANGE_STR =3D CS_DTOBJ_ERR_DATE_OUTOFRANGE_STR; CSDate.ERR_DATE_OUTOFRANGE_R_STR =3D CS_DTOBJ_ERR_DATE_OUTOFRANGE_R_STR; CSDate.ERR_DATE_OUTOFRANGE_A_STR =3D CS_DTOBJ_ERR_DATE_OUTOFRANGE_A_STR; CSDate.ERR_DATE_OUTOFRANGE_B_STR =3D CS_DTOBJ_ERR_DATE_OUTOFRANGE_B_STR; function CSDate_getErrorStringStat( num, ex )=20 { var ret =3D CSErr.ERR_UNDEFINED_STR; if (num =3D=3D CSDate.ERR_YEAR_OUTOFRANGE) { ret =3D CSDate.ERR_YEAR_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_MONTH_OUTOFRANGE) { ret =3D CSDate.ERR_MONTH_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_MONTH_UNRECOGNIZABLE) { ret =3D CSDate.ERR_MONTH_UNRECOGNIZABLE_STR; } else if (num =3D=3D CSDate.ERR_DAY_OUTOFRANGE) { ret =3D CSDate.ERR_DAY_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_HOUR_OUTOFRANGE) { ret =3D CSDate.ERR_HOUR_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_MINUTE_OUTOFRANGE) { ret =3D CSDate.ERR_MINUTE_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_SECOND_OUTOFRANGE) { ret =3D CSDate.ERR_SECOND_OUTOFRANGE_STR; } else if (num =3D=3D CSDate.ERR_TEMPLATE_INVALID) { ret =3D CSDate.ERR_TEMPLATE_INVALID_STR; } else if (num =3D=3D CSDate.ERR_FORMAT_INVALID) { ret =3D CSDate.ERR_FORMAT_INVALID_STR; if (ex !=3D null) ret =3D ret.replace( /\%s/, ex ); } else if (num =3D=3D CSDate.ERR_DATE_OUTOFRANGE) { if (ex.b !=3D null && ex.e !=3D null) { ret =3D CSDate.ERR_DATE_OUTOFRANGE_R_STR.replace( /\%s/, ex.b); ret =3D ret.replace( /\%s/, ex.e ); } else if (ex.b !=3D null && ex.e =3D=3D null) { ret =3D CSDate.ERR_DATE_OUTOFRANGE_A_STR.replace( /\%s/, ex.b); } else if (ex.b =3D=3D null && ex.e !=3D null) { ret =3D CSDate.ERR_DATE_OUTOFRANGE_B_STR.replace( /\%s/, ex.e); } else { ret =3D CSDate.ERR_DATE_OUTOFRANGE_STR; } } return ret; } function CSDate_getErrorString()=20 { return CSDate_getErrStrStat( this.err ); } function CSDate_getErrStrStat( err )=20 { return CSDate_getErrorStringStat( err.no, err.ex ); } function CSDate( Y, M, D, h, m, s ) { this.reset( Y, M, D, h, m, s ); } CSDate.Init =3D function() { CS_DATEKWDSRGX =3D new RegExp( CS_DATEKWDS, "g" ); CS_DATETMPRGX =3D new RegExp( = "(\\d\\d\\d\\d)[\\-\\/](\\d\\d)[\\-\\/](\\d\\d)\\ = (\\d\\d)\\:(\\d\\d)\\:(\\d\\d)" ); CS_DTTMRGX =3D = /((\d{4})\-(\d{2})\-(\d{2}))?T?((\d{2})\:(\d{2})\:(\d{2}))?/; } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS30_Lib_CSDate2.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved var CS_DATETIMEMONTHARRAY =3D [ [CS_DATETIME_JAN, 1], [CS_DATETIME_FEB, 2], [CS_DATETIME_MAR, 3], [CS_DATETIME_APR, 4], [CS_DATETIME_MAY, 5], [CS_DATETIME_JUN, 6], [CS_DATETIME_JUL, 7], [CS_DATETIME_AUG, 8], [CS_DATETIME_SEP, 9], [CS_DATETIME_OCT, 10], [CS_DATETIME_NOV, 11], [CS_DATETIME_DEC, 12], [CS_DATETIME_JANUARY, 1], [CS_DATETIME_FEBRUARY, 2], [CS_DATETIME_MARCH, 3], [CS_DATETIME_APRIL, 4], [CS_DATETIME_JUNE, 6], [CS_DATETIME_JULY, 7], [CS_DATETIME_AUGUST, 8], [CS_DATETIME_SEPTEMBER, 9], [CS_DATETIME_OCTOBER, 10], [CS_DATETIME_NOVEMBER, 11], [CS_DATETIME_DECEMBER, 12], [CS_DATETIME_SEPT, 9], [CS_DATETIME_JLY, 7] ]; function CSDate_buildRegExpFromTokens( tokens, strict ) { var ret =3D null; var rgx =3D null; do { if (tokens =3D=3D null) { this.err =3D new CSErr( CSDate.ERR_TEMPLATE_INVALID ); break; } if (strict =3D=3D null) strict =3D false; var len =3D tokens.length; var i =3D 0; rgx =3D "^"; for (i =3D 0; i < len; i++) { var tok =3D tokens[i]; if (tok.type =3D=3D CS_KWD) { switch (tokens[i].chunk) { case "D": case "M": case "m": case "s": case "h": case "H": rgx +=3D "(\\d{1,2})"; break; case "hh": case "HH": rgx +=3D (strict ? "(\\d{2})" : "(\\d{1,2})"); break; case "DD": case "MM": case "mm": case "ss": rgx +=3D "(\\d{2})"; break; case "MMM": rgx +=3D "([A-Za-z]{1,12})"; break; case "YY": rgx +=3D "(\\d{2})"; break; case "YYYY": rgx +=3D (strict ? "(\\d{4})" : "(\\d{2,4})"); break; case "t": case "T": rgx +=3D "([AaMmPp]{0,2})"; break; default: break; } } else if (tok.type =3D=3D CS_SEP) { rgx +=3D "([" + CS_DATERGXSEPS + "]*)"; } } rgx +=3D "$"; ret =3D rgx; } while (false); return ret; } function CSDate_monthNumberLookupStat( str ) { var ret =3D -2; var i =3D 0; for (i =3D 0; i < CS_DATETIMEMONTHARRAY.length; i++) { if (str.toUpperCase() =3D=3D = CS_DATETIMEMONTHARRAY[i][0].toUpperCase()) { ret =3D CS_DATETIMEMONTHARRAY[i][1]; break; } } return ret; } function CSDate_monthNameLookupStat( num ) { if (num < 1 || num > CS_DATETIMEMONTHARRAY.length)=20 return ""; return CS_DATETIMEMONTHARRAY[num - 1][0]; } function CSDate_yearHorizonStat( year ) { ret =3D parseInt( year, 10 ); if (year.length =3D=3D 2 && ret >=3D 50 && ret < 100) { ret +=3D 1900; } else if (year.length =3D=3D 2 && ret >=3D 0 && ret < 50) { ret +=3D 2000; } return ret; } function CSDate_buildDateObj( tokens, rgxres ) { do { if (tokens =3D=3D null) { this.err =3D new CSErr( CSDate.ERR_TEMPLATE_INVALID ); break; }=20 if (rgxres =3D=3D null) { var de =3D new CSDate( 2001, 12, 31, 16, 45, 30 ); var r =3D de.formatDate( tokens, true ); this.err =3D new CSErr( CSDate.ERR_FORMAT_INVALID, r[0] ); break; } var i =3D 0; var j =3D 0; var ap =3D ""; for (i =3D 0; i < tokens.length; i++) { if (tokens[i].type =3D=3D CS_SEP ) { j++; } else if (tokens[i].type =3D=3D CS_KWD) { j++; switch (tokens[i].chunk) { case "D": case "DD": this.day =3D parseInt( rgxres[j], 10 ); break; case "M": case "MM": this.month =3D parseInt( rgxres[j], 10 ); break; case "MMM": this.month =3D CSDate_monthNumberLookupStat( rgxres[j] ); break; case "YY": case "YYYY": this.year =3D CSDate_yearHorizonStat( rgxres[j] ); break; case "H": case "HH": case "h": case "hh": this.hour =3D parseInt( rgxres[j], 10 ); break; case "m": case "mm": this.minute =3D parseInt( rgxres[j], 10 ); break; case "s": case "ss": this.second =3D parseInt( rgxres[j], 10 ); break; case "t": case "T": ap =3D rgxres[j].toUpperCase(); if (ap =3D=3D "PM" || ap =3D=3D "P") { ap =3D "PM"; } else if (ap =3D=3D "AM" || ap =3D=3D "A") { ap =3D "AM"; } break; }=20 } } if (ap =3D=3D "PM" && this.hour <=3D 11 && this.hour >=3D 0) { this.hour +=3D 12; } else if (ap =3D=3D "AM" && this.hour =3D=3D 12) { this.hour =3D 0; } this.verify(); } while (false); } function CSDate_validateRange( dt, b, e, ta ) { var ret =3D true; if ((b !=3D null && dt < b) || (e !=3D null && dt > e)) { this.err =3D new CSErr( CSDate.ERR_DATE_OUTOFRANGE, new Object() ); this.err.ex.b =3D b !=3D null ? b.formatDate( ta, true )[0] : null; this.err.ex.e =3D e !=3D null ? e.formatDate( ta, true )[0] : null; ret =3D false; } return ret; } function CSDate_verifyDateObj() { var ret =3D CSErr.ERR_UNDEFINED; do { if (this.year < 0 && this.year !=3D null ) { this.err =3D new CSErr( CSDate.ERR_YEAR_OUTOFRANGE ); break; } if (this.month =3D=3D -2) { this.err =3D new CSErr( CSDate.ERR_MONTH_UNRECOGNIZABLE ); break; } if ((this.month < 1 || this.month > 12) && this.month !=3D null) { this.err =3D new CSErr( CSDate.ERR_MONTH_OUTOFRANGE ); break; } =20 =20 =20 =20 =20 if ((this.month !=3D null || this.year !=3D null) && typeof this.day = =3D=3D "undefined") { this.day =3D 1; } =20 if ((this.day < 1 || this.day > CS_DATETIMEDAYARRAY[ this.month ]) = && this.day !=3D null ) { this.err =3D new CSErr( CSDate.ERR_DAY_OUTOFRANGE ); break; } =20 =20 =20 if (this.year > 0 && this.month =3D=3D 2) { =20 if (!(this.year % 4 =3D=3D 0 && (this.year % 100 =3D=3D 0 ? = this.year % 400 =3D=3D 0 : true))) {=20 if (this.day > 28 && this.day !=3D null) {=20 this.err =3D new CSErr( CSDate.ERR_DAY_OUTOFRANGE ); break; } } } =20 if ((this.hour < 0 || this.hour > 23) && this.hour !=3D null) { this.err =3D new CSErr( CSDate.ERR_HOUR_OUTOFRANGE ); break; } if ((this.minute < 0 || this.minute > 59) && this.minute !=3D null) = { this.err =3D new CSErr( CSDate.ERR_MINUTE_OUTOFRANGE ); break; } if ((this.second < 0 || this.second > 59) && this.second !=3D null) = { this.err =3D new CSErr( CSDate.ERR_SECOND_OUTOFRANGE ); break; } this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D this.err.no; return ret; =20 } function CSDate_formatDateObj( tokens, bSeps ) { var ret =3D null; do { if (tokens =3D=3D null)=20 break; if (bSeps =3D=3D null) bSeps =3D true; j =3D 1; ret =3D new Array; ret[0] =3D ret[j] =3D ""; var i =3D 0; var v =3D ""; for (i =3D 0; i < tokens.length; i++) { v =3D ""; if (tokens[i].type =3D=3D CS_SEP) { v =3D tokens[i].chunk; } else if (tokens[i].type =3D=3D CS_BRK) { j++; ret[j] =3D ""; } else if (tokens[i].type =3D=3D CS_KWD) { switch (tokens[i].chunk) { case "D": v =3D this.day.toString(); =20 break; case "DD": v =3D CS_NumberForceLengthPrepend( this.day, 2 ); break; case "M": v =3D this.month.toString(); break; case "MM": v =3D CS_NumberForceLengthPrepend( this.month, 2 ); break; case "MMM": v =3D CSDate_monthNameLookupStat( this.month ); break; case "YY": v =3D CS_NumberForceLengthPrepend( this.year, 2 ); break; case "YYYY": v =3D CS_NumberForceLengthPrepend( this.year, 4 ); break; case "H": v =3D this.hour.toString(); break; case "HH": v =3D CS_NumberForceLengthPrepend( this.hour.toString(), 2 = ); break; case "h": v =3D ((this.hour + 11) % 12 + 1).toString(); break; case "hh": v =3D CS_NumberForceLengthPrepend( ((this.hour + 11) % 12 + = 1).toString(), 2 ); break; case "m": v =3D this.minute.toString(); break; case "mm": v =3D CS_NumberForceLengthPrepend( this.minute, 2 ); break; case "s": v =3D this.second.toString(); break; case "ss": v =3D CS_NumberForceLengthPrepend( this.second, 2 ); break; case "t": v =3D this.hour < 12 ? "am" : "pm"; break; case "T": v =3D this.hour < 12 ? "AM" : "PM"; break; } } ret[0] +=3D v; if (tokens[i].type !=3D CS_SEP) ret[j] +=3D v; } } while (false); this.res =3D ret; return ret; } function CSDate_parseTemplate( templ ) { return CS_buildTokenArray( templ, CS_DATESEPS, CS_DATEKWDSRGX ); } function CSDate_buildRegExp( tok, strict ) { var regexp =3D null; do { var rgx =3D CSDate_buildRegExpFromTokens( tok, strict ); if (rgx =3D=3D null) { this.err =3D new CSErr( CSDate.ERR_TEMPLATE_INVALID ); break; } regexp =3D new RegExp( rgx ); if (regexp =3D=3D null) { this.err =3D new CSErr( CSDate.ERR_TEMPLATE_INVALID ); break; } } while (false); return regexp; =20 } function CSDate_evalutate( rgx, toks, val ) { var ret =3D null; var res =3D CS_DATETMPRGX.exec( val ); if (res !=3D null) { var d =3D !(res[1] =3D=3D 0 && res[2] =3D=3D 0 && res[3] =3D=3D 0); var t =3D !(res[4] =3D=3D 0 && res[5] =3D=3D 0 && res[6] =3D=3D 0); this.reset( d ? res[1] : null, d ? res[2] : null, d ? res[3] : null, t ? res[4] : null, t ? res[5] : null, t ? res[6] : null ); =20 this.verify(); } else { res =3D rgx.exec( val ); this.build( toks, res ); =20 } if (this.err.no =3D=3D CSErr.ERR_SUCCESS) { ret =3D new CSDate( this.year, this.month, this.day, this.hour, this.minute, this.second ); } return ret; } function CSDate_concatKWDChunks( toks ) { var s =3D "" if (toks =3D=3D null) return s; for (var i in toks) { if (toks[i].type =3D=3D CS_KWD) s +=3D toks[i].chunk; } return s; } CSDate_MatchDateKWDs =3D /[M|D|Y]/; CSDate_MatchTimeKWDs =3D /[H|h|m|s]/; function CSDate_areDateTokens( toks ) { var s =3D CSDate_concatKWDChunks( toks ); return s.search( CSDate_MatchDateKWDs ) > -1; } function CSDate_areTimeTokens( toks ) { var s =3D CSDate_concatKWDChunks( toks ); return s.search( CSDate_MatchTimeKWDs ) > -1; } function CSDate_isDateTemplate( tmpl ) { return CSDate_areDateTokens( CSDate_parseTemplate( tmpl ) ); } function CSDate_isTimeTemplate( tmpl ) { return CSDate_areTimeTokens( CSDate_parseTemplate( tmpl ) ); } function CSDate_format( dt, ta, bSps ) { if (dt =3D=3D null) { this.err =3D new CSErr( CSErr.ERR_SUCCESS ); return new Array( "" ); } var ret =3D dt.formatDate( ta, bSps ); this.err =3D dt.err; return ret; } function CSDate_toString() { return "year: " + this.year + "\r" + "month: " + this.month + "\r" + "day: " + this.day + "\r" + "hour: " + this.hour + "\r" + "minute: " + this.minute + "\r" + "second: " + this.second + "\r" + "err:\r " + this.err + "\r" + "errstr: " + this.getErrorString(); } function CSDate_valueOf() { var Y =3D this.year =3D=3D null ? 0 : this.year; var M =3D this.month =3D=3D null ? 0 : this.month; var D =3D this.day =3D=3D null ? 0 : this.day; var h =3D this.hour =3D=3D null ? 0 : this.hour; var m =3D this.minute =3D=3D null ? 0 : this.minute; var s =3D this.second =3D=3D null ? 0 : this.second; =20 return s + (m * 60) + (h * 3600) + (D * 86400) + (M * 2678400) + (Y * = 980294400); } function CSDate_isDate() { return (this.year !=3D null || this.month !=3D null || this.day !=3D = null); } function CSDate_isTime() { return (this.hour !=3D null || this.minute !=3D null || this.second = !=3D null); } CSDate.today =3D function() { var dt =3D new Date(); return new CSDate( dt.getFullYear(), dt.getMonth() + 1, dt.getDate() = ); } CSDate.now =3D function() { var dt =3D new Date(); return new CSDate( null, null, null, dt.getHours(), dt.getMinutes(), = dt.getSeconds() ); } function CSDate_reset( Y, M, D, h, m, s ) { var i =3D 0; for (i =3D 0; arguments[i] !=3D null; i++); if (i =3D=3D 1) { var r =3D CS_DTTMRGX.exec( Y ); if (r =3D=3D null || r =3D=3D "" || !r[0]) { r =3D new Array(); if (Y !=3D null) r[2] =3D Y; } Y =3D r[2]; M =3D r[3]; D =3D r[4]; h =3D r[6]; m =3D r[7]; s =3D = r[8]; } this.year =3D CS_ParseIntEx( Y ); this.month =3D CS_ParseIntEx( M ); this.day =3D CS_ParseIntEx( D ); this.hour =3D CS_ParseIntEx( h ); this.minute =3D CS_ParseIntEx( m ); this.second =3D CS_ParseIntEx( s ); this.err =3D new CSErr( CSErr.ERR_UNDEFINED ); this.res =3D null; } CSDate.prototype.reset =3D CSDate_reset; CSDate.prototype.parseTemplate =3D CSDate_parseTemplate; CSDate.prototype.buildRegExp =3D CSDate_buildRegExp; CSDate.prototype.evaluate =3D CSDate_evalutate; CSDate.prototype.build =3D CSDate_buildDateObj; CSDate.prototype.format =3D CSDate_format; CSDate.prototype.formatDate =3D CSDate_formatDateObj; CSDate.prototype.verify =3D CSDate_verifyDateObj; CSDate.prototype.validateRange =3D CSDate_validateRange; CSDate.prototype.getErrorString =3D CSDate_getErrorString; CSDate.prototype.isDate =3D CSDate_isDate; CSDate.prototype.isTime =3D CSDate_isTime; CSDate.prototype.toString =3D CSDate_toString; CSDate.prototype.valueOf =3D CSDate_valueOf; CSDate.getErrorString =3D CSDate_getErrStrStat; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS30_Lib_CSTxt.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSTxt.ERR_FAM =3D 0x1000; CSTxt.ERR_LENTOOLONG =3D CSTxt.ERR_FAM | 0x0001; CSTxt.ERR_LENTOOSHORT =3D CSTxt.ERR_FAM | 0x0002; CSTxt.ERR_INVLDCHAR =3D CSTxt.ERR_FAM | 0x0004; CSTxt.ERR_LENTOOLONG1_STR =3D CSTXT_ERR_LENTOOLONG1_STR; CSTxt.ERR_LENTOOLONG2_STR =3D CSTXT_ERR_LENTOOLONG2_STR; CSTxt.ERR_LENTOOLONG3_STR =3D CSTXT_ERR_LENTOOLONG3_STR; CSTxt.ERR_LENTOOSHORT1_STR =3D CSTXT_ERR_LENTOOSHORT1_STR; CSTxt.ERR_LENTOOSHORT2_STR =3D CSTXT_ERR_LENTOOSHORT2_STR; CSTxt.ERR_INVLDCHAR1_STR =3D CSTXT_ERR_INVLDCHAR2_STR; CSTxt.ERR_INVLDCHAR2_STR =3D CSTXT_ERR_INVLDCHAR2_STR; CSTxt.ERR_AL =3D CSTXT_ERR_AL; CSTxt.ERR_NUM =3D CSTXT_ERR_NUM;=20 CSTxt.ERR_ALSL =3D CSTXT_ERR_ALSL; CSTxt.ERR_NUMSL =3D CSTXT_ERR_NUMSL; CSTxt.ERR_SPACE =3D CSTXT_ERR_SPACE; CSTxt.ERR_AND =3D CSTXT_ERR_AND; CSTxt.AL =3D CS_TEXT_ALPHA; CSTxt.NUM =3D CS_TEXT_NUM; CSTxt.SPACE =3D CS_TEXT_SPACE; CSTxt.ALSL =3D CS_TEXT_ALPHASPL; CSTxt.NUMSL =3D CS_TEXT_NUMSPL; function CSTxt_getErrorStringStat( no, ex ) { var ret =3D CSErr.ERR_UNDEFINED_STR; if (no =3D=3D CSTxt.ERR_LENTOOLONG) { if (ex !=3D null && ex.v !=3D null && ex.l !=3D null) { ret =3D CS_InsertString( CSTxt.ERR_LENTOOLONG3_STR, ex.v ); =20 ret =3D CS_InsertString( ret, ex.l ); =20 } else if (ex !=3D null && ex.l !=3D null) { ret =3D CS_InsertString( CSTxt.ERR_LENTOOLONG2_STR, ex.l ); =20 } else { ret =3D CSTxt.ERR_LENTOOLONG1_STR; } } else if (no =3D=3D CSTxt.ERR_LENTOOSHORT) { if (ex =3D=3D null || ex.l =3D=3D null) { ret =3D CSTxt.ERR_LENTOOSHORT1_STR; } else { ret =3D CS_InsertString( CSTxt.ERR_LENTOOSHORT2_STR, ex.l ); =20 } } else if (no =3D=3D CSTxt.ERR_INVLDCHAR) { ret =3D CSTxt.buildErrMsg( ex.acm ); } return ret; } function CSTxt_getErrorString() { return CSTxt_getErrStrStat( this.err ); } function CSTxt_getErrStrStat( err ) { return CSTxt_getErrorStringStat( err.no, err.ex ); } function CSTxt_toUpperCase( str ) { return str.toUpperCase(); } function CSTxt_toLowerCase( str ) { return str.toLowerCase(); } function CSTxt_toProperCase( string ) {=20 var tmp =3D string.charAt( 0 ).toUpperCase(); var pattern =3D /\s/; for (var i =3D 1; i < string.length; i++) { if (string.charAt( i - 1 ).search( pattern ) !=3D -1 ) { tmp +=3D string.charAt( i ).toUpperCase(); } else { tmp +=3D string.charAt( i ).toLowerCase(); } } return tmp; } function CSTxt_overwriteText( s, is, sS, sE ) { var ret =3D s.slice( 0, sS ); ret +=3D is; ret +=3D s.slice( sE ); return ret; } function CSTxt_format( val, type ) { var ret =3D val; switch( type ) { case "proper": ret =3D CSTxt_toProperCase( val ); break; case "upper": ret =3D CSTxt_toUpperCase( val ); break; case "lower": ret =3D CSTxt_toLowerCase( val ); break; } return ret; } function CSTxt_validate( val, mncc, mxcl, eem ) { var ret =3D true; if (mncc !=3D null && val.length < mncc) { this.err =3D new CSErr( CSTxt.ERR_LENTOOSHORT, new Object() ); this.err.ex.l =3D mncc.toString(); ret =3D false; } else if (mxcl !=3D null && val.length > mxcl) { this.err =3D new CSErr( CSTxt.ERR_LENTOOLONG, new Object() ); this.err.ex.v =3D eem ? val.toString() : null; this.err.ex.l =3D mxcl.toString(); ret =3D false; } return ret; } function CSTxt_charsValid( v, f, acm ) { var ret =3D CS_CharFilter( v, f ); if (!ret) { this.err =3D new CSErr( CSTxt.ERR_INVLDCHAR, new Object() ); this.err.ex.acm =3D acm; } return ret; } function CSTxt_buildErrMsg( acm ) { var ret =3D CSTxt.ERR_INVLDCHAR1_STR; if (acm !=3D null && typeof( acm ) =3D=3D "number") { var c =3D 0; var a =3D new Array(); if (acm & 0x01) a[c++] =3D CSTxt.ERR_AL; if (acm & 0x02) a[c++] =3D CSTxt.ERR_NUM; if (acm & 0x04 && acm & 0x01) a[c++] =3D CSTxt.ERR_ALSL; else if (acm & 0x04 && acm & 0x02)=20 a[c++] =3D CSTxt.ERR_NUMSL; if (acm & 0x08) a[c++] =3D CSTxt.ERR_SPACE; var sa =3D ""; for (var i =3D 0; i < a.length; i++) { sa +=3D (i > 0 && a.length > 2) ? ", " : ""; sa +=3D (1 > 0 && a.length > 1 && (i =3D=3D (a.length - 1))) ? " " = + CSTxt.ERR_AND + " " : ""; sa +=3D a[i]; } ret =3D CS_FormatMessage( CSTxt.ERR_INVLDCHAR2_STR, sa ); } return ret; } function CSTxt_buildAllowedChars( acm ) { var ret =3D ""; do { if (acm =3D=3D null || typeof( acm ) !=3D "number" ) break; if (acm & 0x01) ret +=3D CSTxt.AL; if (acm & 0x02) ret +=3D CSTxt.NUM; if (acm & 0x04 && acm & 0x01) ret +=3D CSTxt.ALSL; else if (acm & 0x04 && acm & 0x02) ret +=3D CSTxt.NUMSL; if (acm & 0x08) ret +=3D CSTxt.SPACE; } while (false); return ret; } function CSTxt() { this.err =3D new CSErr( CSErr.ERR_SUCCESS ) } CSTxt.prototype.validate =3D CSTxt_validate; CSTxt.prototype.format =3D CSTxt_format; CSTxt.prototype.charsValid =3D CSTxt_charsValid; CSTxt.prototype.getErrorString =3D CSTxt_getErrorString; CSTxt.getErrorString =3D CSTxt_getErrStrStat; CSTxt.toLowerCase =3D CSTxt_toLowerCase; CSTxt.toUpperCase =3D CSTxt_toUpperCase; CSTxt.toProperCase =3D CSTxt_toProperCase; CSTxt.overwriteText =3D CSTxt_overwriteText; CSTxt.buildErrMsg =3D CSTxt_buildErrMsg; CSTxt.buildAllowedChars =3D CSTxt_buildAllowedChars; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS30_Lib_CSTempl.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved var CS_TMPLKWDS =3D = "A+\\d*|U+\\d*|L+\\d*|X+\\d*|N+\\d*|S+\\d*|\\.+\\d*"; var CS_TMPLSEPS =3D " "; var CS_TMPLRGXSEPS =3D "\\ "; CSTempl.ERR_FAM =3D 0x4000; CSTempl.ERR_TEMPLATE_INVALID =3D CSTempl.ERR_FAM | 0x0001; CSTempl.ERR_FORMAT_INVALID =3D CSTempl.ERR_FAM | 0x0002; CSTempl.ERR_TEMPLATE_INVALID_STR =3D CS_DTOBJ_ERR_TEMPLATE_INVALID_STR; CSTempl.ERR_FORMAT_INVALID_STR =3D CS_DTOBJ_ERR_FORMAT_INVALID_STR; function CSTempl_getErrorStringStat( num, ex )=20 { var ret =3D CSErr.ERR_UNDEFINED_STR; if (num =3D=3D CSTempl.ERR_TEMPLATE_INVALID) { ret =3D CSTempl.ERR_TEMPLATE_INVALID_STR; } else if (num =3D=3D CSTempl.ERR_FORMAT_INVALID) { ret =3D CSTempl.ERR_FORMAT_INVALID_STR; if (ex !=3D null) ret =3D ret.replace( /\%s/, ex ); } return ret; } function CSTempl_getErrorString() { return CSTempl_getErrStrStat( this.err ); } function CSTempl_getErrStrStat( err )=20 { return CSTempl_getErrorStringStat( err.no, err.ex ); } function CSTempl_normalizeKWDStat( kwdchk ) { if (kwdchk.type !=3D CS_KWD) return null; var res =3D CS_TMPLKWDPRS.exec( kwdchk.chunk ); if (res =3D=3D null) return null; var i =3D parseInt( res[2] ); kwdchk.chunk =3D kwdchk.chunk.charAt( 0 ); kwdchk.chunk +=3D res[1].length + ( isNaN( i ) || i =3D=3D 0 ? 0 : i - = 1 ); return kwdchk; } function CSTempl_parseTemplate( templ ) { var ret =3D null; this.err =3D new CSErr( CSTempl.ERR_TEMPLATE_INVALID ); do { var tok =3D CS_buildTokenArray( templ, CS_TMPLSEPS, CS_TMPLKWDSRGX = ); if (tok =3D=3D null) break; var i =3D 0; for (i =3D 0; i < tok.length; i++) if (tok[i].type =3D=3D CS_KWD)=20 tok[i] =3D CSTempl_normalizeKWDStat( tok[i] ); this.err =3D new CSErr( CSErr.ERR_SUCCESS ); ret =3D tok; } while (false); return ret; } function CSTempl_buildRegExp( tok, hard ) { var ret =3D null; this.err =3D new CSErr( CSTempl.ERR_TEMPLATE_INVALID ); do { if (tok =3D=3D null) break; if (hard =3D=3D null) hard =3D false; var rgx =3D "^"; var i =3D 0; for (i =3D 0; i < tok.length; i++) { if (tok[i].type =3D=3D CS_SEP) { var el =3D CS_EscapeRegExpLiterals( tok[i].chunk )=20 if (hard) { rgx +=3D "(" + el + ")"; } else { rgx +=3D "([\\W" + el + "]*)"; } } else if (tok[i].type =3D=3D CS_BRK) { } else if (tok[i].type =3D=3D CS_KWD) { var r =3D null; var c =3D tok[i].chunk.charAt( 0 ); var n =3D parseInt( tok[i].chunk.slice( 1 ) );=20 if (isNaN( n ) || n =3D=3D 0) break; switch (c) { case "A": r =3D CS_TEXT_ALPHA; break; case "U": r =3D CS_TEXT_UPPER; break; case "L": r =3D CS_TEXT_LOWER; break; case "X": r =3D CS_TEXT_ALNUM; break; case "N": r =3D CS_TEXT_NUM; break; case "S": r =3D CS_TEXT_PUNC; break; case ".": r =3D "."; break; } if (r !=3D null) { if (r =3D=3D ".") { rgx +=3D "(.{" + n + "})"; } else { rgx +=3D "([" + r + "]{" + n + "})"; } } } } rgx +=3D "$"; ret =3D new RegExp( rgx ); if (ret !=3D null) =20 this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); return ret; } function CSTempl_buildTemplStr( toks ) { var ret =3D null; do { if (toks =3D=3D null) break; ret =3D ""; var i =3D 0; for (i =3D 0; i < toks.length; i++) { if (toks[i].type =3D=3D CS_SEP) { ret +=3D toks[i].chunk; } else if (toks[i].type =3D=3D CS_KWD) { ret +=3D toks[i].chunk.charAt( 0 ); var n =3D parseInt( toks[i].chunk.charAt( 1 ) ); if (n !=3D 0) { var j =3D 1; for (j =3D 1; j < n; j++) ret +=3D toks[i].chunk.charAt( 0 ); } } } } while (false); return ret; } function CSTempl_evaluate( rgx, toks, val ) { var ret =3D null; this.err =3D new CSErr( CSErr.ERR_UNDEFINED ); do { if (rgx =3D=3D null || toks =3D=3D null) { this.err =3D new CSErr( CSTempl.ERR_TEMPLATE_INVALID ); break; } var rres =3D rgx.exec( val ); if (rres =3D=3D null) { this.err =3D new CSErr( CSTempl.ERR_FORMAT_INVALID, = CSTempl_buildTemplStr( toks )); break; } ret =3D rres; this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); return ret; } function CSTempl_format( rres, toks, bSeps ) { var ret =3D null; this.err =3D new CSErr( CSErr.ERR_UNDEFINED ); do { if (toks =3D=3D null) { this.err =3D new CSErr( CSTempl.ERR_TEMPLATE_INVALID ); break; } if (rres =3D=3D null) { this.err =3D new CSErr( CSTempl.ERR_FORMAT_INVALID, = CSTempl_buildTemplStr( toks )); break; } if (bSeps =3D=3D null) bSeps =3D true; var res =3D new Array; var i, j =3D 0, k =3D 1, v =3D ""; res[0] =3D res[k] =3D ""; for (i =3D 0; i < toks.length; i++) { v =3D ""; switch (toks[i].type) { case CS_SEP: j++; v =3D toks[i].chunk; break; case CS_KWD: j++; v =3D rres[j]; break; case CS_BRK: k++; res[k] =3D ""; break; } res[0] +=3D v; if (toks[i].type !=3D CS_SEP) res[k] +=3D v; } ret =3D res; this.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); return ret; } function CSTempl_toString() { return "err: " + this.err + "\r" + "error: " + this.getErrorString() + "\r"; } function CSTempl_reset() { this.err =3D new CSErr( CSErr.ERR_UNDEFINED ); } function CSTempl() { this.reset(); } CSTempl.Init =3D function() { CS_TMPLKWDSRGX =3D new RegExp( CS_TMPLKWDS, "g" ); CS_TMPLKWDPRS =3D new RegExp( "(\\D+)(\\d*)" ); } CSTempl.prototype.reset =3D CSTempl_reset; CSTempl.prototype.parseTemplate =3D CSTempl_parseTemplate; CSTempl.prototype.buildRegExp =3D CSTempl_buildRegExp; CSTempl.prototype.evaluate =3D CSTempl_evaluate; CSTempl.prototype.format =3D CSTempl_format; CSTempl.prototype.toString =3D CSTempl_toString; CSTempl.prototype.getErrorString =3D CSTempl_getErrorString; CSTempl.getErrorString =3D CSTempl_getErrStrStat; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS35_Lib_CSFmt.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSFmt.ERR_FAM = 0x8000; CSFmt.ERR_INVLDFMTTYPE = CSFmt.ERR_FAM | 0x0001; CSFmt.ERR_INVLDFMTOBJ = CSFmt.ERR_FAM | 0x0002; CSFmt.ERR_INVLDFMTTYPE_STR = CS_CSFMT_ERR_INVLDFMTTYPE_STR; CSFmt.ERR_INVLDFMTOBJ_STR = CS_CSFMT_ERR_INVLDFMTOBJ_STR; function CSFmt_getErrStrStat( err ) { var ret = CSErr.ERR_UNDEFINED_STR; if (err.no == CSFmt.ERR_INVLDFMTTYPE) ret = CSFmt.ERR_INVLDFMTTYPE_STR; else if (err.no == CSFmt.ERR_INVLDFMTOBJ) ret = CSFmt.ERR_INVLDFMTOBJ_STR; return ret; } function CSFmt_getErrStr( o ) { var ret = CSErr.ERR_UNDEFINED_STR; do { if (o == null || o.err == null) break; var e = o.err; var fam = e.no & 0xF000; if (fam == CSErr.ERR_FAM) { ret = CSErr.getErrorString( e ); } else if (fam == CSTxt.ERR_FAM) { ret = CSTxt.getErrorString( e ); } else if (fam == CSDate.ERR_FAM) { ret = CSDate.getErrorString( e ); } else if (fam == CSNum.ERR_FAM) { ret = CSNum.getErrorString( e ); } else if (fam == CSTempl.ERR_FAM) { ret = CSTempl.getErrorString( e ); } else if (fam == CSFmt.ERR_FAM) { ret = CSFmt.getErrorString( e ); } } while (false); return ret; } function CSFmt_init( o ) { var ret = CSErr.ERR_UNDEFINED; do { if (o == null) return CSFmt.ERR_INVLDFMTOBJ; switch (o.fmt) { case "txt": CSFmt_inittxt( o ); break; case "dt": CSFmt_initdt( o ); break; case "nmbr": CSFmt_initnmbr( o ); break; case "tmpl": CSFmt_inittmpl( o ); break; } o.err = new CSErr( CSFmt.ERR_SUCCESS ); } while (false); ret = o.err.no; return ret; } function CSFmt_format( o ) { var ret = CSErr.ERR_UNDEFINED; do { if (o == null) return CSFmt.ERR_INVLDFMTOBJ; switch (o.fmt) { case "txt": CSFmt_fmttxt( o ); break; case "dt": CSFmt_fmtdt( o ); break; case "nmbr": CSFmt_fmtnmbr( o ); break; case "tmpl": CSFmt_fmttmpl( o ); break; default: o.err = new CSErr( CSFmt.ERR_INVLDFMTTYPE ); break; } } while (false); ret = o.err.no; return ret; } function CSFmt_validate( o ) { var ret = CSErr.ERR_UNDEFINED; do { if (o == null) return CSFmt.ERR_INVLDFMTOBJ; if (o.uval == null) { o.err = new CSErr( CSErr.ERR_SUCCESS ); break; } switch (o.fmt) { case "txt": ret = CSFmt_vldtxt( o ); break; case "dt": ret = CSFmt_vlddt( o ); break; case "nmbr": ret = CSFmt_vldnmbr( o ); break; case "tmpl": ret = CSFmt_vldtmpl( o ); break; default: o.err = new CSErr( CSFmt.ERR_INVLDFMTTYPE ); break; } } while (false); ret = o.err.no; return ret; } function CSFmt_charsValid( o ) { var ret = CSErr.ERR_UNDEFINED; do { if (o == null) return CSFmt.ERR_INVLDFMTOBJ; switch (o.fmt) { case "txt": ret = CSFmt_chsvtxt( o ); break; case "nmbr": ret = CSFmt_chsvnmbr( o ); break; case "dt": case "tmpl": o.err = new CSErr( CSErr.ERR_SUCCESS ); break; default: o.err = new CSErr( CSFmt.ERR_INVLDFMTTYPE ); break; } } while (false); ret = o.err.no; return ret; } function CSFmt() { } CSFmt.Init = function() { CSDate.Init(); CSTempl.Init(); } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS35_Lib_CSFmt2.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved function CSFmt_needInit( o ) { return (o.init =3D=3D null || o.rsvd =3D=3D null); } function CSFmt_updateIntVal( o ) { if (o !=3D null && o.rsvd !=3D null) o.intv =3D o.rsvd.ival; } function CSFmt_getIntVal( o ) { return (o !=3D null) ? o.intv : null; } function CSFmt_setIntVal( o, v ) { if (o !=3D null) o.intv =3D v; } function CSFmt_useIntVal( o, b ) { if (o !=3D null) o.useIntVal =3D b; } function CSFmt_initdt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; o.err =3D new CSErr( CSErr.ERR_UNDEFINED ); if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); var r =3D o.rsvd; if (o.fmt =3D=3D null || o.fmtdt =3D=3D null || o.fmtdt.tmpl =3D=3D = null) { o.err =3D new CSErr( CSFmt.ERR_INVLDFMTOBJ ); break; } var dt =3D o.fmtdt; if (r.idt =3D=3D null) r.idt =3D new CSDate(); if (r.ta =3D=3D null) r.ta =3D r.idt.parseTemplate( dt.tmpl ); if (r.ta =3D=3D null) { o.err =3D r.idt.err; break; } if (r.rgx =3D=3D null) r.rgx =3D r.idt.buildRegExp( r.ta ); if (r.rgx =3D=3D null) { o.err =3D r.idt.err; break; } o.init =3D true; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_evldt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; o.err =3D new CSErr( CSErr.ERR_UNDEFINED ); if (CSFmt_needInit( o )) if (CSFmt_initdt( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; r.ival =3D r.idt.evaluate( r.rgx, r.ta, o.uval ); if (r.ival =3D=3D null) { o.err =3D r.idt.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_fmtdt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_initdt( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; var iv =3D null; if (o.useIntVal) { iv =3D o.intv; } else { o.uval =3D CS_TrimTailWS( o.uval ); if (o.uval =3D=3D "") { o.dval =3D ""; o.dvalex =3D new Array(); o.dvalex[0] =3D ""; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); r.ival =3D null; break; =20 } CSFmt_evldt( o ); if (r.ival =3D=3D null) { o.err =3D r.idt.err; break; } iv =3D r.ival; } var dv =3D r.idt.format( iv, r.ta ); if (dv =3D=3D null) { o.err =3D r.idt.err; break; } o.dval =3D dv[0]; o.dvalex =3D dv; =20 o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_vlddt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_initdt( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; o.uval =3D CS_TrimTailWS( o.uval ); if (o.uval =3D=3D null || o.uval =3D=3D "") { r.ival =3D null; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } CSFmt_evldt( o ); if (r.ival =3D=3D null) { o.err =3D r.idt.err; break; } if ( typeof( r.imnv ) =3D=3D "undefined") r.imnv =3D o.fmtdt.mnv =3D=3D null ? null : new CSDate( = o.fmtdt.mnv ); if ( typeof( r.imxv ) =3D=3D "undefined") r.imxv =3D o.fmtdt.mxv =3D=3D null ? null : new CSDate( = o.fmtdt.mxv ); if (!r.idt.validateRange( r.ival, r.imnv, r.imxv, r.ta )) { o.err =3D r.idt.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_initnmbr( o ) { var ret =3D CSFmt.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; o.err =3D new CSErr( CSErr.ERR_UNDEFINED ); if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); var r =3D o.rsvd; if (o.fmt =3D=3D null || o.fmtnmbr =3D=3D null) { o.err =3D new CSErr( CSFmt.ERR_INVLDFMTOBJ ); break; } var fn =3D o.fmtnmbr; r.ics =3D fn.cs =3D=3D null ? "" : fn.cs; r.ids =3D fn.ds =3D=3D null ? "." : fn.ds; r.iss =3D fn.ss =3D=3D null ? "" : fn.ss; r.idp =3D fn.dp =3D=3D null ? 2 : fn.dp; r.iapp =3D fn.app =3D=3D null ? false : fn.app; if (r.ifn =3D=3D null) r.ifn =3D new CSNum(); ret =3D o.err =3D new CSErr( CSFmt.ERR_SUCCESS ); o.init =3D true; } while (false); ret =3D o.err.no; return ret; } function CSFmt_evlnmbr( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_initnmbr( o ) !=3D CSFmt.ERR_SUCCESS) break; var r =3D o.rsvd; r.ival =3D r.ifn.evaluate( o.uval, r.ics, r.ids, r.iss, r.idp, = r.iapp ) if (r.ival =3D=3D null) { o.err =3D r.ifn.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); ret =3D o.err.no; } while (false); if (o.err !=3D null) ret =3D o.err.no; return ret; } function CSFmt_fmtnmbr( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_initnmbr( o ) !=3D CSFmt.ERR_SUCCESS) break; var r =3D o.rsvd; if (o.useIntVal && typeof( o.intv ) =3D=3D "number") { r.ival =3D o.intv; } else { if (o.uval =3D=3D null || o.uval =3D=3D "") { o.dval =3D ""; r.ival =3D null; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } CSFmt_evlnmbr( o ); } if (r.ival =3D=3D null) { o.err =3D r.ifn.err; break; } var dv =3D r.ifn.format( r.ival, r.ics, r.ids, r.iss, r.idp, r.iapp = ); if (dv =3D=3D null) { o.err =3D r.ifn.err; break; } o.dval =3D dv; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); if (o.err !=3D null) ret =3D o.err.no; return ret; } function CSFmt_vldnmbr( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_initnmbr( o ) !=3D CSFmt.ERR_SUCCESS) break; var r =3D o.rsvd; if (o.uval =3D=3D null || o.uval =3D=3D "") { r.ival =3D null; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } CSFmt_evlnmbr( o ); if (r.ival =3D=3D null) { o.err =3D r.ifn.err; break; } if (!r.ifn.validateRange( r.ival, o.fmtnmbr.mnv, o.fmtnmbr.mxv,=20 r.ics, r.ids, r.iss, r.idp, r.iapp )) { o.err =3D r.ifn.err; break; } if (o.fmtnmbr.mxcl !=3D null && o.fmtnmbr.mxcl > 0) { var dv =3D r.ifn.format( r.ival, r.ics, r.ids, r.iss, r.idp, = r.iapp ); if (dv =3D=3D null) { o.err =3D r.ifn.err; break; } if (r.itxt =3D=3D null) r.itxt =3D new CSTxt(); if (!r.itxt.validate( dv, null, o.fmtnmbr.mxcl, true )) { o.err =3D r.itxt.err; break; } } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_chsvnmbr( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null || o.fmtnmbr =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (o.uval =3D=3D null || o.uval =3D=3D "") { o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); var r =3D o.rsvd; if (r.itxt =3D=3D null) r.itxt =3D new CSTxt(); if (!r.itxt.charsValid( o.uval, o.fmtnmbr.ac )) { o.err =3D r.itxt.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_inittmpl( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; o.err =3D new CSErr( CSErr.ERR_UNDEFINED ); if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); var r =3D o.rsvd; if (o.fmt =3D=3D null || o.fmt =3D=3D null || o.fmttmpl.tmpl =3D=3D = null) { o.err =3D new CSErr( CSFmt.ERR_INVLDFMTOBJ ); break; } var t =3D o.fmttmpl; if (r.it =3D=3D null) r.it =3D new CSTempl(); if (r.ta =3D=3D null) r.ta =3D r.it.parseTemplate( t.tmpl ); if (r.ta =3D=3D null) { o.err =3D r.it.err; break; } if (r.rgx =3D=3D null) r.rgx =3D r.it.buildRegExp( r.ta ); if (r.rgx =3D=3D null) { o.err =3D r.it.err; break; } o.init =3D true; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_evltmpl( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; o.err =3D new CSErr( CSErr.ERR_UNDEFINED ); if (CSFmt_needInit( o )) if (CSFmt_inittmpl( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; r.ires =3D r.it.evaluate( r.rgx, r.ta, o.uval ); if (r.ires =3D=3D null) { o.err =3D r.it.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_fmttmpl( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_inittmpl( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; o.uval =3D CS_TrimTailWS( o.uval ); if (o.uval =3D=3D "") { o.dval =3D ""; o.dvalex =3D new Array(); o.dvalex[0] =3D ""; r.ires =3D null; r.ival =3D o.dvalex; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } CSFmt_evltmpl( o ); if (r.ires =3D=3D null) { o.err =3D r.it.err; o.dval =3D ""; o.dvalex =3D new Array(); o.dvalex[0] =3D ""; r.ival =3D o.dvalex; break; } var dv =3D r.it.format( r.ires, r.ta ); if (dv =3D=3D null) { o.err =3D r.it.err; break; } o.dval =3D dv[0]; o.dvalex =3D dv; =20 r.ival =3D o.dvalex; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_vldtmpl( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_inittmpl( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; o.uval =3D CS_TrimTailWS( o.uval ); if (o.uval =3D=3D null || o.uval =3D=3D "") { r.ires =3D null; r.ival =3D ""; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } CSFmt_evltmpl( o ); var r =3D o.rsvd; if (r.ires =3D=3D null) { o.err =3D r.it.err; break; } var dv =3D r.it.format( r.ires, r.ta ); if (dv =3D=3D null) { o.err =3D r.it.err; break; } o.dval =3D dv[0]; o.dvalex =3D dv; r.ival =3D o.dvalex; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_inittxt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); var r =3D o.rsvd; if (r.itxt =3D=3D null) r.itxt =3D new CSTxt(); o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_fmttxt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_inittxt( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; if (o.uval =3D=3D null || o.uval =3D=3D "") { r.ival =3D "";=20 o.dval =3D r.ival; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } r.ival =3D r.itxt.format( o.uval, o.fmttxt.cc ); var dv =3D r.ival; if (dv =3D=3D null) { o.err =3D r.itxt.err; break; } o.dval =3D dv; o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_vldtxt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_inittxt( o ) !=3D CSErr.ERR_SUCCESS) break; if (CSFmt_fmttxt( o ) !=3D CSErr.ERR_SUCCESS) break; var r =3D o.rsvd; if (!r.itxt.validate( o.uval, o.fmttxt.mncc, o.fmttxt.mxcc )) { o.err =3D r.itxt.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } function CSFmt_chsvtxt( o ) { var ret =3D CSErr.ERR_UNDEFINED; do { if (o =3D=3D null || o.fmttxt =3D=3D null) return CSFmt.ERR_INVLDFMTOBJ; if (CSFmt_needInit( o )) if (CSFmt_inittxt( o ) !=3D CSErr.ERR_SUCCESS) break; if (o.uval =3D=3D null || o.uval =3D=3D "") { o.err =3D new CSErr( CSErr.ERR_SUCCESS ); break; =20 } var r =3D o.rsvd; if (r.ac =3D=3D null) { r.ac =3D CSTxt.buildAllowedChars( o.fmttxt.acm ); if (o.fmttxt.ac !=3D null) r.ac +=3D o.fmttxt.ac; } if (!r.itxt.charsValid( o.uval, r.ac, o.fmttxt.acm )) { o.err =3D r.itxt.err; break; } o.err =3D new CSErr( CSErr.ERR_SUCCESS ); } while (false); ret =3D o.err.no; return ret; } CSFmt.push =3D function( o ) { do { if (CSFmt_needInit( o )) CSFmt.init( o ); if (o.rsvd.stk =3D=3D null) o.rsvd.stk =3D new Array(); CS_Array_Push( o.rsvd.stk, {uval:o.uval, dval:o.dval, dvalex: = o.dvalex, ival:o.rsvd.ival, intv:o.intv, uintv:o.useIntVal} ); } while (false); } CSFmt.pop =3D function( o ) { do { if (o.rsvd =3D=3D null || o.rsvd.stk =3D=3D null) break; var s =3D CS_Array_Pop( o.rsvd.stk ); if (s =3D=3D null) break; o.uval =3D s.uval; o.dval =3D s.dval; o.dvalex =3D s.dvalex; o.rsvd.ival =3D s.ival; o.intv =3D s.intv; o.useIntVal =3D s.uintv; } while (false); } CSFmt.isDateTemplate =3D function( o ) { var ret =3D false; do { if (o.fmt !=3D "dt" || o.fmtdt =3D=3D null || o.fmtdt.tmpl =3D=3D = null) break; if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); if ( typeof( o.rsvd.isDate ) =3D=3D "undefined" ) o.rsvd.isDate =3D CSDate_isDateTemplate( o.fmtdt.tmpl ); ret =3D o.rsvd.isDate } while (false); return ret; } CSFmt.isTimeTemplate =3D function( o ) { var ret =3D false; do { if (o.fmt !=3D "dt" || o.fmtdt =3D=3D null || o.fmtdt.tmpl =3D=3D = null) break; if (o.rsvd =3D=3D null) o.rsvd =3D new Object(); if ( typeof( o.rsvd.isTime ) =3D=3D "undefined" ) o.rsvd.isTime =3D CSDate_isTimeTemplate( o.fmtdt.tmpl ); ret =3D o.rsvd.isTime } while (false); return ret; } CSFmt.init =3D CSFmt_init; CSFmt.format =3D CSFmt_format; CSFmt.validate =3D CSFmt_validate; CSFmt.charsValid =3D CSFmt_charsValid; CSFmt.updateIntVal =3D CSFmt_updateIntVal; CSFmt.setIntVal =3D CSFmt_setIntVal; CSFmt.getIntVal =3D CSFmt_getIntVal; CSFmt.useIntVal =3D CSFmt_useIntVal; CSFmt.getErrStr =3D CSFmt_getErrStr; CSFmt.getErrorString =3D CSFmt_getErrStrStat; CSFmt.needInit =3D CSFmt_needInit; ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS40_Lib_HTML_csdom.js // CS Object Model Compatibility layer=20 // // Author: Kevin Horning, Michael Breed, Micah Dubinko // Date: 4/20/2001 // Revised:9/22/2005 // Requires: no dependencies // Copyright (c) 2001-2006 Cardiff, Inc. All rights reserved. function CSClient_Obj() {} CSClient_Obj.prototype.getObjectType =3D function() { return "CSClient"; = } CSClient_Obj.prototype.alert =3D function( msg, btns ) { var choice =3D -1; if (btns > 0) { var rc =3D confirm( msg ); // returns bool if (rc) { choice =3D 1; } else { choice =3D 0; } } else { alert( msg ); choice =3D 1; } return choice; } CSClient_Obj.prototype.prompt =3D function( msg, defval ) { return = prompt( msg, defval ); } CSClient_Obj.prototype.getAgent =3D function() { return = navigator.userAgent.toLowerCase(); } CSClient_Obj.prototype.getLanguageCode =3D function() { if (CSExt.getFldVal("DFS__LanguageCode") !=3D "") { return CSExt.getFldVal("DFS__LanguageCode"); } else { var htmlObj =3D document.getElementsByTagName('HTML'); if (htmlObj.length > 0) return htmlObj[0].lang; } } CSClient_Obj.prototype.showPage =3D function( pg ) { cs_ShowPage(pg); } CSClient_Obj.prototype.zoom =3D function( percent ) { if (percent<80 || = percent>120) return; cs_ZoomPage(percent); } CSClient_Obj.prototype.setView =3D function( vt ) { cs_setView(vt); } CSClient_Obj.prototype.getPageNumber =3D function( elmt ) { if (document.toolform.DFS__ctrlSetView.value =3D=3D CS_PAGED_MODE) { return document.toolform.DFS__ctrlPgFlipTop.value; } else { // If in 'continuous' mode, hope that a reference element is passed = or try // to discern one from the event if possible. var el =3D null; if (elmt) { el =3D (elmt) ? elmt : null; var evt =3D (window.event) ? window.event : ""; if (!el) el =3D (evt.srcElement) ? evt.srcElement : evt.target; } else if (CSEvent && CSEvent.getTarget() !=3D null) { var fld =3D CSEvent.getTarget(); el =3D fld.hf; } var ret =3D 0; var elId =3D ""; if (el) { while ( el.parentNode ) { el =3D el.parentNode; if (typeof el.id !=3D "undefined") elId =3D el.id; if (el.id !=3D null && el.id !=3D "undefined" && el.tagName = =3D=3D "DIV" && elId.indexOf("DFS__pagediv") !=3D -1) { break; } } ret =3D elId.replace(/DFS__pagediv/i,""); if (!isNaN(ret)) return ret; } else { return ret; } } } function CSHTMLClient_Obj() { this.toptb =3D [ {nm:"PageBack",div:"DFS__ctrlPgDnTop"}, {nm:"PagePick",div:"DFS__ctrlPgFlipTop"}, {nm:"PageFwd",div:"DFS__ctrlPgUpTop"}, {nm:"Zoom",div:"DFS__ctrlZoom"}, {nm:"View",div:"DFS__ctrlSetView"}, {nm:"Online",div:"DFS__workoffline"}, {nm:"Offline",div:"DFS__reconnect"}]; this.bottb =3D [ {nm:"PageBack",div:"DFS__ctrlPgDnBot"}, {nm:"PagePick",div:"DFS__ctrlPgFlipBot"}, {nm:"PageFwd",div:"DFS__ctrlPgUpBot"}]; } CSHTMLClient_Obj.prototype.getObjectType =3D function() { return = "CSHTMLClient"; } CSHTMLClient_Obj.prototype.getNumberOfControls =3D function( tb ) { if(tb=3D=3D0) return this.toptb.length; if(tb=3D=3D1) return this.bottb.length; return 0; } CSHTMLClient_Obj.prototype.getControlName =3D function( tb, n ) { var rc =3D ""; try { if(tb=3D=3D0) rc =3D this.toptb[n].nm; if(tb=3D=3D1) rc =3D this.bottb[n].nm; } catch(e) {} return rc; } CSHTMLClient_Obj.prototype.setToolbarHidden =3D function( tb, hide ) { var hstr =3D "block"; if (hide || typeof(hide)=3D=3D"undefined") { hstr =3D "none"; } var div =3D null; if (tb=3D=3D0) { div =3D document.getElementById("DFS__toolbarTop"); } if (tb=3D=3D1) { div =3D document.getElementById("DFS__toolbarBot"); } if (div!=3Dnull) { div.style.display =3D hstr; } } CSHTMLClient_Obj.prototype.setControlHidden =3D function( tb, cid, hide = ) { var hstr =3D "block"; if (hide || typeof(hide)=3D=3D"undefined") { hstr =3D "none"; } var tbarr; if (tb=3D=3D0) tbarr =3D this.toptb; if (tb=3D=3D1) tbarr =3D this.bottb; var ctrl =3D null; if (typeof cid =3D=3D "number") { try { ctrl =3D document.getElementById(tbarr[cid].div); } catch(e) {} } else { try { for(var idx=3D0; idx //if (!window.field_construct) // window.field_construct =3D []; //window.field_construct[window.field_construct.length] =3D = htmlfield.name; // if (htmlfield.type && htmlfield.type=3D=3D"radio") { this.hf =3D document.htmlform[htmlfield.name]; // returns array } else if (htmlfield.id && htmlfield.id.indexOf("INK__") !=3D -1) { this.hf =3D document.htmlform[htmlfield.id.replace(/INK__/,"")]; } else if (htmlfield.id && htmlfield.id.indexOf("SIG__") !=3D -1) { this.hf =3D document.htmlform[htmlfield.id.replace(/SIG__/,"")]; }else { this.hf =3D htmlfield; } } CSField_Obj.prototype.getObjectType =3D function() { return "CSField"; } CSField_Obj.prototype.setFocus =3D function() { CSForm.setFocus(this.getName()); } CSField_Obj.prototype.getName =3D function() { if (this.hf[0] && this.hf[0].name) return this.hf[0].name; else return this.hf.name; } CSField_Obj.prototype.getDescription =3D function() { return CSExt.f[this.getName()].fmt.desc; } CSField_Obj.prototype.cs_isEmpty =3D function() { var rc; if (this.getType()=3D=3D"InkPicture") { var fmt =3D CSExt.f[this.hf.name].fmt; rc =3D this.getValue().length < fmt.thresh; } else { rc =3D this.getValue().length =3D=3D 0 } return rc; } CSField_Obj.prototype.getValue =3D function() { if (this.hf.type=3D=3D"select-multiple") { // tab-separated list var rv =3D ""; for(var idx=3D0; idx< this.hf.options.length; idx++) { if (this.hf.options[idx].selected) { if (rv.length>0) rv +=3D String.fromCharCode(9);//TAB rv +=3D this.hf.options[idx].value; } } return rv; } else if (this.hf[0] && this.hf[0].type && = this.hf[0].type=3D=3D"radio") { for(var idx=3D0; idx 0; } // this function is high-level/user-exposed CSField_Obj.prototype.setReadOnly =3D function( b ) { cs_trace(this.getName() + " trying to setLock RO: " + b, 0, 'red'); this.cs_setLock("CSField.setReadOnly", b); } // this function does the actual low-level stuff CSField_Obj.prototype.cs_setReadOnly =3D function( b ) { if (this.getType()=3D=3D"InkPicture") { var inkobj =3D document.getElementById("INK__" + this.getName()); var ink =3D new CSInk_Obj(inkobj); ink.setEnabled(!b); cs_trace(this.getName() + " cs_setReadOnly: " + b, 0, 'red'); } else if (this.hf[0] && this.hf[0].type && this.hf[0].type =3D=3D = "radio") { for( var idx=3D0; idx < this.hf.length; idx++) { this.hf[idx].readOnly =3D b; this.hf[idx].disabled =3D b; } } else { this.hf.readOnly =3D b; if (this.getType() !=3D "Text") { // for text fields, readonly is = enough this.hf.disabled =3D b; } this.hf.blur(); } } // locking layer CSField_Obj.prototype.cs_setLock =3D function( locking_sig, locking ) { = // private // allow for multiple, possibly overlapping locks var o =3D CSExt.f[this.getName()]; if (!o) return; var fmt =3D o.fmt; if (!fmt.lockedBy) fmt.lockedBy =3D {}; if (locking) { //alert( "creating lock on " + this.getName() + " by " + locking_sig = ); fmt.lockedBy[locking_sig] =3D {}; this.cs_setReadOnly( true ); } else { // on init, it's possible for an unlock request to come in with no = previous lock if (fmt.lockedBy[locking_sig]) { //alert( "deleting lock on " + this.getName() + " by " + = locking_sig ); delete fmt.lockedBy[locking_sig]; } // only setReadOnly(false) if nobody else is locking var cnt =3D 0; for (var prop in fmt.lockedBy) cnt++; if (cnt =3D=3D 0) this.cs_setReadOnly( false ); } } CSField_Obj.prototype.isRequired =3D function() { return CSExt.f[this.getName()].fmt.required; } CSField_Obj.prototype.setRequired =3D function( b ) { CSExt.f[this.getName()].fmt.required =3D b; } CSField_Obj.prototype.isHidden =3D function() { var hideme =3D this.hf; if (this.getType() =3D=3D "Signature") { var tmp =3D CSExt.getFld("SIG__" + this.hf.name); if (tmp) hideme =3D tmp; } if (this.getType() =3D=3D "InkPicture") { var tmp =3D document.getElementById("INK__" + this.hf.name); if (tmp) hideme =3D tmp; } if (hideme.type =3D=3D "hidden") return true; if (hideme[0] && hideme[0].type && hideme[0].type =3D=3D "radio") return hideme[0].style.visibility =3D=3D "hidden"; else return hideme.style.visibility =3D=3D "hidden"; } CSField_Obj.prototype.setHidden =3D function( b ) { var hideme =3D this.hf; var shimdiv =3D document.getElementById("DFS__shimdiv" + = this.cs_getPageNumber()); var wrapperdiv; if (this.getType() =3D=3D "Signature") { var tmp =3D document.getElementById("SIG__" + this.hf.name); if (tmp) hideme =3D tmp; } if (this.getType() =3D=3D "InkPicture") { var tmp =3D document.getElementById("INK__" + this.hf.name); if (tmp) { hideme =3D tmp; wrapperdiv =3D hideme.parentNode; } } if (hideme.type =3D=3D "hidden") return; // nothing to hide/unhide var setting =3D "block"; var settingV =3D "visible"; if (b) { setting =3D "none"; settingV =3D "hidden"; } // Let's hide. var lblstohide =3D [this.getName()]; if (hideme[0] && hideme[0].type && hideme[0].type =3D=3D "radio") { // Hide radios. for (var idx=3D0; idx < hideme.length; idx++) { hideme[idx].style.display =3D setting; hideme[idx].style.visibility =3D settingV; lblstohide[lblstohide.length] =3D hideme[idx].id; } } else { // Hide all else. hideme.style.display =3D setting; hideme.style.visibility =3D settingV; // IE6 } // Hide labels. var lbls =3D shimdiv.getElementsByTagName("label"); for (var idx=3D0; idx < lbls.length; idx++) { for(var jdx=3D0; jdx < lblstohide.length; jdx++) { if (lbls[idx].htmlFor =3D=3D lblstohide[jdx]) { lbls[idx].style.display =3D setting; // Get wrapper div. var lbldiv =3D document.getElementById("textWrapper_" + = lbls[idx].id); if (lbldiv) { lbldiv.style.display =3D setting; } } } } // Label div hiding for radio group top level label. var lbldiv =3D document.getElementById("lbldivfor_" + this.getName()); if (lbldiv) { lbldiv.style.display =3D setting; } =20 // hide rectangles associated with title-inside-field var rect =3D document.getElementById(hideme.id + "_rect"); if (rect) { var h =3D rect.offsetHeight; rect.style.visibility =3D settingV; if (rect.style.height =3D=3D "") rect.style.height =3D h; // Only = set this if it needs it, i.e. onload. } // hide ink wrapper div if (this.getType() =3D=3D "InkPicture" && wrapperdiv) { wrapperdiv.style.display =3D setting; wrapperdiv.style.visibility =3D settingV; if (CSUtil.isNS && b) { // NS bug - on show img is floating down. var img =3D document.getElementById("IMG__" + this.getName()); with (img.style) { position =3D "absolute"; top =3D wrapperdiv.offsetTop; } } } } CSField_Obj.prototype.getTextColor =3D function() { if (this.getType() =3D=3D "InkPicture") { var inkobj =3D document.getElementById("INK__" + this.hf.name); var ink =3D new CSInk_Obj(inkobj); //var decim =3D ink.InkColor; //return cs_rgb_to_gbr(cs_format_rgb( decim.toString(16) )); var tc =3D ink.getInkColor(); cs_trace(this.getName() + " getTextColor: " + tc); return tc; } else if (this.getType() =3D=3D "Signature") { var sigobj =3D document.getElementById("SIG__" + this.hf.name); var tc =3D cs_format_rgb(sigobj.style.color); return tc; } else if (this.hf[0] && this.hf[0].type && this.hf[0].type =3D=3D = "radio") { return cs_format_rgb(this.hf[0].style.color); } else { return cs_format_rgb(this.hf.style.color); } } CSField_Obj.prototype.setTextColor =3D function( rgb ) { var sv =3D cs_assemble_color_string("", rgb); if ( sv !=3D "" ) sv =3D "#" + sv; if (this.getType() =3D=3D "InkPicture") { var inkobj =3D document.getElementById("INK__" + this.hf.name); var ink =3D new CSInk_Obj(inkobj); //cs_trace("INK set InkColor " + cs_rgb_to_gbr(sv)); //ink.InkColor =3D parseInt(cs_rgb_to_gbr(sv), 16); ink.setInkColor(sv); cs_trace(this.getName() + " setTextColor: " + sv); } try { if (this.hf[0] && this.hf[0].type && this.hf[0].type =3D=3D "radio") = { for (var idx=3D0; idx < this.hf.length; idx++) { this.hf[idx].style.color =3D sv; } } else if (this.getType() =3D=3D "Signature") { var sigobj =3D document.getElementById("SIG__" + this.hf.name); sigobj.style.color =3D sv; this.hf.style.color =3D sv; } else { =20 this.hf.style.color =3D sv; =20 // catch combo if ( this.getType() =3D=3D "Combo" ) { cbo =3D document.getElementById("DFS__" + this.getName()); if (cbo) {=20 cbo.style.color =3D sv; } } =20 } } catch(e2) {} } CSField_Obj.prototype.getFillColor =3D function() { if (this.getType() =3D=3D "InkPicture") { var inkobj =3D document.getElementById("INK__" + this.getName()); var ink =3D new CSInk_Obj(inkobj); var fc =3D ink.getBackgroundColor(); cs_trace(this.getName() + " getFillColor: " + fc); return fc; =20 } else if (this.hf[0] && this.hf[0].type && this.hf[0].type =3D=3D = "radio") { return cs_format_rgb(this.hf[0].style.backgroundColor); } else if (this.getType() =3D=3D "Signature") { return cs_format_rgb(document.getElementById("SIG__" + = this.getName()).style.backgroundColor); } else return cs_format_rgb(this.hf.style.backgroundColor); } CSField_Obj.prototype.setFillColor =3D function( rgb ) { //if ( rgb.indexOf("transparent") !=3D -1)=20 var sv =3D cs_assemble_color_string("", rgb); if (this.getType() =3D=3D "InkPicture") { var inkobj =3D document.getElementById("INK__" + this.getName()); var ink =3D new CSInk_Obj(inkobj); ink.setBackgroundColor(sv); cs_trace(this.getName() + " setFillColor: " + sv); } if (sv !=3D "" && sv.indexOf("#") =3D=3D -1 && sv !=3D "transparent") = sv =3D "#" + sv;=20 try { if (this.hf[0] && this.hf[0].type && this.hf[0].type =3D=3D "radio") = { for (var idx=3D0; idx < this.hf.length; idx++) { this.hf[idx].style.backgroundColor =3D sv; } } else if (this.getType() =3D=3D "Signature") { // Signature background color used to indicate = state.document.getElementById("SIG__" + = this.getName()).style.backgroundColor; document.getElementById("SIG__" + = this.getName()).style.backgroundColor =3D sv; } else { =20 this.hf.style.backgroundColor =3D sv; =20 // Check for title inside field. var rect =3D document.getElementById(this.getName() + "_rect"); if ( rect ) { rect.style.backgroundColor =3D sv; =20 } =20 =20 // catch combo if ( this.getType() =3D=3D "Combo" ) { cbo =3D document.getElementById("DFS__" + this.getName()); if (cbo) {=20 cbo.style.backgroundColor =3D sv; } } } } catch(e2) {} } CSField_Obj.prototype.isPassword =3D function() { return CSExt.f[this.getName()].fmt.password; } CSField_Obj.prototype.isMultiline =3D function() { return CSExt.f[this.getName()].fmt.multiline; } CSField_Obj.prototype.getMaxLength =3D function() { var ml =3D 0; if (typeof CSExt.f[this.getName()].fmt.fmttxt !=3D "undefined" && typeof CSExt.f[this.getName()].fmt.fmttxt.mxcc !=3D "undefined") ml =3D CSExt.f[this.getName()].fmt.fmttxt.mxcc; if (!ml) return 0; if (ml < 0 || ml >=3D 2147483647) return 0; return ml; } CSField_Obj.prototype.getDefaultDataType =3D function() { var fmt =3D CSExt.f[this.getName()].fmt; if (fmt.fmttxt) return "String"; if (fmt.fmtnmbr) return "Numeric"; if (fmt.fmtdt) return "Date"; if (fmt.fmttm) return "Date"; // this should never happen if (fmt.fmttmpl) return "String"; if (this.getType()=3D=3D"InkPicture") return "Binary"; if (this.getType()=3D=3D"Signature") return "String"; return "Unknown"; } CSField_Obj.prototype.cs_setClass =3D function(cn) { this.hf.className =3D cn; } CSField_Obj.prototype.cs_getPageNumber =3D function() { rc =3D 0; try { var elt =3D null; if (this.getType() =3D=3D "Radio") { elt =3D this.hf[0]; } else { elt =3D this.hf; } while((elt.id =3D=3D null) || (elt.id.indexOf("DFS__pagediv") =3D=3D = -1)) { elt =3D elt.parentNode; } rc =3D parseInt(elt.id.substr("DFS__pagediv".length)); } catch(e) {} return rc; } CSField_Obj.prototype.getContainer =3D function() { var ctnr =3D CSForm; var fmt =3D CSExt.f[this.getName()].fmt; if (fmt.table) { ctnr =3D CSForm.getTable( fmt.table ); } return ctnr; } CSField_Obj.prototype.getRow =3D function() { var row =3D -1; var fmt =3D CSExt.f[this.getName()].fmt; if (typeof fmt.row !=3D "undefined") row =3D fmt.row; return row; } function CSChoices_Obj( htmlchoice ) { this.hc =3D htmlchoice; } CSChoices_Obj.prototype.getObjectType =3D function() { return = "CSChoices"; } CSChoices_Obj.prototype.getCount =3D function() { var count =3D this.hc.options.length; // -1 to account for extra "Other..." choice if Combo. if (document.htmlform["DFS__" + this.hc.name]) { count--; } return count; } CSChoices_Obj.prototype.getAt =3D function( num, bDispVal ) { if (bDispVal) { return this.hc.options[num].text; } else { return this.hc.options[num].value; } } CSChoices_Obj.prototype.cs_getAll =3D function() { var rd =3D {}; for( var idx =3D 0; idx < this.getCount(); idx++ ) { rd[this.hc.options[idx].text] =3D this.hc.options[idx].value; } return rd; } CSChoices_Obj.prototype.insertAt =3D function( num, expVal, dispVal ) { var newopt =3D document.createElement("option"); if (dispVal=3D=3Dnull) newopt.text =3D expVal; else newopt.text =3D = dispVal; newopt.value =3D expVal; if (this.hc.options.add) { //IE -- need to check first since IE = fld.add is broken if (num=3D=3D-1) num =3D this.hc.options.length; this.hc.options.add(newopt, num); return 0; } if (this.hc.add) { // W3C if (num=3D=3D-1) { this.hc.add(newopt, null); } else { this.hc.add(newopt, this.hc.options[num]); } return 0; } return 1; } CSChoices_Obj.prototype.deleteAt =3D function( num ) { if (this.hc.remove) { //W3C this.hc.remove(num); return 0; } if (this.hc.options.remove) { // IE this.hc.remove(num); //IE return 0; } return 1; } CSChoices_Obj.prototype.getSelections =3D function() { var ra =3D new Array(); var ofs =3D 0; for(var idx=3D0; idx 1){ for (var idx=3D0; idx 255) return null; var i =3D byt % 16; var j =3D (byt-i)/16; return hexChars.charAt(j) + hexChars.charAt(i); } /////// CSExt =3D { Initialize: {}, Form_OnLoad_bEP: {}, Form_OnLoad_aEP: {}, UnInitialize: {}, Form_OnSubmit_bEP: {}, Form_OnSubmit_aEP: {}, OnFocus_bEP: {}, OnFocus_aEP: {}, OnChange_bEP: {}, OnChange_aEP: {}, OnBlur_bEP: {}, OnBlur_aEP: {}, OnButtonClick_bEP: {}, OnButtonClick_aEP: {}, OnMouseOver_bEP: {}, OnMouseOver_aEP: {}, OnMouseOut_bEP: {}, OnMouseOut_aEP: {}, OnKeyPress: {}, // only called for CardiffInternalDebug fields OnMouseOver: {}, CheckOnline: {}, focusCounter: {}, preventedDefault: false, flags: { msxml_warn: false, msxml_pending: false, msxml_show_errs: = false, useStringSerializer: true }, ProfileInfo: "", RedirectURL: "", RecalcCount: 0, RecalcEnable: 1, ValidateCount: 0, FormatCount: 0, VisiblePage: 1, trace: { length: 35, current:0, cnt:0, strs: [], clrs: [] } }; CSClient =3D new CSClient_Obj(); CSHTMLClient =3D new CSHTMLClient_Obj(); CSForm =3D new CSForm_Obj(); CSExt.CSClient =3D CSClient; CSExt.CSForm =3D CSForm; // IE has slow low-level access to document.*form.*, so we cache CSExt.getFld =3D function( fname ) { var fld; if (CSExt.f[fname]) fld =3D CSExt.f[fname].fld; if (!fld) { // hidden fields that don't appear in FXF get located here // slow, but rarely happens fld =3D document.htmlform[fname]; } if (!fld) { // Safari seems to only catch SIG buttons in this manner. // Add it to CSExt.f since we have it. fld =3D document.getElementById(fname); if (fld && fld.tagName =3D=3D "button") { cs_fldi(fld); } } cs_assert(fld, "getFld", fname); return fld; } CSExt.getFldVal =3D function( fname ) { var rv =3D ""; var fld =3D CSExt.getFld(fname); if (fld) { rv =3D fld.value; } return rv; } CSExt.setFldVal =3D function( fname, val ) { var fld =3D CSExt.getFld(fname); if (fld) { fld.value =3D val; } } CSExt.fldExists =3D function( fname ) { var rv =3D false; if (CSExt.f[fname]) { rv =3D true; } return rv; } CSExt.allFieldNames =3D function() { var arr=3D []; var idx =3D 0 for (var f in CSExt.f) { arr[idx++] =3D f; } cs_trace("allFieldNames.length=3D" + arr.length); return arr; } function cs_foreach_lock(fld, fmt) { if (fld.readOnly =3D=3D true || fld.disabled || fmt.readOnly) { var fo =3D new CSField_Obj(fld); fo.cs_setLock("CSField.setReadOnly", true); } } function cs_foreach_finalcpy(fld, doFC, doRev) { if (!doFC && !doRev) return; var csfld =3D new CSField_Obj( fld ); var fldname =3D csfld.getName(); if (doFC && fldname.indexOf("DFS__Page") < 0) csfld.cs_setLock( "DFS__FinalCopy", true ); if (doRev && fldname.indexOf("DFS__Page") < 0 && = fldname.indexOf("DFS__GO") < 0 && fldname.indexOf("DFS__ActionList") < = 0) csfld.cs_setLock("DFS__ReviewOnly", true); } function cs_foreach_addcalc(fmt) { CSCalc.fieldChanged(fmt); } function cs_foreach_inithid(fld, fmt) { if (fmt.inithid) { var csfo =3D new CSField_Obj(fld); csfo.setHidden(true); } } function csformload() { CSExt.DFS__DHTML_OnLoad =3D true; CSExt.RecalcEnable =3D 0; cs_profile("csformload begins"); csinit(); // initialize custom properties // final copy and review only CSExt.dispatchEvent( "Initialize", null ); cs_profile("dispatchEvent done"); var proceed =3D true; // Disable action button if there is no value in Action List. if (CSForm.getField( "DFS__ActionList" ) !=3D null) { var actionList =3D CSForm.getField( "DFS__ActionList" = ).getChoices(); if ((actionList.getCount() =3D=3D 1) && (actionList.getAt( 0, false = ).length =3D=3D 0)) { CSForm.getField( "DFS__GO" ).setReadOnly( true ); CSForm.getField( "DFS__ActionList" ).setReadOnly( true ); } } cs_profile("action button done"); // status message var smsg =3D CSExt.getFldVal("DFS__StatusMsg"); if (smsg !=3D "") { alert( smsg ); CSExt.setFldVal("DFS__StatusMsg",""); } cs_profile("status msg done"); proceed =3D CSExt.dispatchEvent( "Form_OnLoad_bEP", document.htmlform = ); cs_profile("dispatchEventB done"); // do big recalc, all fields have already had fieldChanged() called CSCalc.calculateValues( null ); CSCalc.calculateAttributes( null ); CSCalc.clearFieldChanged(); CSExt.RecalcCount =3D 1; CSExt.RecalcEnable =3D 1; cs_profile("initial recalc done"); =20 cs_setInitialFocus(); cs_profile("initial setFocus done"); // call custom entry point CSExt.DFS__DHTML_OnLoad =3D false; if (this.CSForm_OnLoad && proceed) { CSEvent.setTarget( new CSForm_Obj() ); CSForm_OnLoad(); } cs_profile("EntryPoint done"); CSExt.dispatchEvent( "Form_OnLoad_aEP", document.htmlform ); cs_profile("dispatchEventA done"); // //alert( CSExt.ProfileInfo ); // } function csformunload() { CSExt.dispatchEvent( "UnInitialize", null ); } function csformsubmit() { var doSubmit =3D true; // return false to abort submit // onsubmit entry point, call the from csform.onsubmit() doSubmit =3D CSExt.dispatchEvent( "Form_OnSubmit_bEP", = document.htmlform ); // call custom entry point if (this.CSForm_OnSubmit && doSubmit) { CSEvent.setTarget( new CSForm_Obj() ); doSubmit =3D CSForm_OnSubmit(); } if (doSubmit) doSubmit =3D CSExt.dispatchEvent( "Form_OnSubmit_aEP", = document.htmlform ); return doSubmit; } function cs_prepare_for_submit() { // page display document.getElementById( "DFS__container").style.display =3D "block"; document.getElementById( "DFS__container").style.visibility =3D = "hidden"; // field locking for(var fn in CSExt.f) { CSExt.getFld(fn).disabled =3D false; } } function cs_PerformReset() { if (CSExt.getFldVal("DFS__EventID") =3D=3D "") { // no EventID? Do a local reset. document.htmlform.reset(); cs_prepare_after_reset(); } else { // otherwise, let the server to a round-trip reset CSExt.setFldVal("DFS__Action", "RouteResetForm"); var ison =3D CSExt.dispatchEvent("CheckOnline", null); // do not call csformsubmit() here; causes validation if (ison) { cs_prepare_for_submit(); document.htmlform.submit(); } else { alert( CS_OFFLINE_ERR_OFFLINE ); } } } function cs_prepare_after_reset() { // !! TODO !! rewrite this for new sig framework & without = UserFieldList // var hf =3D document.htmlform; // var entries =3D CSExt.UserFieldList; // for (var idx =3D 0; idx < entries.length; idx++) { // var tmpEntry =3D hf[entries[idx]]; // if (tmpEntry !=3D null) { // if(tmpEntry.authWith) { // CS_RefreshSig( hf["DFS__" + entries[idx]], tmpEntry ); // } // if(tmpEntry.oldValue) { // tmpEntry.oldValue =3D tmpEntry.value; // } // CS_FireOnChange(tmpEntry); // } // } } function cs_profile( msg ) { var timestamp =3D (new Date().getTime() - csepoch) / 1000; timestamp +=3D " " + msg + "\n"; if (!CSExt.ProfileInfo) CSExt.ProfileInfo =3D ""; CSExt.ProfileInfo +=3D timestamp; // //alert(timestamp); // } function cs_assert( cond, msg, param ) { if (cond) return; var newl =3D msg; if (param) newl +=3D ":" + param; newl +=3D "\n"; if (!CSExt.AssertInfo) CSExt.AssertInfo =3D ""; CSExt.AssertInfo +=3D newl; // //debugger; // } function cs_trace(str, output, clr) { var color =3D (clr !=3D "") ? clr : "blue"; CSExt.trace.cnt++; CSExt.trace.strs[CSExt.trace.current] =3D str; CSExt.trace.clrs[CSExt.trace.current] =3D clr; CSExt.trace.current++; if (output =3D=3D 1 || document.getElementById('cs_screenDebug')) cs_screenout(str, color); //if (CSExt.trace.current >=3D CSExt.trace.length) // CSExt.trace.current =3D 0; } function cs_console() { var cont =3D confirm( "ValidateCount:" + CSExt.ValidateCount + "\n" + "FormatCount:" + CSExt.FormatCount + "\n" + "RecalcCount:" + CSExt.RecalcCount + "\n" + "Timings:\n" + CSExt.ProfileInfo + "\n" + "[OK] for more"); if (cont) { if (!CSExt.AssertInfo) CSExt.AssertInfo =3D ""; var str =3D "Failed Assertions:\n" + CSExt.AssertInfo + "\n[OK] for = more"; cont =3D confirm(str); } if (cont) { var ln =3D CSExt.trace.length; var str =3D ""; for(var i=3D0; i < ln; i++) { var lookhere =3D i + CSExt.trace.current; if (lookhere >=3D ln) lookhere -=3D ln; str +=3D CSExt.trace.strs[lookhere] + "\n"; } cont =3D confirm("Last " + ln + " trace messages: (ring " + = CSExt.trace.current + ")\n" + str + "\n[OK] for more"); } if (cont) { if (CSExt.XMLin) alert( "Incoming XML:\n" + CSExt.XMLin.xml ); else alert( "Incoming XML:\nnone" ); } } function cs_dump(obj) { var res =3D "{ "; for( var prop in obj ) { res +=3D prop + ":" + obj[prop] + ",\n"; } alert( res + " }"); } function cs_debugger() { var expr =3D "cs_dump(CSExt.f)"; do { expr =3D prompt( "enter expression, or cancel to quit", expr ); if (expr !=3D null) { var res =3D eval(expr); alert("return value:\n" + res); } } while(expr !=3D null); } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS41_Lib_HTML_csevent.js // CS Event Model Layer // // Author: Kevin Horning, Michael Breed // Date: 4/20/2001 // Revised:9/22/2005 // Requires: CS40_Lib_HTML_csdom.js // Copyright (c) 2001-2006 Cardiff, Inc. All rights reserved. /** CSEvent Object * Constructor for CSEvent object. * @param htmltarget - shortcut for setTarget.=20 */=20 function CSEvent_Obj( htmltarget ) { this.ht =3D htmltarget; } CSEvent =3D new CSEvent_Obj(null); CSEvent_Obj.prototype.getObjectType =3D function() { return "CSEvent"; } CSEvent_Obj.prototype.getTarget =3D function() { return this.ht; } CSEvent_Obj.prototype.setTarget =3D function(targ) { this.ht =3D targ; } /** Processes events. * @param evtName - event to be called. * @param param - param or parmas to be used in call. */=20 CSExt.dispatchEvent =3D function( evtName, param ) { CSExt.preventedDefault =3D false; for( var func in CSExt[evtName]) { CSExt[evtName][func](param); } return !CSExt.preventedDefault; } CSExt.preventDefault =3D function() { CSExt.preventedDefault =3D true; } /** Processes client script events. * @param csfo - field initiating call. * @param evt - event to be called. */ CSExt.dispatchUserScript =3D function( csfo, evt ) { var fname =3D csfo.getName(); var baseName =3D cs_getBaseName(fname); var func_ch =3D ""; var tbl =3D csfo.getContainer(); if (tbl.getObjectType()=3D=3D"CSTable") { CSExt.tableflag =3D {table:tbl.tbo.tname, baseName:baseName, = row:csfo.getRow() }; fname =3D baseName; } else { CSExt.tableflag =3D null; } func_ch =3D fname + evt; if (window[func_ch]) { CSEvent.setTarget( csfo ); var event =3D (window.event) ? window.event : ""; window[func_ch]( csfo, event ); } } /** Retrieves the base name of a field from table notation=20 * (e.g. "DTB__Table1_0_Entry1" returns "Entry1"). * @param csfo - field initiating call. * @param evt - event to be called. * @returns String - base field name. */ function cs_getBaseName( fullname ) { var name =3D null; var fmt =3D CSExt.f[fullname].fmt; if (fmt.baseName) { name =3D fmt.baseName; } return name; } /** Utility function to get assigned events.=20 * @param csfo - field initiating call. * @param evt - event to be called. * @returns String array - list of events. */ function cs_getEvents( fld ) { if (!fld) return; var evts =3D new Array(); for (p in fld) { if (p.substr( 0, 2 ) =3D=3D "on" && fld[p] !=3D null) { evts.push( p ); } } return evts; } /* Events. Alphabetic by event name (not function name) = --------------------------------------------------- */ function csblur( evt, explicitfld ) { var fld; if (explicitfld) { // override if csblur called explicitly (i.e. from = combo) fld =3D explicitfld; } else { fld =3D this; } cs_assert( fld, "csblur fld"); var csfo =3D new CSField_Obj(fld); // field-specific onblur entry point, call from each field's onblur() var proceed_bl =3D true; proceed_bl =3D CSExt.dispatchEvent( "OnBlur_bEP", fld ); // onchange is evil, for consistent behavior we roll our own if (proceed_bl) { // OnChange is not necessary for buttons, radios, signatures, and = checkboxes on blur. // The OnButtonClick event takes care of changes to those fields. if (csfo.getType() !=3D "Signature" && csfo.getType() !=3D "Button" && csfo.getType() !=3D "Radio" && csfo.getType() !=3D "Check" ) { CS_FireOnChange( fld ); } } if (proceed_bl) { CSExt.dispatchUserScript( csfo, "_OnBlur" ); CSExt.dispatchUserScript( csfo, "_HTMLOnBlur" ); } CSExt.dispatchEvent( "OnBlur_aEP", fld ); } // Our own change method to trigger calculations. // Triggered onblur. function CS_FireOnChange( fld ) { var proceed_ch =3D true; var csfo =3D new CSField_Obj(fld); if (csfo.getValue()!=3Dfld.cmpvalue) { fld.cmpvalue =3D csfo.getValue(); proceed_ch =3D CSExt.dispatchEvent( "OnChange_bEP", fld ); cs_CalculationAction( fld ); proceed_ch =3D (proceed_ch && !CSExt.DFS__DHTML_OnLoad); // onload, skip the fldname_OnChange call, but still call bEp and = aEP if (proceed_ch) { // OnChange only because HTMLOnChange fires with onchange CSExt.dispatchUserScript( csfo, "_OnChange" ); } CSExt.dispatchEvent( "OnChange_aEP", fld ); } } // Generic change method, from typical browser change event. // Triggered onchange. =20 function cschange( evt ) { var fld =3D this; // the one thing we need real onchange for.. if (fld.name && CSExt.f[fld.name].fmt.listboxType =3D=3D "combo") { if (cs_beginComboEdit) cs_beginComboEdit( fld ); } var csfo =3D new CSField_Obj(fld); if (!csfo) return; // HTMLOnChange only because onchange fires with CS_FireOnChange. CSExt.dispatchUserScript( csfo, "_HTMLOnChange" ); } function csclick( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); cs_assert( fld, "csclick fld"); // do-this-when-clicked is the activ property if (fld.name) { var fmt =3D CSExt.f[fld.name].fmt; if (fmt.activ) { eval(fmt.activ); } } // field-specific, call from each button's event handler var proceed =3D true; // The OnButtonClick entry point functions should only be called for = fields that handle // click events in the LO model, namely buttons, signatures, radios, = and checkboxes. if (csfo.getType() =3D=3D "Button" || csfo.getType() =3D=3D = "Signature" || csfo.getType() =3D=3D "Radio" || csfo.getType() =3D=3D = "Check") { proceed =3D CSExt.dispatchEvent( "OnButtonClick_bEP", fld ); } if (proceed) { CSExt.dispatchUserScript( csfo, "_OnButtonClick" ); CSExt.dispatchUserScript( csfo, "_HTMLOnClick" ); } // The OnButtonClick entry point functions should only be called for = fields that handle // click events in the LO model, namely buttons, signatures, radios, = and checkboxes. if (csfo.getType() =3D=3D "Button" || csfo.getType() =3D=3D = "Signature" || csfo.getType() =3D=3D "Radio" || csfo.getType() =3D=3D = "Check") { CSExt.dispatchEvent( "OnButtonClick_aEP", fld ); } } function csdblclick( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csdblclick fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnDblClick" ); } function csfocus( evt ) { var fld =3D this; cs_assert( fld, "csfocus fld"); =20 // HEAT #140626, #140781 // Safari and Firefox handle onFocus events differently then IE // To ensure no infinite loops, only one instance of the event handler // is allowed to run if (++CSExt.focusCounter[fld.name] > 1) { --CSExt.focusCounter[fld.name]; return; } // Clean up. --CSExt.focusCounter[fld.name]; =20 // field-specific onfocus entry point, call from each field's = onfocus() var csfo =3D new CSField_Obj(fld); =20 // HEAT #140851 // Fixeds the problem of non-text fields which are not visible in = viewport=20 // not being scrolled to when the receive focus. if(csfo.getType() !=3D "Text") { var fld =3D csfo.hf; if (csfo.getType() =3D=3D "Radio") { fld =3D csfo.hf[0]; } var pg =3D csfo.cs_getPageNumber(); var elemIsAt =3D fld.offsetTop + fld.offsetHeight + = document.getElementById("DFS__pagediv" + pg).offsetTop; var bottomOfViewable =3D document.documentElement.offsetHeight + = document.documentElement.scrollTop; if (elemIsAt >=3D bottomOfViewable ) { scroll( 0, elemIsAt ); =20 } } =20 fld.cmpvalue =3D csfo.getValue(); // save for later var proceed =3D true; proceed =3D CSExt.dispatchEvent( "OnFocus_bEP", fld ); if (proceed) { CSExt.dispatchUserScript( csfo, "_OnFocus" ); CSExt.dispatchUserScript( csfo, "_HTMLOnFocus" ); } CSExt.dispatchEvent( "OnFocus_aEP", fld ); } function cskeydown( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "cskeydown fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnKeyDown" ); } function cskeypress( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 CSExt.dispatchUserScript( csfo, "_HTMLOnKeyPress" ); // entry-field-specific, call from each entry field's onkeypress() if (CSExt.KeystrokeFilter) return CSExt.KeystrokeFilter( fld, evt, = window.event ); =20 return true; } function cskeyup( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "cskeyup fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnKeyUp" ); } function csmousedown( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csmousedown fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnMouseDown" ); } function csmousemove( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csmousemove fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnMouseMove" ); } function csmouseout( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csmouseout fld"); var proceed =3D true; proceed =3D CSExt.dispatchEvent( "OnMouseOut_bEP", fld ); if (proceed) { CSExt.dispatchUserScript( csfo, "_HTMLOnMouseOut" ); } CSExt.dispatchEvent( "OnMouseOut_aEP", fld ); } function csmouseover( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csmouseover fld"); var proceed =3D true; proceed =3D CSExt.dispatchEvent( "OnMouseOver_bEP", fld ); if (proceed) { CSExt.dispatchUserScript( csfo, "_HTMLOnMouseOver" ); } CSExt.dispatchEvent( "OnMouseOver_aEP", fld ); } function csmouseup( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; =20 cs_assert( fld, "csmouseup fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnMouseUp" ); } function csselect( evt ) { var fld =3D this; var csfo =3D new CSField_Obj(fld); if (!csfo) return; cs_assert( fld, "csselect fld"); CSExt.dispatchUserScript( csfo, "_HTMLOnSelect" ); } // ********* End events ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS49_Lib_HTML_features.js // Extra features for HTML forms (pages, combo boxes, etc.)=20 // // Author: Kevin Horning, Micah Dubinko, Stephane Chauvin // Date: 3/29/2001 // Requires: CS4_Library_HTML_csdom.js // Copyright 2001-2006 Cardiff Software, Inc. All rights reserved. // switch between 'paged' and 'continuous' view function cs_setView( view ) { var mode =3D (typeof view =3D=3D "string") ? view.toLowerCase() : ""; var kModeC =3D CS_CONTINUOUS_MODE.toLowerCase(); var kModeP =3D CS_PAGED_MODE.toLowerCase(); if (mode =3D=3D kModeP) { document.getElementById("DFS__toolbarBot").style.display =3D = "block"; document.getElementById( "DFS__ctrlSetView" ).selectedIndex =3D 0; cs_ShowPage(CSExt.VisiblePage); } if (mode =3D=3D kModeC) { for (var i =3D 1; i <=3D CSExt.countPage; i++) { var page =3D document.getElementById( "DFS__pagediv" + i); page.style.display =3D "block"; page.style.visibility =3D "visible"; page.style.marginBottom =3D "0.1in"; } document.getElementById( "DFS__toolbarBot" ).style.display =3D = "none"; document.getElementById( "DFS__ctrlSetView" ).selectedIndex =3D 1; cs_ShowPage(CSExt.VisiblePage); } } /** Select the page by index and display it. */ function cs_ShowPage( index ) { if ( (index<=3D0) || (index > CSExt.countPage) || isNaN(index) ) return; var scrollTo =3D 0; if(document.getElementById( "DFS__ctrlSetView" ).value =3D=3D = CS_PAGED_MODE) { // paged view for (var i =3D 1; i <=3D CSExt.countPage; i++) { document.getElementById( "DFS__pagediv" + i ).style.display =3D = "none"; } document.getElementById( "DFS__pagediv" + index ).style.display =3D = "block"; document.getElementById( "DFS__ctrlSetView" ).selectedIndex =3D 0; } else { // continuous view var pagediv =3D document.getElementById('DFS__pagediv' + index); scrollTo =3D (index =3D=3D 1) ? 0 : pagediv.offsetTop; } scroll( 0, scrollTo ); // set nav flippers document.getElementById( "DFS__ctrlPgFlipBot" ).selectedIndex =3D = index - 1; document.getElementById( "DFS__ctrlPgFlipTop" ).selectedIndex =3D = index - 1; // set nav buttons appropriately if (index =3D=3D 1) { document.getElementById( "DFS__ctrlPgDnTop" ).disabled =3D = "disabled"; document.getElementById( "DFS__ctrlPgDnBot" ).disabled =3D = "disabled"; } else { document.getElementById( "DFS__ctrlPgDnTop" ).disabled =3D ""; document.getElementById( "DFS__ctrlPgDnBot" ).disabled =3D ""; } if (index =3D=3D CSExt.countPage) { document.getElementById( "DFS__ctrlPgUpTop" ).disabled =3D = "disabled"; document.getElementById( "DFS__ctrlPgUpBot" ).disabled =3D = "disabled"; } else { document.getElementById( "DFS__ctrlPgUpTop" ).disabled =3D ""; document.getElementById( "DFS__ctrlPgUpBot" ).disabled =3D ""; } CSExt.VisiblePage =3D parseInt(index); cs_moveToolbarBot(document); if (typeof CSExt.f !=3D "undefined" && CSExt.f !=3D null) // Not = ready onload. cs_setInitialFocus(); } function cs_PgUp() { cs_ShowPage( CSExt.VisiblePage + 1 ); } function cs_PgDn() { cs_ShowPage( CSExt.VisiblePage - 1 ); } function cs_ZoomPage( percent, doc ) { if (!doc) doc =3D document; var units =3D CSExt.physSize.units; doc.body.style.fontSize =3D CSExt.physSize.baseFontSize * percent / = 100 + units; for( var idx=3D1; idx <=3D CSExt.countPage; idx++) { var baseW =3D CSExt.physSize.pages[idx].w; var baseH =3D CSExt.physSize.pages[idx].h; var pgdiv =3D doc.getElementById( "DFS__pagediv" + idx ); pgdiv.style.width =3D (baseW * percent / 100) + units; pgdiv.style.height =3D (baseH * percent / 100) + units; var shimdiv =3D doc.getElementById( "DFS__shimdiv" + idx ); var shimsiz =3D percent / 100; shimdiv.style.width =3D "" + shimsiz + "in"; shimdiv.style.height=3D "" + shimsiz + "in"; } // tweak: prevent IE6 hiding certain fields when width and height is = in %. if (VTwk.buttonHiding) { VTwk.fixHidingButtons( percent ) } // tweak: IE6 doesn't render textarea elements accurately. if (VTwk.textareaSizing) { VTwk.resizeTextareas() } // adjust zoom control doc.getElementById("DFS__ctrlZoom").value =3D percent; cs_moveToolbarBot( doc, percent ); } function cs_moveToolbarBot( doc, percent ) { var baseH =3D CSExt.physSize.pages[CSExt.VisiblePage].h; if (!percent) percent =3D doc.getElementById("DFS__ctrlZoom").value; var units =3D CSExt.physSize.units; doc.getElementById("DFS__toolbarBot").style.top =3D ((baseH * percent = / 100) + 0.3) + units; } // temporarily turn a list into an entry field // only call if fld really is a combo function cs_beginComboEdit( fld ) { if (fld.name && CSExt.f[fld.name].fmt.listboxType =3D=3D "combo") { var entry =3D document.getElementById( "entry" + fld.name ); if (fld.options[fld.selectedIndex].value =3D=3D "DFS__OtherInCombo") = { fld.style.visibility =3D "hidden"; entry.style.visibility =3D "visible"; entry.onblur =3D csblur; entry.orig =3D fld; entry.value =3D ""; entry.focus(); entry.select(); } } } CSExt.OnBlur_bEP.Combo =3D function( fld ) { if (fld.name) { var fmt =3D CSExt.f[fld.name].fmt; if (fmt.listboxType && fld.value =3D=3D "DFS__OtherInCombo") { // block onblur notification (which in turn causes onchange) //when simply switching to editable combo view CSExt.preventDefault(); } if (fld.orig) { cs_endComboEdit( fld.orig, fld ); } } } /** Add the value of the entry field in the drop list (to do a combo = list). * @param comboName The ID of the combo (drop list). */ function cs_endComboEdit( droplist, entry ) { if ( entry.value !=3D "" ) { // ensure that "Other..." remains as the last item var chobj =3D new CSChoices_Obj( droplist ); chobj.insertAt(chobj.getCount(), entry.value, entry.value); droplist.selectedIndex =3D chobj.getCount() - 1; // Seek new value for Netscape if (chobj.getAt(droplist.selectedIndex, false) !=3D entry.value) { chobj.setSelections( [chobj.getCount()] ); } } else { droplist.selectedIndex =3D 0; } entry.style.visibility =3D "hidden"; droplist.style.visibility =3D "visible"; csblur(null, droplist); // special 2nd param, since calling explicit = has wrong 'this' value } /** Set the multilingual for the combo. * @param entity The list name. * @param value The value to add. */ function cs_SyncCombo( entity ) { var value =3D ""; var f1 =3D CSForm.getField("DFS__" + entity); var f2 =3D CSForm.getField( entity ); if (!f2) return; value =3D f2.getValue(); var combo =3D f2.getChoices(); var index =3D -1; // Empty list. if (combo.getCount() =3D=3D 0) { if (value.length > 0) { combo.insertAt(0, value, value); } else { combo.insertAt(0, "", CS_CHOOSE_COMBO_STR); } combo.insertAt(1, "DFS__OtherInCombo", CS_OTHER_COMBO_STR); index =3D 0; } else { // List not empty. // Seek selected. var found =3D false; for(var i=3D 0; (i < combo.getCount()) && (!found); i++) { if(combo.getAt(i, false) =3D=3D value){ index =3D i; found =3D true; } } // Add value. if ((value.length > 0) && (!found)) { combo.insertAt(0, value, value); index =3D 0; } // Make sure [Other] is not already part of the list. var hasOther =3D false; for (var j=3D0; j < combo.hc.options.length; j++) { if (combo.hc.options[j].innerHTML =3D=3D CS_OTHER_COMBO_STR) { hasOther =3D true; } } if (!hasOther) { combo.insertAt(combo.getCount() + 1, "DFS__OtherInCombo", = CS_OTHER_COMBO_STR); } } if (index >=3D 0) { combo.setSelections( [index] ); } } function CS_HTML_SetValue_Callback( field_name, value, subValues, = internal_value, param) { var targetField =3D CSForm.getField( field_name ); // //alert ( "setting value of " + field_name + " to " + value + = "\ninternal value is " + internal_value ); // targetField.setValue( value ); var f =3D CSCalc.fldLookupClbk( field_name ); CSFmt.setIntVal( f, internal_value ); if (f !=3D null) { f.dval =3D value; f.dvalex =3D subValues; } } function CS_HTML_LookupFO_Callback( fieldname ) { // //alert ( "peeking at FO for " + fieldname + "," + CSExt.f[fieldname] = ); // return CSExt.f[fieldname].fmt; } function CS_HTML_SetProp_Callback( fieldname, propname, propvalue ) { var csfld =3D CSForm.getField( fieldname ); if (csfld) { // //alert( fieldname + " setting " + propname + " to " + propvalue ); // if (propname =3D=3D "required") { csfld.setRequired( propvalue ); } if (propname =3D=3D "readonly") { csfld.setReadOnly( propvalue ); } if (propname =3D=3D "fgcolor") { csfld.setTextColor( propvalue ); } if (propname =3D=3D "bgcolor") { csfld.setFillColor( propvalue ); } if (propname =3D=3D "hidden" ) { csfld.setHidden( propvalue ); } } } function CS_HTML_GetProp_Callback( fieldname, propname ) { var csfld =3D CSForm.getField( fieldname ); var rc =3D null; if (csfld) { if (propname =3D=3D "type") { rc =3D csfld.getType(); } if (propname =3D=3D "value") { rc =3D csfld.getValue(); } } return rc; } /* New implementation, for the new calc engine */ function cs_CalculationStructure() { CSCnv.setFieldLookupCallback( CS_HTML_LookupFO_Callback ); CSCnv.setSetFieldAttributeCallback( CS_HTML_SetProp_Callback ); CSCnv.setGetFieldAttributeCallback( CS_HTML_GetProp_Callback ); CSCalc.setFieldLookupCallback( CS_HTML_LookupFO_Callback ); CSCalc.setSetValueCallback( CS_HTML_SetValue_Callback ); var opnames =3D { sum: "SUM", dif: "DIF", product: "PRD", div: "DIV", = min: "MIN", max: "MAX", avg: "AVG", nonempty: "NON"}; var targs =3D CSExt.Calculations; cs_addcalcs(); } /** Execute all calculation involved with this field. * @param textField The text entry field. */ /* New implementation, for the new calc engine */ function cs_CalculationAction( fld ) { if (CSExt.RecalcEnable =3D=3D 1) { if (!CSExt.inCalculationAction || CSExt.inCalculationAction =3D=3D = false) { CSExt.RecalcCount++; CSExt.inCalculationAction =3D true; CSCalc.fieldChanged( fld.name ); //alert( "CSCalc.fieldChanged( " + fld.name + " )" ); CSCalc.calculateValues( null ); CSCalc.calculateAttributes( null ); CSCalc.clearFieldChanged(); CSExt.inCalculationAction =3D false; } } } /** Send request to server to manage attachments. * @param sURL The URL to the server. */ function cs_ManageAttachments( sURL ) { var fAction =3D CSExt.getFld("DFS__Action"); var fURL =3D CSExt.getFld("DFS__SubmitURL"); var useURL =3D sURL; // Get dynamic submission URL if any. (Remove typeof latter when = designer/server builds match) if (fURL !=3D null && fURL.value !=3D null && fURL.value.length !=3D = 0) { useURL =3D fURL.value; } if (fAction =3D=3D null || useURL =3D=3D "") { alert( CS_ERR_NOTPUBLISHED ); return; } fAction.value =3D "RoutePrepareAttachments"; // field locking (now done via XMLHTTP instead) //cs_prepare_for_submit(); //document.htmlform.submit(); var urlstr =3D CSExt.getFldVal("DFS__SubmitURL"); var rc =3D cs_ajax_submit(urlstr, ""); if (rc=3D=3D0) { var redirect =3D CSExt.RedirectURL; if (redirect && redirect.length > 0) { location.replace(redirect); } } else if (rc=3D=3D1) { // offline alert( CS_OFFLINE_ERR_OFFLINE ); } } CSExt.OnButtonClick_bEP.Sigs =3D function( btn ) { var sigReallyChanged =3D false; var storf =3D null; if (btn.name.substr(0,5) =3D=3D "SIG__") { storf =3D CSExt.getFld( btn.name.substr(5) ); // chop "XXX__" } else { // fall-through case for radio/check if (btn.type =3D=3D "radio" || btn.type =3D=3D "checkbox") { // Only radios and checkboxes need to check calculations onclick, = since a // click indicates a change. All other fields should do nothing. cs_CalculationAction(btn); } return; // not a sig, get out of here } fmt =3D null; if (CSExt.f[storf.name] && CSExt.f[storf.name].fmt) { fmt =3D CSExt.f[storf.name].fmt; } if ( storf && (storf !=3D null) && !storf.readOnly && fmt !=3D null && = (fmt.authWith=3D=3D"clickthrough" || fmt.authWith=3D=3D"password")) { var username =3D CS_DIGITAL_APPROVE_USER; if (CSExt.getFldVal("LF__User") !=3D "") username =3D CSExt.getFldVal("LF__User"); var dname =3D CS_DIGITAL_APPROVE_USER; if (CSExt.getFldVal("DFS__DisplayName") !=3D "") dname =3D CSExt.getFldVal("DFS__DisplayName"); var todaydate =3D new Date().toLocaleString(); // Localization HEAT = #136502 var formname =3D CSExt.ftitle; var dispStr =3D CS_FormatMessage( = CS_DIGITAL_APPROVE_CLICK,dname,todaydate,fmt.affirmation,fmt.role,formnam= e,storf.name,fmt.desc ); if ( fmt.authWith =3D=3D "clickthrough" ) { // handle ct =20 if ( storf.value =3D=3D "" ) { // Perform signature level validation on all covered fields = (HEAT #139034) var isValid =3D true; var affected =3D CS_getAffectedFields( storf.name ); if (affected.length > 0) { isValid =3D CSExt.validateList( affected, "onsign" ); } =20 if (isValid) { if (confirm(dispStr)) { CS_SetSig( btn, storf, username, dname, todaydate ); sigReallyChanged =3D true; } } } else { // already signed if (CS_HasClearPermission( storf, username, fmt )) { if (confirm( CS_DIGITAL_APPROVE_CLEAR_MSG )) { CS_ClearSig( btn, storf ); sigReallyChanged =3D true; } } } =20 } else if (fmt.authWith =3D=3D "password" ) { // handle pw // alert if not published var fAction =3D CSExt.getFld("DFS__Action"); var fURL =3D CSExt.getFld("DFS__SubmitURL"); if (fAction =3D=3D null || fURL =3D=3D "") { alert( CS_ERR_NOTPUBLISHED ); return; } // we don't set sigReallyChanged here, since we're *immediately* = submitting, and no further recalc is needed/desired if ( storf.value =3D=3D "") { if (confirm( CS_DIGITAL_APPROVE_SUBMIT )) { // fire onchange user script btn.onchange(); =20 // do the submit var oldRequired =3D fmt.required; fmt.required =3D false; CSExt.setFldVal("DFS__Action", "SignatureDoSubmit"); CSExt.setFldVal("DFS__Field", storf.name); var isValid =3D csformsubmit(); if (isValid) isValid =3D cs_OnSubmitLookup(); if (isValid) { cs_prepare_for_submit(); var redirect =3D CSExt.RedirectURL; if (redirect && redirect.length > 0) { location.replace(redirect); } else { document.htmlform.submit(); } } fmt.required =3D oldRequired; } } else { // here we either clear (if permissions allow) or verify if (fmt.clearPolicy =3D=3D "verify") { //verify CS_SigVerify( btn, storf, fmt ); } else { // clear if (CS_HasClearPermission( storf, username, fmt )) { if (confirm( CS_DIGITAL_APPROVE_CLEAR_MSG )) { CS_ClearSig( btn, storf ); sigReallyChanged =3D true; } } } } } } if (sigReallyChanged) { cs_CalculationAction(storf); =20 // fire onchange user script btn.onchange(); } else {=20 cs_CalculationAction(btn); // fall-through case for radio/check, = harmless for signatures } } function CS_SigVerify( btn, storf, fmt ) { var isvalid =3D true; // Send SignatureDoVerify if (CSExt.fldExists("DFS__SubmitURL")) { var urlstr =3D CSExt.getFldVal("DFS__SubmitURL"); // do the lookup CSExt.setFldVal("DFS__Action", "SignatureDoVerify"); CSExt.setFldVal("DFS__Field", storf.name); var rc =3D cs_ajax_submit( urlstr, "" ); if (rc=3D=3D0) { // status message if (CSExt.getFldVal("DFS__StatusMsg") !=3D "") { //alert( CSExt.getFldVal("DFS__StatusMsg") ); CSExt.setFldVal("DFS__StatusMsg", ""); isvalid =3D false; } // set focus //if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { // CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); //} } else if (rc=3D=3D1) { // offline alert( CS_OFFLINE_ERR_OFFLINE ); return; } } else { alert( CS_ERR_NOTPUBLISHED ); return; } var dorollback =3D false; if (isvalid) { // If verified, change to good icon alert( CS_SIG_VERIFY_OK ); CS_SetSigIcon( btn, "valid" ); return; } else { // ask about rolling back dorollback =3D confirm( CS_SIG_VERIFY_FAILED ); } if (!dorollback) { // not rolled back--invalid icon CS_SetSigIcon( btn, "invalid" ); } else { // roll back, put back original data, show good icon CSExt.setFldVal("DFS__Action", "SignatureDoRollback"); CSExt.setFldVal("DFS__Field", storf.name); var rc =3D cs_ajax_submit( urlstr, "" ); if (rc=3D=3D0) { CS_SetSigIcon( btn, "valid" ); } // //alert( "rollback returned " + rc ); // } } function CS_SetSig( btn, storf, uname, dname, date ) { var saveVal =3D uname + "\t" + dname + "\t" + date; storf.value =3D saveVal; CS_RefreshSig( btn, storf ); } function CS_SetSigIcon( btn, iname ) { if (!btn) return; if (!iname) return; var sigdiv =3D btn.firstChild; if (typeof sigdiv.firstChild.tagName =3D=3D "undefined" || = sigdiv.firstChild.tagName !=3D "IMG") { var imgtag =3D ''; sigdiv.innerHTML =3D imgtag + sigdiv.innerHTML; // Force Safari to repaint button or button text is obscured. if (CSUtil.isSafari) { var origH =3D btn.style.height; btn.style.height =3D btn.style.offsetHeight; // to px } } else { sigdiv.firstChild.src =3D eval("CSExt." + iname + "Img"); } } function CS_ClearSig( btn, storf ) { storf.value =3D ""; CS_RefreshSig( btn, storf ); } function CS_HasClearPermission( storf, uname, fmt ) { var permission =3D false; var parseArr =3D storf.value.split("\t"); if (fmt.clearPolicy =3D=3D "all") permission =3D true; if (fmt.clearPolicy =3D=3D "signer" && uname=3D=3DparseArr[0]) permission =3D true; return permission; } function CS_RefreshSig( btn, storf ) { // on initialize (init=3Dtrue), don't unlock anything if (!btn) return; if (!storf) return; var locking =3D (storf.value !=3D ""); if (locking) { // set locked formatting if (btn.DFS__storecolor) btn.style.backgroundColor =3D btn.DFS__storecolor; var parseArr =3D storf.value.split("\t"); var fontstr =3D '\"Monotype Corsiva\"'; btn.innerHTML =3D "
"+ parseArr[1] + "
" + parseArr[2] + "
"; } else { // set unlocked formatting btn.innerHTML =3D "
" + storf.lo.desc + "
"; btn.DFS__storecolor =3D btn.style.backgroundColor; if (btn.style.backgroundColor !=3D "transparent") { btn.style.backgroundColor =3D "#C0C0C0"; =20 } =20 } if (CSExt.lock && CSExt.lock[storf.name] ) { var affected =3D CS_getAffectedFields( storf.name ); for( var idx=3D0; idx < affected.length; idx++) { //if (!affected[idx].getName()) alert( affected[idx] ); affected[idx].cs_setLock( storf.name, locking ); // private method = on CSField } } } function CS_getAffectedFields( storfname ) { // return an array CSFields affected by a given signature var formobj =3D new CSForm_Obj(); var numfields =3D formobj.getNumberOfFields(); var flds =3D new Array(); var ofs =3D 0; if (CSExt.lock[storfname].all) { // set lock for all fields for( var idx=3D0; idx < CSExt.UserFieldList.length; idx++) { var csfld =3D new CSField_Obj( = CSExt.getFld(CSExt.UserFieldList[idx]) ); flds[ofs++] =3D csfld; } } else if (CSExt.lock[storfname].these) { // listed fields only for( idx=3D0; idx < numfields; idx++ ) { var numberedfld =3D formobj.getField( idx ); var name =3D numberedfld.getName(); var ok =3D false; for ( var jdx =3D 0; jdx < CSExt.lock[storfname].these.length; = jdx++ ) { if ( CSExt.lock[storfname].these[jdx] =3D=3D name || "SIG__" + = CSExt.lock[storfname].these[jdx] =3D=3D name) ok =3D true; } if (ok) flds[ofs++] =3D numberedfld; } } else if (CSExt.lock[storfname].except) { // everything except listed fields for( idx=3D0; idx < numfields; idx++ ) { var numberedfld =3D formobj.getField( idx ); var name =3D numberedfld.getName(); var excepted =3D false; for ( var jdx =3D 0; jdx < CSExt.lock[storfname].except.length; = jdx++ ) { if ( CSExt.lock[storfname].except[jdx] =3D=3D name || "SIG__" + = CSExt.lock[storfname].except[jdx] =3D=3D name) excepted =3D true; } if (!excepted) flds[ofs++] =3D numberedfld; } } return flds; } function cs_foreach_sig( fld, fname ) { if (fld !=3D null) { var fmt =3D CSExt.f[fld.name].fmt; if (fmt.authWith) { CS_RefreshSig( CSExt.getFld("SIG__" + fname), fld ); } } } CSExt.Form_OnLoad_bEP.Format =3D function( f ) { var formobj =3D new CSForm_Obj(); var entries =3D CSExt.UserFieldList; for (var idx =3D 0; idx < entries.length; idx++) { var fname =3D entries[idx]; var fld =3D CSExt.getFld(fname); // optimization: loop sharing cs_foreach_sig( fld, fname ); //fld.cmpvalue +=3D "init"; // force onchange to happen CS_FireOnChange( fld ); } // set focus if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { //CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); CSForm.setFocus( fname ); } // Ink control is slow to initialize so give it time. if (VTwk.inkSupported) { =20 window.setTimeout('CSInk.initializeInk()', 3000); CSInk.showInkLoading(true); } else { CSInk.initializeInk(); } =20 =20 =20 cs_profile("bEP.Format done"); } /** Perform the action selected in the action list. */ function cs_PerformActionList() { var dfsAction =3D = document.htmlform.DFS__ActionList.options[document.htmlform.DFS__ActionLi= st.selectedIndex].value; CSExt.setFldVal("DFS__Action", dfsAction); var doSubmit =3D true; // Reset. (note that with workflow plug-ins, the Action string can = be like "RouteResetForm:Label=3DWFReset") var delimLoc =3D dfsAction.indexOf("\t"); var searchStr =3D dfsAction; if (delimLoc !=3D -1) searchStr =3D dfsAction.substring(0, delimLoc); if (searchStr.indexOf("Reset") !=3D -1) { cs_PerformReset(); doSubmit =3D false; } // Validation if (dfsAction.length =3D=3D 0) { doSubmit =3D false; } else if ((searchStr.indexOf("Reset") < 0) && = (searchStr.indexOf("Save") < 0) && (searchStr.indexOf("Reject") < 0) && = (searchStr.indexOf("Transfer") < 0)) { doSubmit =3D csformsubmit(); } // Lookup validation if (doSubmit) doSubmit =3D cs_OnSubmitLookup(); // Submit if (doSubmit) { cs_prepare_for_submit(); var redirect =3D CSExt.RedirectURL; if (redirect && redirect.length > 0) { location.replace(redirect); } else { document.htmlform.submit(); } } } /** * Wrapper for dynamic xfdf submit, with corrections for browsers * * @param sURL URL to use for submission * @param sMsg Message to display to user upon submission * @return -1 on failure, 0 on success, +1 on offline */ function cs_ajax_submit( sURL, sMsg ) { var rc =3D cs_submit_xfdf_load_xfdf( sURL, sMsg ); =20 // Heat 140935: // Heat 140594: Fix safari sending escaped url. Server returns it // escaped so it was getting double escaped and rendered invalid. if ( CSUtil.isSafari && CSExt.RedirectURL ) { CSExt.RedirectURL =3D CSExt.RedirectURL.replace(/&/g, "&"); =20 } =20 return rc; } // in DHTML, check whether the XMLHTTP control is present // (in InfoPath, assumed to be present) CSExt.Form_OnLoad_bEP.Lookup =3D function() { var ct =3D 0; try { if (!window.ActiveXObject) return; for( var ref1 in CSExt.Lookups) ++ct; for( var ref2 in CSExt.Validations) ++ct; if (ct =3D=3D 0) return; } catch(el) { return; } var xobj; try { new ActiveXObject( "Msxml2.XMLHTTP" ); } catch(e1) { try { xobj =3D new ActiveXObject( "Msxml2.XMLHTTP" ); } catch(e2) { CSExt.flags.msxml_warn =3D true; alert( CS_MSXML_WARN ); } } } CSExt.OnChange_aEP.Lookup =3D function( f ) { if (f.value =3D=3D "" || CSExt.DFS__DHTML_OnLoad) { return; } if (!CSExt.fldExists("DFS__SubmitURL")) { if (CSExt.Lookups[f.name] || CSExt.Validations[f.name]) { alert( CS_ERR_NOTPUBLISHED ); } return; } var urlstr =3D CSExt.getFldVal("DFS__SubmitURL"); // Lookup if ((CSExt.Lookups[f.name] !=3D null) && (CSExt.Lookups[f.name].action !=3D null) && (CSExt.Lookups[f.name].action =3D=3D "tabout") && (CSExt.DFS__DHTML_OnLoad =3D=3D false)) { CSExt.setFldVal("DFS__Action", "DBCommandsOnTabOut"); CSExt.setFldVal("DFS__Field", f.name); if (cs_ajax_submit( urlstr, CSExt.Lookups[f.name].sending )=3D=3D0) = { // status message if (CSExt.getFldVal("DFS__StatusMsg") !=3D "") { alert( CSExt.getFldVal("DFS__StatusMsg") ); CSExt.setFldVal("DFS__StatusMsg", ""); } // set focus if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { //CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); // Hack is unknown; Let browser taborder work. } } } else // Validation if ((CSExt.Validations[f.name] !=3D null) && (CSExt.Validations[f.name].onTabOut !=3D null) && (CSExt.Validations[f.name].onTabOut =3D=3D true) && (CSExt.DFS__DHTML_OnLoad =3D=3D false)) { CSExt.setFldVal("DFS__Action","DBCommandsOnTabOut"); CSExt.setFldVal("DFS__Field", f.name); if (cs_ajax_submit( urlstr, "" )=3D=3D0) { // status message if (CSExt.getFldVal("DFS__StatusMsg") !=3D "") { alert( CSExt.getFldVal("DFS__StatusMsg") ); CSExt.setFldVal("DFS__StatusMsg", ""); } // set focus if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { // Hack is unknown; Let browser taborder work. } } } } CSExt.OnButtonClick_aEP.Lookup =3D function( f ) { if (CSExt.Lookups && CSExt.Lookups[f.name] && CSExt.Lookups[f.name].action && CSExt.Lookups[f.name].action =3D=3D "click") { if (CSExt.fldExists("DFS__SubmitURL")) { var urlstr =3D CSExt.getFldVal("DFS__SubmitURL"); // do the lookup CSExt.setFldVal("DFS__Action", "DBCommandsOnButton"); CSExt.setFldVal("DFS__Field", f.name); var rc =3D cs_ajax_submit( urlstr, CSExt.Lookups[f.name].sending = ); if (rc=3D=3D0) { // status message if (CSExt.getFldVal("DFS__StatusMsg") !=3D "") { alert( CSExt.getFldVal("DFS__StatusMsg") ); CSExt.setFldVal("DFS__StatusMsg", ""); } // set focus if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { //CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); CSForm.setFocus( f.name ); } } else if (rc=3D=3D1) { // offline alert( CS_OFFLINE_ERR_OFFLINE ); } } else { alert( CS_ERR_NOTPUBLISHED ); } } } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS50_Lib_HTML_ink.js // = *************************************************************************= *=0A= // HTML Ink Picture Class =0A= //=0A= // Author: Kevin Horning=0A= // Date: 4/05/2005=0A= // Requires: CS40_Lib_HTML_csdom.js, CS40_Lib_HTML_features.js=0A= // Copyright 2001-2006 Cardiff, Inc. All rights reserved.=0A= //=0A= =0A= CSInk =3D {=0A= inkready: 0,=0A= inkstack: new Array(),=0A= initcount: 0=0A= }=0A= =0A= /*** Ink Class ***/=0A= function CSInk_Obj( obj ) {=0A= if (obj.tagName !=3D "OBJECT" || obj.id.indexOf("INK__") =3D=3D -1) {=0A= // Not an Ink Picture.=0A= return null;=0A= } =0A= this.name =3D obj.id; =0A= this.ax =3D obj; =0A= this.wrp =3D obj.parentNode; =0A= this.fld =3D document.getElementById(this.name.replace(/INK__/,"")); =0A= this.supported =3D ((typeof obj.Initialized !=3D "undefined") ? true : = false); =0A= } =0A= =0A= /* Initialize */=0A= CSInk.initializeInk =3D function() {=0A= cs_trace("*** begin main ink init ***");=0A= =0A= // We say ink is ready to begin processing.=0A= CSInk.inkready =3D 1;=0A= var firstInkPic =3D "";=0A= var count =3D 0;=0A= =0A= // Examine all ink fields.=0A= for (var i in CSExt.f) {=0A= if (CSExt.f[i].fmt.htype =3D=3D "InkPicture") {=0A= =0A= =0A= var objTag =3D document.getElementById("INK__" + i);=0A= var newink =3D new CSInk_Obj(objTag);=0A= //cs_trace("ink supported:" + newink.supported);=0A= =0A= if (newink.supported) {=0A= /* Ink SUPPORTED: Initialize ink */ =0A= =0A= // Double-check that ink is initialized.=0A= if (newink.ax.Initialized =3D=3D 0) {=0A= =0A= // Try twice more=0A= if(CSInk.initcount < 10) {=0A= window.setTimeout( "cs_InitializeInk();", 6000);=0A= CSInk.initcount++;=0A= } else {=0A= // cs_trace(newink.name + " Init failed: ink =3D " + = newink.ax.Initialized, 0);=0A= // Display anyway. (Seems they work sometimes.)=0A= CSInk.showInkLoading(false);=0A= }=0A= return;=0A= }=0A= =0A= // Attach onchange event.=0A= if (newink.ax.attachEvent) {=0A= newink.ax.attachEvent("oninkready", make_callback( newink.fld, = newink.ax )); =0A= }=0A= try {=0A= newink.ax.Timeout =3D 750; // delay for oninkready=0A= } catch(e) {} =0A= =0A= // Initialize with parameters.=0A= newink.setValuesFromParams();=0A= =0A= // If ink has a value set readonly=0A= var csfld =3D new CSField_Obj(newink.fld);=0A= if (!csfld.cs_isEmpty()) {=0A= cs_trace("ink not empty", 0);=0A= csfld.setReadOnly(true);=0A= } else {=0A= if (count =3D=3D 0) firstInkPic =3D newink.fld.id;=0A= count++;=0A= }=0A= =0A= // Copy over initial value from hidden ink field=0A= try {=0A= newink.ax.Signature =3D newink.fld.value;=0A= } catch(e2) {cs_trace(e2, 0, "red");}=0A= =0A= } else {=0A= /* Ink NOT SUPPORTED: initialize image */ =0A= =0A= // IE requires a fixed position while Mozilla requires default = position,=0A= // so we turn postioning off for mozilla. Safari, of course, = is yet =0A= // more different still.=0A= var objTag =3D document.getElementById("INK__" + newink.fld.id);=0A= if (objTag && !CSUtil.isSafari) {=0A= objTag.style.position =3D ""; =0A= } =0A= =0A= // Create image.=0A= var img =3D document.createElement('img');=0A= img.setAttribute('id', "IMG__" + newink.fld.id);=0A= with (img.style) {=0A= width =3D "100%";=0A= height =3D "100%";=0A= zIndex =3D parseInt(newink.ax.style.zIndex) + 1;=0A= }=0A= newink.wrp.appendChild( img );=0A= =0A= // Get image url parts.=0A= var fullurl =3D document.location.href;=0A= fullurl =3D fullurl.split("?");=0A= var url =3D fullurl[0];=0A= var theGetInkPart =3D = "?DFS__Action=3DGetInkPicture&DFS__Field=3D";=0A= // Does DFS__EventID exist in form?=0A= var eventField =3D (document.htmlform.DFS__EventID) ? = document.htmlform.DFS__EventID.value : "";=0A= // Does DFS__EventID have a value?=0A= var eventID =3D (eventField !=3D "") ? eventField : null; = cs_trace("eventID: "+eventID, 0);=0A= // Does DFS__TrackerID exist=0A= var trackerID =3D cs_getQSValue("DFS__TrackerID"); = cs_trace("trackerID: "+trackerID, 0);=0A= =0A= // Create image src string.=0A= var imgsrc =3D url + theGetInkPart + newink.fld.id;=0A= if (eventID) {=0A= imgsrc +=3D "&DFS__EventID=3D" + eventID; =0A= } else if (trackerID) {=0A= imgsrc +=3D "&DFS__TrackerID=3D" + trackerID; =0A= } else {=0A= imgsrc =3D ""; =0A= }=0A= cs_trace("imgsrc: "+imgsrc, 0);=0A= =0A= // CANNOT request image from Form Repository. Is there a = better way to tell?=0A= var serverFolderOk =3D (trackerID || (eventID && = eventID.substring( eventID.length-2, eventID.length) !=3D "_1"));=0A= cs_trace("serverFolderOk: "+serverFolderOk, 0);=0A= =0A= // Get image from server.=0A= if (serverFolderOk && imgsrc !=3D "") {=0A= img.src =3D imgsrc;cs_trace("img.src: "+img.src, 0);=0A= } =0A= =0A= // Safari and ME/98 bugs - img needs position or it will not = position correctly.=0A= if (CSUtil.isSafari || CSUtil.isME) {=0A= img.style.position =3D "absolute";=0A= img.style.top =3D "0px";=0A= if (CSUtil.isME) img.style.left =3D "0px";=0A= } =0A= =0A= } // End ink supported switch.=0A= } // End is ink picture.=0A= } // End fields loop. =0A= =0A= // Set focus to first ink picture.=0A= var firstInkObj =3D document.getElementById( "INK__" + firstInkPic );=0A= if ( firstInkObj ) {=0A= CSInk.inkSetFocus( firstInkPic );=0A= }=0A= =0A= // Run calls stored in stack.=0A= for (var j =3D 0; j < CSInk.inkstack.length; j++) {=0A= var stack =3D CSInk.inkstack[j];=0A= var ink =3D stack.ink; =0A= var action =3D stack.func; =0A= var params =3D stack.params; =0A= =0A= for (var func in ink) {=0A= if (func.toString() =3D=3D action) {=0A= ink[func](params); =0A= cs_trace("inkstack: " + ink.name + "[" + func + "](" + params + = ")", 0, "purple")=0A= }=0A= } =0A= }=0A= // Clear stack.=0A= CSInk.inkstack =3D {}; =0A= =0A= // Show ink pictures.=0A= CSInk.showInkLoading(false);=0A= =0A= // Internal function callback.=0A= function make_callback( fld, elem ) { // take advantage of lexical = scoping rules=0A= return function() {=0A= fld.value =3D elem.Signature;=0A= fld.onchange();=0A= CS_FireOnChange(fld);=0A= cs_destroyTTdiv();=0A= }=0A= } =0A= }=0A= =0A= /* Enabled */=0A= CSInk_Obj.prototype.isEnabled =3D function () {=0A= if (this.supported) {=0A= if (this.ax.Enabled =3D=3D 0)=0A= return false;=0A= else if (this.ax.Enabled =3D=3D 1)=0A= return true;=0A= } else {=0A= return null;=0A= }=0A= }=0A= CSInk_Obj.prototype.setEnabled =3D function ( b ) {=0A= if (this.supported) {=0A= if (CSInk.inkready =3D=3D 1) {=0A= if ((b =3D=3D true || b =3D=3D 1)) {=0A= this.ax.Enabled =3D 1; =0A= } else if (b =3D=3D false || b =3D=3D 0) {=0A= this.ax.Enabled =3D 0;=0A= } =0A= cs_trace(" - " + this.name + " setEnabled: " + b, 0);=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setEnabled", params:b } );=0A= } =0A= }=0A= }=0A= =0A= CSInk.inkSetFocus =3D function( target ) {=0A= // Loop through all InkPicture and enable just our target if not = readonly.=0A= var csfld =3D new CSField_Obj( document.getElementById(target) ); =0A= cs_trace(csfld.getName() + " isReadOnly: " + csfld.isReadOnly() + " = so...", 0);=0A= if (!csfld.isReadOnly()) {=0A= for (var fn in CSExt.f) {=0A= if (CSExt.f[fn].fmt.htype =3D=3D "InkPicture") {=0A= var obj =3D document.getElementById("INK__" + fn);=0A= var ink =3D new CSInk_Obj(obj);=0A= ink.setEnabled( fn =3D=3D target );=0A= //cs_trace(" - " + fn + " setEnabled: " + (fn=3D=3Dtarget), 0);=0A= }=0A= } =0A= } else cs_trace(" - setFocus: blocked", 0);=0A= }=0A= =0A= /* BackgroundColor */=0A= CSInk_Obj.prototype.getBackgroundColor =3D function () {=0A= if (this.supported) {=0A= if (CSInk.inkready =3D=3D 1) {=0A= return = this.rgbToGbr(cs_format_rgb(cs_decToHex(this.ax.BackgroundColor)));=0A= } else {=0A= return "";=0A= } =0A= } else {=0A= return cs_format_rgb( this.wrp.style.backgroundColor );=0A= }=0A= } =0A= CSInk_Obj.prototype.setBackgroundColor =3D function ( rbg ) { =0A= // Note: allowed even if ink not supported.=0A= if (CSInk.inkready =3D=3D 1) {=0A= if (rbg =3D=3D "") rbg =3D "ffffff";=0A= rbg =3D rbg.replace(/#/,"");=0A= if (rbg.toLowerCase() =3D=3D "transparent") return; =0A= if (rbg.length > 6) return;=0A= var clr =3D cs_hexToDec(this.rgbToGbr(rbg));=0A= //if (rbg.indexOf("#") =3D=3D -1) rbg =3D "#" + rbg;=0A= this.ax.BackgroundColor =3D clr;=0A= this.wrp.style.backgroundColor =3D rbg;=0A= } else if (this.supported) {=0A= CSInk.inkstack.push( {ink:this, func:"setBackgroundColor", = params:rbg } );=0A= }=0A= } =0A= =0A= /* BorderColor */=0A= CSInk_Obj.prototype.getBorderColor =3D function () {=0A= if (CSInk.inkready =3D=3D 1) {=0A= return this.wrp.style.borderColor;=0A= } else {=0A= return "";=0A= } =0A= } =0A= CSInk_Obj.prototype.setBorderColor =3D function ( rbg ) {=0A= // Note: allowed even if ink not supported.=0A= if (CSInk.inkready =3D=3D 1) {=0A= this.wrp.style.borderColor =3D rbg;=0A= } else if (this.supported) {=0A= CSInk.inkstack.push( {ink:this, func:"setBorderColor", params:rbg } = );=0A= }=0A= } =0A= =0A= /* BorderWidth */=0A= CSInk_Obj.prototype.getBorderWidth =3D function () {=0A= if (CSInk.inkready =3D=3D 1) {=0A= return this.wrp.style.borderLeftWidth;=0A= } else {=0A= return "";=0A= } =0A= } =0A= CSInk_Obj.prototype.setBorderWidth =3D function ( n ) {=0A= // Note: allowed even if ink not supported.=0A= if (CSInk.inkready =3D=3D 1 && !isNaN(n)) {=0A= this.wrp.style.borderWidth =3D n;=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setBorderWidth", params:n } );=0A= }=0A= } =0A= =0A= /* InkColor */=0A= CSInk_Obj.prototype.getInkColor =3D function () {=0A= if (this.supported && CSInk.inkready =3D=3D 1) {=0A= return this.rgbToGbr(cs_format_rgb(cs_decToHex(this.ax.InkColor)));=0A= } else {=0A= return "";=0A= } =0A= } =0A= CSInk_Obj.prototype.setInkColor =3D function ( rbg ) {=0A= if (this.supported) {=0A= if (CSInk.inkready =3D=3D 1) {=0A= if (rbg =3D=3D "") rbg =3D "#000000";=0A= rbg =3D rbg.replace(/#/,"");=0A= if (rbg.toLowerCase() =3D=3D "transparent") return;=0A= var clr =3D cs_hexToDec(this.rgbToGbr(rbg));=0A= this.ax.InkColor =3D clr;=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setInkColor", params:rbg } );=0A= }=0A= }=0A= } =0A= =0A= /* InkWidth */=0A= CSInk_Obj.prototype.getInkWidth =3D function () {=0A= if (this.supported && CSInk.inkready =3D=3D 1) {=0A= return this.ax.InkWidth;=0A= } else {=0A= return "";=0A= } =0A= } =0A= CSInk_Obj.prototype.setInkWidth =3D function ( n ) {=0A= if (this.supported) {=0A= n =3D parseInt(n);=0A= if (CSInk.inkready =3D=3D 1 && !isNaN(n)) {=0A= this.ax.InkWidth =3D n;=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setInkWidth", params:n } );=0A= }=0A= }=0A= } =0A= =0A= /* WritingGuide */=0A= CSInk_Obj.prototype.hasWritingGuide =3D function () {=0A= if (this.supported && CSInk.inkready =3D=3D 1) {=0A= return this.ax.WritingGuide;=0A= } else {=0A= return "";=0A= } =0A= } =0A= CSInk_Obj.prototype.setWritingGuide =3D function ( n ) {=0A= if (this.supported) {=0A= n =3D parseInt(n);=0A= if (CSInk.inkready =3D=3D 1 && !isNaN(n)) {=0A= this.ax.WritingGuide =3D n;=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setWritingGuide", params:n } = );=0A= }=0A= }=0A= } =0A= =0A= /* Signature */=0A= CSInk_Obj.prototype.getSignature =3D function () {=0A= if (this.supported && CSInk.inkready =3D=3D 1) {=0A= return this.ax.Signature; =0A= } else {=0A= return "";=0A= }=0A= }=0A= CSInk_Obj.prototype.setSignature =3D function ( val ) {=0A= if (this.supported) {=0A= if (CSInk.inkready =3D=3D 1) {=0A= var csfld =3D new CSField_Obj( this.fld ); =0A= if (!csfld.isReadOnly()) {=0A= cs_trace(this.name + " Signature set", 0);=0A= this.ax.Signature =3D val;=0A= this.fld.value =3D val;=0A= } else {=0A= cs_trace(this.name + " isReadOnly: setSig blocked", 0);=0A= }=0A= } else {=0A= CSInk.inkstack.push( {ink:this, func:"setSignature", params:val } = );=0A= } =0A= }=0A= }=0A= =0A= /* Set values from params */=0A= CSInk_Obj.prototype.setValuesFromParams =3D function () {=0A= // compensate for non-working s=0A= if (CSInk.inkready =3D=3D 1) {=0A= var csfld =3D new CSField_Obj(this.fld);=0A= var params =3D document.getElementsByTagName("param");=0A= var values =3D {};=0A= for (var jdx=3D0; jdx < params.length; jdx++) {=0A= if (params[jdx].parentNode.id !=3D this.name) continue; // = ActiveX maps ALL params in one place=0A= var name =3D params[jdx].getAttribute("name");=0A= var val =3D params[jdx].getAttribute("value");=0A= =0A= // Offline forms will store a file reference in front of value.=0A= if (val.indexOf("/") !=3D -1) {=0A= val =3D val.substring(val.lastIndexOf("/")+1, val.length);=0A= }=0A= if ("BackgroundColor" =3D=3D name) values.bgcolor =3D val;=0A= if ("InkColor" =3D=3D name) values.inkcolor =3D val;=0A= if ("InkWidth" =3D=3D name) values.inkwidth =3D val;=0A= if ("WritingGuide" =3D=3D name) values.guide =3D val;=0A= if ("Enabled" =3D=3D name) values.enab =3D val;=0A= }=0A= //cs_dump(values);=0A= =0A= // Offline forms store color as decimal, online forms as hex.=0A= if (values.bgcolor) {=0A= var clr =3D "";=0A= if (CSExt.CSForm.isOffline()){=0A= clr =3D this.rgbToGbr(cs_decToHex(values.bgcolor));=0A= } else {=0A= clr =3D values.bgcolor.replace(/#/,"");=0A= } =0A= this.setBackgroundColor( clr );=0A= } =0A= if (values.inkcolor) {=0A= var clr =3D "";=0A= if (CSExt.CSForm.isOffline()){=0A= clr =3D this.rgbToGbr(cs_decToHex(values.inkcolor));=0A= } else {=0A= clr =3D values.inkcolor.replace(/#/,"");=0A= } =0A= this.setInkColor( clr );=0A= } =0A= =0A= if (values.inkwidth) this.setInkWidth(parseInt(values.inkwidth));=0A= if (values.guide) this.setWritingGuide(parseInt(values.guide));=0A= =0A= // 'ro' is a custom property set in xslt for 'initially readonly'. = Previously we used Enabled but =0A= // we are using Enabled as part of the setFocus functionality, so = when form is saved offline, all =0A= // but the current ink pic with focus were showing up as readonly = rather than simply "don't have focus", =0A= // i.e., they weren't *really* readonly, simply not Enabled. =0A= if (this.fld.ro =3D=3D "true") { csfld.setReadOnly(true); = cs_trace(this.name + " loaded as readonly.", 0); }=0A= this.ax.BorderStyle =3D 0; // We use wrapper div for border.=0A= } =0A= }=0A= =0A= CSInk_Obj.prototype.rgbToGbr =3D function ( str ) {=0A= return str.substr(4,2) + str.substr(2,2) + str.substr(0,2);=0A= }=0A= function cs_decToHex( n ) {=0A= n =3D parseInt(n);=0A= if (!isNaN(n)) {=0A= if (n =3D=3D 0) n =3D "000000";=0A= return n.toString(16);=0A= } =0A= }=0A= function cs_hexToDec( hex ) {=0A= return parseInt(hex, 16);=0A= }=0A= =0A= CSInk.showInkLoading =3D function( b ) {=0A= var loading =3D b;=0A= =0A= // Go through all ink pictures.=0A= for (var i in CSExt.f) {=0A= if (CSExt.f[i].fmt.htype =3D=3D "InkPicture") {=0A= var objTag =3D document.getElementById("INK__" + i);=0A= var wrapper =3D document.getElementById("INK__" + i).parentNode; =0A= =0A= if (loading) {=0A= // Show 'loading' message and hide ink picture. cs_trace("ink = loading");=0A= var msgdiv =3D document.createElement("div");=0A= msgdiv.setAttribute('id', "MSG__" + CSExt.f[i].fld.id);=0A= with ( msgdiv.style ) {=0A= position =3D "absolute";=0A= top =3D "4%";=0A= left =3D "2%";=0A= backgroundColor =3D "lightyellow";=0A= border =3D "1px solid gray";=0A= padding =3D "5px";=0A= fontFamily =3D "Arial";=0A= }=0A= msgdiv.innerHTML =3D CS_INK_LOADING;=0A= wrapper.appendChild( msgdiv );=0A= objTag.style.visibility =3D "hidden";=0A= } else {=0A= // Remove 'loading' message and display ink picture. = cs_trace("ink done loading");=0A= msgdiv =3D document.getElementById("MSG__" + CSExt.f[i].fld.id);=0A= if (msgdiv) msgdiv.parentNode.removeChild( msgdiv );=0A= objTag.style.visibility =3D "visible";=0A= }=0A= }=0A= } =0A= } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS50_Lib_HTML_val.js // Validation Specifics for HTML // // Author: Micah Dubinko // Date: 4/20/2001 // Requires: CS3_Library_* // Copyright (c) 2001-2006 Cardiff Software, Inc. All rights reserved. CSExt.KeystrokeFilter =3D function( fld, evt ) { //if (!evt) return; //var chrcod =3D 0; document.htmlform.DFS__ttfld =3D fld; document.htmlform.DFS__tttimer =3D setTimeout( "cs_tt_hack();", 0); /*if (evt.charCode) { chrcod =3D evt.charCode; } else { // IE5 still uses keycode for everything //chrcod =3D evt.keyCode; //window.status =3D "keyCode is " + chrcod + " (" + = String.fromCharCode( chrcod ) + ")"; // probably should NOT do the below check for broken versions of IE = (so far, Win versions up to 5.5) ... //if (chrcod=3D=3D8 || chrcod=3D=3D13 || chrcod=3D=3D37 || = chrcod=3D=3D38 || chrcod=3D=3D39 || chrcod=3D=3D40 || chrcod=3D=3D46) = return true; // delete, bs, enter, etc. } //if (chrcod!=3D0) { // var chr =3D String.fromCharCode( chrcod ); // //alert( "You just pressed: " + chr ); // if (fld.fmttxt && fld.fmttxt.ac) { // alert( "return CS_CharFilter" ); // return CS_CharFilter( chr, fld.fmttxt.ac ); // } //} //alert( "return true" );*/ return true; } function cs_tt_hack() { var fld =3D document.htmlform.DFS__ttfld; var fmt =3D CSExt.f[fld.name].fmt; var show =3D true; if (fld.value =3D=3D "") show =3D false; fmt.uval =3D fld.value; if (CSFmt.validate( fmt ) =3D=3D CSErr.ERR_SUCCESS) show =3D false; cs_setVisibleTTdiv( show ); clearTimeout(document.htmlform.DFS__tttimer); } CSExt.OnChange_bEP.CSValidate =3D function( fld ) { // before OnChange = Entry Point // need to do any on-the-spot validations and formatting... var res =3D false; if (CSExt.validate( fld, "onchange" )) { CSExt.format( fld ); res =3D true; } return res; } CSExt.OnFocus_aEP.ToolTip =3D function( fld ) { var msg =3D ""; var fmt =3D CSExt.f[fld.name].fmt; if (fmt.fmtdt) msg =3D fmt.fmtdt.tmpl; if (fmt.fmttmpl) msg =3D fmt.fmttmpl.tmpl; if (msg !=3D "") { cs_createTTdiv( fld, msg.replace( /[\\!]/g, "") ); fmt.uval =3D fld.value; cs_setVisibleTTdiv( (fld.value.length !=3D 0) && (CSFmt.validate( = fmt ) !=3D CSErr.ERR_SUCCESS) ); } return true; } CSExt.OnBlur_aEP.ToolTip =3D function( fld ) { cs_destroyTTdiv(); return true; } function cs_createTTdiv( fld, msg ) { =20 var pg =3D CSClient.getPageNumber( fld ); // create a new tooltip var dt =3D document.createElement("div"); dt.setAttribute("id", "DFS__tipdiv"); // move the tooltip
to the correct location with (dt.style) { position =3D "absolute"; top =3D CSUtil.pxperc(fld.offsetTop + fld.offsetHeight, pg) + 2 + = "%";//"100%"; left =3D CSUtil.pxperc(fld.offsetLeft, pg) + 2 + "%";//"0%"; padding =3D "4px"; visibility =3D "hidden"; border =3D "1px solid gray"; font =3D "90% sans-serif"; backgroundColor =3D "#ffffcc"; zIndex =3D "99999"; } =20 msg =3D msg.replace(/-/g,"\u2212"); // replace '-' with non-breaking = '-' msg =3D msg.replace(/\s/g,"\u00A0"); // replace space with = non-breaking space // set the content and insert var st =3D document.createElement("span"); st.innerHTML =3D msg; dt.appendChild( st ); =20 var wrapdiv =3D fld.parentNode; wrapdiv.appendChild(dt); if (!document.all) { dt.style.width =3D parseInt(msg.length) * 9 + "px"; } } function cs_destroyTTdiv() { // remove the tipdiv from the page var dt =3D document.getElementById( "DFS__tipdiv" ); if (dt !=3D null) { var parent =3D dt.parentNode; parent.removeChild(dt); } } function cs_setVisibleTTdiv( visible ) { var visstr =3D "hidden"; if (visible) visstr =3D "visible"; var dt =3D document.getElementById( "DFS__tipdiv" ); if (dt !=3D null) { dt.style.visibility =3D visstr; } } // HEAT Issue #139034 // Utility Function to validate multiple fields // @param fldList - a non-empty array of field names, CSField Objects, = or HTML Objects // @param strictness - either "onchange" or "onsubmit" CSExt.validateList =3D function( fldList, strictness ) { // fldList must be a non-empty array or function will fail if(!fldList.length || !fldList[0]) { return false; } =20 // Determine what type of array has been passed var strEval =3D ""; if (typeof(fldList[0]) =3D=3D "string") { // Array of field names strEval =3D "CSExt.getFld( fldList[idx] )"; } else if (fldList[0].getObjectType && fldList[0].getObjectType() = =3D=3D "CSField") { // Array of CSField Objects strEval =3D "fldList[idx].hf"; } else { // Default: Array of HTML Objects strEval =3D "fldList[idx]"; } =20 // Validate each field in list, exit loop on invalid field var curFld =3D null; var isValid =3D true; for (var idx =3D 0; (idx < fldList.length) && isValid; ++idx) { curFld =3D eval( strEval ); isValid =3D CSExt.validate( curFld, strictness ); } =20 return isValid; } CSExt.validate =3D function( fld, strictness ) { cs_assert( fld, "CSExt.validate fld"); cs_assert( strictness=3D=3D"onsubmit" || strictness=3D=3D"onchange" || = strictness=3D=3D"onsign", "CSExt.validate strictness", strictness); // strictness should be "onsubmit" or "onchange" or "onsign" var isValid =3D true; var message =3D "No message"; var field; var fmt; if (fld.name) { field =3D CSForm.getField( fld.name ); fmt =3D CSExt.f[fld.name].fmt; } else { field =3D CSForm.getField( fld[0].name ); fmt =3D CSExt.f[fld[0].name].fmt; } do { // Check for defined field if (!field) { break; } // Do not validate onload if field is blank if (CSExt.DFS__DHTML_OnLoad && field.getValue()=3D=3D"") { break; } // if field is a calculation target, validate only onsubmit or = onsign if (strictness=3D=3D"onchange" && = CSExt.Calculations[field.getName()]) { break; } CSExt.ValidateCount++; // Only validate required fields onsubmit or onsign if ((field.isRequired()) && strictness!=3D"onchange") { // CR LO-84278-EntryRequired-for-Lists if ((fmt.initialVal !=3D null) && (fmt.initialVal.length > 0)) { if (field.getValue() =3D=3D fmt.initialVal) { isValid =3D false; message =3D CS_ERR_ENTRY_REQUIRED_STR; break; } } else { if (field.cs_isEmpty()) { if (strictness=3D=3D"onsign" && = field.getType()=3D=3D"Signature") { // Do nothing HEAT Issue #140682 // Signatures that lock themselves or other signatures must = be allowed to sign } else { // HEAT Issue #140149, it is not OK to be blank, we do not = want to allow // submission except through the signature //if (fmt.authWith !=3D "password") { // sign-on-server is OK = to be blank isValid =3D false; message =3D CS_ERR_ENTRY_REQUIRED_STR; break; //} } } } } // If no formatting, field is assumed valid if (fmt.fmt =3D=3D null) { break; } // Handle valuation of fields if (fld.value =3D=3D "=3Dnow()" || fld.value =3D=3D "=3Dtoday()") { // get =3Dnow() or =3Dtoday() values var thefield =3D CSExt.f[fld.id]; var nowDate =3D new Date(); var nowCSDate =3D new CSDate( nowDate.getFullYear(), = (nowDate.getMonth()+1), nowDate.getDate(), nowDate.getHours(), = nowDate.getMinutes(), nowDate.getSeconds() ); CSFmt.setIntVal( thefield.fmt, nowCSDate ); CSFmt.useIntVal( thefield.fmt, nowCSDate ); CSFmt.format( thefield.fmt ); if (nowCSDate.res) { fmt.uval =3D nowCSDate.res[0]; } else { fmt.uval =3D ""; } } else if (fld.value =3D=3D "=3Duniquenum()") { fmt.uval =3D ""; fld.value =3D ""; } else { fmt.uval =3D fld.value; } // Validate formatting and range if (CSFmt.validate( fmt ) !=3D CSErr.ERR_SUCCESS) { isValid =3D false; message =3D CSFmt.getErrStr( fmt ); break; } // Validate characters // Fix for Safari; validating characters causes a crash // Makes use of short-circuited evaluation of if statement if (!(CSUtil.isSafari && parseInt(CSUtil.safari.buildMaj) >=3D 312) = && CSFmt.charsValid( fmt ) !=3D CSErr.ERR_SUCCESS) { isValid =3D false; message =3D CSFmt.getErrStr( fmt ); break; } } while(false); if (!isValid) { if (CSExt.highlightInvalid && field.getType()=3D=3D"Text") { field.cs_setClass("loinvalid"); } if (confirm( message + "\n(" + field.getName() + ")" )) { if (fld.type !=3D "hidden") { // HEAT #141266, setting focus to a field while in the onblur = event // for the same field does not work. CSExt.setFldVal("DFS__SetFocusTo", fld.name); CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); //CSForm.setFocus( fld.name ); } } // If highlight invalid fields is turned on then don't do rollback if (!CSExt.highlightInvalid) { fld.value =3D ""; if (fmt.oldValue !=3D null) { fld.value =3D fmt.oldValue; } } if (fmt.fmt && fmt.fmt !=3D "txt") { // //alert(fld.fmt); // if (fmt.rsvd) { fmt.rsvd.ival =3D 0; } } } else { if (CSExt.highlightInvalid && field.getType()=3D=3D"Text") { field.cs_setClass("lovalid"); } fmt.oldValue =3D fld.value; CSFmt.updateIntVal( CSExt.f[field.getName()].fmt ); CSCalc.fieldChanged( field.getName() ); } return isValid; } // This function exists to make it possible to set the focus back to a = field // during a blur event on that field. This function should only be = called // by a window timer task: e.g. CSExt.focustimer =3D window.setTimeout( = cs_focus_hack(), 0 ) // CSExt.focustimer exists solely to track and clear such timer tasks. function cs_focus_hack() { var focusTo =3D CSExt.getFldVal("DFS__SetFocusTo"); if (focusTo !=3D "") CSForm.setFocus(focusTo); clearTimeout(CSExt.focustimer); CSExt.setFldVal("DFS__SetFocusTo", ""); } function cs_setInitialFocus() { var focusTo =3D CSExt.getFldVal("DFS__SetFocusTo"); if (focusTo =3D=3D "") { var pg =3D CSExt.VisiblePage; var ti =3D 0; var cnt =3D 0; for (var f in CSExt.f) { var csfld =3D new CSField_Obj(CSExt.getFld(f)); var fld =3D null; if (csfld.getType() =3D=3D "InkPicture") { continue; } else if (csfld.getType() =3D=3D "Radio") { fld =3D csfld.hf[0]; } else { fld =3D csfld.hf; } var fpg =3D ""; if (fld.parentNode.id !=3D "undefined") fpg =3D fld.parentNode.id; fpg =3D fpg.replace(/DFS__shimdiv/,""); if (fpg =3D=3D pg) { =20 var fi =3D fld.tabIndex; //alert(fld.id + " - index: " + fi); if (cnt =3D=3D 0) { ti =3D fi; focusTo =3D f; } =20 cnt++; if (fi < ti && fi !=3D 0 && csfld.getName() !=3D = "DFS__ActionList"=20 && csfld.getName() !=3D "DFS__GO" && csfld.getType() !=3D = "Hidden") { // Don't use hidden fields or submit Go/Drop. ti =3D fi; focusTo =3D f; } =20 } } } =20 if (focusTo !=3D "") { // 140697: Only set focus to "set inital focus" field if on page = user is=20 // going to. var pg =3D new = CSField_Obj(CSExt.getFld(focusTo)).cs_getPageNumber(); if ( pg =3D=3D CSExt.VisiblePage ) { CSForm.setFocus(focusTo); } } } CSExt.format =3D function( fld ) { cs_assert( fld, "CSExt.format fld"); cs_assert( fld.name, "CSExt.format fld.name"); if (!fld || !fld.name) return; var fmt =3D CSExt.f[fld.name].fmt; if (fmt.fmt !=3D null) { CSExt.FormatCount++; /*if (fmt.rsvd !=3D null) { fmt.rsvd.ival =3D 0; // ? breaks calendar control }*/ fmt.uval =3D fld.value; if (CSFmt.format( fmt ) =3D=3D CSErr.ERR_SUCCESS) CSFmt.updateIntVal( fmt ); fld.value =3D fmt.dval; fmt.oldValue =3D fld.value; } } /** * Valid before submit (not for submit button). */ function cs_OnSubmitLookup() { var isValid =3D true; if (CSExt.getFldVal("DFS__SubmitURL") !=3D "") { var urlstr =3D CSExt.getFldVal("DFS__SubmitURL"); var rc =3D cs_ajax_submit( urlstr, "" ); if (rc =3D=3D1) { // offline, no go alert( CS_OFFLINE_ERR_OFFLINE ); return false; } else if (rc =3D=3D 0) { // No redirect returned =3D validation failed var rurl =3D ""; try { rurl =3D CSExt.RedirectURL; } catch (e) {} if (rurl.length =3D=3D 0) { isValid =3D false; // status message if (CSExt.getFldVal("DFS__StatusMsg") !=3D "") { alert(CSExt.getFldVal("DFS__StatusMsg")); CSExt.setFldVal("DFS__StatusMsg", ""); } // set focus if (CSExt.getFldVal("DFS__SetFocusTo") !=3D "") { //CSExt.focustimer =3D setTimeout( "cs_focus_hack();", 0); } } } } return isValid; } /** Select the good value for the DFS__Action hidden field. * Get the value form the CRP tag in the DFS__ActionList drop list. */ CSExt.Form_OnSubmit_bEP.StaticLookup =3D function( f ) { // Perform validation on all user fields if (!CSExt.validateList( CSExt.UserFieldList, "onsubmit" )) { CSExt.preventDefault(); } } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS50_Lib_XMLHTTP.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved function csxmlhttp_create() { var XMLHTTP =3D null; if (CSExt.flags.msxml_warn =3D=3D true) return null; try {=20 if (window.ActiveXObject) { XMLHTTP =3D new ActiveXObject( "Msxml2.XMLHTTP" ); } } catch(e) {} try {=20 if (window.XMLHttpRequest) { XMLHTTP =3D new XMLHttpRequest(); } } catch(e) {} try {=20 XMLHTTP =3D new ActiveXObject("MSXML2.XMLHTTP") } catch(e) {} return XMLHTTP; } function csxmlhttp_open( XMLHTTP, sURL ) { var rc =3D true; try { =20 XMLHTTP.open( "POST", sURL, false ); =20 } catch( e ) { cs_show_exception( "XMLHttpRequest.open ", e ); rc =3D false; } return rc; } function csxmlhttp_set_header( XMLHTTP, header, value ) { var rc =3D true; try { XMLHTTP.setRequestHeader( header, value ); } catch( e ) { cs_show_exception( "XMLHttpRequest.setRequestHeader ", e ); rc =3D false; } return rc; } function csxmlhttp_send( XMLHTTP , stuff ) { var rc =3D true; try { =20 XMLHTTP.send( stuff ); =20 } catch( e ) { cs_show_exception( "XMLHttpRequest.send ", e ); rc =3D false; } return rc; } function csxmhlttp_get_response_xml( XMLHTTP ) { var rv =3D null; try { rv =3D XMLHTTP.responseXML; } catch( e ) { cs_show_exception( "XMLHttpRequest.responseXML ", e ); } return rv; } function cs_show_exception( sMsg, errObj ) { if (!CSExt.flags.msxml_show_errs) return; if (errObj.message) { sMsg +=3D errObj.message; } else if (errObj.description) { sMsg +=3D errObj.description; } CSExt.CSClient.alert( sMsg ); } function cs_create_document() { csxmlDoc =3D null;=20 try {=20 if (document.implementation && = document.implementation.createDocument) { csxmlDoc =3D document.implementation.createDocument("", "", null); csxmlDoc.onload =3D cs_init; } } catch(e) {} try {=20 if (window.ActiveXObject) { csxmlDoc =3D new ActiveXObject( "Microsoft.XMLDOM" ); =20 } } catch(e) {} try {=20 csxmlDoc =3D new ActiveXObject( "Microsoft.XMLDOM" ); } catch(e) {} =20 if (csxmlDoc) { var pi =3D csxmlDoc.createProcessingInstruction("xml", = "version=3D'1.0' encoding=3D'UTF-8'"); csxmlDoc.appendChild(pi); } return csxmlDoc; } function cs_tmp() {=20 alert( "state change " ); =20 } function cs_getDom() { } function cs_init() { =20 alert( "XML document loaded!"); } function cs_submit_xfdf_load_xfdf( URL, sendMsg ) { =20 =20 =20 var ison =3D CSExt.dispatchEvent("CheckOnline", null); if (!ison) return 1; var XMLHTTP =3D csxmlhttp_create(); if (XMLHTTP !=3D null && CSExt.flags.msxml_pending=3D=3Dfalse) { CSExt.flags.msxml_pending =3D true; if ( sendMsg.length > 0 ) CSExt.CSClient.alert( sendMsg ); var good =3D true; var xdom =3D null; var xstr; var counter =3D 2; while (counter > 0) { --counter; xdom =3D cs_create_document(); good =3D (xdom !=3D null); if (!good) continue; if (CSExt.flags.useStringSerializer) { xstr =3D cs_assemble_xfdf_str(); } else { cs_assemble_xfdf( xdom ); } good =3D csxmlhttp_open( XMLHTTP, URL ); if (!good) continue; good =3D csxmlhttp_set_header( XMLHTTP, "Content-Type", = "application/vnd.adobe.xfdf"); if (!good) continue; if (CSExt.flags.useStringSerializer) { good =3D csxmlhttp_send( XMLHTTP, xstr ); } else { good =3D csxmlhttp_send( XMLHTTP, xdom ); } if (good) break; } if (good) cs_apply_xfdf( csxmhlttp_get_response_xml( XMLHTTP ) ); CSExt.flags.msxml_pending =3D false; if (good) return 0; else return -1; } } function cs_assemble_xfdf( doc ) { CSExt.CSForm.getNumberOfFields();=20 =20 var all_array =3D CSExt.allFieldNames(); =20 var xfdlelem =3D doc.createElement( "xfdf" ); var fieldselem =3D doc.createElement( "fields" ); xfdlelem.appendChild( fieldselem ); doc.appendChild( xfdlelem ); for (var idx=3D0; idx\n\n\n"); for (var idx=3D0; idx"); val_array =3D mfld.getValues(); for (var jdx=3D0; jdx=3D 0) { content =3D content.replace( /&/g, '&'); } if (content.indexOf("<") >=3D 0) { content =3D content.replace( /" + content + ""); } results.push("\n"); } } results.push("\n"); CSExt.XMLout =3D results.join(''); =20 =20 =20 return CSExt.XMLout; } function cs_apply_xfdf( doc ) { =20 =20 if (!doc || !doc.documentElement) { CSExt.CSClient.alert( CS_XMLHTTP_INVALID + "\nnull" ); return false; } =20 =20 =20 CSExt.XMLin =3D doc; var dElem =3D doc.documentElement.nodeName; if (dElem !=3D "xfdf") { CSExt.CSClient.alert( CS_XMLHTTP_INVALID + "\n" + dElem ); } =20 var chgs =3D []; var cidx =3D 0; =20 var csSetFocusTo =3D CSExt.CSForm.getField( "DFS__SetFocusTo"); if (csSetFocusTo !=3D null) { csSetFocusTo.setValue( "" ); } var fieldelems =3D doc.getElementsByTagName( "field" ); for( var idx=3D0; idx 0) { var chcs =3D csfld.getChoices(); var dupeCheck =3D {}; if (chcs !=3D null) { var dupeCheck =3D chcs.cs_getAll(); } } for( var kdx=3Doptions.length-1; kdx>=3D0; kdx-- ) { var delem =3D options[kdx].getElementsByTagName("display")[0]; var selem =3D options[kdx].getElementsByTagName("value")[0]; var dstr =3D delem.firstChild.nodeValue; var sstr =3D selem.firstChild.nodeValue; =20 if (!dupeCheck[dstr] || dupeCheck[dstr] !=3D sstr) { chcs.insertAt( 0, sstr, dstr ); =20 } } if (hasValue && (csfld.getValues().toString() !=3D = val_array.toString()) ) { chgs[cidx++] =3D { fld:csfld, vals:val_array }; } } } =20 for( var udx =3D 0; udx < chgs.length; udx++ ) { chgs[udx].fld.setValues( chgs[udx].vals ); } =20 =20 if (CSExt.ensureFieldExists) = CSExt.ensureFieldExists("DFS__StatusMsg"); var csStatusMsg =3D CSExt.CSForm.getField( "DFS__StatusMsg"); if (csStatusMsg !=3D null) { csStatusMsg.setValue( "" ); var dbElems =3D doc.getElementsByTagName( "status" ); if ( (dbElems.length > 0) && (dbElems[0].firstChild)) { csStatusMsg.setValue( dbElems[0].firstChild.nodeValue ); } } =20 CSExt.RedirectURL =3D ""; dbElems =3D doc.getElementsByTagName( "f" ); if ( dbElems.length > 0) { CSExt.RedirectURL =3D dbElems[0].getAttribute("href"); } =20 var csField =3D CSExt.CSForm.getField( "DFS__Field" ); if (csField !=3D null) { csField.setValue(""); } =20 CSExt.open =3D "" var oElems =3D doc.getElementsByTagName( "open" ); if ( oElems.length > 0) { CSExt.open =3D oElems[0].getAttribute("href"); } =20 if (CSPersist && CSPersist.retrieveFields) { CSPersist.retrieveFields(); } } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS60_Lib_HTML_offline.js // Offline Module // // Author: Micah Dubinko // Date: 1/20/2004 // Copyright (c) 2004 Verity Inc. All rights reserved. CSOff =3D { reconnecting:false, path:"", didRedir:false }; CSExt.Initialize.Online =3D function() { if (!window.ActiveXObject) return; if (!document.htmlform.DFS__OfflineEnabled) return; if ( document.htmlform.DFS__OfflineEnabled.value !=3D "1") return; if (document.location.protocol=3D=3D"file:") { CSOff.path =3D unescape(document.location.pathname); if (CSOff.path.indexOf('/')=3D=3D0) // get rid of leading slash CSOff.path =3D CSOff.path.substr(1); //alert( "set offline loc to " + CSOff.path ); } if ( document.htmlform.LF__Offline.value =3D=3D "1") { CSOff.setOffline(); } else { CSOff.setOnline(); } CSOff.setDirty(false); } CSExt.OnChange_aEP.Offline =3D function( f ) { if (CSExt.CSForm.isOffline() && !CSExt.DFS__DHTML_OnLoad) { CSOff.setDirty(true); } } // If a radio, checkbox, or button is clicked, the form should be = considered dirty. // Since this is not caught by the onChange handler, it must be done = here. CSExt.OnButtonClick_aEP.Offline =3D function( f ) { if (CSExt.CSForm.isOffline() && !CSExt.DFS__DHTML_OnLoad) { CSOff.setDirty(true); } } CSExt.CheckOnline.LF__Offline =3D function( p ) { if (document.htmlform.LF__Offline && = document.htmlform.LF__Offline.value =3D=3D "1" && = CSOff.reconnecting=3D=3Dfalse) { CSExt.preventDefault(); } } function cs_workOffline() { cs_trace( "Work offline, ActiveXObject=3D" + window.ActiveXObject + " = hf.LF__Offline=3D" + document.htmlform.LF__Offline ); if (!ActiveXObject) return; // no ActiveX =3D=3D no offline =20 // Remove DFS__SI value to force login on reconnect. var saveDFSSI =3D ""; var si =3D document.getElementById('DFS__SI'); if (si) { saveDFSSI =3D si.value; si.value =3D ""; } =20 =20 CSOff.setOffline(); var rc =3D CSOff.save(); if (!rc) { CSOff.setOnline(); } =20 // Reset DFS__SI value to allow lookups, etc. while form still open. if (si) si.value =3D saveDFSSI; } function cs_save() { CSOff.save(CSOff.path); } function cs_saveAs() { CSOff.save(""); } function cs_reconnect() { CSOff.reconnect(); } CSOff.setOnline =3D function( user ) { if (user && user !=3D document.htmlform.LF__User.value) { alert( CS_OFFLINE_ERR_USER ); return false; } var div =3D document.getElementById("DFS__workoffline"); if (div) div.style.display =3D "block"; CSUtil.createIFrame(document.getElementById('DFS__workoffline')); div =3D document.getElementById("DFS__reconnect"); CSUtil.createIFrame(document.getElementById('DFS__reconnect')); if (div) div.style.display =3D "none"; document.htmlform.LF__Offline.value =3D "0"; return true; } CSOff.setOffline =3D function() { if (document.htmlform.DFS__SubmitURL) { CSOff.getCurURL(); } else { alert(CS_OFFLINE_MSG_PREVIEW); } var div =3D document.getElementById("DFS__reconnect"); if (div) div.style.display =3D "block"; CSUtil.createIFrame(document.getElementById('DFS__reconnect')); div =3D document.getElementById("DFS__workoffline"); CSUtil.createIFrame(document.getElementById('DFS__workoffline')); if (div) div.style.display =3D "none"; document.htmlform.LF__Offline.value =3D "1"; return true; } // will return null if installed ArchiveX isn't the right version CSOff.archiveX =3D function(reqver) { var rc =3D null; var wa =3D null; try { wa =3D new ActiveXObject("WebArchiveX.Builder"); } catch(e) {} CSOff.aXCurVer =3D "4.2"; try { CSOff.aXCurVer =3D wa.Version; } catch(e2) {} if (reqver =3D=3D "" || CSOff.aXCurVer =3D=3D reqver || parseFloat(CSOff.aXCurVer) >=3D parseFloat(reqver)) { rc =3D wa; } return rc; } CSOff.getCurURL =3D function() { // get current location, save in DFS__SubmitURL if (document.htmlform.DFS__SubmitURL) { var olds =3D document.htmlform.DFS__SubmitURL.value; var news =3D olds; if (news.indexOf("http") !=3D 0) { news =3D window.location.protocol + "//" + window.location.host + = olds; document.htmlform.DFS__SubmitURL.value =3D news; document.htmlform.action =3D news; } var olds2 =3D document.htmlform.DFS__DownloadURL.value; var news2 =3D olds2; if (news2.indexOf("http") !=3D 0) { news2 =3D window.location.protocol + "//" + window.location.host + = olds2; document.htmlform.DFS__DownloadURL.value =3D news2; } } } CSOff.installControl =3D function() { if (document.htmlform.DFS__SubmitURL) { var aXloc =3D "/jsp/archiveX.jsp"; // this default should never get = used if (document.htmlform.DFS__DownloadURL && = document.htmlform.DFS__DownloadURL.value !=3D "") aXloc =3D document.htmlform.DFS__DownloadURL.value; window.open( aXloc ); } } // see http://www.csystems.co.il/WebArchiveX/help/ // return true if saved CSOff.save =3D function(path) { if (!path || path=3D=3D"") { path =3D "webarchivex-prompt:"; // this causes a save-as prompt } CSOff.getCurURL(); var wa =3D CSOff.archiveX(CSOff.aXReqVer); if (!wa) { wa =3D CSOff.archiveX(""); // try to get *any* version at all if (!wa) { // no control present, try to install CSOff.installControl(); return false; } else { // old control present, try to upgrade, once if (!CSOff.didRedir) { CSOff.installControl(); CSOff.didRedir =3D true; return false; } } } var rc =3D false; var olddfso =3D document.htmlform.DFS__Offline.value; document.htmlform.DFS__StatusMsg.value =3D ""; try { wa.Initialize(); wa.AddResourceTag( "applet", "archive" ); wa.AddResourceTag( "param", "value" ); wa.SetCharset("UTF-8"); // server flag, client never sets to 0 (though we do unset it if the = save fails) document.htmlform.DFS__Offline.value =3D "1"; //alert( "CurrentVer is " + CSOff.aXCurVer ); if (parseFloat(CSOff.aXCurVer) < 4.201) { // parseFloat will ignore = anything past minor version rc =3D wa.MakeArchiveFromDoc( document, "webarchivex-prompt:" ); } else { wa.FakeLocalPath =3D true; rc =3D wa.MakeArchiveFromDoc2( document, path ); } if ( (typeof rc=3D=3D"string" && rc!=3D"") || (typeof = rc=3D=3D"boolean" && rc) ) { CSOff.setDirty(false); if (typeof rc=3D=3D"string") { CSOff.path =3D rc; } //alert( "Saved to " + CSOff.path + "\n(path is " + rc + ")" ); } else { document.htmlform.DFS__Offline.value =3D olddfso; } } catch(e) { alert( CS_OFFLINE_ERR_SAVE + "\n" + e.description + "\n" + rc ); document.htmlform.DFS__Offline.value =3D olddfso; } return rc; } CSOff.reconnect =3D function() { CSOff.reconnecting =3D true; if (!document.htmlform.DFS__SubmitURL) return; var urlstr =3D document.htmlform.DFS__SubmitURL.value; document.htmlform.DFS__Action.value =3D "FormsOfflineCheck"; CSExt.open =3D ""; var rc =3D cs_ajax_submit( urlstr, "" ); while(1) { if (rc !=3D 0) break; if (CSExt.open.length > 0) { // open new window, as request'd; window will set status bar on = successful login CSOff.rcwnd =3D window.open(document.htmlform.DFS__SubmitURL.value = + CSExt.open); CSOff.rctimer =3D setInterval( "cs_reconhack()", 250 ); CSOff.rccnt =3D 0; // only counts after rcwnd is closed CSOff.rctotal =3D 0; break; } // status message indicates failure if (document.htmlform.DFS__StatusMsg && = document.htmlform.DFS__StatusMsg.value.length > 0) { alert( document.htmlform.DFS__StatusMsg.value ); document.htmlform.DFS__StatusMsg.value =3D ""; } else { CSOff.setOnline(); } break; } // if ssl, could be missing certificate if (rc !=3D 0 && urlstr.indexOf("https://") !=3D -1) { alert(CS_OFFLINE_WARN_NEED_CERT); } =20 CSOff.reconnecting =3D false; } function cs_reconhack() { cs_trace( "reconHack " + CSOff.rcwnd.closed ); CSOff.rctotal++; if (CSOff.rcwnd.closed) CSOff.rccnt++; var val =3D window.status; var tagstr =3D "UID:"; if (val.indexOf(tagstr)=3D=3D0) { var username =3Dval.substring(tagstr.length); cs_trace(username); CSOff.setOnline(username); clearInterval(CSOff.rctimer); window.status=3D""; return; } if (CSOff.rccnt > 2) { // at least one full cycle after close, to = avoid sync issue alert( CS_OFFLINE_WARN_RECONNECT ); clearInterval(CSOff.rctimer); return; } } CSOff.setDirty =3D function(d) { var savelem =3D document.getElementById("DFS__saveme"); if (savelem !=3D null) { var newtxt =3D CS_OFFLINE_SAVE; if (d) { newtxt +=3D "*"; } savelem.innerHTML =3D newtxt; } CSOff.dirtFlag =3D d; } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS60_Lib_HTML_Cal.js // = *************************************************************************= * // HTML Calendar Control // // Author: Kevin Horning // Date: 5/18/2004 // Requires: html_utils.js // Copyright 2001-2006 Cardiff, Inc. All rights reserved. // // // Calendar Control pops up an interactive visual calendar that lets // The user select a date with the mouse. // parameters: // pTargetElement =3D The associated date entry field which = called the calendar. // pMinDate =3D The minimum date range restriction, if = any. // pMaxDate =3D The maximum date range restriction, if = any. // // // String arrays to convert from numbers to strings // var CS_CAL_MONTHSARRAY =3D new Array( CS_DATETIME_JANUARY, CS_DATETIME_FEBRUARY, CS_DATETIME_MARCH, CS_DATETIME_APRIL, CS_DATETIME_MAY, CS_DATETIME_JUNE, CS_DATETIME_JULY, CS_DATETIME_AUGUST, CS_DATETIME_SEPTEMBER, CS_DATETIME_OCTOBER, CS_DATETIME_NOVEMBER, CS_DATETIME_DECEMBER ); var CS_CAL_DAYSARRAY =3D new Array( CS_CAL_SUN, CS_CAL_MON, CS_CAL_TUE, CS_CAL_WED, CS_CAL_THU, CS_CAL_FRI, CS_CAL_SAT ); var CS_CAL_DAYSLONGARRAY =3D new Array( CS_CAL_SUNDAY, CS_CAL_MONDAY, CS_CAL_TUESDAY, CS_CAL_WEDNESDAY, CS_CAL_THURSDAY, CS_CAL_FRIDAY, CS_CAL_SATURDAY ); // *** Section for customizing appearance. CSExt.cal =3D { NAMESTEM: CSUtil.NAMESTEM + "CalControl_", // Use for id's to keep = unique. LAUNCH_NAMESTEM: CSUtil.NAMESTEM + "CalLaunch_", // Use for launcher // ** Calendar object properties. // * Shape and alignment. datesAlign: "center", datesValign: "middle", cellPadding: 2, border: 1, // * Calendar Font. font: "arial", fontSize: "90%", // * Colors. borderColor: "#808080", todayColor: "lightgreen", theDayColor: "lightblue", // Color of selected day if not = today. navColor: "lightblue", daysColor: "white", // Color of all other days. fontColor: "black", blanksColor: "#c0c0c0", // Color of unused cells. notRangeColor: "#dfdfdd", // Color of out of range cells. notRangeFontColor: "#808080", SelectColor: "red", // Color of mouse over date. exitColor: "#ff8080", exitColorOver: "red", cancelColor: "#ffff80", daysOfWeek: "#444444", // Color of days of week header. dayOfWeekColor: "#ffffff", selectBg: "#ececf0", // Color of background for custom = selects. selectOverBg: "#93A070", // Color of onmouseover backgruond = for custom selects. dateDisplayBg: "black", dateDisplayColor: "white", // * Misc. canDrag: true, dragBarHeight: 16, dragColor: "#C0C0C0", pointerCursor: "pointer", defaultCursor: "default", shadow: false, shadowBgColor: "gray", shadowOffset: 6, // ** Number of letters to show of day names; 0 =3D all. abbrevDays: true, // *** End customization section. // * Internal properties. disabled: false, visible: false, todayDate: null, lastDate: null, displayDate: null, firstOfMonth: null, lastOfMonth: null, targetElement: null, targetDate: null, width: 0, targetElement: null, targetDim: null, minDate: null, maxDate: null, launchTimeout: null, page: 0, focus: "", mouse: "", // * Constants. GOTO_TODAY: 1, SELECT_MONTH: 2, SELECT_YEAR: 3 }; // Do not support Mac IE. if (CSUtil.isIE && CSUtil.isMac) CSExt.cal.disabled =3D true; // // Create a new calendar control. // CSExt.cal.newCalendar =3D function ( pTargetElement, pMinDate, pMaxDate = ) { if (CSExt.cal.disabled) return; =20 var newDate =3D new Date(); CSExt.cal.todayDate =3D new Date(newDate.getMonth()+1 + "/" + = newDate.getDate() + "/" + CSExt.cal.getDisplayableYear( = newDate.getYear() )); CSExt.cal.minDate =3D null; CSExt.cal.maxDate =3D null; if (pTargetElement) { if (pMinDate) { pMinDate =3D pMinDate.replace(/-/g,"/"); CSExt.cal.minDate =3D (pMinDate =3D=3D 'true') ? new Date = (CSExt.cal.todayDate) : new Date( pMinDate ); } if (pMaxDate) { pMaxDate =3D pMaxDate.replace(/-/g,"/"); CSExt.cal.maxDate =3D (pMaxDate =3D=3D 'true') ? new Date = (CSExt.cal.todayDate) : new Date( pMaxDate ); } //cs_trace("minDate:" + CSExt.cal.minDate, 1);cs_trace("maxDate:" + = CSExt.cal.maxDate); =20 // Get target field. CSExt.cal.targetElement =3D pTargetElement; =20 =20 var calf =3D CSExt.f[CSExt.cal.targetElement.id]; =20 // Get target field date if necessary. if (calf.fmt.intv) { var d =3D calf.fmt.intv.day; var m =3D calf.fmt.intv.month; var y =3D calf.fmt.intv.year; =20 // Set undefined values if template did not require definition, = i.e., M-YYYY -- set D if (typeof d =3D=3D "undefined") { d =3D 1; } if (typeof m =3D=3D "undefined") { m =3D 1; } if (typeof y =3D=3D "undefined") { y =3D CSExt.cal.getDisplayableYear( newDate.getYear() ); } =20 CSExt.cal.targetDate =3D new Date( m + "/" + d + "/" + y ); CSExt.cal.displayDate =3D new Date( m + "/" + d + "/" + y ); } else { CSExt.cal.targetDate =3D newDate; CSExt.cal.displayDate =3D newDate; } =20 CSExt.cal.lastDate =3D CSExt.cal.getLastDate( = CSExt.cal.displayDate ); CSExt.cal.firstOfMonth =3D new Date( CSExt.cal.displayDate ); CSExt.cal.firstOfMonth.setDate( 1 ); CSExt.cal.lastOfMonth =3D new Date( CSExt.cal.displayDate ); CSExt.cal.lastOfMonth.setDate( CSExt.cal.lastDate ); //alert("CSExt.cal.firstOfMonth:" + CSExt.cal.firstOfMonth + = "\nCSExt.cal.lastOfMonth:" + CSExt.cal.lastOfMonth); =20 =20 // // Get position of target field. // CSExt.cal.targetDim =3D CSUtil.getDim( CSExt.cal.targetElement ); CSExt.cal.x =3D CSExt.cal.targetDim.x; CSExt.cal.y =3D CSExt.cal.targetDim.y + CSExt.cal.targetDim.h; /*cs_trace("CSExt.cal.targetDim.x: " + CSExt.cal.targetDim.x +=20 ", CSExt.cal.targetDim.y: " + CSExt.cal.targetDim.y +=20 "\nCSExt.cal.targetDim.w: " + CSExt.cal.targetDim.w +=20 ", CSExt.cal.targetDim.h: " + CSExt.cal.targetDim.h);*/ return CSExt.cal.buildCalendar(); } return false; } // // Build structure of date picker. // CSExt.cal.buildCalendar =3D function () { // // If Calendar exist, close it and make a new one. // if (document.getElementById( CSExt.cal.NAMESTEM + 'calCtrlContainer' = )) { CSExt.cal.closeCalendar(); } // // Set Esc key to dismiss calendar. // document.onkeydown =3D CSExt.cal.checkEscape; // Make adjustment for continuous view. CSExt.cal.targetDim.y =3D CSUtil.continousAdj( CSExt.cal.targetDim.y, = CSExt.cal.page ); =20 // Make adjustment for zoom. var zoom =3D document.getElementById('DFS__ctrlZoom').value; var yAdjustment =3D -8; if (zoom =3D=3D 80) yAdjustment =3D 0; else if (zoom =3D=3D 120) yAdjustment =3D 2; =20 // // Create date picker frame and table. // var oMonthFrame =3D document.createElement( 'div' ); oMonthFrame.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'calCtrlContainer' ); with ( oMonthFrame.style ) { position =3D 'absolute'; left =3D CSUtil.pxperc( CSExt.cal.x - 4, CSExt.cal.page ) + = "%"; =20 top =3D CSUtil.pxperc( CSExt.cal.targetDim.y + = ((document.all)?yAdjustment:2), CSExt.cal.page ) + "%"; zIndex =3D 99999; } =20 var shimDiv =3D CSUtil.getShimDiv( CSExt.cal.targetElement ); shimDiv.appendChild( oMonthFrame ); =20 var oCalTable =3D document.createElement( 'table' ); oCalTable.setAttribute( 'id', CSExt.cal.NAMESTEM + 'calTable' ); oCalTable.setAttribute( 'border', CSExt.cal.border ); oCalTable.setAttribute( 'borderColor', CSExt.cal.borderColor ); oCalTable.setAttribute( 'cellPadding', CSExt.cal.cellPadding ); CSExt.cal.setFontsStyle( oCalTable ); oCalTable.style.borderCollapse =3D "collapse"; oMonthFrame.appendChild( oCalTable ); var oTBody =3D document.createElement( 'tbody' ); oTBody.setAttribute( 'id', CSExt.cal.NAMESTEM + 'tBody'); oCalTable.appendChild( oTBody ); =20 // // Create drag handle bar. // if (CSExt.cal.canDrag) { =20 var oHandleRow =3D document.createElement( 'tr' ); oHandleRow.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oHandleRow' ); oTBody.appendChild( oHandleRow ); =20 var oHandle =3D document.createElement( 'td' ); oHandle.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oHandle' ); oHandle.setAttribute( 'title', CS_POP_CLICKTODRAG ); oHandle.setAttribute( 'colSpan', 7 );=20 CSExt.cal.setDragStyles( oHandle ); oHandle.style.cursor =3D "move"; //oHandle.style.paddingLeft =3D 0; // for title, currently turned = off. //oHandle.style.paddingTop =3D 0; /* removed from spec oHandleRow.onmouseover =3D function () {=20 var cal =3D document.getElementById(CSExt.cal.NAMESTEM + = 'calTable'); cal.style.borderColor =3D "blue"; cal.style.borderStyle =3D "dashed";=20 } oHandleRow.onmouseout =3D function () {=20 var cal =3D document.getElementById(CSExt.cal.NAMESTEM + = 'calTable'); cal.style.borderColor =3D CSExt.cal.borderColor;=20 cal.style.borderStyle =3D "solid";=20 }*/ oHandleRow.appendChild( oHandle ); CSUtil.moveApproved( CSExt.cal.NAMESTEM + 'calCtrlContainer', = CSExt.cal.NAMESTEM + 'oHandle' ); if(!document.all) { // NS only = oHandleRow.setAttribute("onmouseup","javascript:CSUtil.doMouseUp(event);"= ); } =20 if (0 && CSExt.cal.targetElement.title) { var titlediv =3D document.createElement( 'span' ); with (titlediv.style) { backgroundColor =3D "#404040";=20 color =3D "white";=20 paddingLeft =3D "5px";=20 paddingRight =3D "5px"; fontFamily =3D CSExt.cal.font; height =3D "30px"; marginTop =3D 0; marginLeft =3D 0; } titlediv.innerHTML =3D CSExt.cal.targetElement.title;=20 oHandle.appendChild( titlediv ); } =20 =20 } =20 // // Create tool bar and tool buttons. // var oToolRow =3D document.createElement( 'tr' ); oToolRow.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oToolRow' ); oTBody.appendChild( oToolRow ); // // Create Go To button // var oJumpButton =3D document.createElement( 'td' ); oJumpButton.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oJumpButton' ); oJumpButton.setAttribute( 'title', CS_CAL_GOTO ); oJumpButton.setAttribute( 'colSpan', 2 ); oJumpButton.onclick =3D function () { CSExt.cal.showJumpControlSwitch( = this ) }; CSExt.cal.setNavStyles( oJumpButton ); oJumpButton.innerHTML =3D CS_CAL_GOTO; oToolRow.appendChild( oJumpButton ); // // Create click nav buttons for months and years. // var oNavLastYear =3D document.createElement( 'td' ); oNavLastYear.setAttribute( 'id', CSExt.cal.NAMESTEM + 'lastYear' ); oNavLastYear.onclick =3D function () { CSExt.cal.changeYear( = (parseInt(CSExt.cal.getDisplayableYear( CSExt.cal.displayDate.getYear() = ))-1) ) } CSExt.cal.setNavStyles( oNavLastYear ); oNavLastYear.innerHTML =3D "<<"; oToolRow.appendChild( oNavLastYear ); var oNavLastMonth =3D document.createElement( 'td' ); oNavLastMonth.setAttribute( 'id', CSExt.cal.NAMESTEM + 'lastMonth' ); oNavLastMonth.onclick =3D function () { CSExt.cal.changeMonth( = CSExt.cal.displayDate.getMonth()-1 ) } CSExt.cal.setNavStyles( oNavLastMonth ); oNavLastMonth.innerHTML =3D "<"; oToolRow.appendChild( oNavLastMonth ); var oNavNextMonth =3D document.createElement( 'td' ); oNavNextMonth.setAttribute( 'id', CSExt.cal.NAMESTEM + 'nextMonth' ); oNavNextMonth.onclick =3D function () { CSExt.cal.changeMonth( = CSExt.cal.displayDate.getMonth()+1 ) } CSExt.cal.setNavStyles( oNavNextMonth ); oNavNextMonth.innerHTML =3D ">"; oToolRow.appendChild( oNavNextMonth ); var oNavNextYear =3D document.createElement( 'td' ); oNavNextYear.setAttribute( 'id', CSExt.cal.NAMESTEM + 'nextYear' ); oNavNextYear.onclick =3D function () { CSExt.cal.changeYear( = (parseInt(CSExt.cal.getDisplayableYear( CSExt.cal.displayDate.getYear() = ))+1) ) } CSExt.cal.setNavStyles( oNavNextYear ); oNavNextYear.innerHTML =3D ">>"; oToolRow.appendChild( oNavNextYear ); var oNavClose =3D document.createElement( 'td' ); oNavClose.setAttribute( 'id', CSExt.cal.NAMESTEM + 'closeCal' ); oNavClose.setAttribute( 'title', CS_CAL_CLOSE ); oNavClose.onclick =3D function () { CSExt.cal.closeCalendar(); } CSExt.cal.setNavStyles( oNavClose ); oNavClose.style.backgroundColor =3D CSExt.cal.exitColor; oNavClose.style.fontSize =3D (parseInt(oNavClose.style.fontSize) * = 1.2) + "%"; oNavClose.innerHTML =3D "×"; oToolRow.appendChild( oNavClose ); =20 // Get Tool Row dimensions. var toolRowDim =3D CSUtil.getDim( oToolRow ); =20 // // Create Go To tools. // var oJumpToolsFrame =3D document.createElement( 'div' ); oJumpToolsFrame.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'oJumpToolsFrame' ); oMonthFrame.appendChild( oJumpToolsFrame ); CSExt.cal.setToolBarFrameStyles( oJumpToolsFrame, = oNavClose.scrollHeight );//toolRowDim.h oJumpToolsFrame.style.borderRight =3D "none"; =20 =20 // // Create Go To options. // var oJumpCtrl =3D document.createElement( 'div' ); oJumpCtrl.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oJumpCtrl' ); CSExt.cal.setDropDownFrameStyles( oJumpCtrl ); oJumpToolsFrame.appendChild( oJumpCtrl ); // // Go to instruction. // var oGoToInstruction =3D document.createElement( 'div' ); oGoToInstruction.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'oGoToInstruction' ); CSExt.cal.setDropDownInstrStyles( oGoToInstruction, = oNavClose.scrollHeight );//toolRowDim.h oGoToInstruction.innerHTML =3D CS_CAL_GOTO + ":"; oJumpCtrl.appendChild( oGoToInstruction ); // // Option: Jump to today. // var oChoice1 =3D document.createElement( 'div' ); oChoice1.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oChoice1' ); oChoice1.onmouseover =3D function () { = CSExt.cal.setDropDownMouseOverStyles( this ); }; oChoice1.onmouseout =3D function () { = CSExt.cal.setDropDownMouseOutStyles( this ); }; oChoice1.onclick =3D function () { CSExt.cal.processJumpSelection( = 1 ) }; CSExt.cal.setDropDownStyles( oChoice1 ); oChoice1.innerHTML =3D CS_CAL_GOTO_TODAY; oJumpCtrl.appendChild( oChoice1 ); // // Option: Jump to month. // var oChoice2 =3D document.createElement( 'div' ); oChoice2.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oChoice2' ); oChoice2.onmouseover =3D function () { = CSExt.cal.setDropDownMouseOverStyles( this ); }; oChoice2.onmouseout =3D function () { = CSExt.cal.setDropDownMouseOutStyles( this ); }; oChoice2.onclick =3D function () { CSExt.cal.processJumpSelection( = 2 ) }; CSExt.cal.setDropDownStyles( oChoice2 ); oChoice2.innerHTML =3D CS_CAL_GOTO_MONTH; oJumpCtrl.appendChild( oChoice2 ); // // Option: Jump to year. // var oChoice3 =3D document.createElement( 'div' ); oChoice3.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oChoice3' ); oChoice3.onmouseover =3D function () { = CSExt.cal.setDropDownMouseOverStyles( this ); }; oChoice3.onmouseout =3D function () { = CSExt.cal.setDropDownMouseOutStyles( this ); }; oChoice3.onclick =3D function () { CSExt.cal.processJumpSelection( = 3 ) }; CSExt.cal.setDropDownStyles( oChoice3 ); oChoice3.innerHTML =3D CS_CAL_GOTO_YEAR; oJumpCtrl.appendChild( oChoice3 ); // // Month control. // var oJumpMonth =3D document.createElement( 'div' ); oJumpMonth.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oJumpMonth' ); CSExt.cal.setDropDownFrameStyles( oJumpMonth ); oJumpToolsFrame.appendChild( oJumpMonth ); // // Month instruction. // var oMonthInstruction =3D document.createElement( 'div' ); oMonthInstruction.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'oMonthInstruction' ); CSExt.cal.setDropDownInstrStyles( oMonthInstruction, = oNavClose.scrollHeight );//toolRowDim.h oMonthInstruction.innerHTML =3D CS_CAL_SELECT_MONTH + ":"; oJumpMonth.appendChild( oMonthInstruction ); // // Options 0 - 11: selects month corresponding to ordinal. // for (var i =3D 0; i < CS_CAL_MONTHSARRAY.length; i++) { var oMonthOption =3D new Array(); oMonthOption[i] =3D document.createElement( 'div' ); oMonthOption[i].setAttribute( 'id', i ); //CSExt.cal.NAMESTEM + = 'oMonth_' + oMonthOption[i].onmouseover =3D function () { = CSExt.cal.setDropDownMouseOverStyles( this ); }; oMonthOption[i].onmouseout =3D function () { = CSExt.cal.setDropDownMouseOutStyles( this ); }; oMonthOption[i].onclick =3D function () { CSExt.cal.jumpToMonth( = this.id ) }; CSExt.cal.setDropDownStyles( oMonthOption[i] ); oMonthOption[i].innerHTML =3D CS_CAL_MONTHSARRAY[i]; oJumpMonth.appendChild( oMonthOption[i] ); } // // Create year change field. // var oYearChangeField =3D document.createElement( 'input' ); oYearChangeField.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'changeYearField' ); //oYearChangeField.setAttribute( 'size', (document.all) ? 1 : 4); oYearChangeField.setAttribute( 'maxLength', '4' ); if (document.all) { oYearChangeField.onkeyup =3D function () { CSExt.cal.validateYear(); = }; } else if (CSUtil.isSafari) { oYearChangeField.onkeypress =3D function () { return = CSExt.cal.validateYear(); }; } else { = // Workaround for NS event handling. oYearChangeField.onkeyup =3D CSExt.cal.validateYear; = // The other 'function ()' style } = // doesn't work in this one case. CSExt.cal.setYearEditableStyle( oYearChangeField, = oNavClose.scrollHeight-2 ); //toolRowDim.h-2 oJumpToolsFrame.appendChild( oYearChangeField ); // // Create month/year display row. // var oDisplayRow =3D document.createElement( 'tr' ); oDisplayRow.setAttribute( 'id', CSExt.cal.NAMESTEM + 'displayRow' ); oTBody.appendChild( oDisplayRow ); // // Create month/year display frame. // var oDisplayFrame =3D document.createElement( 'td' ); oDisplayFrame.setAttribute( 'id', CSExt.cal.NAMESTEM + = 'cellDiplayFrame' ); oDisplayFrame.setAttribute( 'colSpan', 7 ); oDisplayFrame.setAttribute( 'align', 'center' ); oDisplayFrame.setAttribute( 'valign', 'middle' ); CSExt.cal.setDateDisplayStyle( oDisplayFrame ); oDisplayRow.appendChild( oDisplayFrame ); // // Create month holder. // var oDateDisplay =3D document.createElement( 'span' ); oDateDisplay.setAttribute( 'id', CSExt.cal.NAMESTEM + 'displayDate' ); oDisplayFrame.appendChild( oDateDisplay ); // // Create year help div. // var oYearHelp =3D document.createElement( 'div' ); oYearHelp.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oYearHelp'); with( oYearHelp.style ) { position =3D 'absolute'; backgroundColor =3D CSExt.cal.navColor; =20 color =3D CSExt.cal.fontColor; fontWeight =3D 'normal'; border =3D "1px solid " + CSExt.cal.borderColor; fontFamily =3D CSExt.cal.font; paddingTop =3D "8px"; display =3D "none"; } var oYearHelpInstr =3D document.createElement( 'ul' ); with( oYearHelpInstr.style ) { textAlign =3D 'left'; listStyleType =3D 'square'; } oYearHelp.appendChild( oYearHelpInstr ); =20 // Format "Enter" if able. var enterFormat =3D "font-weight:bold;font-family:courier;"; if (CS_CAL_YEAR_INSTRUCTION_B.indexOf("Enter") !=3D -1) { CS_CAL_YEAR_INSTRUCTION_B =3D = CS_CAL_YEAR_INSTRUCTION_B.replace(/Enter/, "Enter"); } =20 oYearHelpInstr.innerHTML =3D "
  • " + CS_CAL_YEAR_INSTRUCTION_A + = "
  • " + CS_CAL_YEAR_INSTRUCTION_B + "
  • "; oDisplayFrame.appendChild( oYearHelp ); =20 // // Create row for names of days. // var oDaysRow =3D document.createElement( 'tr' ); oDaysRow.setAttribute( 'id', CSExt.cal.NAMESTEM + 'daysRow' ); oTBody.appendChild( oDaysRow ); // // Create cells with names of days. // var oDay =3D new Array(CS_CAL_DAYSARRAY.length); for (var i =3D 0; i < oDay.length; i++) { oDay[i] =3D document.createElement( 'td' ); oDay[i].setAttribute( 'id', CSExt.cal.NAMESTEM + CS_CAL_DAYSARRAY[i] = ); oDay[i].setAttribute( 'title', CS_CAL_DAYSLONGARRAY[i] ); CSExt.cal.setDaysOfWeekStyle( oDay[i] ); oDay[i].innerHTML =3D (CSExt.cal.abbrevDays) ? CS_CAL_DAYSARRAY[i] : = CS_CAL_DAYSLONGARRAY[i]; oDaysRow.appendChild( oDay[i] ); } =20 CSExt.cal.computeSizes(); =20 // // Create date rows and cells. // var boxNum =3D 1; for (var i =3D 0; i < 6; i++) { var oWeek =3D document.createElement( 'tr' ); oWeek.setAttribute( 'id', CSExt.cal.NAMESTEM + 'oWeek' + i ); oTBody.appendChild( oWeek ); for (var d =3D 0; d < 7; d++) { var oDateCell =3D document.createElement( 'td' ); oDateCell.setAttribute( 'id', CSExt.cal.NAMESTEM + 'box' + boxNum = ); oDateCell.setAttribute( 'align', CSExt.cal.datesAlign ); oDateCell.onmouseover =3D function () { = CSExt.cal.dateOnMouseOver( this ); }; oDateCell.onmouseout =3D function () { CSExt.cal.dateOnMouseOut( = this ); }; oDateCell.onclick =3D function () { = CSExt.cal.insertDateSelected( this ); }; oDateCell.innerHTML =3D " "; oWeek.appendChild( oDateCell ); boxNum++; } } // // Jump ahead to date range if: // * minDate exists // * minDate not in current month and // * minDate in the future. // if (CSExt.cal.minDate && !CSExt.cal.dateInRange( CSExt.cal.minDate , = CSExt.cal.firstOfMonth , CSExt.cal.lastOfMonth ) && CSExt.cal.getDateDifference( CSExt.cal.todayDate, = CSExt.cal.minDate ) > 0) { CSExt.cal.displayDate =3D new Date( CSExt.cal.minDate ); = //alert(CSExt.cal.displayDate); } CSExt.cal.insertDates(); // // Create iframe to block out select boxes. // Fixes IE bug: select boxes have permanent z-index of infinity. // if (CSUtil.createIFrame( oMonthFrame )) {=20 // Further adjustment. "100%" works with most other objects. document.getElementById(oMonthFrame.id + "_iFrame").style.width =3D = CSUtil.pxperc(oMonthFrame.offsetWidth+2, CSExt.VisiblePage) + "%"; } =20 CSUtil.createIFrame( oJumpMonth ); =20 =20 // // Show shadow if desired. // if (CSExt.cal.shadow) { var oCalDim =3D CSUtil.getDim( oMonthFrame ); var oShadow =3D document.createElement( 'div' ); oShadow.setAttribute( 'id', CSExt.cal.NAMESTEM + 'shadow' ); with ( oShadow.style ) { position =3D 'absolute'; left =3D oCalDim.x - CSExt.cal.shadowOffset; top =3D oCalDim.y + CSExt.cal.shadowOffset; width =3D oCalDim.w; height =3D oCalDim.h; backgroundColor =3D CSExt.cal.shadowBgColor; zIndex =3D 0; } oShadow.innerHTML =3D " "; document.body.appendChild( oShadow ); CSUtil.createIFrame( oShadow ); //CSUtil.repositionIt( oShadow, CSExt.cal.targetElement ); } // // Adjust x and y positions of an object relative to the target = element // if it would be positioned off the screen to the right or bottom. // CSUtil.repositionIt( oMonthFrame, CSExt.cal.targetElement ); =20 return true; } // // Get width of widest cell and set all days to that width // and calendar frame to 7x that width. This regularizes the look. // CSExt.cal.computeSizes =3D function() { var oCalTable =3D document.getElementById(CSExt.cal.NAMESTEM + = 'calTable'); var widestCell =3D 0; var oDay =3D new Array(CS_CAL_DAYSARRAY.length); // Get Tool Row dimensions. =20 =20 if (oCalTable) { // Get widest cell. for (var i =3D 0; i < 7; i++) { oDay[i] =3D document.getElementById(CSExt.cal.NAMESTEM + = CS_CAL_DAYSARRAY[i]); var oDayDim =3D CSUtil.getDim( oDay[i] ); if (oDayDim.w > widestCell) { widestCell =3D oDayDim.w; } //alert(oDayDim.w + " - " + widestCell); } // Adjust cal width. if (document.all && CSUtil.ua.indexOf("MSIE 5.5") =3D=3D -1 && = CSExt.CSForm.isOffline() =3D=3D false) // IE 5.5 and Offline bug oCalTable.style.width =3D CSUtil.pxperc( widestCell * 7, = CSExt.cal.page ) + "%"; else oCalTable.style.width =3D (widestCell * 7)+ "px"; =20 // Adjust days width. =20 for (var i =3D 0; i < oDay.length; i++) { oDay[i].style.width =3D widestCell + "px"; } =20 // Adjust tools' sizes. var oToolRow =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oToolRow'); var toolRowDim =3D CSUtil.getDim( oToolRow ); =20 var oJumpToolsFrame =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpToolsFrame'); var oJumpCtrl =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpCtrl'); var oJumpMonth =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpMonth'); var oGoToInstruction =3D document.getElementById(CSExt.cal.NAMESTEM = + 'oGoToInstruction'); var oMonthInstruction =3D document.getElementById(CSExt.cal.NAMESTEM = + 'oMonthInstruction'); var oChangeYearField =3D document.getElementById(CSExt.cal.NAMESTEM = + 'changeYearField'); =20 var oYearHelp =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oYearHelp'); var oDisplayRow =3D document.getElementById(CSExt.cal.NAMESTEM + = 'displayRow'); =20 oJumpToolsFrame.style.left =3D widestCell * 2 + = CSExt.cal.cellPadding/2 + "px"; oJumpToolsFrame.style.width =3D widestCell * 4 + = CSExt.cal.cellPadding/2 - 3 + "px"; oJumpCtrl.style.width =3D widestCell * 4 + = CSExt.cal.cellPadding/2 - 3 + "px"; oJumpMonth.style.width =3D widestCell * 4 + = CSExt.cal.cellPadding/2 - 3 + "px"; if (CSUtil.isSafari) { oJumpToolsFrame.style.top =3D = ((CSExt.cal.canDrag)?parseInt(oJumpToolsFrame.style.top) + 4 :0) + "px"; = oYearHelp.style.top =3D ((CSExt.cal.canDrag)? 24 + 22 :24) + "px"; = oJumpToolsFrame.style.height =3D 22 + "px"; oGoToInstruction.style.height =3D 22 + "px"; oMonthInstruction.style.height =3D 22 + "px"; oChangeYearField.style.height =3D 24 + "px"; } =20 if (!document.all && !CSUtil.isSafari) { oJumpToolsFrame.style.height =3D 19 + "px"; oGoToInstruction.style.height =3D 19 + "px"; oMonthInstruction.style.height =3D 19 + "px"; oChangeYearField.style.height =3D 19 + "px"; =20 oYearHelp.style.top =3D = ((CSExt.cal.canDrag)?CSExt.cal.dragBarHeight:0) + = parseInt(oJumpToolsFrame.style.height)+2 + "px"; } =20 oYearHelp.style.left =3D "2px"; oYearHelp.style.width =3D ((document.all)?"102%":toolRowDim.w-8 + = "px"); if (document.all) oYearHelp.style.paddingTop =3D "12px"; =20 // // Make some adjustments for German's many long words. =20 // This isn't really ideal but results in an enormous aesthetic = improvement. if (CSClient.getLanguageCode() =3D=3D "de") { =20 var oChoice1 =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oChoice1'); var oChoice2 =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oChoice2'); var oChoice3 =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oChoice3'); =20 =20 // widths oCalTable.style.width =3D "200%"; oJumpToolsFrame.style.width =3D "121px"; oJumpCtrl.style.width =3D "121px"; oJumpMonth.style.width =3D "128px"; oGoToInstruction.style.width =3D "121px"; oMonthInstruction.style.width =3D "123px"; oChoice1.style.width =3D "121px"; oChoice2.style.width =3D "121px"; oChoice3.style.width =3D "121px"; =20 // heights oChangeYearField.style.height =3D "20px"; oGoToInstruction.style.height =3D "20px"; oMonthInstruction.style.height =3D "20px"; } =20 } =20 } // // Get the last date of the month, e.g., 28, 29, 30, 31. // CSExt.cal.getLastDate =3D function ( pDate ) { var bRet =3D null; var tmpDate =3D new Date( pDate ); for (var a =3D 28; a <=3D 31; a++) { tmpDate.setDate( a ); = //alert("tmpDate.getMonth():" + tmpDate.getMonth() + = "\npDate.getMonth():" + pDate.getMonth()); if (tmpDate.getMonth() =3D=3D pDate.getMonth()){ bRet =3D a; } } return bRet; } // // Insert the dates in to the correct boxes. // CSExt.cal.insertDates =3D function () { var dd =3D CSExt.cal.getDateParts( CSExt.cal.displayDate ); // // Get the day of the week which is the 1st of the month. // var tmpDate =3D new Date( CSExt.cal.displayDate ); tmpDate.setDate( 1 ); var displayFirstDay =3D tmpDate.getDay() + 1; // // Get the last date of the month, e.g., 28, 29, 30, 31. // var displayLastDate =3D CSExt.cal.getLastDate ( CSExt.cal.displayDate = ); // // Update the month/year display. // document.getElementById(CSExt.cal.NAMESTEM + 'displayDate').innerHTML = =3D dd.monthName + " " + dd.year; document.getElementById(CSExt.cal.NAMESTEM + 'changeYearField').value = =3D dd.year; // // Update nav titles // document.getElementById(CSExt.cal.NAMESTEM + 'lastMonth').title = =3D CS_CAL_GOTO + " " + CSExt.cal.getMonthName( dd.month-1 ); document.getElementById(CSExt.cal.NAMESTEM + 'nextMonth').title = =3D CS_CAL_GOTO + " " + CSExt.cal.getMonthName( dd.month+1 ); document.getElementById(CSExt.cal.NAMESTEM + 'lastYear').title = =3D CS_CAL_GOTO + " " + ( parseInt(dd.year)-1 ); document.getElementById(CSExt.cal.NAMESTEM + 'nextYear').title = =3D CS_CAL_GOTO + " " + ( parseInt(dd.year)+1 ); // This loop fills in the 6x7 grid with the dates, making sure the // 1st starts on the correct day and quits writing dates on the last = day. // i =3D box number // d =3D day of the month // var d =3D 1; var oCell =3D null; for (var i =3D 1; i <=3D 42; i++){ oCell =3D document.getElementById(CSExt.cal.NAMESTEM + 'box' + i); // Reset value and color of cell. oCell.innerHTML =3D " "; oCell.setAttribute( 'title', "" ); CSExt.cal.setBlanksStyle( oCell ); // // Set correct values and colors // if (i >=3D displayFirstDay && d <=3D displayLastDate){ oCell.innerHTML =3D d; oCell.setAttribute( 'title', dd.monthName + " " + d + ", " + = dd.year ); CSExt.cal.setDateInRangeStyle( oCell ); // // Show dates that are out of range as disabled. // var testDate =3D (dd.month+1) + "/" + d + "/" + dd.year; if (CSExt.cal.minDate || CSExt.cal.maxDate) { if ( !CSExt.cal.dateInRange( testDate, CSExt.cal.minDate, = CSExt.cal.maxDate ) ) { CSExt.cal.setDateOutOfRangeStyle( oCell ); } } // // Set corresponding date field date highlight color. // var tempDate =3D new Date( testDate ); if (tempDate.toString() =3D=3D CSExt.cal.targetDate.toString()) { CSExt.cal.setTargetDateStyle( oCell ); } // // Set Today highlight color. // if (CSExt.cal.todayDate.getDate() =3D=3D d && = CSExt.cal.todayDate.getMonth() =3D=3D CSExt.cal.displayDate.getMonth() = && CSExt.cal.todayDate.getYear() =3D=3D CSExt.cal.displayDate.getYear()) = { CSExt.cal.setTodayDateStyle( oCell ); oCell.setAttribute( 'title', CS_CAL_GOTO_TODAY + ": " + = dd.monthName + " " + d + ", " + dd.year ); } d++; } } return true; } // // Checks to see if a test date is with the specified range, if a = range exist. // CSExt.cal.dateInRange =3D function ( testDate, pMinDate, pMaxDate ) { //alert("testDate: " + testDate + "\npMinDate: " + pMinDate + = "\npMaxDate" + pMaxDate); var bRet =3D false; var tDate =3D new Date( testDate ); //alert("tDate: " + tDate + "\ntodayDate: " + CSExt.cal.todayDate + = "\ntDate >=3D CSExt.cal.todayDate:" + (tDate >=3D CSExt.cal.todayDate)); if (pMaxDate =3D=3D "true" && tDate < CSExt.cal.todayDate) { bRet =3D true; } else if (pMinDate =3D=3D "true" && tDate > CSExt.cal.todayDate) { bRet =3D true; } else if (pMinDate && pMaxDate) { //alert("tDate: " + tDate = + "\npMinDate: " + pMinDate + "\n" + (tDate >=3D pMinDate)); if (tDate >=3D pMinDate && tDate <=3D pMaxDate) { bRet =3D true; } } else if (pMinDate) { if (tDate >=3D pMinDate) { bRet =3D true; } } else if (pMaxDate) { if (tDate <=3D pMaxDate) { bRet =3D true; } } else { bRet =3D true; } return bRet; } // // Get any date that might be prefilled in the target field. // CSExt.cal.getTargetFieldDate =3D function ( el ) { var bRetDate =3D new Date(); var targetDate =3D el.value; if (targetDate !=3D ""){ // Replace common dot notation. if (targetDate.indexOf(".") !=3D -1) { targetDate =3D targetDate.replace(/\./g,"/"); } // If JavScript can recognize the date, use it. var tryDate =3D new Date( targetDate ); if (tryDate && !isNaN( tryDate )) { bRetDate =3D tryDate; } } return bRetDate; } // // Check if Esc key hit while date picker up. // CSExt.cal.checkEscape =3D function ( e ){ var obj =3D document.getElementById(CSExt.cal.NAMESTEM + = 'calCtrlContainer'); if (!e) var e =3D window.event; if(obj && e.keyCode =3D=3D 27) { return CSExt.cal.closeCalendar(); } } // // Close the calendar control and, if necessary, the shadow. // CSExt.cal.closeCalendar =3D function () { var obj =3D document.getElementById(CSExt.cal.NAMESTEM + = 'calCtrlContainer'); var shadow =3D document.getElementById(CSExt.cal.NAMESTEM + 'shadow'); if (obj) { obj.parentNode.removeChild(obj); =20 // Remove zoom event handler which cleans up the interface while = zooming. if (document.getElementById('DFS__ctrlZoom')) { if (document.all) { document.getElementById('DFS__ctrlZoom').detachEvent( = 'onchange', CSExt.cal.computeSizes ); } else { document.getElementById('DFS__ctrlZoom').removeEventListener( = 'change', CSExt.cal.hideJumpControl, false ); } } =20 =20 if (shadow) { shadow.parentNode.removeChild(shadow); } return true; } return false; } // // Get month name. // CSExt.cal.getMonthName =3D function ( pMonthNum ) { var month =3D parseInt(pMonthNum); if (month > 11) { month =3D 0; } else if (month < 0) { month =3D 11; } return CS_CAL_MONTHSARRAY[month]; } // // Get year in displayable form. Bypasses browser year bugs. // CSExt.cal.getDisplayableYear =3D function ( pYear ) { var yy =3D pYear.toString(); var theYear =3D yy; //alert(yy);alert(yy.length); if(document.all) { if (yy.length =3D=3D 1) { theYear =3D "190" + yy; } else if (yy.length =3D=3D 2) { theYear =3D "19" + yy; } } =20 if (theYear > 9999) theYear =3D null; if (!document.all) { theYear =3D parseInt(theYear) + 1900; } return theYear; } // // Change month. // CSExt.cal.changeMonth =3D function ( pMonth ) { var newMonth =3D pMonth; var newDate =3D CSExt.cal.displayDate.getDate(); var tmpDate =3D CSExt.cal.displayDate; =20 // If the current day date (1-31) is greater than the amount of days = in the // target month, the date will be advanced to the next month. To = prevent this // we test setting a new month. HEAT# 141289 tmpDate.setMonth( newMonth ); if (tmpDate.getMonth() !=3D newMonth) { // The correct day date can be obtained by subtracting the date set = by the // JS Date object from the previous date (e.g. Jan 30 + 1 month =3D = March 2, // 30 - 2 =3D 28, correct date Feb 28) newDate -=3D tmpDate.getDate(); } =20 CSExt.cal.displayDate.setMonth( newMonth, newDate ); if (CSExt.cal.displayDate.getYear() > 9999 || (!document.all && = CSExt.cal.displayDate.getYear() >=3D 8100)) return; document.getElementById(CSExt.cal.NAMESTEM + 'lastMonth').title =3D = CSExt.cal.getMonthName( newMonth-1 ); document.getElementById(CSExt.cal.NAMESTEM + 'nextMonth').title =3D = CSExt.cal.getMonthName( newMonth+1 ); CSExt.cal.insertDates(); } // // Change year. // CSExt.cal.changeYear =3D function ( pYear ) { var newYear =3D pYear; if (newYear.toString().length > 4) return; CSExt.cal.displayDate.setFullYear( newYear ); document.getElementById(CSExt.cal.NAMESTEM + 'lastYear').title =3D = parseInt(newYear - 1); document.getElementById(CSExt.cal.NAMESTEM + 'nextYear').title =3D = parseInt(newYear + 1); CSExt.cal.insertDates(); } // // Validate year jump entry because the user is typing it in. // Based on onkeyup event in the year input box. // CSExt.cal.validateYear =3D function ( e ) { var val =3D document.getElementById(CSExt.cal.NAMESTEM + = 'changeYearField').value; // Make sure entry is a digit and does not begin with zero. if(val.search(/^(\d){1,4}$/) =3D=3D -1 || val.search(/^[^0]/) =3D=3D = -1) { // No error is displayed. Instead, the offending character is = erased. document.getElementById(CSExt.cal.NAMESTEM + = 'changeYearField').value =3D val.substring(0, val.length-1); } // // If the Enter key is hit, make sure entry is 4 digits long and = greater than or // equal to 1000 (JavaScript date object is unpredictable earlier = than 1000). // if (!e) var e =3D window.event; // Safari bug: Enter key=3D3, Return=3D13 if((e.keyCode =3D=3D 13 || e.keyCode =3D=3D 3) && val.length =3D=3D 4 = && parseInt(val) >=3D 1000) { CSExt.cal.changeYear( val ); CSExt.cal.yearOnBlur(); CSExt.cal.hideJumpControl(); return false; // Mainly so Safari won't submit form. } } // // Year field onblur behavior. // CSExt.cal.yearOnBlur =3D function () { var ty =3D document.getElementById(CSExt.cal.NAMESTEM + = 'changeYearField'); var yh =3D document.getElementById(CSExt.cal.NAMESTEM + 'oYearHelp'); =20 ty.value =3D CSExt.cal.getDisplayableYear( = CSExt.cal.displayDate.getYear() ); ty.style.visibility =3D "hidden"; ty.blur(); yh.style.display =3D 'none'; } // // Calendar date onmouseover behavior. // CSExt.cal.dateOnMouseOver =3D function ( cell ) { var d =3D parseInt(cell.innerHTML); var dd =3D CSExt.cal.getDateParts( CSExt.cal.displayDate ); testDate =3D new Date( (dd.month+1) + "/" + d + "/" + dd.year ); if (!isNaN( d ) && CSExt.cal.dateInRange ( testDate, = CSExt.cal.minDate, CSExt.cal.maxDate )) { CSExt.cal.setDateHoverStyle( cell ); } } // // Calendar date onmouseout behavior. // CSExt.cal.dateOnMouseOut =3D function ( cell ) { var d =3D parseInt(cell.innerHTML); var dd =3D CSExt.cal.getDateParts( CSExt.cal.displayDate ); testDate =3D new Date( (dd.month+1) + "/" + d + "/" + dd.year ); var tempDate =3D new Date( testDate ); //alert("tempDate: " + tempDate.toString() + "\ntarget: " + = CSExt.cal.targetDate.toString() + "\n" + (tempDate.toString() =3D=3D = CSExt.cal.targetDate.toString())); if (CSExt.cal.todayDate.getDate() =3D=3D d && = CSExt.cal.todayDate.getMonth() =3D=3D CSExt.cal.displayDate.getMonth() = && CSExt.cal.todayDate.getYear() =3D=3D CSExt.cal.displayDate.getYear()) = { CSExt.cal.setTodayDateStyle( cell ); } else if (tempDate.toString() =3D=3D CSExt.cal.targetDate.toString()) = { //if (d =3D=3D CSExt.cal.displayDate.getDate() && = CSExt.cal.todayDate.getMonth() =3D=3D CSExt.cal.displayDate.getMonth()) = { CSExt.cal.setTargetDateStyle( cell ); } else if (!isNaN( d )) { if(CSExt.cal.dateInRange ( testDate, CSExt.cal.minDate, = CSExt.cal.maxDate )) { CSExt.cal.setDateInRangeStyle( cell ); } } } // // Insert selected date. // CSExt.cal.insertDateSelected =3D function ( cell ) { var d =3D parseInt(cell.innerHTML); var dd =3D CSExt.cal.getDateParts( CSExt.cal.displayDate ); var dateString =3D (dd.month+1) + "/" + d + "/" + dd.year; testDate =3D new Date( dateString ); if (isNaN( d ) || !CSExt.cal.dateInRange ( testDate, = CSExt.cal.minDate, CSExt.cal.maxDate )) { return; } else { CSExt.cal.displayDate.setDate( d ); // Format date and return. calf =3D CSExt.f[CSExt.cal.targetElement.id]; var calCSDate =3D new CSDate( dd.year, (dd.month+1), d ); CSFmt.setIntVal( calf.fmt, calCSDate ); CSFmt.useIntVal( calf.fmt, calCSDate ); CSFmt.format( calf.fmt ); =20 CSExt.cal.targetElement.value =3D calCSDate.res[0];=20 CSExt.cal.closeCalendar(); CS_FireOnChange(CSExt.cal.targetElement); CSExt.cal.targetElement.focus(); =20 =20 return true; } } // // Function to break down date parts for use. // CSExt.cal.getDateParts =3D function ( pDate ) { var oDate =3D new Date( pDate ); var month =3D oDate.getMonth(); var monthName =3D CSExt.cal.getMonthName(oDate.getMonth() ); var date =3D oDate.getDate(); var year =3D CSExt.cal.getDisplayableYear( oDate.getYear() ); var day =3D oDate.getDay(); return { month:month, monthName:monthName, date:date, year:year, = day:day } } // // Switch Jump button states. // CSExt.cal.showJumpControlSwitch =3D function ( cell ) { if (cell.innerHTML =3D=3D CS_CAL_GOTO) { CSExt.cal.showJumpControl(); } else { CSExt.cal.hideJumpControl(); } } // // Show Jump button. // CSExt.cal.showJumpControl =3D function () { var oJC =3D document.getElementById(CSExt.cal.NAMESTEM + 'oJumpCtrl'); = =20 var oJTF =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpToolsFrame'); var oJB =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpButton'); oJC.style.visibility =3D "visible"; oJTF.style.visibility =3D "visible"; // for Safari oJB.innerHTML =3D CS_CAL_CANCEL; oJB.title =3D CS_CAL_CANCEL; oJB.style.backgroundColor =3D CSExt.cal.cancelColor; =20 // Add zoom event handler which cleans up the interface while = zooming. if (document.getElementById('DFS__ctrlZoom')) { if (document.all) { document.getElementById('DFS__ctrlZoom').attachEvent( 'onchange', = CSExt.cal.computeSizes ); } else { document.getElementById('DFS__ctrlZoom').addEventListener( = 'change', CSExt.cal.hideJumpControl, false ); } } =20 } // // Hide Jump button. // CSExt.cal.hideJumpControl =3D function () { =20 var oJT =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpToolsFrame'); var oJB =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpButton'); var oJC =3D document.getElementById(CSExt.cal.NAMESTEM + 'oJumpCtrl'); var oJM =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpMonth'); oJT.style.visibility =3D "hidden"; oJC.style.visibility =3D "hidden"; oJB.innerHTML =3D CS_CAL_GOTO; oJB.title =3D CS_CAL_GOTO; oJB.style.backgroundColor =3D CSExt.cal.navColor; oJM.style.visibility =3D "hidden"; CSExt.cal.yearOnBlur(); } // // Process Go to selection. // CSExt.cal.processJumpSelection =3D function ( pChoice ) { var oJT =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpToolsFrame'); var oJB =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpButton'); var oJC =3D document.getElementById(CSExt.cal.NAMESTEM + 'oJumpCtrl'); var oJM =3D document.getElementById(CSExt.cal.NAMESTEM + = 'oJumpMonth'); var oDY =3D document.getElementById(CSExt.cal.NAMESTEM + = 'changeYearField'); var oYH =3D document.getElementById(CSExt.cal.NAMESTEM + 'oYearHelp'); if(pChoice =3D=3D CSExt.cal.GOTO_TODAY) { CSExt.cal.displayDate =3D new Date(); CSExt.cal.insertDates(); CSExt.cal.hideJumpControl(); } else if (pChoice =3D=3D CSExt.cal.SELECT_MONTH) { =20 oJC.style.visibility =3D "hidden"; oJM.style.visibility =3D "visible"; } else if (pChoice =3D=3D CSExt.cal.SELECT_YEAR) {=20 oJC.style.visibility =3D "hidden"; oJT.style.visibility =3D "visible"; oDY.style.visibility =3D "visible"; oYH.style.display =3D "block"; oDY.onfocus =3D null; oDY.focus(); oDY.select(3, 2); } } // // Process user's "jump to month" selection. // CSExt.cal.jumpToMonth =3D function ( pMonth ) { CSExt.cal.changeMonth( pMonth ); CSExt.cal.hideJumpControl(); } CSExt.cal.getDateDifference =3D function ( pDate1, pDate2 ) { var retDiff =3D null; var d1, d2 =3D null; var diff =3D null; if (pDate1) { d1 =3D pDate1; } if (pDate2) { d2 =3D pDate2; } if (d1 && d2) { diff =3D Math.floor((d2 - d1) / (1000 * 60 * 60 * 24));=20 } if (!isNaN( diff )) { retDiff =3D diff; } return retDiff; } // // ** Styles ** // // Set styles for navigation buttons. CSExt.cal.setDragStyles =3D function ( el ) { if (el) { with ( el.style ) { border =3D "1px solid " + CSExt.cal.borderColor;=20 height =3D CSExt.cal.dragBarHeight + "px"; backgroundColor =3D CSExt.cal.dragColor; backgroundImage =3D "url(" + CSExt.handleImg + ")"; } CSExt.cal.setFontsStyle( el ); } } // Set styles for navigation buttons. CSExt.cal.setNavStyles =3D function ( el ) { if (el) { try { el.style.cursor =3D CSExt.cal.pointerCursor } // IE5.5 = doesn't support "pointer". catch(e) { CSExt.cal.pointerCursor =3D "default"; } =20 with ( el.style ) { textAlign =3D "center"; border =3D "1px solid " + CSExt.cal.borderColor;=20 backgroundColor =3D CSExt.cal.navColor; cursor =3D CSExt.cal.pointerCursor; } CSExt.cal.setFontsStyle( el ); } } // Set styles for tool bar frame. CSExt.cal.setToolBarFrameStyles =3D function ( el, h ) { if (el && parseInt(h)) { with ( el.style ) { position =3D "absolute";=20 top =3D ((CSExt.cal.canDrag) ? CSExt.cal.dragBarHeight = + ((CSUtil.isNS)?-1:1) : 0) + "px";=20 height =3D h + ((document.all) ? 0 : -15) + "px"; border =3D "1px solid gray"; backgroundColor =3D CSExt.cal.navColor;=20 visibility =3D "hidden"; zIndex =3D 0; } } } // Set styles for look-alike dropdowns frame. CSExt.cal.setDropDownFrameStyles =3D function ( el ) { if (el) { with ( el.style ) { position =3D "absolute"; top =3D "-1px"; left =3D "-1px"; textAlign =3D "left"; border =3D "1px solid gray"; visibility =3D "hidden"; zIndex =3D 2; } } } // Set styles for look-alike dropdowns Instructions. CSExt.cal.setDropDownInstrStyles =3D function ( el, h ) { if (el && parseInt(h)) { with ( el.style ) { height =3D h + ((document.all) ? -1 : -15) + "px"; backgroundColor =3D CSExt.cal.navColor; borderBottom =3D "1px solid gray"; paddingTop =3D "1px"; paddingLeft =3D "4px"; cursor =3D CSExt.cal.defaultCursor; } CSExt.cal.setFontsStyle( el ); } } // Set styles for look-alike dropdowns. CSExt.cal.setDropDownStyles =3D function ( el ) { if (el) { with ( el.style ) { paddingTop =3D "1px"; paddingBottom =3D "1px"; paddingLeft =3D "8px"; backgroundColor =3D CSExt.cal.selectBg; cursor =3D CSExt.cal.pointerCursor; } CSExt.cal.setFontsStyle( el ); } } // Set styles for look-alike dropdowns. CSExt.cal.setDropDownMouseOverStyles =3D function ( el ) { if (el) { with ( el.style ) { color =3D "white"; backgroundColor =3D CSExt.cal.selectOverBg; } } } // Set styles for look-alike dropdowns. CSExt.cal.setDropDownMouseOutStyles =3D function ( el ) { if (el) { with ( el.style ) { color =3D "black"; backgroundColor =3D CSExt.cal.selectBg; } } } // Set year change field style. CSExt.cal.setYearEditableStyle =3D function ( el, h ) { if (el && parseInt(h)) { with ( el.style ) { position =3D "absolute"; top =3D "0px"; left =3D "0px"; width =3D "38px"; height =3D h + ((document.all) ? 0 : -16) + "px"; visibility =3D "hidden"; zIndex =3D 2; =20 color =3D "black"; backgroundColor =3D CSExt.cal.selectBg; border =3D "1px solid gray"; } CSExt.cal.setFontsStyle( el ); } } // Set styles for days of week row. CSExt.cal.setDaysOfWeekStyle =3D function ( el ) { if (el) { with ( el.style ) { textAlign =3D "center"; backgroundColor =3D CSExt.cal.daysOfWeek; color =3D CSExt.cal.dayOfWeekColor; cursor =3D CSExt.cal.defaultCursor; } CSExt.cal.setFontsStyle( el ); } } // Set basic date display styles. CSExt.cal.setDateDisplayStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.dateDisplayBg; color =3D CSExt.cal.dateDisplayColor; fontWeight =3D "bold"; textAlign =3D "center"; border =3D "0px"; padding =3D "4px"; cursor =3D CSExt.cal.defaultCursor; } CSExt.cal.setFontsStyle( el ); } } // Set blank days style. CSExt.cal.setBlanksStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.blanksColor; cursor =3D CSExt.cal.defaultCursor; } } } // Set date in range style. CSExt.cal.setDateInRangeStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.daysColor; color =3D CSExt.cal.fontColor; cursor =3D CSExt.cal.pointerCursor; } } } // Set date out of range style. CSExt.cal.setDateOutOfRangeStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.notRangeColor; color =3D CSExt.cal.notRangeFontColor; cursor =3D CSExt.cal.defaultCursor; } } } // Set date of target field style. CSExt.cal.setTargetDateStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.theDayColor; } } } // Set Today style. CSExt.cal.setTodayDateStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.todayColor; } } } // Set date hover style. CSExt.cal.setDateHoverStyle =3D function ( el ) { if (el) { with ( el.style ) { backgroundColor =3D CSExt.cal.SelectColor; } } } // Set basic font styles. CSExt.cal.setFontsStyle =3D function ( el ) { if (el) { with ( el.style ) { fontSize =3D CSExt.cal.fontSize; fontFamily =3D CSExt.cal.font; } } } // = *************************************************************************= * // HTML Calendar Control Launcher Button // // Show calendar control button. // CSExt.cal.showCalLauncher =3D function( pField, pMinDate, pMaxDate ) { var field =3D null; var fldFormat =3D null; var minDate =3D null; var maxDate =3D null; var dim =3D null; =20 if (pField) { field =3D pField; } if (pMinDate) { minDate =3D pMinDate; } if (pMaxDate) { maxDate =3D pMaxDate; } =20 if (CSExt.cal.disabled || pField.readOnly) { return false; } =20 // If there is already a timeout pending for this launcher, cancel it = before // showing the launcher. fldFormat =3D CSExt.f[field.name].fmt; if (fldFormat.cal.launchTimeout !=3D null) { window.clearTimeout( fldFormat.cal.launchTimeout ); fldFormat.cal.launchTimeout =3D null; } =20 var fieldDim =3D CSUtil.getDim( field ); CSExt.cal.page =3D CSClient.getPageNumber( field ); // Make adjustment for continuous view. var useY =3D CSUtil.continousAdj( fieldDim.y, CSExt.cal.page ); =20 =20 // Make adjustment for zoom. Crazy positioning stuff for browsers. var zoom =3D document.getElementById('DFS__ctrlZoom').value; var yAdjustment =3D 0;=20 =20 if (CSUtil.isSafari) { yAdjustment =3D -7; if (zoom =3D=3D 80) yAdjustment =3D -11; else if (zoom =3D=3D 120) yAdjustment =3D -2; } else if (CSUtil.isNS || CSUtil.isGecko) { yAdjustment =3D -1; if (zoom =3D=3D 80) yAdjustment =3D -6; else if (zoom =3D=3D 120) yAdjustment =3D 1; =20 } else { yAdjustment =3D -10; if (zoom =3D=3D 80) yAdjustment =3D -8; else if (zoom =3D=3D 120) yAdjustment =3D -8; } =20 // Make adjustment to relative y position if top toolbar is not = visible. var tb =3D document.getElementById("DFS__toolbarTop"); if ( tb && tb.style.display =3D=3D "none" && = document.toolform.DFS__ctrlSetView.value !=3D CS_PAGED_MODE ) { yAdjustment +=3D 30; } =20 =20 // // Setup calendar control image. // var oCalCtrlImage =3D document.getElementById( = CSExt.cal.LAUNCH_NAMESTEM + field.id); with ( oCalCtrlImage.style ) { position =3D "absolute"; left =3D CSUtil.pxperc( fieldDim.x + fieldDim.w, CSExt.cal.page ) = + "%"; =20 top =3D CSUtil.pxperc( useY - fieldDim.h + yAdjustment, = CSExt.cal.page ) + "%"; =20 display =3D "block"; zIndex =3D 9999; } oCalCtrlImage.setAttribute( 'title', CS_CAL_SHOW_CAL ); oCalCtrlImage.onmouseover =3D function() { CSExt.cal.doMouseOver( = field, fldFormat ); } oCalCtrlImage.onmouseout =3D function() { CSExt.cal.doMouseOut( field = ); } oCalCtrlImage.onclick =3D function() { CSExt.cal.doMouseClick( = field, minDate, maxDate ); } =20 return true; } // // Hide calendar control button. // CSExt.cal.hideCalLauncher =3D function ( fld, delay ) { if (fld) { var calProp =3D CSExt.f[fld.name].fmt.cal; =20 // Only hide if the launcher is actually visible, the field does NOT = have // the focus, AND the field does NOT have the mouse // The launcher will not be visible if the feature is disabled, or = if the // field is read-only. if (calProp.launchVisible && CSExt.cal.focus !=3D fld.id && = CSExt.cal.mouse !=3D fld.id) { // If there is already a timeout pending for this launcher, cancel = it before // setting another one. if (calProp.launchTimeout !=3D null) { window.clearTimeout( calProp.launchTimeout ); calProp.launchTimeout =3D null; cs_trace( "cancelling timeout for " + fld.name ); } =20 // If no delay is specified, assume instantaneous hide if (!delay) { delay =3D 0; } =20 // Set a window timeout to hide the launcher in delay seconds and = save the // handle for cancelling var func =3D "CSExt.cal.hide('"+fld.id+"','"+fld.name+"')"; calProp.launchTimeout =3D CSUtil.timeout( func, delay ); } } } // // Actual hiding function called from a window timeout // CSExt.cal.hide =3D function ( field_id, field_name ) { var calProp =3D CSExt.f[field_name].fmt.cal; calProp.launchTimeout =3D null; calProp.launchVisible =3D false; =20 var launcher =3D document.getElementById( CSExt.cal.LAUNCH_NAMESTEM + = field_id ); launcher.style.display =3D "none"; } CSExt.cal.doMouseOver =3D function( fld, fmt ) { // Field has gained the mouse, so set the calMouse and show the = launcher CSExt.cal.mouse =3D fld.id; fmt.cal.launchVisible =3D CSExt.cal.showCalLauncher( fld, = fmt.fmtdt.mnv, fmt.fmtdt.mxv ); } CSExt.cal.doMouseOut =3D function( fld ) { // Clicking on the launcher and thereby disposing it causes a = subsequent // mouseout event to fire in both IE and Firefox. Since we = deliberately lose // the mouse when clicking the launcher, we check here so that an = extra hide // call is not generated. if (CSExt.cal.mouse =3D=3D fld.id) { // Field has lost the mouse, so reset the calMouse and hide the = launcher CSExt.cal.mouse =3D ""; CSExt.cal.hideCalLauncher( fld, 3 ); } } CSExt.cal.doMouseClick =3D function( fld, minDate, maxDate ) { //cs_trace( "launcher clicked for " + fld.name ); // Field has technically lost the mouse because the launcher is about = to // disappear, so reset the calMouse, hide the launcher, and bring up = the // picker CSExt.cal.mouse =3D ""; CSExt.cal.hideCalLauncher( fld, 0.2 ); CSExt.cal.visible =3D CSExt.cal.newCalendar( fld, minDate, maxDate ); } CSExt.OnFocus_bEP.Cal =3D function( fld ) { cs_assert( fld.name, "fld.name on date field focus" ); if (!fld.name) return; var fmt =3D CSExt.f[fld.name].fmt; if (typeof fmt.fmtdt !=3D "undefined") { if (fmt.fmtdt.subtype =3D=3D "date") { // Field has gained the focus, so set the calFocus and show the = launcher CSExt.cal.focus =3D fld.id; fmt.cal.launchVisible =3D CSExt.cal.showCalLauncher( fld, = fmt.fmtdt.mnv, fmt.fmtdt.mxv ); } } =20 // If a calendar picker is currently visible, close it if (CSExt.cal.visible) { CSExt.cal.visible =3D !CSExt.cal.closeCalendar(); } } CSExt.OnBlur_aEP.Cal =3D function( fld ) { cs_assert( fld.name, "fld.name on date field blur" ); if (!fld.name) return; var fmt =3D CSExt.f[fld.name].fmt; if (typeof fmt.fmtdt !=3D "undefined") { if (fmt.fmtdt.subtype =3D=3D "date") { //cs_trace( fld.name + " lost focus" ); // Field has lost the focus, so reset the calFocus and hide the = launcher CSExt.cal.focus =3D ""; CSExt.cal.hideCalLauncher( fld, 0.2 ); } } } CSExt.OnMouseOver_bEP.Cal =3D function( fld ) { cs_assert( fld.name, "fld.name on cal mousover" ); =20 if (!fld.name) return; var fmt =3D CSExt.f[fld.name].fmt; if (typeof fmt.fmtdt !=3D "undefined") { if (fmt.fmtdt.subtype =3D=3D "date") { //cs_trace( fld.name + " got mouse" ); CSExt.cal.doMouseOver( fld, fmt ); } =20 } =20 } CSExt.OnMouseOut_aEP.Cal =3D function( fld ) { cs_assert( fld.name, "fld.name on cal mousover" ); if (!fld.name) return; var fmt =3D CSExt.f[fld.name].fmt; if (typeof fmt.fmtdt !=3D "undefined") { if (fmt.fmtdt.subtype =3D=3D "date") { //cs_trace( fld.name + " lost mouse"); CSExt.cal.doMouseOut( fld ); } } =20 } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS83_Lib_CSPersist.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSPersist =3D new Object(); CSPersist.DFSFIELD =3D "DFS__T2" CSPersist.createObjectLiteral =3D function( obj ) {=20 var s =3D "{"; var i =3D 0; for (var name in obj) { if (i > 0) s +=3D ","; if (obj[name] =3D=3D null) { } else if (typeof( obj[name] ) =3D=3D "object") { s +=3D name + ":" + CSPersist.createObjectLiteral( obj[name] ); = i++ } else if (typeof( obj[name] ) =3D=3D "string") { s +=3D name + ":\"" + obj[name] + "\""; i++; } else { s +=3D name + ":" + obj[name]; i++; } } return s + "}"; } CSPersist.getFieldAttributes =3D function() { var ret =3D new Object(); var n =3D CSForm.getNumberOfFields(); for (var i =3D 0; i < n; i++) { var f =3D CSForm.getField( i ); =20 =20 ret[f.getName()] =3D = {rq:f.isRequired(),ro:f.isReadOnly(),hd:f.isHidden(),tc:f.getTextColor(),= fc:f.getFillColor()}; =20 } return ret; } CSPersist.setFieldAttributes =3D function( obj ) { do { if (obj =3D=3D null) break; for (var name in obj) { var o =3D obj[name]; var f =3D CSForm.getField( name ); if (o =3D=3D null || f =3D=3D null) continue; if (o.rq !=3D null) f.setRequired( o.rq ); if (o.ro !=3D null) f.setReadOnly( o.ro ); if (o.hd !=3D null) f.setHidden( o.hd ); if (o.tc !=3D null) f.setTextColor( o.tc ); if (o.fc !=3D null) f.setFillColor( o.fc ); } } while (false); } CSPersist.createObjectFromLiteral =3D function( s ) { var ret; if (s =3D=3D null || s =3D=3D "") return null; eval( "ret =3D " + s + ";" ); return ret; } CSPersist.archiveFields =3D function() { var obj =3D CSPersist.getFieldAttributes(); var ol =3D CSPersist.createObjectLiteral( obj ); CSClient.m_bQuiet =3D true; var f =3D CSForm.getField( CSPersist.DFSFIELD ) CSClient.m_bQuiet =3D false; if (f !=3D null) f.setValue( ol ); } CSPersist.retrieveFields =3D function() { do { CSClient.m_bQuiet =3D true; var f =3D CSForm.getField( CSPersist.DFSFIELD ); CSClient.m_bQuiet =3D false; if (f =3D=3D null) break; var ol =3D f.getValue(); var obj =3D CSPersist.createObjectFromLiteral( ol ); CSPersist.setFieldAttributes( obj ); } while (false); } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS85_Lib_CSCnv.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved var CSNUM =3D 1; var CSSTR =3D 2; var CSBOOL =3D 3; var CSDATE =3D 4; var CSTIME =3D 5; var CSFLD =3D 10; function CSVal( val, svals, type, intv ) { this.t =3D type; this.v =3D val; this.i =3D intv; this.sv =3D svals; this.err =3D new CSErr( CSFmt.ERR_SUCCESS ); } CSVal.n =3D function( n ) { var r =3D Number.NaN; if (typeof( n ) =3D=3D "number" ) { r =3D n } else if (typeof( n ) =3D=3D "string") { r =3D parseFloat( n ); } return new CSVal( r, null, CSNUM ); } CSVal.s =3D function( s, sv ) { if (typeof(sv) =3D=3D 'undefined') sv =3D=3D null; return new CSVal( s, sv, CSSTR ); } =20 CSVal.b =3D function( b ) { return new CSVal( b, null, CSBOOL ); } CSVal.d =3D function( d, iv ) { return new CSVal( d, null, CSDATE, iv ); } CSVal.t =3D function( t, iv ) { return new CSVal( t, null, CSTIME, iv ); } CSVal.f =3D function( f ) { return new CSVal( f, null, CSFLD ); } CSVal.prototype.valueOf =3D function() { return this.v; } CSVal.prototype.toString =3D function() { return this.v.toString(); } var CSCnv_DateTemplate =3D "YYYY-MM-DD"; var CSCnv_DateTokens =3D null; var CSCnv_DateRegExp =3D null; var CSCnv_TimeTemplate =3D "HH:mm:ss"; var CSCnv_TimeTokens =3D null; var CSCnv_TimeRegExp =3D null; CSCnv =3D new Object(); CSCnv.ATTRIB_READONLY =3D 'readonly'; CSCnv.ATTRIB_REQUIRED =3D 'required'; CSCnv.ATTRIB_HIDDEN =3D 'hidden'; CSCnv.ATTRIB_FGCOLOR =3D 'fgcolor'; CSCnv.ATTRIB_BGCOLOR =3D 'bgcolor'; CSCnv.ATTRIB_TYPE =3D 'type'; CSCnv.ATTRIB_VALUE =3D 'value'; CSCnv.setFieldLookupCallback =3D function( f ) { CSCnv.fldLookupClbk =3D f; } CSCnv.fieldLookup =3D function( f ) { return CSCnv.fldLookupClbk( f ); } CSCnv.setGetFieldAttributeCallback =3D function( f ) { var ret =3D CSCnv.getAttribClbk; CSCnv.getAttribClbk =3D f; return ret; } CSCnv.getFieldAttribute =3D function( fn, attrib ) { return CSCnv.getAttribClbk( fn, attrib ); } CSCnv.setSetFieldAttributeCallback =3D function( f ) { var ret =3D CSCnv.setAttribClbk; CSCnv.setAttribClbk =3D f; return ret; } CSCnv.setFieldAttribute =3D function( fn, attrib, val ) { return CSCnv.setAttribClbk( fn, attrib, val ); } function CSCnv_fnmbr2n( intv ) { var iv =3D CSFmt.getIntVal( intv ); if (iv =3D=3D null) iv =3D Number.NaN; return iv; } function CSCnv_fdt2n( obj ) { return CSCnv_dt2n( CSFmt.getIntVal( obj ) ); } function CSCnv_n2s( n ) { var r =3D "NaN"; if (typeof( n ) =3D=3D "number") { if (isNaN( n )) { r =3D "NaN"; } else if (!isFinite( n )) { if (n > 0) { r =3D "Infinity"; } else { r =3D "-Infinity"; } =20 } else { r =3D n.toString(); } } return r; } function CSCnv_b2s( b ) { return b =3D=3D true ? "true" : "false"; } function CSCnv_d2s( d ) { if (CSCnv_DateTokens =3D=3D null) { var dt =3D new CSDate(); CSCnv_DateTokens =3D dt.parseTemplate( CSCnv_DateTemplate ); } var dtemp =3D new CSDate(); dtemp.year =3D d.year !=3D null ? d.year : 1970; dtemp.month =3D = d.month !=3D null ? d.month : 1; dtemp.day =3D d.day !=3D null ? d.day : = 1; return (dtemp.formatDate( CSCnv_DateTokens, false ))[0];=20 } function CSCnv_t2s( t ) { if (CSCnv_TimeTokens =3D=3D null) { var dt =3D new CSDate(); CSCnv_TimeTokens =3D dt.parseTemplate( CSCnv_TimeTemplate ); } var ttemp =3D new CSDate(); ttemp.hour =3D t.hour !=3D null ? t.hour : 0; ttemp.minute =3D = t.minute !=3D null ? t.minute : 0; ttemp.second =3D t.second !=3D null ? = t.second : 0; return (ttemp.formatDate( CSCnv_TimeTokens, false ))[0];=20 } function CSCnv_s2n( val, r ) { var ret =3D CS_ParseFloatEx( val ); if (ret =3D=3D null) ret =3D r; return ret; } function CSCnv_b2n( val ) { return Number( (val ? 1 : 0) ); } function CSCnv_dt2n( csdt ) { var n =3D Number( 0 ); do { if (csdt =3D=3D null) break; =20 =20 =20 if (csdt.isDate()) { var dt =3D new Date(); dt.setUTCFullYear( (csdt.year !=3D null ? csdt.year : 1970), = (csdt.month !=3D null ? csdt.month - 1 : 1), (csdt.day !=3D null ? = csdt.day : 1) ); dt.setUTCHours( 0, 0, 0, 0 ); n =3D Number(dt.getTime()/86400000) } else if (csdt.isTime()) { n =3D Number( (csdt.second !=3D null ? csdt.second : 0) + = (csdt.minute !=3D null ? csdt.minute : 0) * 60 + (csdt.hour !=3D null ? = csdt.hour : 0) * 3600 ); } } while (false); return n; } function CSCnv_s2b( s ) { return s.length > 0; } function CSCnv_n2b( n ) { return (n =3D=3D 0 || isNaN( n )) ? false : true; } function CSCnv_dt2b( dt ) { return CSCnv_n2b( CSCnv_dt2n( dt ) ); } function CSCnv_s2d( s, r ) { var ret =3D r; var dt =3D new CSDate(); if (CSCnv_DateTokens =3D=3D null) { CSCnv_DateTokens =3D dt.parseTemplate( CSCnv_DateTemplate ); } if (CSCnv_DateRegExp =3D=3D null) { CSCnv_DateRegExp =3D dt.buildRegExp( CSCnv_DateTokens, true ); } var d =3D dt.evaluate( CSCnv_DateRegExp, CSCnv_DateTokens, s ); if (d !=3D null) ret =3D d; return ret; } function CSCnv_n2d( n ) { var ret =3D new CSDate( 1970, 1, 1 ); var dt =3D new Date( Math.round( n ) * 86400000 ); if (dt !=3D null) { ret.year =3D dt.getUTCFullYear(); ret.month =3D dt.getUTCMonth() + = 1; ret.day =3D dt.getUTCDate(); } return ret; } function CSCnv_b2d( b ) { return CSCnv_n2d( CSCnv_b2n( b ) ); } function CSCnv_t2d( t ) { return CSCnv_n2d( 0 ); } function CSCnv_s2t( s, r ) { var ret =3D r; var dt =3D new CSDate(); if (CSCnv_TimeTokens =3D=3D null) { CSCnv_TimeTokens =3D dt.parseTemplate( CSCnv_TimeTemplate ); } if (CSCnv_TimeRegExp =3D=3D null) { CSCnv_TimeRegExp =3D dt.buildRegExp( CSCnv_TimeTokens, true ); } var t =3D dt.evaluate( CSCnv_TimeRegExp, CSCnv_TimeTokens, s ); if (t !=3D null) ret =3D t; return ret; } function CSCnv_n2t( n ) { var ret =3D new CSDate( null, null, null, 0, 0, 0 ); var dt =3D new Date( Math.round( n ) * 1000 ); if (dt !=3D null) { ret.hour =3D dt.getUTCHours(); ret.minute =3D dt.getUTCMinutes(); = ret.second =3D dt.getUTCSeconds(); } return ret; } function CSCnv_b2t( b ) { return CSCnv_n2t( CSCnv_b2n( b ) ); } function CSCnv_d2t( t ) { return CSCnv_n2t( 0 ); } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS85_Lib_CSCnv2.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved CSCnv.s =3D function( val ) { var ret =3D CSVal.s( "" ); do { var v =3D val; =20 =20 =20 if (typeof( val ) =3D=3D "string" && CSCnv.fldLookupClbk !=3D null) v =3D CSVal.f( CSCnv.fldLookupClbk( val ) ); if (v =3D=3D null || v.v =3D=3D null) break; =20 =20 =20 if (v.t =3D=3D CSFLD) { if (CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_TYPE ) =3D=3D = "Text") { var iv =3D CSFmt.getIntVal( v.v ); if (v.v.fmt =3D=3D "nmbr") { ret =3D CSVal.s( CSCnv_n2s( iv ) ); } else if (v.v.fmt =3D=3D "dt") { if (iv =3D=3D null) { } else if (iv.isDate()) { ret =3D CSVal.s( CSCnv_d2s( iv ) ); } else { ret =3D CSVal.s( CSCnv_t2s( iv ) ); } } else if (v.v.fmt =3D=3D "tmpl") { ret =3D iv =3D=3D null ? CSVal.s( "" ) : CSVal.s( iv[0] ); } else if (v.v.fmt =3D=3D "txt") { ret =3D CSVal.s( iv ); } } else { ret =3D CSVal.s( CSCnv.getFieldAttribute( val, = CSCnv.ATTRIB_VALUE ) ); } } else if (v.t =3D=3D CSSTR) { ret =3D CSVal.s ( v.v ); } else if (v.t =3D=3D CSNUM) { ret =3D CSVal.s( CSCnv_n2s( v.v ) ); } else if (v.t =3D=3D CSBOOL) { ret =3D CSVal.s( CSCnv_b2s( v.v ) ); } else if (v.t =3D=3D CSDATE) { ret =3D CSVal.s( CSCnv_d2s( v.v ) ); } else if (v.t =3D=3D CSTIME) { ret =3D CSVal.s( CSCnv_t2s( v.v ) ); } } while (false); return ret; } CSCnv.n =3D function( val ) { var ret =3D CSVal.n( 0 ); do { var v =3D val; =20 =20 =20 if (typeof( val ) =3D=3D "string" && CSCnv.fldLookupClbk !=3D null) v =3D CSVal.f( CSCnv.fldLookupClbk( val ) ); if (v =3D=3D null || v.v =3D=3D null) break; =20 =20 =20 if (v.t =3D=3D CSFLD) { if (CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_TYPE ) =3D=3D = "Text") { if (v.v.fmt =3D=3D "nmbr") { ret =3D CSVal.n( CSCnv_fnmbr2n( v.v ) ); } else if (v.v.fmt =3D=3D "dt") { ret =3D CSVal.n( CSCnv_fdt2n( v.v ) ); } else if (v.v.fmt =3D=3D "tmpl") { var iv =3D CSFmt.getIntVal( v.v ); ret =3D iv =3D=3D null ? CSVal.n( Number.NaN ) : CSVal.n( CSCnv_s2n( iv[0], Number.NaN ) ); } else if (v.v.fmt =3D=3D "txt") { var iv =3D CSFmt.getIntVal( v.v ); ret =3D CSVal.n( CSCnv_s2n( iv, Number.NaN ) ); } } else { ret =3D CSVal.n( CSCnv_s2n( CSCnv.getFieldAttribute( val, = CSCnv.ATTRIB_VALUE ), Number.NaN ) ); } } else if (v.t =3D=3D CSSTR) { ret =3D CSVal.n( CSCnv_s2n( v.v, Number.NaN ) ); } else if (v.t =3D=3D CSNUM) { ret =3D CSVal.n( v.v ); } else if (v.t =3D=3D CSBOOL) { ret =3D CSVal.n( CSCnv_b2n( v.v ) ); } else if (v.t =3D=3D CSDATE || v.t =3D=3D CSTIME) { ret =3D CSVal.n( CSCnv_dt2n( v.v ) ); } } while (false); return ret; } CSCnv.b =3D function( val ) { var ret =3D CSVal.b( false ); do { var v =3D val; =20 =20 =20 if (typeof( val ) =3D=3D "string" && CSCnv.fldLookupClbk !=3D null) v =3D CSVal.f( CSCnv.fldLookupClbk( val ) ); if (v =3D=3D null || v.v =3D=3D null) break; =20 =20 =20 if (v.t =3D=3D CSFLD) { var t =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_TYPE ); if ( t =3D=3D "Text") { if (v.v.fmt =3D=3D "nmbr") { ret =3D CSVal.b( CSCnv_n2b( CSCnv_fnmbr2n( v.v ) ) ); } else if (v.v.fmt =3D=3D "dt") { ret =3D CSVal.b( CSCnv_n2b( CSCnv_fdt2n( v.v ) ) ); } else if (v.v.fmt =3D=3D "tmpl") { var iv =3D CSFmt.getIntVal( v.v ); ret =3D iv =3D=3D null ? CSVal.b( false ) : CSVal.b( CSCnv_s2b( iv[0] ) ); } else if (v.v.fmt =3D=3D "txt") { var iv =3D CSFmt.getIntVal( v.v ); ret =3D CSVal.b( CSCnv_s2b( iv ) ); } } else { var fv =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_VALUE ); if (t =3D=3D "Check") { ret =3D CSVal.b( CSCnv_n2b( CSCnv_s2n( fv ) ) ); } else { ret =3D CSVal.b( CSCnv_s2b( fv ) ); } } } else if (v.t =3D=3D CSSTR) { ret =3D CSVal.b( CSCnv_s2b( v.v ) ); } else if (v.t =3D=3D CSNUM) { ret =3D CSVal.b( CSCnv_n2b( v.v ) ); } else if (v.t =3D=3D CSBOOL) { ret =3D CSVal.b( v.v ); } else if (v.t =3D=3D CSDATE || v.t =3D=3D CSTIME) { ret =3D CSVal.b( CSCnv_dt2b( v.v ) ); } } while (false); return ret; } CSCnv.d =3D function( val ) { var ret =3D CSVal.d( CSCnv_n2d( 0 ) ); do { var v =3D val; =20 =20 =20 if (typeof( val ) =3D=3D "string" && CSCnv.fldLookupClbk !=3D null) v =3D CSVal.f( CSCnv.fldLookupClbk( val ) ); if (v =3D=3D null || v.v =3D=3D null) break; =20 =20 =20 if (v.t =3D=3D CSFLD) { var t =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_TYPE ); if ( t =3D=3D "Text") { var iv =3D CSFmt.getIntVal( v.v ); if (v.v.fmt =3D=3D "nmbr") { ret =3D CSVal.d( CSCnv_n2d( iv ) ); } else if (v.v.fmt =3D=3D "dt") { if (iv =3D=3D null) { ret =3D CSVal.d( CSCnv_n2d( 0 ) ); } else if (iv.isDate()) { ret =3D CSVal.d( new CSDate( iv.year, iv.month, iv.day ) ); } else { ret =3D CSVal.d( CSCnv_t2d( iv ) ); } } else if (v.v.fmt =3D=3D "tmpl") { ret =3D iv !=3D null ? CSVal.d( CSCnv_s2d( iv[0], CSCnv_n2d( 0 = ) ) ) : CSVal.d( CSCnv_n2d( 0 ) ); } else if (v.v.fmt =3D=3D "txt") { ret =3D CSVal.d( CSCnv_s2d( iv, CSCnv_n2d( 0 ) ) ); } } else { var fv =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_VALUE ); ret =3D CSVal.d( CSCnv_s2d( fv, CSCnv_n2d( 0 ) ) ); } } else if (v.t =3D=3D CSSTR) { ret =3D CSVal.d( CSCnv_s2d( v.v, CSCnv_n2d( 0 ) ) ); } else if (v.t =3D=3D CSNUM) { ret =3D CSVal.d( CSCnv_n2d( v.v ) ); } else if (v.t =3D=3D CSBOOL) { ret =3D CSVal.d( CSCnv_b2d( v.v ) ); } else if (v.t =3D=3D CSDATE) { ret =3D CSVal.d( new CSDate( v.v.year, v.v.month, v.v.day ) ); } else if (v.t =3D=3D CSTIME) { ret =3D CSVal.d( CSCnv_t2d( v.v ) ); } } while (false); return ret; } CSCnv.t =3D function( val ) { var ret =3D CSVal.t( CSCnv_n2t( 0 ) ); do { var v =3D val; =20 =20 =20 if (typeof( val ) =3D=3D "string" && CSCnv.fldLookupClbk !=3D null) v =3D CSVal.f( CSCnv.fldLookupClbk( val ) ); if (v =3D=3D null || v.v =3D=3D null) break; =20 =20 =20 if (v.t =3D=3D CSFLD) { var t =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_TYPE ); if ( t =3D=3D "Text") { var iv =3D CSFmt.getIntVal( v.v ); if (v.v.fmt =3D=3D "nmbr") { ret =3D CSVal.t( CSCnv_n2t( iv ) ); } else if (v.v.fmt =3D=3D "dt") { if (iv =3D=3D null) { ret =3D CSVal.t( CSCnv_n2t( 0 ) ); } else if (iv.isDate()) { ret =3D CSVal.t( CSCnv_d2t( iv, CSCnv_n2t( 0 ) ) ); } else { ret =3D CSVal.t( new CSDate( null, null, null, iv.hour, = iv.minute, iv.second ) ); } } else if (v.v.fmt =3D=3D "tmpl") { ret =3D iv !=3D null ? CSVal.t( CSCnv_s2t( iv[0], CSCnv_n2t( 0 = ) ) ) : CSVal.t( CSCnv_n2t( 0 ) ); } else if (v.v.fmt =3D=3D "txt") { ret =3D CSVal.t( CSCnv_s2t( iv, CSCnv_n2t( 0 ) ) ); } } else { var fv =3D CSCnv.getFieldAttribute( val, CSCnv.ATTRIB_VALUE ); ret =3D CSVal.t( CSCnv_s2d( fv, CSCnv_n2t( 0 ) ) ); } } else if (v.t =3D=3D CSSTR) { ret =3D CSVal.t( CSCnv_s2t( v.v, CSCnv_n2t( 0 ) ) ); } else if (v.t =3D=3D CSNUM) { ret =3D CSVal.t( CSCnv_n2t( v.v ) ); } else if (v.t =3D=3D CSBOOL) { ret =3D CSVal.t( CSCnv_b2t( v.v ) ); } else if (v.t =3D=3D CSDATE) { ret =3D CSVal.t( CSCnv_d2t( v.v ) ); } else if (v.t =3D=3D CSTIME) { ret =3D CSVal.t( new CSDate( null, null, null, v.v.hour, = v.v.minute, v.v.second ) ); } } while (false); return ret; } CSCnv.f =3D function( fld, v ) { var ret =3D null; do { if (fld =3D=3D null || CSCnv.fldLookupClbk =3D=3D null) break; var f =3D CSCnv.fieldLookup( fld ); if (f =3D=3D null) break; var type =3D CSCnv.getFieldAttribute( fld, CSCnv.ATTRIB_TYPE ); if (type =3D=3D 'Text') { var iv =3D null; if (f.fmt =3D=3D "nmbr") { if (v =3D=3D null) { iv =3D CSFmt.getIntVal( f ); } else if (v.t =3D=3D CSNUM) { iv =3D v.v; } else if (v.t =3D=3D CSSTR) { iv =3D CSCnv_s2n( v.v, null ); } else if (v.t =3D=3D CSBOOL) { iv =3D CSCnv_b2n( v.v ); } else if (v.t =3D=3D CSDATE || v.t =3D=3D CSTIME) { iv =3D CSCnv_dt2n( v.v ); } } else if (f.fmt =3D=3D "dt") { if (v =3D=3D null) { iv =3D CSFmt.getIntVal( f ); } else if (CSFmt.isDateTemplate( f )) { if (v.t =3D=3D CSNUM) { iv =3D CSCnv_n2d( v.v ); } else if (v.t =3D=3D CSSTR) { iv =3D CSCnv_s2d( v.v, null ); } else if (v.t =3D=3D CSBOOL) { iv =3D CSCnv_b2d( v.v ); } else if (v.t =3D=3D CSDATE) { iv =3D new CSDate( v.v.year, v.v.month, v.v.day ); } else if (v.t =3D=3D CSTIME) { iv =3D CSCnv_t2d( v.v ); } } else if (CSFmt.isTimeTemplate( f )) { if (v.t =3D=3D CSNUM) { iv =3D CSCnv_n2t( v.v ); } else if (v.t =3D=3D CSSTR) { iv =3D CSCnv_s2t( v.v, null ); } else if (v.t =3D=3D CSBOOL) { iv =3D CSCnv_b2t( v.v ); } else if (v.t =3D=3D CSDATE) { iv =3D CSCnv_d2t( v.v ); } else if (v.t =3D=3D CSTIME) { iv =3D new CSDate( null, null, null, v.v.hour, v.v.minute, = v.v.second ); } } } else if (f.fmt =3D=3D "tmpl") { if (v =3D=3D null) { iv =3D CSFmt.getIntVal( f ); if (iv !=3D null) iv =3D iv[0]; } else if (v.t =3D=3D CSNUM) { iv =3D CSCnv_n2s( v.v ); } else if (v.t =3D=3D CSSTR) { iv =3D v.v; } else if (v.t =3D=3D CSBOOL) { iv =3D CSCnv_b2s( v.v ); } else if (v.t =3D=3D CSDATE) { iv =3D CSCnv_d2s( v.v ); } else if (v.t =3D=3D CSTIME) { iv =3D CSCnv_t2s( v.v ); } } else if (f.fmt =3D=3D "txt") { if (v =3D=3D null) { iv =3D CSFmt.getIntVal( f ); } else if (v.t =3D=3D CSNUM) { iv =3D CSCnv_n2s( v.v ); } else if (v.t =3D=3D CSSTR) { iv =3D v.v; } else if (v.t =3D=3D CSBOOL) { iv =3D CSCnv_b2s( v.v ); } else if (v.t =3D=3D CSDATE) { iv =3D CSCnv_d2s( v.v ); } else if (v.t =3D=3D CSTIME) { iv =3D CSCnv_t2s( v.v ); } } if (iv =3D=3D null) { ret =3D CSVal.s( "" ); } else if (f.fmt =3D=3D "nmbr" || f.fmt =3D=3D "dt") { CSFmt.push( f ); CSFmt.useIntVal( f, true ); CSFmt.setIntVal( f, iv ); CSFmt.format( f ); ret =3D new CSVal( f.dval, f.dvalex, CSSTR, iv ); CSFmt.pop( f ); } else if (f.fmt =3D=3D "tmpl" || f.fmt =3D=3D "txt" ) { CSFmt.push( f ); f.uval =3D iv; CSFmt.format( f ); ret =3D new CSVal( f.dval, f.dvalex, CSSTR, iv ); CSFmt.pop( f ); } else { ret =3D CSVal.s( "" ); } } else if (type =3D=3D 'Check') { if (v !=3D null && v.t =3D=3D CSBOOL) { ret =3D CSVal.s( v.v ? '1' : '0' ); } else { ret =3D CSCnv.s( v );=20 } } else { ret =3D CSCnv.s( v );=20 } } while (false); return ret; } CSCnv.cnv =3D function( v, t ) { var r =3D CSVal.b( false ); do { if (v =3D=3D null) break; if (t =3D=3D CSNUM) { r =3D CSCnv.n( v ); } else if (t =3D=3D CSSTR) { r =3D CSCnv.s( v ); } else if (t =3D=3D CSBOOL) { r =3D CSCnv.b( v ); } else if (t =3D=3D CSDATE) { r =3D CSCnv.d( v ); } else if (t =3D=3D CSTIME) { r =3D CSCnv.t( v ); } } while (false); return r; } ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/CS86_Lib_CSCalc.js // Copyright (c) 1991-2006 Verity, Inc. All Rights Reserved function CSAction( func, params ) { this.func =3D func; this.params =3D params; } function CSCalc( trg, trs, expr, aspect, gen ) { this.trg =3D trg; this.trs =3D trs; this.expr =3D expr; this.aspect =3D aspect; this.gen =3D gen; } CSCalc.Calcs =3D new Array(); CSCalc.FldsChgd =3D new Object(); CSCalc.Flds =3D new Object(); CSCalc.ValueStoN =3D new Object(); CSCalc.ValueNtoN =3D new Array(); CSCalc.AttribStoN =3D new Object(); CSCalc.AttribNtoN =3D new Array(); CSCalc.setSetValueCallback =3D function( func ) { var ret =3D CSCalc.setValueClbk; CSCalc.setValueClbk =3D func; return ret; } CSCalc.setValue =3D function( f, v, s, i, p ) { return CSCalc.setValueClbk( f, v, s, i, p ); } CSCalc.setFieldChangedCallback =3D function( f ) { var ret =3D CSCalc.fldChangedClbk; CSCalc.fldChangedClbk =3D f; return ret; } CSCalc.fieldChanged =3D function( f ) { return CSCalc.fldChangedClbk( f ); } CSCalc.setFieldLookupCallback =3D function( f ) { var ret =3D CSCalc.fldLookupClbk CSCalc.fldLookupClbk =3D f; return ret; } CSCalc.fieldLookup =3D function( f ) { if (typeof( CSCalc.fldLookupClbk ) =3D=3D "function") { return CSCalc.fldLookupClbk( f ); } else { return CSCnv.fldLookupClbk( f ); } } CSCalc.setFieldAttributeAction =3D function( params, param ) { return CSCnv.setFieldAttribute( params[0], params[1], params[2] ); } CSCalc.setFieldValueAction =3D function( params, param ) { CSCalc.setValue( params[0], params[1], params[2], params[3], param ); CSCalc.fieldChanged( params[0] ); } CSCalc.addCalculation =3D function( trg, trs, expr, aspect, gen ) { =20 =20 =20 var trsaa =3D new Object(); for (var tr in trs) { trsaa[trs[tr]] =3D 1; } var i =3D CSCalc.Calcs.length; CSCalc.Calcs[i] =3D new CSCalc( trg, trsaa, expr, aspect, gen ); switch (aspect) { case CSCnv.ATTRIB_READONLY: case CSCnv.ATTRIB_REQUIRED: case CSCnv.ATTRIB_FGCOLOR: case CSCnv.ATTRIB_HIDDEN: case CSCnv.ATTRIB_BGCOLOR: CSCalc.AttribStoN[trg] =3D i; CSCalc.AttribNtoN[CSCalc.AttribNtoN.length] =3D i; break; case 'value': default: CSCalc.ValueStoN[trg] =3D i; CSCalc.ValueNtoN[CSCalc.ValueNtoN.length] =3D i; break; } } CSCalc.getCalculation =3D function( idx ) { return CSCalc.Calcs[idx]; } CSCalc.getNumberOfValueCalculations =3D function() { return CSCalc.ValueNtoN.length; } CSCalc.getValueCalculation =3D function( idx ) { if (typeof(idx) =3D=3D 'number') { return CSCalc.Calcs[CSCalc.ValueNtoN[idx]]; } else if (typeof(idx) =3D=3D 'string') { return CSCalc.Calcs[CSCalc.ValueStoN[idx]]; } else { return null; } } CSCalc.getValueCalculationIdx =3D function( idx ) { if (typeof(idx) =3D=3D 'number') { return CSCalc.ValueNtoN[idx]; } else if (typeof(idx) =3D=3D 'string') { return CSCalc.ValueStoN[idx]; } else { return null; } } CSCalc.getNumberOfAttributeCalculations =3D function() { return CSCalc.AttribNtoN.length; } CSCalc.getAttributeCalculation =3D function( idx ) { if (typeof(idx) =3D=3D 'number') { return CSCalc.Calcs[CSCalc.AttribNtoN[idx]]; } else if (typeof(idx) =3D=3D 'string') { return CSCalc.Calcs[CSCalc.AttribStoN[idx]]; } else { return null; } } CSCalc.getAttributeCalculationIdx =3D function( idx ) { if (typeof(idx) =3D=3D 'number') { return CSCalc.AttribNtoN[idx]; } else if (typeof(idx) =3D=3D 'string') { return CSCalc.AttribStoN[idx]; } else { return null; } } CSCalc.inValues =3D false; CSCalc.calculateValues =3D function( param ) { if (CSCalc.inAll) return; CSCalc.inValues =3D true; var n =3D CSCalc.getNumberOfValueCalculations(); for (var i =3D 0; i < n; i++) { CSCalc.calculate( CSCalc.getValueCalculationIdx( i ), param ); } CSCalc.inValues =3D false; } CSCalc.inAttribs =3D false; CSCalc.calculateAttributes =3D function( param ) { if (CSCalc.inAttribs) return; CSCalc.inAttribs =3D true; var n =3D CSCalc.getNumberOfAttributeCalculations(); for (var i =3D 0; i < n; i++) { CSCalc.calculate( CSCalc.getAttributeCalculationIdx( i ), param ); } CSCalc.inAttribs =3D false; } CSCalc.calculate =3D function( calc_idx, param ) { var ret =3D 0; do { var c =3D CSCalc.getCalculation( calc_idx ); if (c =3D=3D null) break; ret =3D c.evaluate( CSCalc.fieldLookup( c.trg ), param ); } while (false); return ret; } CSCalc.clearFieldChanged =3D function( fld ) { if (fld !=3D null) { if (CSCalc.FldsChgd[fld] =3D=3D 1) { delete CSCalc.FldsChgd[fld]; } } else { delete CSCalc.FldsChgd; CSCalc.FldsChgd =3D new Object(); } } CSCalc.prototype.evaluate =3D function( f, param ) { var ret =3D 0; do { var doCalc =3D false; for (var tr in this.trs) { if (CSCalc.FldsChgd[tr] !=3D null) { doCalc =3D true; break; } } if (!doCalc) break; if (this.func =3D=3D null) eval( "this.func =3D function() { return " + this.expr + " }" ); var r =3D this.func(); if (r =3D=3D null) break; ret =3D CSCalc.execAction( r.func, r.params, param ); } while (false); return ret; } CSCalc.execAction =3D function( f, params, param ) { return f( params, param ); } CSCalc.prototype.toString =3D function() { return "trg: " + this.trg + "\ntrs: " + this.trs + "\nexpr: " + = this.expr + "\nfunc: " + this.func + "\n"; } CSCalc_fieldChanged =3D function( fn ) { CSCalc.FldsChgd[fn] =3D 1; } CSCalc.len =3D function( s ) { var v =3D CSCnv.s( s ); return CSVal.n( v.v.length ); } CSCalc.trim =3D function( s ) { var v =3D CSCnv.s( s ); return CSVal.s( CS_TrimWS( v.v ) ); } CSCalc.ns =3D function( s ) { var v =3D CSCalc.trim( s ); return CSVal.s( CS_NormalizeSpaces( v.v ) ); } CSCalc.left =3D function( s, n ) { var vs =3D CSCnv.s( s ); var vn =3D CSCnv.n( n ); return CSVal.s( vs.v.substr( 0, vn.v ) ); } CSCalc.right =3D function( s, n ) { var vs =3D CSCnv.s( s ); var vn =3D CSCnv.n( n ); var st =3D vs.v.length-vn.v; st =3D st < 0 ? 0 : st; return CSVal.s( vs.v.substr( st, vn.v ) ); } CSCalc.substring =3D function( s, n1, n2 ) { var vs =3D CSCnv.s( s ); var vn1 =3D CSCnv.n( n1 ); var vn2 =3D CSCnv.n( n2 ); if (vn1.v < 0) vn1.v =3D 0; return CSVal.s( vs.v.substr( vn1.v, vn2.v ) ); } CSCalc.upper =3D function( s ) { var v =3D CSCnv.s( s ); return CSVal.s( v.v.toUpperCase() ); } CSCalc.lower =3D function( s ) { var v =3D CSCnv.s( s ); return CSVal.s( v.v.toLowerCase() ); } CSCalc.concat =3D function() { var s =3D ""; for (var i =3D 0; i < arguments.length; i++) { if (arguments[i] =3D=3D null) continue; var v =3D CSCnv.s( arguments[i] ); s +=3D v.v; } return CSVal.s( s ); } CSCalc.contains =3D function( s1, s2 ) { var vs1 =3D CSCnv.s( s1 ); var vs2 =3D CSCnv.s( s2 ); var rgx =3D new RegExp( CS_EscapeRegExpLiterals( vs2.v ) ); return CSVal.b( vs2.v.length > 0 && vs1.v.search( rgx ) > -1 ); } CSCalc.sw =3D function( s1, s2 ) { var vs1 =3D CSCnv.s( s1 ); var vs2 =3D CSCnv.s( s2 ); var rgx =3D new RegExp( "^" + CS_EscapeRegExpLiterals( vs2.v ) ); return CSVal.b( vs2.v.length > 0 && vs1.v.search( rgx ) > -1 ); } CSCalc.ssb =3D function( s1, s2 ) { var s =3D ""; var vs1 =3D CSCnv.s( s1 ); var vs2 =3D CSCnv.s( s2 ); var rgx =3D new RegExp( CS_EscapeRegExpLiterals( vs2.v ) ); var p =3D vs1.v.search( rgx ); if ( vs2.v.length > 0 && p > 0) { s =3D vs1.v.substr( 0, p ); } return CSVal.s( s ); } CSCalc.ssa =3D function( s1, s2 ) { var s =3D ""; var vs1 =3D CSCnv.s( s1 ); var vs2 =3D CSCnv.s( s2 ); var rgx =3D new RegExp( CS_EscapeRegExpLiterals( vs2.v ) ); var p =3D vs1.v.search( rgx ); if (vs2.v.length > 0 && p >=3D 0) { s =3D vs1.v.substr( p + vs2.v.length ); } return CSVal.s( s ); } CSCalc.arith =3D function( op, ops ) { var m =3D (op =3D=3D '+' || op =3D=3D '-') ? 0.0 : 1.0; var n =3D 0.0; for (var i =3D 0; i < ops.length; i++) { n =3D 0.0; var o =3D ops[i]; if (!isNaN( o ) && o !=3D null) n =3D o.valueOf(); switch( op ) { case '+': m +=3D n; break; case '-': m -=3D n; break; case '*': m *=3D n; break; case '/': m /=3D n; break; } } return CSVal.n( m ); } CSCalc.sum =3D function() { var a =3D arguments; var m =3D (!isNaN( a[0] ) && a[0] !=3D null) ? a[0] : 0.0; for (var i =3D 1; i < a.length; i++) m +=3D (!isNaN( a[i] ) && a[i] !=3D null) ? a[i] : 0; return CSVal.n( m.valueOf() ); } CSCalc.dif =3D function() { var a =3D arguments; var m =3D (!isNaN( a[0] ) && a[0] !=3D null) ? a[0] : 0.0; for (var i =3D 1; i < a.length; i++) m -=3D (!isNaN( a[i] ) && a[i] !=3D null) ? a[i] : 0; return CSVal.n( m.valueOf() ); } CSCalc.prd =3D function() { var a =3D arguments; var m =3D (!isNaN( a[0] ) && a[0] !=3D null) ? a[0] : 0.0; for (var i =3D 1; i < a.length; i++) m *=3D (!isNaN( a[i] ) && a[i] !=3D null) ? a[i] : 0; return CSVal.n( m.valueOf() ); } CSCalc.quo =3D function() { var a =3D arguments; var m =3D (!isNaN( a[0] ) && a[0] !=3D null) ? a[0] : 0.0; for (var i =3D 1; i < a.length; i++) m /=3D (!isNaN( a[i] ) && a[i] !=3D null) ? a[i] : 0; return CSVal.n( m.valueOf() ); } CSCalc.avg =3D function() { var m =3D 0.0; var c =3D 0.0; for (var i =3D 0; i < arguments.length; i++) { if (!isNaN( arguments[i] ) && arguments[i] !=3D null) { m +=3D arguments[i]; c++; } } if (c =3D=3D 0.0) m =3D m >=3D 0 ? Number.POSITIVE_INFINITY : = Number.NEGATIVE_INFINITY; else m/=3Dc; return CSVal.n( m ); } CSCalc.min =3D function() { var m =3D Number.POSITIVE_INFINITY; for (var i =3D 0; i < arguments.length; i++) { if (!isNaN( arguments[i].valueOf() ) && arguments[i] < m) m =3D arguments[i].valueOf(); } return CSVal.n( m ); } CSCalc.max =3D function() { var m =3D Number.NEGATIVE_INFINITY; for (var i =3D 0; i < arguments.length; i++) { if (!isNaN( arguments[i] ) && arguments[i] > m) m =3D arguments[i].valueOf(); } return CSVal.n( m ); } CSCalc.cne =3D function() { var c =3D 0.0; for (var i =3D 0; i < arguments.length; i++) { var s =3D CSCnv.s( arguments[i] ); if (s.v.length > 0) c++; } return CSVal.n( c ); } CSCalc.isN =3D function( n ) { var v =3D CSCnv.n( n ); return CSVal.b( !isNaN( v.v ) ); } CSCalc.floor =3D function( n ) { var v =3D CSCnv.n( n ); return CSVal.n( Math.floor( v.v ) ); } CSCalc.ceiling =3D function( n ) { var v =3D CSCnv.n( n ); return CSVal.n( Math.ceil( v.v ) ); } CSCalc.round =3D function( n ) { var v =3D CSCnv.n( n ); return CSVal.n( Math.round( v.v ) ); } CSCalc.t =3D function() { return CSVal.b( true ); } CSCalc.f =3D function() { return CSVal.b( false ); } CSCalc.today =3D function() { return CSVal.d( CSDate.today() ); } CSCalc.year =3D function( d ) { var dt =3D CSCnv.d( d ); return CSVal.n( dt.v.year ); } CSCalc.month =3D function( d ) { var dt =3D CSCnv.d( d ); return CSVal.n( dt.v.month ); } CSCalc.day =3D function( d ) { var dt =3D CSCnv.d( d ); return CSVal.n( dt.v.day ); } CSCalc.now =3D function() { return CSVal.t( CSDate.now() ); } CSCalc.hour =3D function( t ) { var dt =3D CSCnv.t( t ); return CSVal.n( dt.v.hour ); } CSCalc.minute =3D function( t ) { var dt =3D CSCnv.t( t ); return CSVal.n( dt.v.minute ); } CSCalc.second =3D function( t ) { var dt =3D CSCnv.t( t ); return CSVal.n( dt.v.second ); } CSCalc.cond =3D function ( e, t, f ) { return e.valueOf() ? t : f; } CSCalc.eq =3D function ( a, b ) { return CSVal.b( a.valueOf() =3D=3D CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.neq =3D function ( a, b ) { return CSVal.b( a.valueOf() !=3D CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.gt =3D function ( a, b ) { return CSVal.b( a.valueOf() > CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.gte =3D function ( a, b ) { return CSVal.b( a.valueOf() >=3D CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.lt =3D function ( a, b ) { return CSVal.b( a.valueOf() < CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.lte =3D function ( a, b ) { return CSVal.b( a.valueOf() <=3D CSCnv.cnv( b, a.t ).valueOf() ); } CSCalc.and =3D function ( a, b ) { return CSVal.b( CSCnv.b( a ).valueOf() && CSCnv.b( b ).valueOf() ); } CSCalc.or =3D function ( a, b ) { return CSVal.b( CSCnv.b( a ).valueOf() || CSCnv.b( b ).valueOf() ); } CSCalc.not =3D function ( a ) { return CSVal.b( !(CSCnv.b( a ).valueOf()) ); } CSCalc.s_a_ro =3D function( fn, b ) { var v =3D CSCnv.b( b ); return new CSAction( CSCalc.setFieldAttributeAction, new Array( fn, = CSCnv.ATTRIB_READONLY, v.v ) ); } CSCalc.s_a_rq =3D function( fn, b ) { var v =3D CSCnv.b( b ); return new CSAction( CSCalc.setFieldAttributeAction, new Array( fn, = CSCnv.ATTRIB_REQUIRED, v.v ) ); } CSCalc.s_a_hi =3D function( fn, b ) { var v =3D CSCnv.b( b ); return new CSAction( CSCalc.setFieldAttributeAction, new Array( fn, = CSCnv.ATTRIB_HIDDEN, v.v ) ); } CSCalc.s_a_tc =3D function( fn, s ) { var v =3D CSCnv.s( s ); return new CSAction( CSCalc.setFieldAttributeAction, new Array( fn, = CSCnv.ATTRIB_FGCOLOR, v.v ) ); } CSCalc.s_a_fc =3D function( fn, s ) { var v =3D CSCnv.s( s ); return new CSAction( CSCalc.setFieldAttributeAction, new Array( fn, = CSCnv.ATTRIB_BGCOLOR, v.v ) ); } CSCalc.s_v =3D function( fn, s ) { return new CSAction( CSCalc.setFieldValueAction, new Array( fn, s.v, = s.sv, s.i ) ); } CSCalc.setFieldChangedCallback( CSCalc_fieldChanged ); ------=_NextPart_000_0000_01C89A51.3E263920 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: https://neuforms1.neu.edu/static/EECS___Co_op_Record_Setup_Requ29d75z117cf996300zx6dc6155x33x32x107/LOlayout.js // Browser-specific adjustments // // Author: Micah Dubinko // Date: 8/23/2004 // Requires: HTML Publishing files // Copyright (c) 2004 Cardiff, Inc. All rights reserved. // 2.3. HTML Forms // 2.3.1. The following layout tweaks will be included in the patch = script: // 2.3.1.1. IE 5.5 and earlier use an incorrect box model, most visible = for rectangles that have thicker borders. // 2.3.1.2. All three major browsers have minor differences in laying = out text and hyperlinks. // 2.3.1.3. Safari renders drop-down lists at a fixed height, despite = absolute positioning. These controls will be rendered so that the = centerline in HTML matches the centerline in the form designer. // 2.3.1.4. All three major browsers render individual checkboxes and = radio buttons slightly differently. // 2.3.1.5. Safari renders buttons (including LO Signature entities) = somewhat wider than the width style specifies. VTwk =3D { shimsiz:100 }; // percentage points to make one inch CSExt.Initialize.patch =3D function() { // code here runs very early, before most things are initialized VTwk.ua =3D navigator.userAgent; var isIE =3D VTwk.ua.indexOf("MSIE") > 0; var isSafari =3D VTwk.ua.indexOf("Safari") > 0; var isGecko =3D VTwk.ua.indexOf("Gecko") > 0; VTwk.badBoxModel =3D VTwk.ua.indexOf("MSIE 5") > 0; VTwk.fixedSizeDropList =3D isIE || isSafari; //VTwk.entryTooWide =3D isIE; VTwk.entryTooWideTall =3D isGecko; VTwk.buttonsTooWide =3D isSafari; VTwk.noButtonsInDom0 =3D isSafari; VTwk.textareaSizing =3D (VTwk.ua.indexOf("MSIE 6") > 0); VTwk.buttonHiding =3D (VTwk.ua.indexOf("MSIE 6") > 0); VTwk.inkSupported =3D (VTwk.ua.indexOf("MSIE 6") > 0); =20 if (VTwk.buttonHiding) { VTwk.fixHidingButtons( 100 ) } =20 =20 /* *** */ if (window.LO__adjust) { // allow userScript to override settings LO__adjust(VTwk); } } CSExt.Form_OnLoad_bEP.patch =3D function() { // code here runs just before CSForm_Onload() if (VTwk.badBoxModel) { VTwk.fixBoxModel() } if (VTwk.buttonsTooWide) { VTwk.fixButtons() } if (VTwk.noButtonsInDom0) { VTwk.fixButtonDom() } if (VTwk.entryTooWide) { VTwk.fixEntryW() } if (VTwk.entryTooWideTall) { VTwk.fixEntryWH() } if (VTwk.textareaSizing) { VTwk.resizeTextareas() } cs_profile("finished layout adjust"); } CSExt.Form_OnLoad_aEP.patch =3D function() { // code here runs just after CSForm_OnLoad() // probably nothing needed here } CSExt.Form_Loaded =3D function() { // code here runs after entire form is completely loaded //VTwk.verticalPosition(); if (CSUtil.ua.indexOf("MSIE 6") > 0) VTwk.fixTextareasOnLoad(); }=20 // helper function VTwk.for_each =3D function( tagname, condition, do_this ) { var cnt =3D 0; var tags =3D document.getElementsByTagName( tagname ); for (var idx=3D0; idx < tags.length; idx++ ) { var tag =3D tags[idx]; var proceed =3D false; try { if (condition=3D=3Dnull || condition(tag)) proceed =3D true; } catch(e) {} if (proceed) { do_this(tag); cnt++; } } cs_profile( "Adjusted " + cnt + " " + tagname + "s" ); } VTwk.get =3D function( stylestr ) { return parseFloat( stylestr ); } VTwk.set =3D function( stylestr, units ) { return stylestr.replace( /[0-9]+/, units ); } VTwk.adjust =3D function( stylestr, units ) { } VTwk.fixBoxModel =3D function() { // IE 5.5 and earlier improperly calculate size (border should be = 'outside') VTwk.for_each( "div", function(div) { return = div.className=3D=3D"rect"}, VTwk.fixBoxModelFunc ); } VTwk.fixBoxModelFunc =3D function(div) { var origB =3D div.currentStyle.borderWidth; if (origB=3D=3D"1px") return; var origW =3D div.currentStyle.width; var origH =3D div.currentStyle.height; //var origT =3D div.currentStyle.top; //var origL =3D div.currentStyle.left; var adjustment =3D VTwk.get(origB) * VTwk.shimsiz; div.style.width =3D VTwk.set( origW, VTwk.get(origW) + adjustment * = 2); div.style.height =3D VTwk.set( origH, VTwk.get(origH) + adjustment * = 2); //div.style.top =3D VTwk.set( origT, VTwk.get(origT) - adjustment ); //div.style.left =3D VTwk.set( origL, VTwk.get(origL) - adjustment ); } VTwk.fixButtons =3D function() { // Safari draws buttons 0.06in too wide and 0.08 too tall VTwk.for_each( "button", null, VTwk.fixButtonsFunc ); } VTwk.fixButtonsFunc =3D function(div) { var origW =3D div.style.width; var origH =3D div.style.height; div.style.width =3D VTwk.set( origW, VTwk.get(origW) - (0.06 * = VTwk.shimsiz)); div.style.height =3D VTwk.set( origH, VTwk.get(origH) - (0.08 * = VTwk.shimsiz)); } // Safari