-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathajax2.js
109 lines (109 loc) · 3.88 KB
/
ajax2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
var currentToken = '';
var tipsField = '';
const COMPLETE = 4;
//------------------------------------------------------------------
function postForm(token) {
serverSideURL = "actions/"+token+".php";
var oForm = document.forms[token];
var tipField = document.getElementById(tipsField);
if (oForm == undefined){
if (tipField == undefined)
alert('øèáî÷êà âûøëà!');
else
tipField.innerHTML = 'øèáî÷êà âûøëà!';
return;
}
if (!couldProcess && httpRequester) {
if (tipField != undefined)
tipField.innerHTML = '<img src=images/busy.gif>';
httpRequester.open("POST", serverSideURL, true);
//-- send data ----------------------
//var formData = new FormData(oForm);
//httpRequester.send(formData);
//-- send form ----------------------
var sBody = getRequestBody(oForm);
httpRequester.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
httpRequester.setRequestHeader("Content-length", sBody.length);
httpRequester.setRequestHeader("Connection", "close");
httpRequester.send(sBody);
//----------------------------------
httpRequester.onreadystatechange = postFormResponse;
couldProcess = true;
currentToken = token;
}
}
function sendSubcribe(){
tipsField = "ajaxmescreate_subscribe";
postForm("create_subscribe");
}
function setActiveSubcribe(){
tipsField = "ajaxmescreate_subscribe";
postForm("setactive_subscribe");
}
function trim(str, chars) {
return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
function rtrim(str, chars) {
chars = chars || "\\s";
return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function addTabRow(tabId,cellContent){
var tab = document.getElementById(tabId);
var row = tab.insertRow(tab.rows.length);
var newCell = row.insertCell(0);
newCell.innerHTML = cellContent;
/*
rowValues = ['first cell','cell 2','another cell'];
for (var i = 0, ii = rowValues.length; i < ii; i++) {
newCell = row.insertCell(i);
newCell.innerHTML = rowValues[i];
//or
newCell.appendChild(document.createTextNode(rowValues[i]));
}
*/
}
//------------------------------------------------------------------
function postFormResponse() {
if ( httpRequester.readyState == COMPLETE ) {
couldProcess = false;
var token = currentToken;
var tipField = document.getElementById(tipsField);
currentToken = '';
if ( httpRequester.status == 200) {
var respText = httpRequester.responseText;
var respResult;
try{
respResult = JSON.parse(respText);
if (!respResult.success){
alert(respResult.message);
if (tipField!=undefined) tipField.innerHTML = respResult.message;
} else {
token = respResult.token;
switch (token){
case 'create_subscribe': if (tipField!=undefined) tipField.innerHTML = respResult.message;
addTabRow("subscribe-grid","<input type=radio name=\"active_subscribe\" id=\""+respResult.code+"\" value=\""+respResult.code+"\"/><span>["+respResult.code+"] "+respResult.name+"</span>");
break;
case 'setactive_subscribe': if (tipField!=undefined) tipField.innerHTML = respResult.message;
items = document.getElementsByTagName('span');
for (var i = 0, ii = items.length; i < ii; i++) {
if (ltrim(items[i].className,' ') == 'activeSubscr') switchClass(items[i], 'activeSubscr');
}
switchClass(document.getElementById(respResult.code), 'activeSubscr');
break;
default: alert(token+"-"+respResult.message);
}
}
} catch (e) {
console.error("Parsing error:", e);
if (tipField!=undefined) tipField.innerHTML = 'Serverside error: invalid response!';
}
} else {
alert('Error. Code: ' + httpRequester.status);
if (tipField!=undefined) tipField.innerHTML = '';
}
}
}