function SuperTrim( campo ) {
	var s = campo.value;
	s = s.replace( /^\s+|\s+$/g, '' );  //um ou mais espaços no início ou no final da linha
	s = LimpaEspacosDuplos( s );
	var c;
	var temp = "";
	for (var i=0; i<s.length; i++) {
		c = s.charCodeAt(i);
		if (c>31 || c==10 || c==13 || c==9) temp += s[i];
	}
	campo.value = temp;
}

function LimpaEspacosDuplos( s ) {
	var re = /  /g;	//dois espaços
	while ( s.search(re) > -1 ) { s = s.replace( re, ' ' ); };
	return s;
}

function SoAlgarismos( strTexto ) { 
	var s = strTexto ;
	var re = /[^0-9]/	//qualquer coisa que não seja um algarismo
	while ( s.search(re) > -1 ) { s = s.replace( re, '' ); };
	return s;
 }
 
function ValidarData( obj ) {
	var s = new String;
	s = obj.value;
	if ( s == '' ) return true;
	var re = /\d{2}\/\d{2}\/\d{4}/;
	if ( re.test( s ) ) return true
	else {
		alert( 'Digite a data no formato "dd/mm/aaaa".' );
		return false;
		}
}

function EmailOk( campo ) { 
	if ( campo.value == '' ) return true;
	if ( !ValidarEmail( campo.value ) ) {
		alert ( 'E-mail inválido.' );
		return false;
 	} 
 	return true;
 }
 
function TelefoneOk( campo ) { 
	if ( campo.value == '' ) return true;
	if ( !ValidarTelefone( campo.value ) ) { 
		alert ( 'Número de telefone inválido.\nUtilize o formato cel 11 1234-5678.' );
 		return false;
 	} 
	return true;
 }
 
function ValidarTelefone( s ) { 
	return (/^[(]{0,1}(\w{2,}[)]{0,1}[\s\.-]*)+\d{4}$/.test( s ) ); 
}
function MaisDeUmaPalavra( s ) { 
	return (/^\w{2,}\s\w{1,}/.test( s ) ); 
}
function ValidarEmail( s ) { 
	return ( /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/.test( s ) );
 }


function CpfOk( campo ) { 
	var s = campo.value;
 	if ( s == '' ) return true;
	var s = SoAlgarismos( campo.value );
	while ( s.length < 11 ) s = "0" + s;
 	if ( s.length > 11 ) s = s.substr( 0, 11 );
	if ( !VerificaDVcpf( s ) ) {
 		alert ( 'Número de CPF inválido.' );
	 	return false; 
	} 
	var re = /(\d\d\d)(\d\d\d)(\d\d\d)(\d\d)/; //isto formata o CPF !!!
	s = s.replace( re, "$1.$2.$3-$4" );
	campo.value = s;
	return true;
 };

function VerificaDVcpf( s ) {
	var CPFaux = s;
 	NR_CPF = CPFaux.substr( 0, 9 );
	var rcpf2 = CPFaux.substr( 9, 2 );
	if ( ( NR_CPF == null || NR_CPF == 0 ) ) return false;

	if(		 CPFaux == "00000000000" || CPFaux == "00000000191" || CPFaux == "99999999999" 
			|| CPFaux == "11111111111" || CPFaux == "22222222222" || CPFaux == "33333333333"
			|| CPFaux == "44444444444" || CPFaux == "55555555555" || CPFaux == "66666666666"
			|| CPFaux == "77777777777" || CPFaux == "88888888888" ) 
		return false;

 	d1 = 0;
 	for ( i = 0; i < 9; i++ ) d1 += NR_CPF.charAt( i ) * ( 10 - i );
	d1 = 11 - ( d1 % 11 );
	if ( d1 > 9 ) d1 = 0;
	if ( rcpf2.charAt( 0 ) != d1 ) return false;

	d1 *= 2;
	for ( i = 0; i < 9; i++ ) d1 += ( NR_CPF.charAt( i ) * ( 11 - i ) );
	d1 = 11 - ( d1 % 11 );
	if ( d1 > 9 ) d1 = 0;
	if ( rcpf2.charAt( 1 ) != d1 ) return false;
	
 	return true;
 
 }
function CancelarItem( sourceObj, inputDataId ) {
	var sourceTR;
	var s = sourceObj.innerHTML;
	var j = 0;
	if ( (s.toLowerCase()).indexOf('<strike>') >= 0 )
		sourceTR = sourceObj.parentNode;
	else sourceTR = sourceObj;
		
	for ( i = 0; i < sourceTR.cells.length; i++ ) {
		s = sourceTR.cells.item( i ).innerHTML;
		if ( (s.toLowerCase()).indexOf('<strike>') < 0 )
			s = '<strike>' + s + '</strike>';
		else 
			s = s.substr( 8, s.length - 17 );

		var sTemp = 'name="' + inputDataId
		j = s.indexOf( sTemp );
		if ( j > -1 ) {
			j = s.indexOf( inputDataId, j );
			s = s.substr( 0, j ) + inputDataId + 'Deleted' 
					+ s.substr( j + inputDataId.length ) ;
			}

		sourceTR.cells.item( i ).innerHTML = s;
		};

	return true;
};

function CancelarItemWork( sourceObj, inputDataId ) {
	var sourceTR;
	var s = sourceObj.innerHTML;
	sourceTR = sourceObj.parentNode;

	for ( i = 0; i < sourceTR.cells.length; i++ ) {
		s = sourceTR.cells.item( i ).innerHTML;
		if ( (s.toLowerCase()).indexOf('<strike>') < 0 )
			s = '<strike>' + s + '</strike>';
		else s = s.substr( 8, s.length - 17 );
		
		sourceTR.cells.item( i ).innerHTML = s;
	}
	
	var sourceTD = sourceTR.childNodes.item( 0 );
	alert ( sourceTD.childNodes.length );
	for ( i = 0; i < sourceTD.childNodes.length; i++ ) {
		if ( sourceTD.childNodes(i).name == inputDataId )
			sourceTD.childNodes(i).name = inputDataId + 'Deleted'
		
		};

//	var sourceInput = document.getElementById( inputDataId );
//	sourceInput.setAttribute('name', sourceInput.getAttribute('name') + 'Deleted' );
	
	return true;
};
