// JavaScript Document

var tipoGlobal;
var deptGlobal;
var trabGlobal;
var tablGlobal;

function docId(id) {
	return document.getElementById(id);
}

function foco(obj, cad) {
	if (obj.value == cad) obj.value = "";
}

function quitFoco(obj, cad) {
	if (obj.value == "") obj.value = cad;
}

function escribeCorreo(name, domain, clase, br) {
	var cadena = "<a class=\""+clase+"\" href=\"mailto:" + name + "@" + domain + "\">"+name + "@" + domain + "</a>";
	if (br != '') cadena += "<br />";
	//alert(cadena);
	document.write(cadena);
}

function extension(archivo) {
	var inicio = archivo.lastIndexOf(".")+1;
	var fin = archivo.length;
	var ext = archivo.substring(inicio, fin).toLowerCase();
	return ext;
}

function nombreArchivo(rutaArchivo) {
	var inicio = rutaArchivo.lastIndexOf("/")+1;
	var fin = rutaArchivo.length;
	var nombre = rutaArchivo.substring(inicio, fin).toLowerCase();
	return nombre;
}

function campoError(error, campo) {
	alert(error);
	campo.focus();
	campo.className = campo.className+" error";
} // campoError

function isEmail(mail) {
	var correcto = true;
	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(mail))) correcto = false;
	return correcto;
} // isEmail

function inicializarClaseForm(form) {
	var elementos = form.elements;
	for (var i=0; i<elementos.length; i++) {
			elementos[i].className = elementos[i].className.replace(" error", "");
	} // for
}

function validarForm(form) {
	var ok = true;
	var elementos = form.elements;
	inicializarClaseForm(form);
	for (var i=0; i<elementos.length; i++) {
		if (elementos[i].value == "")  {
			campoError("Todos los campos son obligatorios", elementos[i]);
			ok = false;
			return;
		} else if (elementos[i].name.indexOf("d_email") != -1 && !isEmail(elementos[i].value)) {
			campoError("La dirección de correo electrónico es incorrecta", elementos[i]);
			ok = false;
			return;
		} 
	} // for 
	return ok;
}

function enviarComentario() {
	var textoEnv = docId("textoEnv");
	var form = docId("formContacto");
	var d_nombre = form.d_nombre.value;
	var d_email = form.d_email.value;
	var d_comentario = form.d_comentario.value;
	var visible = (document.all?'block':'table-row');
	if (d_nombre == "Nombre") form.d_nombre.value = "";
	if (d_email == "Mail") form.d_email.value = ""; "";
	if (d_comentario == "Mensaje") form.d_comentario.value = "";
	textoEnv.innerHTML = "<span class='ocre cursiva'>Enviando mensaje...</span>";
	if (validarForm(form)) {
		var url = "../web/enviarComentario.asp?d_nombre="+d_nombre+"&d_email="+d_email+"&d_comentario="+d_comentario;
		if (!enProceso && http) {
			http.open('GET', url, true);
			http.onreadystatechange = handleHttpResponseEnviarComentario;
			enProceso = true;
			http.send(null);
		} // if	
	} else {
		textoEnv.innerHTML = "<a class='ocre' href='javascript:enviarComentario();'>Enviar</a>";
	}
}

function handleHttpResponseEnviarComentario() {
	var textoEnv = docId("textoEnv");
	if (http.readyState == 4) {
		if (http.status == 200) {
			if (http.responseText == "0") {
				textoEnv.innerHTML = "<span class='ocre'>Mensaje enviado. Gracias.</span>";
			} else if (http.responseText == "2") {
				textoEnv.innerHTML = "Los datos son incorrectos";
			} 
			enProceso = false;
		}
	}
}

function cargaNoticias(mes, ano) {
	if (!enProceso && http) {
		var url = "../web/mostrarNoticias.asp?mes="+mes+"&ano="+ano;
		var tabla = agregaTabla("celdaContenido", "tablaContenido");
		agregaFilaCargando(tabla, "", "");
		http.open('GET', url, true);
		http.onreadystatechange = handleHttpResponseNoticias;
		enProceso = true;
		http.send(null);
	} // if	
}
function handleHttpResponseNoticias() {
	var fila;
	var celda;
	var tabla = docId("tablaContenido");
	if (http.readyState == 4) {
		if (http.status == 200) {
			borraFilaCargando(tabla);
			fila = agregaFila(tabla, "");
			fila.id = "filaNoticias";
			celda = fila.insertCell(0);
			celda.id = "celdaNoticias";
			celda.innerHTML = http.responseText;
			ss.fixAllLinks();
			enProceso = false;
		}
	}
}

function cargaNoticiasMes(mes, ano, tipo, alinea) {
	if (!enProceso && http) {
		tipoGlobal = tipo;
		var tabla = docId("tablaNoticias");
		var url = "../web/mostrarNoticiasMes.asp?mes="+mes+"&ano="+ano+"&tipo="+tipo+"&alinea="+alinea;
		agregaFilaCargando(tabla, "filaNoticia"+tipoGlobal, "");
		borraFila(tabla, "filaNoticia"+tipoGlobal)
		http.open('GET', url, true);
		http.onreadystatechange = handleHttpResponseNoticiasMes;
		enProceso = true;
		http.send(null);
	} // if	
}
function handleHttpResponseNoticiasMes() {
	var fila;
	var celda;
	var tabla = docId("tablaNoticias");
	if (http.readyState == 4) {
		if (http.status == 200) {
			fila = agregaFila(tabla, "filaCargando");
			fila.id = "filaNoticia"+tipoGlobal;
			borraFilaCargando(tabla);
			celda = fila.insertCell(0);
			celda.id = "celdaNoticia"+tipoGlobal;
			celda.innerHTML = http.responseText;
			ss.fixAllLinks();
			enProceso = false;
		}
	}
}

function cargaTrabajos(dept) {
	if (!enProceso && http) {
		deptGlobal = dept;
		var url = "../web/mostrarTrabajos.asp?dept="+deptGlobal;
		var tabla = agregaTabla("celdaContenido", "tablaContenido");
		agregaFilaCargando(tabla, "", "");
		http.open('GET', url, true);
		http.onreadystatechange = handleHttpResponseTrabajos;
		enProceso = true;
		http.send(null);
	} // if	
}
function handleHttpResponseTrabajos() {
	var fila;
	var celda;
	var tabla = docId("tablaContenido");
	if (http.readyState == 4) {
		if (http.status == 200) {
			borraFilaCargando(tabla);
			fila = agregaFila(tabla, "");
			fila.id = "filaTrabajo";
			celda = fila.insertCell(0);
			celda.id = "celdaTrabajo";
			celda.innerHTML = http.responseText;
			ss.fixAllLinks();
			enProceso = false;
		}
	}
}

function cargaTrabajosTipo(dept, tipo, pag) {
	if (!enProceso && http) {
		deptGlobal = dept;
		tipoGlobal = tipo;
		var tabla = docId("tablaTrabajo");
		var url = "../web/mostrarTrabajosTipo.asp?tipo="+tipoGlobal+"&dept="+deptGlobal+"&pag="+pag;
		agregaFilaCargando(tabla, "filaTrabajo"+tipoGlobal, "");
		borraFila(tabla, "filaTrabajo"+tipoGlobal)
		http.open('GET', url, true);
		http.onreadystatechange = handleHttpResponseTrabajosTipo;
		enProceso = true;
		http.send(null);
	} // if	
}
function handleHttpResponseTrabajosTipo() {
	var fila;
	var celda;
	var tabla = docId("tablaTrabajo");
	if (http.readyState == 4) {
		if (http.status == 200) {
			fila = agregaFila(tabla, "filaCargando");
			fila.id = "filaTrabajo"+tipoGlobal;
			borraFilaCargando(tabla);
			celda = fila.insertCell(0);
			celda.id = "celdaTrabajo"+tipoGlobal;
			celda.innerHTML = http.responseText;
			ss.fixAllLinks();
			enProceso = false;
		}
	}
}

function cargaFotosTrabajo(dept, tipo, trab, pag) {
	if (!enProceso && http) {
		deptGlobal = dept;
		tipoGlobal = tipo;
		trabGlobal = trab;
		var tabla = docId("tablaTrabajo");
		var url = "../web/mostrarFotosTrabajo.asp?tipo="+tipoGlobal+"&dept="+deptGlobal+"&trab="+trabGlobal+"&pag="+pag;
		agregaFilaCargando(tabla, "filaTrabajo"+tipoGlobal, "");
		borraFila(tabla, "filaTrabajo"+tipoGlobal)
		http.open('GET', url, true);
		http.onreadystatechange = handleHttpResponseFotosTrabajos;
		enProceso = true;
		http.send(null);
	} // if	
}
function handleHttpResponseFotosTrabajos() {
	var fila;
	var celda;
	var tabla = docId("tablaTrabajo");
	if (http.readyState == 4) {
		if (http.status == 200) {
			fila = agregaFila(tabla, "filaCargando");
			fila.id = "filaTrabajo"+tipoGlobal;
			borraFilaCargando(tabla);
			celda = fila.insertCell(0);
			celda.id = "celdaTrabajo"+tipoGlobal;
			celda.innerHTML = http.responseText;
			ss.fixAllLinks();
			enProceso = false;
		}
	}
}

/* funciones DOM para el tratamiento de tablas */

function agregaTabla(cellId, tableId) {
	var tabla = document.createElement("table");
	tabla.id = tableId;
	tabla.className = "W100P";
	docId(cellId).appendChild(tabla);
	return tabla;
}

function agregaFila(tabla, filaPreId) {
	var pos = -1;
	if (filaPreId != "") pos = docId(filaPreId).rowIndex;
	var nuevaFila = tabla.insertRow(pos+1);
	if (filaPreId != "") nuevaFila.className = docId(filaPreId).className;
	return nuevaFila;
}

function borraFila(tabla, filaId) {
	var pos = docId(filaId).rowIndex;
	var fila = docId(filaId)
	//fila.innerHTML = "";
	tweenea(filaId, 100, 0);
	tabla.deleteRow(pos);
}

function agregaFilaCargando(tabla, filaPreId, span) {
	var filaCargando = agregaFila(tabla, filaPreId);
	var celdaCargando = filaCargando.insertCell(0);
	var imgCargando = document.createElement("img");
	filaCargando.id = "filaCargando";
	if (span != "") celdaCargando.colSpan = span;
	celdaCargando.className = "celdaCargando";
	if (filaPreId != "") filaCargando.className = docId(filaPreId).className;
	tweenea(filaCargando.id, 50, 100);
	imgCargando.id = "imgCargando";
	imgCargando.src = "../web/img/loading.gif";
	imgCargando.className = "cargando";
	celdaCargando.appendChild(imgCargando);
}

function borraFilaCargando(tabla) {
	var pos = docId("filaCargando").rowIndex;
	//docId("filaCargando").innerHTML = "";
	tweenea("filaCargando", 100, 0);
	tabla.deleteRow(pos);
}

function agregaFilaCargando2(tabla, filaPreId, span) {
	var filaCargando = agregaFila(tabla, filaPreId);
	var celdaCargando = filaCargando.insertCell(0);
	var imgCargando = document.createElement("img");
	filaCargando.id = "filaCargando";
	celdaCargando.colSpan = span;
	celdaCargando.className = "separadorH20 alineaDcha alineaMiddle";
	filaCargando.className = docId(filaPreId).className;
	tweenea(filaCargando.id, 15, 30);
	imgCargando.id = "imgCargando";
	imgCargando.src = "../web/img/loadingAnimation.gif";
	imgCargando.width = "140";
	imgCargando.height = "9";
	celdaCargando.appendChild(imgCargando);
}

function agregaFilaCargando3(tabla, filaPreId, span) {
	var filaCargando = agregaFila(tabla, filaPreId);
	var celdaCargando = filaCargando.insertCell(0);
	var imgCargando = document.createElement("img");
	filaCargando.id = "filaCargando";
	celdaCargando.colSpan = span;
	celdaCargando.className = "celdaCargando";
	filaCargando.className = docId(filaPreId).className;
	tweenea(filaCargando.id, 40, 100);
	imgCargando.id = "imgCargando";
	imgCargando.src = "../web/img/loading.gif";
	imgCargando.className = "cargando";
	celdaCargando.appendChild(imgCargando);
}

function crearCapaCargando() {
	var capa = document.createElement("div");
	capa.id = "cargandoDatos"
	capa.innerHTML = "Cargando resultados...";
	document.body.appendChild(capa);
}

function eliminarCapaCargando() {
	var capa = docId("cargandoDatos");
	document.body.removeChild(capa);
}

function tweenea(filaId, tamanoIni, tamanoFin) {
	var resizeSpeed = 7;										// Controls the speed of the image resizing animations (1=slowest and 10=fastest)
	var resizeDuration = (11 - resizeSpeed) * 0.15;
	var animate = true;
	var scale = (tamanoFin / tamanoIni) * 100;
	
	if(animate == true){
		overlayDuration = 0.2;	
		if(resizeSpeed > 10){ resizeSpeed = 10;}
		if(resizeSpeed < 1){ resizeSpeed = 1;}
		resizeDuration = (11 - resizeSpeed) * 0.15;
	} else { 
		overlayDuration = 0;
		resizeDuration = 0;
	}
	new Effect.Scale(filaId, scale, {scaleX: false, duration: resizeDuration, queue: 'front'});
}

/* fin funciones DOM */

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext) {
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) { 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent() {
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent() {
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) { xmlhttp = false; }
	}
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) { 
			xmlhttp = false; 
		}
	}
	return xmlhttp;
}

var enProceso = false; // lo usamos para ver si hay un proceso activo
var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest
