Change to .NET 3.5

This commit is contained in:
2015-05-29 23:26:32 +02:00
parent 453e637504
commit eef5e3dbbf
28 changed files with 2270 additions and 2217 deletions

View File

@@ -1,20 +1,20 @@
function GetElement(element) {
if (typeof element == "string") {
element = document.getElementById(element);
}
return element;
}
function escapeHTML(s) {
return s.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
function GetElement(element) {
if (typeof element == "string") {
element = document.getElementById(element);
}
return element;
}
function escapeHTML(s) {
return s.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
return '%' + c.charCodeAt(0).toString(16);
});
}

View File

@@ -1,122 +1,122 @@
function SendRequest(url, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.send(null);
}
function GetDataQueryString(data) {
var queryString = "";
for (var property in data) {
if (data.hasOwnProperty(property)) {
var value = data[property];
queryString += (queryString.length > 0 ? "&" : "")
+ fixedEncodeURIComponent(property) + "="
+ fixedEncodeURIComponent(value ? value : "");
}
}
return queryString;
}
function SendData(url, data, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xhr.send(GetDataQueryString(data));
}
function GetFormQueryString(idForm) {
var form = document.getElementById(idForm);
var queryString = "";
if (!form)
return null;
function appendVal(name, value) {
queryString += (queryString.length > 0 ? "&" : "")
+ fixedEncodeURIComponent(name) + "="
+ fixedEncodeURIComponent(value ? value : "");
}
var elements = form.elements;
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var elemType = element.type.toUpperCase();
var elemName = element.name;
if (elemName) {
if (
elemType.indexOf("TEXT") != -1 ||
elemType.indexOf("TEXTAREA") != -1 ||
elemType.indexOf("PASSWORD") != -1 ||
elemType.indexOf("BUTTON") != -1 ||
elemType.indexOf("HIDDEN") != -1 ||
elemType.indexOf("SUBMIT") != -1 ||
elemType.indexOf("IMAGE") != -1
) {
appendVal(elemName, element.value);
} else if (elemType.indexOf("CHECKBOX") != -1 && element.checked) {
appendVal(elemName, element.value ? element.value : "On");
} else if (elemType.indexOf("RADIO") != -1 && element.checked) {
appendVal(elemName, element.value);
} else if (elemType.indexOf("SELECT") != -1) {
for (var j = 0; j < element.options.length; j++) {
var option = element.options[j];
if (option.selected) {
appendVal(elemName,
option.value ? option.value : option.text);
}
}
}
}
}
return queryString;
}
function SendForm(url, idForm, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xhr.send(GetFormQueryString(idForm));
}
function SendRequest(url, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.send(null);
}
function GetDataQueryString(data) {
var queryString = "";
for (var property in data) {
if (data.hasOwnProperty(property)) {
var value = data[property];
queryString += (queryString.length > 0 ? "&" : "")
+ fixedEncodeURIComponent(property) + "="
+ fixedEncodeURIComponent(String(value));
}
}
return queryString;
}
function SendData(url, data, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xhr.send(GetDataQueryString(data));
}
function GetFormQueryString(idForm) {
var form = document.getElementById(idForm);
var queryString = "";
if (!form)
return null;
function appendVal(name, value) {
queryString += (queryString.length > 0 ? "&" : "")
+ fixedEncodeURIComponent(name) + "="
+ fixedEncodeURIComponent(value ? value : "");
}
var elements = form.elements;
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var elemType = element.type.toUpperCase();
var elemName = element.name;
if (elemName) {
if (
elemType.indexOf("TEXT") != -1 ||
elemType.indexOf("TEXTAREA") != -1 ||
elemType.indexOf("PASSWORD") != -1 ||
elemType.indexOf("BUTTON") != -1 ||
elemType.indexOf("HIDDEN") != -1 ||
elemType.indexOf("SUBMIT") != -1 ||
elemType.indexOf("IMAGE") != -1
) {
appendVal(elemName, element.value);
} else if (elemType.indexOf("CHECKBOX") != -1 && element.checked) {
appendVal(elemName, element.value ? element.value : "On");
} else if (elemType.indexOf("RADIO") != -1 && element.checked) {
appendVal(elemName, element.value);
} else if (elemType.indexOf("SELECT") != -1) {
for (var j = 0; j < element.options.length; j++) {
var option = element.options[j];
if (option.selected) {
appendVal(elemName,
option.value ? option.value : option.text);
}
}
}
}
}
return queryString;
}
function SendForm(url, idForm, onData, onError) {
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
if (onData) {
onData(xhr.responseText);
}
} else {
if (onError) {
onError();
}
}
}
}
xhr.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xhr.send(GetFormQueryString(idForm));
}

View File

@@ -1,93 +1,93 @@
function RunChat(serviceUrl, divContainer, idBoard, hidIDMessage, hidUserName, hidLastUser) {
divContainer = GetElement(divContainer);
hidIDMessage = GetElement(hidIDMessage);
hidUserName = GetElement(hidUserName);
hidLastUser = GetElement(hidLastUser);
var CreateMessageDOM = function (message, selfMessage, hidLastUser) {
var divMessageRow = document.createElement("DIV");
if (selfMessage) {
divMessageRow.className = "selfMessageRow";
} else {
divMessageRow.className = "messageRow";
}
var divMessage = document.createElement("DIV");
divMessage.className = "message";
divMessageRow.appendChild(divMessage);
if (hidLastUser.value !== message.UserName) {
var divUser = document.createElement("DIV");
divUser.className = "user";
divUser.innerHTML = escapeHTML(message.UserName);
divMessage.appendChild(divUser);
hidLastUser.value = message.UserName;
}
var text = message.Text;
var divText = document.createElement("DIV");
divText.className = "text";
divText.innerHTML = escapeHTML(text);
divMessage.appendChild(divText);
return divMessageRow;
};
var RequestChatData = function () {
var requestUrl = serviceUrl + "?idBoard=" + idBoard + "&idMessage=" + hidIDMessage.value;
var ReciveChatData = function (responseText) {
recvMsgs = JSON.parse(responseText);
if (recvMsgs) {
var idMessage = parseInt(hidIDMessage.value);
var frag = document.createDocumentFragment();
for (var i = 0, n = recvMsgs.length; i < n; i++) {
var msg = recvMsgs[i];
if (idMessage < msg.IDMessage) {
hidIDMessage.value = msg.IDMessage;
idMessage = msg.IDMessage;
var elemMessage = CreateMessageDOM(msg, (msg.UserName == hidUserName.value), hidLastUser);
frag.appendChild(elemMessage);
}
}
divContainer.appendChild(frag);
divContainer.scrollTop = divContainer.scrollHeight;
}
// Reset pool
window.setTimeout(function () {
RequestChatData();
}, 20);
};
var ErrorChatData = function () {
// Retry
window.setTimeout(function () {
RequestChatData();
}, 5000);
};
// Pool data
SendRequest(requestUrl, ReciveChatData, ErrorChatData);
};
RequestChatData();
}
function SendChat(serviceUrl, txtText, idBoard, hidUserName) {
txtText = GetElement(txtText);
hidUserName = GetElement(hidUserName);
if (txtText.value.trim() == "") {
return;
}
var data = {
"text": txtText.value,
"idBoard": idBoard,
"userName": hidUserName.value
};
txtText.value = "";
SendData(serviceUrl, data, null, null);
txtText.focus();
}
function RunChat(serviceUrl, divContainer, idBoard, hidIDMessage, hidUserName, hidLastUser) {
divContainer = GetElement(divContainer);
hidIDMessage = GetElement(hidIDMessage);
hidUserName = GetElement(hidUserName);
hidLastUser = GetElement(hidLastUser);
var CreateMessageDOM = function (message, selfMessage, hidLastUser) {
var divMessageRow = document.createElement("DIV");
if (selfMessage) {
divMessageRow.className = "selfMessageRow";
} else {
divMessageRow.className = "messageRow";
}
var divMessage = document.createElement("DIV");
divMessage.className = "message";
divMessageRow.appendChild(divMessage);
if (hidLastUser.value !== message.UserName) {
var divUser = document.createElement("DIV");
divUser.className = "user";
divUser.innerHTML = escapeHTML(message.UserName);
divMessage.appendChild(divUser);
hidLastUser.value = message.UserName;
}
var text = message.Text;
var divText = document.createElement("DIV");
divText.className = "text";
divText.innerHTML = escapeHTML(text);
divMessage.appendChild(divText);
return divMessageRow;
};
var RequestChatData = function () {
var requestUrl = serviceUrl + "?idBoard=" + idBoard + "&idMessage=" + hidIDMessage.value;
var ReciveChatData = function (responseText) {
recvMsgs = JSON.parse(responseText);
if (recvMsgs) {
var idMessage = parseInt(hidIDMessage.value);
var frag = document.createDocumentFragment();
for (var i = 0, n = recvMsgs.length; i < n; i++) {
var msg = recvMsgs[i];
if (idMessage < msg.IDMessage) {
hidIDMessage.value = msg.IDMessage;
idMessage = msg.IDMessage;
var elemMessage = CreateMessageDOM(msg, (msg.UserName == hidUserName.value), hidLastUser);
frag.appendChild(elemMessage);
}
}
divContainer.appendChild(frag);
divContainer.scrollTop = divContainer.scrollHeight;
}
// Reset pool
window.setTimeout(function () {
RequestChatData();
}, 20);
};
var ErrorChatData = function () {
// Retry
window.setTimeout(function () {
RequestChatData();
}, 5000);
};
// Pool data
SendRequest(requestUrl, ReciveChatData, ErrorChatData);
};
RequestChatData();
}
function SendChat(serviceUrl, txtText, idBoard, hidUserName) {
txtText = GetElement(txtText);
hidUserName = GetElement(hidUserName);
if (txtText.value.trim() == "") {
return;
}
var data = {
"text": txtText.value,
"idBoard": idBoard,
"userName": hidUserName.value
};
txtText.value = "";
SendData(serviceUrl, data, null, null);
txtText.focus();
}