if(typeof netcontrols == "undefined") netcontrols = new Object();

netcontrols.validate = function() {}

netcontrols.validate.prototype = {
	
	isEmail: function(item) {
		var filter = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i;
		if (!filter.test(item)) {
			return false;
		}
		return true;
	},
	
	isUrl: function(item) {
		var filter = /^(news|telnet|nttp|file|http|ftp|https)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#]\w+)*\/?$/i;
		if (!filter.test(item)) {
			return false;
		}
		return true;
	},
	
	isSize: function(item) {
		var filter = /^[0-9]+(px|%)?$/i;
		if (!filter.test(item)) {
			return false;
		}
		return true;
	},

	isId: function(item) {
		var filter = /^[A-Za-z_]([A-Za-z0-9_])*$/i;
		if (!filter.test(item)) {
			return false;
		}
		return true;
	},

	isEmpty: function(item) {
		var nl, i;
		if (item.nodeName.toLowerCase()=="select" && item.selectedIndex<1) {
			return true;
		}
		if (item.type=="checkbox" && !item.checked) {
			return true;
		}
		if (item.type=="radio") {
			for (i=0, nl = item.form.elements; i<nl.length; i++) {
				if (nl[i].type == "radio" && nl[i].name == item.name && nl[i].checked) {
					return false;
				}
			}
			return true;
		}
		return new RegExp("^\\s*$").test(s.nodeType == 1 ? s.value : s);
	},

	isNumber: function(item, double) {
		return !isNaN(item) && (!double || !filter.test(item));
	}
	
}