function trim(TRIM_VALUE) {
 if(TRIM_VALUE.length < 1) {
  return "";
 }
 TRIM_VALUE = RTrim(TRIM_VALUE);
 TRIM_VALUE = LTrim(TRIM_VALUE);
 if(TRIM_VALUE=="") {
  return "";
 } else {
  return TRIM_VALUE;
 }
}


function RTrim(VALUE) {
 var w_space = String.fromCharCode(32);
 var v_length = VALUE.length;
 var strTemp = ""; 
 if(v_length < 0) {
  return"";
 }
 var iTemp = v_length -1;
 while(iTemp > -1) {
  if (VALUE.charAt(iTemp) == w_space) {
  } else {
   strTemp = VALUE.substring(0,iTemp +1);
   break;
  }
  iTemp = iTemp-1;
 }
 return strTemp;
}

function LTrim(VALUE) {
 var w_space = String.fromCharCode(32);
 if(v_length < 1) {
  return"";
 }
 var v_length = VALUE.length;
 var strTemp = "";
 var iTemp = 0;
 while(iTemp < v_length) {
  if (VALUE.charAt(iTemp) == w_space){
  } else {
   strTemp = VALUE.substring(iTemp,v_length);
   break;
  }
  iTemp = iTemp + 1;
 }
 return strTemp;
}

function chars(string,Chars) {
	if(Chars == 'alphanum')
		Chars = 'abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ.,-';
	if(Chars == 'num')
		Chars = '1234567890';
	if(Chars == 'decimal')
		Chars = '1234567890.';
	
	var returnstring = '';
	for (var i = 0; i < string.length; i++) {
		if (Chars.indexOf(string.charAt(i)) > -1)
			returnstring = returnstring + string.charAt(i);
	}
	return returnstring;
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}


function moneyFormat(mnt,useCommas,dollarSign) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    numTxt = (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
					   
	numTxt = numTxt + '';

	if(useCommas) { 
		numTxt = commas(numTxt);
	}
	
	if(dollarSign) {
		numTxt = '$' + numTxt;
	}
	return numTxt;
}


function commas(numTxt) {
	//numTxt = chars(numTxt,'1234567890.');
	
	
	var decTxt = '';
	if(numTxt.indexOf('.') > -1) {
		numSpl = numTxt.split('.');
		numTxt = '' + numSpl[0];
		decTxt = '' + '.' + numSpl[1];
	}
	for (var i = 0; i < Math.floor((numTxt.length-(1+i))/3); i++) {
		numTxt = numTxt.substring(0,numTxt.length-(4*i+3))+','+ numTxt.substring(numTxt.length-(4*i+3));
	}
	numTxt = numTxt + decTxt;
	return numTxt;
}


function emailCheck(emailStr) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) {
		return false
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				return false
			}
		}
		return true
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		return false
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
	   return false
	}
	if (len<2) {
	   return false
	}
	return true;
}


function validateDate(date) {
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    if ((date.match(RegExPattern)) && (date!='')) {
        return true;
    } else {
		return false;
	} 
}


function isNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	 
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}
