window.onload = function() { window.kwdSearchResultCallback = {}; if(typeof(kwdSearchParams) === "undefined" ) { window.kwdSearchParams = {}; } if(typeof(kwdSearchParams['global']) === "undefined" ) { window.kwdSearchParams['global'] = {}; } for(var i=0; i < 10; i++) { var elementId = 'kwdsearch-'+i; var element = document.getElementById(elementId); if(element == null) { continue; } if(!kwdSearchParams.hasOwnProperty(elementId)) { kwdSearchParams[elementId] = {}; } var keywordsTmp = element.textContent; var arrKeywords = keywordsTmp.split(','); // select a random entry var keyword = arrKeywords[Math.floor(Math.random()*arrKeywords.length)]; element.innerHTML = 'Loading search results...'; var requestUrl = 'http://erkaeltung.de/search/search.php?keyword='+escape(keyword)+'&displayFormat=js&ajax=1&elementId='+elementId; for(property in kwdSearchParams[elementId]) { if(property === 'displayFormat' || property == 'displayInline') { continue; } requestUrl = requestUrl+'&'+property+'='+kwdSearchParams[elementId][property]; } kwdSearchMakeRequest(requestUrl, element); } function kwdSearchMakeRequest(url, element) { var head = document.getElementsByTagName("head")[0] || document.documentElement; var additionalScript = document.createElement('script'); additionalScript.setAttribute('src', url); var done = false; // load callback after execution additionalScript.onload = additionalScript.onreadystatechange = function() { if ( !done && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") ) { done = true; // Handle memory leak in IE additionalScript.onload = additionalScript.onreadystatechange = null; if ( head && additionalScript.parentNode ) { head.removeChild( additionalScript ); } var elementId = element.getAttribute('id'); if(typeof(kwdSearchResultCallback[elementId]) !== 'undefined') { // callback kwdSearchResultCallback[elementId](); } else if(typeof(kwdSearchParams[elementId]['callbackOnFail']) !== 'undefined') { kwdSearchParams[elementId]['callbackOnFail'](element, kwdSearchResults[elementId]); } } } // Use insertBefore instead of appendChild to circumvent an IE6 bug. // This arises when a base node is used (#2709 and #4378). head.insertBefore( additionalScript, head.firstChild ); } };