function __init_placeholder(e){
	function __placeholder_focus(e){
		e = (e == null ? window.event : e);
		var el = (e.currentTarget ? e.currentTarget : (e.srcElement ? e.srcElement : e));
		if (el.value == el.getAttribute("placeholder")){
			el.value = "";
			__placeholder_update_style(el);
		};
	};
	
	function __placeholder_blur(e){
		e = (e == null ? window.event : e);
		var el = (e.currentTarget ? e.currentTarget : (e.srcElement ? e.srcElement : e));
		if (el.value == ""){
			el.value = el.getAttribute("placeholder");
			__placeholder_update_style(el);
		};
	};
	
	function __placeholder_update_style(el){
		if (el.getAttribute("placeholder") == el.value){
			if (el.getAttribute("placeholder-style")){
				var attr = document.createAttribute("__placeholder_savestyle");
				attr.value = el.style.cssText;
				el.setAttributeNode(attr);
				var pairs = el.getAttribute("placeholder-style").split(";");
				try {
					for (var i=0; i<pairs.length; i++)el.style[pairs[i].split(":")[0]] = pairs[i].split(":")[1];
				}
				catch (e){};
			};
		}
		else{
			if (el.getAttribute("placeholder-style")){
				var pairs = el.getAttribute("placeholder-style").split(";");
				try {
					for (var i=0; i<pairs.length; i++)el.style[pairs[i].split(":")[0]] = "";
				}
				catch(e){};
				var pairs = el.getAttribute("__placeholder_savestyle").split(";");
				try {
					for (var i=0; i<pairs.length; i++)el.style[pairs[i].split(":")[0]] = pairs[i].split(":")[1];
				}
				catch(e){};
				var attr = document.createAttribute("__placeholder_savestyle");
				el.removeAttribute(attr);
			};
		};
	};
	
	function __placeholder_clear(e){
		e = (e == null ? window.event : e);
		var el = (e.currentTarget ? e.currentTarget : (e.srcElement ? e.srcElement : e));
		for (i=0; i<el.elements.length; i++){
			if (el.elements[i].getAttribute("placeholder") != null && el.elements[i].getAttribute("placeholder") == el.elements[i].value)el.elements[i].value = "";
		};
	};

	if (!("placeholder" in document.createElement("input"))){
		e = (e == null ? window.event : e);
		var elements = [];
		var inputs = document.getElementsByTagName("input");
		for (var i=0; i<inputs.length; i++){
			if (inputs[i].getAttribute("type").toLowerCase() == "text" && inputs[i].getAttribute("placeholder") != null)elements.push(inputs[i]);
		};
		var inputs = document.getElementsByTagName("textarea");
		for (var i=0; i<inputs.length; i++){
			if (inputs[i].getAttribute("placeholder") != null)elements.push(inputs[i]);
		};
		for (var i=0; i<elements.length; i++){
			var el = elements[i];
			if (el.addEventListener){
				el.addEventListener("focus",__placeholder_focus,false);
				el.addEventListener("blur",__placeholder_blur,false);
				el.form.addEventListener("onsubmit",__placeholder_clear,false);
			}
			else{
				if (el.attachEvent){
					el.attachEvent("onfocus",__placeholder_focus);
					el.attachEvent("onblur",__placeholder_blur);
					el.form.attachEvent("onsubmit",__placeholder_clear);
				};
			}
			el.value = (el.value == "" ? el.getAttribute("placeholder") : el.value);
			__placeholder_update_style(el);
		};
	};
};

try{
	document.addEventListener("DOMContentLoaded",__init_placeholder,false);
}
catch(e){
	if (window.addEventListener)window.addEventListener("load",__init_placeholder,false);
	if (window.attachEvent)window.attachEvent("onload",__init_placeholder);
};

