function isEmpty(inputVal) {
 if (inputVal == null || inputVal == "") { 
   return true 
   }
  //This function also returns true if user input a trailing white space,the following code handles this case.
  inputStr = inputVal.toString()
  for (var i = 0; i < inputStr.length; i++) {
  var oneChar = inputStr.charAt(i)
  if (oneChar ==" " && i == inputStr.length-1) { return true }
  if (oneChar ==" ") {continue}
  return false
   }
  } 

function IsPosInteger(inputStr) {
inputStr = inputStr.toString()
if (inputStr.length == 0) {
  return true
   }
if ((inputStr.length > 1) && (inputStr.charAt(0)=="0")) {
	return false;
	}
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
return false
}
}
return true
}

function JSV_trimL(expS, expT) {
	var trimChar = (JSV_trimL.arguments[1] == null) ? " " : expT;
	if ( !isEmpty(JSV_trimL.arguments[0]) ) {
		var startPosition = 0;
		while (startPosition<=expS.length && expS.charAt(startPosition) == trimChar)
			startPosition++;
		expS = expS.substring(startPosition,expS.length)
	}
	return expS;
}

function JSV_trimR(expS, expT) {
	var trimChar = (JSV_trimR.arguments[1] == null) ? " " : expT;
	if ( !isEmpty(JSV_trimR.arguments[0]) ) {
		var endPosition = expS.length - 1;
		while (endPosition >= 0 && expS.charAt(endPosition) == trimChar)
			endPosition--;
		expS = expS.substring(0,endPosition+1);
	}
	return expS;
}

function JSV_trimAll(expS, expT){
	if ( !isEmpty(expS) ) {
		var trimChar = (JSV_trimAll.arguments[1] == null) ? " " : expT;
		return JSV_trimR( JSV_trimL(expS, trimChar), trimChar );
	}
	else {
		return expS;
	}
}
function IsVaidTel(inputStr) {
inputStr = inputStr.toString()
if (inputStr.length == 0) {
  return true
   }
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (!((oneChar > "0" && oneChar < "9") || (oneChar == "0") || (oneChar == "9") || (oneChar == "(") || (oneChar == ")") || (oneChar == "-") || (oneChar == "/") || (oneChar == "+") || (oneChar == " ") || (oneChar == "£¬") || (oneChar == ","))){
return false
}
}
return true
}

/****************************************************************/

// isEmail (STRING s [, BOOLEAN emptyOK])
// 
// Email address must be of form a@b.c ... in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//

function isEmail (s)
{      
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    // look for Chinese Charactors
	var j=0;
    while (j < sLength)
    { 
	   if ("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@.".indexOf(s.charAt(j)) < 0)  return false;
	   j++
    }
	
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
function IsZip(value) {
inputStr = value.toString()
if (inputStr.length == 0) {
  return true
   }
if (inputStr.length != 6 ) {
return false
}
else {
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)
if (oneChar < "0" || oneChar > "9") {
return false
}
}
}
return true
}
