
var Placeholders = new function(){
	var p_forms = [];
	var clear = this.clear = function(el){
		if(el.nodeName == "INPUT" || el.nodeName == "TEXTAREA"){
			if(el.value == el.getAttribute('placeholder')){
				el.value = '';
			}
		} else if(el.nodeName == "FORM"){
			for(var j=0, input; input=el.placeholder_els[j]; j++){
				if(input.value == input.getAttribute('placeholder')){
					input.value = '';
				}
			}
		}
	}
	var parentForm = function(el){
		var parent;
		while(parent = el.parentNode){
			if(parent.nodeName == "FORM") return parent;
			el = parent;
		}
		return false;
	}
	var set = function(input){
		if(input.getAttribute('placeholder') && !input.placeholder_activated){
			if(form = parentForm(input)){
				if(!form.placeholder_els){
					 form.placeholder_els = [];
					 p_forms.push(form);
				}
				form.placeholder_els.push(input);
			}
			
			if(input.value=='' || input.getAttribute('placeholder') == input.value){
				input.value = input.getAttribute('placeholder');
				input.style.color='#888888'; //input.className = "faded";
				input.blur();
			}
			input.focusPL = function(){
				//Debug('placeholder focus');
				if(this.value == this.getAttribute('placeholder')){
					this.value = '';
					this.style.color=''; //removeClassName(this,'faded');
				}
			}
			input.blurPL = function(){
				//Debug('placeholder blur');
				if(this.value==''){
					this.value = this.getAttribute('placeholder');
					this.style.color='#888888'; //addClassName(this,'faded');
				}
			}
			addEvent(input, "focus", input.focusPL);
			addEvent(input, "blur", input.blurPL);
			input.placeholder_activated = true;
		}
	}
	this.activate = function(el){
		var form;
		if(el.nodeName == "INPUT" || el.nodeName == "TEXTAREA"){
			set(el);
		} else{
			for(var i=0, tag, tags = ['input','textarea']; tag=tags[i]; i++){
				for(var j=0, input,inputs =  el.getElementsByTagName(tag); input=inputs[j]; j++){
					set(input);
				}
			}
		}
		for(var i=0, form; form=p_forms[i]; i++){
			if(!form.placeholderSubmit){
				new function(form){
					var old_onsubmit = form.onsubmit;
					//if(form.id) alert('PLACEHOLER - CHANGING FORM '+form.id+' onsubmit FROM '+form.onsubmit);
					form.onsubmit = function(){
						var result = true;
						clear(form);
						
						if(!result){
							for(var j=0, input; input=form.placeholder_els[j]; j++){
								//input.blurPL();
							}
						}
						if(typeof(old_onsubmit) == "function"){
							form.onsubmit = old_onsubmit;
							return form.onsubmit();
						} else{
							return result;
						}
					}
				}(form);
				form.placeholderSubmit = true;
			}		
		}
	}
	var addEvent = function(el, event, func){
		if(el.attachEvent) el.attachEvent('on'+event, function(){func.call(el);});
		else el.addEventListener(event, func, false );
	}
	// INITIALIZE 
	addEvent(window, "load", function(){Placeholders.activate(document)});
}

	
	
	
