(function() { 'use strict'; var mininumCount = 6; var readyToGetMap = false; var belowMinReplacement = 'N<6'; var load_data = (function() { var datacache = {}; // in closure return function(config, callback) { if (datacache.hasOwnProperty(config.data_url)) { callback(datacache[config.data_url], config); } else { $.ajax({ url: config.data_url, datatype: "json", success: function(result) { var json_object = (typeof result === 'string') ? JSON.parse(result) : result; datacache[config.data_url] = json_object; callback(json_object, config); } }); } }; }()); var process_prep = function (datax) { let calculatePercentages = function (prepareSectionData) { let enrollment = prepareSectionData.n_enrolled; let allKeys = Object.keys(prepareSectionData); let returnValue = {} if (enrollment < mininumCount) { allKeys.forEach(key => { returnValue[key] = belowMinReplacement; returnValue[key.replace('n_', 'p_')] = belowMinReplacement; }); } let targetKeys = allKeys.filter(key => key.startsWith('n_') && !key.includes('enrolled')); // copy data allKeys.forEach(key => returnValue[key] = prepareSectionData[key]); // generate new data targetKeys.forEach(key => returnValue[key.replace('n_', 'p_')] = Math.round(prepareSectionData[key] / enrollment * 100) + '%'); return returnValue; }; // will contain two very long strings of html let returnValue = []; var years = Object.keys(datax.prepareDetail).sort(); var detailData = {}; for (let cohort of years) { detailData[cohort] = calculatePercentages(datax.prepareDetail[cohort]); } var columnTotal = (years.length * 2) + 1; // Heading rows var totalEnrollmentHeading = `Total Enrollment`; var fulfilledRequirementHeading = `Fulfilled GE Math/Quantitative Reasoning Requirement`; var placedInCourseHeading = `Placed in Math/Quantitative Reasoning Course`; // Label column (left table column) var numRegularAdmitsLabel = '# Regular Admits'; var fulfilledReqLabel = ` Fulfilled req.

Students were given college level credits for units earned while still in High School. These include things like AP units, Community College Courses, and the like.
See Placement Academic Prep PDF for more details.

`; var inWithoutSILabel = 'In course, NO supported instruction '; var inWithSILabel = ' In course WITH supported instruction '; var inWithSI_ESPLabel = ' In course WITH supported instruction AND
in the Early Start program '; // Empty Cell var emptyCell = ''; var headRows = []; var bodyRows = []; // build math table headRows.push(totalEnrollmentHeading); var rowHtml = ''; rowHtml += emptyCell; years.forEach(cohort => { rowHtml += `${cohort}`; }); bodyRows.push(rowHtml); rowHtml = emptyCell; years.forEach(cohort => { rowHtml += `N%`; }); bodyRows.push(rowHtml); rowHtml = numRegularAdmitsLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_enrolled} -`; }); bodyRows.push(rowHtml); bodyRows.push(fulfilledRequirementHeading); rowHtml = fulfilledReqLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_mpr1} ${detailData[cohort].p_mpr1}`; }); bodyRows.push(rowHtml); bodyRows.push(placedInCourseHeading); rowHtml = inWithoutSILabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_mpr2} ${detailData[cohort].p_mpr2}`; }); bodyRows.push(rowHtml); rowHtml = inWithSILabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_mpr3} ${detailData[cohort].p_mpr3}`; }); bodyRows.push(rowHtml); rowHtml = inWithSI_ESPLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_mpr4} ${detailData[cohort].p_mpr4}`; }); bodyRows.push(rowHtml); let mathHeadHtml = `${headRows.join('')}`; let mathBodyHtml = `${bodyRows.join('')}`; let mathTableHtml = `${mathHeadHtml}${mathBodyHtml}
`; returnValue.push(mathTableHtml); //build written comm table headRows = []; // reset this bodyRows = []; // reset this headRows.push(totalEnrollmentHeading); var rowHtml = ''; rowHtml += emptyCell; years.forEach(cohort => { rowHtml += `${cohort}`; }); bodyRows.push(rowHtml); rowHtml = emptyCell; years.forEach(cohort => { rowHtml += `N%`; }); bodyRows.push(rowHtml); rowHtml = numRegularAdmitsLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_enrolled} -`; }); bodyRows.push(rowHtml); bodyRows.push(fulfilledRequirementHeading); rowHtml = fulfilledReqLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_wc1} ${detailData[cohort].p_wc1}`; }); bodyRows.push(rowHtml); bodyRows.push(placedInCourseHeading); rowHtml = inWithoutSILabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_wc2} ${detailData[cohort].p_wc2}`; }); bodyRows.push(rowHtml); rowHtml = inWithSILabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_wc3} ${detailData[cohort].p_wc3}`; }); bodyRows.push(rowHtml); rowHtml = inWithSI_ESPLabel; years.forEach(cohort => { rowHtml += `${detailData[cohort].n_wc4} ${detailData[cohort].p_wc4}`; }); bodyRows.push(rowHtml); let writtenHeadHtml = `${headRows.join('')}`; let writtenBodyHtml = `${bodyRows.join('')}`; let writtenTableHtml = `${writtenHeadHtml}${writtenBodyHtml}
`; returnValue.push(writtenTableHtml); // return array of html strings [, ] return returnValue; }; var process_fstart = function(datax) { var data = datax.fastStartDetail; var cohorts = Object.keys(data).slice(0, 5); var min = 6; var out; var row; var thead0_tpl = '
Early Indicators of a Fast Start
'; var thead1_tpl = '
{yr1} {yr2} ' + '{yr3} {yr4} {yr5}
'; var thead2_tpl = '
N % N % N % ' + 'N % N %
'; var tbody_tpl = '{label}{nyr1}{pyr1}{nyr2}{pyr2}' + '{nyr3}{pyr3}{nyr4}{pyr4}{nyr5}{pyr5}'; var row_labels = ['Count', 'Full Load (30+ units in 1st year)', 'Full Time (24-29 units in 1st year)', 'Part Time (23 or less units in 1st year)', 'Declared Major At Entry', 'Declared Major by the end of 1st year', 'Retained after 1 Year']; out = ['
']; out.push(thead0_tpl); out.push(thead1_tpl .replace('{yr1}', cohorts[0]) .replace('{yr2}', cohorts[1]) .replace('{yr3}', cohorts[2]) .replace('{yr4}', cohorts[3]) .replace('{yr5}', cohorts[4])); out.push(thead2_tpl); out.push(''); row = tbody_tpl.replace('{label}', row_labels[0]) .replace('{septop}', '') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nEnrolled : ('n<' + min)) .replace('{pyr1}', '') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nEnrolled : ('n<' + min)) .replace('{pyr2}', '') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nEnrolled : ('n<' + min)) .replace('{pyr3}', '') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nEnrolled : ('n<' + min)) .replace('{pyr4}', '') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nEnrolled : ('n<' + min)) .replace('{pyr5}', ''); out.push(row); row = tbody_tpl.replace('{label}', row_labels[1]) .replace('{septop}', ' class="septop"') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nFullLoad : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctFullLoad * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nFullLoad : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctFullLoad * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nFullLoad : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctFullLoad * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nFullLoad : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctFullLoad * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nFullLoad : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctFullLoad * 100.0) + '%' : '0%'); out.push(row); row = tbody_tpl.replace('{label}', row_labels[2]) .replace('{septop}', '') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nFullTime : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctFullTime * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nFullTime : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctFullTime * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nFullTime : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctFullTime * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nFullTime : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctFullTime * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nFullTime : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctFullTime * 100.0) + '%' : '0%'); out.push(row); row = tbody_tpl.replace('{label}', row_labels[3]) .replace('{septop}', '') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nPartTime : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctPartTime * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nPartTime : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctPartTime * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nPartTime : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctPartTime * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nPartTime : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctPartTime * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nPartTime : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctPartTime * 100.0) + '%' : '0%'); out.push(row); row = tbody_tpl.replace('{label}', row_labels[4]) .replace('{septop}', ' class="septop"') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nDeclaredAtEntry : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctDeclaredAtEntry * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nDeclaredAtEntry : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctDeclaredAtEntry * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nDeclaredAtEntry : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctDeclaredAtEntry * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nDeclaredAtEntry : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctDeclaredAtEntry * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nDeclaredAtEntry : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctDeclaredAtEntry * 100.0) + '%' : '0%'); out.push(row); row = tbody_tpl.replace('{label}', row_labels[5]) .replace('{septop}', '') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nDeclared1yr : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctDeclared1yr * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nDeclared1yr : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctDeclared1yr * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nDeclared1yr : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctDeclared1yr * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nDeclared1yr : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctDeclared1yr * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nDeclared1yr : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctDeclared1yr * 100.0) + '%' : '0%'); out.push(row); row = tbody_tpl.replace('{label}', row_labels[6]) .replace('{septop}', ' class="septop"') .replace('{nyr1}', data[cohorts[0]].nEnrolled >= min ? data[cohorts[0]].nRetained1yr : ('n<' + min)) .replace('{pyr1}', data[cohorts[0]].nEnrolled >= min ? Math.round(data[cohorts[0]].pctRetained1yr * 100.0) + '%' : '0%') .replace('{nyr2}', data[cohorts[1]].nEnrolled >= min ? data[cohorts[1]].nRetained1yr : ('n<' + min)) .replace('{pyr2}', data[cohorts[1]].nEnrolled >= min ? Math.round(data[cohorts[1]].pctRetained1yr * 100.0) + '%' : '0%') .replace('{nyr3}', data[cohorts[2]].nEnrolled >= min ? data[cohorts[2]].nRetained1yr : ('n<' + min)) .replace('{pyr3}', data[cohorts[2]].nEnrolled >= min ? Math.round(data[cohorts[2]].pctRetained1yr * 100.0) + '%' : '0%') .replace('{nyr4}', data[cohorts[3]].nEnrolled >= min ? data[cohorts[3]].nRetained1yr : ('n<' + min)) .replace('{pyr4}', data[cohorts[3]].nEnrolled >= min ? Math.round(data[cohorts[3]].pctRetained1yr * 100.0) + '%' : '0%') .replace('{nyr5}', data[cohorts[4]].nEnrolled >= min ? data[cohorts[4]].nRetained1yr : ('n<' + min)) .replace('{pyr5}', data[cohorts[4]].nEnrolled >= min ? Math.round(data[cohorts[4]].pctRetained1yr * 100.0) + '%' : '0%'); out.push(row); out.push('
'); return out.join(''); }; /** * define_cohort{n} fields are used to determine how many cohorts are included in the data * and, as a result, how many columns of data to present. * @param datax * @returns {string} */ var process_desc = function(datax) { var data = datax.degreeDetail[0]; var min = 6; var out; // collects table HTML var row; var tbody_tpl = '{label} ' + '{nyr1}{pyr1}{nyr2}{pyr2}{nyr3}{pyr3} ' + '{nyr4}{pyr4}{nyr5}{pyr5}{nyr6}{pyr6}' + '{nyr7}{pyr7}'; // how many cohorts do we have? let indexMin = 1; let indexMax = null; for (let i = indexMin; data[`define_cohort${i}`] !== undefined; ++i) { indexMax = i; } out = ['']; out.push(``); out.push(``); // write cohort colspan headers row = ''; for (let i = indexMin; i <= indexMax; ++i) { row += ''; } row += ''; out.push(row); out.push(''); // write cohort colspan counts row = ''; for (let i = indexMin; i <= indexMax; ++i) { let value = data[`n_cohort${i}_enrollment`] >= min ? data[`n_cohort${i}_enrollment`] : ('n<' + min); row += ''; } row += ''; out.push(row); // write count and percent data for 4 years (all columns filled) row = ''; for (let i = indexMin; i <= indexMax; ++i) { let enrollment = data[`n_cohort${i}_enrollment`]; let grad = data[`n_cohort${i}_step1_yr_grad`]; let ndata = enrollment >= min ? grad : ('n<' + min); let pdata = enrollment >= min ? Math.round(grad * 100.0 / enrollment) + '%' : '0%'; row += ``; } row += ''; out.push(row); // write count and percent data for 5 years (last two cols are empty) row = ''; for (let i = indexMin; i <= indexMax - 1; ++i) { let enrollment = data[`n_cohort${i}_enrollment`]; let grad = data[`n_cohort${i}_step2_yr_grad`]; let ndata = enrollment >= min ? grad : ('n<' + min); let pdata = enrollment >= min ? Math.round(grad * 100.0 / enrollment) + '%' : '0%'; row += ``; } row += ''; out.push(row); // write count and percent data for 6 years (last 4 cols are empty) row = ''; for (let i = indexMin; i <= indexMax - 2; ++i) { let enrollment = data[`n_cohort${i}_enrollment`]; let grad = data[`n_cohort${i}_step3_yr_grad`]; let ndata = enrollment >= min ? grad : ('n<' + min); let pdata = enrollment >= min ? Math.round(grad * 100.0 / enrollment) + '%' : '0%'; row += ``; } row += ''; out.push(row); // write count and percent data for after 6 years (last 4 cols are empty) row = ''; for (let i = indexMin; i <= indexMax - 2; ++i) { let enrollment = data[`n_cohort${i}_enrollment`]; let stillEnrolled = data[`n_cohort${i}_still_enrolled`]; let ndata = enrollment >= min ? stillEnrolled : ('n<' + min); let pdata = enrollment >= min ? Math.round(stillEnrolled * 100.0 / enrollment) + '%' : '0%'; row += ``; } row += ''; out.push(row); out.push('
Earned a Degree in X Years or Less
Cohort
' + data[`define_cohort${i}`] + '
Count' + value + '
4 Years${ndata}${pdata}
5' + ' Years${ndata}${pdata}
6' + ' Years${ndata}${pdata}
' + 'Still Enrolled
After 6 Years
${ndata}${pdata}
'); return out.join(''); }; var process_enroll = function(datax) { var data = datax.enrollCampusDetail; var data2 = datax.enrollDetail[0]; var d2map = { "Female": "nFemale", "Male": "nMale", "African American": "nAfricanAmerican", "Asian": "nAsian", "White": "nWhite", "Hispanic": "nHispanic", "Pacific Islander": "nPacificIslander", "Two or More Races": "nTwoOrMore", "Unknown Ethnicity": "nUnknown", "Visa/Non US Citizen": "nViasNonUS", "American Indian": "nAmericanIndian", "Received a Pell Grant": "nPell", "Did Not Receive a Pell Grant": "nNotPell", "Mean SAT": "meanSat", "Mean High School GPA": "meanHsgpa" }; var d2ord = ["Male", "Female", "SEPARATOR", "Received a Pell Grant", "Did Not Receive a Pell Grant", "SEPARATOR", "African American", "American Indian", "Asian", "White", "Hispanic", "Pacific Islander", "Two or More Races", "Unknown Ethnicity", "Visa/Non US Citizen", "SEPARATOR", "Mean SAT", "Mean High School GPA"]; var out1; var out2; var row; var thead_tpl1 = 'Campus# Enrolled'; var tbody_tpl1 = '{campus}{nenrolled}'; out1 = ['']; out1.push(thead_tpl1); out1.push(''); data.forEach(function(campus_data) { row = tbody_tpl1.replace('{campus}', campus_data.campus) .replace('{nenrolled}', campus_data.nEnrollment); out1.push(row); }); out1.push('
'); var thead_tpl2 = 'Demographic# Enrolled'; var tbody_tpl2 = '{label}{nenrolled}'; var septop = ''; out2 = ['']; out2.push(thead_tpl2); out2.push(''); d2ord.forEach(function(demographic_key) { var value; if (demographic_key !== 'SEPARATOR') { value = data2[d2map[demographic_key]]; if (typeof value === "undefined") { value = "N/A"; } if (demographic_key === 'Mean High School GPA') { value = Math.round(value * 100.0) / 100.0; } if (demographic_key === 'Mean SAT') { value = 'N/A'; } row = tbody_tpl2.replace('{label}', demographic_key) .replace('{septop}', septop) .replace('{nenrolled}', value); out2.push(row); septop = ''; } else { septop = ' class="septop"'; } }); out2.push('
'); return [out1.join(''), out2.join('')]; }; var process_majors = function(datax) { var data = datax.majorDetail; var out; var row; var thead_tpl = 'Major# Enrolled'; var tbody_tpl = '{major}{nenrolled}'; out = ['']; out.push(thead_tpl); out.push(''); data.forEach(function(major_data) { row = tbody_tpl.replace('{major}', major_data.major) .replace('{nenrolled}', major_data.nEnrollment); out.push(row); }); out.push('
'); return out.join(''); }; var make_prep_chart = function(data) { Highcharts.chart('prep_chart2', { chart: { backgroundColor: 'transparent', plotBorderWidth: null, plotShadow: false, type: 'pie', height: 320, width: 400 }, credits: { enabled: false }, title: { text: '' }, tooltip: { useHTML: true, headerFormat: ' ', useHtml: true, style: { fontWeight: 'bold', fontSize: '12px' }, pointFormat: '{point.name}: {point.percentage:.0f}%' }, plotOptions: { pie: { allowPointSelect: false, cursor: 'pointer', dataLabels: { distance: -80, }, size: 275, }, series: { animation: false } }, series: [{ data: [{ color: 'rgba(255, 140, 30, 0.4)', name: 'GE without
supported
instruction', x: 0, y: Math.round(data.n_students_proficient_last_year * 100.0 / data.n_enrollment_last_year), dataLabels: { style: { fontSize: '32px', fontWeight: 600, textOutline: false, 'text-shadow': '0px 0px 6px black', }, format: "{point.y}%", } }, { color: 'rgba(255, 255, 230, 0.5)', name: 'GE with
supported
instruction', dataLabels: { enabled: false, }, x: 1, y: Math.round(100.0 - (data.n_students_proficient_last_year * 100.0 / data.n_enrollment_last_year)) }], }] }); }; var make_fstart_chart = function(data) { Highcharts.chart('fstart_chart2', { chart: { backgroundColor: 'transparent', plotBorderWidth: null, plotShadow: false, type: 'pie', height: 320, width: 400 }, credits: { enabled: false }, title: { text: '' }, tooltip: { useHTML: true, headerFormat: ' ', style: { fontWeight: 'bold' }, pointFormat: '{point.name}: {point.percentage:.0f}%' }, plotOptions: { pie: { allowPointSelect: false, cursor: 'pointer', dataLabels: { distance: -60, crop: true, useHTML: true, formatter: function() { return this.key === 'Full Load' ? '
' + Highcharts.numberFormat(this.percentage, 0) + '%
' : ''; }, style: { color: 'white', fontSize: '32px', fontWeight: '600' } } }, series: { animation: false } }, series: [{ data: [{ color: 'rgba(60, 90, 215, 0.4)', name: 'Full Load', y: Math.round(data.n_full_load * 100.0 / data.n_enrollment_5_yrs_faststart) }, { color: 'rgba(230, 240, 255, 0.5)', name: 'Not Full Load', y: Math.round(100.0 - (data.n_full_load * 100.0 / data.n_enrollment_5_yrs_faststart)) }] }] }); }; var make_desc_chart = function(data) { var min = 6; Highcharts.chart('desc_chart2', { chart: { type: 'column', height: 240, width: 600, marginTop: 10, backgroundColor: 'transparent' }, credits: false, title: { text: '' }, legend: { symbolRadius: 0, enabled: true, borderWidth: 1, borderRadius: 8, itemWidth: 110, width: 550, }, xAxis: [{ categories: [ data.define_step1 + ' years or less', data.define_step2 + ' years or less', data.define_step3 + ' years or less' ], lineWidth: 1, lineColor: '#aaa', tickWidth: 0, crosshair: true }], yAxis: { min: 0, max: 100, tickInterval: 25, title: { text: '' }, labels: { format: '{value}%' } }, tooltip: { headerFormat: '
{point.key}', pointFormat: '' + '', footerFormat: '
{series.name}: {point.y:.0f}%
', shared: true, useHTML: true, style: { padding: '0', border: 'none' } }, plotOptions: { column: { pointPadding: 0.1, borderWidth: 0 }, series: { pointPadding: 0.1, borderWidth: 0, events: { legendItemClick: function() { return false; } } } }, series: [{ dataLabels: { enabled: true, format: '{point.y}%', verticalAlign: 'top', crop: false, overflow: 'none', useHTML: false, style: { fontSize: '12px', color: '#111' }, y: -45 }, type: 'column', color: 'rgba(252, 191, 40, 0.9)', name: data.define_cohort1 + ' Cohort', data: [ data.n_cohort1_enrollment >= min ? Math.round(data.n_cohort1_step1_yr_grad * 100.0 / data.n_cohort1_enrollment) : null, data.n_cohort1_enrollment >= min ? Math.round(data.n_cohort1_step2_yr_grad * 100.0 / data.n_cohort1_enrollment) : null, data.n_cohort1_enrollment >= min ? Math.round(data.n_cohort1_step3_yr_grad * 100.0 / data.n_cohort1_enrollment) : null ], groupPadding: .08 }, { dataLabels: { enabled: true, format: '{point.y}%', verticalAlign: 'top', crop: false, overflow: 'none', useHTML: false, style: { fontSize: '12px', color: '#111' }, y: -45 }, type: 'column', color: 'rgba(169, 209, 145, 0.9)', name: data.define_cohort2 + ' Cohort', data: [ data.n_cohort2_enrollment >= min ? Math.round(data.n_cohort2_step1_yr_grad * 100.0 / data.n_cohort2_enrollment) : null, data.n_cohort2_enrollment >= min ? Math.round(data.n_cohort2_step2_yr_grad * 100.0 / data.n_cohort2_enrollment) : null, data.n_cohort2_enrollment >= min ? Math.round(data.n_cohort2_step3_yr_grad * 100.0 / data.n_cohort2_enrollment) : null ], groupPadding: .08 }, { dataLabels: { enabled: true, format: '{point.y}%', verticalAlign: 'top', crop: false, overflow: 'none', useHTML: false, style: { fontSize: '12px', color: '#111' }, y: -45 }, type: 'column', color: 'rgba(130, 211, 246, 0.9)', name: data.define_cohort3 + ' Cohort', data: [ data.n_cohort3_enrollment >= min ? Math.round(data.n_cohort3_step1_yr_grad * 100.0 / data.n_cohort3_enrollment) : null, data.n_cohort3_enrollment >= min ? Math.round(data.n_cohort3_step2_yr_grad * 100.0 / data.n_cohort3_enrollment) : null, data.n_cohort3_enrollment >= min ? Math.round(data.n_cohort3_step3_yr_grad * 100.0 / data.n_cohort3_enrollment) : null ], groupPadding: .08 }, { dataLabels: { enabled: true, format: '{point.y}%', verticalAlign: 'top', crop: false, overflow: 'none', useHTML: false, style: { fontSize: '12px', color: '#111' }, y: -45 }, type: 'column', color: 'rgba(251, 230, 157, 0.9)', name: data.define_cohort4 + ' Cohort', data: [ data.n_cohort4_enrollment >= min ? Math.round(data.n_cohort4_step1_yr_grad * 100.0 / data.n_cohort4_enrollment) : null, data.n_cohort4_enrollment >= min ? Math.round(data.n_cohort4_step2_yr_grad * 100.0 / data.n_cohort4_enrollment) : null, data.n_cohort4_enrollment >= min ? Math.round(data.n_cohort4_step3_yr_grad * 100.0 / data.n_cohort4_enrollment) : null ], groupPadding: .08 }, { dataLabels: { enabled: true, format: '{point.y}%', verticalAlign: 'top', crop: false, overflow: 'none', useHTML: false, style: { fontSize: '12px', color: '#111' }, y: -45 }, type: 'column', color: 'rgba(222, 190, 218, 0.9)', name: data.define_cohort5 + ' Cohort', data: [ data.n_cohort5_enrollment >= min ? Math.round(data.n_cohort5_step1_yr_grad * 100.0 / data.n_cohort5_enrollment) : null, data.n_cohort5_enrollment >= min ? Math.round(data.n_cohort5_step2_yr_grad * 100.0 / data.n_cohort5_enrollment) : null, data.n_cohort5_enrollment >= min ? Math.round(data.n_cohort5_step3_yr_grad * 100.0 / data.n_cohort5_enrollment) : null ], groupPadding: .08 }] }, function(chart) { // display values var icon_offset = 143.0; var groupOffset = 179.0; var icon_factor = 1.49; var x_start = 83; var x_offset = 30; // control values for building data let cohortCount = 5; let groupingCount = 3; let allPoints = new Array(); // build data points for (let grpIdx = 1; grpIdx <= 3; grpIdx++) { let groupPointArray = new Array(); allPoints.push(groupPointArray); for (let cohortIdx = 1; cohortIdx <= 5; ++cohortIdx) { let step = data[`n_cohort${cohortIdx}_step${grpIdx}_yr_grad`]; let enrollment = data[`n_cohort${cohortIdx}_enrollment`]; let ypos = icon_offset - (icon_factor * Math.round(step * 100.0 / enrollment)); let aPoint = {x: null, y: null}; if (enrollment >= min) { aPoint.x = x_start + x_offset * (cohortIdx - 1) + groupOffset * (grpIdx - 1); aPoint.y = ypos; } else { aPoint = null; } groupPointArray.push(aPoint); } } // draw lines for (let pointGroup of allPoints) { let lastPoint = null; let nextPoint = null; for (let point of pointGroup) { nextPoint = point; if (lastPoint !== null && nextPoint !== null) { chart.renderer.path(['M', lastPoint.x, (lastPoint.y + 8.0), 'L', nextPoint.x, (nextPoint.y + 8.0)]) .attr({'stroke-width': 2, stroke: '#f57'}) .attr({zIndex: 4}) .add(); } lastPoint = nextPoint !== null ? nextPoint : lastPoint; } } // render icons for (let pointGroup of allPoints) { for (let point of pointGroup) { if (point === null) { continue; } let x = point.x - 10; let y = point.y - 3; let h = 20; let w = 16; chart.renderer.image('/static/page/hsdash/icon_desc_chart.png', x, y, h, w) .attr({zIndex: 5}) .add(); } } }); }; var make_majors_chart = function(data) { Highcharts.chart('majors_chart2', { chart: { height: 200, width: 600, marginLeft: 88, marginBottom: 80, marginRight: 10 }, credits: false, title: { verticalAlign: 'bottom', y: -10, useHTML: true, text: '
Average for all California HS Students
' }, yAxis: { min: 0, max: 100, // affects xpos_declared, xpos_undeclared gridLineWidth: 0, lineWidth: 0, lineColor: '#aaa', tickColor: '#aaa', tickLength: 3, tickWidth: 1, tickInterval: 10, tickPosition: 'inside', minorTickPosition: 'inside', title: '', labels: { format: '{value}%', x: -4 } }, legend: {enabled: false}, tooltip: { useHTML: true, headerFormat: ' ', style: { fontWeight: 'bold' }, pointFormat: '{point.category}: {point.y:.0f}%' }, xAxis: [{ lineWidth: 0, gridLineWidth: 0, tickWidth: 0, title: '', categories: ['Declared', 'Undeclared'], labels: { style: { fontSize: '18px', color: '#111', fontWeight: '600' }, align: 'left', x: 7, y: 5 } }, { lineWidth: 0, gridLineWidth: 0, tickWidth: 0, title: '', categories: ['Avg Declared', 'Avg Undeclared'], labels: false }], series: [{ type: 'bar', pointWidth: 50, data: [{ name: 'Declared', color: 'rgba(120,170,30,0.9)', y: Math.round(data.n_declared * 100.0 / data.n_enrollment_last_5_yrs) }, { name: 'Undeclared', color: 'rgba(160,0,210,0.9)', y: Math.round(100.0 - (data.n_declared * 100.0 / data.n_enrollment_last_5_yrs)) }] }, { type: 'scatter', xAxis: 1, data: [{ y: data.pct_declared_allhs, name: 'Avg Declared', marker: { symbol: 'url(/static/page/hsdash/purple-graph-bar.png)' } }, { y: data.pct_undeclared_allhs, name: 'Avg Undeclared', marker: { symbol: 'url(/static/page/hsdash/purple-graph-bar.png)' } }] }] }, function(chart) { chart.renderer.image('/static/page/hsdash/declared.png', 30, 18, 45, 50) .attr({zIndex: 5}) .add(); chart.renderer.image('/static/page/hsdash/undeclared.png', 30, 84, 45, 50) .attr({zIndex: 5}) .add(); chart.renderer.path(['M', 145, 174, 'L', 175, 174]) .attr({'stroke-width': 3, stroke: '#405'}) .attr({zIndex: 4}) .add(); }); }; var make_enroll_chart = function(data, config) { var max3 = Math.max( data.n_cohort1_enrollment, data.n_cohort2_enrollment, data.n_cohort3_enrollment, data.n_cohort4_enrollment, data.n_cohort5_enrollment ); Highcharts.chart('enroll_chart2', { chart: { type: 'column', height: 240, width: 600 }, credits: false, title: { text: '' }, yAxis: { min: 0, max: max3, allowDecimals: false, endOnTick: true, minorGridLineWidth: 0, gridLineWidth: 0, lineColor: '#aaa', lineWidth: 1, tickColor: '#aaa', tickWidth: 1, tickLength: 8, tickPosition: 'inside', title: '' }, legend: false, tooltip: { useHTML: true, headerFormat: ' ', style: { fontWeight: 'bold' }, pointFormat: '{point.y} students enrolled at CSU in the fall.' }, xAxis: { lineWidth: 1, lineColor: '#aaa', tickWidth: 0, categories: [ data.define_cohort1, data.define_cohort2, data.define_cohort3, data.define_cohort4, data.define_cohort5 ] }, plotOptions: { series: { pointPlacement: -0.1, pointPadding: 0.05 } }, series: [{ data: [{ color: 'rgba(252, 191, 40, 0.9)', y: data.n_cohort1_enrollment }, { color: 'rgba(169, 209, 145, 0.9)', y: data.n_cohort2_enrollment }, { color: 'rgba(130, 211, 246, 0.9)', y: data.n_cohort3_enrollment }, { color: 'rgba(251, 230, 157, 0.9)', y: data.n_cohort4_enrollment }, { color: 'rgba(222, 190, 218, 0.9)', y: data.n_cohort5_enrollment }], dataLabels: { enabled: true, format: '{point.y}', verticalAlign: 'top', useHTML: true, style: { fontSize: '22px', color: '#111', y: -20 } } }] }, function(chart) { chart.renderer.image('/static/page/hsdash/icon_enroll_chart.png', -22, 150, 180, 100) .attr({zIndex: 5}) .add(); chart.renderer.image('/static/page/hsdash/icon_enroll_chart.png', 87, 150, 180, 100) .attr({zIndex: 5}) .add(); chart.renderer.image('/static/page/hsdash/icon_enroll_chart.png', 197, 150, 180, 100) .attr({zIndex: 5}) .add(); chart.renderer.image('/static/page/hsdash/icon_enroll_chart.png', 304, 150, 180, 100) .attr({zIndex: 5}) .add(); chart.renderer.image('/static/page/hsdash/icon_enroll_chart.png', 413, 150, 180, 100) .attr({zIndex: 5}) .add(); }); }; var process_html_hs_substitutions = function(data) { var hs_name = data.graphData[0].school_name; var cohortsArray = Object.keys(data.graphData[0]) .filter(property => property.startsWith('define_cohort')) .map(property => data.graphData[0][property]) .sort(); var hs_cohorts = cohortsArray.join(', '); var hs_ready = '' + Math.round(data.graphData[0].n_students_proficient * 100.0 / data.graphData[0].n_enrollment_last_5_yrs) + '%'; var hs_pct_declared = '' + Math.round(data.graphData[0].n_declared * 100.0 / data.graphData[0].n_enrollment_last_5_yrs) + '%'; var hs_avg_enroll = '' + Math.round(data.graphData[0].avg_5yr_enrollment); var hs_pct_fload = '' + Math.round(data.graphData[0].n_full_load * 100.0 / data.graphData[0].n_enrollment_5_yrs_faststart) + '%'; var hs_enrolled = '' + data.graphData[0].n_enrollment_5_yrs_faststart; var hs_pct_gradrate = '' + Math.round(data.graphData[0].gradrate_duration * 100.0) + '%'; var english_ordinals = ['zero', 'one', 'two', 'three', 'four', 'five', 'six']; var hs_gradrate_duration = '' + english_ordinals[data.graphData[0].define_duration]; var earn_degree_start = data.degreeDetail[0].define_cohort1; var earn_degree_stop = earn_degree_start + 4; var last_year = data.graphData[0].define_cohort5; var hs_ready_last_year = Math.round( data.graphData[0].n_students_proficient_last_year * 100.0 / data.graphData[0].n_enrollment_last_year ); var fs_yearStart = Object.keys(data.fastStartDetail).shift(); var fs_yearEnd = Object.keys(data.fastStartDetail).pop(); var enrollYearStart = cohortsArray.shift(); // destructive!! var enrollYearEnd = cohortsArray.pop(); // destructive!! var majorYearStart = enrollYearStart; // uses same value var majorYearEnd = enrollYearEnd; // uses same value $('article .hasvar').each(function() { var html = $(this).html(); html = html.replace('{hs_name}', hs_name) .replace('{hs_gradrate_duration}', hs_gradrate_duration) .replace('{hs_pct_gradrate}', hs_pct_gradrate) .replace('{hs_enrolled}', hs_enrolled) .replace('{hs_pct_fload}', hs_pct_fload) .replace('{hs_pct_declared}', hs_pct_declared) .replace('{hs_avg_enroll}', hs_avg_enroll) .replace('{hs_ready}', hs_ready) .replace('{hs_cohorts}', hs_cohorts) .replace('{hs_cohorts}', hs_cohorts) .replace('{earn_degree_start}', earn_degree_start) .replace('{earn_degree_stop}', earn_degree_stop) .replace('{last_year}', last_year) .replace('{hs_ready_last_year}', hs_ready_last_year) .replace('{fs_yearStart}', fs_yearStart) .replace('{fs_yearEnd}', fs_yearEnd) .replace('{enrollYearStart}', enrollYearStart) .replace('{enrollYearEnd}', enrollYearEnd) .replace('{majorYearStart}', majorYearStart) .replace('{majorYearEnd}', majorYearEnd); $(this).html(html).css('visibility', 'visible'); }); }; var process_ferpa_sparse_data = function() { $('.ferpa').html($('.ferpa').first().html()); }; var process_data = function(data, config) { process_html_hs_substitutions(data); // Coming Soon! make_prep_chart(data.graphData[0], config); make_enroll_chart(data.graphData[0], config); make_majors_chart(data.graphData[0], config); make_fstart_chart(data.graphData[0], config); make_desc_chart(data.degreeDetail[0], config); var result_prep_table; if (data.prepareDetail !== false) { // key value >= min result_prep_table = process_prep(data, config); $('#prep_table_mth').html(result_prep_table[0]); $('#prep_table_eng').html(result_prep_table[1]); $('#prep_table_mth').parent().children().show(); $('#prep_table_mth').parent().find('.ferpa').hide(); } else { $('#prep_table_mth').parent().children().hide(); $('#prep_table_mth').parent().css('overflow', 'hidden').find('.ferpa').show(); } var result_enroll_table; if (data.ferpa_enroll !== false) { // key value >= min result_enroll_table = process_enroll(data, config); $('#enroll_table1').html(result_enroll_table[0]); $('#enroll_table2').html(result_enroll_table[1]); $('#enroll_table1').parent().children().show(); $('#enroll_table1').parent().find('.ferpa').hide(); } else { $('#enroll_table1').parent().children().hide(); $('#enroll_table1').parent().css('overflow', 'hidden').find('.ferpa').show(); } if (data.majorDetail !== false) { // key value >= min $('#majors_table').html(process_majors(data, config)); $('#majors_table').parent().children().show(); $('#majors_table').parent().find('.ferpa').hide(); } else { $('#majors_table').parent().children().hide(); $('#majors_table').parent().css('overflow', 'hidden').find('.ferpa').show(); } if (data.fastStartDetail !== false) { // key value >= min $('#fstart_table').html(process_fstart(data, config)); $('#fstart_table').parent().children().show(); $('#fstart_table').parent().find('.ferpa').hide(); } else { $('#fstart_table').parent().children().hide(); $('#fstart_table').parent().css('overflow', 'hidden').find('.ferpa').show(); } if (data.degreeDetail !== false) { // key value >= min $('#desc_table').html(process_desc(data, config)); $('#desc_table').parent().children().show(); $('#desc_table').parent().find('.ferpa').hide(); } else { $('#desc_table').parent().children().hide(); $('#desc_table').parent().css('overflow', 'hidden').find('.ferpa').show(); } $('.columnright li').on('click', function(e) { var target = e.target; var tabs; var panels; var tabnames = ['Quick Fact', 'More Data', 'Actions']; var tabnum = tabnames.indexOf(target.innerText); tabs = $(target.parentNode.parentNode).find('.tabtops>li'); tabs.removeClass('active'); $(target).addClass('active'); panels = $(target.parentNode.parentNode).find('.tabset>div.tab'); panels.hide(); panels.each(function(el) { if (el === tabnum) { $(this).show(); } }); }); }; var parse_url_for_partner = function() { var q = document.URL.split('?')[1]; if (q.indexOf('#') !== -1) { q = q.split('#')[0]; // only use portion of the query string up to the first '#' // Note: the http standard has any anchor # following the query string, e.g. http:example.com?name=adam&city=eden#question1 } var keyval; var pname = ''; if (q !== undefined) { q.split('&').forEach(function(el) { keyval = el.split('='); if (keyval[0] === 'pname') { pname = keyval[1]; } }); return [decodeURIComponent(pname), pname]; } }; /* config not used but retained for possible future use */ var create_google_map = function(data, config) { var mapisloaded = false; var schoolDetailUrlTemplate = 'https://partners.dashboards.calstate.edu/details?id={hsid}&pagestyle=hs'; var map; var contentString1 = '
' + '

{name}

' + '
' + '

{address}
{city}, CA, {zip}

' + '
' + '
'; var contentString2 = '
' + '

{name}

' + '
' + '

{address}
{city}, CA, {zip}

' + '

HS Details: {name}

' + '
' + '
'; var hs_list = data.itemlist; var out2sort = []; hs_list.forEach(function(item, i) { if (i > 0) { out2sort.push([item[2], item[7]]); } }); out2sort.sort(function(a, b) { return a[0] < b[0] ? -1 : 1; }); var agg_list = []; out2sort.forEach(function(item) { agg_list.push('
  • ' + item[0] + '
  • '); }); $('#hslist').html(agg_list.join('')).css('visibility', 'visible'); var findCenter = function(hslist) { var latall = []; var lngall = []; hslist.forEach(function(el) { latall.push(el[0]); lngall.push(el[1]); }); var latmin = Math.min.apply(Math, latall); var latmax = Math.max.apply(Math, latall); var lngmin = Math.min.apply(Math, lngall); var lngmax = Math.max.apply(Math, lngall); var middle = [(latmax + latmin) / 2.0, (lngmax + lngmin) / 2.0]; // middle of extremes return middle; }; findCenter(hs_list); var initMap = function() { var partneritem = hs_list[0]; var markers = []; var fns = []; var popups = []; var hsicon = '/static/page/hsdash/mappin-school-shadow.png'; var partnericon = '/static/page/hsdash/mappin-church-shadow.png'; var center = findCenter(hs_list); var center_lat = center[0]; var center_lng = center[1]; map = new google.maps.Map(document.getElementById('map'), { //mapTypeId: 'terrain', zoom: 12, center: new google.maps.LatLng(center_lat, center_lng) }); map.addListener('tilesloaded', function() { if (!mapisloaded) { mapisloaded = true; let numericLat = parseFloat(partneritem[0]); let numericLng = parseFloat(partneritem[1]); var partnermarker = new google.maps.Marker({ position: {"lat": numericLat, "lng": numericLng}, map: map, title: partneritem[2], icon: partnericon }); var partnerpopup = new google.maps.InfoWindow({ content: contentString1.replace('{name}', partneritem[2]) .replace('{name}', partneritem[2]) .replace('{address}', partneritem[3]) .replace('{city}', partneritem[4]) .replace('{zip}', partneritem[5]) .replace('{hsid}', partneritem[7]) }); partnermarker.addListener('click', function() { popups.forEach(function(el) { el.close(); }); partnerpopup.open(map, this); }); hs_list.forEach(function(item, i) { if (i > 0) { markers[i] = new google.maps.Marker({ position: {"lat": item[0], "lng": item[1]}, map: map, title: item[2], icon: hsicon }); popups[i] = new google.maps.InfoWindow({ content: contentString2.replace('{name}', item[2]) .replace('{name}', item[2]) .replace('{address}', item[3]) .replace('{city}', item[4]) .replace('{zip}', item[5]) .replace('{hsid}', item[7]) }); fns[i] = function() { partnerpopup.close(); popups.forEach(function(el) { el.close(); }); popups[i].open(map, markers[i]); }; markers[i].addListener('click', fns[i]); $('#hsgm_' + item[7]).on('click', fns[i]); } }); } }); }; window.initMap = initMap; $('body').append(''); }; var process_partner = function(data1, data2, config) { var out = []; var partner_data1 = data1[config.pname]; var pdata = partner_data1[0]; out.push([pdata[1][0], pdata[1][1], config.pname, pdata[4], pdata[3], "" + pdata[2], 0, ""]); var hsdata = partner_data1[1]; hsdata.forEach(function(hs) { var sid = hs[0]; var lat = hs[1][0]; var lng = hs[1][1]; var miles = hs[2]; var el = data2[sid]; out.push([lat, lng, el[0], el[2], el[1], el[3], miles, sid]); }); var hs_list = out; var out2sort = []; hs_list.forEach(function(item, i) { if (i > 0) { out2sort.push([item[2], item[7]]); } }); out2sort.sort(function(a, b) { return a[0] < b[0] ? -1 : 1; }); var agg_list = []; out2sort.forEach(function(item) { agg_list.push('
  • ' + item[0] + '
  • '); }); $('#hslist').html(agg_list.join('')).css('visibility', 'visible'); return {"itemlist": out}; }; var init = function() { var pattern2 = /[^A-Za-z0-9]/g; // data urls will depend on church selected var pname_results = parse_url_for_partner(); var pname = pname_results[0]; var uripname = pname_results[1]; $('.title-bar h1').html( $('.title-bar h1').html().replace('{hs_name}', pname) ).css('visibility', 'visible'); process_ferpa_sparse_data(); if (pname !== undefined && pname !== '') { var suffix = pname .replace(pattern2, ' ') .replace(/\s+/g, '_') .replace(/_$/, ''); load_data({data_url: '/data/hsdash/partner-hsdirmin2.json', pname: pname}, function(data1) { load_data({data_url: '/data/hsdash/partner-hslookup.json'}, function(data2) { process_partner(data1, data2, {pname: pname, uripname: uripname}); if (readyToGetMap) { create_google_map( process_partner(data1, data2, {pname: pname, uripname: uripname}), {} // not used but could be ); } else { $(document).on('getMap', function() { create_google_map( process_partner(data1, data2, {pname: pname, uripname: uripname}), {} // not used but could be ); }); } }); }); load_data({data_url: '/data/hsdash/partner/church_aggregate_' + suffix + '.json'}, function(data, config) { data.graphData.school_name = pname; process_data(data, config); readyToGetMap = true; $(document).trigger('getMap'); }); } // setup additional controls (buttons and sliders) // TODO: implement this //addSlider('majors-controls', null, 2014, 2018); //addSlider('fstart-controls', null, 2013, 2017); }; $(init()); }());