personInUp.js 4.74 KB
/*
 * requires fittingStrings.js to be loaded first
 */


/*
 * controls input/update formular for person insert
 *
 * Arguments:
 * upId    / ID of the insert checkbox
 * inId    / ID of the update checkbox
 * persons / Array containing all persons already existant in DB
 *
 * Methods:
 * de_activate / de/activate the formular fields for input
 * updateForm  / calls de_activate and controls the checkboxes
 */
function personInUp (
	upId, inId, submitId, person, newPerson, arrRight, arrDown)
{
	this.updBox       = upId;
	this.insBox       = inId;
	this.submitButton = submitId;
	this.arrRight     = arrRight;
	this.arrDown      = arrDown;
	this.person       = person;
	this.newPerson    = newPerson;

	person.connect (this);

	this.showHideBlock = function (titleId)
	{
		var titleElement = document.getElementById (titleId);
		var imgElement   = titleElement.getElementsByTagName ('img')[0];
		var blockElement = titleElement.parentNode;
		var dataElement  = blockElement.getElementsByTagName ('div')[1];

		if (dataElement.style.display == 'none')
		{
			dataElement.style.display = 'block';
			imgElement.src = arrDown.getImgUrl (titleElement);
			
			switch (titleId)
			{
				case 'title_photographer':
					if (this.person._photographerId != -1)
						this.person.photographerId = this.person._photographerId;
					else
						this.person.photographerId = 0;
					break;

				case 'title_owner':
					if (this.person._ownerId != -1)
						this.person.ownerId = this.person._ownerId;
					else
						this.person.ownerId = 0;
			}
		}
		else
		{
			dataElement.style.display = 'none';
			imgElement.src = arrRight.getImgUrl (titleElement);
			
			switch (titleId)
			{
				case 'title_photographer':
					this.person.photographerId = -1;
					break;

				case 'title_owner':
					this.person.ownerId = -1;
			}
		}
	}

	this.de_activate = function (field)
	{
		var updBox = document.getElementById (this.updBox);
		var insBox = document.getElementById (this.insBox);

		if (updBox.checked == true || insBox.checked == true)
			field.disabled = false;
		else
			field.disabled = true;

		return false;
	}

	this.un_fold = function (id, element)
	{
		title = element.parentNode.getElementsByTagName ('div')[0];
		img   = title.getElementsByTagName ('img')[0];

		if (id != -1)
		{
			element.style.display = 'block';
			img.src = this.arrDown.getImgUrl (title);
		}
		else
		{
			element.style.display = 'none';
			img.src = this.arrRight.getImgUrl (title);
		}
	}

	this.updateFields = function (person)
	{
		for (p in person)
		{
			if (p == 'personForm')
				break;

			var field = document.getElementById (p);

			if (field != null)
			{
				field.value = person[p];
				this.de_activate (field);
			}

			switch (p)
			{
				case 'photographerId':
					this.un_fold (person[p],
						document.getElementById (
							'cameraId').parentNode.parentNode.parentNode);
					break;
				case 'ownerId':
					this.un_fold (person[p],
						document.getElementById (
							'wmWidth').parentNode.parentNode.parentNode);
			}
		}
	}

	this.updateForm = function ()
	{
		var updBox       = document.getElementById (this.updBox);
		var insBox       = document.getElementById (this.insBox);
		var submitButton = document.getElementById (this.submitButton);
		var person;

		if (this.person.personId != -1)
		{
			if (insBox.checked == false)
			{
				person = this.person;
				updBox.disabled = false;
			}
			else
			{
				person = this.newPerson;
				updBox.checked = false;
				updBox.disabled = true;
			}
		}
		else
		{
			person = this.newPerson;
			updBox.checked = false;
			updBox.disabled = true;
		}

		if (updBox.checked == true || insBox.checked == true)
			submitButton.disabled = false;
		else
			submitButton.disabled = true;

		this.updateFields (person);

		return false;
	}

	this.selectPerson = function ()
	{
		var insBox = document.getElementById (this.insBox);
		var person;

		if (insBox.checked == true)
			person = this.newPerson;
		else
			person = this.person;

		return person;
	}

	this.setFirstname = function (value)
	{
		this.selectPerson ().firstname = value;
	}

	this.setSurname   = function (value)
	{
		this.selectPerson ().surname = value;
	}

	this.setCompany   = function (value)
	{
		this.selectPerson ().company = value;
	}

	this.setEmail     = function (value)
	{
		this.selectPerson ().email = value;
	}

	this.setUrl       = function (value)
	{
		this.selectPerson ().url = value;
	}

	this.setCameraId  = function (value)
	{
		this.selectPerson ().cameraId = value;
	}

	this.setWmWidth   = function (value)
	{
		this.selectPerson ().wmWidth = value;
	}

	this.setWmHeight  = function (value)
	{
		this.selectPerson ().wmHeight = value;
	}

	this.setWmXPos    = function (value)
	{
		this.selectPerson ().wmXPos = value;
	}

	this.setWmYPos    = function (value)
	{
		this.selectPerson ().wmYPos = value;
	}
}