// +----------------------------------------------------------------------+
// | Autor:  Daniel Figueroa J. <daniel@comuniterra.com>                  |
// +----------------------------------------------------------------------+
// | Descripcion:                                                         
// |     Libreria de funciones JScript propias del funcionamiento del sistema Kynnemedia
// +----------------------------------------------------------------------+

function valida(objeto,tipoValidacion,nombreCampo) 
{  
//alert("ya entre a la mera validacion.tipo:"+tipoValidacion+" campo:"+nombreCampo+" objeto:"+objeto.id);
  //Verificar que tipo de validacion se desea hacer
  //solotexto,numero,alfanumerico,email,combo 
  switch(tipoValidacion) { //inicia Switch
   //Validar que el campo sea solo de tipo texto
   case "solotexto":
    var pos_caracter = objeto.value.search("[^A-Za-z\ -_.,']"); 
	//search("[^A-Za-z0-9\-_]"); 
	if(pos_caracter >= 0 || objeto.value=="") { 
     alert("Solo puedes introducir letras en el campo: "+nombreCampo);	 
	 objeto.focus();
     return false;
	}
    else {    
     return true;  
    } 
   break; //Termina case "texto"
   
   case "numero":
    var pos_caracter = objeto.value.search("[^0-9\.] "); 
	if(pos_caracter >= 0 || objeto.value=="") { 
     alert("Solo puedes introducir numeros en el campo: "+nombreCampo);	 
	 objeto.focus();
     return false;	 
	}
    else {    
     return true;  
    } 
   break; //termina case "numero"
   
   case "alfanumerico":
    var pos_caracter = objeto.value.search("A-Za-z0-9\ -_.,();ñ'#$@%"); 
	if(pos_caracter >= 0 || objeto.value=="") { 
     alert("Debes llenar el campo: "+nombreCampo);
	 objeto.focus();	 
     return false; 
	}
    else {    
     return true;	 
    } 
   break; //termina case "alfanumerico"
   
   case "email":   
    if(objeto.value.indexOf('@', 0)==-1 || objeto.value.indexOf('.', 0)==-1 ) { 
     alert("Debes introducir una direccion de e-mail valida");
     objeto.focus(); 
     return false; 
    } 
    else
     return true;
   break; //termina case "email"
   
   case "combo":    
	if(objeto.value=="" || objeto.value=='0') { 
     alert("Debes seleccionar una opcion de la lista");	 
     return false; 
	}
    else {    
     return true;	 
    } 
   break; //termina case "combo"
  
  } //termina Switch
} //Termina funcion valida

//inicia funcion validar todos los objetos
function validaCampos(form) 
{	
 var campos_llenos="";
 campos_llenos='si';	
 for (i = 0; i < form.elements.length; i++) { //inicia for
  //inicia validacion de textos y areas
  if (form.elements[i].type == "text" || form.elements[i].type == "textarea" || form.elements[i].type == "file" || form.elements[i].type == "select-one" || form.elements[i].type == "password") {    
   if(valida(form.elements[i],form.elements[i].accept,form.elements[i].title)==0) {
	//el usuario no lleno el campo
    form.elements[i].focus(); 
	campos_llenos='no'; 	
	break;
   }
  } //termina if validacion de textos y areas
 } //termina for
 if(campos_llenos=='no') //el usuario dejo algun campo en blanco
  return false;
 else  //el usuario lleno todos los campos requeridos
  return true;  
}
//termina funcion validar todos los objetos

function limpiaCampos(form) 
{
 for (i = 0; i < form.elements.length; i++) {
  if (form.elements[i].type == "text" || form.elements[i].type == "textarea" || form.elements[i].type == "password") { 
   form.elements[i].value=""; 
  }
  if (form.elements[i].type == "checkbox") { 
   form.elements[i].checked=0; 
  }
 }
}

function obtenerVariables(form) 
{
 var variablesForma;
 var aux_contador=1;
 variablesForma="";
 for (i = 0; i < form.elements.length; i++) {
  //alert(form.elements[i].type);
  //inicia if texto o area
  if (form.elements[i].type == "text" || form.elements[i].type == "textarea") {   
   valor=form.elements[i].value.replace(/\n/g,"<br>");
   //alert(valor);
   variablesForma=variablesForma+form.elements[i].name+"="+valor+"&";   
  } //termina if texto o area
  
  //inicia if select
  if (form.elements[i].type == "select-one") {    
   variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if texto o area    
  
  //inicia if hidden
  if (form.elements[i].type == "hidden") { 
   variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if hidden  
  
  //inicia if checkbox
  if (form.elements[i].type == "checkbox") { 
   if(form.elements[i].checked==1)
    variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if checkbox
  
  //inicia if file
  if (form.elements[i].type == "file") { 
   variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if file
  
   //inicia if password
  if (form.elements[i].type == "password") { 
   variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if password
  
  //inicia if radio
  if (form.elements[i].type == "radio") { 
   if(form.elements[i].checked==1)
    variablesForma=variablesForma+form.elements[i].name+"="+form.elements[i].value+"&"; 
  } //termina if radio
 }
 return variablesForma;
}

function guardaRegistro(tabla,accion,capa,tipo_notificacion,formulario) {      
 if(!formulario)
  formulario=document.form1;
 if(confirm("Deseas enviar la informacion?")) 
 {
  if(validaCampos(formulario)) 
  {
   var url="escribeDatos.php?tabla="+tabla+"&accion="+accion+"&tipo_notificacion="+tipo_notificacion+"&"+obtenerVariables(formulario); 
   //alert(url);
   FAjax(url,capa,'','POST',tipo_notificacion); 
   if(accion=="insertar") 
    //limpiaCampos(formulario);       
   limpiaCapa(capa);
  }
  
 } //if confirm
 } //termina funcion

function eliminaRegistro(tabla,clave,tipo_notificacion) {
 if(confirm("Deseas eliminar el registro seleccionado?\nToma en cuenta que se eliminara toda la informacion relacionada con este elemento.")) {
   var url="escribeDatos.php?tabla="+tabla+"&clave="+clave+"&accion=eliminar&tipo_notificacion="+tipo_notificacion;    
   //alert(url);
   FAjax(url,'msgSistema','','POST',tipo_notificacion); 
   document.getElementById('fila-'+clave).style.display='none';  
   limpiaCapa('msgSistema');
  }  	
} //funcion

function recargaSeccion(url,capa) { 
 setTimeout("abreSeccion('"+url+"','"+capa+"')",1000);
} //funcion

function limpiaCapa(capa) {
 setTimeout("document.getElementById('"+capa+"').innerHTML='&nbsp;';",1250);
} //funcion

function valor(id) {
 return document.getElementById(id).value;	
} //function

function objeto(id) {
 return document.getElementById(id);	
} //function

function redondear(cantidad, decimales) {
 var cantidad = parseFloat(cantidad);
 var decimales = parseFloat(decimales);
 decimales = (!decimales ? 2 : decimales);
 return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} //funcion 

function fechaCompleta() {
 todaysDate = new Date(); dayarray = new
 Array("Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"); 
 montharray = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
 document.write(dayarray[todaysDate.getDay()] + ", " + todaysDate.getDate() + " de " + montharray[todaysDate.getMonth()] + " de "); 
 if(todaysDate.getYear()<1000) { 
  document.write(todaysDate.getYear() + 1900); 
 } 
 else { 
  document.write(todaysDate.getYear());
 } 
} //funcion

function enviaFormNormal() {
if(confirm("Deseas enviar la informacion?")) 
 {
  if(validaCampos(document.form1)) 
  {
   document.form1.submit();
  }
 } //if confirm
} //funcion

function focoActivo(obj) { 
 var obj=document.getElementById(obj);
 obj.style.background='#eaeaea'; 
 obj.style.display='inline';
 obj.style.border='1px solid #999999';
} //funcion

function focoFuera(obj) { 
 var obj=document.getElementById(obj);
 obj.style.background='#ffffff';
 obj.style.display='inline';
 obj.style.border='1px solid #999999';
} //funcion

function abreSeccion(seccion,capa) {
 FAjax(seccion,capa,'','POST','capa');
} //funcion

function abreSeccionEval(seccion) {
 FAjax(seccion,'msgSistema','','POST','alert');
} //funcion

function cambiaUrlFrame(frame,url) {
 document.getElementById(frame).src=url;
 document.getElementById(frame).style.display='block';
}

function mueveReloj(){ 
    momentoActual = new Date(); 
    horas = momentoActual.getHours(); 
    minutos = momentoActual.getMinutes(); 
    segundos = momentoActual.getSeconds(); 

var mt ="AM"; 
if (horas > 12) { 
mt ="PM"; 
horas = horas - 12; 
} 
if (horas == 0) horas = 12; 
if (minutos <= 9) minutos = "0" + minutos; 
if (segundos <= 9) segundos = "0" + segundos;
    horaImprimible = horas + ":" + minutos + ":" + segundos+" "+mt; 
    

    document.getElementById('reloj').innerHTML = horaImprimible 

    setTimeout("mueveReloj()",1000) 
} 
 //function

function switchEdicionRegistro(clave,comando) {
 var displayLectura=""; var displayEdicion="";
 if(comando=="edicion")	{
  	displayLectura="none";  displayEdicion="block";
 }
 if(comando=="lectura")	{
  	displayLectura="block";  displayEdicion="none";
 }
 document.getElementById('spanLecturaRegistro'+clave).style.display=displayLectura;
 document.getElementById('spanEdicionRegistro'+clave).style.display=displayEdicion;
} //funcion

function guardarRegistroIndividual(clave,ejecutaDespues) {
 var _ejecutaDespues;	
 if(typeof(ejecutaDespues)=='undefined'){_ejecutaDespues="";}else{_ejecutaDespues=ejecutaDespues}	
 //Obtener los nombres de los campos utilizados
 var campos_forma=new Array();
 var nombre_campo="";  var objeto_campo;
 var campos_llenos="si";
 var variablesUrl="";
 campos_forma=document.getElementById('campos_forma').value.split(",");
 for(x=0;x<=campos_forma.length-1;x++) {
  nombre_campo=campos_forma[x];
  objeto_campo=document.getElementById(nombre_campo+"-"+clave); 
  //alert(nombre_campo);
  
  //Verificar si este objeto debe ser validado
  if (objeto_campo.type == "text" || objeto_campo.type == "textarea" || objeto_campo.type == "file" || objeto_campo.type == "select-one" || objeto_campo.type == "password" || objeto_campo.type == "hidden") {    
   if(valida(objeto_campo,objeto_campo.accept,objeto_campo.title)==0) {
	//el usuario no lleno el campo
    objeto_campo.focus(); 
	campos_llenos='no'; 	
	break;
   } 
   else {     
	variablesUrl=variablesUrl+nombre_campo+"="+objeto_campo.value.replace(/\n/g,"<br>")+"&";   
	campos_llenos="si";
   } //else campo lleno
  } //termina if validacion de textos y areas  
 } //for campos de la forma
 
 if(campos_llenos=="si") { //Campos validados y parametros url armados, enviar la info
  var tabla_forma=document.getElementById('tabla_forma').value;
  var accion="";
  var tipo_notificacion=document.getElementById('tipo_notificacion').value;
  var div_notificacion=document.getElementById('div_notificacion').value;
  var campos_omitir=document.getElementById('campos_omitir').value;
  if(clave=="") accion="insertar"; else accion="actualizar";
  var url="escribeDatos.php?tabla="+tabla_forma+"&accion="+accion+"&tipo_notificacion="+tipo_notificacion+"&"+variablesUrl+"campos_omitir="+campos_omitir+"&refresca_inmediato=si"; 
   //alert(url);
   FAjax(url,div_notificacion,'','POST',tipo_notificacion); 
   if(_ejecutaDespues!="")
    setTimeout(_ejecutaDespues,1000);
 }
} //funcion

function setValorCampoDesdePHP(campo,valor) {
 var val=valor;
 var tipo;
 var objeto;
 try { 
  objeto=document.getElementById(campo);
  tipo=objeto.type;
  //alert(tipo);
  if(tipo=="select-one")  //Si es combo, obtener el text para pasarlo al span de solo lectura
   val=document.getElementById(campo)[objeto.selectedIndex].text; 
  document.getElementById('ro-'+campo).innerHTML=val;
 } //try
 catch(e){};
} //funcion

function checaCaja(cajacheck,id,textbox) {
 //alerta(id); alerta(cajacheck);
 var caja=objeto(cajacheck);
 var contenedor=objeto(textbox);
 if(caja.checked==1) { //agregar usuario
  contenedor.value=contenedor.value+id+"-";
 } 
 else {
  var str=contenedor.value;  
   contenedor.value=str.replace(id,"0");
 }
} //funcion
