//Search for the id of the element passed,
//check the type of validation required pe 'EMAIL', 'NOTNULL', 'DATE'
//muestra el mensaje que se le envia en un alert
//asigna una clase de error para distinguir o toma por defecto ERROR  

function isValid(idElement, validation, msgError, classError, required, valEmpty ){
	if(typeof required == "undefined"){
		required = true;
	}	
	if(typeof msgError == "undefined"){
		msgError = 'There was a error';
	}
	if(typeof classError == "undefined"){
		classError = 'error';
	}		
	if(typeof valEmpty == "undefined"){
		valEmpty = [''];
	}else if(typeof valEmpty  == "string"){
		valEmpty = array(valEmpty);
	}
	
	
	var element = document.getElementById(idElement);	
	if( element == null){
		alert( 'This id ( ' + idElement + ' ) doesn\'t exists' );
		return false;
	}
	//Check if is valEmpty and not required	
	if(!required){
		//Is empty if is in the array of empty's
		for(var i = 0; i < valEmpty.length; i++){
			if(element.value ==  valEmpty[i])
				return true;
		}			
	}
	
	var valid;	
	if( validation == 'EMAIL'){
		valid =  validation_email(element);		
	}else if( validation == 'NOT_EMPTY'){
		valid =  validation_not_empty(element, valEmpty);
	}else if(validation == 'DATE'){
		alert('This validation is not defined');
		return false;
	}else if(validation == 'POSITIVE'){		
		valid =  validation_positive(element);		
	}else if(validation == 'TELEPHONE'){		
		valid =  validation_telephone(element);		
	}else{
		alert('This validation is not defined');
		return false;
	}		
	
	if(valid){		
		element.className = element.className.replace(classError, '');
		return true;
	}else{
		alert(msgError);		
		element.focus();
		element.select();
		element.className += ' ' + classError;		
		return false;
	}
}

function validation_email(element){
	var expressionEmail = /^[0-9a-zA-Z\._-]+@[0-9a-zA-Z\._-]+\.[0-9a-zA-Z]+$/;
	var email = element.value;		
	if ( !email.match(expressionEmail) ) {			
		return false;
	}
	else {		
		return true;	
	}	
}

function validation_telephone(element){
	var expressionTelephone = /^([0-9]\.{0,1}\-{0,1}\ {0,1}){10}$/;
	var telephone = element.value;		
	if ( !telephone.match(expressionTelephone) ) {			
		return false;
	}
	else {		
		return true;	
	}	
}

function validation_not_empty(element,valEmpty){
	for( var i = 0; i < valEmpty.length; i++){
		if(element.value == valEmpty[i])	return false; 
			
	}
	return true;
}
function validation_positive(element){
	var value = element.value;
	
	if(isNaN(value) || value == '' || value <= 0 ){
		return false;
	}else{
		return true;
	}
}