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.