// JavaScript Document

function valida_soporte(){
	
	if(document.getElementById('nombre').value=='indique...' || document.getElementById('nombre').value==''){
		alert('Indique o nome');
		return false;
	}
	if(document.getElementById('paises').value=='0'){
		alert('Indique o Pais');
		return false;
	}
	if(document.getElementById('estados').value=='0'){
		alert('Indique a Provincia');
		return false;
	}
	if(document.getElementById('telefono').value=='indique...'){
		alert('Indique o número de teléfono');
		return false;
	}	
	if(!isEmail(document.getElementById('email').value)){
		alert('enderezo de correo non valida');
		return false;
	}
	if(document.getElementById('select1').value=='0'){
		alert('Indique el tipo');
		return false;
	}
	if(document.getElementById('select2').value=='0'){
		alert('Indique o modelo');
		return false;
	}
	if(document.getElementById('select3').value=='x0'){
		alert('Indique o submodelo');
		return false;
	}
	if(document.getElementById('requerimento').value=='indique...' || document.getElementById('requerimento').value==''){
		alert('Indique o seu requerimento');
		return false;
	}
	if(document.getElementById('acepto').checked == false){
		alert('acepte as condicións');
		return false;
	}
	return true;
}


function valida_rrhh(){
	var valido = true;
	if(document.getElementById('nombre').value==''){
		valido = false;
		document.getElementById('_nombre').innerHTML = '*';
	} else {
		document.getElementById('_nombre').innerHTML = '';
	}
	if(document.getElementById('apellido1').value==''){
		valido = false;
		document.getElementById('_apellido1').innerHTML = '*';
	} else {
		document.getElementById('_apellido1').innerHTML = '';
	}
	
	if(document.getElementById('ano').value=='-1'){
		valido = false;
		document.getElementById('_ano').innerHTML = '*';
	} else {
		document.getElementById('_ano').innerHTML = '';
	}

	if(document.getElementById('estado_civil').value=='-1'){
		valido = false;
		document.getElementById('_estado_civil').innerHTML = '*';
		} else {
		document.getElementById('_estado_civil').innerHTML = '';
	}

	if(document.getElementById('telefono').value==''){
		valido = false;
		document.getElementById('_telefono').innerHTML = '*';
		} else {
		document.getElementById('_telefono').innerHTML = '';
	}	
	if(!isEmail(document.getElementById('email').value)){
		valido = false;
		document.getElementById('_email').innerHTML = '*';
		} else {
		document.getElementById('_email').innerHTML = '';
	}	
	if(document.getElementById('direccion').value==''){
		valido = false;
		document.getElementById('_direccion').innerHTML = '*';
		} else {
		document.getElementById('_direccion').innerHTML = '';
	}	
	if(document.getElementById('cp').value==''){
		valido = false;
		document.getElementById('_cp').innerHTML = '*';
		} else {
		document.getElementById('_cp').innerHTML = '';
	}	
	if(document.getElementById('localidad').value==''){
		valido = false;
		document.getElementById('_localidad').innerHTML = '*';
		} else {
		document.getElementById('_localidad').innerHTML = '';
	}
	if(document.getElementById('puesto').value=='-1'){
		valido = false;
		document.getElementById('_puesto').innerHTML = '*';
		} else {
		document.getElementById('_puesto').innerHTML = '';
	}
	if(document.getElementById('acepto').value==''){
		valido = false;
		document.getElementById('_acepto').innerHTML = '*';
		} else {
		document.getElementById('_acepto').innerHTML = '';
	}
	if(document.getElementById('provincia').value=='-1'){
		valido = false;
		document.getElementById('_provincia').innerHTML = '*';
		} else {
		document.getElementById('_provincia').innerHTML = '';
	}
	if(document.getElementById('sexo').value=='-1'){
		valido = false;
		document.getElementById('_sexo').innerHTML = '*';
		} else {
		document.getElementById('_sexo').innerHTML = '';
	}
	if(document.getElementById('fileIMG').value==''){
		valido = false;
		document.getElementById('_file').innerHTML = '*';
	} else {
		document.getElementById('_file').innerHTML = '';		
	}
	if(document.getElementById('acepto').checked==false){
		valido = false;
		document.getElementById('_acepto').innerHTML = '*';
		} else {
		document.getElementById('_acepto').innerHTML = '';
	}

	
	if(!valido){
		alert('complete los valores');
	    return false;
	} 
		return true;
}


function valida_contacto(){		
	if(document.getElementById('nombre').value=='indique...' || document.getElementById('nombre').value==''){
		alert('Indique o nome');
		return false;
	}
	if(document.getElementById('telefono').value=='indique...'){
		alert('Indique o número de teléfono');
		return false;
	}	
	if(!isEmail(document.getElementById('email').value)){
		alert('enderezo de correo non valida');
		return false;
	}
	if(document.getElementById('requerimento').value=='indique...' || document.getElementById('requerimento').value==''){
		alert('Indique o seu requerimento');
		return false;
	}
	if(document.getElementById('acepto').checked == false){
		alert('acepte as condicións');
		return false;
	}
}
function cambiarfoto(s){
	document.getElementById('imgcentro').src = s;
	document.getElementById('linkImagen').href = s;
}


function LightboxDelegate(url,caption) {
	var objLink = document.createElement('a');
	objLink.setAttribute('href',url);
	objLink.setAttribute('rel','lightbox');
	objLink.setAttribute('title',caption);
	document.location = objLink;
}

function verTipo(){
	alert('sss');
}

function callFancy(my_href) {
	alert(my_href)
	var j1 = document.getElementById("hiddenclicker");
	j1.href = my_href;
	$('#hiddenclicker').trigger('click');
	alert('a');
}
function verImagen(img){
	alert(img);
        var j1 = document.getElementsByClassName("hiddenclicker");
        j1.href = img;
        $('#hiddenclicker').trigger('click');
}

function alphaOut(x){
	document[x].filters.alpha.opacity =100;
}

function alphaOn(x){
	document[x].filters.alpha.opacity = 15;
}

function xAjax(){
	
	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 imprimir(id, d){
	ajax=xAjax();
	var tarr = new Array();
	document.getElementById(d).innerHTML = 'Espere por favor.......';
	alert("imprimir.php?id="+id);
	ajax.open("GET", "imprimir.php?id="+id,true);
	
   ajax.send(null)
}

function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false;
	try
	{
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			// Creacion del objet AJAX para IE
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}

// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listadoSelects=new Array();
	listadoSelects[0]="select1";
	listadoSelects[1]="select2";
	listadoSelects[2]="select3";

var listadoPaises=new Array();
	listadoPaises[0]="paises";
	listadoPaises[1]="estados";

function buscarEnArray(array, dato)
{
	// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
	var x=0;
	while(array[x])
	{
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

function cargaContenido(idSelectOrigen)
{
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1;
	// Obtengo el select que el usuario modifico
	var selectOrigen=document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0)
	{
		var x=posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax=nuevoAjax();
		ajax.open("GET", "respuesta_dedatos.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{
				selectDestino.parentNode.innerHTML=ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}

function cargaContenidoPaises(idSelectOrigen)
{
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino=buscarEnArray(listadoPaises, idSelectOrigen)+1;
	// Obtengo el select que el usuario modifico
	var selectOrigen=document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0)
	{
		var x=posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoPaises[x])
		{
			selectActual=document.getElementById(listadoPaises[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoPaises[listadoPaises.length-1])
	{
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino=listadoPaises[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax=nuevoAjax();
		ajax.open("GET", "seleciona_ciudades.php?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); 
				nuevaOpcion.value=0; 
				nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); 
				selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{
				selectDestino.parentNode.innerHTML=ajax.responseText;
			} 
		}
		ajax.send(null);
	}
}

function isEmail(who) {
	function isEmpty(who) {
		var testArr=who.split("");
		if(testArr.length==0)
			return true;
		var toggle=0;
		for(var i=0; i<testArr.length; i++) {
			if(testArr[i]==" ") {
				toggle=1;
				break;
			}
		}
		if(toggle)
			return true;
		return false;
	}

	function isValid(who) {
		var invalidChars=new Array("~","!","@","#","$","%","^","&","*","(",")","+","=","[","]",":",";",",","\"","'","|","{","}","\\","/","<",">","?");
		var testArr=who.split("");
		for(var i=0; i<testArr.length; i++) {
			for(var j=0; j<invalidChars.length; j++) {
				if(testArr[i]==invalidChars[j]) {
					return false;
				}
			}
		}
		return true;
	}

	function isfl(who) {
		var invalidChars=new Array("-","_",".");
		var testArr=who.split("");
		which=0;
		for(var i=0; i<2; i++) {
			for(var j=0; j<invalidChars.length; j++) {
				if(testArr[which]==invalidChars[j]) {
					return false;
				}
			}
			which=testArr.length-1;
		}
		return true;
	}

	function isDomain(who) {
		var invalidChars=new Array("-","_",".");
		var testArr=who.split("");
		if(testArr.length<2||testArr.length>4) {
			return false;
		}
		for(var i=0; i<testArr.length; i++) {
			for(var j=0; j<invalidChars.length; j++) {
				if(testArr[i]==invalidChars[j]) {
					return false;
				}
			}
		}
		return true;
	}


	var testArr=who.split("@");
	if(testArr.length<=1||testArr.length>2) {
		return false;
	}
	else {
		if(isValid(testArr[0])&&isfl(testArr[0])&&isValid(testArr[1])) {
			if(!isEmpty(testArr[testArr.length-1])&&!isEmpty(testArr[0])) {
				var testArr2=testArr[testArr.length-1].split(".");
				if(testArr2.length>=2) {
					var toggle=1;
					for(var i=0; i<testArr2.length; i++) {
						if(isEmpty(testArr2[i])||!isfl(testArr2[i])) {
							toggle=0;
							break;
						}
					}
					if(toggle&&isDomain(testArr2[testArr2.length-1]))
						return true;
					return false;
				}
				return false;
			}
		}
	}
}

