/**
 * Arquivo que aplica os estilos aos elementos, com Javascript.
 * Serve basicamente para aplicar aqueles efeitos que não funcionam no IE, somente por CSS. 
 * 
 * @author Lauro Becker - lauro.becker@gmail.com
 */

/**
 * Adicionar efeitos aos inputs, selects e textareas?
 * @type boolean
 */
var Estilos_inputsHover = true;

/**
 * @type array
 */
var Estilos_inputsProperties =
		Array(
			"1px solid #70521E", //borda normal
			"1px solid #70521E", //borda focus
			"#ECE9D8", //background normal
			"#fff" //background focus
		);

/**
 * Não mudar as variáveis abaixo!
 */
var estilosInputText;


/**
 * Classe principal de todos os estilos.
 */
function Estilos(){
	
	//processo...
	if(Estilos_inputsHover){
		estilosInputText = new EstilosInputTextareas();
	}
}



//________________________________

/**
 * Classe para estilos de inputs, selects e textareas
 */
function EstilosInputTextareas(){
	/**
	 * Efeitos em inputs e textarea, quando estiverem ativos.
	 */
	this.inputsHover = function(){
		
		var inputs = document.getElementsByTagName("input");
		var textareas = document.getElementsByTagName("textarea");
		var selects = document.getElementsByTagName("select");
		
		for(var i = 0; i < inputs.length; i++){
			this.inputsTextareasNormal(inputs[i]);
			
			inputs[i].onfocus = function(){
				estilosInputText.inputsTextareasFocus(this);
			}
			
			inputs[i].onblur = function(){
				estilosInputText.inputsTextareasNormal(this);
			}
		}
		
		for(var i = 0; i < textareas.length; i++){
			this.inputsTextareasNormal(textareas[i]);
			
			textareas[i].onfocus = function(){
				estilosInputText.inputsTextareasFocus(this);
			}
			
			textareas[i].onblur = function(){
				estilosInputText.inputsTextareasNormal(this);
			}
		}
		
		for(var i = 0; i < selects.length; i++){
			this.inputsTextareasNormal(selects[i]);
			
			selects[i].onfocus = function(){
				estilosInputText.inputsTextareasFocus(this);
			}
			
			selects[i].onblur = function(){
				estilosInputText.inputsTextareasNormal(this);
			}
		}
	}
	
	/**
	 * Quando as textareas e os inputs NÃO estiverem sob nehuma ação.
	 * 
	 * @param Object (o objeto que sofrerá as alterações nos estilos)
	 */
	this.inputsTextareasNormal = function(object){
		object.style.border = Estilos_inputsProperties[0];
		object.style.background = Estilos_inputsProperties[2];
	}
	
	/**
	 * Quando as textareas e os inputs estiverem focados.
	 * 
	 * @param Object (o objeto que sofrerá as alterações nos estilos)
	 */
	this.inputsTextareasFocus = function(object){
		object.style.border = Estilos_inputsProperties[1];
		object.style.background = Estilos_inputsProperties[3];
	}
	
	//processo...
	this.inputsHover();
}