/* * 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 personForm ( 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]; var insBox = document.getElementById (this.insBox); var person = (insBox.checked == true)? this.newPerson: this.person; switch (titleId) { case 'title_photographer': var id = 'photographerId'; var _id = '_photographerId'; break; case 'title_owner': var id = 'ownerId'; var _id = '_ownerId'; } if (dataElement.style.display == 'none') if (person[_id] != -1) person[id] = person[_id]; else person[id] = 0; else person[id] = -1; this.un_fold (person[id], dataElement) } this.sendForm = function (formId) { var form = document.getElementById (formId); var action = form.getAttribute ('action'); form.setAttribute ( 'action', action + '?action=delete&personId=' + this.person.personId); form.submit (); return false; } 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) { var title = element.parentNode.getElementsByTagName ('div')[0]; var img = title.getElementsByTagName ('img')[0]; var classes = ''; var _classes = title.className.split (' '); for (c in _classes) if (_classes[c][0] != 'f') classes += ' ' + _classes[c]; if (id != -1) { element.style.display = 'block'; title.className = classes + ' f-grp-head1'; img.src = this.arrDown.getImgUrl (title); } else { element.style.display = 'none'; title.className = classes + ' f-grp-head-unset1'; 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.value = submit_str; submitButton.disabled = false; } else { if (this.person.personId != -1) { submitButton.value = delete_str; submitButton.disabled = false; } else { submitButton.value = submit_str; 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; } }