/***********************************************************************************************
  se le llama en el "onchange" del combo "tipo documento" y conmuta la visibilidad de los campos
  "nombre y apellidos" y "razón social". Ejemplo en "../jsp/presupuestadorAutos/emaupr_dattom.html"
  pValue es el value de la opción del combo: debe ser "cif"
  pNum: en caso de haber más de un bloque con la misma funcionalidad en la página (trNomApe1, trNomApe2 .. etc.)
***********************************************************************************************/
function filtroTipoDoc(pValue,pNum) {
  pNum = pNum != null ? pNum:"";
  if(pValue.toUpperCase() == "CIF")
    var bol = true;
  else 
    var bol = false;
  limpiarValores("trNomApe"+pNum)
  limpiarValores("trRS"+pNum)
  showHide("trNomApe"+pNum, !bol);
  showHide("trRS"+pNum, bol);
} 

/***********************************************************************************************
    la función busca elementos de formulario en el objeto para desseleccionar/borrar valores
    obj = celda/capa,etc. : 
***********************************************************************************************/
function limpiarValores(obj) {
    obj = document.getElementById(obj);
    var combos = obj.getElementsByTagName("SELECT");
    var campos = obj.getElementsByTagName("INPUT");
    var areas  = obj.getElementsByTagName("TEXTAREA");
    for(var k = 0; k<areas.length; k++)
      areas[k].value = "";
    for(var k = 0; k<campos.length; k++)  
      campos[k].value="";
    for(var k = 0; k<combos.length; k++)
      combos[k].selectedIndex = -1;
}


function lanzarVentana(pag, width, height, parametros)  {
  var args = "centered=yes, status=no, alwaysRaised=yes, dependent=yes, directories=no, menubar=no, toolbar=no, resizable=no, width="+width+ "px, height="+height+"px, scrollbars=yes"
  if(navigator.appName == "Microsoft Internet Explorer")
   ventana = window.showModalDialog(pag, parametros,"dialogHeight:"+height+"px; dialogWidth:"+width+"px;status:no")
  else
   ventana = window.open(pag,"win","modal=yes, "+args)
  return ventana
}

function abrirVentana(pag, width, height)  {//alert(pag)
  var ie = navigator.userAgent.toLowerCase().indexOf("msie")
  if(ie != -1)  {
    ancho = screen.width;
    alto = screen.height;
  } else  {
    ancho = window.innerWidth;
    alto = window.innerHeight;
  }
  var args = "centered=yes, status=no, alwaysRaised=yes, directories=no, menubar=no, toolbar=no, resizable=no, width="+width+ "px, height="+height+"px, left="+ eval((ancho/2)-(width/2)) +", top="+ eval((alto/2)-(height/2)) +", scrollbars=yes"
   ventana = window.open(pag,"win", args)
}

function getPage(pPage, targetFrame) {
  if(targetFrame == null){
     document.location = pPage;
  }else{
     top.window.frames[targetFrame].document.location = pPage;
  }
}
function setValue(element, value) {
  if(value!="undefined" && value!=null)  {
    value = trim(value);
    document.getElementById(element).value = value;
  }
}

function setText(pId, pValue) {
  if(value!="undefined" && value!=null)  {
    document.getElementById(pId).innerHTML = pValue;
  }
}

function trim(s) {
  return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

function cambiaBarras(pHide, pShow) { //operaciones y enlaces
  document.getElementById(pHide).style.display = "none";
  document.getElementById(pShow).style.display = "block";
}
var filaSelected;
function rowOver(pObj, pClase)  {
  if(pObj.className == "selectedRow") return
  if(filaSelected != null && pClase == "selectedRow")
    filaSelected.className = filaSelected.clase;
  if(pClase ==  "selectedRow")
    filaSelected = pObj;
    
  pObj.className = pClase;
}

//propiedad display
function showHide(pID, pBol)   {
  if(pID == "[object]") 
    var obj = pID
  else
    var obj = document.getElementById(pID);
  if(pBol == null)  {
    var vis = (obj.currentStyle.getAttribute('display') != "block") ? "block" : "none";
  } else  {
   var vis  = (pBol) ? "block" : "none";
  }
  obj.style.display = vis;
}

//propiedad visibilidad
function showHideVis(pID, pBol)   {
  var obj = document.getElementById(pID);
  if(pBol == null)  {
    var vis = (obj.currentStyle.getAttribute('visibility') != "visible") ? "visible" : "hidden";
  } else  {
   var vis  = (pBol) ? "visible" : "hidden";
  }
  obj.style.visibility = vis;
}

function showHideArrai(arrai, pBol)  {
  for(var i=0; i < arrai.length; i++) {
    showHide(arrai[i], pBol)
  }
}

//maestroDetalle
function anadir(pTabla, pCampo1, pCampo2, pCampo3, pCampo4, pCampo5, pCampo6, pCampo7, pCampo8, pCampo9) {
  for(var i=1; i<arguments.length; i++) {
    var vacio = false;
    var campo = document.forms[0][arguments[i]];
    if(campo.type != "text") {
      if(campo.selectedIndex == -1)
        vacio = true;
    } else if (campo.value == "") {
      vacio = true;
    }
    if(vacio) {
      alert("Debe rellenar los campos marcados con flecha roja (campos obligatorios)");
      campo.focus();
      return
    }
  }
  if(seleccionada != null)  {
    var filaSeleccionada = document.getElementById(pTabla).getElementsByTagName("TR")[seleccionada];
    filaSeleccionada.className =  filaSeleccionada.clase;
    seleccionada = null;   
  }
  
  var tabla = document.getElementById(pTabla);
  var index = tabla.getElementsByTagName("TR").length;
  var fila = tabla.insertRow(index);
  var clase = (index%2 == 0)? "fdoColor2" : "fdoBco";
  
  fila.className = clase;
  fila.onmouseover = function() {rowOver(fila,'listadoOver')};
  fila.onmouseout = function() {rowOver(fila,clase)};
  fila.onclick = function() {seleccionada = this.rowIndex; this.clase = clase; rowOver(this, 'selectedRow'); cargarDatos(this)};
  

  for(var i=1; i<arguments.length; i++) {
    var campo = document.forms[0][arguments[i]];
      if(campo.type == "text")  {
        var valor = campo.value;
        campo.value = "";
      } else if(campo.type == "select-one") {
        var valor = campo.options[campo.selectedIndex].text;
        campo.selectedIndex = -1;
      }
    celda = fila.insertCell(fila.getElementsByTagName("TD").length);
    celda.id = "td"+arguments[i];
    celda.innerHTML = valor;
  }
}
var seleccionada = null;
function modificar(pTabla, pCampo1, pCampo2, pCampo3, pCampo4, pCampo5, pCampo6, pCampo7, pCampo8, pCampo9) {
  if(seleccionada == null)  {
    alert("Debe seleccionar una fila haciendo click sobre ella");
    return
  } else {
    var fila = document.getElementById(pTabla).getElementsByTagName("TR")[seleccionada];
    var celdas = fila.getElementsByTagName("TD");
    for(var i=1,k=0; i<=celdas.length; i++,k++) {
      var campo = document.forms[0][arguments[i]];
      if(campo.type == "text")  {
        celdas[k].innerHTML = campo.value;
        campo.value = "";
      } else if(campo.type == "select-one") {
        celdas[k].innerHTML = campo.options[campo.selectedIndex].text;
        celdas[k+1].innerHTML = campo.value;
        campo.selecetedIndex = -1;
        break
      }
    } 
    fila.className =  fila.clase;
    seleccionada = null;
  }
}

function eliminar(pTabla) {
  if(seleccionada == null)  {
    alert("Debe seleccionar una fila haceindo click sobre ella");
    return
  } else {
    var tabla = document.getElementById(pTabla);
    tabla.deleteRow(seleccionada)
    seleccionada = null;
    for(var i=1; i<arguments.length; i++) {
      var campo = document.forms[0][arguments[i]];
      eval(campo).value = "";
    }
  }
}

function cargarDatos(pObj) {
  var celdas = pObj.getElementsByTagName("TD")
  for(var i=0; i<celdas.length; i++) {
    var campo = document.forms[0][celdas[i].id.substr(2)];
    if(campo.type == "text")  {
      campo.value = celdas[i].innerHTML;
    } else if(campo.type == "select-one") {
      for(var j=0; j<campo.options.length; j++) {
        if(campo.options[j].text == celdas[i].innerHTML)  {
          campo.selectedIndex = j;
          break
        }
      }
    }
  }
}

function camposPersona(valor)  {//conmuta la visibilidad de los campos
  document.getElementById('divjur').style.display = "none"
  document.getElementById('divfis').style.display = "none"
  document.getElementById('divnada').style.display = "none"
  switch (valor)  {
    case '':
      document.getElementById('divnada').style.display = "block";
      break;
    case '1':
      document.getElementById('divfis').style.display = "block";
      break;
    case '2':	
      document.getElementById('divjur').style.display = "block";
      break;
  }
}

function camposDatosBancarios(valor)  {//conmuta la visibilidad de los campos
  document.getElementById('bancaria').style.display = "none"
  document.getElementById('extranjera').style.display = "none"
  document.getElementById('tarjeta').style.display = "none"
  switch (valor)  {
    case '1':
      document.getElementById('bancaria').style.display = "block";
      break;
    case '2':
      document.getElementById('extranjera').style.display = "block";
      break;
    case '3':	
      document.getElementById('tarjeta').style.display = "block";
      break;
  }
}

function camposImporte(valor)  {//conmuta la visibilidad de los campos
  document.getElementById('ImpFijo').style.display = "none"
  document.getElementById('PorPrima').style.display = "none"
  document.getElementById('PorCapit').style.display = "none"
  document.getElementById('Carencia').style.display = "none"
  document.getElementById('tdImpFijo').style.display = "none"
  
  switch (valor)  {
    case '1':
        document.getElementById('ImpFijo').style.display = "block"
        document.getElementById('tdImpFijo').style.display = "block"
    break
    case '2':
    document.getElementById('PorPrima').style.display = "block";
    break
    case '3':
        document.getElementById('PorCapit').style.display = "block"
    break
    case '4':
        document.getElementById('Carencia').style.display = "block"
    break
  }
}

function limpiar(obj)   {
   obj.value = "";
}
var tdAnterior;
function selectRow(row)	{    
	var cells = row.cells;
    for(var i=0; i<cells.length; i++)	{
		cells[i].className = "selectedRow";  
    } 
	resetSelected(row);   
}
/**
* funci?n utilizada en loaddatarow para desactivar la anterior celda marcada
**/
  function resetSelected(row)   {
      if(tdAnterior != null && tdAnterior != row)  {
         cells = tdAnterior.cells;
         for(var i=0; i<cells.length; i++)   
            cells[i].className = "";  
      }
      if(row != null)
         tdAnterior = row;
      else 
         tdAnterior = null;
   }
   
   
//función que da altura a la capa de pantalla con scroll.
//Calcula lo que hay por encima y por debajo de la capa.
//se ha incluido una capa cBody a nivel de tiles para saber el alto del body completo.
function layOutPantalla()   {
   try   {
   	  if(document.body && document.getElementById("cScroll")) {
   	  	if(document.readyState == "loading")	{
   	  		//las ventanas modales tardan más en cargar ..
   	  		setTimeout("layOutPantalla()", 10)
   	  	} else	{
	      	 try   {
	           	var espacioAnterior = document.getElementById("cScroll").offsetTop;
	            var espacioPosterior = document.getElementById("cBody").offsetHeight - (document.getElementById("cScroll").offsetTop + document.getElementById("cScroll").offsetHeight);
	            var medida_cScroll = document.body.offsetHeight - 21 - (espacioAnterior + espacioPosterior);
	            if(medida_cScroll < 60)	{
	            	medida_cScroll = 60;
	            }
	            if(medida_cScroll < document.getElementById("cScroll").offsetHeight)	{
	            	document.getElementById("cScroll").style.height = medida_cScroll;
	            }
	         } catch(e)  {
	            return
	         }
	      }
      } else  {
         setTimeout("layOutPantalla()", 100)
      }
   } catch(e)   {
      return
   }
}
   