// // // ______________________________________________________________________ // |copyright Chris Cluss - Berlin http://www.adjustment.de | // |This script is as it is with no warranty. | // |You can use this script or parts of it for any commercial and | // |non-commercial purposes if you leave this copyright note at the | // |head of this script. | // |_____________________________________________________________________| // var formPageChanged = false var formPageValuesArray = new Array() var TabPanelMarkString = ''//'*' //do not "" as quotes in the markstring ... var TabPanelFindString = 'TabPanel' //searching for TabPanel1 or TabPanel2 ... var TabPanelSpanIDPrefix = '__tab_ctl00_mainContent_TabContainer1_' //search the HTMLCode for the span-tag of the tab-panel headline var skipMarkTabPanel = false var pageFormName = "form1" var markColor = "#ffffff" //background-color of the changed Elements if (window.addEventListener) { window.addEventListener('load', initFormChanged, false) } else { window.attachEvent('onload', initFormChanged) TabPanelMarkString = TabPanelMarkString.replace(/"/g, '') //dom-object of IE removes quotes } function initFormChanged() { for (var i = 1; i < document.forms[pageFormName].elements.length; i++) { obj = document.forms[pageFormName].elements[i] var tmpArr = new Array() tmpArr[0] = (obj.id) tmpArr[1] = (obj.type) if (obj.type == 'checkbox' || obj.type == 'radio') { if (window.addEventListener) { obj.addEventListener('click', checkFormPageValues, false) } else { obj.attachEvent('onclick', checkFormPageValues) } tmpArr[2] = (obj.checked) } else { if (window.addEventListener) { obj.addEventListener('change', checkFormPageValues, false) } else { obj.attachEvent('onchange', checkFormPageValues) } tmpArr[2] = (obj.value) } tmpArr[3] = (obj.style.backgroundColor) tmpArr[4] = false formPageValuesArray[i] = (tmpArr) } } function checkFormPageValues(e) { var newFormChangedvalue = false var srcObject if (window.event) { e = window.event srcObject = e.srcElement } else { srcObject = this } for (var i = 0; i < formPageValuesArray.length; i++) { if (formPageValuesArray[i]) { var tmpArr = formPageValuesArray[i] var objType = tmpArr[1] var objValue = tmpArr[2] var srcElementValue if (objType == 'checkbox') { srcElementValue = srcObject.checked } else { srcElementValue = srcObject.value } if (tmpArr[0] == srcObject.id && objValue == srcElementValue) { srcObject.style.backgroundColor = tmpArr[3] tmpArr[4] = false } else if (tmpArr[0] == srcObject.id) { newFormChangedvalue = true tmpArr[4] = true // srcObject.style.backgroundColor = markColor } else if (tmpArr[4] == true) { newFormChangedvalue = true } } } formPageChanged = newFormChangedvalue markTabPanel(srcObject, newFormChangedvalue) } function tabPanelChange() { if (formChanged) { alert(formChanged) } } function markTabPanel(obj, newFormChangedvalue) { if (skipMarkTabPanel) { return } var strg = "" var parentObj = obj.parentNode while (parentObj.parentNode) { strg += "\n" + parentObj.id var arr = parentObj.id.split('_') if (arr.length == 4) { if (arr[3].substring(0, 8) == TabPanelFindString) { var objTab = document.getElementById(TabPanelSpanIDPrefix + arr[3]) if (newFormChangedvalue) { if (getRightTabString(objTab.innerHTML, TabPanelMarkString.length).toLowerCase() != TabPanelMarkString.toLowerCase()) { objTab.innerHTML += TabPanelMarkString } } else { if (getRightTabString(objTab.innerHTML, TabPanelMarkString.length).toLowerCase() == TabPanelMarkString.toLowerCase()) { var le = objTab.innerHTML.length - TabPanelMarkString.length objTab.innerHTML = objTab.innerHTML.substring(0, le) } } } } parentObj = parentObj.parentNode } } function getRightTabString(strg, len) { var iLen = strg.length; return strg.substring(iLen, iLen - len); }