if(typeof Hafas == "undefined") var Hafas = { Config:{}, Texts:{} }; var SimpleWidget = { suggestCount:0, init: function() { this.createContext(); this.loadJS(); this.addCSS(); }, createContext:function() { Hafas.Config.gUrlAjaxGetStop = "http://ecopassenger.hafas.de/bin/ajax-getstop.exe/3ny?tpl=suggest2json&"; Hafas.Config.gUrlScriptPath = "http://ecopassenger.hafas.de/hafas-res/js/"; Hafas.Config.gUrlCSSPath = "http://ecopassenger.hafas.de/hafas-res/css/"; Hafas.Config.gUrlCSSPath = "http://ecopassenger.hafas.de/hafas-res/css/"; Hafas.Config.gImagePath = "http://ecopassenger.hafas.de/hafas-res/img/"; Hafas.Texts.tSuggestHeader_suggest = ""; }, loadJS: function() { var simpleSuggestJS = document.createElement("script"); simpleSuggestJS.type = "text/javascript"; simpleSuggestJS.src = Hafas.Config.gUrlScriptPath+"hafasLib/SimpleSuggest.js"; simpleSuggestJS.onload = this.createSuggests.bind(this); document.getElementsByTagName('head')[0].appendChild(simpleSuggestJS); }, addCSS: function() { var simpleSuggestCSS = document.createElement("link"); simpleSuggestCSS.type = "text/css"; simpleSuggestCSS.rel = "stylesheet"; simpleSuggestCSS.href = Hafas.Config.gUrlCSSPath+"hafas_default_suggest.css"; document.getElementsByTagName('head')[0].appendChild(simpleSuggestCSS); var simpleSuggestImageCSS = document.createElement("style"); simpleSuggestImageCSS.type = "text/css"; var cssText = ""+ ".suggestAchor .suggest .item .hfs-icon-suggest-station { background:url(http://ecopassenger.hafas.de/hafas-res/img/icons/suggest_stop.png); }"; try{ simpleSuggestImageCSS.innerHTML = cssText; } catch(e) { simpleSuggestImageCSS.cssText = cssText; // IE8 } document.getElementsByTagName('head')[0].appendChild(simpleSuggestImageCSS); }, createSuggests: function() { if(typeof SimpleLocSuggest == "undefined") { return; } var suggestList = []; var elList = document.getElementsByTagName('input'); for (var e=0 ; e < elList.length ; e++) { if (elList[e].className.match(/HafasSuggest/)) { suggestList.push(elList[e]); } } for(var i = 0; i < suggestList.length; i++) { var suggestInput = suggestList[i]; // ############ Korrektur der Input Felder - ANFANG ############# //Id setzten falls keine gesetzt if(suggestInput.id == "") suggestInput.id = "Hafas_Suggest_"+this.suggestCount; //Hidden field fuer TripID setzen falls keines vorhanden if(document.getElementById(suggestInput.id+"ID") == null) { var idInput = document.createElement("input"); idInput.type = "hidden"; idInput.id = suggestInput.id+"ID"; if((suggestInput.name == "S") || (suggestInput.name == "REQ0JourneyStopsS0G")) idInput.name = "REQ0JourneyStopsS0ID"; else idInput.name = "REQ0JourneyStopsZ0ID"; suggestInput.parentNode.appendChild(idInput); } // ############ Korrektur der Input Felder - ENDE ############# new SimpleLocSuggest(suggestInput, { useJSONP:true, locType:1 }); this.suggestCount++; } } } // ############################################# IE Extrawurst - ANFANG ########################################### // Fuer IE8 if (!Function.prototype.bind) { Function.prototype.bind = function(oThis) { if (typeof this !== 'function') { // closest thing possible to the ECMAScript 5 // internal IsCallable function throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); } var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, fNOP = function() {}, fBound = function() { return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments))); }; fNOP.prototype = this.prototype; fBound.prototype = new fNOP(); return fBound; }; } // Trim Fuktion fuer IE8 ( Wird im SimpleSuggest genutzt) if(typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); } } // ############################################# IE Extrawurst - ENDE ########################################### SimpleWidget.init();