/**
	Ajax Engine
**/



function get(url, action) {
	
	var XHRO = false;
	
	if (window.XMLHttpRequest) {
		XHRO = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		XHRO = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	if (!XHRO) {
		ajax_not_supported();
	} else {
		
		XHRO.open('GET', url);
		
		XHRO.onreadystatechange = function () {
			
			switch (XHRO.readyState) {
				case 0: {
					try { action.notInitialized(); } catch(e) {}
					break;
				}
				case 1: {
					try { action.setUp(); } catch(e) {}
					break;
				}
				case 2: {
					try { action.sent(); } catch(e) {}
					break;
				}
				case 3: {
					try { action.loading(); } catch(e) {}
					break;
				}
				case 4: {
					if (XHRO.status == 200) {
						if (action.XML == false) {
							try { action.complete(XHRO.responseText); } catch(e) {}
						} else {
							try { action.complete(XHRO.responseXML); } catch(e) {}
						}
					} else {
						try { action.incomplete(); } catch(e) {}
					}
					
					break;
				}
				
			}
			
		}
		
		XHRO.send(null);
	}
	
}


function post(url, form, action) {
	
	var XHRO = false;
	
	if (window.XMLHttpRequest) {
		XHRO = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		XHRO = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	if (!XHRO) {
		ajax_not_supported();
	} else {
		
		var request = '';
		var node;
		for (node in form.elements) {
			if (form.elements[node]) {
				request += '&' + form.elements[node].name + '=' + encodeURIComponent(form.elements[node].value);
			}
		}
		request = request.substr(1);
		
		
		XHRO.open('POST', url);
		
		XHRO.onreadystatechange = function () {
			
			switch (XHRO.readyState) {
				case 0: {
					try { action.notInitialized(); } catch(e) {}
					break;
				}
				case 1: {
					try { action.setUp(); } catch(e) {}
					break;
				}
				case 2: {
					try { action.sent(); } catch(e) {}
					break;
				}
				case 3: {
					try { action.loading(); } catch(e) {}
					break;
				}
				case 4: {
					if (XHRO.status == 200) {
						if (action.XML == false) {
							try { action.complete(XHRO.responseText); } catch(e) {}
						} else {
							try { action.complete(XHRO.responseXML); } catch(e) {}
						}
					} else {
						try { action.incomplete(); } catch(e) {}
					}
					
					break;
				}
				
			}
			
		}
		
		XHRO.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XHRO.setRequestHeader("Content-length", request.length);
		XHRO.setRequestHeader("Connection", "close");
		
		XHRO.send(request);
	}
	
}


