Browse Source

Add JS files

Volodymyr Tkach 2 years ago
parent
commit
3463cdaeff
2 changed files with 76 additions and 0 deletions
  1. 61 0
      js/ajax.js
  2. 15 0
      js/helper.js

+ 61 - 0
js/ajax.js

@@ -0,0 +1,61 @@
+var ajax = {};
+ajax.create = function() {
+	if(typeof XMLHttpRequest !== 'undefined') {
+		return new XMLHttpRequest();
+	};
+	var versions = [
+		"MSXML2.XmlHttp.6.0",
+		"MSXML2.XmlHttp.5.0",
+		"MSXML2.XmlHttp.4.0",
+		"MSXML2.XmlHttp.3.0",
+		"MSXML2.XmlHttp.2.0",
+		"Microsoft.XmlHttp"
+	];
+	var xhr;
+	for(var i = 0; i < versions.length; i++) {
+		try {
+			xhr = new ActiveXObject(versions[i]);
+			break;
+		} catch(e) {
+			// Silent
+		};
+	};
+	return xhr;
+};
+
+ajax.send = function(url, callback, method, data, async) {
+	if(async === undefined) {
+		async = true;
+	};
+	var a = ajax.create();
+	a.open(method, url, async);
+	a.onreadystatechange = function() {
+		// a.readyState:
+		// 0 - UNSENT
+		// 1 - OPENED
+		// 2 - HEADERS_RECEIVED
+		// 3 - LOADING
+		// 4 - DONE
+		callback(method, data, a.readyState, a.status, a.responseText);
+	};
+	if(method == 'POST') {
+		a.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
+	};
+	a.send(data);
+};
+
+ajax.get = function(url, data, callback, async) {
+	var query = [];
+	for(var key in data) {
+		query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
+	};
+	ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async);
+};
+
+ajax.post = function(url, data, callback, async) {
+	var query = [];
+	for (var key in data) {
+		query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
+	};
+	ajax.send(url, callback, 'POST', query.join('&'), async);
+};

+ 15 - 0
js/helper.js

@@ -0,0 +1,15 @@
+var helper = {};
+helper.hasClass = function(obj, className) {
+	return !!obj.className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'));
+};
+
+helper.addClass = function(obj, className) {
+	if(!helper.hasClass(obj, className)) obj.className += " " + className;
+};
+
+helper.removeClass = function(obj, className) {
+	if(helper.hasClass(obj, className)) {
+		var reg = new RegExp('(\\s|^)' + className + '(\\s|$)');
+		obj.className = obj.className.replace(reg, ' ').trim();
+	};
+};