PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.6.7
VikBooking Hotel Booking Engine & PMS v1.6.7
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.7, at site/views/packagedetails/tmpl/default.php

526 lines 24.2 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 $guests_label = VBOFactory::getConfig()->get('guests_label', 'adults');
299 $use_guests_label = 'VBFORMADULTS';
300 if (!$showchildren && !strcasecmp($guests_label, 'guests')) {
301 $use_guests_label = 'VBOINVTOTGUESTS';
302 }
303 //max number of rooms
304 $multi_units = (int)VikBooking::getRoomParam('multi_units', $room['params']);
305 if ($multi_units === 1 && $room['units'] > 1) {
306 $maxsearchnumrooms = (int)VikBooking::getSearchNumRooms();
307 $maxsearchnumrooms = $room['units'] > $maxsearchnumrooms ? $maxsearchnumrooms : $room['units'];
308 $roomsel = "<label>".JText::translate('VBFORMROOMSN')."</label><select name=\"roomsnum\" onchange=\"vbSetRoomsAdults(this.value, '".$room['idroom']."');\">\n";
309 for ($r = 1; $r <= $maxsearchnumrooms; $r++) {
310 $roomsel .= "<option value=\"".$r."\">".$r."</option>\n";
311 }
312 $roomsel .= "</select>\n";
313 } else {
314 $roomsel = "<input type=\"hidden\" name=\"roomsnum\" value=\"1\">\n";
315 }
316 //
317 //max number of adults per room
318 $suggocc = (int)VikBooking::getRoomParam('suggocc', $room['params']);
319 $adultsel = "<select name=\"adults[]\">";
320 for ($a = $room['fromadult']; $a <= $room['toadult']; $a++) {
321 $adultsel .= "<option value=\"".$a."\"".($a == $suggocc ? " selected=\"selected\"" : "").">".$a."</option>";
322 }
323 $adultsel .= "</select>";
324 //
325 //max number of children per room
326 $childrensel = "<select name=\"children[]\">";
327 for($c = 0; $c <= $room['tochild']; $c++) {
328 $childrensel .= "<option value=\"".$c."\"".(!empty($ch_num_children) && $ch_num_children == $c ? " selected=\"selected\"" : "").">".$c."</option>";
329 }
330 $childrensel .= "</select>";
331 //
332
333 $selform .= "<div class=\"vbo-search-num-racblock\">\n";
334 $selform .= " <div class=\"vbo-search-num-rooms\">".$roomsel."</div>\n";
335 $selform .= " <div class=\"vbo-search-num-aduchild-block\" id=\"vbo-search-num-aduchild-block".$room['idroom']."\">\n";
336 $selform .= " <div class=\"vbo-search-num-aduchild-entry\"><span class=\"vbo-search-roomnum\">".JText::translate('VBFORMNUMROOM')." 1</span>\n";
337 $selform .= " <div class=\"vbo-search-num-adults-entry\"><label class=\"vbo-search-num-adults-entry-label\">".JText::translate($use_guests_label)."</label><span class=\"vbo-search-num-adults-entry-inp\">".$adultsel."</span></div>\n";
338 if ($showchildren) {
339 $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";
340 }
341 $selform .= " </div>\n";
342 $selform .= " </div>\n";
343 //the tag <div id=\"vbjstotnights".$room['idroom']."\"></div> will be used by javascript to calculate the nights
344 $selform .= " <div id=\"vbjstotnights".$room['idroom']."\"></div>\n";
345 $selform .= "</div>\n";
346 $selform .= "<div class=\"vbo-search-submit\"><input type=\"submit\" name=\"search\" value=\"" . JText::translate('VBBOOKTHISROOM') . "\" class=\"btn vbdetbooksubmit vbo-pref-color-btn\"/></div>\n";
347 $selform .= "</div>\n";
348 $selform .= (!empty ($pitemid) ? "<input type=\"hidden\" name=\"Itemid\" value=\"" . $pitemid . "\"/>" : "") . "</form></div>";
349 ?>
350 <input type="hidden" id="vbroomdethelper<?php echo $room['idroom']; ?>" value="1"/>
351 <div class="vbo-room-details-booking-wrapper">
352 <?php echo $selform; ?>
353 </div>
354 <?php
355 /* End room booking form */
356 ?>
357 </div>
358 </div>
359 </div>
360 <?php
361 }
362 ?>
363 </div>
364 <?php
365 }
366 ?>
367 </div>
368
369 </div>
370
371 <script type="text/javascript">
372 function vboToggleRoomBooking(idr) {
373 if (typeof jQuery != 'undefined') {
374 var elem = document.getElementById("vbo-pkgdet-room"+idr+"-inner");
375 if (elem.style.display == 'none') {
376 elem.style.display = 'block';
377 } else {
378 elem.style.display = 'none';
379 }
380 } else {
381 jQuery("#vbo-pkgdet-room"+idr+"-inner").slideToggle();
382 }
383 }
384 function vbSetGlobalMinCheckoutDate(rid) {
385 var nowcheckin = jQuery('#checkindate'+rid).datepicker('getDate');
386 var nowcheckindate = new Date(nowcheckin.getTime());
387 nowcheckindate.setDate(nowcheckindate.getDate() + <?php echo (int)$package['minlos']; ?>);
388 jQuery('#checkoutdate'+rid).datepicker( 'option', 'minDate', nowcheckindate );
389 <?php
390 if ($package['maxlos'] > 0) {
391 ?>
392 var scndcheckin = jQuery('#checkindate'+rid).datepicker('getDate');
393 var scndcheckindate = new Date(scndcheckin.getTime());
394 scndcheckindate.setDate(scndcheckindate.getDate() + <?php echo (int)$package['maxlos']; ?>);
395 jQuery('#checkoutdate'+rid).datepicker( 'option', 'maxDate', scndcheckindate );
396 <?php
397 }
398 ?>
399 }
400 function vbCalcNights(rid) {
401 var vbcheckin = document.getElementById('checkindate'+rid).value;
402 var vbcheckout = document.getElementById('checkoutdate'+rid).value;
403 if (vbcheckin.length > 0 && vbcheckout.length > 0) {
404 var vbcheckinp = vbcheckin.split("/");
405 var vbcheckoutp = vbcheckout.split("/");
406 <?php
407 if ($vbdateformat == "%d/%m/%Y") {
408 ?>
409 var vbinmonth = parseInt(vbcheckinp[1]);
410 vbinmonth = vbinmonth - 1;
411 var vbinday = parseInt(vbcheckinp[0], 10);
412 var vbcheckind = new Date(vbcheckinp[2], vbinmonth, vbinday);
413 var vboutmonth = parseInt(vbcheckoutp[1]);
414 vboutmonth = vboutmonth - 1;
415 var vboutday = parseInt(vbcheckoutp[0], 10);
416 var vbcheckoutd = new Date(vbcheckoutp[2], vboutmonth, vboutday);
417 <?php
418 } elseif ($vbdateformat == "%m/%d/%Y") {
419 ?>
420 var vbinmonth = parseInt(vbcheckinp[0]);
421 vbinmonth = vbinmonth - 1;
422 var vbinday = parseInt(vbcheckinp[1], 10);
423 var vbcheckind = new Date(vbcheckinp[2], vbinmonth, vbinday);
424 var vboutmonth = parseInt(vbcheckoutp[0]);
425 vboutmonth = vboutmonth - 1;
426 var vboutday = parseInt(vbcheckoutp[1], 10);
427 var vbcheckoutd = new Date(vbcheckoutp[2], vboutmonth, vboutday);
428 <?php
429 } else {
430 ?>
431 var vbinmonth = parseInt(vbcheckinp[1]);
432 vbinmonth = vbinmonth - 1;
433 var vbinday = parseInt(vbcheckinp[2], 10);
434 var vbcheckind = new Date(vbcheckinp[0], vbinmonth, vbinday);
435 var vboutmonth = parseInt(vbcheckoutp[1]);
436 vboutmonth = vboutmonth - 1;
437 var vboutday = parseInt(vbcheckoutp[2], 10);
438 var vbcheckoutd = new Date(vbcheckoutp[0], vboutmonth, vboutday);
439 <?php
440 }
441 ?>
442 var vbdivider = 1000 * 60 * 60 * 24;
443 var vbints = vbcheckind.getTime();
444 var vboutts = vbcheckoutd.getTime();
445 if (vboutts > vbints) {
446 //var vbnights = Math.ceil((vboutts - vbints) / (vbdivider));
447 var utc1 = Date.UTC(vbcheckind.getFullYear(), vbcheckind.getMonth(), vbcheckind.getDate());
448 var utc2 = Date.UTC(vbcheckoutd.getFullYear(), vbcheckoutd.getMonth(), vbcheckoutd.getDate());
449 var vbnights = Math.ceil((utc2 - utc1) / vbdivider);
450 if (vbnights > 0) {
451 document.getElementById('vbjstotnights'+rid).innerHTML = '<?php echo addslashes(JText::translate('VBJSTOTNIGHTS')); ?>: '+vbnights;
452 } else {
453 document.getElementById('vbjstotnights'+rid).innerHTML = '';
454 }
455 } else {
456 document.getElementById('vbjstotnights'+rid).innerHTML = '';
457 }
458 } else {
459 document.getElementById('vbjstotnights'+rid).innerHTML = '';
460 }
461 }
462 function vbAddElement(rid) {
463 var ni = document.getElementById('vbo-search-num-aduchild-block'+rid);
464 var numi = document.getElementById('vbroomdethelper'+rid);
465 var num = (document.getElementById('vbroomdethelper'+rid).value -1)+ 2;
466 numi.value = num;
467 var newdiv = document.createElement('div');
468 var divIdName = 'vb'+num+'detracont';
469 newdiv.setAttribute('id',divIdName);
470 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($use_guests_label)); ?></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>';
471 ni.appendChild(newdiv);
472 }
473 function vbSetRoomsAdults(totrooms, rid) {
474 var actrooms = parseInt(document.getElementById('vbroomdethelper'+rid).value);
475 var torooms = parseInt(totrooms);
476 var difrooms;
477 if (torooms > actrooms) {
478 difrooms = torooms - actrooms;
479 for(var ir=1; ir<=difrooms; ir++) {
480 vbAddElement(rid);
481 }
482 }
483 if (torooms < actrooms) {
484 for(var ir=actrooms; ir>torooms; ir--) {
485 if (ir > 1) {
486 var rmra = document.getElementById('vb' + ir + 'detracont');
487 rmra.parentNode.removeChild(rmra);
488 }
489 }
490 document.getElementById('vbroomdethelper'+rid).value = torooms;
491 }
492 }
493 function vbFullObject(obj) {
494 var jk;
495 for(jk in obj) {
496 return obj.hasOwnProperty(jk);
497 }
498 }
499 jQuery(document).ready(function() {
500 jQuery('.vb-cal-img, .vbo-caltrigger').click(function(){
501 var jdp = jQuery(this).prev('input.hasDatepicker');
502 if (jdp.length) {
503 jdp.focus();
504 }
505 });
506 <?php
507 if (count($thumbs_rel)) {
508 foreach ($thumbs_rel as $rel) {
509 ?>
510 jQuery("a[rel=room<?php echo $rel; ?>]").fancybox({
511 'helpers': {
512 'overlay': {
513 'locked': false
514 }
515 },
516 'padding': 0,
517 'transitionIn': 'none',
518 'transitionOut': 'none',
519 'titlePosition': 'outside'
520 });
521 <?php
522 }
523 }
524 ?>
525 });
526 </script>