/******************************* account ***********************************/
var firstNameBeforeEdit;
var lastNameBeforeEdit;
var emailBeforeEdit;

/*
 * show input fields to edit personal information
 */
function editPersonalInformation(){
	
	// make information editable
	var firstNameDiv = obj("firstName");
	var firstNameSpans = firstNameDiv.getElementsByTagName("span");
	var firstNameContent = firstNameSpans[0].innerHTML;
	firstNameSpans[0].style.display = "none";
	var firstNameInput = document.createElement("input");
	firstNameInput.name = "firstName";
	firstNameInput.id = "firstNameInput";
	firstNameInput.value = firstNameContent;
	firstNameDiv.appendChild(firstNameInput);
	
	var lastNameDiv = obj("lastName");
	var lastNameSpans = lastNameDiv.getElementsByTagName("span");
	var lastNameContent = lastNameSpans[0].innerHTML;
	lastNameSpans[0].style.display = "none";
	var lastNameInput = document.createElement("input");
	lastNameInput.name = "lastName";
	lastNameInput.id = "lastNameInput";
	lastNameInput.value = lastNameContent;
	lastNameDiv.appendChild(lastNameInput);
	
	var emailDiv = obj("email");	
	var emailSpans = emailDiv.getElementsByTagName("span");
	var emailContent = emailSpans[0].innerHTML;
	emailSpans[0].style.display = "none";
	var emailInput = document.createElement("input");
	emailInput.name = "email";
	emailInput.id = "emailInput";
	emailInput.value = emailContent;
	emailDiv.appendChild(emailInput);
	
	var passwordDiv = obj("password");
	var passwordSpans = passwordDiv.getElementsByTagName("span");
	passwordSpans[0].style.display = "none";
	var passwordInput = document.createElement("input");
	passwordInput.name = "password";
	passwordInput.id = "passwordInput";
	passwordInput.type = "password";
	passwordInput.value = "";
	passwordDiv.appendChild(passwordInput);
	
	// save initial values in case user cancels editing
	firstNameBeforeEdit = firstNameContent;
  lastNameBeforeEdit = lastNameContent;
  emailBeforeEdit = emailContent;

	// show save button
	var buttonSpans = obj("saveAndEditButtons").getElementsByTagName("span");
	buttonSpans[0].style.display = "none";
	buttonSpans[1].style.display = "";
	buttonSpans[2].style.display = "";
}


/*
 * make personal information not editable
 */
function hidePersonalInformationInputFields(cancel){
	// input fields
	var firstNameInputField = obj("firstNameInput");	
	var lastNameInputField = obj("lastNameInput");
	var emailInputField = obj("emailInput");
	var passwordInputField = obj("passwordInput");
	var personalWebsiteInputField = obj("personalWebsiteInput");
	
	// decide what information to set, depending on cancel or save
	if (cancel){
		var firstNameContent = firstNameBeforeEdit;
		var lastNameContent = lastNameBeforeEdit;
		var emailContent = emailBeforeEdit;
	}else{
		var firstNameContent = firstNameInputField.value;
		var lastNameContent = lastNameInputField.value;
		var emailContent = emailInputField.value;
	}
	var passwordContent = "invisible"

	// remove input fields
	var firstNameDiv = obj("firstName");
	var firstNameSpans = firstNameDiv.getElementsByTagName("span");
	firstNameSpans[0].innerHTML = firstNameContent;	
	firstNameSpans[0].style.display = "";
	firstNameDiv.removeChild(firstNameInputField);
	
	var lastNameDiv = obj("lastName");
	var lastNameSpans = lastNameDiv.getElementsByTagName("span");
	lastNameSpans[0].innerHTML = lastNameContent;	
	lastNameSpans[0].style.display = "";
	lastNameDiv.removeChild(lastNameInputField);
	
	var emailDiv = obj("email");
	var emailSpans = emailDiv.getElementsByTagName("span");
	emailSpans[0].innerHTML = emailContent;	
	emailSpans[0].style.display = "";
	emailDiv.removeChild(emailInputField);
	
  var passwordDiv = obj("password");
	var passwordSpans = passwordDiv.getElementsByTagName("span");
	passwordSpans[0].innerHTML = passwordContent;
	passwordSpans[0].style.display = "";
	passwordDiv.removeChild(passwordInputField);
}


/**
 * cancel edit personal information
 */
function cancelEditPersonalInformation(){
	hidePersonalInformationInputFields(true);
	
	// show edit button
	var buttonSpans = obj("saveAndEditButtons").getElementsByTagName("span");
	buttonSpans[0].style.display = "";
	buttonSpans[1].style.display = "none";
	buttonSpans[2].style.display = "none";
}

/*
 * save personal information
 */
function savePersonalInformation(){

	// get the content
	var firstNameContent = obj("firstNameInput").value;
	var lastNameContent = obj("lastNameInput").value;
	var emailContent = obj("emailInput").value;
	var passwordContent = obj("passwordInput").value;

  hidePersonalInformationInputFields(false);

  // show edit button
	var buttonSpans = obj("saveAndEditButtons").getElementsByTagName("span");
	buttonSpans[0].style.display = "";
	buttonSpans[1].style.display = "none";
	buttonSpans[2].style.display = "none";

	// send the data	
	QQ.Ajax.request(AJAX_REQUEST_BASE+"account/editPersonalInformation",{method:"post",data:"firstName="+firstNameContent+"&lastName="+lastNameContent+"&email="+emailContent+"&password="+passwordContent});
}

/******************************* statistics ***********************************/

/*
 * save schedule options 
 */
function saveScheduleOptions(){
	
	var periods = document.getElementsByName("period");
	var period = 0;
	for (var i=0;i<periods.length;i++){
		if (periods[i].checked){period = i;break;}
	}
	
	var emails = document.getElementsByName("email");
	var email = "";
	for (var i=0;i<emails.length;i++){
		if (emails[i].checked){
			email = emails[i].value;
			break;
		}
	}
	
	var anotherEmail = obj("anotherEmail").value;	
	QQ.Ajax.udpate(AJAX_REQUEST_BASE+"account/editPersonalInformation","feedback",{method:"post",data:"period="+period+"&email="+email+"&anotherEmail="+anotherEmail});
}

function help(){
  if (obj('helpRequestEmail').value != "" && obj('helpRequestMessage').value != "") {
		QQ.Ajax.request(AJAX_REQUEST_BASE+"help/send",{method:"post",data:"helpEmail="+obj('helpRequestEmail').value+"&helpMessage="+obj('helpRequestMessage').value});
	  toggleOn("actionDone",true);
	} else {
		alert("Please enter your email and a message.");
		toggleOn("actionDone",false);
	}	
}


/******************************* samples ***********************************/

/*
 * send project notification
 */
function sendProjectNotification(){
	
	var emails = document.getElementsByName("email");
	var email = emails[0].value;
	
	var messages = document.getElementsByName("message");
	var message = messages[0].value;

  function responseFunctionSendPN(req){		
		var response = QQ.String.evalJSON(req.responseText);
		if (!response.actionSuccess) obj("feedback").className = "error";
		else obj("feedback").className = "success";
		obj("feedback").innerHTML = response.feedback;
	}
  QQ.Ajax.request(AJAX_REQUEST_BASE+"samples/sendProjectNotification",{method:"post",data:"email="+email+"&message="+message,responseFunction:responseFunctionSendPN});
}

/**
 * if user changes data remove feedback field
 */
function removeFeedback(){
	obj("feedback").innerHTML = "";
}
