/*****************************************************************
* Gridnine AB http://www.gridnine.com
* Project: Cms-consultantfinder-module
* Legal notice: (c) Gridnine AB. All rights reserved.
*****************************************************************/
function countChar(str,chr) {
	var _len=str.length, _result=0;
	for(var _i=0;_i<_len;_i++)if(str.charAt(_i)==chr)_result++;
	return _result;
}

function countNonASCII(str) {
	var _len=str.length, _result=0;
	for(var _i=0;_i<_len;_i++)if(str.charCodeAt(_i)>127)_result++;
	return _result;
}

function countWhiteSpaces(str) {
	var _len=str.length, _result=0;
	for(var _i=0;_i<_len;_i++)if(str.charCodeAt(_i)<33)_result++;
	return _result;
}

function trimLeft(str) {
	var _len=str.length;
	var _i,_result=new String(str);
	if(_len<1)return _result;
	for(_i=0;_i<_len;_i++)if(str.charCodeAt(_i)>32 || str.charCodeAt(_i)<-1)break;
	if(_i<1)return _result;
	_result=_result.substring(_i,_len);
	return _result;
}

function trimRight(str) {
	var _len=str.length;
	var _i,_result=new String(str);
	if(_len<1)return _result;
	for(_i=0;_i<_len;_i++)if(str.charCodeAt(_len-_i-1)>32 || str.charCodeAt(_i)<-1)break;
	if(_i<1)return _result;
	_result=_result.substring(0,_len-_i);
	return _result;
}

function trim(str) {
	var _result=trimLeft(str);
	if(_result.length>0)_result=trimRight(_result);
	return _result;
}

function isBlank(str) {
	if(trimLeft(str)=="")return true;
	return false;
}

function isEmail(str) {
	var _str=new String(trim(str));
	if (isBlank(_str)) {
		return false;
	}
	if(countWhiteSpaces(_str)>0)return false;
	if(countNonASCII(_str)>0)return false;
	if((_str.length<6)||(countChar(_str,"@")!=1))return false;
	var leftPart=_str.substring(0,_str.indexOf("@"));
	var rightPart=_str.substr(_str.indexOf("@")+1);
	if((leftPart.length<1)||(rightPart.lenght<4))return false;
	if(countChar(rightPart,".")<1)return false;
	if(rightPart.charAt(rightPart.length-1)==".")return false;
	return true;
}

