    //***************************************

    //Funciones comunes a todos los problemas

    //***************************************

    function addEvent(elemento,nomevento,funcion,captura){

		if (elemento.attachEvent){

			elemento.attachEvent('on'+nomevento,funcion);

			return true;

		}else

			if (elemento.addEventListener){

				elemento.addEventListener(nomevento,funcion,captura);

				return true;

			}else

				return false;

    }

	function nuevoAjax(){

		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;

	}


// ****************** Imprime contenido de paginas ******************
// interface --> archivo php que realiza la operación
// cnt_param --> cantidad de parametros que le pasamos al archivo php
// iddv      --> id del div donde se despliega el gif de la espera y el mensaje de confirmación o error
// iddvtabla --> id del div que contiene la tabla que se va a actualizar
// idtabla   --> id de la tabla que será actualizada
function imprime_contenido(interface, cnt_param, iddv, iddvtabla, idtabla){

	c = document.getElementById(iddv);
	if ( iddvtabla != '') dvtabla = document.getElementById(iddvtabla);
	
	var param = [];
	var parametros = '';
	
	for (i=0;i<cnt_param;i++){
		parametros += "&p" + i + "=" + document.getElementById('p'+i).value;
	}
	
	ajax=nuevoAjax();

	c.innerHTML = '<img src="../images/ajax-loader.gif" />'; 

	ajax.open("POST", interface,true);

	ajax.onreadystatechange=function() {

	   if (ajax.readyState==4) {

			var respuesta = eval(ajax.responseText); // Convierto el array devuelto por php en un array js.
			if (respuesta[0] == 1){
				document.location.href='admin.php';
			}else{
				c.innerHTML = respuesta[1];									
				if (respuesta[0] == "SI"){ // Debo actualizar la tabla 
					dvtabla.innerHTML = respuesta[2];
					creo_sortable(iddvtabla, idtabla);
				}
			}
	   }

	}

	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

	ajax.send(parametros);

}
// ****************** Fin contenido de paginas ******************

// ************* Cargo Campos en formularios para Modificación **************
function carga_formulario(iddiv, id_fila){
	switch(iddiv){
		case 'dvtabladias':
			orden = document.getElementById(id_fila).cells[0].childNodes[0].data;
			desc = document.getElementById(id_fila).cells[1].childNodes[0].data;
			document.getElementById('p0').value = id_fila;
			document.getElementById('p1').value = orden;
			document.getElementById('p2').value = desc;
			document.getElementById('p3').value = 'U';
			break;
		case 'dvtablaarticulos':
			titulo = document.getElementById(id_fila).cells[1].childNodes[0].data;
			cuerpo = document.getElementById(id_fila).cells[2].innerHTML;
			document.getElementById('p0').value = id_fila;
			document.getElementById('p1').value = titulo;
			document.getElementById('p2').value = cuerpo;
			document.getElementById('p3').value = 'U';			
			break;			
	}
}

function creo_sortable(iddvtabla, idtabla){

	var myTable = {};
				window.addEvent('domready', function(){
					myTable = new sortableTable(idtabla, {overCls: 'over', onClick: function(){carga_formulario(iddvtabla, this.id)}});
				});
}

function eliminar_articulo(interface, cnt_param, iddv, iddvtabla, idtabla){
	if (confirm('¿Desea eliminar el Artículo?')){
		imprime_contenido(interface, cnt_param, iddv, iddvtabla, idtabla);
	}
}

// *********** Tamaño máximo del TextArea **************
contenido_textarea = "";
num_caracteres_permitidos = 5000;

function valida_longitud(){
   num_caracteres = document.forms[0].textarea.value.length;

   if (num_caracteres > num_caracteres_permitidos){
      document.forms[0].textarea.value = contenido_textarea;
   }else{
      contenido_textarea = document.forms[0].textarea.value;
   }

   if (num_caracteres >= num_caracteres_permitidos){
      document.forms[0].txtcaracteres.style.color="#ff0000";
   }else{
      document.forms[0].txtcaracteres.style.color="#000000";
   }

   cuenta();
}

function cuenta(){
   document.forms[0].txtcaracteres.value= (num_caracteres_permitidos - document.forms[0].textarea.value.length);
} 

// ******************* Validar espacios en blanco *********************

function valCampo(texto){
	texto = texto.replace(/^\s+|\s+$/g,"");
	return !(texto == "" || texto == null);

}

// ******************* Comprobar extensión de fotos a subir ********************

function comprueba_extension(extensiones_permitidas) {
   archivo = document.getElementById("archivo").value;
   mierror = "";
   if (archivo){
      //recupero la extensión de este nombre de archivo
      extension = (archivo.substring(archivo.lastIndexOf("."))).toLowerCase();
      //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 del archivo, extensiones permitidas: " + extensiones_permitidas.join();
		  alert (mierror);
	      return false;		 
      }else
		   return true;
   }else{
		mierror = "Debe seleccionar un archivo, extensiones permitidas: " + extensiones_permitidas.join();
		alert (mierror);	   
		return false;
   }
}

// *****************************************************************************

function validar_form_articulo(){
	titulo = document.getElementById('p1').value;
	checkfoto = document.getElementById("chkfoto");
	
	if (!valCampo(titulo)){
		alert('No se permiten campos en blanco, verifique.');
		return false;
	}else{
		if (checkfoto.checked){ // Si el check esta activo, compruebo la extension del archivo.
		    extensiones_permitidas = new Array(".gif", ".jpg", ".png");
			return comprueba_extension(extensiones_permitidas);
		}else
			return true;
	}
}

function validar_form_emitido(){
	titulo = document.getElementById('p1').value;
	fecha = document.getElementById('p2').value;	
	checkfoto = document.getElementById("chkfoto");
	
	if (!valCampo(titulo)){
		alert('No se permiten campos en blanco, verifique.');
		return false;
	}else{
		if (validar_fecha(fecha) == false){
			alert('Fecha no válida (Formato: 01/01/2010), verifique.');
			return false;
		}else{
			if (checkfoto.checked){ // Si el check esta activo, compruebo la extension del archivo.
			    extensiones_permitidas = new Array(".mp3");
				return comprueba_extension(extensiones_permitidas);
			}else
				return true;
		}
	}
}

function validar_form_programa(){
	programa = document.getElementById('p1').value;
	
	if (!valCampo(programa)){
		alert('Debe ingresar el nombre del programa.');
		return false;
	}else{
		return true;
	}
}

// *********************** Habilitar/deshabilitar Adjuntar Archivo ***********************

function adjuntar_archivo(){
	checkfoto = document.getElementById("chkfoto");
	archivo = document.getElementById("archivo");
	if(checkfoto.checked)
		archivo.style.display = "";
	else
		archivo.style.display = "none";

}

// ***************************************************************************************

// ------------ VALIDAR FECHA ------------------------------------------------------------
function validar_fecha(Cadena){
	var Fecha= new String(Cadena)	// Crea un string
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	// Cadena Año
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
	// Cadena Mes
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
	// Cadena Día
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))

	// Valido el año
	if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){
		return false
	}
	// Valido el Mes
	if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		return false
	}
	// Valido el Dia
	if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){
		return false
	}
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if (Mes==2 && Dia > 28 || Dia>30) {
			return false
		}
	}
	return true;
}
