function hasChanged(myform) {
    var result = false;
    for (var i = 0, j = myform.elements.length; i < j; i++) {
        myType = myform.elements[i].type;
        if ((myType == 'checkbox' || myType == 'radio') &&
            (myform.elements[i].checked != myform.elements[i].defaultChecked)) {
          result = true;
          break;
        }
        // bei den textareas, welche mit dem TinyMCE-Editor bearbeitet werden können,
        // muss nach Wechseln der Rubrik der aktuelle Wert mit der Methode tinyMCE.getContent() ermittelt werden.
        // Die Methode myform.elements[i].value liefert nicht den aktuellen eingestellten Wert.
        if (myType == 'textarea' && (
             myform.elements[i].name == 'welcomeText'
          || myform.elements[i].name == 'descriptionPictureText'
          || myform.elements[i].name == 'actionDescription'
          || myform.elements[i].name == 'pictureText'
          || myform.elements[i].name == 'textdescription'
          || myform.elements[i].name == 'customAgbText'
          || myform.elements[i].name == 'greetingsText'
          || myform.elements[i].name == 'productDescriptionShort'
          || myform.elements[i].name == 'productDescriptionLong'
          || myform.elements[i].name == 'productApplicationArea'
          || myform.elements[i].name == 'article_adjuvants') && (tinyMCE.getContent() != myform.elements[i].defaultValue)) {
        	result = true;
          break;
        }
        if ((myType == 'password' || myType == 'text' || myType == 'textarea' || myType == 'file') &&
            (myform.elements[i].value != myform.elements[i].defaultValue)) {
          result = true;
          break;
        }
        if ((!result) && (myType == 'select-one' || myType == 'select-multiple')) {
            list = myform.elements[i];
            for (var k = 0, l = list.options.length; k < l; k++) {
              if (list.options[k].defaultSelected) {
                if (list.options[k].value != list.options[list.selectedIndex].value) {
                  result = true;
                  break;
                }

              }
            }


        }
    }
    return result;
}

/* called if the user clicks somewhere on a link or button:
   check if the page has changed
   if true - ask the user if he wants to save the page ->
      if true - do the save return true;
        else return false;
*/
/* DB: Änderung nach Absprache vom 08.Aug 2003 mit Werner!
   integrated custom form changed function

*/
function askForSave(form) {
  var result = false;

if (window.customHasChanged) {
    formChanged = customHasChanged();
  } else {
    formChanged = hasChanged(form);
  }

  if (formChanged) {
    if(confirm("Die Seite wird ohne zu speichern verlassen. ")) {
      result = true;
    } else {
      result = false;
    }
  } else {
    result = true;
  }
  return result;
}