<!DOCTYPE HTML>
<!--[if lte IE 7]> <html class="ie7"> <![endif]-->
<!--[if IE 8]>     <html class="ie8"> <![endif]-->
<!--[if IE 9]>     <html class="ie9"> <![endif]-->
<!--[if IE 10]>     <html class="ie10"> <![endif]-->
<!--[if !IE]><!--><html class="non-ie" xml:lang="en" lang="en"><!--<![endif]-->
<head>
<title>Reservation System - Lucan Spa Hotel</title>

<script>
    if(document.location.href.indexOf('cancel') === -1) { 
        document.location.href = 'https://www.lucanspahotel.ie/booking-engine-LUCANSPAIBE02-1289.html';
    }
</script>

<meta name="keywords" content="">
<meta name="description" content="">
<link rel="shortcut icon" href="//secure.lucanspahotel.ie/files/images/favicon.ico">
<link rel="canonical" href="/sitemap.xml">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<!-- bke stylesheets/javascript -->
<link href='//fonts.googleapis.com/css?family=Open+Sans:400,300,100,500,600,700' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/bke-reset.css" type="text/css">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/style-availtable.css" type="text/css">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/jquery.plugins.css" type="text/css">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">
<link rel="stylesheet" href="//use.fontawesome.com/releases/v5.10.1/css/all.css" integrity="sha384-wxqG4glGB3nlqX0bi23nmgwCSjWIW13BdLUEYC4VIMehfbcro/ATkyDsF/AbIOVe" crossorigin="anonymous">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/themes/base/jquery-ui.css" type="text/css">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/jquery.rating.css" type="text/css">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/calendar.css" type="text/css">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/bke.scss" type="text/css">
<!-- <link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/bke.comp.css" type="text/css"> -->
<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/print.scss" type="text/css" media="print">
<link rel="stylesheet" href="//secure.lucanspahotel.ie/bookings/bkecss" type="text/css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.min.js"></script>
<script src="//secure.lucanspahotel.ie/files/js/jquery.plugins.js" type="text/javascript"></script>

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBu-aZ_fS_DXfN-Dz_0YPY-9622cP0AY5I"></script>

<link rel="stylesheet" href="//secure.lucanspahotel.ie/files/css/bke-searchbox.scss">

<!--[if lt IE 9]>
  <script src="//oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  <script src="//oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
  <script src="//secure.lucanspahotel.ie/files/js/disable-response.js" type="text/javascript"></script>
<![endif]-->


<script src="//www.tripadvisor.com/js3/conversion/pixel.js"></script>
</head>

 

 <!-- IF microsite -->
<body class="pagelayout lang-en microsite">
 <!-- ENDIF microsite -->

	<script>
var $buoop = {vs:{i:9,f:25,o:12.1,s:7},c:2};
function $buo_f(){
 var e = document.createElement("script");
 e.src = "//browser-update.org/update.min.js";
 document.body.appendChild(e);
};
try {document.addEventListener("DOMContentLoaded", $buo_f,false)}
catch(e){window.attachEvent("onload", $buo_f)}
</script>

<header class="palette-bkgd-1" id="na-header">
	<div class="row">
		<div class="container">
			<!-- DESKTOP -->
			<div class="btn-home pull-left" style="display:none;">
				<a href="https://www.lucanspahotel.ie/booking-engine-LUCANSPAIBE02-1289.html" class="tip" title="Main website"><i class="zmdi zmdi-home"></i> <span>HOME</span></a>
			</div>
			<div class="bke-settings">
        
				

				<!-- BEGIN bke_currency_selector -->
				<div class="setting-curr">
					<div class="selected-curr-symbol"></div>
					
<select id="curr_selector" onchange="if (typeof ch_currency === 'function'){ ch_currency(this)}" class="bke_currency_selector">
      <option value="2" >EUR</option>
      <option value="4" >GBP</option>
      <option value="3" selected>USD</option>
</select>
<script type="text/javascript">
(function(funcName, baseObj) {
    funcName = funcName || "docReady";
    baseObj = baseObj || window;
    var readyList = [];
    var readyFired = false;
    var readyEventHandlersInstalled = false;
    function ready() {
        if (!readyFired) {
            readyFired = true;
            for (var i = 0; i < readyList.length; i++) {
                readyList[i].fn.call(window, readyList[i].ctx);
            }
            readyList = [];
        }
    }

    function readyStateChange() {
        if ( document.readyState === "complete" ) {
            ready();
        }
    }
    baseObj[funcName] = function(callback, context) {
        if (readyFired) {
            setTimeout(function() {callback(context);}, 1);
            return;
        } else {
            readyList.push({fn: callback, ctx: context});
        }
        if (document.readyState === "complete") {
            setTimeout(ready, 1);
        } else if (!readyEventHandlersInstalled) {
            if (document.addEventListener) {
                document.addEventListener("DOMContentLoaded", ready, false);
                window.addEventListener("load", ready, false);
            } else {
                document.attachEvent("onreadystatechange", readyStateChange);
                window.attachEvent("onload", ready);
            }
            readyEventHandlersInstalled = true;
        }
    }
})("docReady", window);

var set_hover = function($) {
   
}


    Object.keys = Object.keys || (function () {
        var hasOwnProperty = Object.prototype.hasOwnProperty,
            hasDontEnumBug = !{toString:null}.propertyIsEnumerable("toString"),
            DontEnums = [
                'toString',
                'toLocaleString',
                'valueOf',
                'hasOwnProperty',
                'isPrototypeOf',
                'propertyIsEnumerable',
                'constructor'
            ],
            DontEnumsLength = DontEnums.length;
      
        return function (o) {
            if (typeof o != "object" && typeof o != "function" || o === null)
                throw new TypeError("Object.keys called on a non-object");
         
            var result = [];
            for (var name in o) {
                if (hasOwnProperty.call(o, name))
                    result.push(name);
            }
         
            if (hasDontEnumBug) {
                for (var i = 0; i < DontEnumsLength; i++) {
                    if (hasOwnProperty.call(o, DontEnums[i]))
                        result.push(DontEnums[i]);
                }   
            }
         
            return result;
        };
    })();

    // START    
    var currChanger = (function(){
        var availableCurr    = {"3":{"symbol":"$","name":"US Dollar","isocode":"USD","rate":"1.1538","side":"r"},"2":{"side":"r","rate":"1.0000","isocode":"EUR","symbol":"&euro;","name":"Euro"},"4":{"name":"Pound Sterling","symbol":"&pound;","isocode":"GBP","rate":"0.8718","side":"r"}};
        var defaultCurrency  = 2;
        var currentCurrency  = false;//2;
        var changeCurrency   = false;
        var defaultClassName = 'curr_chan';
        var settings         = {
            defaultClassName : defaultClassName,
            changeCallback   : false,
            noRound          : false,
            replaceWithin    : false,
            ignoreOwnCurr    : false,
            obj              : false,
            objName          : false,
            arr              : false,
            arrName          : false,
            exceptIdLike     : false,
            onRoom           : false,
        };
        var bke_selected_currency = 'bke_selected_currency';
        var bke_selected_currency_sbox = 'bke_selected_currency_sbox';
        var origPriceObjs = {};
        var origPriceArr = {};
        var currentObjCurr = {};
        var currentArrCurr = {};
        var changerFunction = [];
        var currDataOrigin = {};
        var currData = {};
        var currDataCurrency = {};
        var currDataId = 0;
        var origCurrency = {};
        var currRoomCurrency = {};
        return {
            // changes currency
            setCurrency  : setCurrency,            
            addSymbol    : addSymbol,
            addChangerFunction : addChangerFunction,
            setCurrencyOnMultiple : setCurrencyOnMultiple,
            // Settings that needed to be called before replacing 
            // currency when applicable
            changeCallback : changeCallback,
            getDefaultCurrency:getDefaultCurrency,
            getCurrentCurrency:getCurrentCurrency,
            exceptIdLike   : exceptIdLike,
            replaceWithin  : replaceWithin,
            ignoreOwnCurr  : ignoreOwnCurr,
            onObject       : onObject,
            onRoom         : onRoom,
            onArray        : onArray,
            // rest of changes
            getCurrentCurrencySymbol : getCurrentCurrencySymbol,
            getRate        : getRate,
            noRound	       : noRound,
        }

        function noRound () {
        	settings.noRound = true;
        	return this;
        }

        function logErr (error) {
        }

        function exceptIdLike (regex) {
            settings.exceptIdLike = regex;
            return this;
        }

        function addChangerFunction(name) {        	
            var add = true;
            try {
                if (changerFunction.indexOf(name) >= 0) {
                    add = false;
                }
            } catch(error) {logErr(error);}
            if ( add )
                changerFunction.push(name);
            return this;
        }

        function onObject(o,name) {
            settings.obj = o;
            settings.objName = name;
            return this;
        }

        function onArray(a,name) {
            settings.arr = a;
            settings.arrName = name;
            return this;
        }

        function changeCallback(c) {
            settings.changeCallback = c;
            return this;
        }

        function replaceWithin(c) {
            settings.replaceWithin = c;
            return this;
        }

        function onRoom(c) {
            settings.onRoom = c;
            return this;
        }

        function ignoreOwnCurr() {
            settings.ignoreOwnCurr = true;
            return this;
        }

        function getCurrentCurrency(obj) {
            if (currentCurrency && currentCurrency != 0) {
                return currentCurrency;
            } else  {
                return getDefaultCurrency();
            }
        }

        function getCurrentCurrencySymbol (obj) {
            if (!obj) {
                return availableCurr[getDefaultCurrency()]['symbol'];
            } else {
                return availableCurr[getCurrencyFromSpan(obj)]['symbol'];
            }
        }

        function setCurrencyOnMultiple (to) {        
            if (changerFunction.length > 0) {
                for (var i = 0; i < changerFunction.length; i++) {
                    changerFunction[i](false,to);
                };
            }
        }

        // retrieves default currency for specified room when necessary
        // this required onRoom switch to define id of room to find '#bke_room_currency'
        function getDefaultCurrency () {
            var curr = defaultCurrency;
            if (settings.onRoom && !settings.onRoom == '') {
                if (origCurrency[settings.room]) {
                    curr = origCurrency[settings.room];
                } else {
                    try {
                        curr = document.querySelectorAll('#bke_room_currency'+settings.onRoom)[0].value;
                        origCurrency[settings.onRoom] = curr;
                    } catch (error) {logErr('Cannot find default currency for room '+settings.onRoom);} 
                }
            }
            return curr;
        }

        function currChangerCurrency() {
            var curr = defaultCurrency;
            try {
                curr = document.querySelectorAll('#curr_selector')[0].value;
            } catch (error) {logErr('Cannot find default currency changer value');} 
            return curr;
        }

        function clearData() {
        	currData = {} ;
        }

        // setting currency to values on page with curr_chan class
        function setCurrency (to, clear) {        	
            if (!to) 
                to = currChangerCurrency();
            if (!availableCurr[to] || to == 0) 
                to = getDefaultCurrency();
            if (clear)	
            	clearData();
            if (settings.obj && settings.objName) {
                if (!currentObjCurr[settings.objName])
                    currentObjCurr[settings.objName] = getDefaultCurrency();
                if (currentObjCurr[settings.objName] != to) {
                    changedObject = changeObjectCurrencies(currentObjCurr[settings.objName],to);
                    currentObjCurr[settings.objName] = to;
                    returnObj = changedObject;
                } else {
                    returnObj = settings.obj;
                }
            } else if (settings.arr && settings.arrName && settings.arr.length > 0){
                if (!currentArrCurr[settings.arrName])
                    currentArrCurr[settings.arrName] = getDefaultCurrency();
                if (currentObjCurr[settings.arrName] != to) {
                    changedArray = changeArrayCurrencies(currentArrCurr[settings.arrName],to);
                    currentArrCurr[settings.arrName] = to;
                    changeElementCurrencies(false,to);
                    returnObj = changedArray;
                } else {
                    returnObj = settings.arr;
                }
            } else {            
                changeElementCurrencies(false,to, clearData);
                returnObj = this;
            }
            
            if (settings.callback) settings.callback(to);
            cleanup();            
            return returnObj;
        }

        function changeArrayCurrencies(from, to) {
            if (!origPriceArr[from])
                origPriceArr[from] = {};
            if (!origPriceArr[from][settings.arrName])
                    origPriceArr[from][settings.arrName] = settings.arr;
            if (!origPriceArr[to])
                origPriceArr[to] = {};
            if (origPriceArr[to][settings.arrName])
                return origPriceArr[to][settings.arrName];

            changedArr = recalcArr(settings.arr,from,to);
            origPriceArr[to][settings.arrName] = changedArr;
            return changedArr;
        }

        function recalcArr(arr,from,to) {
            var manip = [];
            changeArrNode(arr, manip, from, to);
            if (manip.length > 0)
                manip = manip[0];
            return manip;
        }

        function changeArrNode(arr, manip, from, to) {
            if (arr) {
                if (Object.prototype.toString.call(arr) === '[object Array]') {
                    manip.push([]);
                    for (var i=0; i < arr.length; i++ ) {
                        changeArrNode(arr[i], manip[(manip.length-1)], from, to);
                    }
                } else {
                    manip.push(changeObjValue(arr, from, to));
                }
            }
        }

        function changeObjectCurrencies (from,to) {
            if (!origPriceObjs[from])
                origPriceObjs[from] = {};
            if (!origPriceObjs[from][settings.objName])
                    origPriceObjs[from][settings.objName] = settings.obj;
            if (!origPriceObjs[to])
                origPriceObjs[to] = {}
            if (origPriceObjs[to][settings.objName])
                return origPriceObjs[to][settings.objName];

            changedObj = recalcObj(settings.obj,from,to);
            origPriceObjs[to][settings.objName] = changedObj;
            return changedObj;
        }

        function recalcObj(obj,from,to) {
            var manip = {};
            changeObjNode(obj, manip, from, to);
            return manip;
        }

        function changeObjNode (obj, manip, from, to) {
            if (Object.prototype.toString.call(obj) === '[object Object]') {
                var keys = Object.keys(obj);
                for (var i=0; i < keys.length; i++ ) {
                    manip[keys[i]] = {};
                    if (Object.prototype.toString.call(obj[keys[i]]) !== '[object Object]') {
                        manip[keys[i]] = changeObjValue(obj[keys[i]], from, to);
                    } else {
                        changeObjNode(obj[keys[i]], manip[keys[i]], from, to);
                    }
                }
            } else {
                manip = changeObjValue(obj[keys[i]], from, to)(a);
            }
        }

        function changeObjValue (value,from,to) {
            if (value === 0 || value === '0') {
                return 0;
            }
            return addSymbol(exchangeRate(getRate(value), from, to),to);
        }

        function hasClass(ele,cls) {
            return !!ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
        }

        function addClass(ele,cls) {
            if (!hasClass(ele,cls)) ele.className += " "+cls;
        }

        function setCurrSpanData(obj) {
            var id = currDataId++;
            var className = 'curr_data'+id;            
            addClass(obj,className);
            return id;
        }

        function getSpanCurrency (obj,from,to) {
            id = getDataId(obj);

            currentValue = getObjValue(obj,from);

            if (id) {
                if (!currData[from])
                    currData[from] = {}
                if (!currData[from][id]){
                    if (!isNaN(currentValue)) {
                        currData[from][id] = currentValue;
                    }
                }
                if (!currData[to])
                    currData[to] = {};
                if (currData[to][id]) {
                    return currData[to][id];
                }
            } else {
                id = setCurrSpanData(obj);
                if (from == to)
                    return currentValue;
            }

            return false;            
        }

        function getDataId (obj) {
            classes = obj.className.split(' ');
            
            if (classes.length > 0) {
                for (var i = classes.length - 1; i >= 0; i--) {
                    match = classes[i].match(/curr_data(\d*)/);
                    if (match && match[1]) 
                        return match[1];
                }
            }
            return false;
        }
        
        function getCurrencyFromSpan(obj) {
            id = getDataId(obj);
            
            if (id) {
                if (currDataCurrency[id]) {
                    return currDataCurrency[id]
                } else {
                    currDataCurrency[id] = getDefaultCurrency();
                    return currDataCurrency[id];
                }
            } else {
                id = setCurrSpanData(obj);
                currDataCurrency[id] = getDefaultCurrency();
                return currDataCurrency[id];
            }
        }

        function setCurrencyToSpan(obj,newValue) {
            classes = obj.className.split(' ');
            
            if (classes.length > 0) {
                for (var i = classes.length - 1; i >= 0; i--) {
                    match = classes[i].match(/curr_data(\d*)/);
                    if (match && match[1]) {
                        match = match[1];
                    }
                    if (currDataCurrency[match]) {
                        currDataCurrency[match] = newValue;
                    }
                }
            }
        }

        function changeElementCurrencies (from,to) {         		
                var all = getAllToChange(settings.defaultClassName, settings.replaceWithin);
                var tempFrom;
                var tempTo;
                for (var i=0; i < all.length; i++ ) {
                    obj = all[i];
                    
                    from = getCurrencyFromSpan(obj);

                    if (settings.ignoreOwnCurr) {
                        tempTo        = from
                        tempFrom      = from;
                    } else {
                        tempTo        = to;
                        tempFrom      = from;
                    }
                    if (tempTo == tempFrom) {                        
                        continue;
                    }
                    objValue = getSpanCurrency(obj,tempFrom,tempTo);

                    setCurrencyToSpan(obj,tempTo);

                    if (objValue && objValue != false) {
                        applyValue(obj, addSymbol(objValue,tempTo), objValue);
                        continue;
                    }

                    if (availableCurr[tempTo]) {
                        value         = getObjValue(obj, tempFrom);

                        if (!value || value == ''){
                            continue;
                        }
                        changed = exchangeRate(value, tempFrom, tempTo);

                        applyValue(obj, addSymbol(changed, tempTo), changed);                 
                        
                    }
                }
                if (availableCurr[to]) {
                    currentCurrency = to;
                }
                changeInputs(bke_selected_currency,to);
                changeInputs(bke_selected_currency_sbox,to);
        }

        function cleanup () {
            settings         = {
                defaultClassName : defaultClassName,
                changeCallback   : false,
                replaceWithin    : false,
                ignoreOwnCurr    : false,
                obj              : false,
                noRound          : false,
                objName          : false,
                arr              : false,
                arrName          : false,
                exceptIdLike     : false,
                onRoom           : false
            };
        }

        function addSymbol (value, toSymbol) {
            if ((toSymbol == 0 && settings.onRoom) || !toSymbol) {
                toSymbol = getDefaultCurrency();
            }                 
            if (availableCurr[toSymbol]) {
                    if (availableCurr[toSymbol]['side'] == 'l') {
                        lcurr = availableCurr[toSymbol]['symbol'];
                        rcurr = '';
                    } else {
                        lcurr = '';
                        rcurr = availableCurr[toSymbol]['symbol']
                    }
                    value = rcurr + value + lcurr;
            } 
            return value;
        }

        function applyValue(obj,changed,changedValueOnly) {

            try {
                if (obj.tagName == 'INPUT') {
                    obj.value = changedValueOnly;                    
                } else {
                    obj.innerHTML = changed;                  
                }
            } catch (error) {logErr(error);} 
        }

        function getObjValue(obj,original) {
            value = false;
            if (obj.tagName == 'INPUT') {
                value = obj.value;                    
            } else {
                value = obj.innerHTML;                    
            }
            pureValue = getRate(value);
            return pureValue;
        }

        function changeInputs (name,to) {
            input = document.getElementsByName(name);
            if (input) {
                for (var i=0;i<input.length;i++) {
                    input[i].value = to;
                }
            }
            return this;
        }

        function getAllToChange (classNames, replaceWithin) {
            var all = [];
            try {
                if (replaceWithin) {
                    if (replaceWithin.match(/^[#\.]/)) {
                        found = replaceWithin.match(/^[#|\.](.*)/);
                        if (found && found.length > 0) {
                            all = document.querySelectorAll('.'+found[1]+' .curr_chan');
                            if (all.length < 1) {
                                all = document.querySelectorAll('#'+found[1]+' .curr_chan');
                            }
                        } else {
                            all = document.querySelectorAll(replaceWithin+' .curr_chan');
                        }
                    } else {
                        all = document.querySelectorAll('#'+replaceWithin+' .curr_chan');
                    }
                } else {
                    all = document.querySelectorAll('.'+classNames);
                }
                if (all && all.length && settings.exceptIdLike) {
                    newAll = [];
                    for (var i = all.length - 1; i >= 0; i--) {
                        if (all[i].id) {
                            if (!all[i].id.match(settings.exceptIdLike)) {
                                newAll.push(all[i]);
                            }
                        } else {
                            newAll.push(all[i]);
                        }
                    };
                    all = newAll;
                }
            } catch (error) {logErr(error);}
            return all;
        }

        function getRate(rate) {
            var r = '';
            var l = '';
            
            if (!isNaN(rate)) {
                return rate;
            }
            if ($.parseHTML(rate)){
                var newRate = $.parseHTML(rate);
                rate = newRate[0].textContent;
            }
            var match_curr = rate.match(/(?:<span.*?>)?([^\d]+)?((?:\d+)?\,?(?:\d+)\.?(?:\d+)?)?\s?([^\d]+;?)?([^\d]+)?(?:<\/span.*?>)?/);
            if (match_curr && match_curr[2]) {
                rate = match_curr[2];
                if (match_curr[1]) {
                    l = match_curr[1];
                    lcurr = l;
                    rcurr = '';
                } 
                if (match_curr[3]) {
                    r = match_curr[3];
                    rcurr = r;
                    lcurr = '';
                }
            } else {
                rate = rate.replace(/[^\d\.]/,'');
            }
            return rate;
        }
        
        function exchangeRate(value, from, to , callback) {   
            var c = false;

            if (callback && typeof callback === 'function') {
                c = callback;
            }

            if (availableCurr[from] && availableCurr[to]) {
                var er = /^-?[0-9]+$/;
                var isInt = er.test(value);
                value = value.replace(/,/g,'');
                parsedRate = value;
                if (from != 0 || to != 0) {
                    parsedRate = (((parseFloat(value) / parseFloat(availableCurr[from]['rate'])) * parseFloat(availableCurr[to]['rate'])));
                	if (!settings.noRound) {
                		parsedRate = Math.round(parsedRate);
                	}
                }
                if (!isInt) parsedRate = parsedRate.toFixed(2);
                if (c) c(parsedRate);
                
                return parsedRate;
            } else {
                if (c) c(value);
                return value;
            }
        }

        function changeTripteaseCurrencies(from,to){
            var triptease_div = document.querySelectorAll(".price-fighter-widget");
            if(triptease_div[0]){
                if (availableCurr[to]) {
                    noRound();
                    var price = triptease_div[0].getAttribute("data-pf-direct-price");
                    var newPrice = exchangeRate(price, from, to);
                    triptease_div[0].setAttribute("data-pf-direct-price", newPrice);
                    triptease_div[0].setAttribute("data-pf-currency", availableCurr[to].isocode);
                    cleanup();
                }
                if(typeof Paperboy !== 'undefined' && Paperboy.PriceCheck){
                    Paperboy.PriceCheck.reset();
                }
            }
        }
    })();

docReady(function() {
document.getElementById('curr_selector').value = '3';
document.getElementById('curr_selector').onchange();
    document.getElementById('curr_selector').onchange();
   if (typeof jQuery.ui != 'undefined') {
        set_hover(jQuery);
   }
});
</script>

				</div>
				<!-- END bke_currency_selector -->
			</div>

			<a href="https://www.lucanspahotel.ie/booking-engine-LUCANSPAIBE02-1289.html" class="logo"><img src="//secure.lucanspahotel.ie/bookings/showimage?type=18&id=DA937CC64D417A0E1A41C0FB780FFE86" alt="Lucan Spa Hotel" /></a>
      
		</div>
	</div>
</header>

<div class="settings-bar">
  <div class="settings-bar__slide">
    <div class="settings-bar__item btn-booknow open-searchbox-01">
      <i class="far fa-calendar-check"></i> Check Availability
    </div>
    <div class="settings-bar__item settings-bar__calendar">
      <i class="fas fa-edit"></i>
       <div class="booking-summary__cal loading open-searchbox-01">
  <div class="booking-summary__location" style="display:none;">
    <h3>Location</h3>
    <span class="cal-loc"><span class="search-term"></span></span>
  </div>
  <div class="booking-summary__in">
    <h3>Check in</h3>
    <span class="cal-arr__day big"></span>
    <span class="cal-arr__month big"></span>
    <span class="cal-arr__dayname"></span>
    <span class="cal-arr__year"></span>
  </div>
  <div class="booking-summary__out">
    <h3>Check out</h3>
    <span class="cal-dep__day big"></span>
    <span class="cal-dep__month big"></span>
    <span class="cal-dep__dayname"></span>
    <span class="cal-dep__year"></span>
  </div>
  <div class="booking-summary__nights">
    <h3>Nights</h3>
    <span class="cal-nights big">1</span>
  </div>
</div>

<a class="btn-searchagain btn-shadow open-searchbox-01"><i class="fa fa-redo"></i> Search again</a>		





    </div>  
    <div class="settings-bar__item settings-bar__summary" onClick="slidePanel('#booking-summary','Booking Summary')">
      <i class="fas fa-shopping-cart"></i>
      Summary
    </div>
    
    <div class="settings-bar__item settings-bar__filter" onClick="slidePanel('#filter-offers','Filters')">
      <i class="fas fa-filter"></i>
      Filters
    </div>
    <!-- BEGIN bke_currency_selector -->
    <div class="settings-bar__item settings-bar__currency">
    <div class="selected-curr-symbol"></div>
      
<select id="curr_selector" onchange="if (typeof ch_currency === 'function'){ ch_currency(this)}" class="bke_currency_selector">
      <option value="2" >EUR</option>
      <option value="4" >GBP</option>
      <option value="3" selected>USD</option>
</select>
<script type="text/javascript">
(function(funcName, baseObj) {
    funcName = funcName || "docReady";
    baseObj = baseObj || window;
    var readyList = [];
    var readyFired = false;
    var readyEventHandlersInstalled = false;
    function ready() {
        if (!readyFired) {
            readyFired = true;
            for (var i = 0; i < readyList.length; i++) {
                readyList[i].fn.call(window, readyList[i].ctx);
            }
            readyList = [];
        }
    }

    function readyStateChange() {
        if ( document.readyState === "complete" ) {
            ready();
        }
    }
    baseObj[funcName] = function(callback, context) {
        if (readyFired) {
            setTimeout(function() {callback(context);}, 1);
            return;
        } else {
            readyList.push({fn: callback, ctx: context});
        }
        if (document.readyState === "complete") {
            setTimeout(ready, 1);
        } else if (!readyEventHandlersInstalled) {
            if (document.addEventListener) {
                document.addEventListener("DOMContentLoaded", ready, false);
                window.addEventListener("load", ready, false);
            } else {
                document.attachEvent("onreadystatechange", readyStateChange);
                window.attachEvent("onload", ready);
            }
            readyEventHandlersInstalled = true;
        }
    }
})("docReady", window);

var set_hover = function($) {
   
}


    Object.keys = Object.keys || (function () {
        var hasOwnProperty = Object.prototype.hasOwnProperty,
            hasDontEnumBug = !{toString:null}.propertyIsEnumerable("toString"),
            DontEnums = [
                'toString',
                'toLocaleString',
                'valueOf',
                'hasOwnProperty',
                'isPrototypeOf',
                'propertyIsEnumerable',
                'constructor'
            ],
            DontEnumsLength = DontEnums.length;
      
        return function (o) {
            if (typeof o != "object" && typeof o != "function" || o === null)
                throw new TypeError("Object.keys called on a non-object");
         
            var result = [];
            for (var name in o) {
                if (hasOwnProperty.call(o, name))
                    result.push(name);
            }
         
            if (hasDontEnumBug) {
                for (var i = 0; i < DontEnumsLength; i++) {
                    if (hasOwnProperty.call(o, DontEnums[i]))
                        result.push(DontEnums[i]);
                }   
            }
         
            return result;
        };
    })();

    // START    
    var currChanger = (function(){
        var availableCurr    = {"3":{"symbol":"$","name":"US Dollar","isocode":"USD","rate":"1.1538","side":"r"},"2":{"side":"r","rate":"1.0000","isocode":"EUR","symbol":"&euro;","name":"Euro"},"4":{"name":"Pound Sterling","symbol":"&pound;","isocode":"GBP","rate":"0.8718","side":"r"}};
        var defaultCurrency  = 2;
        var currentCurrency  = false;//2;
        var changeCurrency   = false;
        var defaultClassName = 'curr_chan';
        var settings         = {
            defaultClassName : defaultClassName,
            changeCallback   : false,
            noRound          : false,
            replaceWithin    : false,
            ignoreOwnCurr    : false,
            obj              : false,
            objName          : false,
            arr              : false,
            arrName          : false,
            exceptIdLike     : false,
            onRoom           : false,
        };
        var bke_selected_currency = 'bke_selected_currency';
        var bke_selected_currency_sbox = 'bke_selected_currency_sbox';
        var origPriceObjs = {};
        var origPriceArr = {};
        var currentObjCurr = {};
        var currentArrCurr = {};
        var changerFunction = [];
        var currDataOrigin = {};
        var currData = {};
        var currDataCurrency = {};
        var currDataId = 0;
        var origCurrency = {};
        var currRoomCurrency = {};
        return {
            // changes currency
            setCurrency  : setCurrency,            
            addSymbol    : addSymbol,
            addChangerFunction : addChangerFunction,
            setCurrencyOnMultiple : setCurrencyOnMultiple,
            // Settings that needed to be called before replacing 
            // currency when applicable
            changeCallback : changeCallback,
            getDefaultCurrency:getDefaultCurrency,
            getCurrentCurrency:getCurrentCurrency,
            exceptIdLike   : exceptIdLike,
            replaceWithin  : replaceWithin,
            ignoreOwnCurr  : ignoreOwnCurr,
            onObject       : onObject,
            onRoom         : onRoom,
            onArray        : onArray,
            // rest of changes
            getCurrentCurrencySymbol : getCurrentCurrencySymbol,
            getRate        : getRate,
            noRound	       : noRound,
        }

        function noRound () {
        	settings.noRound = true;
        	return this;
        }

        function logErr (error) {
        }

        function exceptIdLike (regex) {
            settings.exceptIdLike = regex;
            return this;
        }

        function addChangerFunction(name) {        	
            var add = true;
            try {
                if (changerFunction.indexOf(name) >= 0) {
                    add = false;
                }
            } catch(error) {logErr(error);}
            if ( add )
                changerFunction.push(name);
            return this;
        }

        function onObject(o,name) {
            settings.obj = o;
            settings.objName = name;
            return this;
        }

        function onArray(a,name) {
            settings.arr = a;
            settings.arrName = name;
            return this;
        }

        function changeCallback(c) {
            settings.changeCallback = c;
            return this;
        }

        function replaceWithin(c) {
            settings.replaceWithin = c;
            return this;
        }

        function onRoom(c) {
            settings.onRoom = c;
            return this;
        }

        function ignoreOwnCurr() {
            settings.ignoreOwnCurr = true;
            return this;
        }

        function getCurrentCurrency(obj) {
            if (currentCurrency && currentCurrency != 0) {
                return currentCurrency;
            } else  {
                return getDefaultCurrency();
            }
        }

        function getCurrentCurrencySymbol (obj) {
            if (!obj) {
                return availableCurr[getDefaultCurrency()]['symbol'];
            } else {
                return availableCurr[getCurrencyFromSpan(obj)]['symbol'];
            }
        }

        function setCurrencyOnMultiple (to) {        
            if (changerFunction.length > 0) {
                for (var i = 0; i < changerFunction.length; i++) {
                    changerFunction[i](false,to);
                };
            }
        }

        // retrieves default currency for specified room when necessary
        // this required onRoom switch to define id of room to find '#bke_room_currency'
        function getDefaultCurrency () {
            var curr = defaultCurrency;
            if (settings.onRoom && !settings.onRoom == '') {
                if (origCurrency[settings.room]) {
                    curr = origCurrency[settings.room];
                } else {
                    try {
                        curr = document.querySelectorAll('#bke_room_currency'+settings.onRoom)[0].value;
                        origCurrency[settings.onRoom] = curr;
                    } catch (error) {logErr('Cannot find default currency for room '+settings.onRoom);} 
                }
            }
            return curr;
        }

        function currChangerCurrency() {
            var curr = defaultCurrency;
            try {
                curr = document.querySelectorAll('#curr_selector')[0].value;
            } catch (error) {logErr('Cannot find default currency changer value');} 
            return curr;
        }

        function clearData() {
        	currData = {} ;
        }

        // setting currency to values on page with curr_chan class
        function setCurrency (to, clear) {        	
            if (!to) 
                to = currChangerCurrency();
            if (!availableCurr[to] || to == 0) 
                to = getDefaultCurrency();
            if (clear)	
            	clearData();
            if (settings.obj && settings.objName) {
                if (!currentObjCurr[settings.objName])
                    currentObjCurr[settings.objName] = getDefaultCurrency();
                if (currentObjCurr[settings.objName] != to) {
                    changedObject = changeObjectCurrencies(currentObjCurr[settings.objName],to);
                    currentObjCurr[settings.objName] = to;
                    returnObj = changedObject;
                } else {
                    returnObj = settings.obj;
                }
            } else if (settings.arr && settings.arrName && settings.arr.length > 0){
                if (!currentArrCurr[settings.arrName])
                    currentArrCurr[settings.arrName] = getDefaultCurrency();
                if (currentObjCurr[settings.arrName] != to) {
                    changedArray = changeArrayCurrencies(currentArrCurr[settings.arrName],to);
                    currentArrCurr[settings.arrName] = to;
                    changeElementCurrencies(false,to);
                    returnObj = changedArray;
                } else {
                    returnObj = settings.arr;
                }
            } else {            
                changeElementCurrencies(false,to, clearData);
                returnObj = this;
            }
            
            if (settings.callback) settings.callback(to);
            cleanup();            
            return returnObj;
        }

        function changeArrayCurrencies(from, to) {
            if (!origPriceArr[from])
                origPriceArr[from] = {};
            if (!origPriceArr[from][settings.arrName])
                    origPriceArr[from][settings.arrName] = settings.arr;
            if (!origPriceArr[to])
                origPriceArr[to] = {};
            if (origPriceArr[to][settings.arrName])
                return origPriceArr[to][settings.arrName];

            changedArr = recalcArr(settings.arr,from,to);
            origPriceArr[to][settings.arrName] = changedArr;
            return changedArr;
        }

        function recalcArr(arr,from,to) {
            var manip = [];
            changeArrNode(arr, manip, from, to);
            if (manip.length > 0)
                manip = manip[0];
            return manip;
        }

        function changeArrNode(arr, manip, from, to) {
            if (arr) {
                if (Object.prototype.toString.call(arr) === '[object Array]') {
                    manip.push([]);
                    for (var i=0; i < arr.length; i++ ) {
                        changeArrNode(arr[i], manip[(manip.length-1)], from, to);
                    }
                } else {
                    manip.push(changeObjValue(arr, from, to));
                }
            }
        }

        function changeObjectCurrencies (from,to) {
            if (!origPriceObjs[from])
                origPriceObjs[from] = {};
            if (!origPriceObjs[from][settings.objName])
                    origPriceObjs[from][settings.objName] = settings.obj;
            if (!origPriceObjs[to])
                origPriceObjs[to] = {}
            if (origPriceObjs[to][settings.objName])
                return origPriceObjs[to][settings.objName];

            changedObj = recalcObj(settings.obj,from,to);
            origPriceObjs[to][settings.objName] = changedObj;
            return changedObj;
        }

        function recalcObj(obj,from,to) {
            var manip = {};
            changeObjNode(obj, manip, from, to);
            return manip;
        }

        function changeObjNode (obj, manip, from, to) {
            if (Object.prototype.toString.call(obj) === '[object Object]') {
                var keys = Object.keys(obj);
                for (var i=0; i < keys.length; i++ ) {
                    manip[keys[i]] = {};
                    if (Object.prototype.toString.call(obj[keys[i]]) !== '[object Object]') {
                        manip[keys[i]] = changeObjValue(obj[keys[i]], from, to);
                    } else {
                        changeObjNode(obj[keys[i]], manip[keys[i]], from, to);
                    }
                }
            } else {
                manip = changeObjValue(obj[keys[i]], from, to)(a);
            }
        }

        function changeObjValue (value,from,to) {
            if (value === 0 || value === '0') {
                return 0;
            }
            return addSymbol(exchangeRate(getRate(value), from, to),to);
        }

        function hasClass(ele,cls) {
            return !!ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
        }

        function addClass(ele,cls) {
            if (!hasClass(ele,cls)) ele.className += " "+cls;
        }

        function setCurrSpanData(obj) {
            var id = currDataId++;
            var className = 'curr_data'+id;            
            addClass(obj,className);
            return id;
        }

        function getSpanCurrency (obj,from,to) {
            id = getDataId(obj);

            currentValue = getObjValue(obj,from);

            if (id) {
                if (!currData[from])
                    currData[from] = {}
                if (!currData[from][id]){
                    if (!isNaN(currentValue)) {
                        currData[from][id] = currentValue;
                    }
                }
                if (!currData[to])
                    currData[to] = {};
                if (currData[to][id]) {
                    return currData[to][id];
                }
            } else {
                id = setCurrSpanData(obj);
                if (from == to)
                    return currentValue;
            }

            return false;            
        }

        function getDataId (obj) {
            classes = obj.className.split(' ');
            
            if (classes.length > 0) {
                for (var i = classes.length - 1; i >= 0; i--) {
                    match = classes[i].match(/curr_data(\d*)/);
                    if (match && match[1]) 
                        return match[1];
                }
            }
            return false;
        }
        
        function getCurrencyFromSpan(obj) {
            id = getDataId(obj);
            
            if (id) {
                if (currDataCurrency[id]) {
                    return currDataCurrency[id]
                } else {
                    currDataCurrency[id] = getDefaultCurrency();
                    return currDataCurrency[id];
                }
            } else {
                id = setCurrSpanData(obj);
                currDataCurrency[id] = getDefaultCurrency();
                return currDataCurrency[id];
            }
        }

        function setCurrencyToSpan(obj,newValue) {
            classes = obj.className.split(' ');
            
            if (classes.length > 0) {
                for (var i = classes.length - 1; i >= 0; i--) {
                    match = classes[i].match(/curr_data(\d*)/);
                    if (match && match[1]) {
                        match = match[1];
                    }
                    if (currDataCurrency[match]) {
                        currDataCurrency[match] = newValue;
                    }
                }
            }
        }

        function changeElementCurrencies (from,to) {         		
                var all = getAllToChange(settings.defaultClassName, settings.replaceWithin);
                var tempFrom;
                var tempTo;
                for (var i=0; i < all.length; i++ ) {
                    obj = all[i];
                    
                    from = getCurrencyFromSpan(obj);

                    if (settings.ignoreOwnCurr) {
                        tempTo        = from
                        tempFrom      = from;
                    } else {
                        tempTo        = to;
                        tempFrom      = from;
                    }
                    if (tempTo == tempFrom) {                        
                        continue;
                    }
                    objValue = getSpanCurrency(obj,tempFrom,tempTo);

                    setCurrencyToSpan(obj,tempTo);

                    if (objValue && objValue != false) {
                        applyValue(obj, addSymbol(objValue,tempTo), objValue);
                        continue;
                    }

                    if (availableCurr[tempTo]) {
                        value         = getObjValue(obj, tempFrom);

                        if (!value || value == ''){
                            continue;
                        }
                        changed = exchangeRate(value, tempFrom, tempTo);

                        applyValue(obj, addSymbol(changed, tempTo), changed);                 
                        
                    }
                }
                if (availableCurr[to]) {
                    currentCurrency = to;
                }
                changeInputs(bke_selected_currency,to);
                changeInputs(bke_selected_currency_sbox,to);
        }

        function cleanup () {
            settings         = {
                defaultClassName : defaultClassName,
                changeCallback   : false,
                replaceWithin    : false,
                ignoreOwnCurr    : false,
                obj              : false,
                noRound          : false,
                objName          : false,
                arr              : false,
                arrName          : false,
                exceptIdLike     : false,
                onRoom           : false
            };
        }

        function addSymbol (value, toSymbol) {
            if ((toSymbol == 0 && settings.onRoom) || !toSymbol) {
                toSymbol = getDefaultCurrency();
            }                 
            if (availableCurr[toSymbol]) {
                    if (availableCurr[toSymbol]['side'] == 'l') {
                        lcurr = availableCurr[toSymbol]['symbol'];
                        rcurr = '';
                    } else {
                        lcurr = '';
                        rcurr = availableCurr[toSymbol]['symbol']
                    }
                    value = rcurr + value + lcurr;
            } 
            return value;
        }

        function applyValue(obj,changed,changedValueOnly) {

            try {
                if (obj.tagName == 'INPUT') {
                    obj.value = changedValueOnly;                    
                } else {
                    obj.innerHTML = changed;                  
                }
            } catch (error) {logErr(error);} 
        }

        function getObjValue(obj,original) {
            value = false;
            if (obj.tagName == 'INPUT') {
                value = obj.value;                    
            } else {
                value = obj.innerHTML;                    
            }
            pureValue = getRate(value);
            return pureValue;
        }

        function changeInputs (name,to) {
            input = document.getElementsByName(name);
            if (input) {
                for (var i=0;i<input.length;i++) {
                    input[i].value = to;
                }
            }
            return this;
        }

        function getAllToChange (classNames, replaceWithin) {
            var all = [];
            try {
                if (replaceWithin) {
                    if (replaceWithin.match(/^[#\.]/)) {
                        found = replaceWithin.match(/^[#|\.](.*)/);
                        if (found && found.length > 0) {
                            all = document.querySelectorAll('.'+found[1]+' .curr_chan');
                            if (all.length < 1) {
                                all = document.querySelectorAll('#'+found[1]+' .curr_chan');
                            }
                        } else {
                            all = document.querySelectorAll(replaceWithin+' .curr_chan');
                        }
                    } else {
                        all = document.querySelectorAll('#'+replaceWithin+' .curr_chan');
                    }
                } else {
                    all = document.querySelectorAll('.'+classNames);
                }
                if (all && all.length && settings.exceptIdLike) {
                    newAll = [];
                    for (var i = all.length - 1; i >= 0; i--) {
                        if (all[i].id) {
                            if (!all[i].id.match(settings.exceptIdLike)) {
                                newAll.push(all[i]);
                            }
                        } else {
                            newAll.push(all[i]);
                        }
                    };
                    all = newAll;
                }
            } catch (error) {logErr(error);}
            return all;
        }

        function getRate(rate) {
            var r = '';
            var l = '';
            
            if (!isNaN(rate)) {
                return rate;
            }
            if ($.parseHTML(rate)){
                var newRate = $.parseHTML(rate);
                rate = newRate[0].textContent;
            }
            var match_curr = rate.match(/(?:<span.*?>)?([^\d]+)?((?:\d+)?\,?(?:\d+)\.?(?:\d+)?)?\s?([^\d]+;?)?([^\d]+)?(?:<\/span.*?>)?/);
            if (match_curr && match_curr[2]) {
                rate = match_curr[2];
                if (match_curr[1]) {
                    l = match_curr[1];
                    lcurr = l;
                    rcurr = '';
                } 
                if (match_curr[3]) {
                    r = match_curr[3];
                    rcurr = r;
                    lcurr = '';
                }
            } else {
                rate = rate.replace(/[^\d\.]/,'');
            }
            return rate;
        }
        
        function exchangeRate(value, from, to , callback) {   
            var c = false;

            if (callback && typeof callback === 'function') {
                c = callback;
            }

            if (availableCurr[from] && availableCurr[to]) {
                var er = /^-?[0-9]+$/;
                var isInt = er.test(value);
                value = value.replace(/,/g,'');
                parsedRate = value;
                if (from != 0 || to != 0) {
                    parsedRate = (((parseFloat(value) / parseFloat(availableCurr[from]['rate'])) * parseFloat(availableCurr[to]['rate'])));
                	if (!settings.noRound) {
                		parsedRate = Math.round(parsedRate);
                	}
                }
                if (!isInt) parsedRate = parsedRate.toFixed(2);
                if (c) c(parsedRate);
                
                return parsedRate;
            } else {
                if (c) c(value);
                return value;
            }
        }

        function changeTripteaseCurrencies(from,to){
            var triptease_div = document.querySelectorAll(".price-fighter-widget");
            if(triptease_div[0]){
                if (availableCurr[to]) {
                    noRound();
                    var price = triptease_div[0].getAttribute("data-pf-direct-price");
                    var newPrice = exchangeRate(price, from, to);
                    triptease_div[0].setAttribute("data-pf-direct-price", newPrice);
                    triptease_div[0].setAttribute("data-pf-currency", availableCurr[to].isocode);
                    cleanup();
                }
                if(typeof Paperboy !== 'undefined' && Paperboy.PriceCheck){
                    Paperboy.PriceCheck.reset();
                }
            }
        }
    })();

docReady(function() {
document.getElementById('curr_selector').value = '3';
document.getElementById('curr_selector').onchange();
    document.getElementById('curr_selector').onchange();
   if (typeof jQuery.ui != 'undefined') {
        set_hover(jQuery);
   }
});
</script>

    </div>
    <!-- END bke_currency_selector -->
    
  </div>
</div>

<div class="na-progress-bar__wrapper">
  <div class="na-progress-bar" style="display:none;">
    <div class="na-progress-bar__main">
      <div class="step-1">
        <span>1</span>
        <span><i class="fa fa-check"></i></span>
      </div>
      <div class="step-2">
        <span>2</span>
        <span><i class="fa fa-check"></i></span>
      </div>
      <div class="step-3">
        <span>3</span>
        <span><i class="fa fa-check"></i></span>
      </div>
      <div class="na-progress-bar__bar"></div>
    </div>
    <div class="na-progress-bar__faded">
      <div class="step-1"></div>
      <div class="step-2"></div>
      <div class="step-3"></div>
      <div class="na-progress-bar__bar"></div>
    </div>
  </div>
  <div class="step-4">
    <h2>Thank you!</h2>
    <div class="confetti-wrapper">
      <div class="confetti-50"></div>
      <div class="confetti-49"></div>
      <div class="confetti-48"></div>
      <div class="confetti-47"></div>
      <div class="confetti-46"></div>
      <div class="confetti-45"></div>
      <div class="confetti-44"></div>
      <div class="confetti-43"></div>
      <div class="confetti-42"></div>
      <div class="confetti-41"></div>
      <div class="confetti-40"></div>
      <div class="confetti-39"></div>
      <div class="confetti-38"></div>
      <div class="confetti-37"></div>
      <div class="confetti-36"></div>
      <div class="confetti-35"></div>
      <div class="confetti-34"></div>
      <div class="confetti-33"></div>
      <div class="confetti-32"></div>
      <div class="confetti-31"></div>
      <div class="confetti-30"></div>
      <div class="confetti-29"></div>
      <div class="confetti-28"></div>
      <div class="confetti-27"></div>
      <div class="confetti-26"></div>
      <div class="confetti-25"></div>
      <div class="confetti-24"></div>
      <div class="confetti-23"></div>
      <div class="confetti-22"></div>
      <div class="confetti-21"></div>
      <div class="confetti-20"></div>
      <div class="confetti-19"></div>
      <div class="confetti-18"></div>
      <div class="confetti-17"></div>
      <div class="confetti-16"></div>
      <div class="confetti-15"></div>
      <div class="confetti-14"></div>
      <div class="confetti-13"></div>
      <div class="confetti-12"></div>
      <div class="confetti-11"></div>
      <div class="confetti-10"></div>
      <div class="confetti-9"></div>
      <div class="confetti-8"></div>
      <div class="confetti-7"></div>
      <div class="confetti-6"></div>
      <div class="confetti-5"></div>
      <div class="confetti-4"></div>
      <div class="confetti-3"></div>
      <div class="confetti-2"></div>
      <div class="confetti-1"></div>
      <div class="confetti-0"></div>
    </div>    
  </div>
</div>



  <div id="searchbox" style="display:none;"><script type="text/javascript">
jQuery(document).ready(function($) {
    $("#bke_name").click(function() {
        $("#bke_id").val(''); $("#loc_id").val(''); $("#c_id").val('');$("#landmark_id").val('');
    }); 
});    

function bke_check_search() {	
     var error = "";     
     if (typeof window.check_consolsite == 'function') {
        error = check_consolsite();
        //error = false;
     };

     if (error) {
        document.forms['bke_search'].bke_name.value='';     	
      };
    
     document.forms['bke_search'].submit();
     return false;
};
</script>
<form style="margin: 0px;" name="bke_search" class="bke_searchbox" method="post" action="//secure.lucanspahotel.ie/bookings/checkavailability" onSubmit="return bke_check_search();">

	<input type="hidden" name="bke_calendar-jquery-collective_sbid" value=""/>
<input type="hidden" name="bke_id" value="A743772EB59BA7865BF7065E22591BA8"/>
<input type="hidden" id="grid_view" name="grid_view" value="0"/>
<input type="hidden" id="minstay" value="1"/>
<input type="hidden" id="maxstay" value="31"/>
<input type="hidden" name="bke_selected_currency_sbox" value="2"/>


<input type="hidden" value="en" name="lang">

<ul id="bke_searchbox_wrapper">
	<li class="title"><h2>Check Availability</h2></li>
	
	<!-- <li class="occupants field-wrapper"><SELECT class="input occupancy" name="occupancy[]" multiple style=""><OPTION value='3'  >Double</OPTION><OPTION value='4'  >Single/Double</OPTION><OPTION value='5'  >Triple</OPTION><OPTION value='8'  >Family 3</OPTION><OPTION value='6'  >Family 4</OPTION><OPTION value='7'  >Family 5</OPTION><OPTION value='9'  >Quadruple</OPTION><OPTION value='10'  >5 Adults</OPTION><OPTION value='11'  >6 Adults</OPTION><OPTION value='43'  >Family 6</OPTION><OPTION value='45'  >8 Adults</OPTION><OPTION value='44'  >7 Adults</OPTION><OPTION value='46'  >Family 7</OPTION><OPTION value='47'  >Family 8</OPTION><OPTION value='48'  >10 Adults</OPTION><OPTION value='2'  >Single</OPTION></SELECT><script type="text/javascript" src="/admin/js/jquery/jquery-ui.min.js"></script><script type="text/javascript" src="/admin/js/jquery/jquery.multiselect.min.js"></script><script>$(document).ready(function(){
        $(".occupancy").multiselect({
        selectedText : "# Room selected",
        noneSelectedText : "Select a Room",
        checkAllText: "Check all",
        uncheckAllText: "Uncheck all",
        checkAll: function(){
            checkPlu_occupancy();
        },
        classes : "multi_width",click : function(event, ui){
	        checkPlu_occupancy();
	    }
	    });function checkPlu_occupancy (){
	    var uiwidget = $(".occupancy");
	    var selectedWidget = uiwidget.multiselect("widget").find("input:checked");
	            if ((selectedWidget.length)>1) {
	            uiwidget.multiselect({selectedText : "# Rooms selected"});
	            } else { uiwidget.multiselect({selectedText : "# Room selected"}); };
	    if ((selectedWidget.length)==16) {
	        uiwidget.multiselect({selectedText : "All Rooms selected"});
	    }
	        };
	    checkPlu_occupancy();
	    ;});</script></li> -->
	<li class="arrival field-wrapper"><label>Arrive:</label> <input type="text" id="arrival-date">
<input type="hidden" name="bke_arrival_day" value="03" id="bke_arrival_day"><input type="hidden" name="bke_arrival_month" value="04" id="bke_arrival_month"><input type="hidden" name="bke_arrival_year" value="2026" id="bke_arrival_year"></li>
	<li class="departure field-wrapper"><label>Depart:</label> <input type="text" id="departure-date">
<input type="hidden" name="bke_departure_day" value="04" id="bke_departure_day"><input type="hidden" name="bke_departure_month" value="04" id="bke_departure_month"><input type="hidden" name="bke_departure_year" value="2026" id="bke_departure_year"></li>
	<!-- <li class="nights field-wrapper"><label>Nights:</label> <select name='bke_nights' class='bke_dropdown' onchange="bke_update_dropdown(form, form.bke_arrival_day.value, form.bke_arrival_month.value, form.bke_arrival_year.value, form.bke_nights.value, 1)">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
<option value="9" >9</option>
<option value="10" >10</option>
<option value="11" >11</option>
<option value="12" >12</option>
<option value="13" >13</option>
<option value="14" >14</option>
<option value="15" >15</option>
<option value="16" >16</option>
<option value="17" >17</option>
<option value="18" >18</option>
<option value="19" >19</option>
<option value="20" >20</option>
<option value="21" >21</option>
<option value="22" >22</option>
<option value="23" >23</option>
<option value="24" >24</option>
<option value="25" >25</option>
<option value="26" >26</option>
<option value="27" >27</option>
<option value="28" >28</option>
<option value="29" >29</option>
<option value="30" >30</option>
<option value="31" >31</option>
</select>
</li> -->
	<li class="ratecode"><input type="text" name="bke_ratecode" size="8" class="bke_drop"
  style="text-align: center;" onclick="if (this.value == '') this.value = '';" 
  placeholder="promo code"
  value='' />
</li>
	<!--<li class="language"><select name="lang" ><option value="en" selected="selected">English</option> </select></li>-->
    <li class="submit"><input type="submit" name="bke_submit" class="btn" value="Book Now"></li>
</ul>
</form>





</div>

	<div class="row" id="na-bke">
		<div class="container no-padding" id="">
			<h3 class="page-title" style="display:none;">Reservation System</h3>
			<p class="bke_error">The file you have just requested is not available on server.</p>
		</div>
	</div> <!-- End - #na-bke -->

	<div class="clearfix"></div>
<footer class="row no-padding" id="na-footer">
    <div class="container">
        <div class="col-xs-12 col-sm-8 no-padding">
            <nav>
                <ul>
                  <!-- IF microsite -->
                  <li>
                    <a data-fancybox-href="#location-map" data-fancybox-title="Location" class="modal-fancy fancybox.inline" onclick="mapFooter();" id="location-link">Location</a>
                        <div style="display:none;">
                            <div id="location-map" class="modal-info">
                                    
                                    <!-- <div id="location-map__info">
                                      <h2>Lucan Spa Hotel</h2>
                                      <p>contactadr  </p>
                                      <p>Address 1</p>
                                      <p>Address 2</p>
                                    </div> -->
                              
                                    <div id="map-footer"></div>
                                    
                                    <script>
                  
                                    var latitude = "53.3555525";
                  
                                    var longitude = "-6.4636229";
                  
                                    var mapZoom = "13";
                  
                                    var propertyName = "Lucan Spa Hotel";
                  
                                    </script>
                            </div>
                        </div>
                  </li>
              
                  <!-- ENDIF microsite -->

                    <!-- IF bke_privacy_policy_section -->

                    <li><a data-fancybox-href="#privacy-policy-en" data-fancybox-title="Privacy Policy" class="modal-fancy fancybox.inline" id="privacy-policy-link">Privacy Policy</a>
                        <div style="display:none;">
                            <div id="privacy-policy-en" class="modal-info">
                                The Lucan Spa Hotel is committed to protecting and respecting your privacy. The privacy and confidentiality of personal information is important, and we are committed to maintaining the privacy and security of your personal information. This policy sets out the basis on which any personal data we collect from you or you provide to us, will be processed by us. Please read the following carefully to understand our views and practices regarding your personal data and how we will treat it. As Data Controllers under the Data Protection Act 1988 we fully endorse and adhere to the principles of the Irish Data Protection legislation and will ensure that we: &bull; Obtain and process information fairly. &bull; Keep information only for one or more specified, explicit and lawful purpose. &bull; Use and disclose information only in ways compatible with these purposes. &bull; Keep information safe and secure. &bull; Keep information accurate, complete and up to date. &bull; Ensure that information is adequate, relevant and not excessive. &bull; Retain information for no longer than is necessary for the specified purpose or purposes. &bull; Give a copy of personal data to the individual from whom it was taken on written request. We reserve the right to amend this Privacy Statement at any time and from time to time without notice by publishing a new version on our website. Please refer to the top of this document to see date of the latest version in force. CONSENT By using our website and voluntarily providing any personal data to us through booking or browsing, you confirm that you agree to and consent to the terms of this Privacy Statement on your behalf and on behalf of others you are representing including but not limited to organisations and whose information you submit and including the collection and use of information, to the extent that your consent is required by any applicable law. Continued access and use of the website without acceptance of the terms of this Privacy Statement relieves us from responsibility to the user. IDENTITY This is the privacy policy of Lucan Spa Hotel. Our registered office is &ldquo;The Bungalow&rdquo;, West County Hotel, Old Lucan Road, Dublin 20. If you have any questions about our privacy policy, about how we process your personal data or have any complaints, please contact us at reservations@lucanspahotel.ie. PURPOSE Information we collect on the website may be used for the following purposes: &bull; To operate and provide the search, booking, accounts, review, forums and other services, facilities and functions of our websites. This includes managing any accounts or registrations you may have with our websites and making changes to your settings and profile at your request. &bull; To provide information to you about our website, systems and services, including to respond to booking enquiries and searches, and to keep you updated generally. &bull; To enable you to make bookings, and to fulfil, provide, perform, administer, manage, and enforce all bookings, orders, and other contracts which relate to you (including if you are a guest in a booking made by someone else), and to process any transactions authorised or made with us which relate to you. &bull; To collect and make payments due and administer our accounts. &bull; To communicate with you concerning any enquiries, bookings, services provided, problems and complaints, and to respond to any submissions, enquiries or requests from you. &bull; To keep internal records and maintain reasonable archives, including concerning as to enquiries, bookings, contracts, services, and complaints. &bull; To analyse, audit, provide, operate, administer, maintain and improve our business, website, systems, and services; to carry out surveys and analyse the results; to run promotions and competitions; undertake product or customer research/development; to assist us in and help us to improve our sales, editorial, advertising and marketing processes; to carry out other business development and improvement activities; and to provide training to our staff, sub-contractors and suppliers. For example, we may use your personal data to help us profile how our customers generally are using our websites and booking services with (or through) us. We may also use this information to ascertain interests so that we can better tailor our business offerings. &bull; To carry out direct marketing to you that you have consented to. We do not use or disclose your personal data for direct marketing purposes unless we have obtained your consent to this through an opt-in tick box on any form or website of ours. Once consented, will only use your given data to send relevant offers, packages and news and will not be shared with any third parties. You can sign up to our newsletter on our website at https://www.lucanspahotel.ie/newsletter.html. &bull; To report aggregate information concerning usage of our websites. We normally create anonymous statistical data about browsing actions and patterns, and do not identify any individual. &bull; For any purpose which we have obtained your consent to. DISCLOSURE We may share your personal data with third parties in the following circumstances: &bull; We may disclose your personal data to third parties (including intermediaries) as necessary to carry out any checks concerning you or enforce any booking or contract with you (including credit, security, fraud and identity checks). This may include credit reference agencies and other companies for use in credit decisions, for fraud prevention and to pursue debtors. &bull; We disclose your personal data to third parties (including intermediaries) as necessary to deal with any booking enquiry being made by or for you, to make any booking requested by or for you, to perform and administer any booking for you or other contract with or in respect of you. Such third parties may include any suppliers or subcontractors and their agents. &bull; We may disclose your personal data to any third party (e.g. supplier, contractor subcontractor) we make any enquiries with concerning or engage or sub-contract to perform any booking or other contract, including to provide any other products or services we have agreed to provide to you. We may disclose your personal data to any supplier with whom we make any enquiry concerning or book any travel or other products and services for you as agent (whether as agent for you, someone representing you, or the supplier). Details of any third-party operators or other third parties who will be responsible for or supply you with the services booked or enquired about, may be obtained from us on request, and may be stated in any other brochure provided by us. &bull; Where we use third parties to host, provide, operate or supply any part of our websites, databases, systems, business, or services, or carry out on our behalf any of our business functions or actions (including sending mail, processing payments, providing marketing assistance, providing customer and advertising analysis, and providing customer services), then then we may provide your personal data to them as required for use for or processing as part of those purposes. &bull; Where any facility on our website is clearly designed to make certain of your personal data public (e.g. posts you make to any public forum or reviews facility), then any personal data you provide in relation to that forum or other facility, which is provided in circumstance where it is clear that it is intended to be published, will be disclosed to the public accordingly, subject to moderation by us. &bull; We may supply personal data to a government authority or regulator where required to comply with a legal requirement, for the administration of justice, for the purposes of customs, visas and immigration, or where reasonably required to protect your vital interests or enforce any booking or other contract. We may disclose your personal data where otherwise required by or permitted by law. &bull; If our customer is a business or organisation, and we are holding your personal data in your capacity as an associate of that business or organisation (including as agent, representative, contact, employee, officer, owner, partner, or director), then we may disclose to them that personal data. If our customer is making a booking or booking enquiry on your behalf, with your authority, then we may disclose to our customer your personal data as reasonably required in connection with such booking or enquiry, or the subsequent performance of or payment for any booking made. &bull; In the case of organising events, functions or large group bookings hosted at the hotel and to ensure such events are hosted efficiently, your personal data may be shared with the event, function or group booking organiser. &bull; If our business is ever transferred to a third party, then your personal data will be transferred to the acquirer to enable them to continue the business. Where we provide your personal data to a third party one of the following two circumstances will apply: &bull; In some cases, your personal data may be held and otherwise processed by them on our behalf, in which case we will remain responsible for what they do with your personal data, and your personal data will only be held and processed by them in accordance with our instructions and this privacy policy. &bull; In other cases, your personal data may need to be provided to them to be held and processed by them in their own right and on their own account. In such case, they will have their own responsibility for that personal data, subject to their own privacy policy, and we will not be responsible for what they do with it following disclosure. We may provide links to a number of other web sites that we believe might offer you useful information and services. However, those sites may not follow the same privacy policies as us. Therefore, we are not responsible for the privacy policies or the actions of any third parties, including without limitation, any web site owners whose sites may be reached through this site, nor can we control the activities of those websites. We urge you to contact the relevant parties controlling these sites or accessing their on-line policies for the relevant information about their data collection practices before submitting any personal information or other sensitive data. This Privacy Statement does not address, and we are not responsible for, the privacy, information or other practices of any third parties. We have no control over, and are not responsible for, this third party&rsquo;s collection, use and disclosure of your Personal Information. In addition, we are not responsible for the information collection, use, disclosure or security policies or practices of other organisations, such as Facebook, Apple, Google, Microsoft or any other app developer, app provider, social media platform provider, operating system provider, wireless service provider or device manufacturer, including with respect to any Personal Information you disclose to other organisations through or in connection with the Apps or our Social Media pages. PROCESSING OF DATA All personal data we hold about you will be processed by employees of The Lucan Spa Hotel in Ireland, unless otherwise indicated. We do not sell, rent or share your personal information to any third party joint promoters, nor use it for any unapproved commercial purposes. RIGHT OF ACCESS Our privacy policy is not a contract, nor does it form part of any contract. You have certain non-contractual rights in accordance with legislation. Should you contact us regarding these rights, we are entitled to request proof of your identity before we act, and may refuse to act if you do not provide this. You may request information on whether we are processing personal data about you, to tell you what personal data we are processing and for what purposes, and to provide you with a copy of your personal data that we hold. We must provide the data request for free unless the request is manifestly unfounded, excessive or repetitive. In these cases, we charge a reasonable fee not exceeding &euro;6.35 for handling your request. In certain cases, we may refuse your request and will advise you at the time if this is the case. All requests must be in writing and may be submitted by e-mail or by post to the contact details listed below and you will receive a response within 30 days of receipt of your written request. Where requests are complex or numerous, we will extend the deadline for providing the information to 3 months. In such cases, we will advise you in writing within the 30-day time period explaining why the extension is necessary. If you would like to review, correct, update, suppress or delete personal information that you have previously provided to us, you may contact us at reservations@lucanspahotel.ie. In your request, please make clear what personal information you would like to have changed, whether you would like to have your personal information suppressed from our database, or other limitations you would like to put on our use of your personal information. RIGHT OF RECTIFICATION OR ERASURE Our privacy policy is not a contract, nor does it form part of any contract. You have certain non-contractual rights in accordance with legislation. Should you contact us regarding these rights, we are entitled to request proof of your identity before we act, and may refuse to act if you do not provide this. All requests of rectification or erasure must be in writing and may be submitted by e-mail or by post to the contact details listed below and you will receive a response within 30 days of receipt of your written request. You have the right to request us to cease using your personal data for any purpose, subject to exceptions. You have the right to ask us to stop using your personal data to carry out direct marketing to you. You have the right to request us to rectify, block, erase or destroy any inaccurate personal data we hold about you. If you would like to review, correct, update, suppress or delete personal information that you have previously provided to us, you may contact us at reservations@lucanspahotel.ie. In your request, please make clear what personal information you would like to have changed, whether you would like to have your personal information suppressed from our database, or other limitations you would like to put on our use of your Personal Information. EXTENT OF DATA BEING PROCESSED We process the following types of personal data: &bull; Personal Data &ndash; concerning you as an individual which includes your name, age, photograph, gender, address, telephone, mobile, fax, e-mail, social networking contact details, proofs of identity and address, copies of passports, driving licences, and utility bills, card and other payment details, and financial information, health information relevant to your planned stay or services required, and travel insurances held, results of searches carried out against you if required (such as to verify your identity, address, and credit status), your preferences, and any other information provided to us by or in relation to you which concern you as an individual. &bull; Business Related Data &ndash; if you are an individual associated with a business or other organisation that is our customer, then your personal data may include the following information that we link to you: business or organisation details (such as name, address, telephone numbers, payment arrangements, financial information, etc.), your relationship with that business or organisation (such as owner, partner, director, shareholder, employee, or agent), and your contact details within that business (such as work address, work telephone and mobile numbers, work fax number, and work email address). &bull; Enquiry and Booking information &ndash; information concerning enquiries and bookings made with or through us for your stay or services, including where you are making the enquiry or booking or are the recipient of the travel services to which the enquiry or booking relates. This information may include: records of enquiries and searches for holiday and travel products made by or on your behalf, details of your personal interests, needs and other data relevant to your enquiry; details of results, quotes, proposals, estimates and other information given in response to enquiries; details of the holiday, accommodation, travel, car hire, and other travel services booked or enquired about; details of the passengers / holidaymakers travelling; details of the provider of the travel services (e.g. tour operator); dates and times of travel; price; payment details (including card details); passport information and visa information; foreign exchange requirements and arrangements; and sensitive information such as health, medical, dietary, mobility, disability, religious or other special conditions or requirements. &bull; Performance information &ndash; information generated concerning the performance of any booking or other contract made with or through us, including information relating to anything arising during any holiday or other services, and information relating to payments to be made. &bull; Survey Information &ndash; information collected or generated out of any surveys we conduct. &bull; Competition Information &ndash; Information collected or generated out of any competitions or promotions we run. &bull; Account, Registration and Loyalty Information &ndash; Information concerning any accounts, registrations, or memberships with us, or participation in any loyalty program. &bull; Correspondence &ndash; Correspondence, communications and messages, including between you and us, and between us and third parties, including relating to any booking or booking enquiry, or performance of any contract. &bull; Website Usage Information &ndash; We may collect information about your visits to, browsing of, and use of our website, unless your web browser blocks this. The range of data we collect will depend on how you interact with our website. This information may include: your IP address (a unique identifier allocated to your computer for your connection to the internet); your computer device details (PC, tablet, smartphone, watch etc.); the make and version of web browser (e.g. Internet Explorer, Firefox, Safari, Opera, Chrome) you are using; your operating system (e.g. Windows, Windows Phone, OSX, iOS, Android, Linux etc); your time-zone; your browser plug-ins; any web-page you came from, identified as the referrer web page address by your web browser; cookies; page response times; download error; pages and parts of pages you visit; usage you make of our website, including enquiries and searches undertaken, and registrations for accounts, forums etc.; services and products you viewed; length of visit to website and pages; page interaction information (such as scrolling, keys pressed, mouse clicks, touches, and mouse-overs). This will normally be collected and used anonymously, and aggregated for analysis, with your name and any characteristics identifying you remaining anonymous, but our privacy policy will apply, and it will be treated as your personal data, if this information is in any way linked to you personally. This information may also include: data inputted into forms and field; registrations for any accounts, forum, feedback mechanism, social functionality, newsletters or other features of our site; usernames and passwords, log-in / out history, and settings; actions taken within any account or other registration, including view and update and changes to settings; and posts to any forum, feedback, review or other social functionality on our website. We collect or generate personal data in the following way: &bull; Visiting our website &ndash; By visiting and using our website you or your computer may provide personal data. This includes: information which is automatically provided by your browser to our servers; information record on our web servers about your interaction with our website and pages viewed; information we capture or place on your computer or generate using cookies or other technologies on our website; and information you input into forms and fields on our website. &bull; Data you provide &ndash; Your personal data will include data you provide (or later amend), whether: from correspondence with you; verbally to us over the phone or in person; by filing in any field or form on a website; by filling in any printed form we provide you with; by e-mail; from documents you provide use with; and from updates to any information to provide from time to time. This includes when you: register or subscribe for any service, account, members, or loyalty program, or make an enquiry or booking for a holiday or other travel services whether in person, by phone, through our website or otherwise; send us your comments or suggestions; subscribe to any newsletter or other publication; and request sales and advertising information, including brochures. &bull; Data obtained from third parties &ndash; We may obtain personal data concerning you from third parties, including from: providers of any holidays, accommodation, other travel services which are enquired about or booked, and their intermediaries; credit, fraud, identity and other searches we may undertake, including searches with public records and regulatory and private organisations; from any business or organisation you are associated with; from telephone numbers identified by the telephone system when you telephone us. &bull; Data generated by us &ndash; We and any suppliers or sub-contractors working for us may generate personal data relating to you, including in connection with responding to and dealing with any enquiry, booking or complaint; or in performing any booking or other contract with you; or through the analysis of your personal data or data gained from your use of our website. We may record telephone calls with you. COOKIES Cookies are small text files stored on your device by a web browser (e.g. Internet Explorer) that hold information about your previous visits to our site. On returning to our site this stored information is fed back to us allowing us to offer you a more personal browsing experience. By using our website you consent to cookies being used in accordance with our Cookie Policy. Our comprehensive Cookie Policy is available to view in full via our website on www.lucanspahotel.ie. SECURITY We (and any affiliate, subcontractor or other person processing your personal data on our behalf) may transfer, store and otherwise process your personal data anywhere in the world. Where we disclose your personal data to third parties, that disclosure may also involve a transfer of your personal data anywhere in the world, and those third parties may themselves transfer, store or otherwise process that information anywhere in the world. In each case, we will comply with any legal requirements concerning the transfer of your personal data by us to any third party outside the country where we are established, and where your personal data is still controlled by us or is being stored or otherwise processed on our behalf, our security measures will also apply. We are committed to doing what we reasonably can to keep your personal data secure, and we are obliged by law to put in place appropriate technical and organisational measures against unauthorised or unlawful processing of your personal data and against accidental loss or destruction of, or damage to, your personal data. We have accordingly implemented security policies, rules and technical measures with a view to achieving this: &bull; We use Secured Socket Layer (&ldquo;SSL&rdquo;) software in order to encrypt the personal information that you provide to us whilst it is in transit over the internet. This will work if your browser is SSL enabled (which most are). You can verify that this is working by looking for the symbol of a closed lock or solid key on the bottom bar of your browser window, and checking that the prefix for the web address in the browser address bar has changed from &ldquo;http&rdquo; to &ldquo;https&rdquo;. &bull; The personal information we collect from you online is stored by us and/or our service providers on databases protected through a combination of physical and electronic access controls, firewall technology and other reasonable security measures. &bull; For your own privacy protection, we encourage you to maintain anti-virus and other malware protection software on your computers and other devices, and to maintain your own measures to protect your personal data. Please do not include sensitive personal data in any e-mails you may send to us, including payment card information. We also encourage you to be careful about who you give personal data to. We never contact you to ask you for sensitive personal data, such as payment card information, or sensitive personal data such as passport numbers or log-in details, and we will only ask you for such information in person or through our website, or by telephone in connection with a booking you are making or have made. Please let us know if you someone purports to contact you in our name. USE OF SERVICES BY MINORS Our website and all the services provided are not intended for individuals under the age of eighteen (18) and we request that they not do not use our website and do not provide personal information through our website. Our Privacy Statement prohibits us from accepting users who are under the age of 18 and all persons under the age of 18 are directed not to use, post information to or submit queries on this website. Should we inadvertently acquire personal information or other data from users under the age of 18, we will not knowingly provide this data to any third party for any purpose whatsoever, and any subsequent disclosure would be due to the fact the user under age 18 used the website and submitted personal information without solicitation by or permission from us. ACCURATE, COMPLETE AND UP TO DATE We are not responsible for ensuring that any personal information submitted by you on or through our website and our online services are accurate and up-to-date. Should you wish to verify whether or not the personal information you provided us with, that is held or may still be held by us is up-to-date, you may contact us at reservations@lucanspahotel.ie. We will endeavour to respond to your request as soon as reasonably practicable. ADEQUATE, RELEVANT AND NOT EXCESSIVE Unless specifically requested, we ask that you not send us, and you not disclose, any sensitive personal information on or through our website and our online services or otherwise to us. Please note that we may need to retain certain information for recordkeeping purposes and/or to complete any transactions that you began prior to requesting a change or deletion. There may also be residual information that will remain within our databases and other records, which will not be removed. In addition, there may be certain information to which we are unable to enable you to review, for legal, security, or other reasons. RETENTION We keep your personal data for so long as is reasonably necessary for the purposes for which we use it, and if longer, for any duration required by law, and for statutory claims limitation periods where your personal data may be relevant to any possible liability we may have. Personal Data provided by you that ultimately results in you becoming a customer of the business, is considered by us as being part of the books and records of the business which we are required under law to retain for a period of 7 years. COMPLAINT RESOLUTION MECHANISM The laws we comply with are regulated by Data Protection Commissioner. If you have a complaint or concern, please feel free to contact us to discuss the matter and we will strive to assist you and resolve your issue. Should you wish to seek assistance from a government regulator, the Data Protection Commissioner contact details are here below: Data Protection Commissioner, Canal House Station Road, Portarlington, Co. Laois, Ireland. Eircode: R32 AP
                            </div>
                        </div>
                    </li>

                    <!-- ENDIF bke_privacy_policy_section -->

                    

                    <!-- IF microsite -->
                    <!-- IF bke_cancel_policy_section -->
                    <!-- BEGIN bke_cancel_policy -->
                    <li><a data-fancybox-href="#cancellation-policy" data-fancybox-title="Cancellation Policy" class="modal-fancy fancybox.inline" id="cancellation-policy-link"> Cancellation Policy</a>
                        <div style="display:none;">
                            <div id="cancellation-policy" class="modal-info">
                                <!-- BKE_TEXT_TERMS only added here because BKE_CANCEL_POLICY needs it to be on the page or else it wont show. -->
                                <span style="display:none;">All rates are quoted subject to availability and alteration. All discounted rates quoted are limited offers and may be subject to a minimum nights stay.<br>
<br>
While every effort has been made to ensure the accuracy of all information. The Lucan Spa Hotel does not accept liability for any errors or omissions and reserves the right to change information.<br>
<br>
Please note that from Monday 8th May 2023, our hotel passenger elevator will be out of service as the hotel installs a new elevator. This work is expected to take place for 8 weeks. During this time, we will be offering guests porterage complimentary for bags and luggage. We apologise for any inconvenience. <br>
<br>
All room types have strict maximum number of guests permitted. Extra guests over those permitted per room type will immediately result in an extra fee being charged to your account subject to availability.<br>
<br>
Should you wish to cancel a reservation prior to arrival, the Lucan Spa Hotel  has a strict policy of 24 hours notice. In the event of Lucan Spa Hotel not being notified of a cancellation the first night's accommodation will automatically be charged to your credit card.<br>
<br>
Upon making a reservation, it is the hotel's policy to pre-authorise the credit card provided by the value of the stay. If a pre-authorisation declines, the hotel will contact the booker and ask for another credit card with which to secure the booking. Failure to provide a suitable method of payment to secure the reservation will automatically lead to a cancellation of the booking.<br>
<br>
It is the policy of the hotel to take payment on check-in to the hotel or, in the case where guests request to open an account to charge services to their room during their stay, process a pre-authorisation to the full value of a stay.<br>
<br>
As of 1st January 2023, cash is not a valid option to secure your reservation and account and the hotel will no longer accept cash payments for overnight stays without processing a valid credit/debit card. <br>
<br>
Please phone or email the Lucan Spa Hotel direct in order to cancel your reservation. For any special requests please do not hesitate to contact us direct.<br>
<br>
The hotel reserves the right to automatically cancel any booking that excludes or provides invalid details in the following areas: Email address, Contact telephone/mobile number, valid credit/debit card details.<br>
<br>
Please note that check-in to the hotel is from 2.00pm on the day of arrival (3.00pm on Sundays. Check-out the following morning will be no later than 11.00am (12.00 noon on Sundays). Due to the high level of business during 2023, early check-ins and late checkouts cannot be facilitated at this time. We apologise for this inconvenience.</span>
                                Should you wish to cancel your reservation we would require 24 hours’ notice. Failure to cancel your reservation within our cancellation policy will result in the first night being charged.<br>
<br>
By making the booking you accept and agree that if you incur a late cancellation fee/ “no show” charge, you are authorizing your payment card to be charged.<br>
<br>
In the case of securing your booking with the use of a debit card, please note the hotel reserves the right to charge this card for the cost of the first night stay on the morning of your arrival. Should this transaction fail to clear, the hotel reserves the right to deem your booking unsecured and will automatically cancel the reservation.
                            </div>
                        </div>
                    </li>
                    <!-- END bke_cancel_policy -->
                    <!-- ENDIF bke_cancel_policy_section -->
                    <!-- ENDIF microsite -->

                    

                    <!-- IF bke_health_info_section -->
                    <li><a data-fancybox-href="#health-info" data-fancybox-title="Health & Safety Info" class="modal-fancy fancybox.inline" id="health-info-link"> Health & Safety Info</a>
                        <div style="display:none;">
                            <div id="health-info" class="modal-info">
                                Dear Loyal Guest,<br /><br />We hope you are well and keeping safe during these troubling times. In such an era of unprecedented uncertainty, we wish to provide you with additional information specific to Covid-19 in order to remove some of the uncertainty you may have about any travel plans that you have in place, or that you may make going forward, whilst staying at Lucan Spa Hotel. <br /><br />This following information also includes information of the additional measures undertaken by Lucan Spa Hotel as part of a coordinated response to ensure the safety of guests, customers and hotel staff. <br /><br />The safety of our guests, suppliers and staff is our number one concern and we have taken the following steps to reassure and safeguard the health, safety and well-being of all personnel visiting the hotel.<br /><br /><strong>General Hotel</strong><br /><br>
<ul><br>
<li>Prioritised the focus of Covid-19 with the establishment of a dedicated committee at management level as well as assigning a Covid-19 Compliance Officer.</li><br>
<li>The hotel has undergone additional training on hygiene practices with all staff and management.</li><br>
<li>The installation of fixed sanitiser units and the provision of sanitiser for all guests is made readily available at all points throughout the hotel.</li><br>
<li>Additional tissue and blue paper towels will be made readily available to all guests.</li><br>
<li>A screen guard (sneeze guard) has been installed at the main reception of the hotel for guest and staff protection.</li><br>
<li>Posters and recommended information are on display throughout all areas of the hotel. There are also more detailed guest information sheets available to hand out at the main hotel reception.</li><br>
<li>High traffic areas, dining tables and contact areas (e.g. stair banisters) will be sanitised on a regular basis. This process takes 5 minutes and there will be signs indicating sanitisation is in operation. It is important to avoid using areas during sanitisation.</li><br>
<li>The hotel elevator is strictly to be used by one person at a time.</li><br>
<li>Ongoing communications with all staff about symptoms and procedures.</li><br>
<li>Encouraging contactless card payments instead of the handling of cash.</li><br>
<li>Adopted the recommended social distancing practice to ensure all guests and staff keep the recommended 2 metre space between individuals. Hand shaking and close contact should be avoided in all cases.</li><br>
<li>In areas of water flow (bathrooms, kitchen etc.), disinfectant levels were monitored at a daily basis to prevent issues such as legionnaire's disease.&nbsp;</li><br>
</ul><br>
<strong>Accommodation</strong><br /><br>
<ul><br>
<li>Accommodation is available only to key and essential workers up until Monday 29th June 2020. On check-in, guests will be asked to provide suitable documentation as evidence.</li><br>
<li>Until this date, late check-ins after 9.00pm must be stated and requested on booking.</li><br>
<li>Accommodation will be available only on a single occupancy basis to ensure social distancing.</li><br>
<li>Check-in to the hotel will be processed with social distancing practices in place. A screen guard (sneeze guard) has been installed at the main reception of the hotel for guest and staff protection.</li><br>
<li>Guests to the hotel will be asked to confirm their acceptance of our special Covid-19 terms and policies. These include strict social distancing from other guests and hotel staff at all times.</li><br>
<li>In the case of guests staying multiple nights, rooms will not be serviced daily. Guests will be provided with fresh towels and toiletries each day and these will be provided at designated times.</li><br>
<li>The hotel has adopted a full procedure for sanitising all bedrooms before guest arrival and after guest departure. As a result, you will witness staff use protective gloves and sanitise all areas of hand contact, including door handles etc. Particular attention will be paid to all key touch points of bedrooms and ensuite bathrooms, including door handles, remote controls, televisions, telephones, seat backs, light switches, table tops, ironing board, taps, toilet handles and seats.</li><br>
<li>To ensure the highest standards of hygiene, we have removed the guest directory, notepads, pens and any non-essential material from all accommodation. These items are still available on request at the hotel reception (dial 0 on your bedroom telephone).</li><br>
<li>Guests will be asked to discard all litter and refuse into the provided bedroom bins before checking out of their bedrooms to ensure minimal contact of handled items for housekeeping staff when servicing bedrooms.</li><br>
<li>Higher temperature washes will be implemented for all linen and towel laundry.</li><br>
<li>Key cards are cleaned and sanitised after every use.</li><br>
<li>During the hotel closure, all ensuite shower heads were removed from showers and disinfectant levels were monitored at a daily basis in ensuites to prevent issues such as legionnaire's disease.</li><br>
<li>Lucan Spa Hotel is fortunate to be in a position where all rooms and public spaces are serviced with fresh air via openable windows and are not reliant on air being brought through to rooms via air ducts or conditioning units. The circulation of fresh air will be a key procedure to the servicing of accommodation rooms before your stay.</li><br>
</ul><br>
<strong>Dining</strong><br /><br>
<ul><br>
<li>The Ballyneety Bar (bar food) and Hanora D' Restaurant dining areas will reopen on Monday 29th June as per guidelines set out by the Irish government (Phase 3). At such reopening, social distancing practices and strict cleaning protocals will be in place.</li><br>
<li>The hotel has launched a "Call &amp; Collect" takeaway menu, operating from 6.00pm - 9.00pm (Thursday - Saturday) and 1.00pm - 5.00pm (Sunday). Further details can be found <a title="Call &amp; Collect Takeaway Menu" href="https://www.lucanspahotel.ie/takeaway-menus.html" target="_blank">here</a>.</li><br>
<li>In the meantime, for essential and key workers availing of accommodation at the hotel, breakfast and dinner options are available. For breakfast, this will be provided on a takeaway basis between the hours of 7.00am - 9.00am. Room service evening meals can be pre-ordered on arrival to the hotel and are served during the hours of 6.30pm - 9.00pm.</li><br>
<li>When restaurants reopen (from Monday 29th June), all menus in dining areas will be disposable where possible. During this time, in accordance with the social distancing practice mentioned above, seating areas and tables will be more spaced out. Guests will be recommended to space themselves out more where such seating is fixed.&nbsp;</li><br>
</ul><br>
<strong>Recommendations</strong><br />The effectiveness of the above policies will only be maximised with full cooperation from all guests and visitors of the hotel. Therefore, we recommend you play your part by:<br /><br>
<ul><br>
<li>Keeping your hands washed is the best advice given to prevent the spread of the virus.</li><br>
<li>Avoid touching your eyes, mouth, nose or face with your hands.</li><br>
<li>Discard all items of refuse properly in the provided bins.</li><br>
<li>Please do not come to the hotel if you are unwell with any symptoms of a cold, cough or flu, or if you have been in close proximity to someone who is potentially unwell.</li><br>
<li>If you feel unwell during your stay at Lucan Spa Hotel, or develop symptoms of Covid-19 including a cough, shortness of breath, breathing difficulties and/or a high temperature fever, please report this to a member of staff immediately.</li><br>
<li>Follow the advice and recommendations of all staff during your stay at the hotel, particularly in relation to social distancing policies and washing/sanitation procedures.</li><br>
<li>Follow all advice already handed down by official bodies such as the HSE and the Irish government.&nbsp;</li><br>
</ul><br>
Given the seriousness of the situation we face, failure to adhere to recommendations above and the advice of staff and management will result in you being asked to vacate the premises immediately. <br /><br />We look forward to hosting you during your stay at Lucan Spa Hotel. We are committed to the highest level of safety around Covid-19. The above statement will remain fluid and consistently monitored to ensure the safety of all guests and staff at the hotel. Should you have any questions in relation to the above or our policies, please contact our hotel desk on 01 628 0494 or email <a title="Email us" href="mailto:reservations@lucanspahotel.ie" target="_blank">reservations@lucanspahotel.ie</a>.
                            </div>
                        </div>
                    </li>
                    <!-- ENDIF bke_health_info_section -->

                </ul>
            </nav>
        </div>
        <div class="col-xs-12 col-sm-4 text-right no-padding">
          <!-- <a href="" class="na-logo">
            <img src="//www.netaffinity.com/files/images/netaffinity-logo-black.svg" alt="">
          </a> -->
          <div class="made-by-na">
  <span>
  Made with <i class="fas fa-heart"></i> by</span> <a class="na-logo" href="http://www.netaffinity.com" alt="Net Affinity" target="_blank">
        <img alt="Net Affinity" src="https://www.netaffinity.com/files/images/netaffinity-logo-black.svg" style="width: 115px; height: 45px;">
    </a>
</div>
        </div>

    </div>
</footer>
<div class="slide-panel">
  <div class="slide-panel__title">
  </div>
  <div class="slide-panel__close" onClick="slidePanel()"><i class="fas fa-times"></i></div>
  <div class="slide-panel__content">
  </div>
</div>

<div class="slide-panel__overlay">
</div>


	<script type="text/javascript">
	jQuery('input.star').rating();

	</script>
	<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PNGJC3"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PNGJC3');</script>
<!-- End Google Tag Manager -->

	<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
	<script src="//secure.lucanspahotel.ie/files/js/jquery.settings.js" type="text/javascript"></script>
	<script src="//secure.lucanspahotel.ie/files/js/bke-searchbox.js"></script>
	
		<form id="bke_searchbox_data" class="bke_searchbox" style="display:none;" >
	<input type="hidden" autocomplete="false">
	<input type="hidden" value="1" id="bke_minstay">
	<input type="hidden" value="364" id="bke_maxstay">
	<input type="hidden" name="bke_form_token" value="" id="bke_form_token">
	<input type="hidden" name="grid_view" value="0" id="bke_grid_view">
	<input type="hidden" name="lang" value="en" id="bke_lang">
	<input type="hidden" name="bke_ratecode" value="" id="bke_ratecode">
	<input type="hidden" name="bke_arrival_day" value="03" id="bke_arrival_day">
	<input type="hidden" name="bke_arrival_month" value="04" id="bke_arrival_month">
	<input type="hidden" name="bke_arrival_year" value="2026" id="bke_arrival_year">
	<input type="hidden" name="bke_departure_day" value="" id="bke_departure_day">
	<input type="hidden" name="bke_departure_month" value="" id="bke_departure_month">
	<input type="hidden" name="bke_departure_year" value="" id="bke_departure_year">
	<input type="hidden" name="bke_nights" value="1" id="bke_nights">
	<input type="hidden" name="bke_avail_order" value="" id="bke_avail_order">
	
</form>
<div class="na-searchbox undone">
	<div class="na-searchbox__parameters">
		<input type="hidden" name="searchbox_type" value="">
		<input type="hidden" name="searchbox_display" value="overlay">
		<input type="hidden" name="searchbox_size" value="">
		<input type="hidden" name="searchbox_flexdate" value="">
		<input type="hidden" name="searchbox_usp" value="">
		<input type="hidden" name="searchbox_collapse" value="">
		<input type="hidden" name="searchbox_ratecode" value="">
		<input type="hidden" name="searchbox_hidden" value="yes">
		<input type="hidden" name="searchbox_debug" value="">
		<input type="hidden" name="searchbox_location" value="">
	</div>
	<div class="na-searchbox__header" style="display:none;">
		Book Your Stay
	</div>
	<div class="na-searchbox__main">

		<!-- IF microsite -->

  <!-- 
  // Uncomment this to use in individual hotels with different types of accommodation
  
  <div class="na-searchbox__location">
    <div class="na-searchbox__actionselect-fieldwrapper">
      <select name="bke_actionselect" id="bke_actionselect">
        <option value="" selected>Please Select Accommodation Type</option>
        <option value="secure.PROPERTY-URL-1.ie">PROPERTY NAME 1</option>
        <option value="secure.PROPERTY-URL-2.ie">PROPERTY NAME 2</option>
      </select>
    </div>
  </div>
  <script>
  $("#bke_actionselect").change(function(){
          var sel = $("#bke_actionselect").val();
          $("#bke_searchbox_data").attr("action", "https://" + sel + "/bookings/checkavailability");
  });
  </script>
  
  -->

<!-- ENDIF microsite -->


		<div class="na-searchbox__dates">
			<div class="na-searchbox__checkin">
				<span class="na-searchbox__label">Check In</span>
				<div class="na-searchbox__day-week"></div>
				<div class="na-searchbox__day-number">03</div>
				<div class="na-searchbox__month">04</div>
				<div class="na-searchbox__year">2026</div>
			</div>
		</div>

		<!--if bke_ratecode_section-->
		<div class="na-searchbox__ratecode">
			<div class="na-searchbox__col-70 left">Do you have a promo code?</div>
			<div class="na-searchbox__col-30 right">
				<div class="na-searchbox__switch na-searchbox__switch-ratecode off">
					<div class="na-searchbox__slide">
						<div class="na-searchbox__on">Yes</div>
						<div class="na-searchbox__button"></div>
						<div class="na-searchbox__off">No</div>
					</div>
				</div>
			</div>
		</div>
		<input type="text" class="na-searchbox__ratecode-input" name="ratecode" placeholder="Have a promo code?">
		<!--endif bke_ratecode_section-->

		<button class="na-searchbox__submit" id="ibe_submit">Search</button>

	</div>
	<!-- IF bke_usp -->
	<div class="na-searchbox__usptrigger">
		Why Book With Us? <img src="//secure.lucanspahotel.ie/files/images/usp-tick.svg" alt="Lucan Spa Hotel" width="24" height="23">
	</div>
	<!-- ENDIF bke_usp -->
	<!-- IF bke_usp -->
	<div class="na-searchbox__uspoverlay">
		<div class="na-searchbox__uspcontainer">
			<div class="na-searchbox__uspclose"><svg xmlns="http://www.w3.org/2000/svg" width="16.971" height="16.972" viewBox="0 0 16.971 16.972">
				<path id="icon-close" data-name="Union 9" d="M0,15.557,7.071,8.485,0,1.414,1.414,0,8.485,7.071,15.557,0,16.97,1.415,9.9,8.486l7.071,7.071L15.557,16.97,8.486,9.9,1.414,16.971Z" fill="#666"/>
			</svg>
		</div>
		<div class="na-searchbox__uspheading">Why Book With Us? <img src="//secure.lucanspahotel.ie/files/images/usp-tick.svg" alt="Lucan Spa Hotel" width="24" height="23"></div>
		
		<div class="na-searchbox__usplistitem">
			<img src="//secure.lucanspahotel.ie/files/images/usp-tick.svg" alt="Book Direct for lowest &euro;" width="24" height="23">
			<span class="na-searchbox__usptitle">Book Direct for lowest &euro;</span>
			<span class="na-searchbox__usptext">Best rates on our website - save &euro;20 per night.</span>
		</div>
		
		<div class="na-searchbox__usplistitem">
			<img src="//secure.lucanspahotel.ie/files/images/usp-tick.svg" alt="No Booking Fee" width="24" height="23">
			<span class="na-searchbox__usptitle">No Booking Fee</span>
			<span class="na-searchbox__usptext">Book now - pay later. Free cancelation up to 24 hours. </span>
		</div>
		
		<div class="na-searchbox__usplistitem">
			<img src="//secure.lucanspahotel.ie/files/images/usp-tick.svg" alt="Exclusive Special Offers" width="24" height="23">
			<span class="na-searchbox__usptitle">Exclusive Special Offers</span>
			<span class="na-searchbox__usptext">Exclusive special offers only available here.</span>
		</div>
		
	</div>
</div>
<!-- ENDIF bke_usp -->
<div class="na-searchbox__overlay">
	<div class="na-searchbox__overlay-container">
		<div class="na-searchbox__overlaylogo">
			<div class="na-searchbox__overlaylogowrapper">
				<img src="//secure.lucanspahotel.ie/bookings/showimage?type=18&id=DA937CC64D417A0E1A41C0FB780FFE86" alt="Lucan Spa Hotel"/>
			</div>
			<div class="na-searchbox__overlayclose"><svg xmlns="http://www.w3.org/2000/svg" width="16.971" height="16.972" viewBox="0 0 16.971 16.972">
				<path id="icon-close" data-name="Union 9" d="M0,15.557,7.071,8.485,0,1.414,1.414,0,8.485,7.071,15.557,0,16.97,1.415,9.9,8.486l7.071,7.071L15.557,16.97,8.486,9.9,1.414,16.971Z" fill="#666"/>
			</svg></div>
		</div>
		<div class="na-searchbox__overlaywrapper">
			<div class="na-searchbox__overlayscroll">
				<div class="na-searchbox__header" style="display:none;">
					Book Your Stay
				</div>
			</div>
		</div>
		<!-- IF bke_usp -->
		<div class="na-searchbox__overlayusp">
			<div class="na-searchbox__overlayusp-header">
				<div class="btn-circle">
					<svg xmlns="http://www.w3.org/2000/svg" width="12.777" height="7.777" viewBox="0 0 12.777 7.777">
						<path id="Union_9" data-name="Union 9" d="M6.389,7.753l-.025.025L0,1.414,1.414,0,6.389,4.975,11.363,0l1.414,1.414L6.413,7.778Z" fill="#fff"/>
					</svg>
				</div>
				Why Book With Us?
			</div>
			<div class="na-searchbox__overlayusp-content">
				<ul>
					
					<li>
						<div class="na-searchbox__usptitle">Book Direct for lowest &euro;</div>
						<div class="na-searchbox__usptext">Best rates on our website - save &euro;20 per night.</div>
					</li>
					
					<li>
						<div class="na-searchbox__usptitle">No Booking Fee</div>
						<div class="na-searchbox__usptext">Book now - pay later. Free cancelation up to 24 hours. </div>
					</li>
					
					<li>
						<div class="na-searchbox__usptitle">Exclusive Special Offers</div>
						<div class="na-searchbox__usptext">Exclusive special offers only available here.</div>
					</li>
					
				</ul>
			</div>
		</div>
		<!-- ENDIF bke_usp -->
	</div>
</div>
</div>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@4.5.95/css/materialdesignicons.min.css">


<script>
	let hotelUrl = "https://www.lucanspahotel.ie/booking-engine-LUCANSPAIBE02-1289.html";
</script>
	
<script type="text/javascript" language="javascript">
    TAPixel.impressionWithReferer("001F000000v8WJk");
</script>
<script type="text/javascript" src="//secure.lucanspahotel.ie/bookings/calendar-jquery-collective"></script>
</body>
</html>