var xhr = false; var dgbcnt = 0; // preload loading image loading1 = new Image(); loading1.src = "http://www.pwmwa.com/test/gfx/loading1.gif"; function dbg(message){ dgbcnt ++; //document.getElementById('debug').innerHTML += dgbcnt+': '+message+'
\n'; } function XHRInit() { dbg('XHRInit called...'); if(xhr){ return true; } else { req = false; // xhr object not ActiveX (IE 7 will use object not ActiveX, could both) if(window.XMLHttpRequest) { dbg('XHR native support detected...'); try { xhr = new XMLHttpRequest(); dbg('XHR object created'); } catch(e) { xhr = false; dbg('ERROR creating XHR object'); } // IE ActiveX version } else if(window.ActiveXObject) { dbg('XHR ActiveXObject support detected...'); try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); dbg('XHR using Msxml2.XMLHTTP'); } catch(e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); dbg('XHR using Microsoft.XMLHTTP'); } catch(e) { xhr = false; dbg('ERROR creating XHR object'); } } } else { dbg('ERROR no XHR support at all detected'); xhr = false; return false; } return true; } } function SubmitComment(url, event_id, returnvalue){ // fill details div return XHRrequest(url, 'commentform_'+event_id, false, returnvalue); } function CloseDetails(responsediv_id){ // hide details div document.getElementById('eventdetailexpand_'+responsediv_id).style.display = 'none'; // show summary div document.getElementById('eventdetails_'+responsediv_id).style.display = 'block'; return false; } function ShowDetails(url, responsediv_id, addcontent, returnvalue){ // hide summary div document.getElementById('eventdetails_'+responsediv_id).style.display = 'none'; // show details div document.getElementById('eventdetailexpand_'+responsediv_id).style.display = 'block'; // put loading message into div document.getElementById('eventdetailexpand_'+responsediv_id).innerHTML = 'loading... loading details...
'; // fill details div return XHRrequest(url, 'eventdetailexpand_'+responsediv_id, addcontent, returnvalue); } function XHRrequest(url, responsediv, addcontent, returnvalue){ dbg('starting XHRrequest...'); // is the xhr object there? if(XHRInit()){ dbg('XHR initialized successfully'); // let's make POST requests xhr.open('POST', url, true); dbg('xhr.open done'); // the web service requires the request to be a real XML document //xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8'); xhr.setRequestHeader('Content-Type', 'text/html; charset=utf-8'); dbg('xhr.setRequestHeader(1) done'); // send SOAPAction header to invoke the webservice //xhr.setRequestHeader('SOAPAction', 'http://webservice_url'); //dbg('xhr.setRequestHeader(2) done'); // define the callback, called when state of xhr object changes xhr.onreadystatechange = function(){ if (xhr.readyState == 4){ ProcessXHR(xhr, responsediv, addcontent); } } dbg('xhr callback set'); // finally send the HTTP request xhr.send(''); } return returnvalue; } function ProcessXHR(xmlHttpReq, responsediv, addcontent){ dbg('ProcessXHR() called'); var responseText = ''; // Fetch the values from our response XML /* var responseTag = xmlHttpReq.responseXML.getElementsByTagName('ResponseText'); dbg('length of response tag: '+responseTag.length); // get tag content if(responseTag.length){ responseText = responseTag[0].firstChild.data; dbg('response tag value = '+responseText); } else { responseText = 'no content'; } */ // pure HTML version var responseText = xmlHttpReq.responseText; // fill div "result" with the response value if(addcontent){ document.getElementById(responsediv).innerHTML += responseText; } else { document.getElementById(responsediv).innerHTML = responseText; } } function OverlayOpen(title, url, message){ if(message != ''){ document.getElementById('overlaytitle').innerHTML = title; } else { document.getElementById('overlaytitle').innerHTML = 'System Message'; } if(url != ''){ document.getElementById('overlaycontent').innerHTML = '
loading...
loading...
'; XHRrequest(url, 'overlaycontent', false); } else { document.getElementById('overlaycontent').innerHTML = message; } document.getElementById('overlaybutton').innerHTML = 'close message'; document.getElementById('overlay').style.display = 'block'; document.getElementById('overlaybutton').focus(); document.getElementById('footlink').style.display = 'none'; } function OverlayClose(footlinkcontent){ document.getElementById('overlay').style.display = 'none'; document.getElementById('footlink').style.display = 'block'; }