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

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