/* * jquery.usmap-program-options.js * Use this file to set the parameters for the university program map, or edit for your own map. * -- Michael Tenney * * @license The Unlicense, http://unlicense.org/ * @version 0.6 * @author Michael Tenney * @created 2017-05-03 * @updated 2017-11-01 * @updated 2021-06-04 [Daniel Evilsizor, uta.edu/ucomm] * * Notes 0.3: * - Color changes. * - Added ability to change h2 based on user activity. * - Program availability updates * * Notes 0.4: * - Change Heading to match program name. * * Notes 0.5 * - Make States Clickable * * Notes 0.6: * - add config file for easier updates * - streamline some codes * - accessibility fixes */ var allStates = { 'AK': "Alaska", 'AL': "Alabama", 'AR': "Arkansas", 'AZ': "Arizona", 'CA': "California", 'CO': "Colorado", 'CT': "Connecticut", 'DC': "Washington DC", 'DE': "Delaware", 'FL': "Florida", 'GA': "Georgia", 'HI': "Hawaii", 'IA': "Iowa", 'ID': "Idaho", 'IL': "Illinois", 'IN': "Indiana", 'KS': "Kansas", 'KY': "Kentucky", 'LA': "Louisiana", 'MA': "Massachusetts", 'MD': "Maryland", 'ME': "Maine", 'MI': "Michigan", 'MN': "Minnesota", 'MO': "Missouri", 'MS': "Mississippi", 'MT': "Montana", 'NC': "North Carolina", 'ND': "North Dakota", 'NE': "Nebraska", 'NH': "New Hampshire", 'NJ': "New Jersey", 'NM': "New Mexico", 'NV': "Nevada", 'NY': "New York", 'OH': "Ohio", 'OK': "Oklahoma", 'OR': "Oregon", 'PA': "Pennsylvania", 'PR': "Puerto Rico", 'RI': "Rhode Island", 'SC': "South Carolina", 'SD': "South Dakota", 'TN': "Tennessee", 'TX': "ÌÇÐÄVlogÊÓÆµ", 'UT': "Utah", 'VA': "Virginia", 'VT': "Vermont", 'WA': "Washington", 'WI': "Wisconsin", 'WV': "West Virginia", 'WY': "Wyoming" }; $(document).ready(function () { var notMobile = $(window).width() > 800; $(window).on('resize', function () { notMobile = $(this).width() > 800; }); // Create program menus for (var programId in PROGRAMS_CONFIG) { var str = '
  • '+PROGRAMS_CONFIG[programId].title+'
  • '; $('#statemap_programs').append(str); var str2 = ''; $('#program-select').append(str2); } $('.programOption').on('click',function () { var selectedProgram = $(this).attr('id'); SelectProgram(selectedProgram); }); // -------------- // // Color States // // -------------- // $('#map').usmap({ stateStyles: { //Color States Available for Program 'fill': '#c0c0c0', // state body #2d659f 'stroke': '#fff' //state border color }, stateInitStyles: { //Color default State values on page load fill: '#c0c0c0', //state body 'stroke-width': 0, //state borders width stroke: 'rgba(255,255,255,1.00)', //state border color }, stateSpecificStyles: { US: { fill: 'white', //state body 'stroke-width': 1, //state borders width stroke: 'rgba(255,255,255,1.00)', //state border color }, }, stateHoverStyles: { //Color States Not Available for Program fill: '#2d659f', }, stateInitAnimation: false, stateHoverAnimation: 500, }); //Disable Map Clicks on Mobile $('#map').on('usmapclick', function (event, data) { // console.log('Map Clicked'); // console.log('notMobile: ' + notMobile); if (notMobile) { clickedInfo(event, data); } }); $('.stateName').click(function () { var stateIden = $(this).attr('id'); if (notMobile) { clickedInfo(stateIden, stateIden, stateIden); } }); // ------------------ // // Height Scale Fix // // ------------------ // $('#map').css('height', 'auto'); $('#map svg').removeAttr('height'); // ------------------------- // // Program Selection Logic // // ------------------------- // var SelectProgram = function (program) { var programStates = PROGRAMS_CONFIG[ program ].states; clearStates('unselectedProgram'); //Remove Style for Selected Program Link $('.programOption').removeClass('selectedLink'); for (var s in allStates) { $('#' + s).removeClass('selectedLink'); } //Change Colors of unavailable States for currently selected program for (var v = 0; v < programStates.length; v++) { $('#map').usmap('trigger', programStates[v], 'selectedProgram', program); $('#' + programStates[v]).addClass('selectedLink'); } $('#' + program).addClass('selectedLink'); var courseName = $('.programOption.selectedLink').text(); var statesToChoose = programStates.length; if (statesToChoose == 1) { stateHeader = (' ' + ' state to choose from:'); } else { stateHeader = (' ' + ' states and/or territories to choose from:'); } //console.log(courseName); // Display Allowed number of states in Body of Page, and change page heading. //$('.map-header1').text(courseName); //$('.statenum').text(statesToChoose); //$('.statenum-after').text(stateHeader); $('.map-selection-details') .text('Showing ' + programStates.length + ' states/territories for ' + PROGRAMS_CONFIG[ program ].title) .trigger('focus'); }; //var getSchoolOption = 'default'; /* $('.schoolOption').click(function () { var selectedProgram = $(this).attr('id'); SelectProgram(selectedProgram); }); */ $('.program-select').change(function () { var selectedProgram = $(this).val(); SelectProgram(selectedProgram); }); $('.state-name-dropdown').on('change', (function(){ var stateIden = $(this).val(); clickedInfo(stateIden, stateIden, stateIden); })); var clearStates = function (directive) { //Clear Program State Selections for (var state in allStates) { $('#map').usmap('trigger', state, directive); } }; var clickedInfo = function (event, data, stateIden) { if (data !== undefined) { var stateAbbr = data.name; } if (stateIden !== undefined) { var stateAbbr = stateIden; } clearStates('unselectedProgram'); $('.stateName').removeClass('selectedLink'); $('.programOption').removeClass('selectedLink'); $('#map').usmap('trigger', stateAbbr, 'selectedProgram', event); $('#' + stateAbbr).addClass('selectedLink'); var programsAvailable = 0; for (var program in PROGRAMS_CONFIG) { if (PROGRAMS_CONFIG[program].states.includes(stateAbbr)) { programsAvailable++; $('#' + program).addClass('selectedLink'); } } var stateFullname = allStates[stateAbbr]; $('.map-selection-details') .text(programsAvailable + ' programs available in ' + stateFullname) .trigger('focus'); }; });