// JavaScript Document

var val = '';
var values = new Array();

/*
	NOTE:

	If an input, textarea, or select has a class of "noChange" the text color
	will NOT be changed to gray text.
	
	If a textarea has a class of wwTextarea, this will toggle the active/inactive
	state of the GRANDPARENT element
*/

function prepareInputsForHints(formId) {
	if(document.getElementById(formId)) {
		var curForm = document.getElementById(formId)
		var inputs = curForm.getElementsByTagName("input");
		
		for (var i=0; i<inputs.length; i++){
			if(hasClass(inputs[i],'noChange')){
				// don't change the color of the input
			}
			else {
				inputs[i].style.color = '#666';
			}
			inputs[i].onfocus = function() {
				exampleText(this.id);
				if(hasClass(this.parentNode, 'inline')) {
					addClass(this.parentNode.parentNode, 'active');
				} else if(this.type == 'checkbox' || this.type == 'radio') {
					addClass(this.parentNode.parentNode.parentNode, 'active');
				} else {
					addClass(this.parentNode, 'active');
				}		
			}
			inputs[i].onblur = function() {
				exampleText(this.id);
				if(hasClass(this.parentNode, 'inline')) {
					removeClass(this.parentNode.parentNode, 'active');
				} else if(this.type == 'checkbox' || this.type == 'radio') {
					removeClass(this.parentNode.parentNode.parentNode, 'active');
				}  else {
					removeClass(this.parentNode, 'active');
				}		
			}
		}
		
		var textareas = curForm.getElementsByTagName("textarea");
		for (var i=0; i<textareas.length; i++){
			if(hasClass(textareas[i],'noChange')){
				// don't change the color of the textareas
			}
			else {
				textareas[i].style.color = '#666';
			}			
			textareas[i].onfocus = function () {
				exampleText(this.id);
				if(hasClass(this,'wwTextarea')){
					addClass(this.parentNode.parentNode, 'active');
				}
				else{
					addClass(this.parentNode, 'active');					
				}
			}
			textareas[i].onblur = function () {
				exampleText(this.id);
				if(hasClass(this,'wwTextarea')){
					removeClass(this.parentNode.parentNode, 'active');
				}
				else{
					removeClass(this.parentNode, 'active');
				}
			}
		}
		
		var selects = curForm.getElementsByTagName("select");
		for (var i=0; i<selects.length; i++){
			if(hasClass(selects[i],'noChange')){
				// don't change the color of the textareas
			}
			else {
				selects[i].style.color = '#666';
			}				
			selects[i].onfocus = function () {
				addClass(this.parentNode, 'active');
			}
			selects[i].onblur = function () {
				removeClass(this.parentNode, 'active');
			}
		}
	}
}

/*function allExampleText() {
	exampleText('email', 'yourname@yourisp.com');
}*/

function exampleText(elem) {
	var e = document.getElementById(elem);
	
	if(e && e.value){
		if(e.value == values[elem]) {
			e.value = '';
			e.style.color = '#000';
		} 
		else if(e.value == '') {
			if(values[elem]){
				e.value = values[elem];
			}
			e.style.color = '#666';
		}	
	}

}

function readValues() {
	if(document.testForm){
		for(var i = 0; i< document.testForm.elements.length; i++) {
			if(document.testForm.elements[i].type != 'submit') {
				var id = document.testForm.elements[i].id;
				values[id] = document.testForm.elements[i].value;
			}
		}
	}
}


addLoadEvent(function() {
  prepareInputsForHints('testForm');
  readValues();
});