// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
// the file that returns the requested data in XML format
var feedGridUrl = "gh/processregister.php";

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() 
{
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
 
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

// makes asynchronous request to load a new page of the grid
function registerUser(regLogin,regPassword,regEmail,regName,regMode,regContrtype) 
{
	var action;
  // continue only if the XMLHttpRequest object isn't busy
  if (xmlHttp && (xmlHttp.readyState == 4 || xmlHttp.readyState == 0))
  {
		action = 'REGISTER_USER';
		var query = feedGridUrl + "?action=" + action + "&reglogin=" + regLogin + "&regpassword=" + regPassword + "&regemail=" + regEmail + "&regname=" + encodeURIComponent(regName) + "&regmode=" + regMode + "&regcontrtype=" + regContrtype;   
		//alert (query);
    xmlHttp.open("GET", query, true);
    xmlHttp.onreadystatechange = handleRegisterUser;
    xmlHttp.send(null);
  }  
}

	// handle receiving the server response with a new page of products
	function handleRegisterUser()
	{
		// when readyState is 4, we read the server response
		if (xmlHttp.readyState == 4)
		{
			// continue only if HTTP status is "OK"
			if (xmlHttp.status == 200)
			{    
				// read the response
				response = xmlHttp.responseText;
				// server error?
				if (response.indexOf("ERRNO") >= 0 
						|| response.indexOf("error") >= 0
						|| response.length == 0)
				{
					// display error message
					alert(response.length == 0 ? "Server error." : response);
					// exit function
					return;
				}
				// the server response in XML format
				xmlResponse = xmlHttp.responseXML;        
	
				// catching potential errors with IE and Opera
				if (!xmlResponse || !xmlResponse.documentElement)
					throw("Invalid XML structure:\n" + xmlHttp.responseText);
				// catching potential errors with Firefox
				var rootNodeName = xmlResponse.documentElement.nodeName;
				if (rootNodeName == "parsererror") throw("Invalid XML structure");
				// obtain the XML's document element
				xmlRoot = xmlResponse.documentElement;  
				// obtain arrays with book titles and ISBNs 
				var addedArray = xmlRoot.getElementsByTagName("added");
				var bderrArray = xmlRoot.getElementsByTagName("bderr");
	
			//	addedArray.item(i).firstChild.data, 
			
			
				if(bderrArray.item(0).firstChild.data == '0')
				{
				//	window.location.href = 'index.php';
					var elemOk = document.getElementById('regok');
					elemOk.innerHTML = "Вы успешно зарегистрировались! Введите в полях вверху ваш логин и пароль для входа в систему.";
					elemOk.style.visibility = 'visible';
					elemOk.style.display = 'block';
				}
				else
				{
					// alert(result.error.errors[0].message);
					var elemError = document.getElementById('regerror');
					elemError.style.visibility = 'visible';
					elemError.style.display = 'block';
					document.getElementById('regerror').innerHTML = bderrArray.item(0).firstChild.data;
				}
			} 
			else 
			{          
				alert("Error reading server response.")
			}
		} 
	}

//перехват нажатия Enter
function regKeyDown(source)
{
/*	document.onkeydown = function(evt)
	{
		var evt = (evt) ? evt : ((event) ? event : null);
		var keyCode = (evt.keyCode) ? evt.keyCode : evt.which;
		var keyString = String.fromCharCode(keyCode).toLowerCase();
		if (evt != null)
		{
			if (keyCode == 13)
			{	
				regUser();
				document.onkeydown = null;
			} 
		}
	}
*/
}

function regCheck(elem, regss)
{
	var ss = elem.value; 
	var pattern = new RegExp(regss, "i");
	var result = pattern.exec(ss);
	//alert (result);
	if (!result || result == 'null')
		result = '';
	elem.value = result;
}
	
function regUser()
{
	var elemRetypePass = document.getElementById('noretypepassword');
	elemRetypePass.style.visibility = 'hidden';
	elemRetypePass.style.display = 'none';	
	
	var elemPass = document.getElementById('nopassword');
	elemPass.style.visibility = 'hidden';
	elemPass.style.display = 'none';
	
	var elemUser = document.getElementById('nouser');
	elemUser.style.visibility = 'hidden';
	elemUser.style.display = 'none';	
	
	var elemEmail = document.getElementById('noemail');
	elemEmail.style.visibility = 'hidden';
	elemEmail.style.display = 'none';	
	
	var elemName = document.getElementById('noname');
	elemName.style.visibility = 'hidden';
	elemName.style.display = 'none';	
	
	var elemCheck = document.getElementById('nocheck');
	elemCheck.style.visibility = 'hidden';
	elemCheck.style.display = 'none';	
	
	var elemWrongCheck = document.getElementById('wrongcheck');
	elemWrongCheck.style.visibility = 'hidden';
	elemWrongCheck.style.display = 'none';	
	
	var elemTerms = document.getElementById('noterms');
	elemTerms.style.visibility = 'hidden';
	elemTerms.style.display = 'none';

	var elemError = document.getElementById('regerror');
	elemError.style.visibility = 'hidden';
	elemError.style.display = 'none';	
				
	var elemOk = document.getElementById('regok');
	elemOk.style.visibility = 'hidden';
	elemOk.style.display = 'none';	
				
	var regLogin = trim(document.getElementById('reglogin').value);
	var regPassword = trim(document.getElementById('regpassword').value);
	var regRetypePassword = trim(document.getElementById('regretypepassword').value);
	var regEmail = trim(document.getElementById('regemail').value);
	var regName = trim(document.getElementById('regname').value);
	var regCheck = trim(document.getElementById('regcheck').value);
	var regTerms = document.getElementById('regterms').checked;
	var regMode = 1;
	if (document.getElementById('regmode2').checked)  //если регистрация на Pro
		regMode = 2;
	
	var regContrtype = 1;  //физическое лицо
	if (document.getElementById('regcontrtype2').checked)  //юридическое лицо
		regContrtype = 2;
	
	//alert(regCheck + ", " + n1 + ", " + n2 + ", " + eval(n1 + n2));
	
	if(regPassword != '' && regEmail != '' && regName != '' && regLogin != '' && regPassword == regRetypePassword && regCheck != '' && regCheck == eval(n1 + n2) && regTerms == true)
//	if(regPassword != '' && regEmail != '' && regName != '' && regLogin != '' && regPassword == regRetypePassword && regCheck != '' && regTerms == true)
	{
		registerUser(regLogin,regPassword,regEmail,regName,regMode,regContrtype);
	}
	else
	{
		if(regPassword != regRetypePassword) 
		{
			var elemRetypePass = document.getElementById('noretypepassword');
			elemRetypePass.style.visibility = 'visible';
			elemRetypePass.style.display = 'block';	
		}
		if(regPassword == '')
		{
			var elemPass = document.getElementById('nopassword');
			elemPass.style.visibility = 'visible';
			elemPass.style.display = 'block';	
		}	
		if(regLogin == '')
		{
			var elemUser = document.getElementById('nouser');
			elemUser.style.visibility = 'visible';
			elemUser.style.display = 'block';	
		}		
		if(regEmail == '')
		{
			var elemEmail = document.getElementById('noemail');
			elemEmail.style.visibility = 'visible';
			elemEmail.style.display = 'block';	
		}		
		if(regName == '')
		{
			var elemName = document.getElementById('noname');
			elemName.style.visibility = 'visible';
			elemName.style.display = 'block';	
		}		
		if(regCheck == '')
		{
			var elemCheck = document.getElementById('nocheck');
			elemCheck.style.visibility = 'visible';
			elemCheck.style.display = 'block';	
		}		
		else
			if(regCheck != eval(n1 + n2))
			{
				var elemWrongCheck = document.getElementById('wrongcheck');
				elemWrongCheck.style.visibility = 'visible';
				elemWrongCheck.style.display = 'block';	
			}		
		if(regTerms == false)
		{
			var elemTerms = document.getElementById('noterms');
			elemTerms.style.visibility = 'visible';
			elemTerms.style.display = 'block';	
		}		
	}
}			

	function trim(s) 
	{
		while (s.substring(0,1) == ' ') 
		{
			s = s.substring(1,s.length);
		}
		while (s.substring(s.length-1,s.length) == ' ') 
		{
			s = s.substring(0,s.length-1);
		}
		return s;
	}
	

