function placeholderize() {
	// shortcut to attach listeners
	function attach(el, type, fn) {
		if (document.addEventListener) {
			el.addEventListener(type, fn, false);
		}
		else if(document.attachEvent) {
			el.attachEvent('on' + type, fn);
		}
	}
	function setup(input) {
		if (input.placeholderized) {
			return;
		}
		input.placeholderized = true;
		// observers
		function setIfEmpty() {
			if (input.value == '' || input.value == input.getAttribute('placeholder')) {
				input.value = input.getAttribute('placeholder');
				input.style.color = '#A9A9A9';
			}
			else {
				input.style.color = '';
			}
		}
		function clearIfPlaceholder() {
			if (input.value == input.getAttribute('placeholder')) {
				input.value = '';
				input.style.color = '';
			}
		}
		// attach
		attach(input, 'focus', clearIfPlaceholder);
		attach(input, 'blur', setIfEmpty);
		if (input.form && input.form.tagName) {
			attach(input.form, 'submit', clearIfPlaceholder);
		}
		clearIfPlaceholder();
		setIfEmpty();
	}
	var testInput = document.createElement('input');
	if (!('placeholder' in testInput)) {
		var i = 0, input, inputs = document.getElementsByTagName('input');
		while ((input = inputs[i++])) {
			if (!!input.getAttribute('placeholder')) {
				if (input.type == 'password') {
					continue;
				}
				setup(input);
			}
		}
	}
}
