In Brief
This script calls a function at an interval of every 100ms or so (as it's not guaranteed) to try to verify for the DOM's load status to add a hook on it.
If loaded, it then processes all the forms present in the page, looking for one with an "action" attribute (usually to submit it someplace, here contacts/index/post
).
To all such forms found, it adds a new hidden input element containing "seed" value, but we cannot tell you what it is used for without knowing more about the codebase.
Detailed Code Review
// seed value, purpose unknown
window.HDUSeed='c7025284683262a8eb81056c48968d74';
// invoke this function every 100ms
// see: https://developer.mozilla.org/en/DOM/window.setInterval
window.HDUSeedIntId = setInterval(function(){
// checks if document.observe method exists (added by the Prototype
// JavaScript library, so we use this here to check its presence or
// that it's been already loaded)
if (document.observe) {
// hook on load status (when the page's DOM has finished loading)
// see: http://www.prototypejs.org/api/document/observe
document.observe('dom:loaded', function(){
// process all forms contained within the page's context
// see: https://developer.mozilla.org/en/DOM/document.forms
for (var i = 0; i < document.forms.length; i++) {
// only act on forms with the 'contacts/index/post/' action attribute
// see: https://developer.mozilla.org/en/DOM/document.forms
// and: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/match
if (document.forms[i].getAttribute('action') &&
document.forms[i].getAttribute('action').match('contacts/index/post')) {
// create an element...
// see: https://developer.mozilla.org/en/DOM/document.createElement
var el = document.createElement('input');
el.type = ('hidden'); // ... that is hidden
el.name = 'hdu_seed'; // w/ name 'hdu_seed'
el.value = window.HDUSeed; // and the seed value
document.forms[i].appendChild(el); // and add it to the end of the form
}
}
});
// Remove the interval to not call this stub again,
// as you've done what you want.
// To do this, you call clearInterval with the ID of the
// interval callback you created earlier.
// see: https://developer.mozilla.org/en/DOM/window.clearInterval
clearInterval(window.HDUSeedIntId)
}
}, 100); // 100ms