function lookupCourseBannerDescriptionURL( givenCRN )
{
var myTerm = "200809";
return "https://lighthouse.sunysuffolk.edu/pls/prod/bwckctlg.p_display_courses?"
+ "sel_crse_strt=" + givenCRN
+ "&term_in=" + myTerm
+ "&one_subj=MAT"
+ "&sel_crse_end="
+ "&sel_subj="
+ "&sel_levl="
+ "&sel_schd="
+ "&sel_coll="
+ "&sel_divs="
+ "&sel_dept="
+ "&sel_attr=";
}
function lookupPersonDirectoryListingURL( givenDirID )
{
return "http://www3.sunysuffolk.edu/OnlineDirectory/onlinedirectory.asp?print=TRUE&clean=TRUE&cred=1&url=1&index="
+ givenDirID;
}
function lookupCourseTemplateLocalURL( givenCourse )
{
return "../syllabi/" + givenCourse[ "syllabus" ];
}
function lookupCommitteeLocalURL( givenCommittee )
{
return "committees.html#" + makeCommitteeID( givenCommittee );
}
function makeCommitteeID( givenCommittee )
{
return givenCommittee[ "Name" ];
}
function lookupBookAmazonSearchURL( givenBook )
{
var myTitle = givenBook[ "Title" ];
var myAuthor = givenBook[ "Author" ];
var myPublisher = givenBook[ "Publisher" ];
var myEdition = givenBook[ "Edition" ];
var mySearchString = myTitle + " " + myAuthor + " " + myPublisher + " " + myEdition + "th Edition";
mySearchString = mySearchString.replace( / /g, "+" );
return "http://www.amazon.com/s/ref=nb_ss_gw/102-3172260-2612123?url=search-alias%3Dstripbooks&field-keywords="
+ mySearchString;
}
function appendCourse( givenParent, givenCourse )
{
var myTitle = givenCourse[ "Title" ];
var myCRN = givenCourse[ "CRN" ];
var myOldCatalog = givenCourse[ "MA" ];
var myBook = givenCourse[ "Book" ];
var myContainer = constructClassifiedChild( givenParent, "div", "course-container" );
var myTable = constructClassifiedChild( myContainer, "table", "course-header-table" );
var myBody = constructClassifiedChild( myTable, "tbody", "course-header-body" );
var myRow = constructClassifiedChild( myBody, "tr", "course-header-row" );
var myCRNCell = constructClassifiedChild( myRow, "td", "course-CRN-cell" );
appendText( myCRNCell, "MAT " + myCRN );
var myOldCatalogCell = constructClassifiedChild( myRow, "td", "course-old-catalog-cell" );
appendText( myOldCatalogCell, "(MA" + myOldCatalog + ")" );
var myTitleCell = constructClassifiedChild( myRow, "td", "course-title-cell" );
appendText( myTitleCell, myTitle );
var myDescriptionCell = constructClassifiedChild( myRow, "td", "course-description-cell" );
var myDescription = constructNonEmptyInternalLink( myDescriptionCell, givenCourse, "CRN",
lookupCourseBannerDescriptionURL( myCRN ),
"Lookup Course Description on Banner for MAT " + myCRN + " - " + myTitle, "banner-description-link" );
appendText( myDescription, "Description" );
var mySyllabusCell = constructClassifiedChild( myRow, "td", "course-syllabus-cell" );
var mySyllabus = constructNonEmptyInternalLink( mySyllabusCell, givenCourse, "syllabus",
lookupCourseTemplateLocalURL( givenCourse ),
"Download Course Syllabus Template for MAT " + myCRN + " - " + myTitle, "syllabus-link" );
appendText( mySyllabus, "Syllabus Template" );
if( myBook && myBook.Title !== "" ) appendBook( myContainer, myBook );
appendNonEmptyField( myContainer, givenCourse, "calc", "Calculator Policy: ", "", "calculator-policy" );
}
function constructNonEmptyField( givenParent, givenDataObject, givenFieldName, givenConstructor )
{
if( givenDataObject[ givenFieldName ] && givenDataObject[ givenFieldName ] != "" )
return givenConstructor( givenParent );
else return givenParent;
}
function appendNonEmptyField( givenParent, givenDataObject, givenFieldName,
givenPrefix, givenPostfix, givenClassName )
{
constructNonEmptyField( givenParent, givenDataObject, givenFieldName,
function ()
{
var myField = constructClassifiedChild( givenParent, "span", givenClassName );
var myFieldPrefix = constructClassifiedChild( myField, "span", givenClassName + "-prefix" );
appendText( myFieldPrefix, givenPrefix );
var myFieldValue = constructClassifiedChild( myField, "span", givenClassName + "-value" );
appendText( myFieldValue, givenDataObject[ givenFieldName ] );
var myFieldPostfix = constructClassifiedChild( myField, "span", givenClassName + "-postfix" );
appendText( myFieldPostfix, givenPostfix );
}
);
}
function constructNonEmptyInternalLink( givenParent, givenDataObject, givenFieldName,
givenLinkTarget, givenLinkAlt, givenLinkClassName )
{
return constructNonEmptyField( givenParent, givenDataObject, givenFieldName,
function ()
{
return constructLink( givenParent, givenLinkTarget, givenLinkAlt, givenLinkClassName );
}
);
}
function appendBook( givenParent, givenBook )
{
var myTitle = givenBook[ "Title" ];
var myPublisher = givenBook[ "Publisher" ];
var myEdition = givenBook[ "Edition" ];
var myURL = givenBook[ "buyURL" ];
var myContainer = constructClassifiedChild( givenParent, "div", "book-container" );
var myCaption = constructClassifiedChild( myContainer, "span", "textbook-caption" );
appendText( myCaption, "Textbook: " );
var myParent = constructNonEmptyInternalLink( myContainer, givenBook, "buyURL",
givenBook[ "buyURL" ], "Buy the book on Amazon.com", "book-link" );
appendNonEmptyField( myParent, givenBook, "Author", "", ": ", "book-authors-container" );
var myTitleContainer = constructClassifiedChild( myParent, "span", "book-title-container" );
appendText( myTitleContainer, myTitle );
appendText( myParent, ", " + myPublisher + ", " + myEdition + "E" );
}
function appendCommittee( givenParent, givenCommittee )
{
var myLink = constructClassifiedChild( givenParent, "a", "committee-anchor" );
myLink.name = makeCommitteeID( givenCommittee );
var myContainer = constructClassifiedChild( givenParent, "div", "committee-container" );
var myTypeContainer = constructClassifiedChild( myContainer, "div", "committee-type-container" );
var myType = givenCommittee[ "Category" ];
appendText( myTypeContainer, myType );
var myNameContainer = constructClassifiedChild( myContainer, "div", "committee-name-container" );
var myName = givenCommittee[ "Name" ];
appendText( myNameContainer, myName );
var myChairs = givenCommittee[ "Chairs" ];
var myCaption = ( myChairs.length > 1 ? "Co-Chairs: " : "Chair: " );
appendFacultyList( myContainer, myCaption, myChairs );
var myMembers = givenCommittee[ "Members" ];
appendFacultyList( myContainer, "Members: ", myMembers );
}
function appendFacultyList( givenParent, givenTitle, givenList )
{
var myContainer = constructClassifiedChild( givenParent, "div", "faculty-list-container" );
var myTitle = constructClassifiedChild( myContainer, "span", "faculty-list-title" );
appendText( myTitle, givenTitle );
for( var i = 0; i < givenList.length; i ++ )
{
var myParent = myContainer;
var myFacultyID = givenList[ i ];
var myFacultyMember = firstOccurrenceInObjectArray( myFaculty, "dirID", myFacultyID );
var myName;
if( myFacultyMember )
{
myName = myFacultyMember[ "Name" ];
myParent = constructFacultyLink( myContainer, givenList[ i ] );
}
else myName = myFacultyID;
appendText( myParent, myName );
if( i < givenList.length - 1 ) appendText( myContainer, ", " );
}
}
function constructFacultyLink( givenParent, givenID )
{
var myTargetURL = lookupPersonDirectoryListingURL( givenID );
var myLink = constructLink( givenParent, myTargetURL,
"Open Directory Listing in a New Window", "faculty-link" );
myLink.href="#";
myLink.onclick = function()
{
window.open( myTargetURL, '_blank', 'width=460,height=350,resizable=yes' );
return false;
}
return myLink;
}
function appendFaculty( givenParent, givenFacultyMember )
{
var myFacultyID = givenFacultyMember[ "dirID" ];
var myTable = constructClassifiedChild( givenParent, "table", "faculty-container-table" );
var myBody = constructClassifiedChild( myTable, "tbody", "faculty-container-body" );
var myRow = constructClassifiedChild( myBody, "tr", "faculty-container-row" );
var myImageCell = constructClassifiedChild( myRow, "td", "faculty-image-cell" );
var myImage = constructClassifiedChild( myImageCell, "img", "faculty-image" );
myImage.src = "../pictures/" + myFacultyID + ".jpg";
myImage.alt = myImage.title = "Picture of " + givenFacultyMember[ "Name" ];
if( givenFacultyMember[ "schedule" ] && givenFacultyMember[ "schedule" ] == "yes" )
{
var myLinkContainer = constructClassifiedChild( myImageCell, "div", "faculty-schedule-container" );
var myScheduleLink = constructLink( myLinkContainer, "schedule/2009-09/" + myFacultyID + ".html", "Faculty Teaching Schedule", "faculty-schedule-link" );
appendText( myScheduleLink, "Fall 2009 Schedule" );
}
var myDirectoryCell = constructClassifiedChild( myRow, "td", "faculty-directory-cell" );
var myFrame = constructClassifiedChild( myDirectoryCell, "iframe", "faculty-frame" );
myFrame.src = lookupPersonDirectoryListingURL( myFacultyID );
myFrame.name = myFacultyID;
myFrame.id = myFacultyID;
var myCommitteesCell = constructClassifiedChild( myRow, "td", "faculty-committees-cell" );
appendCommitteeService( myCommitteesCell, myFacultyID );
//if( givenFacultyMember[ "inOffice" ] && givenFacultyMember[ "inOffice" ] != "" )
// myCommitteesCell.innerHTML += "
Spring 2009 Office Hours:
"
// + givenFacultyMember[ "inOffice" ];
}
function appendCommitteeService( givenParent, givenFacultyID )
{
var myCount = 0;
var myContainer = document.createElement( "div" );
var myHeader = constructClassifiedChild( myContainer, "div", "faculty-committees-header" );
appendText( myHeader, "Serves on the following " );
var myLink = constructLink( myHeader, "committees.html", "Go to Mathematics Committees List", "internal-link" );
appendText( myLink, "Mathematics Committees" );
var myCommitteesList = constructClassifiedChild( myContainer, "ol", "faculty-committees-list" );
for( var i = 0; i < myCommittees.length; i++ )
{
var myCommittee = myCommittees[ i ];
var myName = myCommittee[ "Name" ];
var myType = myCommittee[ "Category" ];
var myChairs = myCommittee[ "Chairs" ];
var myCaption = ( myChairs.length > 1 ? "(Co-Chair)" : "(Chair)" );
if( containsElement( givenFacultyID, myChairs ) )
{
var myCommitteeItem = constructClassifiedChild( myCommitteesList, "li", "faculty-committee-item" );
var myCommitteeLink = constructCommitteeLink( myCommitteeItem, myCommittee );
appendText( myCommitteeItem, ", " );
var myBold = constructClassifiedChild( myCommitteeItem, "b", "faculty-chairmanship" );
appendText( myBold, myCaption );
myCount++;
}
var myMembers = myCommittee[ "Members" ];
if( containsElement( givenFacultyID, myMembers) )
{
var myCommitteeItem = constructClassifiedChild( myCommitteesList, "li", "faculty-committee-item" );
var myCommitteeLink = constructCommitteeLink( myCommitteeItem, myCommittee );
myCount++;
}
}
if( myCount > 0 ) givenParent.appendChild( myContainer );
}
function constructCommitteeLink( givenParent, givenCommittee )
{
var myTargetURL = lookupCommitteeLocalURL( givenCommittee );
var myLink = constructLink( givenParent, myTargetURL,
"Open the description of the " + givenCommittee[ "Name" ] + " in a new page",
"faculty-listing-committee-link" );
//myLink.href = "#";
/*
myLink.onclick = function()
{
var myWindow = window.open( myTargetURL, "_blank", "width=850,height=180,resizable=yes" );
myWindow.document.write( '