function getHex(charCode, lenMin) {
  var result = charCode.toString(16);
  while(result.length<lenMin) {
    result = "0" + result;
  }
  return result;
}


function escapeUnicode(string) {
  var str = string;
  var reg = new RegExp("([\u0080-\uffff])", "");
  var i=0;
  var arr;
  while ((arr = reg.exec(str)) != null) {
    i++;
    if(i>100000) break;
    if(arr.index >= 0) {
      str = str.substring(0, arr.index) +
      "%u" + getHex(RegExp.$1.charCodeAt(0), 4) + str.substring(arr.index+1);
    }
    else {
      break;
    }
  }

  return str;
}

function saveFormValues(){
  var i = 0;
  while ( i < document.forms.length){
    var j = 0;
    while (j < document.forms[i].length){
      if (document.forms[i][j].type == "text" || document.forms[i][j].type == "textarea" || document.forms[i][j].type == "radio"){
        //alert("Name: '"+document.forms[i][j].name+"' - Type: '"+document.forms[i][j].type+"' - before: '"+document.forms[i][j].value+"' - after: '"+escapeUnicode(document.forms[i][j].value)+"'");
        document.forms[i][j].value = escapeUnicode(document.forms[i][j].value);
      }else{
        if (document.forms[i][j].type == "select" || document.forms[i][j].type == "checkbox"){
          var x = 0;
          while ( x < document.forms[i][j].length ){
            document.forms[i][j][x].value = escapeUnicode(document.forms[i][j][x].value);
          }
        }
      }
      j++;
    }
    i++;
  }
}

function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, true); 
    //alert ("onSubmit neu gesetzt fuer: "+obj.name);
		return true; 
	}else if (obj.attachEvent){
	  var r = obj.attachEvent("on"+evType, fn); 
    //alert ("onSubmit neu gesetzt fuer: "+obj.name);
		return r; 
	} else { 
    //alert ("onSubmit NICHT neu gesetzt fuer: "+obj.name);
		return false; 
	} 
} 


//alert("starting");
var i = 0;
while ( i < document.forms.length){
   if (!document.forms[i].noencodevalues || document.forms[i].noencodevalues != 'true') {
      addEvent(document.forms[i], "submit", saveFormValues);
   }
   i++;
}
