PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.6.4
VikBooking Hotel Booking Engine & PMS v1.6.4
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
vikbooking / site / views / packagedetails / tmpl / default.php

default.php in VikBooking Hotel Booking Engine & PMS 1.6.4, at site/views/packagedetails/tmpl/default.php

521 lines 23.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage com_vikbooking
5 * @author Alessio Gaggii - e4j - Extensionsforjoomla.com
6 * @copyright Copyright (C) 2018 e4j - Extensionsforjoomla.com. All rights reserved.
7 * @license GNU General Public License version 2 or later; see LICENSE
8 * @link https://vikwp.com
9 */
10
11 defined('ABSPATH') or die('No script kiddies please!');
12
13 $package = $this->package;
14 $vbo_tn = $this->vbo_tn;
15
16 $vbo_app = VikBooking::getVboApplication();
17 $vbo_app->loadDatePicker();
18
19 $is_mobile = VikBooking::detectUserAgent(false, false);
20 $currencysymb = VikBooking::getCurrencySymb();
21 $calendartype = VikBooking::calendarType();
22 $vbdateformat = VikBooking::getDateFormat();
23 $juidf = '';
24 if ($vbdateformat == "%d/%m/%Y") {
25 $df = 'd/m/Y';
26 $juidf = 'dd/mm/yy';
27 } elseif ($vbdateformat == "%m/%d/%Y") {
28 $df = 'm/d/Y';
29 $juidf = 'mm/dd/yy';
30 } else {
31 $df = 'Y/m/d';
32 $juidf = 'yy/mm/dd';
33 }
34 $datesep = VikBooking::getDateSeparator();
35 $timeopst = VikBooking::getTimeOpenStore();
36 if (is_array($timeopst)) {
37 $opent = VikBooking::getHoursMinutes($timeopst[0]);
38 $closet = VikBooking::getHoursMinutes($timeopst[1]);
39 $hcheckin = $opent[0];
40 $mcheckin = $opent[1];
41 $hcheckout = $closet[0];
42 $mcheckout = $closet[1];
43 } else {
44 $hcheckin = 0;
45 $mcheckin = 0;
46 $hcheckout = 0;
47 $mcheckout = 0;
48 }
49
50 $pitemid = VikRequest::getInt('Itemid', '', 'request');
51 $start_info = getdate($package['dfrom']);
52 $end_info = getdate($package['dto']);
53 $exclude_dates = array();
54 if (!empty($package['excldates'])) {
55 $excl_parts = explode(';', $package['excldates']);
56 foreach ($excl_parts as $excl) {
57 if (!empty($excl)) {
58 $exclude_dates[] = "'".$excl."'";
59 }
60 }
61 }
62
63 $document = JFactory::getDocument();
64 $document->addStyleSheet(VBO_SITE_URI.'resources/jquery.fancybox.css');
65 JHtml::fetch('script', VBO_SITE_URI.'resources/jquery.fancybox.js');
66
67 // datepicker helper
68 $vbo_js = "
69 var pkg_not_dates = [".(count($exclude_dates) > 0 ? implode(', ', $exclude_dates) : '')."];
70 function vbIsDayDisabled(date) {
71 var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
72 if (pkg_not_dates.indexOf((m+1) + '-' + d + '-' + y) != -1) {
73 return [false];
74 }
75 return [true];
76 }";
77 $document->addScriptDeclaration($vbo_js);
78
79 $costfor = array();
80 if ($package['perperson'] == 1) {
81 $costfor[] = JText::translate('VBOPKGCOSTPERPERSON');
82 }
83 if ($package['pernight_total'] == 1) {
84 $costfor[] = JText::translate('VBOPKGCOSTPERNIGHT');
85 }
86
87 $thumbs_rel = array();
88
89 ?>
90 <h3 class="vbo-pkgdet-title"><?php echo $package['name']; ?></h3>
91 <div class="vbo-pkgdet-container">
92 <div class="vbo-pkgdet-topwrap">
93 <?php
94 if (!empty($package['img'])) {
95 ?>
96 <div class="vbo-pkgdet-img">
97 <img src="<?php echo VBO_SITE_URI; ?>resources/uploads/big_<?php echo $package['img']; ?>" alt="<?php echo htmlspecialchars($package['name']); ?>" />
98 </div>
99 <?php
100 }
101 /**
102 * @wponly we try to parse any shortcode inside the texts of the package
103 */
104 $package['descr'] = do_shortcode($package['descr']);
105 $package['conditions'] = do_shortcode($package['conditions']);
106 //
107 ?>
108 <div class="vbo-pkgdet-descrprice-block">
109 <div class="vbo-pkgdet-descr">
110 <?php echo $package['descr'] ?>
111 </div>
112 <div class="vbo-pkgdet-cost">
113 <span class="vbo-pkglist-pkg-price"><span class="vbo_currency"><?php echo $currencysymb; ?></span> <span class="vbo_price"><?php echo VikBooking::numberFormat($package['cost']); ?></span></span>
114 <span class="vbo-pkglist-pkg-priceper"><?php echo implode(', ', $costfor); ?></span>
115 </div>
116 </div>
117 <div class="vbo-pkgdet-condsdates-block">
118 <div class="vbo-pkgdet-conds">
119 <?php echo $package['conditions'] ?>
120 </div>
121 <div class="vbo-pkgdet-dates">
122 <?php VikBookingIcons::e('clock-o'); ?>
123 <span class="vbo-pkgdet-dates-lbl"><?php echo JText::translate('VBOPKGVALIDATES'); ?></span>
124 <span class="vbo-pkgdet-dates-ft"><?php echo date(str_replace("/", $datesep, $df), $package['dfrom']).($package['dfrom'] != $package['dto'] ? ' - '.date(str_replace("/", $datesep, $df), $package['dto']) : ''); ?></span>
125 </div>
126 </div>
127 <?php
128 if (!empty($package['benefits'])) {
129 ?>
130 <div class="vbo-pkgdet-benefits">
131 <?php echo $package['benefits']; ?>
132 </div>
133 <?php
134 }
135 ?>
136 </div>
137
138 <div class="vbo-pkgdet-roomswrap">
139 <h3 class="vbo-pkgdet-roomsttl"><?php echo JText::translate('VBOPKGBOOKNOWROOMS'); ?></h3>
140 <?php
141 if (array_key_exists('rooms', $package) && count($package['rooms'])) {
142 ?>
143 <div class="vbo-pkgdet-roomslist">
144 <?php
145 foreach ($package['rooms'] as $rk => $room) {
146 if (empty($room['name'])) {
147 continue;
148 }
149 ?>
150 <div class="vbo-pkgdet-room-container">
151 <div class="vbo-pkgdet-room-outer">
152 <?php
153 if (!empty($room['img'])) {
154 ?>
155 <div class="vbo-pkgdet-room-img">
156 <img src="<?php echo VBO_SITE_URI; ?>resources/uploads/<?php echo $room['img']; ?>" alt="<?php echo htmlspecialchars($room['name']); ?>" />
157 </div>
158 <?php
159 }
160 ?>
161 <div class="vbo-pkgdet-room-det">
162 <h4 class="vbo-pkgdet-roomname"><?php echo $room['name']; ?></h4>
163 <div class="vbo-pkgdet-room-shortdescr"><?php echo $room['smalldesc']; ?></div>
164 </div>
165 <div class="vbo-pkgdet-room-booknow">
166 <button type="button" class="btn vbo-pkgdet-room-booknow-btn vbo-pref-color-btn" data-room="<?php echo $room['idroom']; ?>" onclick="vboToggleRoomBooking('<?php echo $room['idroom']; ?>');"><?php echo JText::translate('VBOPKGROOMCHECKAVAIL'); ?></button>
167 </div>
168 </div>
169 <div class="vbo-pkgdet-room-inner" id="vbo-pkgdet-room<?php echo $room['idroom']; ?>-inner" style="display: none;">
170 <?php
171 if (!empty($room['moreimgs'])) {
172 $moreimages = explode(';;', $room['moreimgs']);
173 $imgcaptions = json_decode($room['imgcaptions'], true);
174 $usecaptions = empty($imgcaptions) || is_null($imgcaptions) || !is_array($imgcaptions) || !(count($imgcaptions) > 0) ? false : true;
175 $thumbs_ind = 0;
176 $extra_photos = array();
177 foreach($moreimages as $iind => $mimg) {
178 if (!empty($mimg)) {
179 $img_alt = $usecaptions === true && !empty($imgcaptions[$iind]) ? $imgcaptions[$iind] : '';
180 $extra_photos[$thumbs_ind] = array('big' => VBO_SITE_URI.'resources/uploads/big_'.$mimg, 'thumb' => VBO_SITE_URI.'resources/uploads/thumb_'.$mimg, 'alt' => $img_alt);
181 $thumbs_ind++;
182 }
183 }
184 if (count($extra_photos)) {
185 $thumbs_rel[] = $room['idroom'];
186 ?>
187 <div class="vbo-pkgdet-room-thumbs-cont">
188 <?php
189 foreach ($extra_photos as $extra_photo) {
190 ?>
191 <div class="vbo-pkgdet-room-thumb">
192 <a href="<?php echo $extra_photo['big']; ?>" title="<?php echo htmlspecialchars($extra_photo['alt']); ?>" rel="room<?php echo $room['idroom']; ?>" target="_blank"><img src="<?php echo $extra_photo['thumb']; ?>" alt="<?php echo htmlspecialchars($extra_photo['alt']); ?>" /></a>
193 </div>
194 <?php
195 }
196 ?>
197 </div>
198 <?php
199 }
200 }
201 ?>
202 <div class="vbo-seldates-cont vbo-pkgdet-room-form">
203 <h4><?php echo JText::translate('VBSELECTPDDATES'); ?></h4>
204 <?php
205 $paramshowpeople = intval(VikBooking::getRoomParam('maxminpeople', $room['params']));
206 if ($paramshowpeople > 0) {
207 $maxadustr = ($room['fromadult'] != $room['toadult'] ? $room['fromadult'].' - '.$room['toadult'] : $room['toadult']);
208 $maxchistr = ($room['fromchild'] != $room['tochild'] ? $room['fromchild'].' - '.$room['tochild'] : $room['tochild']);
209 $maxtotstr = ($room['mintotpeople'] != $room['totpeople'] ? $room['mintotpeople'].' - '.$room['totpeople'] : $room['totpeople']);
210 ?>
211 <div class="vbmaxminpeopleroom">
212 <?php
213 if ($paramshowpeople == 1) {
214 ?>
215 <div class="vbmaxadultsdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('male'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMADULTS'); ?></span><span class="vbmaxnumberdet"><?php echo $maxadustr; ?></span></div>
216 <?php
217 } elseif ($paramshowpeople == 2) {
218 ?>
219 <div class="vbmaxchildrendet"><span class="vbmaximgdet"><?php VikBookingIcons::e('child'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMCHILDREN'); ?></span><span class="vbmaxnumberdet"><?php echo $maxchistr; ?></span></div>
220 <?php
221 } elseif ($paramshowpeople == 3) {
222 ?>
223 <div class="vbmaxadultsdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('male'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMADULTS'); ?></span><span class="vbmaxnumberdet"><?php echo $maxadustr; ?></span></div>
224 <div class="vbmaxtotdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('users'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBMAXTOTPEOPLE'); ?></span><span class="vbmaxnumberdet"><?php echo $maxtotstr; ?></span></div>
225 <?php
226 } elseif ($paramshowpeople == 4) {
227 ?>
228 <div class="vbmaxchildrendet"><span class="vbmaximgdet"><?php VikBookingIcons::e('child'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMCHILDREN'); ?></span><span class="vbmaxnumberdet"><?php echo $maxchistr; ?></span></div>
229 <div class="vbmaxtotdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('users'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBMAXTOTPEOPLE'); ?></span><span class="vbmaxnumberdet"><?php echo $maxtotstr; ?></span></div>
230 <?php
231 } elseif ($paramshowpeople == 5) {
232 ?>
233 <div class="vbmaxadultsdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('male'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMADULTS'); ?></span><span class="vbmaxnumberdet"><?php echo $maxadustr; ?></span></div>
234 <div class="vbmaxchildrendet"><span class="vbmaximgdet"><?php VikBookingIcons::e('child'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBFORMCHILDREN'); ?></span><span class="vbmaxnumberdet"><?php echo $maxchistr; ?></span></div>
235 <div class="vbmaxtotdet"><span class="vbmaximgdet"><?php VikBookingIcons::e('users'); ?></span><span class="vbmaxlabeldet"><?php echo JText::translate('VBMAXTOTPEOPLE'); ?></span><span class="vbmaxnumberdet"><?php echo $maxtotstr; ?></span></div>
236 <?php
237 }
238 ?>
239 </div>
240 <?php
241 }
242 /* Begin room booking form */
243 $selform = "<div class=\"vbdivsearch\"><form action=\"".JRoute::rewrite('index.php?option=com_vikbooking'.(!empty($pitemid) ? '&Itemid='.$pitemid : ''))."\" method=\"post\"><div class=\"vb-search-inner\">\n";
244 $selform .= "<input type=\"hidden\" name=\"option\" value=\"com_vikbooking\"/>\n";
245 $selform .= "<input type=\"hidden\" name=\"task\" value=\"search\"/>\n";
246 $selform .= "<input type=\"hidden\" name=\"roomdetail\" value=\"".$room['idroom']."\"/>\n";
247 $selform .= "<input type=\"hidden\" name=\"pkg_id\" value=\"".$package['id']."\"/>\n";
248
249 if ($calendartype == "jqueryui") {
250 $orig_start_info = $start_info;
251 if ($package['dfrom'] < time()) {
252 $start_info = getdate(time());
253 }
254 $sdecl = "
255 jQuery.noConflict();
256 jQuery(function(){
257 jQuery.datepicker.setDefaults( jQuery.datepicker.regional[ '' ] );
258 jQuery('#checkindate".$room['idroom']."').datepicker({
259 showOn: 'focus',
260 numberOfMonths: ".($is_mobile ? '1' : '2').",
261 beforeShowDay: vbIsDayDisabled,
262 onSelect: function( selectedDate ) {
263 vbSetGlobalMinCheckoutDate('".$room['idroom']."');
264 vbCalcNights('".$room['idroom']."');
265 }
266 });
267 jQuery('#checkindate".$room['idroom']."').datepicker( 'option', 'dateFormat', '".$juidf."');
268 jQuery('#checkindate".$room['idroom']."').datepicker( 'option', 'minDate', new Date(".$start_info['year'].", ".((int)$start_info['mon'] - 1).", ".$start_info['mday'].") );
269 jQuery('#checkindate".$room['idroom']."').datepicker( 'option', 'maxDate', new Date(".$end_info['year'].", ".((int)$end_info['mon'] - 1).", ".$end_info['mday'].") );
270 jQuery('#checkoutdate".$room['idroom']."').datepicker({
271 showOn: 'focus',
272 numberOfMonths: ".($is_mobile ? '1' : '2').",
273 beforeShowDay: vbIsDayDisabled,
274 onSelect: function( selectedDate ) {
275 vbCalcNights('".$room['idroom']."');
276 }
277 });
278 jQuery('#checkoutdate".$room['idroom']."').datepicker( 'option', 'dateFormat', '".$juidf."');
279 jQuery('#checkoutdate".$room['idroom']."').datepicker( 'option', 'minDate', new Date(".$start_info['year'].", ".((int)$start_info['mon'] - 1).", ".$start_info['mday'].") );
280 jQuery('#checkoutdate".$room['idroom']."').datepicker( 'option', 'maxDate', new Date(".$end_info['year'].", ".((int)$end_info['mon'] - 1).", ".$end_info['mday'].") );
281 jQuery('#checkindate".$room['idroom']."').datepicker( 'option', jQuery.datepicker.regional[ 'vikbooking' ] );
282 jQuery('#checkoutdate".$room['idroom']."').datepicker( 'option', jQuery.datepicker.regional[ 'vikbooking' ] );
283 });";
284 $document->addScriptDeclaration($sdecl);
285 $start_info = $orig_start_info;
286 $selform .= "<div class=\"vbo-search-inpblock vbo-search-inpblock-checkin\"><label for=\"checkindate".$room['idroom']."\">" . JText::translate('VBPICKUPROOM') . "</label><div class=\"input-group\"><input type=\"text\" name=\"checkindate\" id=\"checkindate".$room['idroom']."\" size=\"10\" autocomplete=\"off\" onfocus=\"this.blur();\" readonly/><i class=\"".VikBookingIcons::i('calendar', 'vbo-caltrigger')."\"></i></div><input type=\"hidden\" name=\"checkinh\" value=\"".$hcheckin."\"/><input type=\"hidden\" name=\"checkinm\" value=\"".$mcheckin."\"/></div>\n";
287 $selform .= "<div class=\"vbo-search-inpblock vbo-search-inpblock-checkout\"><label for=\"checkoutdate".$room['idroom']."\">" . JText::translate('VBRETURNROOM') . "</label><div class=\"input-group\"><input type=\"text\" name=\"checkoutdate\" id=\"checkoutdate".$room['idroom']."\" size=\"10\" autocomplete=\"off\" onfocus=\"this.blur();\" readonly/><i class=\"".VikBookingIcons::i('calendar', 'vbo-caltrigger')."\"></i></div><input type=\"hidden\" name=\"checkouth\" value=\"".$hcheckout."\"/><input type=\"hidden\" name=\"checkoutm\" value=\"".$mcheckout."\"/></div>\n";
288 } else {
289 //default Joomla Calendar
290 $vbo_app = VikBooking::getVboApplication();
291 $selform .= "<div class=\"vbo-search-inpblock vbo-search-inpblock-checkin\"><label for=\"checkindate".$room['idroom']."\">" . JText::translate('VBPICKUPROOM') . "</label><div class=\"input-group\">" . $vbo_app->getCalendar('', 'checkindate', 'checkindate'.$room['idroom'], $vbdateformat, array ('class' => '','size' => '10','maxlength' => '19'));
292 $selform .= "<input type=\"hidden\" name=\"checkinh\" value=\"".$hcheckin."\"/><input type=\"hidden\" name=\"checkinm\" value=\"".$mcheckin."\"/></div></div>\n";
293 $selform .= "<div class=\"vbo-search-inpblock vbo-search-inpblock-checkout\"><label for=\"checkoutdate".$room['idroom']."\">" . JText::translate('VBRETURNROOM') . "</label><div class=\"input-group\">" . $vbo_app->getCalendar('', 'checkoutdate', 'checkoutdate'.$room['idroom'], $vbdateformat, array ('class' => '','size' => '10','maxlength' => '19'));
294 $selform .= "<input type=\"hidden\" name=\"checkouth\" value=\"".$hcheckout."\"/><input type=\"hidden\" name=\"checkoutm\" value=\"".$mcheckout."\"/></div></div>\n";
295 }
296 //rooms, adults, children
297 $showchildren = VikBooking::showChildrenFront();
298 //max number of rooms
299 $multi_units = (int)VikBooking::getRoomParam('multi_units', $room['params']);
300 if ($multi_units === 1 && $room['units'] > 1) {
301 $maxsearchnumrooms = (int)VikBooking::getSearchNumRooms();
302 $maxsearchnumrooms = $room['units'] > $maxsearchnumrooms ? $maxsearchnumrooms : $room['units'];
303 $roomsel = "<label>".JText::translate('VBFORMROOMSN')."</label><select name=\"roomsnum\" onchange=\"vbSetRoomsAdults(this.value, '".$room['idroom']."');\">\n";
304 for ($r = 1; $r <= $maxsearchnumrooms; $r++) {
305 $roomsel .= "<option value=\"".$r."\">".$r."</option>\n";
306 }
307 $roomsel .= "</select>\n";
308 } else {
309 $roomsel = "<input type=\"hidden\" name=\"roomsnum\" value=\"1\">\n";
310 }
311 //
312 //max number of adults per room
313 $suggocc = (int)VikBooking::getRoomParam('suggocc', $room['params']);
314 $adultsel = "<select name=\"adults[]\">";
315 for ($a = $room['fromadult']; $a <= $room['toadult']; $a++) {
316 $adultsel .= "<option value=\"".$a."\"".($a == $suggocc ? " selected=\"selected\"" : "").">".$a."</option>";
317 }
318 $adultsel .= "</select>";
319 //
320 //max number of children per room
321 $childrensel = "<select name=\"children[]\">";
322 for($c = 0; $c <= $room['tochild']; $c++) {
323 $childrensel .= "<option value=\"".$c."\"".(!empty($ch_num_children) && $ch_num_children == $c ? " selected=\"selected\"" : "").">".$c."</option>";
324 }
325 $childrensel .= "</select>";
326 //
327
328 $selform .= "<div class=\"vbo-search-num-racblock\">\n";
329 $selform .= " <div class=\"vbo-search-num-rooms\">".$roomsel."</div>\n";
330 $selform .= " <div class=\"vbo-search-num-aduchild-block\" id=\"vbo-search-num-aduchild-block".$room['idroom']."\">\n";
331 $selform .= " <div class=\"vbo-search-num-aduchild-entry\"><span class=\"vbo-search-roomnum\">".JText::translate('VBFORMNUMROOM')." 1</span>\n";
332 $selform .= " <div class=\"vbo-search-num-adults-entry\"><label class=\"vbo-search-num-adults-entry-label\">".JText::translate('VBFORMADULTS')."</label><span class=\"vbo-search-num-adults-entry-inp\">".$adultsel."</span></div>\n";
333 if ($showchildren) {
334 $selform .= " <div class=\"vbo-search-num-children-entry\"><label class=\"vbo-search-num-children-entry-label\">".JText::translate('VBFORMCHILDREN')."</label><span class=\"vbo-search-num-children-entry-inp\">".$childrensel."</span></div>\n";
335 }
336 $selform .= " </div>\n";
337 $selform .= " </div>\n";
338 //the tag <div id=\"vbjstotnights".$room['idroom']."\"></div> will be used by javascript to calculate the nights
339 $selform .= " <div id=\"vbjstotnights".$room['idroom']."\"></div>\n";
340 $selform .= "</div>\n";
341 $selform .= "<div class=\"vbo-search-submit\"><input type=\"submit\" name=\"search\" value=\"" . JText::translate('VBBOOKTHISROOM') . "\" class=\"btn vbdetbooksubmit vbo-pref-color-btn\"/></div>\n";
342 $selform .= "</div>\n";
343 $selform .= (!empty ($pitemid) ? "<input type=\"hidden\" name=\"Itemid\" value=\"" . $pitemid . "\"/>" : "") . "</form></div>";
344 ?>
345 <input type="hidden" id="vbroomdethelper<?php echo $room['idroom']; ?>" value="1"/>
346 <div class="vbo-room-details-booking-wrapper">
347 <?php echo $selform; ?>
348 </div>
349 <?php
350 /* End room booking form */
351 ?>
352 </div>
353 </div>
354 </div>
355 <?php
356 }
357 ?>
358 </div>
359 <?php
360 }
361 ?>
362 </div>
363
364 </div>
365
366 <script type="text/javascript">
367 function vboToggleRoomBooking(idr) {
368 if (typeof jQuery != 'undefined') {
369 var elem = document.getElementById("vbo-pkgdet-room"+idr+"-inner");
370 if (elem.style.display == 'none') {
371 elem.style.display = 'block';
372 } else {
373 elem.style.display = 'none';
374 }
375 } else {
376 jQuery("#vbo-pkgdet-room"+idr+"-inner").slideToggle();
377 }
378 }
379 function vbSetGlobalMinCheckoutDate(rid) {
380 var nowcheckin = jQuery('#checkindate'+rid).datepicker('getDate');
381 var nowcheckindate = new Date(nowcheckin.getTime());
382 nowcheckindate.setDate(nowcheckindate.getDate() + <?php echo (int)$package['minlos']; ?>);
383 jQuery('#checkoutdate'+rid).datepicker( 'option', 'minDate', nowcheckindate );
384 <?php
385 if ($package['maxlos'] > 0) {
386 ?>
387 var scndcheckin = jQuery('#checkindate'+rid).datepicker('getDate');
388 var scndcheckindate = new Date(scndcheckin.getTime());
389 scndcheckindate.setDate(scndcheckindate.getDate() + <?php echo (int)$package['maxlos']; ?>);
390 jQuery('#checkoutdate'+rid).datepicker( 'option', 'maxDate', scndcheckindate );
391 <?php
392 }
393 ?>
394 }
395 function vbCalcNights(rid) {
396 var vbcheckin = document.getElementById('checkindate'+rid).value;
397 var vbcheckout = document.getElementById('checkoutdate'+rid).value;
398 if (vbcheckin.length > 0 && vbcheckout.length > 0) {
399 var vbcheckinp = vbcheckin.split("/");
400 var vbcheckoutp = vbcheckout.split("/");
401 <?php
402 if ($vbdateformat == "%d/%m/%Y") {
403 ?>
404 var vbinmonth = parseInt(vbcheckinp[1]);
405 vbinmonth = vbinmonth - 1;
406 var vbinday = parseInt(vbcheckinp[0], 10);
407 var vbcheckind = new Date(vbcheckinp[2], vbinmonth, vbinday);
408 var vboutmonth = parseInt(vbcheckoutp[1]);
409 vboutmonth = vboutmonth - 1;
410 var vboutday = parseInt(vbcheckoutp[0], 10);
411 var vbcheckoutd = new Date(vbcheckoutp[2], vboutmonth, vboutday);
412 <?php
413 } elseif ($vbdateformat == "%m/%d/%Y") {
414 ?>
415 var vbinmonth = parseInt(vbcheckinp[0]);
416 vbinmonth = vbinmonth - 1;
417 var vbinday = parseInt(vbcheckinp[1], 10);
418 var vbcheckind = new Date(vbcheckinp[2], vbinmonth, vbinday);
419 var vboutmonth = parseInt(vbcheckoutp[0]);
420 vboutmonth = vboutmonth - 1;
421 var vboutday = parseInt(vbcheckoutp[1], 10);
422 var vbcheckoutd = new Date(vbcheckoutp[2], vboutmonth, vboutday);
423 <?php
424 } else {
425 ?>
426 var vbinmonth = parseInt(vbcheckinp[1]);
427 vbinmonth = vbinmonth - 1;
428 var vbinday = parseInt(vbcheckinp[2], 10);
429 var vbcheckind = new Date(vbcheckinp[0], vbinmonth, vbinday);
430 var vboutmonth = parseInt(vbcheckoutp[1]);
431 vboutmonth = vboutmonth - 1;
432 var vboutday = parseInt(vbcheckoutp[2], 10);
433 var vbcheckoutd = new Date(vbcheckoutp[0], vboutmonth, vboutday);
434 <?php
435 }
436 ?>
437 var vbdivider = 1000 * 60 * 60 * 24;
438 var vbints = vbcheckind.getTime();
439 var vboutts = vbcheckoutd.getTime();
440 if (vboutts > vbints) {
441 //var vbnights = Math.ceil((vboutts - vbints) / (vbdivider));
442 var utc1 = Date.UTC(vbcheckind.getFullYear(), vbcheckind.getMonth(), vbcheckind.getDate());
443 var utc2 = Date.UTC(vbcheckoutd.getFullYear(), vbcheckoutd.getMonth(), vbcheckoutd.getDate());
444 var vbnights = Math.ceil((utc2 - utc1) / vbdivider);
445 if (vbnights > 0) {
446 document.getElementById('vbjstotnights'+rid).innerHTML = '<?php echo addslashes(JText::translate('VBJSTOTNIGHTS')); ?>: '+vbnights;
447 } else {
448 document.getElementById('vbjstotnights'+rid).innerHTML = '';
449 }
450 } else {
451 document.getElementById('vbjstotnights'+rid).innerHTML = '';
452 }
453 } else {
454 document.getElementById('vbjstotnights'+rid).innerHTML = '';
455 }
456 }
457 function vbAddElement(rid) {
458 var ni = document.getElementById('vbo-search-num-aduchild-block'+rid);
459 var numi = document.getElementById('vbroomdethelper'+rid);
460 var num = (document.getElementById('vbroomdethelper'+rid).value -1)+ 2;
461 numi.value = num;
462 var newdiv = document.createElement('div');
463 var divIdName = 'vb'+num+'detracont';
464 newdiv.setAttribute('id',divIdName);
465 newdiv.innerHTML = '<div class=\'vbo-search-num-aduchild-entry\'><span class=\'vbo-search-roomnum\'><?php echo addslashes(JText::translate('VBFORMNUMROOM')); ?> '+ num +'</span><div class=\'vbo-search-num-adults-entry\'><label class=\'vbo-search-num-adults-entry-label\'><?php echo addslashes(JText::translate('VBFORMADULTS')); ?></label><span class=\'vbo-search-num-adults-entry-inp\'><?php echo addslashes(str_replace('"', "'", $adultsel)); ?></span></div><?php if ($showchildren): ?><div class=\'vbo-search-num-children-entry\'><label class=\'vbo-search-num-children-entry-label\'><?php echo addslashes(JText::translate('VBFORMCHILDREN')); ?></label><span class=\'vbo-search-num-adults-entry-inp\'><?php echo addslashes(str_replace('"', "'", $childrensel)); ?></span></div><?php endif; ?></div>';
466 ni.appendChild(newdiv);
467 }
468 function vbSetRoomsAdults(totrooms, rid) {
469 var actrooms = parseInt(document.getElementById('vbroomdethelper'+rid).value);
470 var torooms = parseInt(totrooms);
471 var difrooms;
472 if (torooms > actrooms) {
473 difrooms = torooms - actrooms;
474 for(var ir=1; ir<=difrooms; ir++) {
475 vbAddElement(rid);
476 }
477 }
478 if (torooms < actrooms) {
479 for(var ir=actrooms; ir>torooms; ir--) {
480 if (ir > 1) {
481 var rmra = document.getElementById('vb' + ir + 'detracont');
482 rmra.parentNode.removeChild(rmra);
483 }
484 }
485 document.getElementById('vbroomdethelper'+rid).value = torooms;
486 }
487 }
488 function vbFullObject(obj) {
489 var jk;
490 for(jk in obj) {
491 return obj.hasOwnProperty(jk);
492 }
493 }
494 jQuery(document).ready(function() {
495 jQuery('.vb-cal-img, .vbo-caltrigger').click(function(){
496 var jdp = jQuery(this).prev('input.hasDatepicker');
497 if (jdp.length) {
498 jdp.focus();
499 }
500 });
501 <?php
502 if (count($thumbs_rel)) {
503 foreach ($thumbs_rel as $rel) {
504 ?>
505 jQuery("a[rel=room<?php echo $rel; ?>]").fancybox({
506 'helpers': {
507 'overlay': {
508 'locked': false
509 }
510 },
511 'padding': 0,
512 'transitionIn': 'none',
513 'transitionOut': 'none',
514 'titlePosition': 'outside'
515 });
516 <?php
517 }
518 }
519 ?>
520 });
521 </script>