rem: var editableby = parseInt(param.editableby,10); this.editableby = (modifier == this.creator && !isNaN(editableby) ? editableby : this.editableby); 
add: if (modifier == this.creator) this.editableby = !isNaN(param.editableby) ? parseInt(param.editableby,10) : null; 
context: function evalStory(param,modifier) {   var result;   // assign those properties that can be stored anyway   var editableby = parseInt(param.editableby,10);   this.editableby = (modifier == this.creator && !isNaN(editableby) ? editableby : this.editableby);   this.discussions = (param.discussions_array || param.discussions == null ? 1 : 0);   // loop through param and collect content properties   var majorUpdate = false;   var contentIsCool = false;   var cont = this.getContent();   for (var i in param) {      if (i.indexOf ("content_") == 0) {         var part = i.substring(8);         // check if there's a difference between old and         // new text of more than 50 characters:         if (!majorUpdate) {            var len1 = cont[part] ? cont[part].length : 0;            var len2 = 0;            if (param[i])               var len2 = param[i].length;            majorUpdate = Math.abs(len1 - len2) >= 50;         }         cont[part] = param[i];         if (!contentIsCool && param[i])            contentIsCool = true;      }   }   // if all story parts are null, return with error-message   if (!contentIsCool)      return (getError("textMissing"));   this.setContent (cont);   // let's keep the title property   this.title = param.content_title;   this.modifier = modifier;   this.ipaddress = param.http_remotehost;   // check if the createtime is set in param   if (param.createtime) {      var ctime = tryEval ('parseTimestamp(param.createtime, "yyyy-MM-dd HH:mm")');      if (ctime.error)          result = getError("timestampParse",param.createtime);      else if (ctime.value != this.createtime) {         this.createtime = ctime.value;         // create day of story with respect to site-timezone         this.day = formatTimestamp(this.createtime,"yyyyMMdd");      }   }   // check name of topic (if specified)   if (param.topic)      var topicName = param.topic;   else if (!isNaN(parseInt(param.topicidx,10)))      var topicName = this.site.topics.get(parseInt(param.topicidx,10)).groupname;   else      var topicName = null;   if (!isCleanForURL(topicName)) {      // name of topic contains forbidden characters, so return immediatly      return (getError("topicNoSpecialChars"));   } else if (topicName)      this.topic = topicName;   // check online-status of story   var newStatus = parseInt(param.online,10);   if (isNaN(newStatus))      return (getError("storyPublish"));   if (newStatus == 1 && !topicName)      return (getError("storyTopicMissing"));   if (!this.online) {      if (newStatus > 0) {         this.online = newStatus;         this.site.lastupdate = new Date();      }   } else {      if (newStatus > 0 && majorUpdate)         this.site.lastupdate = new Date();      this.online = newStatus;   }   if (majorUpdate)      this.modifytime = new Date();   this.cache.modifytime = new Date();   result = getConfirm("storyUpdate");   result.url = this.online > 0 ? this.href() : this.site.stories.href();   return (result);}
meta: 993	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/993/7ec367eb3e5835f23591bfa4a561f41a9ac1d57b/objectFunctions.js/clean/code/Story/objectFunctions.js