var lw = null;
var userId;
var updatePopup = null;
var updateWeb = null;
var buttonStateUniqueIdentifier;
var buttonStateArray = Array();

function loadUserInfo(user_id){
	userId = user_id;
	
	if (updateWeb == null) {
		updateWeb = new LiveWeb(loadUserInfoReturned);
	}
	
	updateWeb.Get("manageUsersMethods.php?mode=loadUserInfo&id=" + user_id);
}

function loadUserInfoReturned(success, result) {
	if (!success) {
		alert(result);
		return;
	}
	
	result = eval('(' + result + ')');
	
	//Load the editor fields.
	Get('updateFirst_name').value = result.first_name;
	Get('updateLast_name').value = result.last_name;
	Get('updateOrganization').value = result.organization;
	Get('updateUsername').value = result.username;
	Get('updatePassword').value = '';
	Get('updateRetypePassword').value = '';
	//document.getElementById('updateUserInfoButton').disabled='disabled';

	//alert(result.u_perm_id);
	
	document.getElementById('updatePermissions'+(result.u_perm_id)).checked = true;
	//Get('message'+updateLineId).innerHTML = result.date;
	
	//Open the popup
	if (updatePopup == null){
		updatePopup = new Popup();
	}
	
	updatePopup.Background('updatePopup', document.body, 'white', 75, true);
	//updatePopup.PositionCenter('updatePopup', true);
	updatePopup.Open('updatePopup','userInfo'+userId,35,null,'userInfoPopup');
}

function updateUserInfo(){
	if (lw == null) {
		lw = new LiveWeb(updateUserInfoReturned);
	}
	
	lw.SetPost("mode", "updateUserInfoMode");
	lw.SetPost("userId", userId);
	lw.SetPost("updateFirst_name", document.getElementById('updateFirst_name').value);
	lw.SetPost("updateLast_name", document.getElementById('updateLast_name').value);
	lw.SetPost("updateOrganization", document.getElementById('updateOrganization').value);
	lw.SetPost("updateUsername", document.getElementById('updateUsername').value);
	lw.SetPost("updatePassword", document.getElementById('updatePassword').value);
	lw.SetPost("updateRetypePassword", document.getElementById('updateRetypePassword').value);
	lw.SetPost("updatePermissions", getRadioValue());
	lw.Post('manageUsersMethods.php');
}


function updateUserInfoReturned(success, result){
	if (!success) {
		alert('Error: ' + result);
		return;
	}
	
	result = eval("(" + result + ")");
	var messageText = result.message;
	
	if (result.status == "success"){
		Get('first_name' + userId).innerHTML = result.first_name;
		Get('last_name' + userId).innerHTML = result.last_name;
		Get('organization' + userId).innerHTML = result.organization;
		Get('username' + userId).innerHTML = result.realname;
		Get('permissions' + userId).innerHTML = result.permissions;

		Get('updatedMessage' + userId).setAttribute("class", "red");
		Get('userInfo' + userId).setAttribute("class", "borderRed rowHover");
		setTimeout("Get('userInfo' + userId).setAttribute('class', 'backgroundLightBlue rowHover borderBottomWhite')", 3000);
		setTimeout("Get('updatedMessage' + userId).setAttribute('class', 'hide')", 3000);
		updateClose();
	}
	
	if (result.debug != ''){
		Get('debugMessage').innerHTML = result.debug;
		//messageText = '<a href="javascript:DebugOpen()">' + messageText + '</a>';
	}
	
	Get('message').innerHTML = messageText;
}


function registrationValidate(triggerId, usernameId, usernameMessageId, passwordId, passwordMessageId, retypePasswordId, retypePasswordMessageId, radioA, radioB, radioC, radioD, submitButtonId){
	//For proper function set submit button disabled="disabled" 
	
	var trigger = document.getElementById(triggerId);
	var usernameValue = document.getElementById(usernameId).value;
	var usernameMessage = document.getElementById(usernameMessageId);
	var passwordValue = document.getElementById(passwordId).value;
	var passwordMessage = document.getElementById(passwordMessageId);
	var retypePasswordValue = document.getElementById(retypePasswordId).value;
	var retypePasswordMessage = document.getElementById(retypePasswordMessageId);
	var radio0 = document.getElementById(radioA);
	var radio1 = document.getElementById(radioB);
	var radio2 = document.getElementById(radioC);
	var radio3 = document.getElementById(radioD);
	var submitButton = document.getElementById(submitButtonId);
	var buttonCount = 0;

	if(buttonStateUniqueIdentifier != usernameValue){
		buttonStateArray = [];
		buttonStateUniqueIdentifier = usernameValue;
		//alert(buttonStateUniqueIdentifier);
	}
	
	for(i=0;i<4;i++){
		buttonStateArray[i]= buttonStateArray[i]!=1?0:1;
	}

	//Validate username length
	if(usernameValue.length >= 5){
		usernameMessage.innerHTML='';
		buttonStateArray[0] = 1;
	}else{
		usernameMessage.innerHTML='Must be at least 5 characters.';
		buttonStateArray[0] = 0;
	}
	
	//Validate minimum length.
	if(passwordValue != ''){
		if(passwordValue.length >= 8){
			passwordMessage.innerHTML='';
			buttonStateArray[1] = 1;
		}else{
			if(triggerId == passwordId){
				passwordMessage.innerHTML='Must be at least 8 characters.';
			}
			buttonStateArray[1] = 0;
		}
	}else{
		passwordMessage.innerHTML='';
		buttonStateArray[1] = 1;
		retypePasswordMessage.innerHTML='';
		buttonStateArray[2] = 1;
	}
	
	//Validate passwords match.
	if(passwordValue == retypePasswordValue){
		retypePasswordMessage.innerHTML='';
		buttonStateArray[2] = 1;
	}else{
		retypePasswordMessage.innerHTML='Passwords do not match.';
		buttonStateArray[2] = 0;
	}

	//Check value of radio buttons
	if(radio0.checked || radio1.checked || radio2.checked || radio3.checked){
		buttonStateArray[3]=1;
	}else{
		buttonStateArray[3]=0;
	}
	for(var i = 0; i < buttonStateArray.length; i++){
 		buttonCount += buttonStateArray[i];
	}

	if(buttonCount==buttonStateArray.length && buttonCount != 0){
		submitButton.disabled = false;
	}else{
		submitButton.disabled = true;
	}
	
	document.getElementById('output1').innerHTML= 'buttonStateArray[0]: '+buttonStateArray[0]+'<br />buttonStateArray[1]: '+buttonStateArray[1]+'<br />buttonStateArray[2]: '+buttonStateArray[2]+'<br />buttonStateArray[3]: '+buttonStateArray[3]+'<br />';
	document.getElementById('output2').innerHTML= 'buttonCount: '+buttonCount+'<br />buttonStateArray.length: '+buttonStateArray.length;
	
	return false;
}

function newRegistrationValidate(triggerId, usernameId, usernameMessageId, passwordId, passwordMessageId, retypePasswordId, retypePasswordMessageId, radioA, radioB, radioC, radioD, submitButtonId){
	//For proper function set submit button disabled="disabled" 
	
	var trigger = document.getElementById(triggerId);
	var usernameValue = document.getElementById(usernameId).value;
	var usernameMessage = document.getElementById(usernameMessageId);
	var passwordValue = document.getElementById(passwordId).value;
	var passwordMessage = document.getElementById(passwordMessageId);
	var retypePasswordValue = document.getElementById(retypePasswordId).value;
	var retypePasswordMessage = document.getElementById(retypePasswordMessageId);
	var radio0 = document.getElementById(radioA);
	var radio1 = document.getElementById(radioB);
	var radio2 = document.getElementById(radioC);
	var radio3 = document.getElementById(radioD);
	var submitButton = document.getElementById(submitButtonId);
	var buttonCount = 0;

	if(buttonStateUniqueIdentifier != usernameValue){
		buttonStateArray = [];
		buttonStateUniqueIdentifier = usernameValue;
		//alert(buttonStateUniqueIdentifier);
	}
	
	for(i=0;i<4;i++){
		buttonStateArray[i]= buttonStateArray[i]!=1?0:1;
	}

	//Validate username length
	if(usernameValue.length >= 5){
		usernameMessage.innerHTML='';
		buttonStateArray[0] = 1;
	}else{
		usernameMessage.innerHTML='Must be at least 5 characters.';
		buttonStateArray[0] = 0;
	}
	
	//Validate minimum length.
	if(passwordValue != ''){
		if(passwordValue.length >= 8){
			passwordMessage.innerHTML='';
			buttonStateArray[1] = 1;
		}else{
			if(triggerId == passwordId){
				passwordMessage.innerHTML='Must be at least 8 characters.';
			}
			buttonStateArray[1] = 0;
		}
	}
	
	//Validate passwords match.
	if(passwordValue == retypePasswordValue){
		retypePasswordMessage.innerHTML='';
		buttonStateArray[2] = 1;
	}else{
		retypePasswordMessage.innerHTML='Passwords do not match.';
		buttonStateArray[2] = 0;
	}

	//Check value of radio buttons
	if(radio0.checked || radio1.checked || radio2.checked || radio3.checked){
		buttonStateArray[3]=1;
	}else{
		buttonStateArray[3]=0;
	}
	for(var i = 0; i < buttonStateArray.length; i++){
 		buttonCount += buttonStateArray[i];
	}

	if(buttonCount==buttonStateArray.length && buttonCount != 0){
		submitButton.disabled = false;
	}else{
		submitButton.disabled = true;
	}
	
	document.getElementById('output1').innerHTML= 'buttonStateArray[0]: '+buttonStateArray[0]+'<br />buttonStateArray[1]: '+buttonStateArray[1]+'<br />buttonStateArray[2]: '+buttonStateArray[2]+'<br />buttonStateArray[3]: '+buttonStateArray[3]+'<br />';
	document.getElementById('output2').innerHTML= 'buttonCount: '+buttonCount+'<br />buttonStateArray.length: '+buttonStateArray.length;
	
	return false;
}

function getRadioValue(){
	var radioLength = document.updateForm.updatePermissions.length;
	for(var i = 0; i < radioLength; i++) {
		if(document.getElementById('updatePermissions'+i).checked) {
			return document.getElementById('updatePermissions'+i).value;
		}
	}
}

var debugPopup = null;

function DebugOpen() {
	if (debugPopup == null){
		debugPopup = new Popup();
	}
	
	debugPopup.PositionCenter('debugPopup', true);
	debugPopup.Open('debugPopup', null);
}


function DebugClose(){
	debugPopup.CloseAll();
}

function updateClose(){
	updatePopup.CloseAll();
}

function jsnRepair(thingy,forhtml){
	if(forhtml){
		return thingy.replace(/\[br\]/g,'<br />\n');
	}else{
		return thingy.replace(/\[br\]/g,'\n');
	}
}
