//
//
// ______________________________________________________________________
// |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);
}