﻿// JScript File

function isNumeric(sText)
{
   var ValidChars = "0123456789";
   var NegativeChars="-0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
       if(i==0)
           {
              if (NegativeChars.indexOf(Char) == -1) 
                 {
                    IsNumber = false;
                 }    
           }
      else if (ValidChars.indexOf(Char) == -1) 
         {
            IsNumber = false;
         }
      }
       return IsNumber;
}//IsNumeric

function isDecimal(sText)
{
   var ValidChars = "0123456789.";
   var NegativeChars="-0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
       if(i==0)
           {
              if (NegativeChars.indexOf(Char) == -1) 
                 {
                    IsNumber = false;
                 }    
           }
      else if (ValidChars.indexOf(Char) == -1) 
         {
            IsNumber = false;
         }
      }
       return IsNumber;
}//IsNumeric

function isDate(DateToCheck){
    if(DateToCheck==""){
        return true;
    }
    var m_strDate = formatDate(DateToCheck);
    if(m_strDate==""){
        return false;
    }
    var m_arrDate = m_strDate.split("/");
    var m_DAY = m_arrDate[0];
    var m_MONTH = m_arrDate[1];
    var m_YEAR = m_arrDate[2];
    if(m_YEAR.length > 4){
        return false;
    }
    m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
    var testDate=new Date(m_strDate);
    if(testDate.getMonth()+1==m_MONTH)
    {
        return true;
    } 
    else
    {
        return false;
    }
}//isDate

function formatDate(DateToFormat,FormatAs){
    if(DateToFormat==""){return"";}
    if(!FormatAs){FormatAs="dd/mm/yyyy";}

    var strReturnDate;
    FormatAs = FormatAs.toLowerCase();
    DateToFormat = DateToFormat.toLowerCase();
    var arrDate
    var arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
    var strMONTH;
    var Separator;

    while(DateToFormat.indexOf("st")>-1){
    DateToFormat = DateToFormat.replace("st","");
    }

    while(DateToFormat.indexOf("nd")>-1){
    DateToFormat = DateToFormat.replace("nd","");
    }

    while(DateToFormat.indexOf("rd")>-1){
    DateToFormat = DateToFormat.replace("rd","");
    }

    while(DateToFormat.indexOf("th")>-1){
    DateToFormat = DateToFormat.replace("th","");
    }

    if(DateToFormat.indexOf(".")>-1){
    Separator = ".";
    }

    if(DateToFormat.indexOf("-")>-1){
    Separator = "-";
    }


    if(DateToFormat.indexOf("/")>-1){
    Separator = "/";
    }

    if(DateToFormat.indexOf(" ")>-1){
    Separator = " ";
    }

    arrDate = DateToFormat.split(Separator);
    DateToFormat = "";
	    for(var iSD = 0;iSD < arrDate.length;iSD++){
		    if(arrDate[iSD]!=""){
		    DateToFormat += arrDate[iSD] + Separator;
		    }
	    }
    DateToFormat = DateToFormat.substring(0,DateToFormat.length-1);
    arrDate = DateToFormat.split(Separator);

    if(arrDate.length < 3){
    return "";
    }

    var DAY = arrDate[0];
    var MONTH = arrDate[1];
    var YEAR = arrDate[2];




    if(parseFloat(arrDate[1]) > 12){
    DAY = arrDate[1];
    MONTH = arrDate[0];
    }

    if(parseFloat(DAY) && DAY.toString().length==4){
    YEAR = arrDate[0];
    DAY = arrDate[2];
    MONTH = arrDate[1];
    }


    for(var iSD = 0;iSD < arrMonths.length;iSD++){
    var ShortMonth = arrMonths[iSD].substring(0,3).toLowerCase();
    var MonthPosition = DateToFormat.indexOf(ShortMonth);
	    if(MonthPosition > -1){
	    MONTH = iSD + 1;
		    if(MonthPosition == 0){
		    DAY = arrDate[1];
		    YEAR = arrDate[2];
		    }
	    break;
	    }
    }

    var strTemp = YEAR.toString();
    if(strTemp.length==2){

	    if(parseFloat(YEAR)>40){
	    YEAR = "19" + YEAR;
	    }
	    else{
	    YEAR = "20" + YEAR;
	    }

    }


	    if(parseInt(MONTH)< 10 && MONTH.toString().length < 2){
	    MONTH = "0" + MONTH;
	    }
	    if(parseInt(DAY)< 10 && DAY.toString().length < 2){
	    DAY = "0" + DAY;
	    }
	    switch (FormatAs){
	    case "dd/mm/yyyy":
	    return DAY + "/" + MONTH + "/" + YEAR;
	    case "mm/dd/yyyy":
	    return MONTH + "/" + DAY + "/" + YEAR;
	    case "dd/mmm/yyyy":
	    return DAY + " " + arrMonths[MONTH -1].substring(0,3) + " " + YEAR;
	    case "mmm/dd/yyyy":
	    return arrMonths[MONTH -1].substring(0,3) + " " + DAY + " " + YEAR;
	    case "dd/mmmm/yyyy":
	    return DAY + " " + arrMonths[MONTH -1] + " " + YEAR;	
	    case "mmmm/dd/yyyy":
	    return arrMonths[MONTH -1] + " " + DAY + " " + YEAR;
	    }

    return DAY + "/" + strMONTH + "/" + YEAR;;

} //formatDate


function validateNumber(ctl){
    if(!isNumeric(ctl.value)){
        alert('Must be a whole number!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas, (.)decimal points, or (k) letters.');
        return false;
    }
    return true;
}

function validateDecimal(ctl){
    if(!isDecimal(ctl.value)){
        alert('Must be a decimal number!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas or (k) letters.');
        return false;
    }
    return true;
}

function validateDRange(ctl,low,high){
    if(!isDecimal(ctl.value)){
        alert('Must be a decimal number in the range (' +low + ' to ' + high + ')!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas or (k) letters.');
        return false;
    }   
    else
    {
        if((ctl.value<low)||(ctl.value>high)){
            alert('Must be a decimal number in the range (' +low + ' to ' + high + ')!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas or (k) letters.');
            return false;     
        }
    } 
    return true;
}

function validateRange(ctl,low,high){
    if(!isNumeric(ctl.value)){
        alert('Must be a whole number in the range (' +low + ' to ' + high + ')!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas, (.)decimal points, or (k) letters.');
        return false;
    }   
    else
    {
        if((ctl.value<low)||(ctl.value>high)){
            alert('Must be a whole number in the range (' +low + ' to ' + high + ')!\nDo not enter ($)dollar signs, (%)percent signs, (,)commas, (.)decimal points, or (k) letters.');
            return false;     
        }
    } 
    return true;
}

function validateDate(ctl){
    if(!isDate(ctl.value)){
        alert('Must be a date!');
        return false;
    }
    return true;  
}
