JSUtils = new Class({

	// ----------------------------------------------------------------------------------------------------
	initialize: function() {
	},

	// ----------------------------------------------------------------------------------------------------
	mostraErrorArray: function(errorArray, verbo) {

		var errorStr;
		if(errorArray.length == 1) {
			errorStr = errorArray[0] + '.';
		} else {
			errorStr = "<strong>Errors:</strong>";
			errorStr += "<ul>";
			for(var n = 0; n < errorArray.length; n++) {
				if(n == errorArray.length - 1) errorStr += "<li>" + errorArray[n] + ".</li>";
				else errorStr += "<li>" + errorArray[n] + ";</li>";
			}
			errorStr += "</ul>";
			errorStr += "Correct them and try " + verbo + " again."
		}
		msgr.show({
			tipo: 'error',
			html: errorStr
		});

	},

	// ----------------------------------------------------------------------------------------------------
	emailCheck: function(emailStr) {

		var emailPat = /^(.+)@(.+)$/;
		var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars = "\[^\\s" + specialChars + "\]";
		var quotedUser = "(\"[^\"]*\")";
		var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom = validChars + '+';
		var word = "(" + atom + "|" + quotedUser + ")";
		var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
		var matchArray = emailStr.match(emailPat);

		if(matchArray == null) return false;
		var user = matchArray[1];
		var domain = matchArray[2];

		if(user.match(userPat) == null) return false;

		var IPArray = domain.match(ipDomainPat);
		if(IPArray != null) {
			// this is an IP address;
			for(var i = 1;i <= 4; i++) {
				if(IPArray[i] > 255) return false;
			}
			return true;
		}

		var domainArray = domain.match(domainPat);
		if(domainArray == null) return false;

		var atomPat = new RegExp(atom, "g");
		var domArr = domain.match(atomPat);
		var len = domArr.length;
		if(domArr[domArr.length-1].length < 2 || domArr[domArr.length-1].length > 3) return false;

		if(len < 2) return false;

		return true;

	},

	// ----------------------------------------------------------------------------------------------------
	skinInputs: function() {

		// Skin inputs
		var inputArray = $$('input');
		inputArray = inputArray.filter(
			function(item, index) {
				return !item.hasClass('abb_symb') && item.id != 'login' && item.id != 'senha' && item.id != 'q' && (item.type == 'text' || item.type == 'password');
			}
		);
//		var inputArray = inputArray.combine($$('textarea'));
		inputArray.each(
			function(item, index) {
				item.addEvents(
					{
						focus: function() {
							this.setStyle('border', '1px solid #FECD08');
						},
						blur: function() {
							this.setStyle('border', '1px solid #666666');
						}
					}
				);
				if(index == 0) item.focus();
			}
		);
		if($chk($('q_depois'))) $('q_depois').focus();

	}

});
