function alertFocus( msg, campo ) {
	alert( msg );
	campo.focus();
}

function vazio( str ) {
	return trim( str ) == "";
}
function trim( str ) {
	return str.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

function imagemValida( str ) {
	return str.toLowerCase().match( /^.+((\.gif)|(\.jpg)|(\.jpeg))$/g ) ? true : false;
}

function flashValido( str ) {
	return str.toLowerCase().match( /^.+((\.swf))$/g ) ? true : false;
}

function PDFValido( str ) {
	return str.toLowerCase().match( /^.+((\.pdf))$/g ) ? true : false;
}

function TXTValido( str ) {
	return str.toLowerCase().match( /^.+((\.txt))$/g ) ? true : false;
}

/* CPF */
function CPFValido( valor ) {
	if ( valor.length != "11" )
		return false;

	var soma1 = calculaCPFSoma1( valor );
	var digitoVerificador1 = valor.charAt( 9 );
	if ( soma1 != digitoVerificador1 )
		return false;

	var soma2 = calculaCPFSoma2( valor );
	var digitoVerificador2 = valor.charAt( 10 );

	if ( soma2 != digitoVerificador2 )
		return false;

	return true;
}
function calculaCPFSoma1( valor ) {
	return calculaCPFSoma( valor, 0 );
}
function calculaCPFSoma2( valor ) {
	return calculaCPFSoma( valor, 1 );
}
function calculaCPFSoma( valor, variacao ) {
	var digito;
	var soma = 0;
	for ( var i=0 ; i<(9 + variacao) ; i++ ) {
		digito = valor.charAt( i );
		if ( ! (digito >= 0 && digito <= 9) )
			return -1;
		soma += digito * ( (10 + variacao) - i );
	}
	soma %= 11;
	soma = soma == 0 || soma == 1 ? 0 : 11 - soma;
	return soma;
}
/* /CPF */

function dataCompletaValida( str ) {
	return str.match( /^\d{1,2}\/\d{1,2}\/\d{4}$/g ) ? true : false;
}

function horaValida( str ) {
	return str.match( /^\d{2}:\d{2}$/g ) ? true : false;
}

function emailValido( str ) {
	return str.match( /^(([^\W]([\w_\.\-])*[^\W])|(\w))@(([\w_\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ) ? true : false;
}

function somenteNumeros( str ) {
	return str.match( /^\d+$/g ) ? true : false;
}

function precoValido( str ) {
	return str.match( /^\d{1,3}((\.){0,1}\d{1,3})*([,]\d{1,2}){0,1}$/g ) ? true : false;
}

function DDDValido( str ){
	return somenteNumeros( str ) && str.length == 2;
}

function telefoneValidoSemDDD( str ){
	return str.match( /^\d{3,4}[\s|-]*\d{4}$/g ) ? true : false;
}

function substituiAspasSimplesEmTodosCampos( formulario ) {
	for ( var i=0 ; i<formulario.elements.length ; i++ )
		if ( formulario.elements[i].value != "" )
			formulario.elements[i].value = formulario.elements[i].value.replace( /[']/g, "`" );
}
function algumSelecionado( campo ) {
	if ( campo.length == undefined )
		return campo.checked
	else
		for ( i=0 ; i < campo.length ; i++ )
			if ( campo[i].checked )
				return true;
	return false ;
 }
function nenhumSelecionado( campo ) {
	return ! algumSelecionado( campo );
}

function formatoDecimalValido( v ) {
	n = new Number( v.replace( ".", "" ).replace( ",", "." ) );
	return ( n+"" != "NaN" );
}

function formatoDecimal( v ) {
	var valorString = v+"";
	var posicaoPonto = valorString.indexOf( "." );
	if ( posicaoPonto < 0 ) {
		valorString += ",00";
	} else {
		if ( valorString.length - posicaoPonto == 2 )
			valorString += "0";
		else if ( valorString.length - posicaoPonto > 2 )
			valorString = valorString.substring( 0, posicaoPonto + 3 );
		valorString = valorString.replace( ".", "," );
	}
	return valorString;
}

function parseFloatComVirgula( v ) {
	return v.replace( ".", "" ).replace( ",", "." );
}
