function dateRange(FIRSTGAME,LASTGAME,SELECTEDSTART,SELECTEDEND) { // all args are text: yyyy-mm-dd var months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; var y1Sel = document.getElementById('year1'); var m1Sel = document.getElementById('month1'); var d1Sel = document.getElementById('day1'); var y2Sel = document.getElementById('year2'); var m2Sel = document.getElementById('month2'); var d2Sel = document.getElementById('day2'); var y1 = parseInt(FIRSTGAME.substr(0,4)); var m1 = parseInt(FIRSTGAME.substr(5,2)); var d1 = parseInt(FIRSTGAME.substr(8,2)); var y2 = parseInt(LASTGAME.substr(0,4)); var m2 = parseInt(LASTGAME.substr(5,2)); var d2 = parseInt(LASTGAME.substr(8,2)); var iy1 = y1; var im1 = m1; var id1 = d1; var iy2 = y2; var im2 = m2; var id2 = d2; if(SELECTEDSTART) { iy1 = parseInt(SELECTEDSTART.substr(0,4)); im1 = parseInt(SELECTEDSTART.substr(5,2)); id1 = parseInt(SELECTEDSTART.substr(8,2)); } if(SELECTEDEND) { iy2 = parseInt(SELECTEDEND.substr(0,4)); im2 = parseInt(SELECTEDEND.substr(5,2)); id2 = parseInt(SELECTEDEND.substr(8,2)); } if(y1Sel) { populateYears(y1Sel,iy1); if(m1Sel) y1Sel.addEventListener('change', p1Months); if(d1Sel) y1Sel.addEventListener('change', p1Days); } if(y2Sel) { populateYears(y2Sel,iy2); if(m2Sel) y2Sel.addEventListener('change', p2Months); if(d2Sel) y2Sel.addEventListener('change', p2Days); } if(m1Sel) { populateMonths(m1Sel,y1Sel.value); if(d1Sel) m1Sel.addEventListener('change', p1Days); } if(m2Sel) { populateMonths(m2Sel,y2Sel.value); if(d2Sel) m2Sel.addEventListener('change', p2Days); } if(d1Sel) populateDays(d1Sel,y1Sel.value,m1Sel.value); if(d2Sel) populateDays(d2Sel,y2Sel.value,m2Sel.value); function populateYears(ySel,selected) { while (ySel.hasChildNodes()) ySel.removeChild(ySel.lastChild); for(var i=y1; i<=y2; i++) { var opt = document.createElement('option'); opt.value = i; opt.appendChild(document.createTextNode(i)); ySel.appendChild(opt); } ySel.value = selected; } function p1Months() { populateMonths(m1Sel,y1Sel.value,true); } function p2Months() { populateMonths(m2Sel,y2Sel.value,true); } function populateMonths(mSel,year,chg) { while (mSel.hasChildNodes()) mSel.removeChild(mSel.lastChild); for(i = 0; i < months.length; i++) { if(year == y1 && (i+1) < m1) continue; if(year == y2 && (i+1) > m2) break; opt = document.createElement('option'); opt.value = i + 1; opt.appendChild(document.createTextNode(months[i])); mSel.appendChild(opt); } if(mSel == m1Sel) { if(year == y1) { if(im1 < m1) mSel.value = m1; else mSel.value = im1; } else if(chg) mSel.value = 1; else mSel.value = im1; } else if(mSel == m2Sel) { if(year == y2) { if(im2 < m2) mSel.value = im2; else mSel.value = m2; } else if(chg) mSel.value = 12; else mSel.value = im2; } } function p1Days() { populateDays(d1Sel,y1Sel.value,m1Sel.value,true); } function p2Days() { populateDays(d2Sel,y2Sel.value,m2Sel.value,true); } function populateDays(dSel,year,month,chg) { maxDay = new Date(year, month, 0).getDate(); while (dSel.hasChildNodes()) dSel.removeChild(dSel.lastChild); for (i=1; i<= maxDay; i++) { if(year == y1 && month == m1 && i < d1) continue; if(year == y2 && month == m2 && i > d2) break; opt = document.createElement('option'); opt.value = i; opt.appendChild(document.createTextNode(i)); dSel.appendChild(opt); } if(dSel == d1Sel) { if(year == y1 && month == m1) dSel.value = id1; else if(chg) dSel.value = 1; else dSel.value = id1; } else if(dSel == d2Sel) { if(year == y2 && month == m2) dSel.value = id2; else if(chg) dSel.value = maxDay; else dSel.value = id2; } } }