window.Util = ZPIN.Utils; window.Event = ZPIN.Events; var $ = ZPIN.Utils.get; Event.addEventHandler(window, 'load', (function() { var observedInputElements = []; var saveValues = function() { var element, i; var elementsToBeObserved = []; for (i = observedInputElements.length-1; i >= 0; --i) { element = observedInputElements[i]; element.defaultValue = element.value; // In order to get password's value in "clear" text for the user, we'll // create a place holder for the password field and hide the real password // field away intil this placeholder is pressed. // The reason for doing this, and not just simply change the type of the input // to text is auto-complete functionalities of browsers which can lead to passwords // being written in clear text. if (element.type == "password") { // Supporting IE made it impossible to simply use cloneNode and then override it's type var placeHolder = document.createElement("INPUT"); placeHolder.type = "text"; placeHolder.value = element.value; placeHolder.placeHolderFor = element; placeHolder.className = element.className; element.originalDisplay = element.style.display; element.style.display = 'none'; element.value = ""; Util.insertAfter(placeHolder, element); Event.addEventHandler(placeHolder, 'focus', function(e) { e = Event.getEventProperties(e); var t = e.t; e = e.e; t.parentNode.removeChild(t); t.placeHolderFor.style.display = t.placeHolderFor.originalDisplay; t.placeHolderFor.focus(); }); } if (element.type != 'password') elementsToBeObserved.push(element); } // Select all elements, except password fields as they are taken care of differently. observedInputElements = elementsToBeObserved; }; var startObserve = function() { var element, i; for (i = observedInputElements.length-1; i >= 0; --i) { element = observedInputElements[i]; Event.addEventHandler(element, 'focus', function(e) { e = Event.getEventProperties(e); var t = e.t; e = e.e; if (t.value == t.defaultValue) { t.value = ""; } }); Event.addEventHandler(element, 'blur', function(e) { e = Event.getEventProperties(e); var t = e.t; e = e.e; if (t.value == "") { t.value = t.defaultValue; } }); } }; return function(e) { observedInputElements = Util.getElementsByClass('remove_default'); saveValues(); startObserve(); }; })());