﻿var _tv = window.a; var tv = window.tv = function(selector, context) { return new tv.fn.init(selector, context) }; tv.WSURL = "/Service.svc/"; tv.ContenerID = '#offerts'; tv.size = 15; tv.DHotelTypes = new Array(); tv.DAmenitis = new Array(); tv.hotels = null; tv.printHotels = null; tv.HName = null; tv.isUpdataShow = true; tv.Stars = [true, false, false, false, false, false, false]; tv.HotelTypes = [true, true, true, true, true, true, true, true]; tv.Template = "List"; tv.Paging = '#Paging'; tv.HMax = "#HMax"; tv.HCount = "#HCount"; tv.ContenerID = '#offerts'; tv.SortBy = "Name"; tv.SortTyp = "asc"; tv.Distance = 0; tv.paginOffsetDown = 2; tv.paginOffsetUp = 2; tv.paginStartP = 1; tv.paginEndP = 1; tv.SP = true; tv.fn = tv.prototype = { init: function() { }, Avilability: function(locationID, Lang) { $.getJSON(tv.WSURL + "GetStaticHotels?locationID=" + locationID + "&Lang=" + Lang, function(data) { var tmp = eval("(" + data.d + ")"); tv.hotels = tmp; tv.fn.AddDate(); Addhandler() }) }, ShowPage: function(index) { tv.index = index; tv.fn.printData(); Jump() }, AddDate: function() { if (tv.hotels != null) { jQuery.each(tv.hotels, function(i, h) { if (tv.DHotelTypes.length == 0) { tv.DHotelTypes.push(h.Ht) } else { var isHT = false; jQuery.each(tv.DHotelTypes, function(id, HT) { if (HT == h.Ht) isHT = true }); if (!isHT) tv.DHotelTypes.push(h.Ht) } h.pAm = [false, false, false, false, false, false, false, false, false]; h.aPattern = ''; jQuery.each(h.Am, function(id, ham) { h.aPattern += ham + '|' }); if (tv.DAmenitis.length == 0) { jQuery.each(h.Am, function(id, ham) { tv.DAmenitis.push(ham) }) } else { var t = false; jQuery.each(h.Am, function(id, ham) { var isAm = false; jQuery.each(tv.DAmenitis, function(id, ham2) { if (ham == ham2) isAm = true }); if (!isAm) tv.DAmenitis.push(ham) }) } tv.DAmenitis.sort(); if (tv.DAmenitis.length > 0) { CreateAmenitis() } }) } }, Bind: function() { tv.printHotels = new Array(); if (tv.hotels != null) { jQuery.each(tv.hotels, function(i, h) { if (tv.fn.ValName(h) && tv.fn.ValStars(h) && tv.fn.valHotelType(h) && tv.fn.ValAmentis(h) && tv.fn.ValDistance(h)) { tv.printHotels.push(clone(h)) } }) } }, ValDistance: function(d) { var t = false; if (tv.Distance == 0 || tv.Distance == 25) return true; return d.Di <= tv.Distance }, ValAmentis: function(h) { if (!tv.isAm) return tv; return (h.pAm[0] || h.pAm[1] || h.pAm[2] || h.pAm[3] || h.pAm[4] || h.pAm[5] || h.pAm[6] || h.pAm[7] || h.pAm[8]) }, ValStars: function(h) { var isVal = false; switch (h.S) { case 0: isVal = tv.Stars[6]; break; case 1: isVal = tv.Stars[1]; break; case 2: isVal = tv.Stars[2]; break; case 3: isVal = tv.Stars[3]; break; case 4: isVal = tv.Stars[4]; break; case 5: isVal = tv.Stars[5]; break; default: isVal = tv.Stars[6]; break } if (tv.Stars[0]) isVal = true; return isVal }, valHotelType: function(h) { return tv.HotelTypes[h.Ht] }, ValName: function(h) { if (tv.HName != null) { return (h.N.toUpperCase().match(tv.HName.toUpperCase()) != null) } return true }, printDataDelay: function() { tv.fn.Bind(); var html = ""; if (tv.hotels != null) { if (tv.SP) tv.fn.ShowPaging(); switch (tv.Template) { case 'List': html = tv.tem.TListe(tv.printHotels); break; case 'Progres': html = tv.tem.TProgres(tv.printHotels); break; default: html = ""; break }; $(tv.ContenerID).html(html); if (tv.hotels.length == tv.printHotels.length) $("#reset").hide(); else $("#reset").show(); $(tv.HMax).html(tv.hotels.length); $(tv.HCount).html(tv.printHotels.length); if (tv.printHotels.length == 0) { $(tv.ContenerID).html('<div class="cnt-list-warn clearfix">                        <div class="list-warn-in">	                            <div class="list-warn-in2">	                                <div class="list-warn-bdy">' + tr_komun_1 + '</div>	                            </div>	                            </div>		                    </div>') } } setTimeout('$("#UpDate").hide()', 500) }, printData: function() { if (tv.Template == 'List' && tv.isUpdataShow) $("#UpDate").show(); setTimeout('tv.fn.printDataDelay()', 30) }, Sort: function() { if (tv.hotels != null) tv.hotels.sort(tv.fn.SortHotels) }, SortHotels: function(x, y) { switch (tv.SortBy) { case "Price": return (tv.SortTyp == "asc" ? x.P - y.P : y.P - x.P); case "Stars": return (tv.SortTyp == "asc" ? x.S - y.S : y.S - x.S); case "Name": return (tv.SortTyp == "asc" ? sortByNameAsc(x, y) : sortByNameDsc(x, y)) } }, ShowPaging: function() { var count = 0; var html = ""; if (tv.printHotels.length > 0) { if (tv.printHotels.length / tv.size == 0) count = tse.printHotels.length / tv.size; else count = Math.floor(tv.printHotels.length / tv.size) + (tv.printHotels.length % tv.size == 0 ? 0 : 1); if (tv.index >= count) tv.index = count - 1; else if (tv.index < 0) tv.index = 0; if ((tv.index - 1) >= 0) html += "<a class=\"arr \" href='javascript:void(0)' onclick=\"tv.fn.ShowPage(" + (tv.index - 1) + ")\">&laquo;</a>"; else html += "<span class=\"arr inact\" >&laquo;</span>"; var isS = false; var isE = false; for (var i = 0; i < count; i++) { if ((count > tv.paginStartP + tv.paginOffsetDown + tv.paginOffsetUp) && i >= (tv.paginStartP) && !isS && (tv.index > (tv.paginStartP + tv.paginOffsetDown))) { html += "<span>...</span>"; isS = true } if ((i <= (tv.index + tv.paginOffsetUp) && i >= (tv.index - tv.paginOffsetDown)) || ((i < tv.paginStartP + tv.paginOffsetDown + tv.paginOffsetUp) && tv.index < (tv.paginStartP + tv.paginOffsetDown)) || (tv.index > (count - tv.paginOffsetDown - tv.paginEndP - tv.paginOffsetUp) && i > (count - tv.paginOffsetDown - tv.paginEndP - tv.paginOffsetUp)) || (i < tv.paginStartP) || ((i >= (count - tv.paginEndP)))) html += "<a href='javascript:void(0)' " + (i == tv.index ? " class=\"sel \" " : " onclick=\"tv.fn.ShowPage(" + (i) + ")\" ") + " >" + (i + 1) + "</a>"; if (!isE && (i >= (tv.index + tv.paginOffsetUp + tv.paginEndP + (!isS ? 1 : 0))) && (i < (count - tv.paginEndP))) { html += "<span>...</span>"; isE = true } } if (tv.index < (count - 1)) html += "<a class=\"arr\" href='javascript:void(0)' onclick=\"tv.fn.ShowPage(" + (tv.index + 1) + ")\">&raquo;</a>" } $(tv.Paging).html(html) } }; function sortByNameAsc(a, b) { var x = a.N.toLowerCase(); var y = b.N.toLowerCase(); return ((x < y) ? -1 : ((x > y) ? 1 : 0)) }; function sortByNameDsc(a, b) { var x = a.N.toLowerCase(); var y = b.N.toLowerCase(); return ((x > y) ? -1 : ((x < y) ? 1 : 0)) }; function SortBox(SortBy) { if (SortBy != tv.SortBy) { $("#Sort" + tv.SortBy).removeClass("sel-desc"); $("#Sort" + tv.SortBy).removeClass("sel-asc") } tv.SortBy = SortBy; tv.SortTyp = (tv.SortTyp == "asc" ? "dsc" : "asc"); tv.fn.Sort(); tv.fn.printData(); if (tv.SortTyp == "dsc") { $("#Sort" + tv.SortBy).removeClass("sel-asc"); $("#Sort" + tv.SortBy).addClass("sel-desc") } else { $("#Sort" + tv.SortBy).removeClass("sel-desc"); $("#Sort" + tv.SortBy).addClass("sel-asc") } }; tv.tem = new Object(); tv.tem = tv.prototype = { TListe: function(Hotels) { var html = ""; jQuery.each(Hotels, function(i, h) { if (i >= (tv.size * tv.index) && i < (tv.size * (tv.index + 1))) { html += '<div class="item">                        <div class="overview-box overview-box-v2">                            <div class="overview-box-in clearfix">                                <div class="col-data clearfix">                                    <div class="pic col-hotel-pic">                                        <img alt="hotel 1" src="http://tm.turigo.pl/Photos/System/' + (h.Ph == "" ? "no_picture.png" : "95x95/" + h.Ph) + '"/>                                    </div>                                    <div class="data-rows">                                        <div class="row row-1 clearfix">                                            <div class="name-and-location">                                                <h3>' + h.N + '</h3>                                                <p>' + h.Ad + '</p>                                                <p>' + ((h.La == -1 && h.Ln == -1) ? ('<a class="linkh3" href="/hotele/hotel-szczegoly.html?hid=' + h.Id + '&dest=' + tv.dest + '&show=map&static=true" >' + tr_mapa + '</a>') : '') + '</p></div>                                            <div class="rating-and-distance">                                                <p class="star-rating star-rating-' + h.S + '">                                                    <span class="alt">* * * *</span></p>                                                    <p>' + (h.Di > -1 ? (h.Di > 0 ? '<em>' + tr_od_centrum + '</em> ' + Zaok2(h.Di) + ' km' : '<em>' + tr_od_centrum + '</em> 0.1km') : '') + '</p>                                            </div>                                        </div>                                        <div class="row row-2 clearfix">                                            <ul class="amenities clearfix">' + Amenitis(h.Am) + '</ul>                                            <div class="show-details">                                                <a href="/hotele/hotel-szczegoly.html?hid=' + h.Id + '&dest=' + tv.dest + '&amp;static=true"><strong>szczegóły hotelu »</strong></a>                                            </div></div></div></div><div class="col-price">                                    <p class="clearfix">                                        <strong>–<span class="star"></span></strong> <em>PLN</em> <span class="oth">&nbsp;</span> <a class="check-prices-btn" href="#lay-hdr" onclick="javascript:JumFind()"><span class="alt">Sprawdź ceny</span></a>                                    </p>                                </div>                            </div>                        </div>                    </div>' } }); return html } }; function Addhandler() { $("#SortName").bind("click", function(e) { SortBox("Name") }); $("#SortStars").bind("click", function(e) { SortBox("Stars") }); $("#Str").bind("click", function(e) { ResetStars(); tv.fn.printData() }); $("#Str0").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[6] = e.target.checked; tv.fn.printData() }); $("#Str1").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[1] = e.target.checked; tv.fn.printData() }); $("#Str2").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[2] = e.target.checked; tv.fn.printData() }); $("#Str3").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[3] = e.target.checked; tv.fn.printData() }); $("#Str4").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[4] = e.target.checked; tv.fn.printData() }); $("#Str5").bind("click", function(e) { $("#Str")[0].checked = false; tv.Stars[0] = false; tv.Stars[5] = e.target.checked; tv.fn.printData() }); $("#HName").bind("keyup", function(e) { if ($('#HName').val().length > 1) { tv.HName = $('#HName').val(); if (tv.HName == "") tv.HName = null; tv.fn.printData() } else { if ($('#HName').val().length == 0) { tv.HName = null; tv.fn.printData() } } }); $("#HNameReset").bind("click", function(e) { ResetName(); tv.fn.printData() }); $("#reset").bind("click", function(e) { ResetStars(); ResetName(); ResetAm(); ResetHotelType(); tv.Distance = 0; tv.fn.printData() }); $("#location").bind("change", function(e) { tv.Distance = $("#location").val(); tv.fn.printData() }) }; function setHotelType(id, obj) { $('#f_5_' + id).attr('checked', (obj.checked ? 'checked' : '')); tv.HotelTypes[id] = obj.checked; tv.fn.printData() } function ResetHotelType() { tv.HotelTypes = [true, true, true, true, true, true, true, true]; jQuery.each(tv.DHotelTypes, function(i, ht) { $('#f_5_' + ht).attr('checked', 'checked') }) } function ResetStars() { for (var i = 0; i <= 5; i++) { $("#Str" + i)[0].checked = false; if (i != 0) tv.Stars[i - 1] = false; else tv.Stars[6] = false }; $("#Str")[0].checked = true; tv.Stars[0] = true } function ResetAm() { jQuery.each(tv.hotels, function(i, h) { h.pAm = [false, false, false, false, false, false, false, false, false] }); jQuery.each(tv.DAmenitis, function(i, a) { $('#f_4_' + a).attr('checked', '') }); tv.isAm = false } function ResetName() { $('#HName')[0].value = ''; tv.HName = null } function ResetAm() { jQuery.each(tv.hotels, function(i, h) { h.pAm = [false, false, false, false, false, false, false, false, false] }); jQuery.each(tv.DAmenitis, function(i, a) { $('#f_4_' + a).attr('checked', '') }); tv.isAm = false } function setAmenitis(t, obj) { jQuery.each(tv.hotels, function(i, h) { if (h.aPattern.indexOf(t) != -1) h.pAm[t] = obj.checked }); var isA = false; jQuery.each(tv.DAmenitis, function(i, a) { isA = isA || $('#f_4_' + a).attr("checked") }); tv.isAm = isA; tv.fn.printData() } function CreateAmenitis() { var html = ""; var html7 = ""; jQuery.each(tv.DAmenitis, function(id, am) { var AmClass = ""; var text = ""; switch (am) { case 1: AmClass = 'conference'; text = tr_centrum_konf; break; case 0: AmClass = 'internet'; text = tr_internet; break; case 3: AmClass = 'pool'; text = tr_basen; break; case 2: AmClass = 'fit-spa'; text = tr_fitness_lub_spa; break; case 8: AmClass = 'conditioning'; text = tr_klimatyzacja; break; case 6: AmClass = 'animals'; text = tr_akceptujemy_zwierz; break; case 5: AmClass = 'restaurant'; text = tr_restauracja; break; case 4: AmClass = 'parking'; text = tr_parking; break; case 7: AmClass = 'handicapped'; text = tr_udogodnienia_niepełnosprawnych; break } var tmp = '<div class="field-1col clearfix">                    <input class="checkbox" type="checkbox" id="f_4_' + am + '" name="f_4_' + am + '" value="' + am + '" onclick=\"setAmenitis(' + am + ',this)\"  /> <label for="f_4_' + am + '" class="clip-' + AmClass + '">' + text + '</label>                </div>'; if (am == 7) html7 = tmp; else html += tmp }); html += html7; $('#Amenitis').html(html) } function Amenitis(data) { var html = ""; jQuery.each(data, function(i, a) { switch (a) { case 1: html += '<li class="clip-conference" title="' + tr_centrum_konf + '"><span class="alt">' + tr_centrum_konf + '</span></li>'; break; case 0: html += '<li class="clip-internet" title="' + tr_internet + '"><span class="alt">' + tr_internet + '</span></li>'; break; case 3: html += '<li class="clip-pool" title="' + tr_basen + '"><span class="alt">' + tr_basen + '</span></li>'; break; case 2: html += '<li class="clip-fit-spa" title="' + tr_fitness_lub_spa + '"><span class="alt">' + tr_fitness_lub_spa + '</span></li>'; break; case 8: html += '<li class="clip-conditioning" title="' + tr_klimatyzacja + '"><span class="alt">' + tr_klimatyzacja + '</span></li>'; break; case 6: html += '<li class="clip-animals" title="' + tr_akceptujemy_zwierz + '"><span class="alt">' + tr_akceptujemy_zwierz + '</span></li>'; break; case 5: html += '<li class="clip-restaurant" title="' + tr_restauracja + '"><span class="alt">' + tr_restauracja + '</span></li>'; break; case 4: html += '<li class="clip-parking" title="' + tr_parking + '"><span class="alt">' + tr_parking + '</span></li>'; break; case 7: html += '<li class="clip-handicapped" title="' + tr_udogodnienia_dla_niepel + '"><span class="alt">' + tr_udogodnienia_dla_niepel + '</span></li>'; break } }); return html }; function Zaok2(liczba) { var pp = 10; liczba = liczba * pp; var wynik = Math.round(liczba) / pp; return wynik } function JumFind() { Jump(); $("#inp_flight_date").focus() } function Jump() { $('html,body').animate({ scrollTop: 0 }, 1000) }; function clone(obj) { if (obj == null || typeof (obj) != 'object') return obj; var temp = new obj.constructor(); for (var key in obj) temp[key] = clone(obj[key]); return temp } var inp_back_date_val = ''; var isValidStart = false; $(document).ready(function() { $.facebox.settings.closeImage = 'http://www.tm.turigo.pl/pt/' + trCodeLang + '/img/facebox/closelabel.gif'; jQuery('#UpDate').center(); $('a[rel*=facebox]').facebox(); assignCommonHandlers(); $("#inp_flight_date").datepicker({ regional: "pl", numberOfMonths: 2, firstDay: 1, duration: "fast", showButtonPanel: true, closeText: trzamknij, minDate: minDateStart, monthNames: trMonthNames, dayNames: trDayNames, dayNamesMin: trDayNamesMin, maxDate: "+12m", dateFormat: "dd.mm.yy", altField: '#inp_flight_alt', altFormat: 'DD', onSelect: function(dateText) { var dstart = $("#inp_flight_date").datepicker('getDate'); var dend = $("#inp_back_date").datepicker('getDate'); $("#inp_back_date").datepicker('getSetDateStart', dstart); if (!(dstart < dend)) { dstart.setDate(dstart.getDate() + 2); $("#inp_back_date").datepicker('setDate', dstart) } if (isValidStart) CheckDate() } }); $("#inp_back_date").datepicker({ regional: "pl", startDate: dateFrom, numberOfMonths: 2, firstDay: 1, duration: "fast", showButtonPanel: true, closeText: trzamknij, minDate: minDateStart, monthNames: trMonthNames, dayNames: trDayNames, dayNamesMin: trDayNamesMin, maxDate: "+12m", dateFormat: "dd.mm.yy", altField: '#inp_back_alt', altFormat: 'DD', onSelect: function(dateText) { if (isValidStart) CheckDate() } }) }); function CheckDate() { var _stan = true; if ($("#inp_back_date")[0].value == "") { $("#inp_back_date").addClass(" f-not-valid"); _stan = false } if ($("#inp_flight_date")[0].value == "") { $("#inp_flight_date").addClass(" f-not-valid"); _stan = false } return _stan }
