function check_links(){
    var links = document.getElementsByTagName('a');
    for( var i=0; i < links.length; i++ ){
        links[i].onclick = function(){
        	var url;
        	var url_tmp = this.href.split("?put=");
        	if(url_tmp.length > 1){
				var url_tmp2 = url_tmp[1].split("&");
				url = "utf8_convert.php?put=" + url_tmp2[0];
				for(i = 1;i<url_tmp2.length;i++){
					url = url + "&" + url_tmp2[i];
				}
				cargar_pagina(url);
        		return false;
			}
        }
    }
}

addLoadEvent(check_links);

function check_forms(){
    var forms = document.getElementsByTagName('form');
    for( var i=0; i < forms.length; i++ ){
        forms[i].onsubmit = function(){
			enviar_form(this);
			return false;
        }
    }
}

addLoadEvent(check_forms);

function actualizar_procesos(){
	check_links();
	check_forms();
	reemplazar_textos();
	tb_init('a.thickbox, area.thickbox, input.thickbox');

	var arVersion = navigator.appVersion.split("MSIE")
	var version = parseFloat(arVersion[1])
	if (version >= 5.5 && version < 7){
		fix_pngs();
	}
}

function Ajax(){
    var xmlhttp=false;
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }

    if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}

function cargar_pagina (url){

	var contenedor = document.getElementById("contenido_gral");
    ajax=Ajax();
    ajax.open("GET", url ,true);
    ajax.onreadystatechange=function(){
        if(ajax.readyState==1){
            contenedor.innerHTML = "<div id=\"cargando\">cargando...</div>";
        }else if(ajax.readyState==4){
        	switch(ajax.status){
        		case 200:
        			contenedor.innerHTML = ajax.responseText;
					parse_javascript(ajax.responseText);
        			actualizar_procesos();
        		break;
        		case 404:
        			contenedor.innerHTML = "<div id=\"error_no_existe\">&iexcl;La página no existe!</div>";
        		break;
        		default:
        			contenedor.innerHTML = "<div id=\"error_varios\">Error: ".ajax.status + "</div>";
        	}
        }
    }
    ajax.send(null);
}

function enviar_form(f){
	var contenedor = document.getElementById("contenido_gral");
	var datos = "";

	for(var i=0;i < f.length;i++){
		if(i > 0){
			datos = datos + "&";
		}
		datos = datos + f.elements[i].name + "=" + f.elements[i].value;
	}

	if(f.className == "validador_form"){
		 if(!checkForm(f.id)){
		 	return false;
		 }
	}

	var url_tmp = f.action.split("?put=");
	var url_action = url_tmp[1] + ".php?put=" + url_tmp[1];

	ajax=Ajax();
	ajax.open("POST", url_action , true);
	ajax.onreadystatechange=function() {
		if(ajax.readyState==1){
            contenedor.innerHTML = "<div id=\"cargando\">cargando...</div>";
        }else if(ajax.readyState==4){
        	switch(ajax.status){
        		case 200:
        			contenedor.innerHTML = ajax.responseText;
					parse_javascript(ajax.responseText);
        			actualizar_procesos();
        		break;
        		case 404:
        			contenedor.innerHTML = "<div id=\"error_no_existe\">&iexcl;La página no existe!</div>";
        		break;
        		default:
        			contenedor.innerHTML = "<div id=\"error_varios\">Error: ".ajax.status + "</div>";
        	}
        }
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(datos);
}

function parse_javascript(fuente){
	var patron = /<script[^>]*>([^¬]*?)<\/script>/im;
	var resultado = fuente.split(patron);
	//alert(resultado[3]);
	for(var i=0;i<resultado.length;i++){
		if((i%2) != 0){
			eval(resultado[i]);
		}
	}
}
