// SVTValidations.js

function isValidName(itemName){
  var bool = true;
  var legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz. ,&\'';
   for(var i=0; i<itemName.length; i++)
	{
		temp = itemName.charAt(i)
		if (legalChars.indexOf(temp)==-1)
		{
			bool=false;
			return bool;
		}
	}
			return bool;
} 

function isValidAddress(itemName){
   itemName = itemName.toUpperCase();
  var bool = true;
  var legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ. ,&\'1234567890';
   for(var i=0; i<itemName.length; i++)
	{
		temp = itemName.charAt(i)
		if (legalChars.indexOf(temp)==-1)
		{
			bool=false;
			return bool;
		}
	}
			return bool;
} 

function isValidString(itemName){
	
	if(itemName.indexOf('"')!=-1){
		return false;
	} else {
		return true;
	}
}
	

function isValidNumber(itemName) 
{
   bool = true;
   var legalChars = '1234567890';
   		
   for(var i=0; i<itemName.length; i++)
	{
		temp = itemName.charAt(i)
		if (legalChars.indexOf(temp)==-1)
		{
			bool=false;
			return bool;
		}
	}
   
    return bool;
}

function isValidEmailString(itemName) 
{
   bool = true;
   var legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-1234567890.@';
   		
   for(var i=0; i<itemName.length; i++)
	{
		temp = itemName.charAt(i)
		if (legalChars.indexOf(temp)==-1)
		{
			bool=false;
			return bool;
		}
	}
   
    return bool;
}

function isValidDisc(objVal){

  var bool = true;
  var legalChars = '1234567890.';
  var deciCnt = 0; 
  for (var i=0;bool && i<objVal.length;i++){
     bool=false;      
     var testChar = objVal.charAt(i);
     for (var j=0; j<legalChars.length;j++) {
        if (testChar == legalChars.charAt(j)) {
           if(testChar == "."){
                deciCnt ++;       
           }
         if(deciCnt < 2){
                bool = true;
                break;
         }

     }         

  }

 if(!(bool)) {  
      return bool;
  }

}

   return bool

}

function isValidEmailAddr(objVal){
            var isValid = true;
            var ind =  objVal.indexOf("@");

                        if(objVal.indexOf(".") == -1 || (ind == -1)){
                                    isValid = false;
                        }else if(!(objVal.substring(ind+1).lastIndexOf("@") == -1)){
                                    isValid = false;
                        }
                        var length = objVal.length;
                        if(objVal.indexOf(".") == (length-1)){
                                    isValid = false;
                        }
            return isValid;
}


function isValidArea(objVal){

  var bool = true;
  var legalChars = '1234567890.,';
  var deciCnt = 0; 
  for (var i=0;bool && i<objVal.length;i++){
     bool=false;      
     var testChar = objVal.charAt(i);
     for (var j=0; j<legalChars.length;j++) {
        if (testChar == legalChars.charAt(j)) {
           if(testChar == "."){
                deciCnt ++;       
           }
         if(deciCnt < 2){
                bool = true;
                break;
         }

     }         

  }

 if(!(bool)) {  
      return bool;
  }

}

   return bool

}

function checkForAlphaNumWithSpace(itemName){
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890';
   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
         }         
      }
      if(!(bool)) { 
         return bool;
      }
   }
   return bool;
}

function checkForAlphaNumWOSpaceHiphen(itemName){
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
         }         
      }
      if(!(bool)) { 
         return bool;
      }
   }
   return bool;
}

function checkForAlphaNumWOSpaceHiphenWildChar(itemName){
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890*';
   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
         }         
      }
      if(!(bool)) { 
         return bool;
      }
   }
   return bool;
}

function isValidWholeNumber(objVal){

	var num="0123456789";
	var isValid = true;

	isValid = isValidVal(objVal,num);
	return isValid;
}

function isValidWholeNumberWildChar(objVal){

	var num="0123456789*";
	var isValid = true;

	isValid = isValidVal(objVal,num);
	return isValid;
}

function checkForAlphaNumWildChar(itemName)
{
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890*. ';
   for (var i=0;bool && i<itemName.length;i++)
   {
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) 
      {
         if (testChar == legalChars.charAt(j)) 
         {
            bool = true;
         }         
      }
      if(!(bool)) 
      { 
         return bool;
      }
   }
   return bool;
}
function checkForAlphaNumWildCharWAmp(itemName)
{
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890*& ';
   for (var i=0;bool && i<itemName.length;i++)
   {
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) 
      {
         if (testChar == legalChars.charAt(j)) 
         {
            bool = true;
         }         
      }
      if(!(bool)) 
      { 
         return bool;
      }
   }
   return bool;
}

function checkForAlphaNumWildCharComma(itemName)
{
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = '1234567890*, ';
   for (var i=0;bool && i<itemName.length;i++)
   {
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) 
      {
         if (testChar == legalChars.charAt(j)) 
         {
            bool = true;
         }         
      }
      if(!(bool)) 
      { 
         return bool;
      }
   }
   return bool;
}

function checkForAlphaNum(itemName){
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890 ';
   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
         }         
      }
      if(!(bool)) { 
         return bool;
      }
   }
   return bool;
}

function isValidVal(objVal,arrch){
 
 var isValid = true;
 var i = 0;
	while(i< objVal.length){
		var ch= objVal.charAt(i);
		if(arrch.indexOf(ch) == -1){
			isValid=false;
			break;
		}else{
			i++;
			continue;
		}
	}
	return isValid;
}

function checkIfOnlyAlphabets(itemName){
	itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ';

   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
	    break;
         }         
      }
      
      if(!(bool)) {  
         return bool;
      }
   }
   return bool;
}
function fnIdFormat(id){
	var legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";  
	var legalNumerals = "0123456789";
	temp = id.charAt(0);
	if (legalChars.indexOf(temp)==-1){
		return false;
	}
	if(id.length>1)
	{
		id = id.substring(1);
		var iLen = id.length;
		for (var i = 0; i < iLen; i++) {
			if (legalNumerals.indexOf(id.charAt(i)) == -1) {
				return false;
			}		  		
		}
	}
    return true;
}
function checkIfOnlyAlphabetsWOSpace(itemName){
	itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
	    break;
         }         
      }
      
      if(!(bool)) {  
         return bool;
      }
   }
   return bool;
}

function checkForAlphaNumComma(itemName){
   itemName = itemName.toUpperCase();
   var bool = true;
   var legalChars = "";
   legalChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ-1234567890,';
   for (var i=0;bool && i<itemName.length;i++){
      bool=false;      
      var testChar = itemName.charAt(i);
      for (var j=0; j<legalChars.length;j++) {
         if (testChar == legalChars.charAt(j)) {
            bool = true;
         }         
      }
      if(!(bool)) { 
         return bool;
      }
   }
   return bool;
}


 function trim(inString) {
 	if( (inString == null) || (inString.length == 0)) {
 	    return "";
 	}
  	var tmpStr = ltrim(inString);
   	return rtrim(tmpStr);
}
 
 
 function rtrim(inString) {
     	while (1) {
         	var ch = inString.charAt(inString.length - 1);
 	        if (ch == ' ' || ch == '\r' || ch == '\n') {
 		        inString = inString.substring(0, inString.length - 1);
 	        }
      	        else {
 		   	    break;
 		}
 	}
 	  return inString;
}
 
 function ltrim(inString) {
     while (1) {
         var ch = inString.charAt(0);
    	    if (ch == ' ' || ch == '\r' || ch == '\n') {
         	    inString = inString.substring(1, inString.length);
 	    }
            else {
             break;
    	    }
     	}
    	return inString;
 }
 
 
function showMessage(frmMainMenu)
{
	if(frmMainMenu.hAppStatus.value == "S")
	{
		if(frmMainMenu.hMessage.value != "null")
			alert(frmMainMenu.hMessage.value);
	}
}
var winW = 630, winH = 460;
			function getwinW() {
				if (parseInt(navigator.appVersion)>3) {
					if (navigator.appName=="Netscape") {
			  			winW = window.innerWidth;
						winH = window.innerHeight;
			 		}
					if (navigator.appName.indexOf("Microsoft")!=-1) {
		  				winW = document.body.offsetWidth;
		  				winH = document.body.offsetHeight;
		 			}
				}
				return winW;
			}
			function getwinH() {
				if (parseInt(navigator.appVersion)>3) {
					if (navigator.appName=="Netscape") {
				  		winW = window.innerWidth;
						winH = window.innerHeight;
					 }
				 	if (navigator.appName.indexOf("Microsoft")!=-1) {
				  		winW = document.body.offsetWidth;
				  		winH = document.body.offsetHeight;
				 	}
				}
				return winH;
			}
			
function isValidAFE(afeNbr){

	if(trim(afeNbr).length < 7 || trim(afeNbr).length > 7)
		return false;
	if(!checkForAlphaNumWOSpaceHiphenWildChar(afeNbr))
		return false;
	/*else if(null != afeNbr.indexOf("-") && 3 !=  afeNbr.indexOf("-"))
				return false;*/
				
return true;
		
}
function isValidCPAR(cparNbr){
	if(trim(cparNbr).length < 8 || trim(cparNbr).length > 8)
		return false;
	if(cparNbr.length > 1){
		if(!isValidWholeNumber(cparNbr.substring(1,cparNbr.length)))
			return false;
	}
	if(cparNbr.substring(0,1).toUpperCase() != 'C')
		return false;
	
		
				
return true;
		
}


function isValidDecVal(objVal,arrch){
 
 var isValid = true;
 var i = 0;
 var len=objVal.length;

 	while(i<len){
	 var ch= objVal.charAt(i);
		if(ch=='.' && i<12) {
			isValid=false;
			break;
		}
		++i;
	}
	return isValid;
}




function isDecimal(objVal){
     var dec = ".";
     var isValid = true;
     isValid = isValidDecVal(objVal,dec);
	return isValid;
	}


function searchValidations(objId,objLname,objFname){
	var id=trim(objId.value);
	var lname=trim(objLname.value);
	var fname=trim(objFname.value);
	var bool=false;
	if(id=="" && lname=="" && fname ==""){
		alert("Please enter Id, Last Name or First Name to search.");
		objId.focus();
	}else if(!checkForAlphaNumWOSpaceHiphen(id)){
		alert("Invalid characters in Id field.");
		objId.focus();
	}else if(!isValidName(lname)){
		alert("Invalid characters in Last Name field.");
		objLname.focus();
	}else if(!isValidName(fname)){
		alert("Invalid characters in First Name field.");
		objFname.focus();
	}else {
		bool=true;
	}
	
	return bool;
}
	
function validateEmailId(strObj) {
var str=trim(strObj);
var at="@";
var dot=".";
var lat=str.indexOf(at);
var lstr=str.length-1;
var ldot=str.indexOf(dot);
var flag= true;
	//alert(lstr);
	if(str==""){
	alert('0');
		flag= false;
	}else if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		flag= false;
	} else if(str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr ||str.substring(str.indexOf(dot)).length==0){
		flag= false;
	} else if(str.indexOf(at,(lat+1))!=-1){ 
		flag= false;
	} else if(str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		flag= false;
	} else if(str.indexOf(dot,(lat+2))==-1){
		flag= false;
	} else if (str.indexOf(" ")!=-1){
		flag= false;
	}
/*	alert("Length:"+str.length);
	alert(".Location:"+str.indexOf(dot));
	alert(".Location String:"+str.substring(str.indexOf(dot)));	
*/	if(!flag){
		alert("Please enter complete e-mail address. For example john.smith@bnsf.com.");
	}
		
return flag;
}

function doubleQuotesCheck(objVal){
	if(objVal.indexOf('\"')!=-1){
			return false;
	} else {
		return true;
	}
}

function goToPage(cmd,perform) { 
	document.forms[0].cmd.value = cmd;
	document.forms[0].perform.value = perform;
	document.forms[0].target = "_parent";
	document.forms[0].submit();
}


function chkGreater(frmdate, todate) {
    
    var sDate = frmdate.substring(6,10)+frmdate.substring(0,2)+frmdate.substring(3,5);
  	var eDate = todate.substring(6,10)+todate.substring(0,2)+todate.substring(3,5);
  	var isDate = parseInt(sDate);
  	var ieDate = parseInt(eDate);
  
  	if(isDate > ieDate) {
  		return false;
  	}
  	else {
  		return true;
  	}
}



function isValidDate(date){

   // Defining the variables for capturing the days

   // This function checks for a valid date which needs

   // to be entered in a proper format of MM/DD/YYYY

   var ErrorFlag=0;

   var iMonth=0;

   var vBreak=0;

   var iDate=0;

   var vBreakAgain=0;

   var iYear=0;

   var i = 0 ;

   var tmpStr = "" ;

   var strMonth="";

   var strDate="";

   

   var splitArr = date.split('/');

   if(splitArr.length != 3)

      return false;

   

   else if(splitArr[0].length == 0 || splitArr[1].length == 0 || splitArr[2].length == 0)

            return false;

            

   else if(splitArr[0].length!=2 || splitArr[1].length!=2 || splitArr[2].length!=4)

            return false;

   

   

   DateData = date ;

   //Checking the validation for length of data entry

   if (DateData.length < 8 || DateData.length > 10)

   {

  ErrorFlag = 1 ; //return false ;

   }

   //Running the loop to check for usage anything other than

   //numbers and slashes

   for (i=0 ; i < DateData.length; i++)

   {

  tmpStr = DateData.substring(i,i+1) ;

  if (tmpStr != "/" && isNaN(tmpStr) != 0)

  {

    ErrorFlag = 1 ;

  }

   }

   //Parsing the valid input from the user to arrive

   //at the individual values

   iParse1 = DateData.substring(1,2);

   iParse2 = DateData.substring(3,4);

   iParse3 = DateData.substring(2,3);

   iParse4 = DateData.substring(5,6);

   iParse5 = DateData.substring(4,5);

   //Assigning the month, year and day value based on

   //the location of the divider

   if (iParse1 == '/'  && iParse2 == '/')

   {

    iMonth = parseInt(DateData.substring(0, 1),10);

    vBreak= DateData.substring(1, 2);

    iDate = parseInt(DateData.substring(2, 3),10);

    vBreakAgain = DateData.substring(3, 4);

    iYear = parseInt(DateData.substring(4, 10),10);

 

    strMonth = DateData.substring(0, 1) ;

    strDate = DateData.substring(2, 3) ;

    }

    else if (iParse3 == '/' && iParse4 == '/')

    {

        iMonth = parseInt(DateData.substring(0, 2),10);

    vBreak= DateData.substring(2, 3);

    iDate = parseInt(DateData.substring(3, 5),10);

      vBreakAgain = DateData.substring(5, 6);

    iYear = parseInt(DateData.substring(6, 10),10);

 

      strMonth = DateData.substring(0, 2) ;

    strDate = DateData.substring(3, 5) ;

    }

    else if (iParse1 == '/' && iParse5 == '/')

    {

    iMonth = parseInt(DateData.substring(0, 1),10);

      vBreak= DateData.substring(1, 2);

      iDate = parseInt(DateData.substring(2, 4),10);

      vBreakAgain = DateData.substring(4, 5);

    iYear = parseInt(DateData.substring(5, 10),10);

 

    strMonth = DateData.substring(0, 1) ;

    strDate = DateData.substring(2, 4) ;

    }

    else if (iParse3 == '/' && iParse5 == '/')

    {

      iMonth = parseInt(DateData.substring(0, 2),10);

    vBreak= DateData.substring(2, 3);

    iDate = parseInt(DateData.substring(3, 4),10);

    vBreakAgain = DateData.substring(4, 5);

    iYear = parseInt(DateData.substring(5, 10),10);

 

      strMonth = DateData.substring(0, 2) ;

    strDate = DateData.substring(3, 4) ;

    }

    //Checking for a valid month and a valid year

    if (iMonth < 1 || iMonth > 12 || iDate < 1 || iDate > 31 || iYear < 1000 || iYear > 9999)

    {

    ErrorFlag = 1 ;

    }

    //Checking for non existence of '/'

    if (vBreak!= '/')

    {

      ErrorFlag = 1;

    }

    //Checking for non existence of the second '/'

    if (vBreakAgain != '/')

    {

       ErrorFlag = 1 ;

    }

    //Checking for valid number of days for a month having a maximum of 31 days

    if (iMonth==4 || iMonth==6 || iMonth==9 || iMonth==11)

    {

       if (iDate==31)

       {

          ErrorFlag=1;

    }

     }

     //Validation for leap year

     if (iMonth==2)

     {

       if (iDate > 29)

       {

         ErrorFlag=1;

       }

       if (!(((iYear/4)== parseInt(iYear/4,10) && (iYear/100) != parseInt(iYear/100,10)) || ((iYear/400) == parseInt(iYear/400,10))))

 

       {

    if (iDate == 29)
    {
      ErrorFlag=1;
     }
    }
  }
  //Whenever an error is encountered, the flag is set to 1
  //If the flag value is found to be 1, an invalid date error
  //message is returned to the user.

   if (ErrorFlag==1)
   {
     return false;
   }
   else 
   { 
     return true;
   }
}

function isNotEmptySpace(objVal){
 if(trim(objVal).length > 0){
  return true; 
 } else {
   return false;
 }
}

function removeDollarnCommas(value){
	value=value.toString().replace(/\$|\,/g,'');
	return value;
}

function isValidCurrency(objVal){
    var bool = true;
    var legalChars = '1234567890.,$';
	if(objVal.indexOf('$') != -1) {
		if(objVal.indexOf('$') > 0) {
			bool = false;
			alert('$ should preceed the amount');
		}
	}
	
	if(objVal.indexOf('.') != -1) {
		if(objVal.indexOf('.') == 0) {
			bool = false;
		}
	}
	if(bool == true) {
	    for (var i=0;bool && i<objVal.length;i++){
			 var testChar = objVal.charAt(i);
		     if (legalChars.indexOf(testChar) == -1) {
				bool=false;
				return bool;
			}
		 }
	}
	return bool;
} 

function isValidWholeNumberWithComma(objVal){

	var num="0123456789,";
	var isValid = true;

	isValid = isValidVal(objVal,num);
	if(objVal.indexOf(',') == 0 ||
		objVal.indexOf(',') == objVal.length - 1) {
			isValid = false;
	}
	return isValid;
}

function logout(cmd,perform) {
	document.forms[0].cmd.value = cmd;
	document.forms[0].perform.value = perform;	
	document.forms[0].hLogout.value ="Y";
	document.forms[0].submit(); 
}

function isValidStrVal(itemName){
  var bool = true;
  var legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'. ";
   for(var i=0; i<itemName.length; i++)
	{
		temp = itemName.charAt(i)
		if (legalChars.indexOf(temp)==-1)
		{
			bool=false;
			return bool;
		}
	}
			return bool;
} 

 