var xmlreqs = new Array(); var xmlreqCount = 0; var ajaxWaitingElement; var ajaxWaitType = 'prefix'; function ajax_do (element, functie, params, object, waitingAnimation, doUrchinTracker) { if(waitingAnimation) { if(waitingAnimation == true) { startWaiting(element); } else { startWaiting(waitingAnimation, true); } } else { startWaiting(); } var query = 'object=' + object + '&element=' + element + '&functie=' + functie + '&' + params; var url = "/_BWF/ajax/ajax.php"; doXmlHttpRequest(url, query, doUrchinTracker, element); } function ajax_do_ssl (element, functie, params, object, waitingAnimation, doUrchinTracker) { if(waitingAnimation) { if(waitingAnimation == true) { startWaiting(element); } else { startWaiting(waitingAnimation, true); } } else { startWaiting(); } var query = 'object=' + object + '&element=' + element + '&functie=' + functie + '&' + params; var url = "/_BWF/ajax/ajax.php"; doXmlHttpRequest(url, query, doUrchinTracker, element); } /* Do an actual ajax request (used by ajax_do) functions manages an array of xmlHtpp objects, which is needed when multiple ajax requests overlap the xmlHtpp objects in array are recycled after they have returned their ajax data (so size of array will be max simultanious ajax calls since page refresh) */ function doXmlHttpRequest(url, query, doUrchinTracker, element) { var pos = -1; for (var i=0; i 0) { xmlreqs[pos].doUrchinTracker = true; } else { delete xmlreqs[pos].doUrchinTracker; } if(element) { xmlreqs[pos].element = element; } xmlreqs[pos].xmlhttp.open("POST", url, true); xmlreqs[pos].xmlhttp.onreadystatechange = function() {handleStateChange(pos)}; xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlreqs[pos].xmlhttp.send(query); xmlreqCount++; } } /* create an ajax data socket dependent on browser (used by doXmlHttpRequest) */ function createXMLHttpRequest(freed) { this.freed = freed; this.xmlhttp = false; try{ /* Opera 8.0+, Firefox, Safari */ this.xmlhttp = new XMLHttpRequest(); } catch (e){ /* Internet Explorer Browsers */ try{ this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ /* Ajax is not supported */ alert("Your browser does not support Ajax"); return false; } } } } /* this function is called when the ajax call returns */ function handleStateChange(pos) { if(xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4 && xmlreqs[pos].xmlhttp.status == 200) { finishWaiting(); eval(xmlreqs[pos].xmlhttp.responseText); if(xmlreqs[pos].doUrchinTracker) { var tracker = location.pathname+location.search+"_ajax" + (location.hash).replace(/\//g,'_').replace(/#/,'_'); tracker = tracker; urchinTracker(tracker); } xmlreqs[pos].freed = 1; if(xmlreqs[pos].element) { var div = document.getElementById(xmlreqs[pos].element); var x = div.getElementsByTagName("script"); for(var i=0;i