1a9ee4faa197104bdbb1ff7bb6bb171a78c9f36a
[lhc/web/wiklou.git] / skins / common / preview.js
1 // Live preview
2
3 function openXMLHttpRequest() {
4 if( window.XMLHttpRequest ) {
5 return new XMLHttpRequest();
6 } else if( window.ActiveXObject ) {
7 return new ActiveXObject("Microsoft.XMLHTTP");
8 } else {
9 return null;
10 }
11 }
12
13 /**
14 * Returns true if could open the request,
15 * false otherwise (eg no browser support).
16 */
17 function livePreview(target, text, postUrl) {
18 prevTarget = target;
19 if( !target ) {
20 window.alert('crash and burn');
21 }
22 prevReq = openXMLHttpRequest();
23 if( !prevReq ) return false;
24
25 prevReq.onreadystatechange = updatePreviewText;
26 prevReq.open("POST", postUrl, true);
27
28 var postData = 'wpTextbox1=' + encodeURIComponent(text);
29 prevReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
30 prevReq.send(postData);
31 return true;
32 }
33
34 function updatePreviewText() {
35 if( prevReq.readyState != 4 ) {
36 return;
37 }
38 if( prevReq.status != 200 ) {
39 window.alert('Failed to connect: ' + prevReq.status +
40 ' "' + prevReq.statusText + '"');
41 return;
42 }
43 prevTarget.innerHTML = prevReq.responseText;
44 }