// ************************************* FUNCIONES PARA AJAX *****************************************************
var net = new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;

// Constructor
net.CargadorContenidos = function(url, funcion, metodo, parametros,contentType,funcionError) {
    this.url = url;
    this.req = null;
    this.onload = funcion;
    this.onerror = (funcionError) ? funcionError : this.defaultError;
    this.cargaContenidoXML(url, metodo, parametros, contentType);
}

net.CargadorContenidos.prototype = {
    cargaContenidoXML: function(url, metodo, parametros, contentType) {
	if (window.XMLHttpRequest) {
	    this.req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
	    this.req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(this.req) {
	    try {
		var loader = this;
		this.req.onreadystatechange = function() {
		    loader.onReadyState.call(loader);
		}
		this.req.open(metodo, url, true);
		if(contentType) {
		    this.req.setRequestHeader("Content-Type", contentType);
		}
		this.req.send(parametros);
	    } catch (err) {
		this.onerror.call(this);
	    }
	}
    },onReadyState: function() {
	var req = this.req;
	var ready = req.readyState;
	if (ready == net.READY_STATE_COMPLETE) {
	    var httpStatus = req.status;
	    if(httpStatus == 200 || httpStatus == 0) {
		this.onload.call(this);
	    }else {
		this.onerror.call(this);
	    }
	}
    },defaultError: function() {
	alert("Se ha producido un error al obtener los datos" + "\n\nreadyState:" + this.req.readyState	+ "\nstatus: " + this.req.status + "\nheaders: " + this.req.getAllResponseHeaders());
    }
}

// ************************************************* FUNCIONES COMUNES DE JAVASCRIPT *************************************
//funcion validar formulario 
function validar_formulario(form) { 
  resultado = false; 
  if(form.nombre.value == '' ){
      alert('El campo Nombre es obligatorio');
  }else{  
      if ((form.correo.value == "") || (form.correo.value.indexOf('@') == -1) || (form.correo.value.indexOf('.') == -1)) {
          alert('Por favor rellene correctamente el campo Email, es obligatorio.');
      }else{
          if(form.telefono.value == '' ){
	      alert('El campo Teléfono es obligatorio');
	  }else{
	      if (form.comentarios.value == ''){
	          alert('El campo Comentarios es obligatorio');
   	      }else{
	          if (confirm('¿Está seguro de enviar el formulario?')){
		      resultado = true; 
		  }else{
		      resultado = false;
		  }
	      }
	  }
      }
  }
  return resultado;
 }

function validar_formulario2(form) { 
  resultado = false; 
  if(form.nombre.value == '' ){
      alert('El campo Nombre es obligatorio');
  }else{  
       if(form.apellidos.value == '' ){
          alert('El campo Apellidos es obligatorio');
      }else{
          if(form.telefono.value == '' ){
	          alert('El campo Teléfono es obligatorio');          
          }else{
	      if ((form.correo.value == "") || (form.correo.value.indexOf('@') == -1) || (form.correo.value.indexOf('.') == -1)) {
                  alert('Por favor rellene correctamente el campo Email, es obligatorio.');              
	      }else{	          
	          if (confirm('¿Está seguro de enviar el formulario?')){
		      resultado = true; 
		  }else{
		      resultado = false;
		  }
	      }
	  }
      }
  }
  return resultado;
 }

//función abre ventana sin barra de herramientas
function abrir_ventana (pagina) {
var opciones="toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=800, height=600, top=85, left=140";
window.open(pagina,"",opciones);
}

//CAMBIACOLOR_CELDA: Se le pueden pasar 2 objetos para el caso en que se
//use para cambiar el color en un marcador u omitiendo el objeto2 y usándola, 
//por ejemplo, en un menu para resaltar la celda
function cambiacolor_celda(objeto,color,puntero,objeto2){
    objeto.style.backgroundColor = color;    
    objeto2.style.cursor = puntero;
}

//CAMBIA_IMG: se pasa el objeto y la img con ruta 
function cambia_img(objeto,img){
  objeto.src=img;
  objeto.style.cursor='pointer';
}

// CAMBIAIMAGEN_CELDA cambiar la imagen de background de una objeto
function cambiaimagen_celda(objeto,imagen,puntero){
  objeto.style.background = "url("+imagen+")";
  objeto.style.cursor = puntero;
}

//HABILITACAPA: función para habilitar capas para simular pestañas. En la página donde están las
//capas creamos una matriz con el nombre de las capas que hay, y a la función le pasamos la posición
//en la matriz de la capa que queremos visible y la matriz de capas.
function HabilitaCapa(posicionVisible,matriz){
document.getElementById(matriz[posicionVisible]).style.display = 'block';
for (i=0;i<(matriz.length);i++){ // recorremos la matriz y desactivamos todas las capas
  if (i != posicionVisible){
    document.getElementById(matriz[i]).style.display = 'none';
    }
  }

}

function confirmaBorrado () {
  if (confirm('¿Está seguro de eliminar el registro seleccionado?')){
    return true
  } else {
    return false
  }
}

// Marca las imágenes del carrusel que se van a eliminar
function marcarOpcion(objeto){
var ristra,subristra;
ristra = '';
subristra = '';
    if (objeto.checked == false){
	// buscamos si ya existe y lo eliminamos
	indicenuevo = objeto.value;	
	i = 0;
	ristra = imagenesmarcadas;	
	posicioncomaAnt = imagenesmarcadas.indexOf(',',0);
	while (imagenesmarcadas.length > i){	    
	    posicioncoma = imagenesmarcadas.indexOf(',',i);	    
	    if (posicioncoma == -1){
		posicioncoma = imagenesmarcadas.length;
	    }
	    indice = imagenesmarcadas.substring(i,posicioncoma);	    	   
	    if (indice == indicenuevo){		
		// hemos encontrado el mismo indice y lo eliminamos
		if (posicioncoma == posicioncomaAnt){ // es el primer indice
		    ristra = imagenesmarcadas.substring(posicioncoma+1,imagenesmarcadas.length);
		}else{
		    if (posicioncoma == imagenesmarcadas.length){
			ristra = imagenesmarcadas.substring(0,(posicioncomaAnt));
		    }else{			
			ristra = imagenesmarcadas.substring(0,posicioncomaAnt+1) + imagenesmarcadas.substring(posicioncoma+1,imagenesmarcadas.length);
		    }			
		}		
		i = imagenesmarcadas.length+1;
	    }else{
		i = posicioncoma+1;		
	    }
	    posicioncomaAnt = posicioncoma;
	}
	imagenesmarcadas = ristra;
    }else{
	if (imagenesmarcadas != ''){
	    imagenesmarcadas = imagenesmarcadas + ',';
	}
	imagenesmarcadas = imagenesmarcadas + objeto.value;    	
    }  
}

function CargaImagenTmp(ruta,formulario){      
    formulario.action=ruta;   
    formulario.submit();
}

function cambiaBorde(objeto,total){
    for (i=0;i<total;i++){
	document.getElementById("miniatura_"+i).border=0;
    }
    objeto.border = 1;
 }


