//if(window.history.forward(1) != null)
//	window.history.forward(1);

	function EnviaInformacion(){
		if (window.event.keyCode == 13) {
			frm.submit();
		}
	}

function printdatecal()
{
	var time=new Date();
	var lmonth=time.getMonth() + 1;
	var date=time.getDate();
	var year=time.getYear();
	if (year < 2000)
	year = year + 1900;
	alert(date+"/"+lmonth + "/" + year);
	document.write(date+"/"+lmonth + "/" + year);
}
//Desactiva BackSpace
function checkKey() {
	var BACKSPACE = 8;
	if(window.event.keyCode == BACKSPACE) {
		window.event.keyCode = 0;
	}

}
function check_Key() {
   var BACKSPACE = 8;
   for(i=0; i<document.forms[0].elements.length; i++) {
       var elm = document.forms[0].elements[i];
       if(elm.type != "text" && elm.type != "textarea") {
          if(window.event.keyCode == BACKSPACE){
			  window.event.keyCode = 0;
          }
       }
   }            
}

function ImprimeFecha()
{
	var months=new Array(13);
	months[1]="Enero";
	months[2]="Febrero";
	months[3]="Marzo";
	months[4]="Abril";
	months[5]="Mayo";
	months[6]="Junio";
	months[7]="Julio";
	months[8]="Agosto";
	months[9]="Septiembre";
	months[10]="Octubre";
	months[11]="Noviembre";
	months[12]="Diciembre";
	var time=new Date();
	var lmonth=months[time.getMonth() + 1];
	var date=time.getDate();
	var year=time.getYear();
	if (year < 2000)
	year = year + 1900;	
	document.write("Ecuador, " + lmonth + " " + date + " del " + year + "&nbsp;");
}

function select(field) {
  field.select();
  field.focus();
}

function relocation(path)
{
location.href=path;
}

function winConsulta(page) 
{
window.open(page, 'winConsulta', 'width=530,status=0,scrollbars=0,height=500,top=70');
}

function windowscontacto(page,ptl) 
{	
	var ancho='600';

	if (page=='solotrn_Solicitud.asp') {
		ancho = '630';
	}

	if (ptl==4 || ptl==7){
		window.open(page+'?ptl='+ptl, 'winContactenos', 'width='+ancho+',scrollbars=1,height=690,top=10,left=250');	}
	else{
		window.open(page+'?ptl='+ptl, 'winContactenos', 'width='+ancho+',scrollbars=1,status=0,height=630,top=40,left=250');	}
}
function windowscotizacion(page) 
{
//window.open(page, 'winContactenos', 'width=540,scrollbars=0,height=620,top=40');
window.open(page, 'winCotizacion', 'width=520,scrollbars=0,status=0,height=680,top=15,left=250');
}
function windows(page) 
{
window.open(page, 'Winname', 'width=580,scrollbars=1,height=500,top=10');
//window.open(page, 'Winname', 'width=960,scrollbars=1,height=500,top=10,left=30');
}

function windows2(page) 
{
window.open(page, 'Winname', 'width=800,scrollbars=1,height=600,resizable,top=10,left=150');
}
function windowsprint(page) 
{
window.open(page, 'Winname', 'width=720,scrollbars=1,height=600,resizable,top=10');
}

function AbrirVentana(msg,fecha,nombre)
{
var pagina;
  pagina='trn_observacion.asp?msg='+msg+'&fecha='+fecha +'&nombre='+nombre;
  window.open(pagina,'titulo','width=200,height=100,top=350,left=500'); 
}

function AbrirDialogo(p1)
{
 var pagina='trn_busquedaAlumno.asp?Alumno='+p1;
//alert(pagina)
 showModalDialog(pagina,window,'status:false;dialogwidth:32em;dialogheight:15em');
}

function TraerMatricula(valor1,valor2)
{
 document.frmIngreso.ATxtMatricula.value=valor1;
 document.frmIngreso.ATxtCodigo.value=valor2;
}

 function submitirform(form)
 {
// alert(form.name);// return;
  form.opc.value="C";
  form.action="trn_Transaccion.asp";
  form.submit();
 }

 function submitirformsql(form)
 {
// alert(form.name);// return;
  form.opc.value="C";
  form.action="trn_Transaccion.asp";
  form.submit();
 }

 function submitir()
 {
  document.frmIngreso.opc.value="C";
  document.frmIngreso.action="trn_Transaccion.asp";
  document.frmIngreso.submit();
 }

 function submitpage(page,param)
 {
  document.frmIngreso.opc.value=param;
  document.frmIngreso.action=page;
  document.frmIngreso.submit();
 }
 
function Submit_Form(forma)
{   
    if (valida_campos(forma)) {
//	alert(forma.name);	forma.action = document.all.txtform.value + '.asp';	alert(forma.action);
	forma.submit();	
	}
}

function valida_campos(form){
  var valido;
  var no_campo;
  var tp_camp;
  
  valido=true;
//	  alert(form.name);
  for (var e = 0; e < form.elements.length; e++) { // se recorre todos los campos que existan en el formulario
	  tipo_campo = form.elements[e].name;		   // obtiene el nombre del control.
	  tp_camp = tipo_campo.substring(0,1);         // obtiene el primer caracter del nombre del control.
	  //tp_camp=tp_camp.toUpperCase();
	  //alert(tipo_campo + tp_camp + form.elements[e].disabled);
	  if (form.elements[e].disabled==false) { // valida solo los controles que no estan desabilitados
	  switch (tp_camp) {
				 // validacion alfabetica o alfanumerica
				 case 'A' : if (form.elements[e].value.length==0) {
							  valido=false;
						   }  break;
				 // validacion alfanumerica
				 case 'X' : if (form.elements[e].value.length==0) {
							  valido=false;
						   }  break;						   
				 // validacion numerica
				 case 'N' : if (form.elements[e].value.length==0 || isNaN(form.elements[e].value) || parseFloat(form.elements[e].value) < 0) {
							  valido=false;
						   }  break;
				 // validacion numerica para montos
				 case 'M':  if (form.elements[e].value.length==0 || parseFloat(form.elements[e].value) < 0) {					   						   
							  valido=false;
						   }  break;
	   } // End switch
	   } //end if
	   if (valido==false) {
		  alert("Este Campo es requerido, favor ingrese un valor.");
		  form.elements[e].select();
		  form.elements[e].focus();
		  break;  // break del for
	   }
   }// End for

   return valido;
}// End Function

function tabOnEnter(field, evt)
{

    var keyCode = document.layers ? evt.which : document.all ? evt.keyCode : evt.keyCode;
    var nextfield;
    if (keyCode != 13)
        return true;
    else {
        nextfield = getNextElement(field);
		while (nextfield.disabled == true || nextfield.type == 'hidden') {
			field = nextfield;
        	nextfield = getNextElement(field);
		}
		nextfield.focus();
        return false;
    }
}

function tabOnEnter2(field, evt)
{

    var keyCode = document.layers ? evt.which : document.all ? evt.keyCode : evt.keyCode;
    var nextfield;
    if (keyCode != 13)
        return true;
    else {
        document.form1.submit(); 
        return false;
    }
}


// --------------------------------------------------------------------------------------------------------
//  OBTIENE EL SIGUIENTE ELEMENTO EN UN FORMULARIO
// --------------------------------------------------------------------------------------------------------
function getNextElement(field)
{
    var form = field.form;
    for (var e = 0; e < form.elements.length; e++)
        if (field == form.elements[e])
            break;
        return form.elements[++e % form.elements.length];
}


//Funciones añadidos el 30 de Septiembre por Anl. Rosa Moreira
function LCase(Value) {
  return Value.toString().toLowerCase();
}

function UCase(Value) {
  return Value.toString().toUpperCase();
}

function Len(Expression) {
  return Expression.toString().length;
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function Mid(Str, Start, Length) {
  if (Length < 1) {
    alert("Invalid Length argument\n\nMid function (js2vb.js)"); return "";
  }
  if (Start < 0) {
    alert("Invalid Start argument\n\nMid function (js2vb.js)"); return "";
  }
  return Str.substring(Start, Start + Length);
}
function InStr(cadena1, caracter){
var posicion;
   posicion= -1;
   for (var e = 0; e < cadena1.length; e++){
       if (cadena1.charAt(e) == caracter) {
		  posicion=e;		  
		}
   }
   return (posicion);		
}
/*function InStr(Start, String1, String2, Compare) {
  if (Start < 1) {
    alert("Invalid Start argument\n\nInStr function (js2vb.js)"); return "";
  }
  if (Start > Len(String1)) return 0;
  if (Len(String2) == 0) return Start;
  if (Compare == 1) {String1 = LCase(String1); String2 = LCase(String2);}
  if (Start > 1) {
    var index = Right(String1, Len(String1) - Start + 1).indexOf(String2)
    if (index == -1) {return 0;} else {return index + Start;}
  } else {
    return String1.indexOf(String2) + 1
  }
}*/

function InStrRev(StringCheck, StringMatch, Start, Compare) {
  if (Start == 0 || Start < -1) {
    alert("Invalid Start argument\n\nInStrRev function (js2vb.js)");
	return "";
  }
  if (Len(StringMatch) == 0) return Start;
  if (Compare == 1) {
    StringCheck = LCase(StringCheck); StringMatch = LCase(StringMatch);
  }
  if (Start > 1) {
    return Left(StringCheck, Start).lastIndexOf(StringMatch) + 1;
    } else {
    return StringCheck.lastIndexOf(StringMatch) + 1;
  }
}


//Trim
function Trim(s) 
{
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }
  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function IsNull(Expression) {
  return (Expression == null);
}

function IsEmpty(Expression) {
  return (Expression.toString().length == 0);
}

function IsObject(Expression) {
  return (typeof Expression == "object");
}

function IsArray(VarName) {
  return (VarName.constructor.toString().indexOf("Array") == -1);
}

function IsDate(Expression) {
  var test = new Date(Date.parse(Expression));
  return !(isNaN(test.getYear()));
}

function MonthName(Month, Abbreviate) {
  var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
  if (Month < 1 || Month > 13) {
    alert("Invalid Month argument\n\nMonthName function (js2vb.js)");
	return "";
  }
  var retval = months[Month - 1];
  if (Abbreviate) retval = Left(retval, 3);
  return retval;
}

function WeekdayName(Weekday, Abbreviate, FirstDayOfWeekValue) {
  var weekdays = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
  if (Weekday < 1 || Weekday > 7) {
    alert("Invalid Weekday argument\n\nWeekdayName function (js2vb.js)");
    return "";
  }
  if (FirstDayOfWeekValue < 0 || FirstDayOfWeekValue > 7) {
    alert("Invalid FirstDayOfWeekValue argument\n\n\
	WeekdayName function (js2vb.js)");
	return "";
  }
  var addval = (FirstDayOfWeekValue > 1) ? FirstDayOfWeekValue : 0;
  if (Weekday + addval > 7) addval -= 7;
  return weekdays[Weekday + addval - 1];
}

function ValidaNumero(){
	if (window.event.keyCode < 48 || window.event.keyCode > 57) { 
		   window.event.keyCode = 0;
		   return;
	}
}


//Muestra la tabla enviada como primer parametro y oculta la segunda tabla
function ShowHideTable(tabla,tabla2){
var estilo='';
//eval("alert("+tabla+".style.display)")
eval("estilo=document.all."+tabla+".style.display");
eval(tabla2+".style.display='none'");
	if (estilo=='none'){	
		eval(tabla+".style.display=''");
	}else{
		eval(tabla+".style.display='none'")
	}
}
function Valida_Fecha(fecha,tipo) {
dateStr=fecha.value;
// Checks for the following valid date formats:
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY
// Also separates date into month, day, and year variables
//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
// To require a 4 digit year entry, use this line instead:
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
if (dateStr==""){
return true;
}
if (matchArray == null) {
alert("El formato de la Fecha debe ser dd/mm/aaaa");
fecha.focus();
fecha.select();
return false;
}
/*month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
*/
/*day = matchArray[3]; // parse date into variables
month = matchArray[1];
year = matchArray[4];*/
if (tipo==0) {
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
}
if (tipo==1) {
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[4];
}

if (month < 1 || month > 12) { // check month range
alert("El mes debe estar entre 1 y 12.");
fecha.focus();
fecha.select();
return false;
}
if (day < 1 || day > 31) {
alert("Día debe estar entre 1 y 31.");
fecha.focus();
fecha.select();
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Este mes no tiene 31 días!")
fecha.focus();
fecha.select();
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("Febrero " + year + " no tiene " + day + " dias!");
fecha.focus();
fecha.select();
return false;
}
}
if (year < 1900) {
alert("El año debe ser mayor o igual a 1900")
fecha.focus();
fecha.select();
return false
}
var daynew = new Date();
return true; // date is valid
}

function trimLength(textarea, maxChars) 
{ 
     if(textarea.value.length <= maxChars) return; 

     textarea.value = textarea.value.substr(0, maxChars) 
}
function canAddCharacter(textarea, maxChars) 
{ 
     if(typeof(textarea.onkeypress.arguments[0]) != 'undefined') 
          var keyCode = textarea.onkeypress.arguments[0].keyCode; 
     else 
     { 
          if(document.selection.createRange().text.length != 0) return true; 
          var keyCode = event.keyCode; 
     } 

     var allowedChars = new Array(8, 37, 38, 39, 40, 46);     //Backspace, delete and arrow keys 
     for(var x=0; x<allowedChars.length; x++) if(allowedChars[x] == keyCode) return true; 

     if(textarea.value.length < maxChars) return true; 

     return false; 
}
/*******Valida fecha de hoy******/
function Valida_FechaHoy(fecha,tipo) {
dateStr=fecha.value;
// Checks for the following valid date formats:
// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY
// Also separates date into month, day, and year variables
//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
// To require a 4 digit year entry, use this line instead:
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
if (dateStr==""){
return true;
}
if (matchArray == null) {
alert("El formato de la Fecha debe ser dd/mm/aaaa");
fecha.focus();
fecha.select();
return false;
}
/*month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
*/
/*day = matchArray[3]; // parse date into variables
month = matchArray[1];
year = matchArray[4];*/
if (tipo==0) {
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
}
if (tipo==1) {
	month = matchArray[3]; // parse date into variables
	day = matchArray[1];
	year = matchArray[4];
}

if (month < 1 || month > 12) { // check month range
alert("El mes debe estar entre 1 y 12.");
fecha.focus();
fecha.select();
return false;
}
if (day < 1 || day > 31) {
alert("Día debe estar entre 1 y 31.");
fecha.focus();
fecha.select();
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Este mes no tiene 31 días!")
fecha.focus();
fecha.select();
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("Febrero " + year + " no tiene " + day + " dias!");
fecha.focus();
fecha.select();
return false;
}
}
if (year < 1900) {
alert("El año debe ser mayor o igual a 1900")
fecha.focus();
fecha.select();
return false
}

/*****valida la fecha de hoy***/
var time=new Date();
var lmonth=time.getMonth() + 1;
var ldate=time.getDate();
var lyear=time.getYear();
//alert(lmonth)
if (year > lyear) {
	alert("El año no debe ser mayor al año actual");
	fecha.focus();
	fecha.select();
	return false
}
else{
//	alert(year+'-' +lyear);	alert(month+'-' +lmonth)
	if (month > lmonth && year==lyear) {
		alert("La fecha no debe ser mayor a la actual")
		fecha.focus();
		fecha.select();
		return false
	}else{
		if (day> ldate &&month== lmonth && year==lyear) {
			alert("La fecha no debe ser mayor a la actual")
			fecha.focus();
			fecha.select();
			return false
		}
	}
}


var daynew = new Date();
return true; // date is valid
}

function checkDecimals(campo) {
if (window.event.keyCode < 46 || window.event.keyCode == 47  || window.event.keyCode > 57 ) {
	window.event.keyCode = 0;
} 
	if (window.event.keyCode == 46 ){ // el punto decimal(.)
	   if (InStr(campo.value,'.')>=0) {
			window.event.keyCode = 0;
		 }
	}
}

function asMoney(inputValue,signodec) {
	var strnum = new String(3/2);
    var signodec = strnum.charAt(1);

    var scrubValue = scrubData(inputValue,signodec);
    if (scrubValue == "0"+signodec+"00") {
        return scrubValue;
    }
    //variables temporales
    var returnString ="";
    var tempString = "";
    var tempNumber = 0;
    tempNumber = Math.round(scrubValue * 100);
    if (tempNumber.toString() == "NaN") {
        return "0"+signodec+"00";
    }

    // Manipula el numero 
    if (tempNumber < 10) {
        tempString = "00"+tempNumber;
    } else if (tempNumber < 100) {
        tempString = "0"+tempNumber;
    } else {
        tempString = "" + tempNumber;
    }

    if (tempString.length > 12) {
        alert ("No se pueden procesar numeros mayores de mil millones\nFavor corrija");
        return scrubValue;
    }

    returnString = "."+tempString.substring((tempString.length-2),tempString.length);
    for (var i=tempString.length -2; i > 3; i -= 3) {
        returnString = "," + tempString.substring(i-3,i) + returnString;
    } // end for()
    returnString = tempString.substring(0,i) + returnString;

    //retorna el nuevo string formateado
    return returnString;

} // fin de asMoney()

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

function replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function

