/*
Funciones comunes a toda la aplicación
*/
 
function f_borrar(){
  if (confirm("¿Está seguro que desea eliminar la información de la base de datos?")){
    document.forms[0].accion.value = "3"
    document.forms[0].submit()
  }
}

function f_submit(){
  document.forms[0].submit()
}

function vercapa(capa){
  document.getElementById(capa).style.visibility='visible'
}

function inicio(idform){
  var sForm = document.getElementById(idform);
  sForm.onsubmit = submitar;
}


function insertAtCursor(myField, ind) {
  var valores = new Array("[-SLn-]","[-N-]","[-/N-]","[-I-]","[-/I-]")
  if (document.all) { //IE
    myField.focus();
    sel = document.selection.createRange();
    sel.text = valores[ind];
  }
  else if (myField.selectionStart || myField.selectionStart == '0') { //MOZILLA/NETSCAPE
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos)
    + valores[ind]
    + myField.value.substring(endPos, myField.value.length);
    } else {
      myField.value += valores[ind];
    }
}

function addfavoritos(url,desc){
  if (document.all){
    window.external.AddFavorite(url,desc)
  }else{
    window.sidebar.addPanel(url, desc, "")
  }
}


//***************************************************************************************************************************************************************
// Función que comprueba los campos del formulario
// Es necesario definir en las páginas que continen el formulario los vectores con los nombres de los campos, los tipos y las alertas (veccampos, vectiposcampos, vecalerta)
//***************************************************************************************************************************************************************
function compruebacampos(formu){
	paso=true
	oForm = document.forms[formu]
	for (i=0;i<veccampos.length;i++){
		switch (vectiposcampos[i]){
		  case 'texto':
			paso=!oForm.elements[veccampos[i]].value==""
			break;
		  case 'tel':
			paso=!(isNaN(oForm.elements[veccampos[i]].value) || oForm.elements[veccampos[i]].value.length==0)
			break;
		  case 'mail':
			paso=checkEmail(oForm.elements[veccampos[i]].value)
			break;			
		  case 'fecha':
			paso=isDate(oForm.elements[veccampos[i]].value,false)
			break;
		  case 'nif':
			paso=isNif(oForm.elements[veccampos[i]].value,false)
			break;
		  case 'combo':
			paso=!oForm.elements[veccampos[i]].selectedIndex<=0
			break;
		  case 'check':
		  	paso=checkRadio(veccampos[i])
			break;
		  }
		  
		 if (!paso){
		 	alert(vecalerta[i]);
			oForm.elements[veccampos[i]].focus();
		 	break;
		 }
	}
	
	if (paso){ 
    oForm.submit()
  } 
}

//*************************************************************************************************
// Función que chekea el mail
//*************************************************************************************************
function checkEmail(email){
   var isEmail = email.match(/^\w+(-\w+)*(\.\w+(-\w+)*)*@\w+(-\w+)*(\.\w+(-\w+)*)*\.([a-z]{3}|[a-z]{2})$/);

   if (!isEmail) {
      //La dirección de correo no es válida
      return false;
   }else{
      //La dirección de correo es correcta
      return true;
   }

}

//***************************************************************************************************************
// Función que comprueba los campos de fecha
//***************************************************************************************************************
function isDate(fecha,bAllowEmpty){
 var sMensaje = true;
 var ddTopeSup = 30;
 var dd,mm,aa;

 if (fecha.replace(/(\s)/gi,'') == ''){
    sMensaje = bAllowEmpty;
 }else{
   var nFirstBar = fecha.indexOf('/');
   var nLastBar = fecha.lastIndexOf('/');

   if(((nFirstBar > -1) && (nLastBar > -1))){
    dd = fecha.substr(0,nFirstBar);
    //alert(dd);
    mm = fecha.substr(nFirstBar + 1,(nLastBar  - nFirstBar) - 1);
    //alert(mm);
    aa = fecha.substr(nLastBar + 1,4);
    //alert(aa);
   }
   if (aa<1760){
    sMensaje = false
   }
   if (aa < 1 || isNaN(Number(aa))) {
     sMensaje = false;
   }
   if ((mm < 1) || (mm > 12) || isNaN(Number(mm))){
     sMensaje = false;
   }else{
     if (mm == 2){
       ddTopeSup = 28;
       if (((aa % 400) == 0) || ((aa % 4) == 0 && (aa % 100) != 0)){
         ddTopeSup = 29;
       }
     }else{
       if ((mm == 1) || (mm == 3) || (mm == 5) || (mm == 7) || (mm == 8) || (mm == 10) || (mm == 12))
         ddTopeSup = 31;
     }
   }
   if ((dd < 1) || (dd > ddTopeSup) || isNaN(Number(dd))){
     sMensaje = false;
   }
 }
 return sMensaje;
} 