var nscForm = {
	setup: function()
	{
	},

	require: function(field)
	{
		if($F(field) == "")
		{
			this.addError(field, 'Required');
			return false;
		} else {
			this.clearError(field);
			return true;
		}
	},
	
	clearErrorOnChange: function(field)
	{
		Event.observe(field, 'change', function(e){nscForm.clearError(field); return true;});
		return true;
	},
	
	clearError: function(field)
	{
		this.removeError(field);
		Event.stopObserving(field, 'change', function(e){nscForm.clearError(field); return true;});
		return true;
	},

	removeError: function(field)
	{
		new Element.removeClassName(field+'_div', 'error');
		var nodes = $A($(field+'_div').getElementsByTagName('p'));
		nodes.each(function(node){if(Element.hasClassName(node, 'error')) Element.remove(node); return true;});
		return true;
	},

	addError: function(field, error)
	{
		new Element.addClassName(field+'_div', 'error');
		new Insertion.Top(field+'_div', '<p class="error">'+error+'</p>');
		this.clearErrorOnChange(field);
		return true;
	},
	
	validUsername: function(username) { if(username.length < 6) return false; else return true; },
	validPassword: function(password) { if(password.length < 6) return false; else return true; },
	validEmail: function(email) { if(email.match(/^[a-z0-9_\.\-]+\@([a-z0-9\-]+\.)+[a-z0-9]{2,4}$/i)) return true; else return false; },
	validCC: function(cc_number) { if(cc_number.length < 12) return false; var i, j, prod; var sum = 0; for(i = 0; i <cc_number.length; i++) { if((i % 2) != (cc_number.length % 2)) sum += parseInt(cc_number.charAt(i)); else { prod = parseInt(cc_number.charAt(i)) * 2; sum += prod % 10; if(prod >= 10) sum += 1; } } if((sum % 10) == 0) return true; else return false; },
	validCVN: function(cvn) { if(cvn.length < 3 || cvn.length > 4) return false; else return true; },
	validZip: function(zip) { if(zip.length == 5) return true; else return false; },
	
	removeNonNumbers: function(val) { return val.replace(/[^0-9]/g, ""); },
	popWin: function(url, width, height) { if(url != '') { var popup_win = window.open(url,'popup','scrollbars,resizable,toolbar,width='+width+',height='+height+',left=50,top=50'); popup_win.focus(); return false; } return true; }
}
