" if(navigator.userAgent.indexOf('MSIE',0) != -1) { target.document.close() } target.document.write(calendar); target.document.close() } function clear() { return; } // GO Ireland Java script function gigenerateCalendar(target,month,year ) // **************************************************************** // * Author: Geraldine Healy Date: 25/08/2024 // * Description: generates the contents of the calender window // * // * Modified by: Y.Hillion Date: 20/01/2025 // * New look, display two years calendar // * with months on screen // **************************************************************** { if (!isBrowserSupp()) { return; } var frmName = frmName; //begin table for calendar target.document.open() calendar = "calendar "+year+"" calendar += "" calendar += "" //The parseInt function parses the string argument as a signed decimal integer. var mthIdx = parseInt(month); var endday = getDaysInMonth(mthIdx, year); var prevyear = parseInt(year) - 1; var nextyear = parseInt(year) + 1; var today = new Date(); today.setDate(today.getDate()); var thisDate = today.getDate(); var thisDay = today.getDay(); var thisMonth = today.getMonth(); var thisyear = today.getYear(); if (thisyear < 2000) // Y2K Fix, Yoan Hillion thisyear = thisyear + 1900; //year header - by default: two years displayed if (thisyear == year) { // display calendar for current year and the following year calendar+="" + year + " / " calendar+="" + nextyear + "" } else { // display calendar for selected year calendar+="" + prevyear + " / " calendar+="" + year + "" } //months table calendar +="" calendar +="" for (var monthindex = 0; monthindex < 12; monthindex++){ if (monthindex == 6) { calendar +="" } if (monthindex == (mthIdx-1)) { calendar+="" } else { calendar+="" } } calendar+= "" calendar+= "
" + monthShortName[monthindex] + "" + monthShortName[monthindex]+ "
Clear

" //month header var index = (mthIdx-1) calendar += "" + monthName[index] + " " + year + "
" // Weekdays calendar +="

" calendar +="" //writes in the day of the week labels calendar +="" calendar +="" calendar +="" calendar +="" calendar +="" calendar +="" calendar +="" calendar +="" calendar +="" wholeDate = month + "/01/" + year thedate = new Date(wholeDate) firstDay = thedate.getDay() selectedmonth = mthIdx; selectedyear = year var lastDay = (endday + firstDay+1) calendar +="" for (var i = 1; i < lastDay; i++) { if (i <= firstDay) { // 'empty' boxes prior to first day calendar +="" } else { // Current Year, previous month if (((month -1) < thisMonth) && (year == thisyear)){ // Disabled dates calendar +="" } else { // Current Year, Current Month, previous day if (((i-firstDay) < thisDate) && ((month -1) == thisMonth) && (year == thisyear)){ // Disabled dates calendar +="" } else { // Current Year, Current Month, Current day if (((i-firstDay) == thisDate) && ((month-1) == thisMonth) && (year == thisyear)){ // highlighted day calendar +="" } else { // The Other dates calendar +="" } } } } //must start new row after each week if (i % 7 == 0 && i != lastDay) { calendar +="" } } calendar +="
SunMonTueWedThuFriSat
"+(i-firstDay)+""+(i-firstDay)+""+(i-firstDay)+""+(i-firstDay)+"
" if(navigator.userAgent.indexOf('MSIE',0) != -1) { target.document.close() } target.document.write(calendar); target.document.close() } function giparseDay(day, inD) // **************************************************************** // * Author: Geraldine Healy Date: 25/08/2024 // * Description: Parses a string and returns a day value // **************************************************************** { var i=1; var retval =1; for (i=1;i<=31;i++) { if (day == inD.options[i].text) { retval=i; break; } } return retval; } function giparseYear(year, inY) // **************************************************************** // * Author: Geraldine Healy Date: 25/08/2024 // * Description: Parses a string and returns a year value // **************************************************************** { var retval=0; var i=0; for (i=0; i<=5; i++) { if (year == inY) { retval=i; break; } } return retval; } function createCalendar(month,year) // **************************************************************** // * Author: Geraldine Healy Date: 25/08/2024 // * Description: //opens a new window for the calendar // **************************************************************** { if (!isBrowserSupp()) { alert("Your browser is outdated and does not support this feature") return; } if (navigator.appVersion.indexOf("Mac",0) != -1) { calendarWindow = window.open("","Calendar","width=230,height=275,resizable=yes,scrollbars=no"); } else { calendarWindow = window.open("","Calendar","width=230,height=255,resizable=yes,scrollbars=no"); } var mthIdx = month.options.selectedIndex var mthVal = getMonthNumber(month.options[mthIdx].text) var yearVal = year.options[year.options.selectedIndex].text //call the function to populate the window generateCalendar(calendarWindow,mthVal,yearVal) calendarWindow.focus(); // Modified by Y.Hillion on 20/01/2025 } function gicreateCalendar(monthyear, frmName) // **************************************************************** // * Author: Geraldine Healy Date: 25/08/2024 // * Description: //opens a new window for the calendar // **************************************************************** { var month, year; var monthyeararray = new Array(); tempfrmName = frmName + ''; monthyeararray = monthyear.split("-"); month = monthyeararray[0]; year = monthyeararray[1]; if (!isBrowserSupp()) { alert("Your browser is outdated and does not support this feature"); return; } if (navigator.appVersion.indexOf("Mac",0) != -1) { calendarWindow = window.open("","Calendar","width=230,height=275,resizable=yes,scrollbars=no"); } else { calendarWindow = window.open("","Calendar","width=230,height=255,resizable=yes,scrollbars=no"); } //call the function to populate the window gigenerateCalendar(calendarWindow, month, year); calendarWindow.focus(); // Modified by Y.Hillion on 20/01/2025 } function closeCalendar(day) { var datDate,strDay,strMonth,strYear; var yrIdx = parseYear(selectedyear,document.forms['frmSearch'].selArriveYear ); // Decrement index for day and month, because code assumes // that we have an extra defaultvalue at the start. document.forms['frmSearch'].selArriveMonth.options.selectedIndex=selectedmonth-1; document.forms['frmSearch'].selArriveYear.options.selectedIndex= yrIdx; document.forms['frmSearch'].selArriveDay.options.selectedIndex=parseInt(day)-1; strDay=document.forms['frmSearch'].selArriveDay.options[document.forms['frmSearch'].selArriveDay.selectedIndex].text; strMonth=document.forms['frmSearch'].selArriveMonth.options[document.forms['frmSearch'].selArriveMonth.selectedIndex].value - 1; strYear=document.forms['frmSearch'].selArriveYear.options[document.forms['frmSearch'].selArriveYear.selectedIndex].text; updArriveDay(strDay,strMonth,strYear); // No idea what this function call does - comment it out ! } function closeCalendarOLD(day) { var datDate,strDay,strMonth,strYear; var yrIdx = parseYear(selectedyear,document.forms[frmName].selArriveYear ); // Decrement index for day and month, because code assumes // that we have an extra defaultvalue at the start. document.forms[frmName].selArriveMonth.options.selectedIndex=selectedmonth-1; document.forms[frmName].selArriveYear.options.selectedIndex= yrIdx; document.forms[frmName].selArriveDay.options.selectedIndex=parseInt(day)-1; strDay=document.forms[frmName].selArriveDay.options[document.forms[frmName].selArriveDay.selectedIndex].text; strMonth=document.forms[frmName].selArriveMonth.options[document.forms[frmName].selArriveMonth.selectedIndex].value - 1; strYear=document.forms[frmName].selArriveYear.options[document.forms[frmName].selArriveYear.selectedIndex].text; updArriveDay(strDay,strMonth,strYear); // No idea what this function call does - comment it out ! } // document.forms['frmSearch'] function gicloseCalendar(day) { document.forms[tempfrmName].selArriveDay.options.selectedIndex=parseInt(day)-1; for (i=0;i<=document.forms[tempfrmName].selArriveMonth.options.length;i++) { if (document.forms[tempfrmName].selArriveMonth.options[i].value == selectedmonth + "-" + selectedyear) { document.forms[tempfrmName].selArriveMonth.options.selectedIndex = i; break; } } updArriveDay1(day,selectedmonth - 1,selectedyear, tempfrmName); } function updArriveDay(strDay,strMonth,strYear) { var datDate, aryDayNames, wday; aryDayNames = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday'); //MG : Use the consructor for the date instead of the set method... // It's to avoid problem with the 31 wich was set as 1... datDate = new Date(strYear,strMonth,strDay); wday=datDate.getDay(); document.forms['frmSearch'].txtArriveDay.value=(aryDayNames[wday]+= ','); } function updArriveDay1(strDay,strMonth,strYear, frmName) { var datDate, aryDayNames, wday; aryDayNames = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday', 'Friday', 'Saturday'); //MG : Use the consructor for the date instead of the set method... // It's to avoid problem with the 31 wich was set as 1... datDate = new Date(strYear,strMonth,strDay); wday=datDate.getDay(); document.forms[frmName].txtArriveDay.value=(aryDayNames[wday]+= ','); } function giupdArriveDay(strDay,strMonthYear, frmName) { var monthyeararray = new Array(); monthyeararray = strMonthYear.split("-"); updArriveDay1(strDay, monthyeararray[0]-1, monthyeararray[1], frmName); } function getMonthFromMonthYear( monthyear) { var monthyeararray = new Array(); monthyeararray = monthyear.split("-"); return monthyeararray[0]; } function getYearFromMonthYear( monthyear) { var monthyeararray = new Array(); monthyeararray = monthyear.split("-"); return monthyeararray[1]; } //-->
Welcome to Ireland's leading accommodation reservation service
Choose from over 8,000 properties.
Quality accommodation - Guaranteed low prices - Secure reservations
Location
Select *
Or specify
Premises Type
*
Party Details Adults Children (<12 years)  Infants (<3 years) *
Arrival Date * Click here to use pop-up calendar
Number of Nights *
Currency

begin search cancel
If you have specific requirements or need to make a booking for a group of 8 people or more please Contact our Travel Advisor Team