

/*sabrina 20-08-04 */
function IsTime(Format,IdBox,Req)
/* Funcion Para Verificar Si el Texto de un Campo Es Numerico */
/* Parametros | Separator: Separador decimal | IdBox: Nombre Campo | Req:Requerido */
{/*debugger*/
/* Caracteres Validos */

var ValidChars = "0123456789:";
var IsTime=true;
var Char;
var sText;

sText=IdBox.value
len = sText.length;

/* Busco en todo el Texto los caracteres NUmericos validos */
for (i = 0; i < sText.length && IsTime == true; i++) 
{ 
Char = sText.charAt(i); 
/* Si el Caracter que encuentra es Invalido pone IsNumber en False */
if (ValidChars.indexOf(Char) == -1) 
{
IsTime = false;
}
}
/*Guardo los valores de hora y minutos para luego validar*/
{
lEnt = sText.substring(0,sText.indexOf(Format));
lDec = sText.substring(sText.indexOf(Format)+1,len);
}
if (lEnt >=24)
{
IsTime = false;
}
if (lDec >=60)
{
IsTime = false;
}
/* Si isNumber es False Lo PInta de Color Erroneo los selecciona y no deja salir el User */
if (IsTime==false){

IdBox.focus();
IdBox.select();
IdBox.style.backgroundColor='LightCoral';
}		

else {
/* SI el numero es Correcto Lo Vuelve a Su Color Natural Dependiendo si es Reqerido */		
if (Req==1){
IdBox.style.backgroundColor='LightSteelBlue';
}
else			{
IdBox.style.backgroundColor='White';
		}
}
}
function Currency(Separator,IdBox,Req){
/* Funcion Para Convertir a Currency */
/* PARAMENTROS | Separator : Separador Decimal | IdBox : Nombre del Campo (Siempre this) | Req: Requerido */
/* Caracteres Validos */
    var ValidChars= '0123456789.,'/* +Separator;*/
var IsNumber=true;
var Char;
var sText;
var TempText='';
var MilSep;

if (Separator == '.'){
MilSep=',';}
else{
MilSep='.';}
sText=IdBox.value;
/* Busco en la cadena que Todos los caracteres sean validos */
for (i = 0; i < sText.length && IsNumber == true; i++) 
{ 
Char = sText.charAt(i); 
/* Si un caracter no es valido POngo isNumber en False*/
if (ValidChars.indexOf(Char) == -1) 
{
IsNumber = false;
}
else
{
if (Char != MilSep){ 
TempText= TempText + Char;}
}
}

sText = TempText;

/* Si se ingresan mas de Dos Separadores IsNUmber es false */

if (sText.indexOf(Separator) != sText.lastIndexOf(Separator))
{
IsNumber = false;
}

/* Si No es un NUmero Correcto Selecciono,Pinto y LLevo el Foco al Campo*/
if (IsNumber==false){
IdBox.focus();
IdBox.select();
IdBox.style.backgroundColor='LightCoral';}		
else{

if (IdBox.MinValue != 0){
	if (sText<IdBox.MinValue){
		if(IdBox.MinMsg!='') {
			IdBox.value=IdBox.MinValue
			alert(IdBox.MinMsg)
		}
	}
}
if (IdBox.MaxValue != 0){
	if (sText>IdBox.MaxValue){
		if(IdBox.MaxMsg!='') {
			IdBox.value=IdBox.MaxValue
			alert(IdBox.MaxMsg)
		}
		
	}
}
/* Si es Numero Correcto */
var len;
var lDec;
var lEnt;
var lNumber;
/* Guardo el tamaņo del Numero el una Variable */
len = sText.length;
/* Si tiene Separador Decimal Grabo en lEnt la Parte entera y el Ldec la parte Decimal*/
if (sText.indexOf(Separator) != -1){
lEnt = sText.substring(0,sText.indexOf(Separator));
lDec = sText.substring(sText.indexOf(Separator)+1,len);
}
else{
lEnt = sText.substring(0,len);
lDec = '';
}
if (lDec.length > 2){
lDec = lDec.substr(0,2);
}
if (lDec.length == 1){
lDec= lDec + '0';}
/* SI no hay parte Decimal la Defino Como 00*/
if (lDec.length == 0){

lDec= '00';}
/* Si NO se Ingreso Entero defino lEnt Como 0 */
if (lEnt.length ==0){
lEnt = 0;}
else{
lEnt = Math.round(lEnt);
lEnt = lEnt.toString()
TempText='';
var NumDec;
/*==== Este Bloque saca la cantidad de Separadores de mIles===*/
NumDec = lEnt.length;

NumDec = (NumDec - 1);

NumDec = NumDec / 3

NumDec = Math.floor(NumDec);
/*=============================================================*/
var EntLen; /* Esta Variable Contiene el Tamaņo del Entero */
var Pos;/* Esta Variable va a Tener la Posicion de donde tomar los separadores de miles */

EntLen=lEnt.length;

if ( NumDec != 0) /* Si Hay Decimales */
{

/* Hago un For Con la Cantidad de separadores de Miles */
for (i = 0; i < NumDec ; i++) 
{
/* La POsicion donde comientaz a tomar los 3 numeros */
Pos = ((i+1) * 3);

Pos=((EntLen) - (Pos))

/* Si el Texto temporal  tiene algo, osea no es la primera vez que se le va a guardar u dato */

if (TempText != '')
{
/*Le Agrego al Texto anterior El BOlque NUevo con una coma adeltante */
TempText= MilSep+ lEnt.substr(Pos,3)+ TempText;
}
else
{
/*Le Concateno el Valor Con con una coma*/

TempText=MilSep+lEnt.substr(Pos,3);
}
}

lEnt = lEnt.substring(0,(lEnt.length - (3 * NumDec))) + TempText;
}
}

/* Armo el NUmero en la Variable lEnt */
lNumber = lEnt + Separator + lDec

/* Igualo el campo al Numero */
IdBox.value = lNumber

/* Pinto el campo Segun Si es Requerido  o NO */ 
if (Req==1)
{
IdBox.style.backgroundColor='LightSteelBlue';
}

else
{
IdBox.style.backgroundColor='White';
}
}	
}

function IsNumeric(Separator,IdBox,Req)
/* Funcion Para Verificar Si el Texto de un Campo Es Numerico */
/* Parametros | Separator: Separador decimal | IdBox: Nombre Campo | Req:Requerido */
{
/* Caracteres Validos */

var ValidChars = "0123456789" + Separator;
var IsNumber=true;
var Char;
var sText;
sText=IdBox.value

if (IdBox.MinValue != 0){
	if (sText<IdBox.MinValue){
		if(IdBox.MinMsg!='') {
			IdBox.value=IdBox.MinValue
			alert(IdBox.MinMsg)
		}
	}
}
if (IdBox.MaxValue != 0){
	if (sText>IdBox.MaxValue){
		if(IdBox.MaxMsg!='') {
			IdBox.value=IdBox.MaxValue
			alert(IdBox.MaxMsg)
		}
		
	}
}

/* Busco en todo el Texto los caracteres NUmericos validos */
for (i = 0; i < sText.length && IsNumber == true; i++) 
{ 
Char = sText.charAt(i); 
/* Si el Caracter que encuentra es Invalido pone IsNumber en False */
if (ValidChars.indexOf(Char) == -1) 
{
IsNumber = false;
}
}
/* Si isNumber es False Lo PInta de Color Erroneo los selecciona y no deja salir el User */
if (IsNumber==false){

IdBox.focus();
IdBox.select();
IdBox.style.backgroundColor='LightCoral';
}		

else {
/* SI el numero es Correcto Lo Vuelve a Su Color Natural Dependiendo si es Reqerido */		
if (Req==1){
IdBox.style.backgroundColor='LightSteelBlue';
}
else			{
IdBox.style.backgroundColor='White';
		}
}
}

function UpperText(Element){
/* Funcion Para Pasar Todo a Mayusculas */
/* PARAMETROS | Element:Nombre del Campo ( Siempre this )*/
var Text;

Text = Element.value;
Text = Text.toUpperCase();
Element.value = Text;
}

function LowerText(Element){
/* Funcion Para Pasar Todo a Minusculas */
/* PARAMETROS | Element:Nombre del Campo ( Siempre this )*/
var Text;

Text = Element.value;
Text = Text.toLowerCase();
Element.value = Text;
}

function DateConvert(Element,Format,Req,Lang){
var lDate;
var ValidChars = "0123456789/-"
var Separators = "/-"
var IsDate=true;
var Char;
var SepChar ='';
var HaveSep=false;
lDate = Element.value;
for(i = 0; i < lDate.length && HaveSep == false; i++){ 
if(Separators.indexOf(lDate.charAt(i)) != -1){
HaveSep=true;}}
if(Format=='ddMMMyy' | Format=='ddMMMyyyy'){
var HasConvert=false;
if (lDate.length ==9 && HaveSep==false && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + ConvertMonthNameToNumber(lDate.substr(2,3))+ '-' + lDate.substr(5,4);
HasConvert=true;}
if (lDate.length ==7 && HaveSep==false && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + ConvertMonthNameToNumber(lDate.substr(2,3))+ '-' + lDate.substr(5,2);
HasConvert=true;}
if (lDate.length ==11 && HaveSep==true && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + ConvertMonthNameToNumber(lDate.substr(3,3))+ '-' + lDate.substr(7,4);
HasConvert=true;}
if (lDate.length ==9 && HaveSep==true && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + ConvertMonthNameToNumber(lDate.substr(3,3))+ '-' + lDate.substr(7,2);
HasConvert=true;}
if (lDate.length ==8 && HaveSep==false && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + lDate.substr(2,2)+ '-' + lDate.substr(4,4);
HasConvert=true;}
if (lDate.length ==6 && HaveSep==false && HasConvert==false){
lDate=lDate.substr(0,2)+ '-' + lDate.substr(2,2)+ '-' + lDate.substr(4,2);
HasConvert=true;}
}
else{
if (lDate.length ==8 && HaveSep==false){
lDate=lDate.substr(0,2)+ '/' + lDate.substr(2,2)+ '/' + lDate.substr(4,4);}
if (lDate.length ==6 && HaveSep==false){
lDate=lDate.substr(0,2)+ '/' + lDate.substr(2,2)+ '/' + lDate.substr(4,2);}
}
var NumberOfSep = 0;
for(i = 0; i < lDate.length && IsDate == true; i++){ 
Char = lDate.charAt(i); 
if (ValidChars.indexOf(Char) == -1){
IsDate = false;	}
if (Separators.indexOf(Char) != -1){
if (Char != SepChar && SepChar != '') {
IsDate = false;
i = lDate.length;}
else{
SepChar = Char;
NumberOfSep = NumberOfSep + 1;}}}
if (NumberOfSep != 2){
IsDate=false;}
if (IsDate==true){
var day;
var month;
var year;
if (Format.substr(0,2)=='dd'){
day = lDate.substring(0, lDate.indexOf(SepChar));
month = lDate.substring((lDate.indexOf(SepChar) + 1), lDate.lastIndexOf(SepChar));}	
else{
day = lDate.substring((lDate.indexOf(SepChar) + 1), lDate.lastIndexOf(SepChar));
month = lDate.substring(0, lDate.indexOf(SepChar));}
if (day.length==1){
day = '0' + day;
}	
if (month.length==1){
month='0' + month;
}	
year = lDate.substr((lDate.lastIndexOf(SepChar)+1),4);
if ((Format.substr(4,4)=='yyyy' && year.length==2) | (Format=='ddMMMyyyy' && year.length==2)){
year = '20' + year;
}
if ((Format.substr(4,4)=='yy' && year.length==4) | (Format=='ddMMMyy' && year.length==4)){
year = year.substr(2,2);
}
var TemplDate;
TemplDate = day + SepChar + month + SepChar + year;
var Verify;
Verify = check_date(TemplDate,SepChar);
if (Verify == 'err'){
IsDate=false;}
else{
lDate=TemplDate;}

}		
if (IsDate==false){
if (Element.value.length != 0){
Element.value=lDate;
/*window.status=Format.substr(0,2)+ '/' + Format.substr(2,2)+ '/' + Format.substr(4,4) ;*/
Element.focus();
Element.select();
Element.style.backgroundColor='LightCoral';
}
else{
if (Req==1){
Element.style.backgroundColor='LightSteelBlue';
window.status='';
}
else{
window.status='';
Element.style.backgroundColor='White';
}
}				
}
else{		
if (Format=='ddMMMyy' | Format=='ddMMMyyyy'){ 
lDate = day + SepChar + ConvertMonthNumberToName(month,Lang) + SepChar + year;
}
else{
if (Format.substr(0,2)=='dd'){
lDate = day + SepChar + month + SepChar + year;
}
else{
lDate = month + SepChar + day + SepChar + year;
}
}
Element.value=lDate
window.status=''
if (Req==1){
Element.style.backgroundColor='LightSteelBlue';
}
else{
Element.style.backgroundColor='White';
}
}
}

function check_date(field,SepChar){

var checkstr = "0123456789";
var DateField = field;
var Datevalue = "";
var DateTemp = "";
var seperator = SepChar;
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
err = 0;
DateValue = DateField;
/* Delete all chars except 0..9 */
for (i = 0; i < DateValue.length; i++){
if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
DateTemp = DateTemp + DateValue.substr(i,1);}}
DateValue = DateTemp;
/* Always change date to 8 digits - string*/
/* if year is entered as 2-digit / always assume 20xx */
if (DateValue.length == 6) {
DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
if (DateValue.length != 8) {
err = 19;}
/* year is wrong if year = 0000 */
year = DateValue.substr(4,4);
if (year == 0) {
err = 20;
}
/* Validation of month*/
month = DateValue.substr(2,2);
if ((month < 1) || (month > 12)) {
err = 21;
}
/* Validation of day*/
day = DateValue.substr(0,2);
if (day < 1) {
err = 22;
}
/* Validation leap-year / february / day */
if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
leap = 1;
}
if ((month == 2) && (leap == 1) && (day > 29)) {
err = 23;
}
if ((month == 2) && (leap != 1) && (day > 28)) {
err = 24;
}
/* Validation of other months */
if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
err = 25;
}
if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
err = 26;
}
/* if 00 ist entered, no error, deleting the entry */
if ((day == 0) && (month == 0) && (year == 00)) {
err = 15;
/*err = 0; day = ""; month = ""; year = ""; seperator = ""; */
}
/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
if (err == 0) {
DateField = day + seperator + month + seperator + year;
return DateField
}
/* Error-message if err != 0 */
else {
return 'err'
}
}
function ConvertMonthNameToNumber(MonthName){
if(MonthName.toUpperCase()=="JAN" | MonthName.toUpperCase()=="ENE"){return "01"}
if(MonthName.toUpperCase()=="FEB" | MonthName.toUpperCase()=="FEV"){return "02"}
if(MonthName.toUpperCase()=="MAR"){return "03"}
if(MonthName.toUpperCase()=="ABR"){return "04"}
if(MonthName.toUpperCase()=="MAY" | MonthName.toUpperCase()=="MAI"){return "05"}
if(MonthName.toUpperCase()=="JUN"){return "06"}
if(MonthName.toUpperCase()=="JUL"){return "07"}
if(MonthName.toUpperCase()=="AGO"){return "08"}
if(MonthName.toUpperCase()=="SEP" | MonthName.toUpperCase()=="SET"){return "09"}
if(MonthName.toUpperCase()=="OCT" | MonthName.toUpperCase()=="OUT"){return "10"}
if(MonthName.toUpperCase()=="NOV"){return "11"}
if(MonthName.toUpperCase()=="DIC" | MonthName.toUpperCase()=="DEC" | MonthName.toUpperCase()=="DEZ"){return "12"}
return MonthName;
}
function ConvertMonthNumberToName(MonthNumber,Language){
if(MonthNumber=="01"){
if (Language==0){
return "Jan";}
if (Language==1){
return "Ene";}
if (Language==2){
return "Jan";}
}
if(MonthNumber=="02"){
if (Language==0){
return "Fev";}
if (Language==1){
return "Feb";}
if (Language==2){
return "Fev";}
}
if(MonthNumber=="03"){
return "Mar";
}
if(MonthNumber=="04"){
return "Abr";
}
if(MonthNumber=="05"){
if (Language==0){
return "May";}
if (Language==1){
return "May";}
if (Language==2){
return "Mai";}
}
if(MonthNumber=="06"){
return "Jun";
}
if(MonthNumber=="07"){
return "Jul";
}
if(MonthNumber=="08"){
return "Ago";
}
if(MonthNumber=="09"){
if (Language==0){
return "Sep";}
if (Language==1){
return "Sep";}
if (Language==2){
return "Set";}
}
if(MonthNumber=="10"){
if (Language==0){
return "Oct";}
if (Language==1){
return "Oct";}
if (Language==2){
return "Out";}
}
if(MonthNumber=="11"){
if (Language==0){
return "01";}
if (Language==1){
return "Nov";}
if (Language==2){
return "Nov";}
}
if(MonthNumber=="12"){
if (Language==0){
return "Dec";}
if (Language==1){
return "Dic";}
if (Language==2){
return "Dez";}
}
}

