summaryrefslogtreecommitdiff
path: root/webconsole/js/ProfileWindow.js
diff options
context:
space:
mode:
Diffstat (limited to 'webconsole/js/ProfileWindow.js')
-rw-r--r--webconsole/js/ProfileWindow.js946
1 files changed, 946 insertions, 0 deletions
diff --git a/webconsole/js/ProfileWindow.js b/webconsole/js/ProfileWindow.js
new file mode 100644
index 0000000..d01caa7
--- /dev/null
+++ b/webconsole/js/ProfileWindow.js
@@ -0,0 +1,946 @@
+//
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+//
+// Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+//
+// The contents of this file are subject to the terms of either
+// the GNU General Public License Version 2 only ("GPL") or
+// the Common Development and Distribution License("CDDL")
+// (collectively, the "License"). You may not use this file
+// except in compliance with the License. You can obtain a copy
+// of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+// License for the specific language governing permissions and
+// limitations under the License. When distributing the software,
+// include this License Header Notice in each file and include
+// the License file at /legal/license.txt. If applicable, add the
+// following below the License Header, with the fields enclosed
+// by brackets [] replaced by your own identifying information:
+// "Portions Copyrighted [year] [name of copyright owner]"
+//
+// Contributor(s):
+//
+// If you wish your version of this file to be governed by
+// only the CDDL or only the GPL Version 2, indicate your
+// decision by adding "[Contributor] elects to include this
+// software in this distribution under the [CDDL or GPL
+// Version 2] license." If you don't indicate a single choice
+// of license, a recipient has the option to distribute your
+// version of this file under either the CDDL, the GPL Version
+// 2 or to extend the choice of license to its licensees as
+// provided above. However, if you add GPL Version 2 code and
+// therefore, elected the GPL Version 2 license, then the
+// option applies only if the new code is made subject to such
+// option by the copyright holder.
+//
+
+function submitCurrentSelection(hrefTag) {
+ var newLocation = hrefTag.href.substring(hrefTag.href.indexOf('=')+1, hrefTag.href.length);
+ window.location ="../manager/PolicySettingsContent?PolicySettingsContent.CategoryHref=" + newLocation;
+ return false;
+}
+
+
+function closeWindow() {
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert1);
+ if (agree != true) {
+ closeEditorAndRefresh()
+ return false;
+ }
+ }
+ closeEditorAndRefresh()
+}
+
+function closeEditorAndRefresh() {
+ refreshMainWindow();
+ if (window.parent != null) {
+ if (window.parent.parent != null) {
+ if (window.parent.parent.parent != null) {
+ window.parent.parent.parent.close();
+ }
+ window.parent.parent.close();
+ }
+ window.parent.close();
+ }
+ window.close();
+}
+
+function closeEditorWindow() {
+ if (document.getElementById("isNewProfile") != null && document.getElementById("isNewProfile").value == "true") {
+ return true;
+ } else if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert1);
+ if (agree != true) {
+ closeEditorAndRefresh()
+ return false;
+ } else {
+ updateDisabledFields();
+ return true;
+ }
+ } else {
+ closeEditorAndRefresh();
+ return false;
+ }
+}
+
+function triggerCloseButton() {
+ var doc = getContentDocument();
+ doc.getElementById("CloseEditorButton").click();
+}
+
+function getContentForm() {
+ var form = null;
+ if (window.parent.frames[1].name == 'content') {
+ form = window.parent.content.con.contents.document.Form;
+ }
+ if (window.parent.frames[1].name == 'con') {
+ form = window.parent.con.contents.document.Form;
+ }
+ if (form == null) {
+ form = document.ProfileForm;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.ProfileForm;
+ }
+ if (form == null) {
+ form = document.Form;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.Form;
+ }
+ return form;
+}
+
+
+function getButtonsForm() {
+ var form = document.ButtonsForm;
+ if (form == null) {
+ form = window.parent.frames['buttons'].document.ButtonsForm;
+ }
+ return form;
+}
+
+function getContentDocument() {
+ var form = null;
+ var frame = self;
+ if (window.parent.frames[1].name == 'content') {
+ form = window.parent.content.cown.contents.document.Form;
+ frame = window.parent.content.cown.contents.document;
+ }
+ if (window.parent.frames[1].name == 'con') {
+ form = window.parent.con.contents.document.Form;
+ frame = window.parent.con.contents.document;
+ }
+ if (form == null) {
+ form = document.ProfileForm;
+ frame = document;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.ProfileForm;
+ frame = window.parent.frames['contents'].document;
+ }
+ if (form == null) {
+ form = document.Form;
+ frame = document;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.Form;
+ frame = window.parent.frames['contents'].document;
+ }
+ return frame;
+}
+
+function getButtonsFrame() {
+ var form = document.ButtonsForm;
+ var frame = self;
+ if (form == null) {
+ if (window.parent.frames['buttons'] != null) {
+ form = window.parent.frames['buttons'].document.ButtonsForm;
+ frame = window.parent.frames['buttons'];
+ }
+ }
+ if (form == null) {
+ if (window.parent.frames['content'].frames['con'] != null) {
+ form = window.parent.frames['content'].frames['con'].frames['buttons'].document.ButtonsForm;
+ frame = window.parent.frames['content'].frames['con'].frames['buttons'];
+ }
+ }
+ if (form == null) {
+ if (window.parent.parent.frames['content'].frames['con'] != null) {
+ form = window.parent.parent.frames['content'].frames['con'].frames['buttons'].document.ButtonsForm;
+ frame = window.parent.parent.frames['content'].frames['con'].frames['buttons'];
+ }
+ }
+ return frame;
+}
+
+
+function openTemplateHelp() {
+ var windowHref = '/apoc/manager/TemplateHelpWindow';
+ var openedWindow = null;
+ var openerWindow = window;
+ var windowName = 'TemplateHelpWindow';
+ var height = 600;
+ var width = 0.6;
+ var bGoldenMean = true;
+
+ if (windowHref.charAt(windowHref.length-1)!="&") {
+ if (windowHref.indexOf("?")>-1) {
+ windowHref=windowHref+"&";
+ } else {
+ windowHref=windowHref+"?";
+ }
+ }
+ windowHref=windowHref+"com_sun_web_ui_popup=true&";
+
+ if ( (openedWindow != null) && (openedWindow.closed==false) ) {
+ openedWindow.location.href=windowHref;
+ } else {
+ if (windowName==null) {
+ windowName = "a"+Math.ceil(Math.random()*1000000000).toString();
+ }
+ if (height<=1) {
+ height = screen.height*height;
+ }
+ if (width<=1) {
+ width = screen.width*width;
+ }
+ var topPos = 0;
+ var leftPos = (screen.width-width)/2;
+ if (bGoldenMean) {
+ topPos = (screen.height-(screen.height/1.618))-(height/2);
+ } else {
+ topPos = (screen.height-height)/2;
+ }
+ if (openerWindow==null) {
+ openerWindow=window;
+ }
+ openedWindow = openerWindow.open(windowHref, windowName, 'height='+height+',width='+width+',top='+topPos+',left='+leftPos+',scrollbars,resizable');
+ }
+ openedWindow.focus();
+}
+
+function getPagePath() {
+ return self.opener.getContentDocument().getElementById("HelpPage").value
+}
+
+function saveChanges() {
+ getContentForm().submit();
+}
+
+function switchToTab(index) {
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert2);
+ if (agree == true) {
+ updateDisabledFields();
+ saveChanges();
+ return true;
+ } else {
+ parent.location.href='../manager/ProfileWindowFrameset?SelectedEditorTab='+index+'&com_sun_web_ui_popup=true&';
+ return true;
+ }
+ } else {
+ parent.location.href='../manager/ProfileWindowFrameset?SelectedEditorTab='+index+'&com_sun_web_ui_popup=true&';
+ return true;
+ }
+}
+
+function displayCategory(link, selectedCategory) {
+ var currentCategory = document.getElementById("CurrentCategory").value;
+ if (selectedCategory.indexOf("#") != -1) {
+ selectedCategory = selectedCategory.substring(0, selectedCategory.indexOf("#"));
+ var anchor = selectedCategory.substring(selectedCategory.indexOf("#"), selectedCategory.length);
+ if (currentCategory == selectedCategory) {
+ return true;
+ }
+ } else {
+ if (currentCategory == selectedCategory) {
+ return true;
+ }
+ }
+
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert3);
+ if (agree == true) {
+ var sHref = link.href;
+ if (sHref.indexOf("&isSaveRequired=") != -1) {
+ sHref = sHref.substring(0, sHref.indexOf("&isSaveRequired="));
+ }
+ sHref = sHref + "&isSaveRequired=true";
+ link.href = sHref;
+ updateDisabledFields();
+ saveChanges();
+ }
+ }
+ return true;
+}
+
+function enableSaveButton(form) {
+ var elements = form.elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ button.disabled='';
+ button.className='Btn1';
+ break;
+ }
+ }
+}
+
+function disableSaveButton(form) {
+ var elements = form.elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ button.disabled=true;
+ button.className='Btn1Dis';
+ break;
+ }
+ }
+}
+
+function unstoredChanges() {
+ var needsSave = false;
+ var elements = getContentForm().elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ if (button.disabled == '') {
+ needsSave = true;
+ }
+ break;
+ }
+ }
+ return needsSave;
+}
+
+
+function enableSaveButtons() {
+ enableSaveButton(getContentForm());
+ enableSaveButton(getButtonsForm());
+}
+
+function disableSaveButtons() {
+ disableSaveButton(getContentForm());
+ disableSaveButton(getButtonsForm());
+}
+
+function updateButtonsArea() {
+ window.parent.frames['buttons'].location = '../manager/PolicySettingsButtons';
+}
+
+function getSelectedSetName(doc, filterPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+
+ while (doc.links[viewLinkPos]!=null) {
+ if ( (doc.links[viewLinkPos].href.indexOf(".SubPageHref")!=-1) &&
+ (doc.links[viewLinkPos].href.indexOf(filterPara)!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(doc, filterPara, checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (doc.forms[0].elements[checkboxOptionPos]!=null) {
+ if (doc.forms[0].elements[checkboxOptionPos].checked==true) {
+ selectedLink = doc.links[viewLinkPos];
+ break;
+ }
+ checkboxOptionPos = getNextCheckboxPos(doc, filterPara, checkboxOptionPos);
+ viewLinkPos++;
+ }
+
+ return selectedLink;
+}
+
+function requestSetPropertyName(buttonTag, alertText, isReplace, document) {
+ var defaultValue = "";
+ if (isReplace=="true") {
+ defaultValue = getSelectedSetName(document, ".").text;
+ }
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert4);
+ if (agree == true) {
+ var f=getContentForm();
+ f.elements['SaveAllPage'].value = "true";
+
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ } else {
+ var f=getContentForm();
+ f.elements['SaveAllPage'].value = "false";
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ }
+ } else {
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var f=getContentForm();
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ }
+}
+
+function extractSectionName(elementName) {
+ var section = elementName;
+ var pos = section.indexOf('.PoliciesSectionTiledView');
+ if (pos == -1) {
+ pos = section.lastIndexOf('.');
+ }
+ section = section.substring(0, pos);
+ section = section.substring(section.lastIndexOf('.')+1, section.length);
+ return section
+}
+
+function setTargetAnchor(elementName) {
+ var form = document.Form;
+ var pos = form.action.lastIndexOf('#');
+ if (pos != -1) {
+ form.action = form.action.substring(0, pos);
+ }
+ form.action=form.action + '#' + extractSectionName(elementName);
+}
+
+function addRequestParameter(name, value) {
+ var form = document.Form;
+ form.action=form.action + '?' + name + '=' + value + '&';
+}
+
+function sendStatusAreaRequest(name, value) {
+ window.parent.frames['buttons'].location = '../manager/PolicySettingsButtons' + '?' + name + '=' + value + '&';
+}
+
+function toggleDisabledState(sectionName) {
+ var enableButton = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.EnableButton';
+ var disableButton = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.DisableButton';
+ var actionMenu = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.ActionMenu';
+ var elementName = 'PolicySettingsContent.PolicyTemplateContent.' + sectionName + '.PoliciesSectionTable.SelectionCheckbox';
+ var form = document.Form;
+ var disabled = true;
+
+ for (i = 0; i < form.elements.length; i++) {
+ var e = form.elements[i];
+
+ if ((e.name.indexOf(elementName) != -1) &&
+ (e.name.indexOf('jato_boolean') == -1)) {
+ if (e.checked) {
+ disabled = false;
+ break;
+ }
+ }
+ }
+
+ // Toggle action button disabled state.
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 0);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 1);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 2);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 3);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 4);
+ ccSetButtonDisabled(enableButton, "Form", disabled);
+ ccSetButtonDisabled(disableButton, "Form", disabled);
+}
+
+function updateSaveStatus(element) {
+ var contentForm = getContentForm();
+ var currentValues = updateValues(false);
+ var originalValues = contentForm['PolicySettingsContent.OriginalValues'].value;
+ if (currentValues != originalValues) {
+ setTargetAnchor(element);
+ enableSaveButtons();
+ } else {
+ disableSaveButtons();
+ }
+}
+
+function updateGeneralSettingsSaveStatus() {
+ var currentNameValue = document.getElementById("psLbl1").value;
+ var currentCommentValue = document.getElementById("psLbl2").value;
+ var originalNameValue = document.getElementById("originalName").value;
+ var originalCommentValue = document.getElementById("originalComment").value;
+ var allCurrentValues = currentNameValue + ";" + currentCommentValue;
+ var allOriginalValues = originalNameValue + ";" + originalCommentValue;
+ if (allCurrentValues != allOriginalValues) {
+ enableSaveButtons();
+ } else {
+ disableSaveButtons();
+ }
+ document.getElementById("isNewProfile").value = "false";
+}
+
+function updateValues(isOriginalLoad) {
+ var prefix1 = "PolicySettingsContent.PolicyTemplateContent." ;
+ var prefix2 = ".PoliciesSectionTiledView[" ;
+ var prefix3 = "].PropertyValue" ;
+ var enforcedPrefix = ".Enforced";
+
+ var valueList = "" ;
+ var contentForm = getContentForm();
+ for(var i = 0; i < contentForm.elements.length; i++) {
+ var element = contentForm.elements[i] ;
+ if((element.name.indexOf(prefix1) == 0)
+ && (element.name.indexOf(prefix2) != -1)
+ && (element.name.indexOf(prefix3) == element.name.length-prefix3.length)) {
+ var value = element.value ;
+
+ // Need to handle checkboxes differently since checkbox.value always returns true,
+ // its necessary to check the .checked value of a checkbox
+ if(element.type == "checkbox" && element.checked != true) {
+ value = "false" ;
+ }
+
+ // Need to deal with radiobuttons individually and see if they are checked
+ // and only add them to the list if they are checked
+ if(element.type == "radio") {
+ if(element.checked == true) {
+ value = element.value ;
+ valueList = valueList + value + "|";
+ }
+ } else {
+ valueList = valueList + value + "|" ;
+ }
+ } else if (element.name.indexOf(enforcedPrefix) == element.name.length-enforcedPrefix.length) {
+ if(element.checked != true) {
+ value = "false" ;
+ } else {
+ value = "true" ;
+ }
+ valueList = valueList + value + "|" ;
+ }
+ }
+ if (isOriginalLoad) {
+ contentForm['PolicySettingsContent.OriginalValues'].value = valueList ;
+ }
+ return valueList;
+}
+
+function isSaveNecessary() {
+ var wnd = window.parent.frames['buttons'];
+ var form = wnd.document.Form;
+ var saveButton = form.elements['SettingsButtons.SaveButton'];
+ if (saveButton.disabled == false) {
+ var answer = confirm("Sie haben mehrere Aenderungen auf dieser Seite gemacht.\nMoechten Sie diese Aenderungen jetzt speichern?");
+ if (answer == true) {
+ window.document.Form.submit();
+ return true;
+ }
+ }
+ return false;
+}
+
+function requestUserInput(buttonTag) {
+ var returnValue = prompt(getButtonsFrame().alert5,'');
+ if (returnValue=='' || returnValue==null) return false;
+ var f=document.Form;
+ f.elements['UserInput'].value = returnValue;
+ return true;
+}
+
+function addNewListItem(valueFieldId) {
+ if (requestUserInput(null) != true) return;
+ var f = document.Form;
+ var separator = f.elements['Separator' + valueFieldId].value;
+ var newEntry = f.elements['UserInput'].value
+ var selection = f.elements['List' + valueFieldId];
+ if (!(selection.options[0].value == localizedNotSet)) {
+ for(var i = selection.length; i > 0; i--) {
+ selection[i] = new Option(selection.options[i-1].value, selection.options[i-1].value);
+ }
+ }
+ selection[0] = new Option(newEntry, newEntry);
+ selection.selectedIndex = 0;
+
+ var hidden = f.elements[valueFieldId];
+ var buffer = newEntry;
+ var text = hidden.value;
+ if (text.length > 0) {
+ if (!(text == localizedNotSet)) {
+ buffer = buffer + separator + text;
+ }
+ }
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+}
+
+
+function removeListItem(valueFieldId) {
+ var f=document.Form;
+ var selection = f.elements['List' + valueFieldId];
+ var separator = f.elements['Separator' + valueFieldId].value;
+ if (selection.selectedIndex != -1) {
+ var hidden = f.elements[valueFieldId];
+ for(var i=0; i < selection.length; i++) {
+ if (selection[i].selected == true) {
+ selection[i] = null;
+ i = i - 1;
+ }
+ }
+ selection.selectedIndex = -1;
+ var buffer = '';
+ for(var i = 0; i < selection.length; i++) {
+ buffer = buffer + selection.options[i].value;
+ if (i < selection.length -1) {
+ buffer = buffer + separator;
+ }
+ }
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+ if (selection.length == 0) clearList(valueFieldId);
+ }
+}
+
+function clearList(valueFieldId) {
+ var f=document.Form;
+ var selection = f.elements['List' + valueFieldId];
+ var hidden = f.elements[valueFieldId];
+ for(var i=0; i < selection.length; i++) {
+ selection[i] = null;
+ i = i - 1;
+ }
+ selection.selectedIndex = -1;
+ var buffer = localizedNotSet;
+ selection[0] = new Option(buffer, buffer);
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+}
+
+function setCurrentCategory(catName) {
+ var hiddenCat = window.parent.parent.frames.tree.document.getElementById("CurrentCategory");
+ var hiddenCatValue = hiddenCat.value;
+ if (hiddenCatValue.indexOf("#") == -1) {
+ hiddenCat.value = catName;
+ } else {
+ var mainCat = hiddenCatValue.substring(0, hiddenCatValue.indexOf("#"));
+ if (catName != mainCat) {
+ hiddenCat.value = catName;
+ }
+ }
+}
+
+function refreshNavigationTree() {
+ window.parent.parent.frames.tree.document.TreeForm.submit();
+}
+
+function refreshSettingsArea() {
+ window.parent.frames['con'].location = '../manager/PolicySettingsFrameset';
+}
+
+function refreshMainWindow() {
+
+ var topWindow = top.m_OpenerTop;
+ if (topWindow.content != null ) {
+ topWindow.content.document.forms[0].submit();
+ } else if (topWindow.document.forms[0] != null && topWindow.document.forms[0].name == "OnePaneForm") {
+ topWindow.document.forms[0].submit();
+ }
+}
+
+function jumpTo(anchor) {
+ if (window.parent.frames['con'] != null) {
+ window.parent.frames['con'].frames['contents'].location.hash=anchor;
+ } else {
+ window.location.hash=anchor;
+ }
+}
+
+function resetField(clearButton) {
+ var f = document.Form;
+ var fieldId = clearButton.name;
+ fieldId = fieldId.substring(0, fieldId.length - 5);
+ f.elements[fieldId].value = localizedNotSet;
+ updateSaveStatus(fieldId);
+ toggleOverwriteCheckboxFromId(fieldId);
+}
+
+function setDefaultFieldValue(id, value) {
+ var f = document.Form;
+ f.elements[id].value = value;
+ updateSaveStatus(id);
+ toggleOverwriteCheckboxFromId(id);
+}
+
+function setListToDefault(listName, defaultValue, listSeparator) {
+ var values = defaultValue.split(listSeparator);
+ var contentForm = getContentForm();
+ contentForm[listName].value = defaultValue;
+ var listSetting = contentForm['List'+ listName];
+ if (listSetting.options != null) {
+ listSetting.options.length = 0;
+ }
+ for(var i = 0; i < values.length; i++) {
+ listSetting.options[i] = new Option(values[i], values[i]);
+ }
+ updateSaveStatus(listName);
+ toggleOverwriteCheckboxFromId(listName);
+}
+
+function updateDisabledFields() {
+ var prefix1 = "PolicySettingsContent.PolicyTemplateContent." ;
+ var prefix1Length = prefix1.length ;
+ var prefix2 = ".PoliciesSectionTiledView[" ;
+ var prefix2Length = prefix2.length ;
+ var prefix3 = "].PropertyValue" ;
+ var disabledValues = "" ;
+ var contentForm = getContentForm();
+ for(var i = 0; i < contentForm.elements.length; i++) {
+ var element = contentForm.elements[i] ;
+
+ if(element.disabled == true) {
+ if((element.name.indexOf(prefix2) != -1) && (element.name.indexOf(prefix3) != -1)) {
+ var sectionName = element.name.substring(prefix1Length, element.name.indexOf(prefix2)) ;
+ var index = element.name.substring(prefix1Length + sectionName.length + prefix2Length, element.name.indexOf(prefix3)) ;
+ var value = element.value ;
+
+ // Need to handle checkboxes differently since checkbox.value always returns true,
+ // its necessary to check the .checked value of a checkbox
+ if(element.type == "checkbox" && element.checked != true) {
+ value = "false" ;
+ }
+
+ // Need to deal with radiobuttons individually and see if they are checked
+ if(element.type == "radio") {
+ if(element.checked == true) {
+ value = element.value ;
+ disabledValues = disabledValues + sectionName + "|" + index + "|" + value + "|" ;
+ }
+ } else {
+ disabledValues = disabledValues + sectionName + "|" + index + "|" + value + "|" ;
+ }
+ }
+ }
+ }
+ if (contentForm['PolicySettingsContent.DisabledFieldsValues'] != null) {
+ contentForm['PolicySettingsContent.DisabledFieldsValues'].value = disabledValues ;
+ }
+}
+
+//******** BEGIN Color Chooser Functions
+var colorFieldName = null ;
+
+function setColorChooserName(buttonName) {
+ var cutStringPoint = buttonName.lastIndexOf(".");
+ colorFieldName = buttonName.substring(0, cutStringPoint).concat(".ColorNameDropDown") ;
+ return true ;
+}
+
+function getColorChooserName() {
+ return colorFieldName ;
+}
+
+
+function updateColorChoosers(colorNames, colorValues, localizedNoName) {
+ var colorNamesLength = 0;
+ var contentDocForm = document.Form ;
+
+ //Runs through all elements in content area and checks if they are colorchoosers buttons
+ //then uses the colorchooser button name to create the drop-down menu name
+ for(var i=0; i < contentDocForm.elements.length; i++) {
+ if(contentDocForm.elements[i].name.search("ColorNameDropDown") != -1) {
+ var dropDownMenuName = contentDocForm.elements[i].name;
+ var selectedColorIndex = contentDocForm[dropDownMenuName].selectedIndex;
+ var selectedColorName = contentDocForm[dropDownMenuName].options[selectedColorIndex].text;
+ //Adds default options to drop-down menu
+ contentDocForm[dropDownMenuName].options[0] = new Option(localizedNotSet, localizedNotSet);
+ contentDocForm[dropDownMenuName].options[1] = new Option(localizedNoName, "");
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[0].text) {
+ selectedColorIndex = 0 ;
+ }
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[1].text) {
+ selectedColorIndex = 1 ;
+ }
+ for(var j=0; j < colorNames.length; j++){
+ contentDocForm[dropDownMenuName].options[j+2] = new Option(colorNames[j], colorValues[j]);
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[j+2].text) {
+ selectedColorIndex = j+2 ;
+ }
+ }
+ //Resets the selected index to its correct value after adding option
+ contentDocForm[dropDownMenuName].options[selectedColorIndex].selected=true;
+ contentDocForm[dropDownMenuName].options.length=colorNames.length + 2;
+ }
+ }
+}
+
+
+function setFromDropDown(prop) {
+ var dropdown = document.getElementById("colorNameDropDown"+prop);
+ var index = dropdown.selectedIndex;
+ var value = dropdown.options[index].value;
+ document.getElementById("newColor"+prop).value=value;
+ document.getElementById("colorsquare"+prop).style.backgroundColor=value;
+ document.Form.elements[unescape(prop)].onchange();
+}
+
+function checkValidHexValue(field, qualName){
+ var hex = document.Form.elements[field].value;
+ if (hex == localizedNotSet) {
+ updateColorChooserExtras(qualName, localizedNotSet);
+ } else {
+ var hexNoHash;
+ var cutStringPoint = field.lastIndexOf(".");
+ var origValueField = field.substring(0, cutStringPoint).concat(".OriginalValue") ;
+ var origValue = document.Form.elements[origValueField].value;
+
+ if (hex.substring(0,1)=="#") {
+ hexNoHash = hex.substring(1);
+ } else {
+ hexNoHash = hex;
+ if (hex.length != 0) {
+ hex = "#" + hex;
+ document.Form.elements[field].value = hex;
+ }
+ }
+ if (hexNoHash.length != 6 && hexNoHash.length != 0){
+ alert(invalidHex);
+ document.Form.elements[field].value=origValue;
+ hex=origValue;
+ } else {
+ hexNoHash = hexNoHash.toLowerCase();
+ hexchars="0123456789abcdef";
+ out=0;
+ for (a=hexNoHash.length-1;a>=0;a--) {
+ var aChar = hexNoHash.charAt(a);
+ aChar = aChar.toLowerCase();
+ index = hexchars.indexOf(aChar);
+ if (index==-1)
+ out = -1;
+ }
+ if (out==-1) {
+ alert(invalidHex);
+ document.Form.elements[field].value=origValue;
+ hex=origValue;
+ }
+ }
+ updateColorChooserExtras(qualName, hex)
+ }
+}
+
+function updateColorChooserExtras(qualName, hexValue) {
+ if (hexValue == localizedNotSet) {
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=0;
+ document.getElementById("colorsquare"+qualName).style.backgroundColor="";
+ } else {
+ document.getElementById("colorsquare"+qualName).style.backgroundColor=hexValue;
+ var dropDown = document.getElementById("colorNameDropDown"+qualName);
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=1;
+ for(i=0; i < dropDown.length; i++) {
+ if(hexValue.toLowerCase() == dropDown.options[i].value) {
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=i;
+ break;
+ }
+ }
+ }
+ toggleOverwriteCheckbox(document.getElementById("newColor" + qualName));
+}
+
+//************* END Color Chooser Functions
+
+//************* START Chooser Functions
+var chooserName = null ;
+var chooserID = null ;
+
+function setChooserName(buttonName) {
+ chooserName = buttonName ;
+ return true ;
+}
+
+
+function setChooserID(id) {
+ chooserID = id;
+ return true ;
+}
+
+
+function getChooserID() {
+ return chooserID ;
+}
+
+function getChooserName() {
+ return chooserName ;
+}
+
+function updateChoosers(optionsArray) {
+ var f = document.Form ;
+ var cutStringPoint = chooserName.lastIndexOf(".") ;
+ chooserBtnName = chooserName.substring(cutStringPoint + 1, chooserName.length) ;
+ //Runs through all elements in content area and checks if they are chooser buttons of
+ //of the correct type(i.e of the type that clicked the 'Edit' button) -
+ //then uses the chooser button name to create the drop-down menu name
+ for(var i=0; i < f.elements.length; i++) {
+ cutStringPoint = f.elements[i].name.lastIndexOf(".") ;
+ elementName = f.elements[i].name.substring(cutStringPoint + 1, f.elements[i].name.length) ;
+ if(elementName == chooserBtnName) {
+ var cutStringPoint = f.elements[i].name.lastIndexOf(".");
+ var dropDownMenuName = f.elements[i].name.substring(0, cutStringPoint).concat(".PropertyValue") ;
+ var selectedListIndex = f[dropDownMenuName].selectedIndex ;
+ var selectedListName = f[dropDownMenuName].options[selectedListIndex].text ;
+ f[dropDownMenuName].options.length = 0 ;
+ //Adds new options to drop-down menu
+ for(var j=0; j < optionsArray.length; j++){
+ f[dropDownMenuName].options[j] = new Option(optionsArray[j], optionsArray[j]) ;
+ if(selectedListName.match(f[dropDownMenuName].options[j].text)) {
+ selectedListIndex = j ;
+ }
+ }
+ //Resets the selected index to its correct value after adding option
+ f[dropDownMenuName].options[selectedListIndex].selected=true;
+ }
+ }
+}
+
+function compareCaseInsensitive(a, b) {
+ var anew = a.toLowerCase();
+ var bnew = b.toLowerCase();
+ if (anew < bnew) return -1;
+ if (anew > bnew) return 1;
+ return 0;
+//************* END Chooser Functions
+}