//String Handling functions on Javascript V1.1 from Epsilon Systems
    var TempStr
    var NewStr
    var OrgLen
    var LastPos
    var StartPos
    var Cnt
    var i
   
 // This function is internal usage   
  function JTrimInitialize(Astr) {
    OrgLen=0
    OrgLen=JLen(Astr)   
    
    NewStr=""
    Cnt=0
    LastPos=-1
    StartPos=-1
    
    if (OrgLen==0)  { 
        return('')         }   
    
    
    // Last Character Position
     LastPos=FindLastPos()
         
     // Starting Character Postion   
        StartPos=FindStartPos()      
      
      if (LastPos>=0) {
        LastPos+=1   }
        
      if (StartPos>=0) {
         StartPos+=1   }  
        
      return('')      
      }
      
       // This function is used to find out the starting character position
   // from the string excluding white spaces 
    
     
     function FindStartPos() {
      for(i=0;i<OrgLen;i++) {
	      if (TempStr.charAt(i)!=' ') {
		       break;   }      
       }
		return(i)		       
    	}
   
      
      
   // This function is used to find out the last character position
   // from the string excluding white spaces 
   
     function FindLastPos() {
       for(i=OrgLen-1;i>=0;i--) {
         if (TempStr.charAt(i)!=' ') {
           break;   }      
         }
         return(i)
     }    
     

// These are the functions which are used as built-in functions
    	
    	
  function JLen(Astr) {  
    TempStr=new String(Astr)
    return(TempStr.length)			 }
 	
     

   function JTrim(Astr) {
      JTrimInitialize(Astr)
      // Trim
     if (StartPos>=0 && LastPos>=0) {
       return(TempStr.substring(StartPos-1,LastPos)) }
     else {
       return('') } 
  
   }
 	
    	
   function JLtrim(Astr) {
      JTrimInitialize(Astr)
    // LTrim  
     if (StartPos>=0 && LastPos>=0) {
       return(TempStr.substring(StartPos-1,OrgLen)) }
     else {
       return('') } 
   }
   
   function JRtrim(Astr) {
      JTrimInitialize(Astr)
    // RTrim  
     if (StartPos>=0 && LastPos>=0) {
        return(TempStr.substring(0,LastPos)) }
     else {
       return('') } 
   }
   
   // Counting No. of Occurences    
   
  function JOccurs(AStr,ASearch) {
     var StrLen
     var SearchLen
     var noofOccurences
     var TempOccur
     var i
     
     TempOccur=new String(AStr)
     
         
     StrLen=JLen(AStr)
     SearchLen=JLen(ASearch)
     noofOccurences=0

     for (i=0;i<StrLen;i++) {
         if(TempOccur.substring(i,i+SearchLen)==ASearch) {
                noofOccurences+=1								}      
     } 
     return(noofOccurences)

}

  function JIsNumeric(ANum) {
    if (JLen(JTrim(ANum))<=0) return false
    for(i=0;i<ANum.length;i++) {
      if (ANum.charAt(i)!=0) {
        if (eval(parseInt(ANum.charAt(i))>0)==false) {
            return(false)					}			
           }  
     }   
     return(true)
  }
      
 function JIsNull(AStr) {
    if (JLen(AStr)<=0) {
       return true  }
    else {
       return false }
  }    
      
 function JSqueeze(AStr,ARemove) {
    var temp=""
    var c
    for(var i=0;i<AStr.length;i++) {
       c=AStr.charAt(i)
       if(c!=ARemove) temp+=c              }
       
     return temp
  }             
      
  function JSplit(AStr,ASplit) {
    return(AStr.split(ASplit))      }  

  function JSearch(AStr,ASearch) {
     return(AStr.search(ASearch))
  }   

function JProper(AStr)  {
  var StrHold
  var StrLen
  var TempStr
  var Cnt
  var ValStr

  StrLen = AStr.length
  Cnt=0
  StrHold=""
  ValStr=""

  if (StrLen>0)  {
    for(i=0;i<StrLen;i++) {
        TempStr = AStr.charAt(i)
        if (TempStr !=' ' && TempStr.length > 0 && Cnt==0) {
          ValStr=AStr.charAt(i)
          StrHold = StrHold + ValStr.toUpperCase()
          Cnt=1                                       }
        else {
          ValStr=AStr.charAt(i)
          StrHold = StrHold + ValStr.toLowerCase()       }                           }
  }
    return(StrHold)
 }


function JReplace(AStr,strReplaceWhat,strReplaceWith)
	{
		var strReturnValue = ""
		var strCharacter
		var intLoop
		for(intLoop=0;intLoop<AStr.length;intLoop++)
		{
			strCharacter=AStr.charAt(intLoop)
			if(strCharacter!=strReplaceWhat)
			{
				strReturnValue+=strCharacter
			}
			else
			{
				strReturnValue = strReturnValue+strReplaceWith
			}
		}
		return strReturnValue
	}
	

function Asc(string)
{
	var symbols = " !\"#$%&'()*+'-./0123456789:;<=>?@";
	var loAZ = "abcdefghijklmnopqrstuvwxyz";
	symbols += loAZ.toUpperCase();
	symbols += "[\\]^_`";
	symbols += loAZ;
	symbols += "{|}~";
	var loc;
	loc = symbols.indexOf(string);
	if (loc > -1)
	{ 
		Ascii_Decimal = 32 + loc;
		return (32 + loc);
	}
	return (0);
}	
