Sign Up
For Our Newsletter
Don’t miss out on the latest events and happenings in St. Louis!
Sign up for The Explore St. Louis newsletter and stay informed about the city’s top attractions, dining, and entertainment options.
'+'
'+'<<' + this.getCurMonthName(sDate) + '>> '+' | '+''+'<<' + sDate.getFullYear() + '>>'+' | '+'
'+'
'+'
'};return d.calendar;},calDays: function(id, curDate, useToday){var rtnvar = '';var numDaysInMonth = new Date(curDate.getFullYear(), curDate.getMonth()+1, 0).getDate();var startofmonth = new Date();startofmonth = new Date(curDate.getFullYear(),curDate.getMonth(),1);var rows = Math.ceil((startofmonth.getDay()+numDaysInMonth)/7);var cday = 1;var firstday = startofmonth.getDay()+1;var lastday = numDaysInMonth;var loopstart = 0;var loopend = 0;var currentDate = new Date();currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());for(var i = 1; i <= rows; i++){rtnvar += '
';cday++;}else{rtnvar += '
';}}rtnvar += '
';}return rtnvar;},replaceCal: function (id, sDate) {var cal = this.createCal(id, sDate, false);if (document.getElementById(id + '_calendar')) {document.getElementById(id + '_calendar').innerHTML = cal;} else {var newDomElm = document.createElement('div');newDomElm.style.position = 'absolute';newDomElm.innerHTML = cal;newDomElm.id = id + '_calendar';if (document.getElementById('fieldcontainer_' + id)) {document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);}}return;},updateDate: function(id, curDate){document.getElementById(id).value = curDate;//document.getElementById(id).onchange();if(document.getElementById(id + '_calendar')){document.getElementById('fieldcontainer_' + id).removeChild(document.getElementById(id + '_calendar'));}if(document.getElementById('datepicker_' + id)){document.getElementById('datepicker_' + id).onclick = function(){svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(id), document.getElementById(id).value);};}},showDatePicker: function(domElm, curDate){var cleanID = domElm.id.replace('datepicker_', '');var sDate = new Date();if(!document.getElementById(cleanID + '_calendar')){if(document.getElementById(cleanID)){try{if(curDate){sDate = this.convertToUSDate(curDate);if(sDate == 'Invalid Date'){sDate = new Date();}}}catch(e){sDate = new Date();}this.getCalendar(cleanID, sDate);}}else{document.getElementById('fieldcontainer_' + cleanID).removeChild(document.getElementById(cleanID + '_calendar'));}},getCalendar: function(id, curDate){var newDomElm = document.createElement('div');newDomElm.style.position = 'absolute';newDomElm.innerHTML = this.createCal(id, curDate, true);newDomElm.id = id + '_calendar';newDomElm.className = 'svcrm_datepicker';document.getElementById('fieldcontainer_' + id).appendChild(newDomElm);},convertToUSDate: function(dte){var rtnvar = false;var wrk = dte.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);var wrkdate = [];var mydate = '';if(wrk.length > 0){wrkdate[0] = parseInt(wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1],10); //always holds the daywrkdate[1] = parseInt(wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1],10); //always holds the monthwrkdate[2] = parseInt(wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1],10); //always holds the yearif(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the monthsvar monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");var numdays = 31;if(wrkdate[1] == 2){//febnumdays = 28;//check if leap yearif (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){numdays = 29;}}else if(monthsWithDaysRegExp.test(wrkdate[1])){numdays = 30;}if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this monthif(wrkdate[2].toString().length == 2){ //if we have a two digit year pad itwrkdate[2] = chkYear(wrkdate[2]);}if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this/*we are here we have a valid month and we have a valid day for that month and we have a valid 4 digit year*///fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);wrk[1] = wrkdate[0]; //put the day back where it should bewrk[0] = wrkdate[1]; //put the month back where it should bewrk[2] = wrkdate[2]; //put the year back where it should bewrkdate = wrk.join("/"); //join on the us delim and return validrtnvar = true;}} }}if(!rtnvar){ //if we didn't get a good date from above we use todaywrkdate = new Date();}return wrkdate;},convertToUserDate: function(dte){var rtnvar = false;var wrk = dte.split("/");var wrkdate = [];var mydate = '';if(wrk.length > 0){wrkdate[0] = parseInt(wrk[1],10); //always holds the daywrkdate[1] = parseInt(wrk[0],10); //always holds the monthwrkdate[2] = parseInt(wrk[2],10); //always holds the yearif(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the monthsvar monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi");var numdays = 31;if(wrkdate[1] == 2){//febnumdays = 28;//check if leap yearif (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){numdays = 29;}}else if(monthsWithDaysRegExp.test(wrkdate[1])){numdays = 30;}if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this monthif(wrkdate[2].toString().length == 2){ //if we have a two digit year pad itwrkdate[2] = chkYear(wrkdate[2]);}if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this/*we are here we have a valid month and we have a valid day for that month and we have a valid 4 digit year*///fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1] = wrkdate[0]; //put the day back where it should bewrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1] = wrkdate[1]; //put the month back where it should bewrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1] = wrkdate[2]; //put the year back where it should bewrkdate = wrk.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); //join on the correct delim and return validrtnvar = true;}} }}if(!rtnvar){ //I dont really know what to do here i guess just use today and convert to their datevar t = new Date();t = t.getMonth()+1 + '/' + t.getDay() + '/' + t.getFullYear();wrkdate = this.convertToUserDate(t);}return wrkdate;},convertToUserMDOnlyDate: function(dte){var dateFormat_MDOnly = crm_locale.DATEFMT_MDONLY.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER);var _day = dte.getDate().toString();var _month = (dte.getMonth() + 1).toString();var _dayFormat = '';var _monthFormat = '';var _dayPostion = '';var _monthPostion = '';if(dateFormat_MDOnly[0].indexOf('d') != -1){_dayFormat = dateFormat_MDOnly[0];_monthFormat = dateFormat_MDOnly[1];_dayPostion = 0;_monthPostion = 1;}else{_dayFormat = dateFormat_MDOnly[1];_monthFormat = dateFormat_MDOnly[0];_dayPostion = 1;_monthPostion = 0;}if(_dayFormat == 'dd' && _day.length != 2){_day = '0' + _day;}if(_monthFormat == 'mm' && _month.length != 2){_month = '0' + _month;}var dsp = [];dsp[_dayPostion] = _day;dsp[_monthPostion] = _month;dsp = dsp.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER);return dsp;}};/* +++++++++++++++++++++++++++ END Script Calendar +++++++++++++++++++++++++++++++++++++*/if (window.addEventListener) {window.addEventListener('load', svcrm.formBuilderScripts.__onload_function, false);} else if (window.attachEvent) {window.attachEvent('onload', svcrm.formBuilderScripts.__onload_function);}})();/* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/