function isNS() {
	return (document.layers) ? true : false;
}

function isIE() {
	return (document.all) ? true : false;
}

function trim(str) {
        str = str.replace(/^\s+|\s+$/, '', str);
	return str;
}

function isBlank(str) {
        return ('' == trim(str));
}

function countNonDigits(str) {
	var _len = str.length;
	var _result = 0;
	for(var _i = 0; _i < _len; _i++) {
		if ((str.charCodeAt(_i) < 48) || (str.charCodeAt(_i) > 57)) {
			_result++;
		}
	}
	return _result;
}

function isInteger(n) {
	return (!isNaN(n) && (Math.ceil(n) == Math.floor(n)));
}

function isNatural(n) {
	return (isInteger(n) && (n >= 0));
}

function isPositiveNumber(n) {
	return (!isNaN(n) && (n > 0));
}

function isPositiveInteger(n) {
	return (isInteger(n) && (n > 0));
}

function countChar(str,chr) {
	var _len = str.length;
	var _result = 0;
	for (var _i = 0; _i < _len; _i++) {
		if (str.charAt(_i) == chr) {
			_result++;
		}
	}
	return _result;
}

function countNonASCII(str) {
	var _len = str.length;
	var _result = 0;
	for (var _i = 0; _i < _len; _i++) {
		if (str.charCodeAt(_i) > 127) {
			_result++;
		}
	}

	return _result;
}

function countWhiteSpaces(str) {
	var _len = str.length;
	var _result = 0;
	for (var _i = 0; _i < _len; _i++) {
		if (str.charCodeAt(_i) < 33) {
			_result++;
		}
	}
	return _result;
}

function countNonDigits(str) {
	var _len = str.length;
	var _result = 0;
	for(var _i = 0; _i < _len; _i++) {
		if ((str.charCodeAt(_i) < 48) || (str.charCodeAt(_i) > 57)) {
			_result++;
		}
	}
	return _result;
}

function isEmail(str) {
	var _str = new String(trim(str));
	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);
	return ((leftPart.length > 0) && (rightPart.length > 3)
		&& (countChar(rightPart,".") > 0)
		&& (rightPart.charAt(rightPart.length - 1) != ".")
		&& (rightPart.charAt(0) != "."));
}

function IsAlphanumeric(s){
	var keychar;
	for (var i = 0; i < s.length; i++){
	if (s.length == 0) return false;
		keychar = s.charAt(i);
		if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-").indexOf(keychar) <= -1))
			return false;
		}
	return true;
}

function IsNumeric(s){
	var keychar;
	for (var i = 0; i < s.length; i++){
		keychar = s.charAt(i);
		if ((("0123456789").indexOf(keychar) <= -1))
			return false;
		}
	if (s.length == 0) return false;
	return true;
}

function IsAllowed(s){
	var keychar;
	//alow alphanumeric and extra characters
	for (var i = 0; i<= s.length; i++){
		keychar = s.charAt(i);
		if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 _-.@").indexOf(keychar) <= -1))
			return false;
		}
	if (s.length == 0) return false;
	return true;
}

function IsNameAllowed(s){
	var keychar;
	//alow alphanumeric and extra characters
	for (var i = 0; i<= s.length; i++){
		keychar = s.charAt(i);
		if ((("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 _-.ÜÖÄüöäß").indexOf(keychar) <= -1))
			return false;
		}
	if (s.length == 0) return false;
	return true;
}

function $(id) { return document.getElementById(id); }

