Mercurial > hg > chronicle
diff themes/blog.mail-scanning.com/ajax.js @ 269:53c79b52862a
Added
author | Steve Kemp <steve@steve.org.uk> |
---|---|
date | Mon, 04 Aug 2008 20:04:15 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/blog.mail-scanning.com/ajax.js Mon Aug 04 20:04:15 2008 +0100 @@ -0,0 +1,122 @@ +// -*-mode: C++; style: K&R; c-basic-offset: 4 ; -*- */ +// +// Simple collection of Javascript for Ajax form submission. +// + + + + +// +// Get an XMLHTTPRequest object. +// +function getXMLHTTPRequest() +{ + req = false; + if(window.XMLHttpRequest) + { + try + { + req = new XMLHttpRequest(); + } + catch(e) + { + req = false; + } + } + else if(window.ActiveXObject) + { + try + { + req = new ActiveXObject("Msxml2.XMLHTTP"); + } + catch(e) + { + try + { + req = new ActiveXObject("Microsoft.XMLHTTP"); + } + catch(e) + { + req = false; + } + } + } + + return( req ); +} + + +// +// Submit the comment. +// +function submitComment() +{ + showProgress(); + + var xhr = getXMLHTTPRequest(); + if(! xhr ) + { + hideProgress(); + return; + } + + xhr.onreadystatechange = function() + { + if(xhr.readyState == 4) + { + if(xhr.status == 200) + { + var o = document.getElementById( "output" ); + o.innerHTML = xhr.responseText; + } + else + { + var o = document.getElementById( "output" ); + o.innerHTML = "Failed HTTP code " + xhr.status + " " + xhr.responseText; + } + + hideProgress(); + } + }; + + data = 'ajax=1'; + data = data + '&id=' + escape(document.forms[0].id.value ); + data = data + '&captcha=' + escape( document.forms[0].captcha.value ); + data = data + '&id=' + escape(document.forms[0].id.value ); + data = data + '&captcha=' + escape( document.forms[0].captcha.value ); + data = data + '&name=' + escape( document.forms[0].name.value ); + data = data + '&mail=' + escape( document.forms[0].mail.value ); + data = data + '&body=' + escape( document.forms[0].body.value ); + + // + // Make the request + // + xhr.open("POST", "/cgi-bin/comments.cgi", true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(data); +} + + +// +// Show our progress marker. +// +function showProgress() +{ + var i = document.getElementById( "progress" ); + if ( i ) + { + i.style.display = 'block'; + } +} + +// +// Hide our progress marker. +// +function hideProgress() +{ + var i = document.getElementById( "progress" ); + if ( i ) + { + i.style.display = 'none'; + } +}