/**************************************************/
/* PAGE AND FORM ACCESSORS						  */
/**************************************************/

function setVisibility(id, visibility) {
	var element = document.getElementById(id);
	
	element.className = visibility;
	
}

function setDisplay(id, display) {
	var element = document.getElementById(id);
	
	element.className = display;
	
}

function allocIndicator() {
	
	indicator_alloc++;

	if (indicator_alloc > 0) {
		var indicatorDiv = document.getElementById("indicator");
				
		indicatorDiv.className = "visible";
	}
}

function deallocIndicator() {
	
	indicator_alloc--;
	
	if(indicator_alloc < 1) {
	
		var indicatorDiv = document.getElementById("indicator");
				
		indicatorDiv.className = "invisible";
	}
}

function setActiveParentNeighborhood(id, name) {
	var nameHeading = document.getElementById("ActiveParentNeighborhoodName");
	var inputElem = document.getElementById("parent_neighborhood_id");
		
	nameHeading.innerHTML = name;
	inputElem.value = id;
}

function setActiveNeighborhood(id, name) {
	var nameHeading = document.getElementById("ActiveNeighborhoodName");
	var input = document.getElementById("neighborhood_id");
	
	nameHeading.innerHTML = name;
	input.value = id;
}

function setActiveCoords(lng, lat) {
	var lng_input = document.getElementById("lng");
	var lat_input = document.getElementById("lat");
	
	lng_input.value = lng;
	lat_input.value = lat;
	
	coords_avail = true;	
}

function getActiveCoords() {
	return new Array(document.getElementById("lng").value, document.getElementById("lat").value);
}

function hasActiveCoords() {
		
	if (document.getElementById("lng") != "" && document.getElementById("lat") != "") {
		return true;
	} else {	
		return false;
	}
}

function setStreetNumber(street_number) {
	var input = document.getElementById("street_number");
	
	input.value = street_number;
}

function setStreetName(street_name) {
	var input = document.getElementById("street_name");
	
	input.value = street_name;
	
}

function setStreetType(street_type) {
	
	var select = document.getElementById("street_type");
		
	for (var i = 0; i < select.options.length; i++) {
		if (select.options[i].value == street_type) {
			select.selectedIndex = i;
			break;
		}
	}
}
function showWelcome() { setDisplay("welcome", "displayblock"); }
function hideWelcome() { setDisplay("welcome", "displaynone"); }

function showMessage() { var msgDiv = document.getElementById("message"); msgDiv.className = "visible"; }
function hideMessage() { var msgDiv = document.getElementById("message"); msgDiv.className = "invisible"; }
function setMessage(msg) {var msgDiv = document.getElementById("message");msgDiv.innerHTML = msg; }

/*************************************************************************************/
/* NEIGHBORHOODS																	 */
/*************************************************************************************/

function showNeighborhoodControls() { var controlDiv = document.getElementById("neighborhood_controls"); controlDiv.className = "displayblock"; }
function showNeighborhoodDiv() { setDisplay("neighborhood", "displayblock"); }


function resetActiveNeighborhoods() {
	setActiveParentNeighborhood('', '');
	setActiveNeighborhood('', '');	
	hideSurvey();
	hideAddForm();	
}

/*************************************************************************************/
/* SURVEY																			 */
/*************************************************************************************/


function displayAddFormMsg(msg) {
	var msgDiv = document.getElementById("AddFormMsg");
	msgDiv.innerHTML = msg;
}

function resetSurvey() {
	var form = window.document.forms['AddHome'];
	
	form.survey_resident.selectedIndex = 0;
	form.survey_returning.selectedIndex = 0;
	form.survey_damage.selectedIndex = 0;
	form.survey_rebuilding.selectedIndex = 0;
	form.survey_future.selectedIndex = 0;
	form.survey_housing.selectedIndex = 0;
	
}

function isActiveAdd() {return active_add;}

function confirmAddClose() {
	return confirm('Are you sure you wish to view another address? \n Your address will not be added to the database.');
}

function showCheckAddressForm() {setDisplay('CheckAddressForm', 'displayblock');}
function hideCheckAddressForm() { setDisplay('CheckAddressForm', 'displaynone');}

function showSurvey() {setDisplay('Survey', 'displayblock');}
function hideSurvey() {setDisplay('Survey', 'displaynone');	}

function showAddForm() {setDisplay('addForm', 'displayblock');}
function hideAddForm() { setDisplay('addForm', 'displaynone');}

function resetAddForm() {
	resetSurvey();
	hideMessage();
	document.forms['AddHome'].street_number.value = "";
	document.forms['AddHome'].street_name.value = "";		
	document.forms['AddHome'].street_type.value = "";
}

function focusAddForm() {
	var addForm = document.getElementById("AddHome");
	
	document.forms['AddHome'].street_number.focus();
}

function getSurvey() {
	
	var form = window.document.forms['AddHome'];
	
	var survey_resident 	= form.survey_resident.options[form.survey_resident.selectedIndex].value;
	var survey_returning 	= form.survey_returning.options[form.survey_returning.selectedIndex].value;
	var survey_damage 		= form.survey_damage.options[form.survey_damage.selectedIndex].value;
	var survey_rebuilding 	= form.survey_rebuilding.options[form.survey_rebuilding.selectedIndex].value;
	var survey_future 		= form.survey_future.options[form.survey_future.selectedIndex].value;
	var survey_housing 		= form.survey_housing.options[form.survey_housing.selectedIndex].value;
	
	var survey = new Array();

	survey["survey_resident"] = survey_resident;
	survey["survey_returning"] = survey_returning;
	survey["survey_damage"] = survey_damage;
	survey["survey_rebuilding"] = survey_rebuilding;
	survey["survey_future"] = survey_future;
	survey["survey_housing"] = survey_housing;
	
	return survey;
}
    
function makeSurveyParamStr(survey) {
	
	var param_str = "";
	
	for (var input in survey) {
		param_str += input + "=" + survey[input] + "&";
	}
	
	param_str = param_str.substring(0, param_str.length-1);
	
	return param_str;		
}

function getQuestionText(question) {
	switch(question) {
		case "survey_resident":		return "Are you?";
									break;
		case "survey_returning":	return "Are you staying?";
									break;
		case "survey_damage":		return "Damage Level";
									break;
		case "survey_rebuilding":	return "Future of Structure";
									break;
		case "survey_future":		return "Future of Property";
									break;
		case "survey_housing":		return "Your Current Housing";
									break;
	}
}


function getAnswerText(question, answer) {
	
	if(answer == "-1") { return "Don't know"; }
	
	switch(question) {
		case "survey_resident":	switch(answer) {
									case "1":	return "Resident";
												break;
									case "2":	return "Landlord";
												break;
									case "3":	return "Renter";
												break;								
								}
								break;
		case "survey_returning":	switch(answer) {
										case "1":	return "Yes";
													break;
										case "2":	return "No";
													break;
									}
									break;
		case "survey_damage":		switch(answer) {
										case "1":	return "None";
													break;
										case "2":	return "Minmal";
													break;
										case "3":	return "Moderate";
													break;
										case "4":	return "Severe";
													break;								
									}
									break;
		case "survey_rebuilding":	switch(answer) {
										case "1":	return "No repairs";
													break;
										case "2":	return "As-is";
													break;
										case "3":	return "Repair";
													break;
										case "4":	return "Bulldoze";
													break;								
									}
									break;
		case "survey_future":		switch(answer) {
										case "1":	return "Sell";
													break;
										case "2":	return "Keep";
													break;
										case "3":	return "Don't Know";
													break;
									}
									break;
		case "survey_housing":		switch(answer) {
										case "1":	return "At property";
													break;
										case "2":	return "Temporary in NOLA";
													break;
										case "3":	return "Temporary outside NOLA";
													break;
										case "4":	return "Trailer on property";
													break;	
										case "5":	return "Trailer in city";
													break;	
										case "6":	return "Trailer elsewhere";
													break;	
									}
									break;
	}
}

/*************************************************************************************/
/* DETAILS																			 */
/*************************************************************************************/
function initDetails() {
	showDetails();
	activateDetail('help');
}

function showDetails() {setDisplay('details', 'displayblock');}

function setActiveDetails(idname) {
	var details = Array('neighborhood', 'address', 'help');
	
	for(var i = 0; i < details.length; i++) {
		deactivateDetail(details[i]);
	}
	
	activateDetail(idname);
}

function activateDetail(idname) {
	var navElem = document.getElementById("detailnav"+idname);
	
	navElem.className = "active";
	
	setDisplay("details"+idname, "displayblock");
}

function deactivateDetail(idname) {
	var navElem = document.getElementById("detailnav"+idname);
	
	navElem.className = "inactive";
	
	setDisplay("details"+idname, "displaynone");
}

/*************************************************************************************/
/* ADDRESS																			 */
/*************************************************************************************/
function showAddressView() {
	setDisplay("detailaddress-noaddress", "displaynone");
	setDisplay("detailaddress-view", "displayblock");
}

function hideAddressView() {
	setDisplay("detailaddress-noaddress", "displayblock");
	setDisplay("detailaddress-view", "displaynone");
}

function resetAddressView() {
	setAddressName("");
	setAddressUsername("");
	resetAddressHistory();
	resetSurveyHistory();
	setDisplay("detailaddress-noaddress", "displayblock");
}

function setAddressName(name) {
	var nameElement = document.getElementById("detail-addressname");
	
	name_array = name.split(" ");
	
	name_array[0] = name_array[0].substring(0, name_array[0].length-2) + "xx";
	
	nameElement.innerHTML = name_array.join(" ");
}

function setAddressUsername(username) {
	var userElement = document.getElementById("detailaddress-username");
	
	userElement.innerHTML = username;
}

function setAddressSurvey() {
	
}

function addAddressHistory(date, username, id) {
	
	var histTbody = document.getElementById("detailaddress-historytbody");

	var newTR = document.createElement("tr");
	
	// CREATE AND APPEND 'date' CELL
	var newDateTD = document.createElement("td");
	
	var tdText = document.createTextNode(date);
	
	newDateTD.appendChild(tdText);
	
	newTR.appendChild(newDateTD);
	
	//*/ CREATE AND APPEND 'username' CELL
	/*
	var newUsernameTD = document.createElement("td");
	
	var tdText = document.createTextNode(username);
	
	newUsernameTD.appendChild(tdText);
	
	newTR.appendChild(newUsernameTD);
	*/
	// CREATE AND APPEND VIEW LINK CELL
 	var viewTD = document.createElement("td");
	
	var viewAnchor = document.createElement("a");
	
	viewAnchor.innerHTML = "View";

	//viewAnchor.onclick = "alert('woohoo!'); setAddressWithId(" + id + "); return false;";
	viewAnchor.onclick = function () {resetAddressView(); setAddressWithId(id); return false; };
	/**/
	viewTD.appendChild(viewAnchor);
	
	newTR.appendChild(viewTD);
	
	// APPEND newTR TO TABLE
	histTbody.appendChild(newTR);
}

function resetAddressHistory() {	
	removeTableRows("detailaddress-historytbody");
}

function addAddressSurvey(question, answer) {
	
	var surveyTbody = document.getElementById("detailaddress-surveytbody");

	var newTR = document.createElement("tr");
	
	// CREATE AND APPEND 'question' CELL
	var questionTD = document.createElement("td");
	
	var tdText = document.createTextNode(question);
	
	questionTD.appendChild(tdText);
	
	newTR.appendChild(questionTD);
	
	// CREATE AND APPEND 'answer' CELL
	var answerTD = document.createElement("td");
	
	var tdText = document.createTextNode(answer);
	
	answerTD.appendChild(tdText);
	
	newTR.appendChild(answerTD);
	
	// APPEND newTR TO TABLE
	surveyTbody.appendChild(newTR);
	
}

function resetSurveyHistory() {
	removeTableRows("detailaddress-surveytbody");
}

function removeTableRows(tablebody_id) {
	//var table = document.getElementById(table_id);	
	//var tbody = table.firstChild;
	
	tbody = document.getElementById(tablebody_id);
	
	var tbodyChildren = tbody.childNodes;
	
	var child_count = tbodyChildren.length;

	for (var i = 0; i < child_count; i++) {
		tbody.removeChild(tbody.lastChild);
	}
}


function setAddressWithId(id) {
	showHistoryForId(id);
}