﻿function GetRequestObject() {
	var ret = false;
	if (window.XMLHttpRequest && !(window.ActiveXObject)) {
		try { ret = new XMLHttpRequest(); }
		catch(e) { ret = false; }
	} else
	if (window.ActiveXObject) {
		try { ret = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch(e) {
			try { ret = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch(e) { ret = false; }
		}
		if (ret && document.Script)
			document.Script.XMLHttpRequest = ret;
	}
	
	return ret;	
}

function UserInfo(inpUsernameId, inpUsernameCmpId) {
	var elUsername = document.getElementById(inpUsernameId);
	var elUsernameCmp = document.getElementById(inpUsernameCmpId);
	var req = false;
	
	this.init = function() {
		if (elUsername != null)
			elUsername.onchange = this.checkUsername;
	}
	
	this.checkUsername = function() {
		var username = this.value;
		req = GetRequestObject();
		if (req) {
			var handlerUrl="check-username.ashx?username="+username;
			req.onreadystatechange = processReqChange;
			req.open("GET", handlerUrl, true);
			req.send("");
		}
	}
	
	processReqChange = function() {
		var sender = this;
		if (this.XMLHttpRequest != null)
		sender = this.XMLHttpRequest;
		if (sender.readyState == 4) {
			if (sender.status == 200) {
				var result = sender.responseText;
				displayResult(result);
			}
			else {
				displayResult("0");
			}
		}
	}
	
	function displayResult(result) {
		if (result == "1") {
			elUsernameCmp.value = "";
			elUsername.style.backgroundColor ="#FFE0A0";
		} else {
			elUsernameCmp.value = "1";
			elUsername.style.backgroundColor="";
		}
	}
	
}


