/**
 * Carga funciones de manera no-obstructiva
 */

/**
 * Carga scripts al inicio
 */ 
window.onload = function(){
	
	// funciones simples
	
	// funciones que acceden a elementos
	if(!(document.getElementById && document.getElementsByTagName))return;
	clics();
	formularios();
	}

/**
 * Controla los clics en las páginas
 */ 
function clics(){
	
	// variables
	links = document.getElementsByTagName("a");
	// se recorren
	for(i = 0; i < links.length; i++){
		
		// se averigua en dónde se llama a la función
		identificador = "";
		if(links[i].id != ""){
			link_id = (links[i].id.indexOf("(") > -1)?links[i].id.substring(0, links[i].id.indexOf("(")):links[i].id;
			identificador = (eval("typeof window."+link_id) == "function")?"id":identificador;
			}
		if(links[i].name != ""){
			link_name = (links[i].name.indexOf("(") > -1)?links[i].name.substring(0, links[i].name.indexOf("(")):links[i].name;
			identificador = (eval("typeof window."+link_name) == "function")?"name":identificador;
			}
		if(links[i].className != ""){
			link_className = (links[i].className.indexOf("(") > -1)?links[i].className.substring(0, links[i].className.indexOf("(")):links[i].className;
			identificador = (eval("typeof window."+link_className) == "function")?"className":identificador;
			}
		
		// se llama a alguna función?
		if(identificador != ""){
			
			links[i].onclick = function(){
				
				// de vuelta, en dónde está la función?
				link_id = (this.id.indexOf("(") > -1)?this.id.substring(0, this.id.indexOf("(")):this.id;
				link_name = (this.name.indexOf("(") > -1)?this.name.substring(0, this.name.indexOf("(")):this.name;
				link_className = (this.className.indexOf("(") > -1)?this.className.substring(0, this.className.indexOf("(")):this.className;
				nombre = "";
				nombre = (link_id != "" && eval("typeof window."+link_id) == "function")?link_id:nombre;
				nombre = (link_name != "" && eval("typeof window."+link_name) == "function")?link_name:nombre;
				nombre = (link_className != "" && eval("typeof window."+link_className) == "function")?link_className:nombre;
				
				nombre_funcion = (nombre.indexOf("(") > -1)?nombre:nombre+"()";
				
				// se suma el enlace a los argumentos de la función
				pos_abre = nombre_funcion.indexOf("(");
				pos_cierra = nombre_funcion.indexOf(")");
				nombre_funcion = (pos_cierra == pos_abre + 1)?nombre_funcion.substring(0, pos_cierra)+"'"+this+"')":nombre_funcion.substring(0, pos_cierra)+", '"+this+"')";
				
				// se llama a la función
				eval(nombre_funcion);

				// y se detiene la cosa
				return false;
				}

			
			}
		
		
		}
	
	}


/**
 * Chequea los datos de los formularios en el onsubmit
 */
function formularios(){
	
	
	// variables
	forms = document.forms;
	
	// se recorren los formularios
	for(i = 0; i < forms.length; i++){
		
		// formulario actual
		formu = forms[0];
		
		// se llama a la función de control
		formu.onsubmit = function(){
			validar(this);
			return false;
			}
		
		
		}
	
	}






