<div id='ds_search_box' style='padding-top:25px;'></div>    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  
    <link type="text/css" rel="stylesheet" href="/reserve-stay/css/ply.css"/>
    
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"/>
<!--<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>-->
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"
			  integrity="sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw="
			  crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="/reserve-stay/js/ply.min.js" type="text/javascript"></script>
<script src="/reserve-stay/js/ctws_front.js" type="text/javascript"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css">
 <!-- <script src="https://code.jquery.com/jquery-1.12.4.js"></script>-->
  <!--<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>-->
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
			  integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
			  crossorigin="anonymous"></script>
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">-->
   <link type="text/css" rel="stylesheet" href="/reserve-stay/css/dsform.css"/>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
   <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

   <style>.ctws-guest-popup .row {
    margin: 0px !important;
}</style>


<!-- new javascript-->
<script>
var $ = jQuery;
var appendDone =0; 
var todayDate = '2026-04-09';
function genratedateRangeCal(){
$.ajax({
                    url : "/reserve-stay/data_json.php?new=2",
                    type : "POST",
                    async:false,
                    //data : data,
                    dataType : 'json',
                    headers: {
                'X-Requested-With': 'XMLHttpRequest'
            },
                   success : function(result){
                   sale_room = JSON.parse(result['Salroom']);
                   lst_date = JSON.parse(result['last_date']);
                   sale_price = JSON.parse(result['SaleroomPrice']);
                   stop_room = JSON.parse(result['stoproomsal']);
                   fast_date = JSON.parse(result['fastfilldate']);
                   roomFill = JSON.parse(result['roomFill']);
                   //Proom_date = JSON.parse(result['price_date']);
                   hoffer_date = JSON.parse(result['RoomOfferDate']);
                   //console.log(result['Salroom']);
                  //alert(hoffer_date);
                  },
                  complete : function(){
                  	genrateDate();
                  	//setdateStartDate();
                  },
                 error : function () {
                        alert("error");
                   }
                });
                }
                function isInvalidDate(date, log) {
                 var flagDate ='';
					 flagDate =(stop_room.indexOf(date) != -1)?true:false;
					 console.log(this);
					 if(flagDate && stop_room.length>0){
					 	return true;
					 }else{
					 	flagDate =  (sale_room.indexOf(date) != -1)?true:false;
					 	
					 	if(!flagDate)
					 	return true;
					 }
				 //return (["1/5/2023", "2/5/2023", "3/5/2023"].indexOf(date) != -1)?true:false;
			   }
			   function setdateStartDate(){
			   		dateStr = sale_room[0].split('/');
			   		date = [dateStr[1]+"/"+dateStr[0]+"/"+dateStr[2]];
			   		moment1 =moment(new Date(todayDate));
			   		moment2 =moment(new Date(date));
			   		var flagCheck;
			   		
			   		flagCheck = moment1.isSameOrAfter(moment2);
			   		
			   		if(flagCheck){
			   			return moment1.format('DD-MM-YYYY');
			   		}else{
			   			return moment2.format('DD-MM-YYYY');
			   		}
			   		//moment1.isSameOrAfter(moment2);
			   }
			   function setdaeEndDate(){
			   		var setDate = setdateStartDate();
			   		newEndmoment1 =moment(setDate, "DD-MM-YYYY").add(6, 'days');
			   		moment1 =moment(new Date(newEndmoment1));
			   		moment2 =moment(new Date(lst_date));
			   		var flagCheck;
			   		flagCheck = moment1.isSameOrAfter(moment2);
			   		if(flagCheck)
			   		return moment(new Date(lst_date), "DD-MM-YYYY");
			   		else
			   		return moment(setDate, "DD-MM-YYYY").add(6, 'days');
			   }
                function genrateDate(){
                	$('input[name="daterange"]').daterangepicker({
                	"locale": {
        			"format": "DD/MM/YYYY"},
					 opens: 'center',
					 "showDropdowns": true,
					 minDate:setdateStartDate(),
					 maxDate:moment(new Date(lst_date)).format('DD-MM-YYYY'),
					 startDate:setdateStartDate(),
					 endDate:setdaeEndDate(),
					 autoApply:true,
					 isCustomDate: function(ele){
					 var currDate = moment(ele._d).format('D/M/YYYY');
					 var flagDate ='';
					 flagDate =(stop_room.indexOf(currDate) != -1)?true:false;
					
					 if(flagDate && stop_room.length>0){
					 	return "";
					 }else{
					 	flagDate =  (sale_room.indexOf(currDate) != -1)?true:false;
					 	
					 	if(!flagDate)
					 	return "periodNA";
					 }
					 },
					 isInvalidDate: function(ele) {
					 var currDate = moment(ele._d).format('D/M/YYYY');
					 var flagDate ='';
					 flagDate =(stop_room.indexOf(currDate) != -1)?true:false;
					 
					 if(flagDate && stop_room.length>0){
					 	return true;
					 }else{
					 	flagDate =  (sale_room.indexOf(currDate) != -1)?true:false;
					 	
					 	if(!flagDate)
					 	return true;
					 }
					 //return (["1/5/2023", "2/5/2023", "3/5/2023"].indexOf(currDate) != -1)?true:false;
					 //return (sale_room.indexOf(currDate) != -1)?false:true;
				 }
				   }, function(start, end, label) {
				   var temp = new Date(start);
				   var endDate = new Date(end);
				   var invalid = false;
				   while (temp.getTime() < endDate.getTime()) {
					 if (isInvalidDate(moment(temp).format('D/M/YYYY'), true)) {
					   invalid = true;
					 }
					 temp.setDate(temp.getDate() + 1);
				   }
	
				   if (invalid) {
					 alert('You have selected invalid date.');
					 this.setStartDate(setdateStartDate());
					 this.setEndDate(setdaeEndDate());
					 
				   }
				   $("#date1d").val(start.format('DD'));
				   $("#date1m").val(start.format('YYYYMM'));
				   $("#datef").val(start.format('DD/MM/YYYY'));
				   $("#date2d").val(end.format('DD'));
				   $("#date2m").val(end.format('YYYYMM'));
				   $("#datef1").val(end.format('DD/MM/YYYY'));
				    console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
				   });
				   $('input[name="daterange"]').on('show.daterangepicker', function(ev, picker) {
				   if(appendDone==0){
				   $('<div class="note_div"><div style="float: left; width: 100%; margin: 10px;font-size:10px"><div style="float:left;">Note:&nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#27ae60;margin-top:2px;"></div><div style="float:left;">&nbsp;Available&nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#ff0000;margin-top:2px;"></div><div style="float:left;">&nbsp;Not Available &nbsp;</div></div></div>').insertAfter(".drp-buttons");
					appendDone=1;
					}
				   });
				   
                }



$('#dataRangeCtws').on('show.daterangepicker', function () {
  setTimeout(() => {
    $('.daterangepicker td.off.ends').each(function () {
      $(this)
        .css({
          'visibility': 'hidden',
          'pointer-events': 'none'
        })
        .off(); // Remove any attached events
    });
  }, 10);
});
  </script>
  <style>
/* Disable interaction on "off" (trailing) dates */
/*.daterangepicker td.off {
  pointer-events: none !important;
  opacity: 0.3;
  background: none !important;
  cursor: not-allowed !important;
}*/
.daterangepicker td.off.ends {
  visibility: hidden !important;
  pointer-events: none !important;
}
.daterangepicker td.not-current-month {
  background-color: transparent !important;
}
</style>
<style>
.daterangepicker .calendar-table th, .daterangepicker .calendar-table td{border-radius: 0px !important;border:1px solid #fff !important;}
.daterangepicker .available {background: #27ae60;color: #fff;}
[class="off disabled"]  {background: #ff0000 !important;color: #fff !important;}
.daterangepicker .next.available,.daterangepicker .prev.available {background: #fff;}
</style>
<!-- End -->




    <script>
    $ = jQuery;
     jQuery(document).ready(function(){
    
        jQuery.ajax({
        url: '/reserve-stay/hotel2/ds_search_form_left_other.php',
        dataType: 'html',
        async: false,
        error: function(){
            alert("Error In Loading");
        },
        success: function(data){
            jQuery('#ds_search_box').html(data);
        },
        complete:function(){
        	genratedateRangeCal();
        }
    });
        });
    
    function frontajaxFormSubmit(paramlist_form){
    if(paramlist_form=="bookform" ){
        if($('#datef').val()=='Check In Dummy Don\'t use'){
            Ply.dialog("alert",err_checkin);
            return false;
        }
        if($('#datef1').val()=='Check Out Dummy Don\'t use'){
            Ply.dialog("alert",err_checkout);
            return false;
        }
        if($('#nights').val()==0){
            Ply.dialog("alert",err_nights);
            return false;
        }
        if($('#rooms').val()==0){
            Ply.dialog("alert",err_rooms);
            return false;
        }
        var wdate = $('#datef').val();
        var wdate1= $('#datef1').val();
        var dateFirst = wdate.split('/');
        var dateSecond = wdate1.split('/');
        var firstdate1 = dateFirst[2]+','+dateFirst[1]+','+dateFirst[0];
        var firstdate2 = dateSecond[2]+','+dateSecond[1]+','+dateSecond[0];
        var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds   
        var firstDate = new Date(firstdate1);
        var secondDate = new Date(firstdate2);
        var diffDays = Math.round((secondDate.getTime()-firstDate.getTime())/(oneDay));

        if ((diffDays)<=0){
            Ply.dialog("alert",err_departureOverArrival);
            return false;
        }
        for(var i=1;i<=$('#rooms').val();i++){
            //if($('#adults'+i).val()==0){
            if($('[name="room_adult['+i+']"]').val()==0){
                Ply.dialog("alert",err_adultForRoom+i+" !!!");
                return false;
            }
        }
//      $('html, body').animate({scrollTop:$('#right_column').offset()}, 'slow');
    }
    //var params = $('#'+paramlist_form).serialize();
    //$(".dropdown-toggle").removeClass("close-sh");
    //$("#search-panel").hide();
  //openPagePost(params);
  //if(paramlist_form=="bookform" || paramlist_form=="hotel_sort" || paramlist_form=="book_frm"){
    //ajaxSidebar();
  //}
  $("#"+paramlist_form).submit();
}
    </script>
  
<script>
$('.ctws-guest , .ctws-done').click(function(e){

    $('.ctws-guest-popup').toggleClass('ctws-popup-open' , function(){$(this).focus();});
    
    });

     function appendsomething(){
            var parElem = $("#ui-datepicker-div");
    //check if your div exists, append if not
    if( !parElem.find(".note_div").length ) {
        parElem.append('<div class="note_div"><div style="float: left; width: 100%; margin: 10px;font-size:10px"><div style="float:left;">Note:&nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#27ae60;margin-top:6px;"></div><div style="float:left;">&nbsp;Available&nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#FFC300;margin-top:6px;"></div><div style="float:left;">&nbsp;Offers&nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#ff0000;margin-top:6px;"></div><div style="float:left;">&nbsp;Not Available &nbsp;</div><div style="float:left;height:12px;width:12px;background-color:#eb008c;margin-top:6px;"></div><div style="float:left;">&nbsp;Filling Fast</div></div></div>');
    }
          
        }
  // new code end
</script>
    {"id":9537,"date":"2025-03-31T16:43:38","date_gmt":"2025-03-31T13:13:38","guid":{"rendered":"https:\/\/alvahotel.com\/?page_id=9537"},"modified":"2025-06-13T13:41:50","modified_gmt":"2025-06-13T10:11:50","slug":"special-offers","status":"publish","type":"page","link":"https:\/\/alvahotel.com\/ru\/special-offers\/","title":{"rendered":"Special Off"},"content":{"rendered":"<p class=\"qtranxs-available-languages-message qtranxs-available-languages-message-ru\">\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e\u0442 \u0442\u0435\u0445\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 &ldquo;<a href=\"https:\/\/alvahotel.com\/en\/wp-json\/wp\/v2\/pages\/9537\" class=\"qtranxs-available-language-link qtranxs-available-language-link-en\" title=\"English\">\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439<\/a>&rdquo;. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.<\/p><p>[vc_row full_width=&#187;stretch_row_content_no_spaces&#187;][vc_column][vc_single_image image=&#187;9548&#8243; img_size=&#187;full&#187; alignment=&#187;center&#187;][\/vc_column][\/vc_row][vc_row][vc_column width=&#187;1\/6&#8243;][\/vc_column][vc_column width=&#187;2\/3&#8243; el_class=&#187;ctws-form-wrap ctws_form_up&#187;][vc_column_text][\/vc_column_text][\/vc_column][vc_column width=&#187;1\/6&#8243;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text] <style>#special-offers h2 {\n  margin-bottom: 30px;\n}\n        .offer-card {\n            border: 1px solid #ddd;\n            \n            box-shadow: 0 4px 8px rgba(0,0,0,0.1);\n            transition: transform 0.3s;\n            overflow: hidden;\n            background: #fff;\n        }\n        .offer-card:hover {\n            transform: translateY(-5px);\n        }\n        .offer-card img {\n            width: 100%;\n            height: 200px;\n            object-fit: cover;\n        }\n        .offer-body {\n            padding: 15px;\n        }\n        .offer-title {\n            font-size: 18px;\n            font-weight: bold;\n            margin-bottom: 10px;\n        }\n        .offer-body p {\n  line-height: 35px;\n}\n        \n        .offer-highlight {\n            color: #000;\n            font-weight: bold;\n        }\n        .offerBt {\n  background-color: #333;\n  text-transform: uppercase;\n}\n.offerBt {\n  padding: 6px 25px 2px 25px !important;\n}\n.offerBt {\n  font-weight: bold;\n  padding: 6px 45px 2px 45px;\n  line-height: 35px;\ntext-transform: uppercase;\nmargin-top: 20px !important;\ndisplay: inline flow-root list-item;\n}.offerBt {\n  font-family: \"Muli\",sans-serif !important;\n  background-color: #333;\n  border-color: #333;\n  color: #fff;\n  text-decoration: none;\n}.offer-description {\n            font-size: 14px;\n            color: #555;line-height:22px !important;\n        }\n        @media (max-width: 767px) {\n            .col-md-4 {\n                padding-bottom: 30px;\n            }\n        } \n    <\/style>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/axios\/dist\/axios.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/babel-standalone\/6.26.0\/babel.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/react\/17.0.2\/umd\/react.development.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/react-dom\/17.0.2\/umd\/react-dom.development.js\"><\/script>\n\n    <div class=\"container mt-4\">\n        <div id=\"special-offers\"><\/div>\n    <\/div>\n<script type=\"text\/babel\">\n        function SpecialOffers() {\n            const [offers, setOffers] = React.useState([]);\n\t\t\tconst [loading, setLoading] = React.useState(true);\n            React.useEffect(() => {\n                axios.get('\/reserve-stay\/offerJson.php')\n                    .then(response => {setOffers(response.data);setLoading(false);})\n                    .catch(error => {console.error('Error fetching offers:', error);setLoading(false);});\n            }, []);\n\n            function OfferCarousel({ images, title }) {\n                return images.length > 1 ? (\n                    <div id={title.replace(\/\\s+\/g, '')} className=\"carousel slide\" data-ride=\"carousel\">\n                        <div className=\"carousel-inner\">\n                            {images.map((img, idx) => (\n                                <div key={idx} className={`item ${idx === 0 ? 'active' : ''}`}>\n                                    <img src={img} alt={title} \/>\n                                <\/div>\n                            ))}\n                        <\/div>\n                        <a className=\"left carousel-control\" href={`#${title.replace(\/\\s+\/g, '')}`} data-slide=\"prev\">\n                            <span className=\"glyphicon glyphicon-chevron-left\"><\/span>\n                        <\/a>\n                        <a className=\"right carousel-control\" href={`#${title.replace(\/\\s+\/g, '')}`} data-slide=\"next\">\n                            <span className=\"glyphicon glyphicon-chevron-right\"><\/span>\n                        <\/a>\n                    <\/div>\n                ) : (\n                    <img src={images[0]} alt={title} \/>\n                );\n            }\n\n            return (\n                <div>\n                    <h2 className=\"text-center\">Special Offers<\/h2>\n                    {loading ? (\n                    <p className=\"text-center\">Loading offers...<\/p>\n                ) :\n                    offers.length > 0 ? (\n                        <div className=\"row\">\n                            {offers.map((offer, index) => (\n                                <div key={index} className=\"col-md-4\">\n                                    <div className=\"offer-card\">\n                                        <OfferCarousel images={offer.offerImages} title={offer.offerTitle} \/>\n                                        <div className=\"offer-body\">\n                                            <div className=\"offer-title\">{offer.offerTitle}<\/div>\n                                            <p className=\"offer-description\">{offer.offerShortDescription}<\/p>\n                                            <p><span className=\"offer-highlight\">Valid:<\/span> {offer.newofferStartformat} to {offer.dateofferEnd} {offer.monthofferEnd} {offer.monthofferYear}<\/p>\n                                            <p><span className=\"offer-highlight\">Discount:<\/span> {offer.offerPercentage} ({offer.offerPercentageText})<\/p>\n                                            <p><span className=\"offer-highlight\">Booking:<\/span> {offer.offerBkStart} to {offer.offerBkEnd}<\/p>\n                                            <a href={offer.offerSlug} className=\"offerBt\">View Offer<\/a>\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n                            ))}\n                        <\/div>\n                    ) : (\n                        <p className=\"text-center\">No offers available at the moment.<\/p>\n                    )}\n                <\/div>\n            );\n        }\n\n        ReactDOM.render(<SpecialOffers \/>, document.getElementById('special-offers'));\n    <\/script>\n   \n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\n[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text][\/vc_column_text][\/vc_column][\/vc_row]<\/p>","protected":false},"excerpt":{"rendered":"<p>\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u044d\u0442\u043e\u0442 \u0442\u0435\u0445\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 &ldquo;\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439&rdquo;. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.[vc_row full_width=&#187;stretch_row_content_no_spaces&#187;][vc_column][vc_single_image image=&#187;9548&#8243; img_size=&#187;full&#187; alignment=&#187;center&#187;][\/vc_column][\/vc_row][vc_row][vc_column width=&#187;1\/6&#8243;][\/vc_column][vc_column width=&#187;2\/3&#8243; el_class=&#187;ctws-form-wrap ctws_form_up&#187;][vc_column_text][\/vc_column_text][\/vc_column][vc_column width=&#187;1\/6&#8243;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text][\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text][\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/pages\/9537"}],"collection":[{"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/comments?post=9537"}],"version-history":[{"count":9,"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/pages\/9537\/revisions"}],"predecessor-version":[{"id":9554,"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/pages\/9537\/revisions\/9554"}],"wp:attachment":[{"href":"https:\/\/alvahotel.com\/ru\/wp-json\/wp\/v2\/media?parent=9537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}