PageSourceSearch

https://alstertouristik.de/wp-content/plugins/travelmanager-buchun…/js/fahrtfinderv2.js?ver=1790845147

js alstertouristik.de collected 2026-10-02 10:30:42 UTC 11,110 bytes, 274 lines download raw bytes

1/*
2var dialoge={};
3jQuery(document).ready(function( $ ) {
4
5    if(jQuery("#tm_dialoge").first().length>0){
6        dialoge = JSON.parse(decodeURIComponent(jQuery("#tm_dialoge").first().val()));
7    }
8});
9*/
10
11
12
13function TMfahrtfinder2_set_zielstation(obj, zielstation_id){
14    var dialoge = TMdialog(obj);
15    var vContainer = jQuery(obj).closest(".fahrtfinder2_container");
16    jQuery(vContainer).find(".stopstation select").addClass("hide");
17    jQuery(vContainer).find(".stopstation option").remove();
18    var zielstationen = JSON.parse(decodeURIComponent(jQuery(obj).find("option:selected").attr("zielstationen")));
19    jQuery(vContainer).find(".stopstation select").append("<option value='0'> - - "+dialoge["zielstation"]+" - -</option>");
20    if(zielstationen.length>0){
21        jQuery.each(zielstationen,function(){
22            var station_id = this["station_id"];
23            var station = this["bezeichnung"];
24            var selected = "";
25
26            if(zielstation_id !==undefined && parseInt(station_id) == parseInt(zielstation_id)){
27                selected = " selected";
28            }
29            jQuery(vContainer).find(".stopstation select").append("<option value='"+station_id+"'"+selected+">"+station+"</option>");
30        });
31
32        jQuery(vContainer).find(".stopstation select").removeClass("hide");
33    }
34}
35
36function TMfahrtfinder2_finden(obj,showWaitingScreen){
37    var dialoge = TMdialog(obj);
38    if(jQuery(obj).hasClass("fahrtfinder2_container")){
39        var container = jQuery(obj);
40    }
41    else{
42        var container = jQuery(obj).closest(".fahrtfinder2_container");
43    }
44    var vHash=jQuery(container).attr("hash2");
45
46    if(showWaitingScreen === undefined){
47        showWaitingScreen = true;
48    }
49
50    console.log("Finding for "+vHash);
51
52    //Zielobjekt für die Ergebnisausgabe
53    var target=jQuery(container).attr("targetobj");
54    if(target!==""){
55        if(jQuery("#"+target).length==0){
56            alert(TMmodern(obj) ? dialoge.target_missing : "Target Object "+target+" does not exist. Please check your configuration");
57            return;
58        }
59        else{
60            jQuery("#"+target).wrap("<div class='tm_plugin'/>");
61            if (TMmodern(obj)) {
62                var root = jQuery("#"+target).closest(".tm_plugin");
63                root.attr({"lang":TMlanguage(obj), "data-tm-i18n":"1"});
64                root.find("[id=tm_dialoge]").remove();
65                root.append(TMroot(obj).find("[id=tm_dialoge]").first().clone());
66            }
67            jQuery("#"+target).addClass("fahrtfinder2_result_container");
68            jQuery("#"+target).attr("hash2",vHash);
69        }
70    }
71
72    var data = {};
73    data["station_id"] = jQuery(container).find("[name='station_id']").val();
74    data["station_stop_id"] = 0;
75    if(jQuery(container).find("[name='stop_station_id']").length>0){
76        data["station_stop_id"] = jQuery(container).find("[name='stop_station_id']").val();
77    }
78    data["hash"]=jQuery(container).attr("hash");
79    data['action'] = 'travelmanager_fahrtfinderv2_get_relations';
80    data['linie_typ_id'] = jQuery(container).attr("linie_typ_id");
81    data['signets'] = jQuery(container).attr("signets");
82    data['linien_ids'] = jQuery(container).attr("linien_ids");
83    data['max'] = jQuery(container).attr("max");
84    data['vermittler_id'] = jQuery(container).attr("ref");
85    data['lang'] = TMlanguage(obj);
86    data['datum'] = jQuery(container).find("[name='datum_abfahrt']").val();
87    data['rand'] = Math.random();
88    data['3days'] = jQuery(container).find("[name='3days']:checked").length>0?1:0;
89
90    if(showWaitingScreen){
91        jQuery.blockUI({ message: dialoge["inhalt_laden"]+'...'});
92    }
93
94    myTimeout = setTimeout(function(){
95        TMpost(obj, data, function(response) {
96
97            jQuery(".fahrtfinder2_result_container[hash2='"+vHash+"']").html("").removeClass("fehler");
98
99            if(jQuery(response.result).length>0){
100
101                var results = response.result;
102
103                //Kategorien bestimmen
104                var kategorien = {};
105                for (result of results) {
106                    if(result.linie_typ !== undefined){
107                        kategorien[result.linie_typ_id]=result.linie_typ;
108                    }
109                }
110
111                //Tabs
112                if(Object.keys(kategorien).length>1 && jQuery(container).hasClass("signet")==false){
113                    var tabsContainer = jQuery("<div class='tabscontainer' hash2='"+vHash+"'/>");
114                    var ul = jQuery("<ul/>");
115                    for (kategorie_id in kategorien){
116                        var li = jQuery("<li><a href='#tabs-kategorie-id-"+kategorie_id+"-"+vHash+"'>"+kategorien[kategorie_id]+"</a></li>");
117                        jQuery(ul).append(li);
118                    }
119                    jQuery(tabsContainer).append(ul);
120
121                    for (kategorie_id in kategorien){
122                        var div = jQuery("<div id='tabs-kategorie-id-"+kategorie_id+"-"+vHash+"' class='fahrtfinder2_tabs_container' hash2='"+vHash+"'/>");
123                        for (row of results) {
124                            if(row.linie_typ_id == kategorie_id){
125                                jQuery(div).append(TMfahrtfinder2_finden_cellbuilder(row, container));
126                            }
127                        }
128                        jQuery(tabsContainer).append(div);
129                    }
130                    jQuery(".fahrtfinder2_result_container[hash2='"+vHash+"']").append(tabsContainer);
131                    jQuery(tabsContainer).tabs();
132                }
133                //Keine Tabs - Alles in einen Container
134                else{
135                    jQuery(".fahrtfinder2_result_container[hash2='"+vHash+"']").addClass("fahrtfinder2_tabs_container");
136                    for (row of results) {
137                        jQuery(".fahrtfinder2_result_container[hash2='"+vHash+"']").append(TMfahrtfinder2_finden_cellbuilder(row, container));
138                    }
139                }
140
141                //Repsonsive Ansicht
142                jQuery.each(jQuery(".fahrtfinder2_tabs_container[hash2='"+vHash+"']"),function(){
143                    var obj=jQuery(this);
144                    var columns = jQuery(this).find(".column").clone();
145                    jQuery(obj).find(".column").addClass("tm-show-medium-up");
146
147                    //Karussel aufbauen
148                    var slider = jQuery("<div class='flexslider carousel'/>");
149                    var ul = jQuery('<ul class="slides"></ul>').appendTo(jQuery(slider));
150
151                    // Jedes geklonte Element in ein <li> Element packen und zum <ul> hinzufügen
152                    jQuery(columns).each(function() {
153                        var li = jQuery('<li></li>');
154                        jQuery(li).append(jQuery(this));
155                        jQuery(ul).append(li);
156                    });
157
158                    jQuery(slider).addClass("tm-show-small");
159
160                    //Flexslider initialisieren
161                    try{
162                        jQuery(slider).flexslider({
163                            animation: "slide",
164                            prevText:"",
165                            animationLoop: false,
166                            nextText:"",
167                            controlNav: false,
168                            slideshow: false
169                        });
170                    }
171                    catch (e) {}
172
173                    jQuery(obj).append(jQuery(slider));
174                });
175            }
176            else{
177                jQuery(".fahrtfinder2_result_container[hash2='"+vHash+"']").html("<div class='fehler'>"+dialoge["no_result_was_found"]+"</div>");
178            }
179
180            //Div einblenden
181            if(jQuery(obj).find(".qfinder").length>0){
182                jQuery("#ihre_touren").removeClass("hide");
183            }
184
185            jQuery.unblockUI();
186        });
187
188    }, 20);
189}
190
191function TMfahrtfinder2_finden_cellbuilder(row, container){
192    var dialoge = TMdialog(container);
193    var source = TMmodern(container) ? jQuery(container) : jQuery(".fahrtfinder2_container");
194    var cell=jQuery("<div class='column'></div>");
195
196    //Bild
197    var bildContainer = jQuery("<div class='bildcontainer'></div>");
198    if(jQuery(row.files).length>0){
199        var bild = jQuery("<img src='"+row.files[0]["thumbnail"]+"'/>");
200        jQuery(bildContainer).append(bild);
201    }
202    else{
203        jQuery(bildContainer).html(dialoge["kein_bild"]);
204    }
205    jQuery(cell).append(bildContainer);
206
207    //Headline
208    var cellContent=jQuery("<div class='container_content'></div>");
209    jQuery(cellContent).append(jQuery("<h2 class='tm_fahrtfinderv2_container_headline'>"+row["linie"]+"</h2>"));
210
211    //Subheadline
212    var subheadline = row["hafen_start"];
213    if(row["hafen_start"]!=row["hafen_stop"]){
214        subheadline+= " - "+row["hafen_stop"];
215    }
216    jQuery(cellContent).append(jQuery("<h2 class='tm_fahrtfinderv2_container_subheadline'>"+subheadline+"</h2>"));
217
218    //Beschreibung
219    var beschreibung = row["beschreibung"];
220    if(beschreibung==""){
221        beschreibung = dialoge["no_infotext"];
222    }
223    jQuery(cellContent).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung'>"+beschreibung+"</div>"));
224    jQuery(cell).append(cellContent);
225
226    //Schiff
227    if(row["schiff"]!=="" && row["schiff"] != null && row["schiff"] !== undefined){
228        jQuery(cell).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung_extra schiff'>"+row["schiff"]+"</div>"));
229    }
230
231    //Uhrzeiten
232    if(row["abfahrtzeiten"].length>0){
233        var abfahrtzeiten = row["abfahrtzeiten"].slice();
234        var abfahrtzeitenString = abfahrtzeiten.join(" | ");
235        jQuery(cell).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung_extra abfahrtzeiten'><span class='dialog_zeiten'>"+dialoge["zeiten"]+":</span> "+abfahrtzeitenString+"</div>"));
236    }
237
238    //Fahrtdauer
239    var beschreibung = row["fahrtdauer"];
240    if(beschreibung!=""){
241        jQuery(cell).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung_extra fahrtdauer'>"+dialoge["fahrtdauer"]+": "+beschreibung+"</div>"));
242    }
243
244    //Deals
245    var deals = row["beschreibung_extra"];
246    if(deals!=""){
247        jQuery(cell).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung_extra deals'>"+deals+"</div>"));
248    }
249
250    //Buchen Button
251    var vAddTarget="";
252    if(source.attr("targeturl")!=""){
253        vAddTarget = source.attr("targeturl");
254    }
255
256    var viewDate = "";
257    if(row["abfahrtzeiten"].length>0){
258        viewDate= row["datum"];
259    }
260
261    //Vermittler - ID
262    var ref = source.first().attr("ref");
263
264    var zielseite = vAddTarget+"?relation="+row["external_product_key"]+"&date="+viewDate+"&ref="+ref+"#booknow";
265    var link = jQuery("<div class='buchen_button'><a href='"+zielseite+"'>"+dialoge["jetzt_buchen_mehr_infos"]+"</a></div>");
266    jQuery(cell).append(link);
267
268    //Trusted Shops
269    var rating_code = row["rating_code"];
270    if(rating_code!=""){
271        jQuery(cell).append(jQuery("<div class='tm_fahrtfinderv2_beschreibung_rating'>"+rating_code+"</div>"));
272    }
273    return cell;
274}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.