annotate themes/blog.mail-scanning.com/ajax.js @ 307:fe474f3ed3e5 default tip

Making archive pages have the same layout as the index
author Dominic Cleal <dominic@computerkb.co.uk>
date Mon, 22 Dec 2008 12:08:20 +0000
parents 53c79b52862a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
269
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
1 // -*-mode: C++; style: K&R; c-basic-offset: 4 ; -*- */
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
2 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
3 // Simple collection of Javascript for Ajax form submission.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
4 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
5
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
6
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
7
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
8
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
9 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
10 // Get an XMLHTTPRequest object.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
11 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
12 function getXMLHTTPRequest()
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
13 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
14 req = false;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
15 if(window.XMLHttpRequest)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
16 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
17 try
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
18 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
19 req = new XMLHttpRequest();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
20 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
21 catch(e)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
22 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
23 req = false;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
24 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
25 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
26 else if(window.ActiveXObject)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
27 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
28 try
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
29 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
30 req = new ActiveXObject("Msxml2.XMLHTTP");
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
31 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
32 catch(e)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
33 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
34 try
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
35 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
36 req = new ActiveXObject("Microsoft.XMLHTTP");
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
37 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
38 catch(e)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
39 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
40 req = false;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
41 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
42 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
43 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
44
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
45 return( req );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
46 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
47
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
48
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
49 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
50 // Submit the comment.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
51 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
52 function submitComment()
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
53 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
54 showProgress();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
55
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
56 var xhr = getXMLHTTPRequest();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
57 if(! xhr )
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
58 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
59 hideProgress();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
60 return;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
61 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
62
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
63 xhr.onreadystatechange = function()
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
64 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
65 if(xhr.readyState == 4)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
66 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67 if(xhr.status == 200)
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
68 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
69 var o = document.getElementById( "output" );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
70 o.innerHTML = xhr.responseText;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
71 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
72 else
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
73 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
74 var o = document.getElementById( "output" );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
75 o.innerHTML = "Failed HTTP code " + xhr.status + " " + xhr.responseText;
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
77
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
78 hideProgress();
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
79 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80 };
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82 data = 'ajax=1';
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 data = data + '&id=' + escape(document.forms[0].id.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
84 data = data + '&captcha=' + escape( document.forms[0].captcha.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
85 data = data + '&id=' + escape(document.forms[0].id.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
86 data = data + '&captcha=' + escape( document.forms[0].captcha.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
87 data = data + '&name=' + escape( document.forms[0].name.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
88 data = data + '&mail=' + escape( document.forms[0].mail.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
89 data = data + '&body=' + escape( document.forms[0].body.value );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
90
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
91 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
92 // Make the request
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
93 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
94 xhr.open("POST", "/cgi-bin/comments.cgi", true);
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
95 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
96 xhr.send(data);
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
97 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
98
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
99
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
100 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
101 // Show our progress marker.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
102 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
103 function showProgress()
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
104 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
105 var i = document.getElementById( "progress" );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
106 if ( i )
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
107 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
108 i.style.display = 'block';
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
109 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
110 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
111
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
112 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
113 // Hide our progress marker.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
114 //
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
115 function hideProgress()
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
116 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
117 var i = document.getElementById( "progress" );
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
118 if ( i )
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
119 {
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
120 i.style.display = 'none';
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
121 }
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
122 }