// [dFilter] - A Numerical Input Mask for JavaScript
// Written By Dwayne Forehand - March 27th, 2003
// Please reuse & redistribute while keeping this notice.

var dFilterStep



function dFilterStrip (dFilterTemp, dFilterMask)
{
    dFilterMask = replace(dFilterMask,'#','');
    for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++)
		{
		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
		}
		return dFilterTemp;
}

function dFilterMax (dFilterMask)
{
 		dFilterTemp = dFilterMask;
    for (dFilterStep = 0; dFilterStep < (dFilterMask.length+1); dFilterStep++)
		{
		 		if (dFilterMask.charAt(dFilterStep)!='#')
				{
		        dFilterTemp = replace(dFilterTemp,dFilterMask.charAt(dFilterStep),'');
				}
		}
		return dFilterTemp.length;
}

function dFilter (key, textbox, dFilterMask)
{
	var aux;

	dFilterNum = dFilterStrip(textbox.value, dFilterMask);
		
	if (key==9)	{
		return true;
	} else if ( key == 8 && dFilterNum.length != 0 ) {
		dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
	} else if ( key == 46 && dFilterNum.length != 0 ) {
		dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
	} else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length<dFilterMax(dFilterMask) ) {
			switch( String(key) ) {
				case "48" : dFilterNum=dFilterNum+"0"; break;
				case "49" : dFilterNum=dFilterNum+"1"; break;
				case "50" : dFilterNum=dFilterNum+"2"; break;
				case "51" : dFilterNum=dFilterNum+"3"; break;
				case "52" : dFilterNum=dFilterNum+"4"; break;
				case "53" : dFilterNum=dFilterNum+"5"; break;
				case "54" : dFilterNum=dFilterNum+"6"; break;
				case "55" : dFilterNum=dFilterNum+"7"; break;
				case "56" : dFilterNum=dFilterNum+"8"; break;
				case "57" : dFilterNum=dFilterNum+"9"; break;
				case "96" : dFilterNum=dFilterNum+"0"; break;
				case "97" : dFilterNum=dFilterNum+"1"; break;
				case "98" : dFilterNum=dFilterNum+"2"; break;
				case "99" : dFilterNum=dFilterNum+"3"; break;
				case "100" : dFilterNum=dFilterNum+"4"; break;
				case "101" : dFilterNum=dFilterNum+"5"; break;
				case "102" : dFilterNum=dFilterNum+"6"; break;
				case "103" : dFilterNum=dFilterNum+"7"; break;
				case "104" : dFilterNum=dFilterNum+"8"; break;
				case "105" : dFilterNum=dFilterNum+"9"; break;
			}
			
        //dFilterNum=dFilterNum+String(key);
		//dFilterNum=dFilterNum+String.fromCharCode(key);
		}

		var dFilterFinal='';
    for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++)
		{
        if (dFilterMask.charAt(dFilterStep)=='#')
				{
					  if (dFilterNum.length!=0)
					  {
				        dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
					      dFilterNum = dFilterNum.substring(1,dFilterNum.length);
					  }
				    else
				    {
				        dFilterFinal = dFilterFinal + "";
				    }
				}
		 		else if (dFilterMask.charAt(dFilterStep)!='#')
				{
				    dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep); 			
				}
//		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
		}


		textbox.value = dFilterFinal;
    return false;
}

function replace(fullString,text,by) {
// Replaces text with by in string
    var strLength = fullString.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return fullString;

    var i = fullString.indexOf(text);
    if ((!i) && (text != fullString.substring(0,txtLength))) return fullString;
    if (i == -1) return fullString;

    var newstr = fullString.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(fullString.substring(i+txtLength,strLength),text,by);

    return newstr;
}


// Cria Campo profissao
function criarCampoProfissao(idDoCampo, id ){

	var flag = false;

	// Se for select (combobox)

		// Pega o id do select e depois o id do option do select para saber se cria campo dinamico na tela
		var objSelecionado = document.getElementById( idDoCampo );
		var criar = objSelecionado[ objSelecionado.selectedIndex ].getAttribute('id');
		var nome = objSelecionado.options[objSelecionado.selectedIndex].text;
	// Se for checkbox

		// id volta a ter s o valor da pergunta para montar o nome dos componentes corretamente
		//id = subTexto( id, '-' );

	var chave = nome + id;
	if ( nome =='Outra' ){

		// Cria o Label do campo que ser exibido
		var Local 		= document.getElementById( "componente" );
		var elemento 	= document.createElement("span");
		var texto 		= document.createTextNode(nome+": ");
		
		if ( !document.getElementById( id ) ) {
			elemento.appendChild(texto);
			elemento.setAttribute("id", "texto"+id );
			Local.appendChild(elemento);

			// Cria o campo texto

			var Local 		= document.getElementById( "componente" );
			var elemento 	= document.createElement("input");
			elemento.setAttribute("type", "text");
			elemento.setAttribute("size", "33");
			elemento.setAttribute("maxlength", "50");
			elemento.setAttribute("value", "");
			elemento.setAttribute("id", id );
			elemento.setAttribute("name", id );
			Local.appendChild(elemento);

			// Cria a tag <br> para dar quebra de linha no caso de mais componentes
			var Local 		= document.getElementById( "componente" );
			var elemento 	= document.createElement("br");
			Local.appendChild(elemento);

		}
			return true;


	}else{
		// Apaga o componente selecionado;
		var Local 		= document.getElementById( "componente"  );
		Local.innerHTML = "";
		//campos[ i ] = '';
		//flag = true;
		return false;
	}
}
