//-------------------------------------------------------------------
// string related functions
//-------------------------------------------------------------------
function trim(sIn) {
	var sOut = '', justblanks = true, i, l ;
	ln = sIn.length;
	if (ln < 1) return sOut;
	for(i = 0; i < ln; i++)
		if( ( sIn.charCodeAt(i) != 32) && (sIn.charCodeAt(i) != 160 ) )	{
			justblanks = false;
			break;
		}
	if(justblanks)	return sOut;
	for ( i = 0, p = -1; i 	< ln; i ++ )		// trim left
		if (sIn.charCodeAt(i) != 32 && !isNaN(sIn.charCodeAt(i))) {
			p = i;
			break;
		}
	for( i = ln, l = -1; i >= 0; i--) 		// trim right	
		if (sIn.charCodeAt(i) != 32 && !isNaN(sIn.charCodeAt(i))) {
			 l = i;
			 break;
		}
	sOut = sIn.substring(p,l + 1);
	return sOut;
}
//-------------------------------------------------------------------
function sLeft( sIn, nr ) {
  var m = '';
  if( ( nr >= (sIn.length - 1) ) || (sIn == '')) return sIn;
  for(var i = 0; i <= nr; i++ )
    m = m + sIn.charAt( i )
  return m;
}
//-------------------------------------------------------------------
function isDigit(num) {
  var string="1234567890";
  if (string.indexOf(num) != -1) {
    return true;
  }
  return false;
}
//-------------------------------------------------------------------
function isNumeric(sIn) {
  var dp = false, i;
  if (sIn.length < 1)
    return false;
  for (i = 0; i < sIn.length; i++)
    if ( !isDigit( sIn.charAt( i ) ) ) 
      if ((sIn.charAt(i) == '.') || (sIn.charAt(i) == ','))
        if ( dp )     // another decimal seperator ?
          return false;
        else
          dp = true;
      else
        return false; 
  return true;
}
//-------------------------------------------------------------------
function replaceChar( sIn, scanfor, replacewith ) {
  var i, s = '';
  if ( sIn == '' )  return sIn;
  for(i = 0; i < sIn.length; i ++)
    if(sIn.charAt(i) == scanfor)
      s = s + replacewith   
    else      
      s = s + sIn.charAt(i);
  return s;
}
//-------------------------------------------------------------------
function isCharInStr( sIn, scanfor ) {
  var i, s = '';
  if ( sIn == '' )
    return 0;
  for(i = 0; i < sIn.length; i ++)
    if(sIn.charAt(i) == scanfor)
      return ( i )
  return 0;
}
//-------------------------------------------------------------------
function countNewlines( sIn ) {
  var i, cnt = 0;
  if( trim( sIn ) == '' )
    return 0;

  for(i = 0; i < sIn.length; i++) {
		if( (sIn.charCodeAt(i) == 10 ) )	{
      cnt++;
    }
  }
  return ( cnt );
}