//set up the RD object
if(!window.RD){
	window.RD = {};
}

if(!RD.XHTML){
	RD.XHTML = {};
}

RD.XHTML.initInputHighlight = function(aInput){
	var vFormElements = [];
	var vAllowedInputs = ["input","textarea","select"];
	var vAllowedInputsStr = "$" + vAllowedInputs.join("$") + "$";
	var vInputs = null;
	var vInput = null;

	if(aInput){
		vFormElements.push(aInput);
	}
	else{
		for(var n=0;n<vAllowedInputs.length;n++){
			vFormElements.push($$(document, vAllowedInputs[n]));
		}
	}
	for(var z=0;z<vFormElements.length;z++){
		vInputs = vFormElements[z];
		for(var n=0;n<vInputs.length;n++){
			vInput = vInputs[n];
			
			if(vInput.type == "text" || (vAllowedInputsStr).indexOf("$" + vInput.nodeName.toLowerCase() + "$") > -1){
				if(vInput.getAttribute("highlight") == "true"){
					vInput.onfocus = function(){
						RD.XHTML.setHighlight(this, true, "focus");
					};
					vInput.onblur = function(){
						RD.XHTML.setHighlight(this, false, "focus");
					};
				}
			}
		}
	}
}

RD.XHTML.setHighlight = function(vInput, vHasFocus, vClassName){
	var vNewClassName = vInput.className;
	if(vHasFocus){
		if(!vNewClassName.endsWith(vClassName)){
			vNewClassName = vNewClassName + " " + vClassName;
		}
	}
	else{
		vNewClassName = vNewClassName.replace(" " + vClassName, String.empty);
	}

	vInput.className = vNewClassName;
}

RD.XHTML.initInputHighlight();