The official I LOVE NYTravel Guide isavailable here. Download it now to find inspiration for your next trip to New York State, from world-class beaches andexciting outdoor adventures to delicious restaurants and cozy hotel getaways. The digital guide is easy to use; just click on a category and explore all that New York State has to offer. Below, you'll also find a digital version of our Winter Guide to New York, with all the exciting winter adventures to consider around the state. You can alsoorder a brochure todayand have it mailed to you. For information focused exclusively on New York City, visit NYCgo's Official Guide for everything you'd need to plan a trip. Plus, sign up below for I LOVE NY's newsletters, with fresh travel ideas, fall foliage reports, can't-miss events, and more!
Masks are encouraged, but optional in most settings perNew York State guidelines. Individual businesses or attractions may require mask wearing. Call ahead and check websites and social media to make sure attractions and amenities are open and available.
Find what you love in New York State!more
Find what you love all year long. Download the I LOVE NY 2024 calendar.more
Here is everything you need to plan a winter adventure in New York!more
Everythingyou need to know to plan a memorable vacation in New York!more
Planning a trip to New York City? Visit the official NYCgo website for maps and guides.more
Sign Up for Our Newsletter
Find out what's happening in New York State,right in your inbox!more
'+ '
'+ '<<' + 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 day wrkdate[1] = parseInt(wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1],10); //always holds the month wrkdate[2] = parseInt(wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1],10); //always holds the year if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi"); var numdays = 31; if(wrkdate[1] == 2){//feb numdays = 28; //check if leap year if (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 month if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it wrkdate[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 be wrk[0] = wrkdate[1]; //put the month back where it should be wrk[2] = wrkdate[2]; //put the year back where it should be wrkdate = wrk.join("/"); //join on the us delim and return valid rtnvar = true; } } } } if(!rtnvar){ //if we didn't get a good date from above we use today wrkdate = 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 day wrkdate[1] = parseInt(wrk[0],10); //always holds the month wrkdate[2] = parseInt(wrk[2],10); //always holds the year if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi"); var numdays = 31; if(wrkdate[1] == 2){//feb numdays = 28; //check if leap year if (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 month if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it wrkdate[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 be wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1] = wrkdate[1]; //put the month back where it should be wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1] = wrkdate[2]; //put the year back where it should be wrkdate = wrk.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); //join on the correct delim and return valid rtnvar = true; } } } } if(!rtnvar){ //I dont really know what to do here i guess just use today and convert to their date var 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 +++++++++++++++++++++++++++++++++++++*/