function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(initFormLimits);
addLoadEvent(function() {
  /* more code to run on page load */ 
});



var d, dom, nav_ie, nav_ie4, nav_ie5x, nav_mozilla, mac, win, lin, old, nav_ie5mac, nav_ie5xwin, nav_opera,nav_safari, nav_konqueror;

d = document;
n = navigator;
na = n.appVersion;
nua = n.userAgent;
win = ( na.indexOf( 'Win' ) != -1 );
mac = ( na.indexOf( 'Mac' ) != -1 );
lin = ( nua.indexOf( 'Linux' ) != -1 );

if ( !d.layers ){
	dom = ( d.getElementById );
	nav_opera = ( nua.indexOf( 'Opera' ) != -1 );
	nav_konqueror = ( nua.indexOf( 'Konqueror' ) != -1 );
	nav_safari = ( nua.indexOf( 'Safari' ) != -1 );
	nav_mozilla = ( nua.indexOf( 'Gecko' ) != -1 && ! nav_safari && ! nav_konqueror);
	nav_ie = ( d.all && !nav_opera );
	nav_ie4 = ( nav_ie && !dom );

	/*
	ie5x tests only for functionality. ( dom||ie5x ) would be default settings. 
	Opera will register true in this test if set to identify as IE 5
	*/

	nav_ie5x = ( d.all && dom );
	nav_ie5mac = ( mac && nav_ie5x );
	nav_ie5xwin = ( win && nav_ie5x );
}

var weekday=new Array(7);
weekday[0]="Domingo";
weekday[1]="Lunes";
weekday[2]="Martes";
weekday[3]="Miercoles";
weekday[4]="Jueves";
weekday[5]="Viernes";
weekday[6]="Sábado";

/* onKeyPress validation function */
function validVal(event, keyRE) {
/*
	var keynum=new String();
	var keychar;
	var numcheck;
	var meta;

	if(window.event) // IE
		{
		keynum = window.event.keyCode;
		meta=window.event.ctrlKey || window.event.metaKey;
		}
	else if(event.which) // Netscape/Firefox/Opera
		{
		keynum = event.which;
		alert (event.ctrlKey);
		alert (event.metaKey);
		meta=(event.ctrlKey || event.metaKey);
		}

	keychar = String.fromCharCode(keynum);
	
	
	if (keynum.toString().search	(/^(8|9|13|45|46|35|36|37|39)$/) != (-1) )
		return true;
	else
		return (keychar.search(keyRE)!=(-1));
		
	*/	
	try {
	//document.frmPagar.test.value=event.which;
	
			if ( String.fromCharCode(((navigator.appVersion.indexOf('MSIE') != (-1)) ? window.event.keyCode : event.which)).search(keyRE) != (-1)
				|| ( navigator.appVersion.indexOf('MSIE') == (-1)
						&& ( event.keyCode.toString().search(/^(8|9|13|45|46|35|36|37|39)$/) != (-1) 
								|| event.ctrlKey || event.metaKey ) ) ) {
				return true;
			} else {
				return false;
			}
		}
		catch(e)
		{
			alert (e.description);
			return true;
		}
}


function initFormLimits()
{
		for (j=0; j<document.forms.length; j++) {
		var theForm = document.forms[j]
    	for(i=0; i<theForm.elements.length; i++){
			if(theForm.elements[i].type == "text" || theForm.elements[i].type == "textarea" ){ 
				switch (theForm.elements[i].getAttribute('tipo'))
				{
				// tipo float
						case "3":  
									theForm.elements[i].style.textAlign='right';
										theForm.elements[i].style.paddingRight='2px';

										theForm.elements[i].onkeypress=function (event) {
											return validVal(event, /[0-9,\n\r]/);
										}
									break;
				// tipo int
						case "4":  
										theForm.elements[i].style.textAlign='right';
										theForm.elements[i].style.paddingRight='2px';
									
										theForm.elements[i].onkeypress=function (event) {
											return validVal(event, /[0-9\n\r]/);
										}
									break;
			   } 
			   
			}
		}
	}
}



function getFechaCalendario(sform, scampo, modo,ponHora)
{
    try {
        var val;
        if ( (document.forms[sform]) && (document.forms[sform].elements[scampo])) 
        {
            val= document.forms[sform].elements[scampo].value;
            AbrePopUp('/comun/calendario.asp?form=' + sform + '&campo=' + scampo + '&h='  + ponHora + '&fecha=' + val + '&m=' + modo,'calendario',300,500);
        }  
       
        
    }
   catch (e)
   {
        alert (e.description);
   } 
}

function maxLongitudTA(obj,max)
{
    var zonaCars=document.getElementById('div_ncars_' + obj.id);
    
  
            
    if (obj.value.length>max)
   {
        obj.value=obj.value.substring(0, max);
   } 
    if (zonaCars)
   {
        zonaCars.innerHTML=obj.value.length; 
    }
   
}

function focusPrimerCampo(nombreForm)
{
	try {
		
	for (i=0 ; i<document.forms[nombreForm].length;i++) 
		if (document.forms[nombreForm].elements[i].type=='text') {
			if (!document.forms[nombreForm].elements[i].readonly) {
				document.forms[nombreForm].elements[i].focus();
				break;
			}
		}
	}
	catch (e) {
		
	}
	finally { }

}

function RecibeValor(form, casilla, valor)
{

// ahora, si es una casilla de un form le mete el valor, pero si es un span es con innerhtml
		if (form && document.forms[form]) {
			
			var b=document.forms[form].elements[casilla];
			if (b)
				b.value=valor;
			else
				try {
					document.getElementById(casilla).innerHTML=valor;
				}
				catch (e) {
					alert ('no encontrado');
			}
		}
		
		else {
				var a=document.getElementById(casilla);
				
				if (a) {
						try {
								if (document.getElementById(casilla).type =='text')
									document.getElementById(casilla).value=valor;
								else
									document.getElementById(casilla).innerHTML=valor;
							}
							catch (e) {
								alert (e.description);
						}
					}
		}
	return 0;

}


function validaTfno ()
{
	var key=window.event.keyCode;
	
	if ((key < 48 || key > 57) && (key!=32)   && (key!=43)  && (key!=45)  && (key!=40)  && (key!=41)){
		window.event.keyCode=0;
	}	
}

function isNumerico(num)
{
	try {
		var vtmp=new String(num);
		vtmp=vtmp.replace(",",".");
		return (!isNaN(vtmp))	
	}
	catch (e) {
		return (false);
	}
}



function guardaFormSTD(nombreForm)
{ 
    
    var res;
   
   res=checkForm(nombreForm);
   
   if (res=='')
   {
///     AbreVentana('/comun/blanco.html','guardar',400,300,0);
			var theForm = document.forms[nombreForm];
			var nombre;
			if (theForm)
				for(i=0; i<theForm.elements.length; i++){
					if(theForm.elements[i].type == "select-multiple"){ 
							nombre=theForm.elements[i].id;
							if (nombre.substr(nombre.length-7,7)!='|Origen')
									seleccionaSelectId(theForm.elements[i].id,true);
				      
					}
				  
				}

		 document.forms[nombreForm].submit();
   }
   else
    alert (res); 
}

function guardaFormSTD2(nombreForm)
{ 
   var res;
   
   res=checkForm(nombreForm);
   
   if (res=='')
   {
//     document.getElementById(idDiv).style.display = 'none';   
 		 document.forms[nombreForm].submit();
   }
   else
    alert (res); 
}

function checkForm(nombreForm)
{
	try {
	
		var i;
		var form;
		var elemento;
		var camposrequeridos;
		var vtmp;
		var sDesCampo;
		var loginId;
	    var loginInfo;
    var text;
		var split ;
		var k;
		var nMal;

	
		form=document.getElementById(nombreForm);
		
		camposrequeridos='';
	    if (!form)
	        camposrequeridos='Form NO Encontrado, verificar ID';
		
		
		
		if (form) {
	     
	    for (i=0 ; i<form.length ; i++) {
				if (form.elements[i].getAttribute('descripcion'))
					sDesCampo=form.elements[i].getAttribute('descripcion');
				else
					sDesCampo=form.elements[i].name;
			// tipo ININT (en textareas con multiples valores)
				if ( (form.elements[i].getAttribute('tipo')=="104") ) {
					text=form.elements[i].value.replace(/\s+$/g, "");
					split= text.split("\n");
					nMal=0;
					for (k=0;k<split.length;k++) {
						if (! isNumerico(split[k])) {
							nMal++;
							break;
						}
					} 
					if (nMal>0) 		{
						camposrequeridos=camposrequeridos + 'No ha introducido un <' + sDesCampo + '> valido' + unescape("%0A");
						form.elements[i].style.backgroundColor='#FCD869';
					}
					else {
						form.elements[i].style.backgroundColor='';
					}
				}
				
				
				
			// tipo numerico
				if ( (form.elements[i].getAttribute('tipo')=="3") || (form.elements[i].getAttribute('tipo')=="4") ) {
					
					if (! isNumerico(form.elements[i].value)) {
                        camposrequeridos=camposrequeridos + 'No ha introducido un <' + sDesCampo + '> valido' + unescape("%0A");
						form.elements[i].style.backgroundColor='#FCD869';
					} else {
						form.elements[i].style.backgroundColor='';
					}
				}
								 
			// tipo fecha
				if ( form.elements[i].getAttribute('tipo')=="2") {

					if (form.elements[i].value && !isDate(form.elements[i].value)) {
						camposrequeridos=camposrequeridos + 'No ha introducido un <' + sDesCampo + '> valido' + unescape("%0A");
						form.elements[i].style.backgroundColor='#FCD869';
					} else {
						form.elements[i].style.backgroundColor='';
					}
				}				
				
			// obligatorios
				
				if (form.elements[i].getAttribute('obligatorio')=='S' && form.elements[i].value=='' || (form.elements[i].type=='checkbox' && (form.elements[i].getAttribute('obligatorio')=='S' && !form.elements[i].checked))) {
					camposrequeridos=camposrequeridos + 'Se Requiere <' + sDesCampo + '>' + unescape("%0A");
					form.elements[i].style.backgroundColor='#F08080';
				} else {
					if (form.elements[i].style.backgroundColor=='#F08080') 
						form.elements[i].style.backgroundColor='';
				}
								
		// longitud
		        if (form.elements[i].getAttribute('maxlength'))
		        {
		             
		             if (form.elements[i].value.length>form.elements[i].getAttribute('maxlength'))
		             {
		                camposrequeridos=camposrequeridos + 'Ha superado la longitud máxima (' + form.elements[i].getAttribute('maxlength') +') de <' + sDesCampo + '>' + unescape("%0A");
		             }
		        }  
				
			}
		}
			
		return (camposrequeridos);
	}catch (e) {
		alert (e.description);
		return (-1);
	}
}


function checkFormA(nombreForm, aCampos)
{
	try {
	
		var i;
		var form;
		var elemento;
		var camposrequeridos;
		var vtmp;
	
		form=document.getElementById(nombreForm);
	
		camposrequeridos='';
		
		if (form) {
			
			for (i=0 ; i<form.length ; i++) {
			
				
			
			// tipo numerico
				if ( (form.elements[i].tipo=="3" || form.elements[i].tipo=="4") ) {
					if (! isNumerico(form.elements[i].value)) {
						camposrequeridos=camposrequeridos + 'No ha introducido un <' + form.elements[i].name + '> valido' + unescape("%0A");
						form.elements[i].style.backgroundColor='Orange';
					} else {
						form.elements[i].style.backgroundColor='';
					}
				}
								 
			// tipo fecha
				if ( form.elements[i].tipo=="2") {
				
					if ( ! isDate(form.elements[i].value)) {
						camposrequeridos=camposrequeridos + 'No ha introducido un <' + form.elements[i].name + '> valido' + unescape("%0A");
						form.elements[i].style.backgroundColor='Orange';
					} else {
						form.elements[i].style.backgroundColor='';
					}
				}				
			}
	
			for (i=0 ; i<aCampos.length ; i++) {
				
				if (form.item(aCampos[i])) {
				// obligatorios
					if (form.item(aCampos[i]).value=='') {
						camposrequeridos=camposrequeridos + 'Se Requiere <' + form.item(aCampos[i]).name + '>' + unescape("%0A");
						form.item(aCampos[i]).style.backgroundColor='LightCoral';
					} else {
						if (form.item(aCampos[i]).style.backgroundColor=='LightCoral') 
							form.item(aCampos[i]).style.backgroundColor='';
					}
				}
			}
		}
			
		return (camposrequeridos);
	}catch (e) {
		alert (e.description);
		return (-1);
	}
}


function moveBetweenSelects(from,to)
{
	var i;
	var max;
	i=0;
	max=from.length;

   for(cont=0; cont< max; cont++)
   {
		
      if(from.options[i].selected)
      {
		
         j=0;
         alreadyInList = false;
         while((j < to.length) && (to.options[j].value)) {
            if(to.options[j].value == from.options[i].value)
            {
               alreadyInList=true;
            }
            j++;
         }
         
		 
         if(!alreadyInList)
         {
			var text = from.options[i].text;
			var value = from.options[i].value;
			var option = new Option(text, value, false, false);
			option.selected = false;
			from.options[i] = null;
			to.options[to.options.length]=option;
         }
         else
			i++;
      }
      else
			i++;
   }
}

function moveSeleccionadosID(from,to)
{
    var objFrom;
    var objTo; 
    objFrom=document.getElementById(from);  
    objTo=document.getElementById(to);   
	moveBetweenSelects(objFrom,objTo);
}

function moveTodosID(from, to)
{
    var objFrom;
    var objTo; 
    objFrom=document.getElementById(from);  
    objTo=document.getElementById(to);   
	
	for(i=0; i < objFrom.length; i++)
		objFrom.options[i].selected=true;
	moveBetweenSelects(objFrom,objTo);
}

function moveSeleccionados(from,to)
{
	moveBetweenSelects(from,to);
}

function moveTodos(from, to)
{
	for(i=0; i < from.length; i++)
		from.options[i].selected=true;
	moveBetweenSelects(from,to);
}


function confirmaBorrar (tabla,filtro,pregunta)
{
// pregunta si realmente se desea borrar el registro...
	var res=confirm(pregunta);
	
	if (res) {
		AbrePopUp ('/comun/borraRegistro.asp?tabla=' + tabla + '&filtro=' + filtro,'borrar',400,300,0);
	}
}


function isCamposRequeridos(nomcamposrequeridos,descamposrequeridos,nomcamposnumericos,descamposnumericos)
{
// realiza comprobaciones tipicas de que se han rellenado algunos campos, etc...
// para mandar el form.
	camposrequeridos='';
	camposnumericos='';
	
// nombres reales de los campos que se requieren
	//nomcamposrequeridos=["DesCliente","DNI","idTipoCliente"];
	//nomcamposnumericos=["CodigoClienteSAP"];
	
// descripcion que saldra en el textbox
	//descamposrequeridos=["Razon Social","DNI","Tipo de Cliente"];
	//descamposnumericos=["CodigoClienteSAP"];
	
	
	
	
// campos numericos... se recorre los campos del form a ver si alguno tiene valores no numericos...
	
	for (i=0 ; i<nomcamposnumericos.length ; i++) {
		var tmp=document.all(nomcamposnumericos[i]);
		if (tmp) {
			if ( (! (tmp.value>=0)) && (! (tmp.value<0)) ) {
				camposnumericos=camposnumericos + 'No ha introducido un <' + descamposnumericos[i] + '> valido' + unescape("%0A");
			}
		}

	}
	
	
	
// se recorre todos los elementos del form y va construyendo la cadena con los que no encuentra..
	for (i=0 ; i<nomcamposrequeridos.length ; i++) {
		var tmp=document.all(nomcamposrequeridos[i]);
		if (tmp) {
			if (!tmp.value) {
				camposrequeridos=camposrequeridos + 'Se Requiere <' + descamposrequeridos[i] + '>' + unescape("%0A");
			}
		}

	}


	if (! camposrequeridos && !camposnumericos) {
		return true;
	}
	else {
		alert ('Errores encontrados:' + unescape("%0A") + unescape("%0A") + camposrequeridos + unescape("%0A") + unescape("%0A") + camposnumericos);
		return false;
	}
	

}

function fnsFechaCorta()
{
	
	//var a=new Date();

	//alert (a.getDate() + '-' + a.getDay() + '/' + a.getMonth() + '/' + a.getFullYear());
	//if (isNaN(a)) return false;
	
	//return (a.getDay() + '/' + a.getMonth() + '/' + a.getFullYear()) ;		
	
   var d, s;
   d = new Date();
   s= d.getDate() + "/";
   s += (d.getMonth() + 1)  + "/";
   s += d.getYear();
   
   return(s);
	
}

function num2Float(num)
{
	var vtmp=new String(num);
	vtmp=vtmp.replace(",",".");
	if (! vtmp) vtmp=0
		vtmp=parseFloat(vtmp);

	return vtmp;
}

function getDateJSIngles(strDate) {
	// lo convertimos a fecha....
		var a=new Date(strDate);
		
		if (isNaN(a)) return false;
			
	  // strdate must be in format mm/dd/yy or mm/dd/yyyy or m/d/yy
		strDate=new String(strDate);
		
	// por si tiene HORA, se la quita para validar
		var tmpS=strDate.split(" ");
		
		strDate=new String(tmpS[0]);
		
//  remove leading zeros for comparison to original date string
	  var dateParts = strDate.split("/");
	  if (dateParts.length<3) return false;
	  if (isNaN(dateParts[0]) || isNaN(dateParts[1]) || isNaN(dateParts[2])) return false;
	  
	  
	  var compDate = eval(dateParts[0]) + "/" + eval(dateParts[1]) + "/" + eval(dateParts[2]);
	                 
	  // validate string date
	  var d = new Date(eval(dateParts[2]),eval(dateParts[1])-1,dateParts[0]);

	  var monthDay = (d.getDate()) + "/" +eval(d.getMonth()+1) + "/";

		
		
	  // Build valid date with 2 digit and 4 digit year
	  var valDate2 = monthDay + d.getYear();
	  var valDate4 = monthDay + d.getFullYear();
		 
	  d.setYear(d.getFullYear());
	  
	  // if orig strDate  equals strdate run through date then valid date
	  return d;
	  
}

function DaysDelta(_v1,_v2) {
// devuelve los dias de diferencia entre las dos fechas (si es negativo.... la segunda sera mayor)
  var _delta = 0;
  var _a1 = _v1;
  var _a2 = _v2;
  /*
  if (_v1.getTime() < _v2.getTime()) {
    _a1 = _v2;
	_a2 = _v1;
  }
  */
  _delta = _a1.getTime() - _a2.getTime();// in msecs
  _delta /= (1000 * 60 * 60 * 24);// days
  return _delta;
}



function fnsGetTxtMes (mes)
{
	try {
		aMeses='';
		aMeses=[];
		aMeses=['','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
	
		return (aMeses[mes]);		
	}
	catch (e) {
		return ('');
	}	
}
function fechaInglesa(sfecha)
// devuelve un date con la fecha en formato ingles....
{
	dia=datePart(sfecha,0);
	mes=datePart(sfecha,1);
	anio=datePart(sfecha,2);
	var d=new Date(mes + '/' + dia + '/' + anio);
	return (d);

}
function datePart(sFecha,queParte)
//devuelve la parte indicada de la fecha dada....)
// 0: dia
// 1: mes
// 2: año
{
	try {
		strD1=new String(sFecha);
		
		var dateParts1 = strD1.split("/");
		
		return (dateParts1[queParte]);
	}
	catch (e) {
		return (-2);
	}	
}
function dateDiff (d1, d2)
// devuelve la diferencia en dias entre dos fechas....
{
	try {
		strD1=new String(d1);
		strD2=new String(d2);
		var dateParts1 = strD1.split("/");
		var dateParts2 = strD2.split("/");
	
		var fecha1 = new Date(dateParts1[1] + "/" + dateParts1[0] + "/" + dateParts1[2]);
		var fecha2 = new Date(dateParts2[1] + "/" + dateParts2[0] + "/" + dateParts2[2]);
		
		return ((fecha2-fecha1)/ (1000 * 60 * 60 * 24));
	}
	catch (e) {
		return (-2);
	}	

}



function getFechaCampo(strDate)
{
	if (strDate=='') return '';
	
	var a=new Date(strDate);
		
		
//		if (isNaN(a)) return '';
			
	  // strdate must be in format mm/dd/yy or mm/dd/yyyy or m/d/yy  OR YYYY-MM-DD HH:MM
		strDate=new String(strDate);
		
	// por si tiene HORA, se la quita para validar
		var tmpS=strDate.split(" ");
		
		strDate=new String(tmpS[0]);
		
//  remove leading zeros for comparison to original date string
		if (strDate.search("-")>=0) {
		// YYYY-MM-DD HH:SS formato
			var dateParts = strDate.split("-");
			
			if (dateParts.length<3) return '';
			if (isNaN(dateParts[0]) || isNaN(dateParts[1]) || isNaN(dateParts[2])) return '';
			
			var compDate = eval(dateParts[0]) + "/" + eval(dateParts[1]) + "/" + eval(dateParts[2]);
			
			var d = new Date(eval(dateParts[0]),eval(dateParts[1])-1,dateParts[2]);
			if (d.getFullYear()>2100 || d.getFullYear()<1950) return '';
			
			if (		( 
								(d.getYear() == dateParts[0]) || (d.getFullYear()== dateParts[0])
							)  && 
							(
								eval(d.getMonth()) == eval(dateParts[1])-1) 
							)  return d;
			else return '';
			
			
		}
		else 
		{
					if (strDate.length==8) {
					
						var dateParts=new Array();
						dateParts[0]=strDate.substr(0,4);
						dateParts[1]=strDate.substr(4,2);
						dateParts[2]=strDate.substr(6,2);
						var compDate = eval(dateParts[0]) + "/" + eval(dateParts[1]) + "/" + eval(dateParts[2]);
			
						var d = new Date(eval(dateParts[0]),eval(dateParts[1])-1,dateParts[2]);
						if (d.getFullYear()>2100 || d.getFullYear()<1950) return '';
						
						if (		( 
											(d.getYear() == dateParts[0]) || (d.getFullYear()== dateParts[0])
										)  && 
										(
											eval(d.getMonth()) == eval(dateParts[1])-1) 
										)  return d;
						else return '';
						
					}
					else {
						var dateParts = strDate.split("/");
						if (dateParts.length<3) return '';
						if (isNaN(dateParts[0]) || isNaN(dateParts[1]) || isNaN(dateParts[2])) return '';
					  
					  
						var compDate = eval(dateParts[0]) + "/" + eval(dateParts[1]) + "/" + eval(dateParts[2]);
					                 
						// validate string date
						var d = new Date(eval(dateParts[2]),eval(dateParts[1])-1,dateParts[0]);

						var monthDay = (d.getDate()) + "/" +eval(d.getMonth()+1) + "/";

						
						if (d.getFullYear()>2100 || d.getFullYear()<1950) return '';
					  
						// Build valid date with 2 digit and 4 digit year
						var valDate2 = monthDay + d.getYear();
						var valDate4 = monthDay + d.getFullYear();
						 
						
						// if orig strDate  equals strdate run through date then valid date
						if (compDate == valDate2 || compDate == valDate4 ) return d;
						else return '';
					}
		}
		
}


function isDate(fEntrada) {
	strDate=getFechaCampo(fEntrada);

	if (strDate!='') return true;
	else return false;
	
}

function seleccionaSelectId(idObjSelect,trueFalse)
{
    var i;
    if (idObjSelect) {
        var objSelect = document.getElementById(idObjSelect);

        if (objSelect)
            for (i = 0; i < objSelect.length; i++)
            objSelect.options[i].selected = trueFalse;
    }
}

function seleccionaSelect(objSelect,trueFalse)
{
    var i;
	for (i=0 ; i<objSelect.length;i++)
	    objSelect.item(i).selected = trueFalse;
}

function fnsQuitaComas(sCad)
{
    // Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return sCad.replace(/,,/g, ",");
    //return sCad.replace(/(^\s*)|(\s*$)/g, ",");
}

function bloqueaSelect (objSeleccion, soloValor)
{
	if (! (objSeleccion.value==soloValor)) { 
		alert('Valor NO Valido'); 
		objSeleccion.value=soloValor;
	}
}


function deselectTodosChk(sForm, chkRec)
{
	try {
	
	var i, len, obj;
	
	len = document.forms[sForm].elements.length;
	
	for (i=0; i < len; i++)
	{
		obj = document.forms[sForm].elements[i];			
		if ( obj.name == chkRec && obj.type == "checkbox" ) obj.checked = false;
	}
    
	}
	catch (e) {
		alert (e.description);
	}
}


 
function cambiaTodosChk(sForm, chkSend, chkRec)
{
	try {
	
	var i, len, obj;
	
	len = document.forms[sForm].elements.length;
	
//	alert (sForm + ":" + chkSend + ":" + chkRec)
	
	if (document.getElementById(chkSend).checked == true) 
		for (i=0; i < len; i++)
		{
			obj = document.forms[sForm].elements[i];			
			if ( obj.name == chkRec && obj.type == "checkbox" ) obj.checked = true;
		}
    else
		for (i=0; i < len; i++)
		{
            obj = document.forms[sForm].elements[i];			
		    if ( obj.name == chkRec && obj.type == "checkbox" ) obj.checked = false;
		}
	
	}
	catch (e) {
		alert (e.description);
	}
}



function inputOn(inputID, infoID)
{
	try {

    var input = document.getElementById(inputID);
    var info = document.getElementById(infoID);
    if (info!=null) info.style.display = 'none'; 
    if (input!=null) 
    {
        input.style.display = 'inline';
        input.focus(); 
    }
    
 	
	}
	catch (e) {
		alert (e.description);
	}
}



function inputOff(inputID, infoID)
{
	try {

    var input = document.getElementById(inputID);
    var info = document.getElementById(infoID);
    if (input!=null)
    {
        if (input.value.length == 0) 
        { 
            input.style.display = 'none'; 
            if (info!=null) info.style.display = 'inline'; 
         }
    }
 	
	}
	catch (e) {
		alert (e.description);
	}
}

function duplicaFecha(c1,c2)
{

	var campof1=document.getElementById(c1);

	var campof2=document.getElementById(c2);


	if (campof1 && campof2) {
		var mes1=document.getElementById(c1 + '_mes');
		var anio1=document.getElementById(c1 + '_anio');
		var dia1=document.getElementById(c1 + '_dia');
		
		//var hora1=document.getElementById(c1 + '_hora');
		//var min1=document.getElementById(c1 + '_min');
		var diasem1=document.getElementById(c1 + '_infodia');
		
		
		
		var mes2=document.getElementById(c2 + '_mes');
		var anio2=document.getElementById(c2 + '_anio');
		var dia2=document.getElementById(c2 + '_dia');
		
		//var hora2=document.getElementById(c2 + '_hora');
		//var min2=document.getElementById(c2 + '_min');
		var diasem2=document.getElementById(c2 + '_infodia');
		
		if (mes1 && anio1 && dia1 && mes2 && anio2 && dia2) {
		
			mes2.value=mes1.value;
			dia2.value=dia1.value;
			anio2.value=anio1.value;
			/*if (hora1 && hora2) {
				hora2.value=hora1.value;
				min2.value=min1.value;
			}*/
			diasem2.innerHTML=diasem1.innerHTML;
			
			campof2.value=campof1.value;
			
		}
		else alert('no se duplica fecha' + mes1);
	}

}
function priv_writefecha(cf)
{


	var mes=document.getElementById(cf + '_mes');
	var anio=document.getElementById(cf + '_anio');
	var dia=document.getElementById(cf + '_dia');
	
	var hora=document.getElementById(cf + '_hora');
	var min=document.getElementById(cf + '_min');
	var diasem=document.getElementById(cf + '_infodia');
	
	var campof=document.getElementById(cf);
	
	var valHora;
	
	var d=new Date(anio.value,mes.value-1,dia.value);
	
	
	if (hora && min)
		valHora=' ' + hora.value + ':' + min.value;
	else
		valHora='';
	 
	
	var sMes=new String(mes.selectedIndex+1);
	var sDia=new String(dia.value);
	
	sMes='0' + sMes;
	sMes=sMes.substring(sMes.length-2);
	
	sDia='0' + sDia;
	sDia=sDia.substring(sDia.length-2);
	
	
	//campof.value=anio.value + '-' + (mes.selectedIndex +1) + '-' + dia.value + valHora;
	campof.value=anio.value + sMes + sDia + valHora;
	
	
	if (anio.value && mes.value && dia.value)
		diasem.innerHTML=weekday[d.getDay()];

	
	if (campof.onchange)
		setTimeout(campof.onchange,0);
		
}

function getPageCoords(elementId) {
	var coords = { x: 0, y: 0 }
	var element;
	if (document.all)
		element = document.all[elementId];
	else if (document.getElementById)
		element = document.getElementById(elementId);
	while (element) {
		coords.x += element.offsetLeft;
		coords.y += element.offsetTop;
		element = element.offsetParent;
	}
	return coords;
}

function getPageCoordsForm(sForm, elementId) {
	var coords = { x: 0, y: 0 }
	var element;

	element = document.forms[sForm].item(elementId);
	while (element) {
		coords.x += element.offsetLeft;
		coords.y += element.offsetTop;
		element = element.offsetParent;
	}
	return coords;
}
