var userNameCheck;
var strUserName;
function updateCheckUserName (req)
{
  var infoElement = document.getElementById('divCheckUserName');
  var valid = req.responseText.match("Valid User Name");
  
  if(valid)
  {
    infoElement.innerHTML = "Username available";
    infoElement.style.color = "#007038";
  }
  else
  {
    infoElement.innerHTML = "Username taken or invalid";
    infoElement.style.color = "#FF0038";
  }

  blnValidUserName=false;
  if (valid)
  {
    blnValidUserName = true;
  }
}


function checkUserName (userName)
{
  // Obtain an XMLHttpRequest instance
  var req = newXMLHttpRequest();
  strUserName=userName;
  
  if (userName.length ==  0 || !validateData(userName))
  {
    var infoElement = document.getElementById('divCheckUserName');
    infoElement.innerHTML = "Username taken or invalid";
    infoElement.style.color = "#FF0038";
    blnValidUserName=false;
    
    return false;
  }
  
  if (req)
  {
	  // Set the handler function to receive callback notifications
	  // from the request object
	  var handlerFunction = getReadyStateHandlerResponse(req, updateCheckUserName);
	  req.onreadystatechange = handlerFunction;
	  
	  // Open an HTTP POST connection to the shopping basket servlet.
	  // Third parameter specifies request is asynchronous.
	  req.open("POST", "/CheckUser.do;jsessionid="+jSession, true);

	  // Specify that the body of the request contains form data
	  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	  // Send form encoded data stating that I want to add the 
	  // specified item to the basket.
	  req.send("u="+userName);
  }
  
}
function checkUserNameForm()
{
	if (blnValidUserName==true)
	{
		if (validateData(strUserName)) return true;
		else
    {
      alert('Please choose another username');
      return false;
    }
	}
	else
  {
    checkUserName(document.TorqueUserDetailsForm.userName.value);

    if (validateData(strUserName)) return true;
    else
    {
      alert('Please choose another username');
      return false;
    }
    
    return false;
  }
	
}

function validateData(userName) 
{ 
	if ((userName == null) || (userName.length == 0)) return false;
	else 
	{
		if (userName.search("[^A-Za-z0-9\-_ @.]") > -1) return false;
		else return true;
	}
	
	return false;
}

function checkPassword()
{
	var actPasswd = document.getElementById('aPasswd');
	var newPasswd = document.getElementById('nPasswd');
	var rNewPasswd = document.getElementById('rnPasswd');
	var blnUpdate = true;	
	
	if (actPasswd.value != apw)
	{
		blnUpdate = false;
		actPasswd.value = '';
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The actual password is incorrect');
	}
	
	if (newPasswd.value == '' && blnUpdate)
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password is incorrect');
	}
	
	if ((newPasswd.value != rNewPasswd.value) && blnUpdate) 
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password and the repeat new password are not the same.');
	}	
	
	if (blnUpdate) 
	{
		// Obtain an XMLHttpRequest instance
	  	var req = newXMLHttpRequest();
	
	  	var handlerFunction = getReadyStateHandlerResponse(req, updateContainerPswd);
	  	req.onreadystatechange = handlerFunction;
	
	  	// Open an HTTP POST connection. Third parameter specifies request is asynchronous.
	  	req.open("POST", "/ltadapp/UpdatePassword.do", true);
	
	  	// Specify that the body of the request contains form data
  		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	  	// Send form encoded data
	  	req.send("aPasswd=" + actPasswd.value + "&nPasswd=" + newPasswd.value + "&rnPasswd=" + rNewPasswd.value);		
	}
}

function updateContainerPswd (req)
{		
	var newPasswd = document.getElementById('nPasswd');
	apw = newPasswd.value;
	  	
	alert('Password Updated');
	
	window.location="/userapp/GoTo/MyProfile.do"; 	
}
function checkPassword_ltadapp()
{
	var actPasswd = document.getElementById('aPasswd');
	var newPasswd = document.getElementById('nPasswd');
	var rNewPasswd = document.getElementById('rnPasswd');
	var blnUpdate = true;	
	
	if (actPasswd.value != apw)
	{
		blnUpdate = false;
		actPasswd.value = '';
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The actual password is incorrect');
	}
	
	if (newPasswd.value == '' && blnUpdate)
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password is incorrect');
	}
	
	if ((newPasswd.value != rNewPasswd.value) && blnUpdate) 
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password and the repeat new password are not the same.');
	}	
	
	if (blnUpdate) 
	{
		// Obtain an XMLHttpRequest instance
	  	var req = newXMLHttpRequest();
	
	  	var handlerFunction = getReadyStateHandlerResponse(req, updateContainerPswd_ltadapp);
	  	req.onreadystatechange = handlerFunction;
	
	  	// Open an HTTP POST connection. Third parameter specifies request is asynchronous.
	  	req.open("POST", "/ltadapp/UpdatePassword.do", true);
	
	  	// Specify that the body of the request contains form data
  		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	  	// Send form encoded data
	  	req.send("aPasswd=" + actPasswd.value + "&nPasswd=" + newPasswd.value + "&rnPasswd=" + rNewPasswd.value);		
	}
}

function updateContainerPswd_ltadapp (req)
{		
	var newPasswd = document.getElementById('nPasswd');
	apw = newPasswd.value;
	  	
	alert('Password Updated');
	
	window.location="/ltadapp/GoTo/MyProfile.do"; 	
}
function checkPassword_ltad()
{
	var actPasswd = document.getElementById('aPasswd');
	var newPasswd = document.getElementById('nPasswd');
	var rNewPasswd = document.getElementById('rnPasswd');
	var blnUpdate = true;	
	
	if (actPasswd.value != apw)
	{
		blnUpdate = false;
		actPasswd.value = '';
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The actual password is incorrect');
	}
	
	if (newPasswd.value == '' && blnUpdate)
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password is incorrect');
	}
	
	if ((newPasswd.value != rNewPasswd.value) && blnUpdate) 
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password and the repeat new password are not the same.');
	}	
	
	if (blnUpdate) 
	{
		// Obtain an XMLHttpRequest instance
	  	var req = newXMLHttpRequest();
	
	  	var handlerFunction = getReadyStateHandlerResponse(req, updateContainerPswd_ltad);
	  	req.onreadystatechange = handlerFunction;
	
	  	// Open an HTTP POST connection. Third parameter specifies request is asynchronous.
	  	req.open("POST", "/ltadapp/UpdatePassword.do", true);
	
	  	// Specify that the body of the request contains form data
  		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	  	// Send form encoded data
	  	req.send("aPasswd=" + actPasswd.value + "&nPasswd=" + newPasswd.value + "&rnPasswd=" + rNewPasswd.value);		
	}
}

function updateContainerPswd_ltad (req)
{		
	var newPasswd = document.getElementById('nPasswd');
	apw = newPasswd.value;
	  	
	alert('Password Updated');
	
	window.location="/ltad/GoTo/MyProfile.do"; 	
}
function checkPassword_AMS()
{
	var actPasswd = document.getElementById('aPasswd');
	var newPasswd = document.getElementById('nPasswd');
	var rNewPasswd = document.getElementById('rnPasswd');
	var blnUpdate = true;	
	
	if (actPasswd.value != apw)
	{
		blnUpdate = false;
		actPasswd.value = '';
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The actual password is incorrect');
	}
	
	if (newPasswd.value == '' && blnUpdate)
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password is incorrect');
	}
	
	if ((newPasswd.value != rNewPasswd.value) && blnUpdate) 
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		alert('The new password and the repeat new password are not the same.');
	}	
	
	if (blnUpdate) 
	{
		// Obtain an XMLHttpRequest instance
	  	var req = newXMLHttpRequest();
	
	  	var handlerFunction = getReadyStateHandlerResponse(req, updateContainerPswd_AMS);
	  	req.onreadystatechange = handlerFunction;
	
	  	// Open an HTTP POST connection. Third parameter specifies request is asynchronous.
	  	req.open("POST", "/ltadapp/UpdatePassword.do", true);
	
	  	// Specify that the body of the request contains form data
  		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	  	// Send form encoded data
	  	req.send("aPasswd=" + actPasswd.value + "&nPasswd=" + newPasswd.value + "&rnPasswd=" + rNewPasswd.value);		
	}
}

function updateContainerPswd_AMS (req)
{		
	var newPasswd = document.getElementById('nPasswd');
	apw = newPasswd.value;
	  	
	alert('Password Updated');
	
	window.location="/ltad/GoTo/MyProfileAMS.do"; 	
}

function getPwBox(){
	
	var req;
	var pwBox = document.getElementById('pwChange');
	
	req = newXMLHttpRequest();
	
	//Check the request sucessfully created
	if(req){
		req.onreadystatechange = function(){
	  		if(req.readyState==4){
	    		var response = req.responseText;
				if(response){
					pwBox.style.height = '0px';
					pwBox.style.overflow = 'hidden';
					growShrinkBox(0, 150, 200, pwBox);
					pwBox.innerHTML = response;
				}
	    	}
	  	}
	  	req.open('GET', '/ltad/app/tiles/ajax/passwordForm.jsp');
		req.send(null);
	}
	
}    

function growShrinkBox(start, finish, speed, divToGrow){
	var j = start;

	//Shrink
	if(start > finish){
		for(i = start; i >= finish; --i){
			setTimeout(function () { divToGrow.style.height = j+'px'; --j;} , speed);
		}
	}
	//Grow
	if(finish > start){
		for(i = start; i <= finish; ++i){
			setTimeout(function () { divToGrow.style.height = j+'px'; ++j;} , speed);
		}
	}
}

	


function checkPassword_ajax(){
	var actPasswd = document.getElementById('aPasswd');
	var newPasswd = document.getElementById('nPasswd');
	var rNewPasswd = document.getElementById('rnPasswd');
	var apwBox= document.getElementById('originalPasswd');
	var apw=apwBox.value;
	var blnUpdate = true;
	var statusMsg = document.getElementById('pwMsg');
	
	if (actPasswd.value != apw)
	{
		blnUpdate = false;
		actPasswd.value = '';
		newPasswd.value = '';
		rNewPasswd.value = '';			
		statusMsg.innerHTML = '<p>The actual password is incorrect</p>';
	}
	
	if (newPasswd.value == '' && blnUpdate)
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';			
		statusMsg.innerHTML = '<p>The new password is incorrect</p>';
	}
	
	if ((newPasswd.value != rNewPasswd.value) && blnUpdate) 
	{
		blnUpdate = false;		
		newPasswd.value = '';
		rNewPasswd.value = '';				
		statusMsg.innerHTML = '<p>The new password and the repeat new password are not the same.</p>';
	}	
	
	if (blnUpdate) 
	{
		// Obtain an XMLHttpRequest instance
	  	var req;
	
		req = newXMLHttpRequest();
	
	  	var handlerFunction = getReadyStateHandlerResponse(req, updateContainerPswd_ajax);
	  	req.onreadystatechange = handlerFunction;
	
	  	// Open an HTTP POST connection. Third parameter specifies request is asynchronous.
	  	req.open("POST", "/ltadapp/UpdatePassword.do;jsessionid="+jSession, true);
	
	  	// Specify that the body of the request contains form data
  		req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	  	// Send form encoded data
	  	req.send("aPasswd=" + actPasswd.value + "&nPasswd=" + newPasswd.value + "&rnPasswd=" + rNewPasswd.value);		
	}
}

function updateContainerPswd_ajax (req)
{		
	var newPasswd = document.getElementById('nPasswd');
	apw = newPasswd.value;
	var pwChangeBox = document.getElementById('pwChange');
	var statusMsg = document.getElementById('pwMsg');
	
	statusMsg.innerHTML = '';
	pwChangeBox.innerHTML = '<br /><p><strong>Password Updated</strong></p>';
	
	setTimeout("killStatusMsg()", 3000);
	growShrinkBox(150, 40, 200, pwChangeBox);
}

function killStatusMsg(){
	var pwChangeBox = document.getElementById('pwChange');
	
	growShrinkBox(40, 0, 200, pwChangeBox);
	pwChangeBox.innerHTML = '';
	
}

