
//---------------------------------------------------------------
function JSdesasentuar(sString){
	var strOut,i,curChar
	strOut = ""
	for (i=0;i < (sString+"").length; i++)	{
		curChar = (sString+"").charAt(i);
		switch (curChar){
		case 'á':
			curChar='a';
			break;
		case 'é':
			curChar='e';
			break;
		case 'í':
			curChar='i';
			break;
		case 'ó':
			curChar='o';
			break;
		case 'ú':
			curChar='u';
			break;
		case 'Á':
			curChar='A';
			break;
		case 'É':
			curChar='E';
			break;
		case 'Í':
			curChar='I';
			break;
		case 'Ó':
			curChar='O';
			break;
		case 'Ú':
			curChar='U';
			break;
		case 'à':
			curChar='a';
			break;
		case 'è':
			curChar='e';
			break;
		case 'ì':
			curChar='i';
			break;
		case 'ò':
			curChar='o';
			break;
		case 'ù':
			curChar='u';
			break;
		case 'À':
			curChar='A';
			break;
		case 'È':
			curChar='E';
			break;
		case 'Ì':
			curChar='I';
			break;
		case 'Ò':
			curChar='O';
			break;
		case 'Ù':
			curChar='U';
			break;
		case "'":
			curChar='"';
			break;
		}
		strOut += curChar
	}
	return strOut
}
// ---------------------------------------------------
function TrimLeft(sValor){
    if(sValor == null)
	   return "";
    if(sValor.length == 0)
	   return sValor;
    var nValor="";
	var j=0;
	for (i=0 ; i < sValor.length; i++){
	    if(sValor.charAt(i) == " ")
		   j++;
		else
		   break;
	}
	nValor=sValor.substring(j, sValor.length);
    return nValor;
}

function TrimRight(sValor){
    if(sValor == null)
	   return "";
    if(sValor.length == 0)
	   return sValor;
    var nValor="";
	var j=0;
	j=sValor.length;
	for (i=sValor.length-1; i >= 0; i=i-1){
	    if(sValor.charAt(i) == " ")
		   j=j-1;
		else
		   break;
	}
	nValor=sValor.substring(0,j);
    return nValor;
}

function TrimAll(sValor){
	sValor=TrimLeft(""+sValor);
	sValor=TrimRight(""+sValor);
	return sValor;
}

function completarIzq(valor,caracter,longitud){
	valor=String(valor);
	lonStr=longitud-valor.length;
	for (i=1 ; i <= lonStr ; i++){
		valor=caracter+valor;
	}
	return valor;
}

function completarDer(valor,caracter,longitud){
	valor=String(valor);
	lonStr=longitud-valor.length;
	for (i=1 ; i <= lonStr ; i++){
		valor=valor+caracter;
	}
	return valor;
}

// -----------------------------------------------------
// formatea a nDecimales
function formatNumDec(sValor, nDec){
    if(sValor == null)
	   return " ";
    if(TrimAll(sValor).length == 0)
	   return " ";
	var sEntero="";
	var sDecimales="";
    var nNumerRedondeado=pF(sValor);
    if(nNumerRedondeado < 0){
	    nNumerRedondeado=nNumerRedondeado-(5/Math.pow(10,(nDec+1)));
	}else{
	    nNumerRedondeado=nNumerRedondeado+(5/Math.pow(10,(nDec+1)));
	}
	sNumerRedondeado=""+nNumerRedondeado;
	// busca el .
	var j=sNumerRedondeado.indexOf(".",0)

	sDecimales=sNumerRedondeado.substring(j+1, sNumerRedondeado.length)
    sEntero=sNumerRedondeado.substring(0,j)

    if(sEntero.length == 0)
	   sEntero="0";
    if(sEntero == "-")
	   sEntero="0";

	// Formatea Decimales a nDec
	if(nDec > 0){
		if(sDecimales.length < nDec)
		 sDecimales="."+sDecimales+"0000000000".substring(0, nDec-sDecimales.length);
		else
		 sDecimales="."+sDecimales.substring(0, nDec);
	}else{
		sDecimales=""
	}
	return sEntero+sDecimales
}

// -----------------------------------------------------
// debido a que el parsefloat no anda con cadenas vacias
function pF(sValor){
    if(sValor == null)
	   return 0;
    if((""+sValor).length == 0)
	   return 0;
	if(isNaN(parseFloat(sValor))){
		return 0;
	}else{
		return parseFloat(sValor);
	}
}

function Reemplazar(sCadena,Cual,PorCual){
	var retVal="";
	var i=0;
	if (("" + sCadena).length == 0){
		return retVal;
	}
	for (i=0; i < sCadena.length; i++){
		if ( sCadena.charAt(i) == Cual ){
			retVal=retVal + PorCual;
		} else {
			retVal=retVal + sCadena.charAt(i);
		}
	}
	return retVal;
}
//---------------------------


function ImprBrowser(){
	window.focus();
	WebBrowser1.ExecWB(6, 2);
}

function Imprimir(){
	if (navigator.appName == "Netscape") {
	    window.print();
	} else {
		if (!bPrint) {
			var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
			document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
			bPrint = true;
		}
		setTimeout("ImprBrowser()",1000);
		window.focus();
	}
}
//---------------------------
// funciones a nivel de objetos de forms
//---------------------------
function Mayuscula(objeto) {
	objeto.value=TrimAll(objeto.value.toUpperCase());
	objeto.value=Reemplazar(objeto.value,'Ñ','N');
	objeto.value=Reemplazar(objeto.value,'Á','A');
	objeto.value=Reemplazar(objeto.value,'É','E');
	objeto.value=Reemplazar(objeto.value,'Í','I');
	objeto.value=Reemplazar(objeto.value,'Ó','O');
	objeto.value=Reemplazar(objeto.value,'Ú','U');
	objeto.value=Reemplazar(objeto.value,'À','A');
	objeto.value=Reemplazar(objeto.value,'È','E');
	objeto.value=Reemplazar(objeto.value,'Ì','I');
	objeto.value=Reemplazar(objeto.value,'Ò','O');
	objeto.value=Reemplazar(objeto.value,'Ù','U');
	objeto.value=Reemplazar(objeto.value,'Ä','A');
	objeto.value=Reemplazar(objeto.value,'Ë','E');
	objeto.value=Reemplazar(objeto.value,'Ï','I');
	objeto.value=Reemplazar(objeto.value,'Ö','O');
	objeto.value=Reemplazar(objeto.value,'Ü','U');
}
function BlurNumero(objField){
	objField.value=completarIzq(formatNumDec(objField.value,2)," ",8);
}

//-------------------------------------------------
// ---------------------------
function setSelect(objSelect,defaultValue) {
	//setea el indice del select con el codigo correspondiente
	if (defaultValue.length==0) {
		objSelect.selectedIndex=-1;
		return;
	   }
	if (!objSelect) return;
	var elem=0;
	var i=0;
	elem=objSelect.length;
	objSelect.selectedIndex=0;
    for (i=0; i <elem; i++) {
	   if (objSelect.options[i].value==defaultValue){
		objSelect.selectedIndex=i;
		objSelect.options[i].selected=true;
	   }
	}
}
//---------------------------
function getSelect(objSelect,defaultValue) {
	//devuelve la descripcion del select, con el codigo correspondiente
	var retorno="";
	var elem=0;
	var i=0;
	elem=objSelect.length;
	objSelect.selectedIndex=0;
    for (i=0; i <elem; i++) {
	   if (objSelect.options[i].value==defaultValue){
		retorno=objSelect.options[i].text;
	   }
	}
	return retorno;
}
//---------------------------

//-------------------------------
function valFECHA(objeto) {
// -------------------------------------------------------------
// Verifica si sValor es una Fecha (ddmmaaaa o dd/mm/aaaa)
// -------------------------------------------------------------
	objeto.value=TrimAll(objeto.value);
	if (objeto.value==""){
		return;
	}

	var sDia = "";
	var sMes = "";
	var sAnio = "";
	var bBisiesto = false;
	var FechaValida = false;
	AnioValido = false;
	// Elimina los / si los tiene
	var sValor = unformatDate(objeto.value);

	sDia = sValor.substring(0,2)
	sMes = sValor.substring(2,4)
	sAnio = sValor.substring(4, 8)


	if (parseFloat(sAnio) >= 1900 && parseFloat(sAnio) <= 2030){
		AnioValido = true;
	}

    if ((parseFloat(sAnio.substring(2,4)) != 0 || (parseFloat(sAnio.substring(1,4)) == 0)) && (parseFloat(sAnio.substring(2,4)) % 4) == 0)
	   bBisiesto = true;

	if (sMes == "01" || sMes == "03" || sMes == "05" || sMes == "07" || sMes == "08" || sMes == "10" || sMes == "12")
    {
       if ((parseFloat(sDia) > 0) && (parseFloat(sDia) <= 31))
          FechaValida = true;
	}else{
	   if (sMes == "02"){
          if (parseFloat(sDia) > 0){
		     if (bBisiesto && (parseFloat(sDia) <= 29))
                FechaValida = true;
			 else
		        if (parseFloat(sDia) <= 28)
                   FechaValida = true;
		  }
	   }else{
          if (sMes == "04" || sMes == "06" || sMes == "09" || sMes == "11"){
              if ((parseFloat(sDia) > 0) && (parseFloat(sDia) <= 30))
                 FechaValida = true;
		  }

	   }
	}

	if (FechaValida && AnioValido){
		objeto.value = formatDate(sValor);
	} else {
		objeto.value = ""
		alert("FECHA INVALIDA");
		objeto.focus();
	}
    return;
}
//---------------------------
function formatDate(sValor) {
// -------------------------------------------------------------
// Formatea una Fecha ddmmaaaa a dd/mm/aaaa
// -------------------------------------------------------------
    if (sValor == null)
	   return "";
    if (TrimAll(sValor)=="")
	   return "";
    var sDia = sValor.substring(0,2);
    var sMes = sValor.substring(2,4);
    var sAnio = sValor.substring(4, 8);

	return sDia+"/"+sMes+"/"+sAnio;
}
//---------------------------
function unformatDate(sValor) {
// -------------------------------------------------------------
// desFormatea una Fecha con / (dd/mm/aaaa) a ddmmaaaa
// -------------------------------------------------------------
	if (sValor == null)
		return "";
        var nValor = TrimAll(sValor);
	if (nValor == "")
		return "";

	var j = -1;
	var k = -1;
	// separador de dias
	j = nValor.indexOf("/",0);
	if (j == -1)
	   return nValor;

	// separador de mes
	k = nValor.indexOf("/",j+1);
	if (k == -1)
	   return nValor;
	// separa el dia
	var sDia = nValor.substring(0, j);
	if (sDia.length < 2)
	   sDia = "00".substring(0, 2-sDia.length) + sDia;
	// separa el mes
	var sMes = nValor.substring(j+1, k);
	if (sMes.length < 2)
	   sMes = "00".substring(0, 2-sMes.length) + sMes;
	// separa el anio
	var sAnio = nValor.substring(k+1, nValor.length);
	if (parseFloat(sAnio) < 10){
		sAnio= "" + (parseFloat(sAnio)+2000);
	}
	if (parseFloat(sAnio) <= 99){
		sAnio= "" + (parseFloat(sAnio)+1900);
	}
	return sDia+sMes+sAnio;
}
//---------------------------
function formatHora(sValor) {
// -------------------------------------------------------------
// Formatea una Hora hhmmss a hh:mm:ss
// -------------------------------------------------------------
    if (sValor == null)
	   return "";
    if (TrimAll(sValor)=="")
	   return "";
    var sDia = sValor.substring(0,2);
    var sMes = sValor.substring(2,4);
    var sAnio = sValor.substring(4, 6);

	return sDia+":"+sMes+":"+sAnio;
}
//---------------------------
function unformatHora(sValor) {
// -------------------------------------------------------------
// desFormatea una hora con : a hhmmss
// -------------------------------------------------------------
	if (sValor == null)
		return "";
        var nValor = TrimAll(sValor);
	if (nValor == "")
		return "";

	var j = -1;
	var k = -1;
	// separador de horas
	j = nValor.indexOf(":",0);
	if (j == -1)
	   return nValor;

	// separador de min
	k = nValor.indexOf(":",j+1);
	if (k == -1)
	   return nValor;
	// separa la hh
	var sDia = nValor.substring(0, j);
	if (sDia.length < 2)
	   sDia = "00".substring(0, 2-sDia.length) + sDia;
	// separa el mes
	var sMes = nValor.substring(j+1, k);
	if (sMes.length < 2)
	   sMes = "00".substring(0, 2-sMes.length) + sMes;
	// separa el anio
	var sAnio = nValor.substring(k+1, nValor.length);
	return sDia+sMes+sAnio;
}
//-------------------------------
function valHORA(objeto) {
// -------------------------------------------------------------
// Verifica si sValor es una hora
// -------------------------------------------------------------
	objeto.value=TrimAll(objeto.value);
	if (objeto.value==""){
		return;
	}

	var sDia = "";
	var sMes = "";
	var sAnio = "";
	var bBisiesto = false;
	var FechaValida = true;
	AnioValido = false;
	// Elimina los : si los tiene
	var sValor = unformatHora(objeto.value);

	sDia = sValor.substring(0,2)
	sMes = sValor.substring(2,4)
	sAnio = sValor.substring(4, 6)


	if (parseFloat(sDia) > 23 || parseFloat(sDia) < 0){
		FechaValida = false;
	}
	if (parseFloat(sMes) > 59 || parseFloat(sMes) < 0){
		FechaValida = false;
	}
	if (parseFloat(sAnio) > 59 || parseFloat(sAnio) < 0){
		FechaValida = false;
	}

	if (FechaValida ){
		objeto.value = formatHora(sValor);
	} else {
		objeto.value = ""
		alert("HORA INVALIDA");
		objeto.focus();
	}
    return;
}
//---------------------------

