//ARREGLOS GLOBALES UTILIZADOS PARA CARGAR LOS ELEMENTOS DE LOS FORMULARIOS
var arrTextElm = new Array();
var arrPassElm = new Array();
var arrBttnElm = new Array();
var arrSltcElm = new Array();
var arrAreaElm = new Array();
//----------------------------------------------------------------------------------

/*******************************************************************
FUNCION:			carga_estilos_formularios
ENTRADAS:
	Ninguna
SALIDAS:
	Ninguna
DESCRIPCIÓN:
	Asigna los estilos predeterminados para los formularios
	a todos los elementos de un formulario culya clase sea 'estilo_basico'
*******************************************************************/
function carga_estilos_formularios(){
	var elementos = document.getElementsByTagName('input'); //Obtiene todos los objetos de tipo imput del documento
	var j=0; //Contador de elementos modificados para el arreglo
	/**************************************************
	ELEMENTOS TEXT
	**************************************************/
	for(i=0; i<elementos.length; i++){
		//Busca elementos de tipo TEXT que su clase sea "estilo_basico"
		if(elementos[i].type == 'text' && elementos[i].className == 'estilo_basico'){
			arrTextElm[j] = elementos[i]; //Agrega al arreglo correspondiente el elemento
			arrTextElm[j].className = 'frm_estilo_text'; //Le agrega la clase correcta
			var onfocus = arrTextElm[j].onfocus; //Obitene el envento onfocus del objeto
			arrTextElm[j].onfocus	=	new Function("carga_evento("+j+","+onfocus+",'frm_estilo_text_hover','arrTextElm')");
			var onblur = arrTextElm[j].onblur; //Obtiene el evento onblur del objeto
			arrTextElm[j].onblur	= new Function("carga_evento("+j+","+onblur+",'frm_estilo_text','arrTextElm')");
			if(elementos[i].disabled == true){
				elementos[i].className = 'frm_estilo_disabled'; //Carga el estilo correspondiente cuando esta inactivo
			}
			j++;
		}
	}
	/**************************************************
	ELEMENTOS PASSWORD
	**************************************************/
	j=0;
	for(i=0; i<elementos.length; i++){
		if(elementos[i].type == 'password' && elementos[i].className == 'estilo_basico'){
			arrPassElm[j] = elementos[i];
			arrPassElm[j].className = 'frm_estilo_password';
			var onfocus = arrPassElm[j].onfocus;
			arrPassElm[j].onfocus=new Function("carga_evento("+j+","+onfocus+",'frm_estilo_password_hover','arrPassElm')");
			var onblur = arrPassElm[j].onblur;
			arrPassElm[j].onblur=new Function("carga_evento("+j+","+onblur+",'frm_estilo_password','arrPassElm')");
			if(elementos[i].disabled == true){
				elementos[i].className = 'frm_estilo_disabled';
			}
			j++;
		}
	}
	/**************************************************
	ELEMENTOS BOTTOM Y SUBMIT
	**************************************************/
	j=0;
	for(i=0; i<elementos.length; i++){
		if(elementos[i].className == 'estilo_basico' && (elementos[i].type == 'button' || elementos[i].type == 'submit')){
			arrBttnElm[j] = elementos[i];
			arrBttnElm[j].className = 'frm_estilo_button';
			var onmouseout = arrBttnElm[j].onmouseout;
			arrBttnElm[j].onmouseout=new Function("carga_evento("+j+","+onmouseout+",'frm_estilo_button','arrBttnElm')");
			var onmouseover = arrBttnElm[j].onmouseover;
			arrBttnElm[j].onmouseover=new Function("carga_evento("+j+","+onmouseover+",'frm_estilo_button_hover','arrBttnElm')");
			if(elementos[i].disabled == true){
				elementos[i].className = 'frm_estilo_disabled';
			}
			j++;
		}
	}
	/**************************************************
	ELEMENTOS SELECT
	**************************************************/
	j=0;
	elementos = document.getElementsByTagName('select');
	for(i=0; i<elementos.length; i++){
		if(elementos[i].className == 'estilo_basico'){
			arrSltcElm[j] = elementos[i];
			arrSltcElm[j].className = 'frm_estilo_select';
			var onfocus = arrSltcElm[j].onfocus;
			arrSltcElm[j].onfocus=new Function("carga_evento("+j+","+onfocus+",'frm_estilo_select_hover','arrSltcElm')");
			var onblur = arrSltcElm[j].onblur;
			arrSltcElm[j].onblur=new Function("carga_evento("+j+","+onblur+",'frm_estilo_select','arrSltcElm')");
			if(elementos[i].disabled == true){
				elementos[i].className = 'frm_estilo_disabled';
			}
			j++;
		}
	}
	/**************************************************
	ELEMENTOS TEXTAREA
	**************************************************/
	j=0;
	elementos = document.getElementsByTagName('textarea');
	for(i=0; i<elementos.length; i++){
		if(elementos[i].className == 'estilo_basico'){
			arrAreaElm[j] = elementos[i];
			arrAreaElm[j].className = 'frm_estilo_textarea';
			var onfocus = arrAreaElm[j].onfocus;
			arrAreaElm[j].onfocus=new Function("carga_evento("+j+","+onfocus+",'frm_estilo_textarea_hover','arrAreaElm')");
			var onblur = arrAreaElm[j].onblur;
			arrAreaElm[j].onblur=new Function("carga_evento("+j+","+onblur+",'frm_estilo_textarea','arrAreaElm')");
			if(elementos[i].disabled == true){
				elementos[i].className = 'frm_estilo_disabled';
			}
			j++;
		}
	}
}

/*******************************************************************
FUNCION:			carga_evento
ENTRADAS:
	i				->	indice del arreglo para el elemento insertado
	evento	->	evento que se adjuntara al cambio de estilo
	clase		->	calse que obtendra en el evento
	objeto	->	tipo de objeto con el que se trabaja
SALIDAS:
	Ninguna
DESCRIPCIÓN:
	Agrega los eventos que posea el objeto y a demas le agrega la función 
	que le permite cambiar de estilo cuando gana y pierde el foco
*******************************************************************/
function carga_evento(i,evento,clase,objeto){
	switch(objeto){
		case 'arrTextElm':
			arrTextElm[i].className = clase;
			if(evento){evento();}
		break;
		case 'arrPassElm':
			arrPassElm[i].className = clase;
			if(evento){evento();}
		break;
		case 'arrBttnElm':
			arrBttnElm[i].className = clase;
			if(evento){evento();}
		break;
		case 'arrSltcElm':
			arrSltcElm[i].className = clase;
			if(evento){evento();}
		break;
		case 'arrAreaElm':
			arrAreaElm[i].className = clase;
			if(evento){evento();}
		break;
	}
}
