var ElementMaxHeight = function() {
  this.initialize.apply(this, arguments);
}

ElementMaxHeight.prototype = {
  initialize: function(className) {
    this.elements = document.getElementsByClassName(className || 'maxheight');    
    this.textElement = document.createElement('span');
    this.textElement.appendChild(document.createTextNode('A'));
    this.textElement.style.display = 'block';
    this.textElement.style.position = 'absolute';
    this.textElement.style.fontSize = '1em';
    this.textElement.style.top = '-1000px';
    this.textElement.style.left = '-1000px';
    document.body.appendChild(this.textElement);
    this.textElementHeight = document.getDimensions(this.textElement).height;
    var __object = this;
    var __checkFontSize = this.checkFontSize;
    this.checkFontSizeInterval = window.setInterval(function() {return __checkFontSize.apply(__object)}, 500);

    this.expand();

    // Refresh elements height onResize event
    var __expand = this.expand;
    if (window.addEventListener) {
      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);
    } else if (window.attachEvent) {
      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});
    }
  },

  expand: function() {
    this.reset();
  	for (var i = 0; i < this.elements.length; i++) {  	
      this.elements[i].style.height = document.getDimensions(this.elements[i].parentNode).height + 'px';
  	}
  },

  reset: function() {
    for (var i = 0; i < this.elements.length; i++) {    
      this.elements[i].style.height = 'auto';
    }
  },

  checkFontSize: function() {
  	var height = document.getDimensions(this.textElement).height;
  	if(this.textElementHeight != height) {
  		this.textElementHeight = height;
  		this.expand();
  	}
  }  
}


if (!!document.evaluate) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, parentElement || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(query.snapshotItem(i));
    return results;
  }
}

document.getElementsByClassName = function(className, parentElement) {
  if (!!document.evaluate) {
    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
    return document._getElementsByXPath(q, parentElement);
  } else {
    var children = (parentElement || document.body).getElementsByTagName('*');
    var elements = [], child;
    for (var i = 0, length = children.length; i < length; i++) {
      child = children[i];
      if (child.className.length != 0 &&
          (child.className == className ||
           child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))) {      
        elements.push(child);
      }
    }
    return elements;
  }
}

document.getDimensions = function (element) {
  var display = element.style.display;
  if (display != 'none' && display != null) { // Safari bug
    return {width: element.offsetWidth, height: element.offsetHeight};
  }

  return {width: originalWidth, height: originalHeight};
}

//Funciones de validacion de campos ///////////////////////////////////////////////////////////////////////////

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);
}

antiSpam();





function valida() {
var x=0;
var y=0;
var z=0;
var i=0;
var j=0;
var k=0;
var l=0;



        
//validacion campo nombre

if (document.fempleo.antiSpam.value >= 10 && parseInt(document.fempleo.antiSpam.value) >= 10){
	    l=1; //se procede a enviar
	 }else
		 {
			alert("Detección antibot, por favor repita el envio");
			document.fempleo.reset();
			l=0;			 
		 }


if (document.fempleo.nombre.value == "Nombre*:" || document.fempleo.nombre.value == "") {
//	alert("Debe de rellenar el campo Nombre");
	document.fempleo.nombre.focus();
	x=0	;
	}else
		{
		//alert("Ha introducido algo en el campo nombre");
		x=1;
		}


// validacion campo email
if (/^[^0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/.test(document.fempleo.email.value)){
	//alert("La dirección de email " + document.fempleo.email.value + " es correcta.")
	y=1;
	} else 
		{
		//alert("La dirección de email es incorrecta.");
		document.fempleo.email.focus();
		y=0;
		}
	
//validacion del campo asunto
if (document.fempleo.asunto.value == "Asunto*:" || document.fempleo.asunto.value == "") {
	//alert("Debe de rellenar el campo Asunto");
	document.fempleo.asunto.focus();
	z=0;	
	}else
		{
		//alert("Ha introducido algo en el campo Asunto");
		z=1;
		}

if (document.fempleo.mensaje.value == "Asunto*:" || document.fempleo.mensaje.value == "") {
	//alert("Debe de rellenar el campo Mensaje");
	document.fempleo.mensaje.focus();
	i=0;	
	}else
		{
		//alert("Ha introducido algo en el campo Mensaje");
		i=1;
		}


//comprobacion de la existencia de un archivo
 j = comprueba_extension(document.fempleo, document.fempleo.archivo1.value);
 

//compruebo que se esta conforme con las condiciones 
	if (document.fempleo.condiciones.checked == false){
		//alert("Debe de aceptar las condiciones de uso para proceder al envio");
		k=0;
	}else
		{
		//alert("Ha aceptado las condiciones de uso");
		k=1;
		}



// si la comprobación en alguno de los campos es incorrecta X toma el valor 1 y el formulario no se envia
if ( x == 1 && y == 1 && z == 1 && i == 1 && j == 1 && k == 1){
	document.fempleo.submit();
//	redireccionar();
	return(true);
	} else
		{
			alert("Revise los campos del formulario");
			return(false);
		}
}


function redireccionar() {
    setTimeout("location.href='www.praxem.es'", 3000);
 }




function comprueba_extension(formulario, archivo) {
   extensiones_permitidas = new Array(".doc", ".pdf", ".docx",".odt", ".vor");
   mierror = "";
   if (!archivo) {
      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario
       mierror = "No has seleccionado archivo";
   }else{
      //recupero la extensión de este nombre de archivo
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
      //alert (extension);
      //compruebo si la extensión está entre las permitidas
      permitida = false;
      for (var i = 0; i < extensiones_permitidas.length; i++) {
         if (extensiones_permitidas[i] == extension) {
         permitida = true;
         break;
         }
      }
      if (!permitida) {
         mierror = "Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: " + extensiones_permitidas.join();
       }else{
          //submito!
         //alert ("archivo correcto");
         return 1;
       }
   }
   //si estoy aqui es que no se ha podido submitir
   alert (mierror);
   return 0;
} 
