

var Validator = new Class ({
	
	initialize: function () {
		
	}
});

Validator.isStrMaxLenValid = function (s, args) {
	return ( s.length <= args[0] );
}
	
Validator.isIntervalValid = function (interval, args) {
	return  (interval.length == 0) || ( ( Validator.isDigit( interval ) ) && ( interval >= args[0] ) && ( interval <= args[1] ) );
}

Validator.isEmailValid = function  ( email ) {
	return (email.length == 0 ) || ( ( email.indexOf( "." ) > 2 ) && ( email.indexOf( "@" ) > 0 ) );
}

Validator.isEmailListValid = function (list) {
	if ( list == "" ){
		return true;
	}
	var emailList = list.split( ";" );
	for ( i = 0; i < emailList.length; i++ ){
		if ( !Validator.isEmailValid( emailList[i] ) ){
			return false;
		}
	}
	return true;		
}

Validator.isSmsListValid = function (list) {
	if ( list == "" ){
		return true;
	}
	var smsList = list.split( ";" );
	for ( i = 0; i < smsList.length; i++ ){
		if ( !Validator.isEmailValid( smsList[i] ) ){ // USANDO A MESMA REGRA DE E-MAIL
			return false;
		}
	}
	return true;		
}

Validator.isDigit = function ( input ) {  
	if ( input.length == 0 ) {
		return true;
	}
	for( i = 0; i < input.length; i++ ) { 
		if ( input.charAt( i ) < "0" || input.charAt( i ) > "9" ){
			return false;
		}
	}
	return true;
}

Validator.isValueDigit = function ( input ) {  
	if ( input.length == 0 ) {
		return false;
	}
	for( i = 0; i < input.length; i++ ) { 
		if ( input.charAt( i ) < "0" || input.charAt( i ) > "9" ){
			return false;
		}
	}
	return true;
}

Validator.isOIDValid = function ( input ) {  
	if ( input.length == 0 ) {
		return false;
	}
	var regEx = /^[0-9]+\.[0-9]+$|^[0-9]+$/;
	if (!input.match(regEx)){
		return false;
	}
	return true;
}

Validator.isDateValid = function ( date, args ) {
	// Formato valido: dd/mm/aaaa
	if ( date.length == 0 ) {
	return true;
	}
	var splited = date.split( "/" );
	if ( splited.length != 3 ) 
		return false;

	var day   = splited[0];
	var month = splited[1];
	var year  = splited[2];

	return Validator.isValueDigit( day ) && Validator.isValueDigit( month ) && Validator.isValueDigit( year ) && day >= 1 && day <= 31 && month >= 1 && month <= 12 && year >= 1;
}

Validator.isHourValid = function ( hour, args ) {
	// Formato valido: hh:mm
	if ( hour.length == 0 ) {
		return true;
	}
	
	var splited = hour.split( ":" );
	if ( splited.length != 2 ) 
		return false;
	var h = splited[0];
	var m = splited[1];
	return Validator.isValueDigit( h ) && Validator.isValueDigit( m ) && h >= 0 && h <= 24 && m >= 0 && m <= 60;
}

Validator.isComboSelectionValid = function (value, args){
	if (value == args[0]){
		return false;
	}
	return true;
}
	
Validator.isNonNull = function (value){
	if (value == null){
		return false;
	}
	return true;
}

Validator.isEmpty = function (value){
	if (value.length == 0){
		return false;
	}
	return true;
}

Validator.isAllwaysValid = function (args){
	return true;
}

Validator.isAlwaysValid = function (args){
	return true;
}

Validator.isNotNull = function (value){
	if(value != null){
		return true;
	}else{
		return false;
	}
}
