
function removeItem(item, table, format) {
  	var reindex = 0;
  	var index = table.getElementsByTagName("td");
	table.removeChild(item);
  	
  	if(format){  	  	
	  	for(var i=0;i<index.length;i++) {
			if(index[i].id.indexOf(format)!=-1){
				reindex+=1;
				index[i].innerHTML=reindex;
			}
	  	}
  		$('index_'+ format).value=reindex;
  	}
	return false;
}

//Adiciona Experiencia profissional
function addExperience(list) 
{   
	var val;
	$$("#jobCandidate input").each(function(input){
		if(input.type=="text"){
			val = $F(input); 
			input.value=val.replace("#","");
		}
	});

	var msg = "";	
    var mydate = new Date();
	var myday = mydate.getDate();
	var mymonth = mydate.getMonth();
	var myyear = mydate.getFullYear();
	var dtCh= "/";
	var mes = mymonth + 1;
	
	//monta data para inicio de experiencia
	var dti = $F('experience_date_start');
	var dtiMonth=dti.substr(0,2);
	var dtiYear=dti.substr(3);	
	anodti=parseInt(dtiYear);
	mesdti=dtiMonth;
	
	//monta data para termino de experiencia
	var dte = $F('experience_date_end');
	var dteMonth=dte.substr(0,2);
	var dteYear=dte.substr(3);	
	anodte=parseInt(dteYear);
	mesdte=dteMonth;	
	
	if($F('experience_company').replace(/^\s+|\s+$/, '')=="")
		msg += "Campo empresa não pode estar vazio. <br>Company field cannot be empty.<br><br>"
	if($F('experience_city').replace(/^\s+|\s+$/, '')=="") 
		msg += "Campo cidade não pode estar vazio. <br>ity field cannot be empty.<br><br>"			
	if($F('experience_position').replace(/^\s+|\s+$/, '')=="") 
		msg += "Campo cargo não pode estar vazio. <br>Position field cannot be empty.<br><br>"
	if($F('experience_description').replace(/^\s+|\s+$/, '')=="") 
		msg += "Campo atribuições não pode estar vazio. <br>Job field cannot be empty.<br><br>"
	
	
	//valida os campos de datas
	if($F('experience_date_start').replace(/^\s+|\s+$/, '')=="") {
		msg += "Campo início não pode estar vazio. <br>Start date field cannot be empty."
	} else if($("experience_date_start").value.length>0 && !checkDateMMyyyy($("experience_date_start"))){
		msg +=  "Campo data de início com valor inválido. <br>Start date with invalid value."
	}else if($("experience_date_end").value.length>0 && !checkDateMMyyyy($("experience_date_end"))){
		msg += "Campo data de término com valor inválido. <br>End date with invalid value."
	}//compara as duas datas 
	 else if(!compareDateMMyyyy($("experience_date_start"), $("experience_date_end"))){
		msg += "Data de início não pode ser maior que data de término. <br>Start date cannot be greater than end date."	
	}//compara data de inicio com dia atual
	 else if((dtiYear >= myyear && dtiMonth > mes) || dtiYear > myyear){
		msg += "Data de início não pode ser maior que data atual. <br>Start field cannot be empty."
	}//compara data de inicio com 1900, data suportada pelo banco
	else if(dtiYear < 1900){
		msg +=  "Campo data de início com valor inválido. <br>Start date with invalid value."
	}//compara data de témino com dia atual
	 else if((anodte >= myyear && mesdte > mes) || anodte > myyear){
	 	msg += "Data de término não pode ser maior que data atual. <br>End date can not be larger than the current date"
	 }
		
	
	if(msg.length>0){
		$('msg_experience').innerHTML = "<font color='#CC0000'>" + msg + "</font>";
		return false;	
	}

	var listInner = list.getElementsByTagName("tbody")[0];
	var tr = document.createElement("tr");
	var tr1 = document.createElement("tr");
	var tr2 = document.createElement("tr");
	var tds = document.createElement("td");
	var tr3 = document.createElement("tr");
	var td1 = document.createElement("td");
	var td2 = document.createElement("td");
	var td3 = document.createElement("td");
	var td4 = document.createElement("td");
	var td5 = document.createElement("td");
	var td6 = document.createElement("td");
	
	
	td1.appendChild(document.createTextNode($F('experience_company')));
	td2.appendChild(document.createTextNode($F('experience_city') + ' - ' + $('experience_country').options[$('experience_country').selectedIndex].innerHTML));
	td3.appendChild(document.createTextNode("de " + $F('experience_date_start') + " a " + $F('experience_date_end')));
	td4.appendChild(document.createTextNode($F('experience_position')));
	td5.appendChild(document.createTextNode($F('experience_description')));
	
	tr1.className = "thead";
	tr2.className = "sub";
	td1.width = "300";
	td2.width = "300";
	td2.align = "right";
	td4.align = "right";
	td5.colSpan = "2";
	td5.style.fontStyle = "italic";
	
	var input = document.createElement("input");
	input.setAttribute("type", "hidden");
	input.style.display = "none";
	//alert(replaceAll($F('experience_description'), "#", ""));
	input.setAttribute("value",$F('experience_company') + "#" + $F('experience_city') + "#" + $F('experience_country') + "#" + $F('experience_date_start') + "#" + $F('experience_date_end') + "#" + $F('experience_position') + "#" + replaceAll($F('experience_description'), "#", ""));
	td6.appendChild(input);
		
	var a = document.createElement("a");
	a.appendChild(document.createTextNode("x"));
	a.setAttribute("title", "excluir");
	a.setAttribute("href","#");
	a.className = "excluir";
	a.onclick = function(){	
		if(confirm('Deseja realmente excluir este item?'))
			removeItem(this.parentNode.parentNode.parentNode, this.parentNode.parentNode.parentNode.parentNode); return false;
	};
	td6.appendChild(a);
	
	tr1.appendChild(td1);
	tr1.appendChild(td2);
	tr1.appendChild(tds);
	tr2.appendChild(td3);
	tr2.appendChild(td4);
	tr3.appendChild(td5);
	tr3.appendChild(td6);
	tr.appendChild(tr1);
	tr.appendChild(tr2);
	tr.appendChild(tr3);
	listInner.appendChild(tr);
	
		
	//apaga os campos do form
	$('experience_company').value="";
	$('experience_city').value="";		
	$('experience_date_start').value="";
	$('experience_date_end').value="";	
	$('experience_position').value="";
	$('experience_company').value="";
	$('experience_description').value="";
	$('msg_experience').innerHTML = "";
	
	if(list.style.display=="none")
		list.style.display = "block";
		return false
}
//Salva Experiencia profissional
function saveExperience() 
{  
	erro=false;
	var experiences = [];
	var myStr = "@@@";
	var table= $("table_experience");
  	var hiddens = table.getElementsByTagName("input");
  	var isFirst = true;
	for(var i=0;i<hiddens.length;i++) 
	{
		if(hiddens[i].type == "hidden")
		{
     		experiences.push(hiddens[i].value);
     		if(isFirst) {
     			isFirst = false;
     			myStr += hiddens[i].value;
     		} else {
     			myStr +=  "þ" + hiddens[i].value;
     		}
		}
	}
	
	var form = $("jobCandidate");
	$("resume.professionalExperiences").value = myStr;
	
	//verifica se usuário preencheu algum campo mas não adicionou a experiência
	  if($F("experience_company")!="" || $F("experience_city")!="" || $F("experience_date_start")!="" || $F('experience_date_end') || $F('experience_position') || $F('experience_description')) 
	  {  
	  	 erro=true;
		 alert("Há campos de experiência profissional preenchidos e que não foram adicionados.\n Por favor clique em adicionar");
	  }
	
	  if(erro==false)
	  {  
	  	erro=false;
		//verifica se foi adicionado experiencia profissional
		if(experiences.length==0)
		{   
			if(!confirm("Não foram adicionados dados de experiência profissional.\n Tem certeza que deseja concluir?"))
				return false;
		}
		form.submit();
	  }	
}

function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}

//adiciona formação academica
function addFormation(list) {
	var val;
	$$("#jobCandidate input").each(function(input){
		if(input.type=="text"){
			val = $F(input); 
			input.value=replaceAll(val,"#","");
		}
	});
	
	var nF = $F('index_formation')*1;
	var listInner = list.getElementsByTagName("tbody")[0];
	var msg = "";
	var dt = $F('formation_date_degree');
	var dtCh= "/";
	var minYear=1900;
	var strMonth=dt.substr(0,2);
	var strYear=dt.substr(3);
    var mydate = new Date();
	var myyear= mydate.getFullYear(); 
        
	ano=parseInt(strYear);
	mes= strMonth;
	var soma = 5 + myyear;
	
	if($('formation_degree').selectedIndex==0)
		msg += "Grau deve ser selecionado.<br>Select one degree.<br><br>"
	if($F('formation_institution')=="") 
		msg += "Campo instituição deve ser preenchido.<br>Institution field cannot be empty.<br><br>"
	if($F('formation_course')=="") 
		msg += "Campo curso deve ser preenchido.<br>Course field cannot be empty.<br><br>"
	if($F('formation_city')=="")
		msg += "Campo cidade deve ser preenchido.<br>City field cannot be empty.<br><br>"
	if($F('formation_date_degree') == ""){
		msg +="Campo data de conclusão com valor inválido.<br>Conclusion field with invalid value.";
	}else if (strMonth.length<1 || mes<1 || mes>12 || strYear.length != 4 || ano<minYear || ano>soma ){
		msg += "A data "+mes+"/"+ano+" não é uma data valida.<br>Conclusion field with invalid value.";
	}
	if(msg.length>0){
		$('msg_formation').innerHTML="<font id='error_msg' color='#CC0000'>" + msg + "</font>";
		return false;	
	}

 
	nF += 1;
	var tr = document.createElement("tr");
	var td0 = document.createElement("td");
	var td1 = document.createElement("td");
	var td2 = document.createElement("td");
	var td3 = document.createElement("td");
	var td4 = document.createElement("td");
	var td5 = document.createElement("td");
	var td6 = document.createElement("td");
	var td7 = document.createElement("td");

	var licenciatura = $('formation_licenciatura').checked;
	var input = document.createElement("input");
	input.setAttribute("type", "hidden");
	input.style.display = "none";
	input.setAttribute("value",$F('formation_degree') + "#" + $F('formation_institution') + "#" + $F('formation_course') + "#" + $F('formation_date_degree') + "#" + $F('formation_city') + "#" + $F('formation_country') + "#" + licenciatura);
	td6.appendChild(input);
	
	td0.appendChild(document.createTextNode(nF));
	td0.setAttribute("id", "formation" + nF)
	td1.appendChild(document.createTextNode($('formation_degree').options[$('formation_degree').selectedIndex].innerHTML));
	td2.appendChild(document.createTextNode($F('formation_institution')));
	td3.appendChild(document.createTextNode($F('formation_course')));
	td4.appendChild(document.createTextNode($F('formation_date_degree')));
	td5.appendChild(document.createTextNode($F('formation_city')));
	td6.appendChild(document.createTextNode($('formation_country').options[$('formation_country').selectedIndex].innerHTML));

	var a = document.createElement("a");
	a.appendChild(document.createTextNode("x"));
	a.setAttribute("title", "excluir");
	a.setAttribute("href","#");
	a.className = "excluir";
	a.onclick = function(){	
		if(confirm('Deseja realmente excluir este item?'))
			removeItem(this.parentNode.parentNode, this.parentNode.parentNode.parentNode, 'formation'); return false;
	};
	td7.appendChild(a);

	tr.appendChild(td0);
	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	tr.appendChild(td4);
	tr.appendChild(td5);
	tr.appendChild(td6);
	tr.appendChild(td7);
	listInner.appendChild(tr);
	
	$('index_formation').value=nF;
	 
	$('formation_degree').selectedIndex = 0;
	$('formation_date_degree').value = "";
	$('formation_course').value = "";
	$('formation_institution').value = "";
	$('formation_city').value = "";
	$('msg_formation').innerHTML= "" ;
	
	if(list.style.display=="none"){
		list.style.display = "block";
	return false;
	}
}

//adiciona curso
function addCourse(list)
{
	var val;
	$$("#jobCandidate input").each(function(input){
		if(input.type=="text"){
			val = $F(input); 
			input.value=val.replace("#","");
		}
	});
	
	var nC = $F('index_courses')*1;
	var listInner = list.getElementsByTagName("tbody")[0];
	var msg = "";
	var dt = $F('course_date_degree');
	var dtCh= "/";
	var minYear=1900;
	var strMonth=dt.substr(0,2);
	var strYear=dt.substr(3);
    var mydate = new Date();
	var myyear= mydate.getFullYear(); 
        
	ano=parseInt(strYear);
	mes=strMonth;
	
	var soma = 5 + myyear;
		
	if($F('course_name')=="") 
		msg += "Campo curso deve ser preenchido.<br>Course field cannot be empty.<br><br>"
	if($F('course_institution')=="") 
		msg += "Campo instituição deve ser preenchido.<br>Institution field cannot be empty.<br><br>"
	if($F('course_city')=="")
		msg += "Campo cidade de conclusão deve ser preenchido.<br>City field cannot be empty.<br><br>"
	if($F('course_date_degree') == ""){
		msg +="Campo data de conclusão com valor inválido.<br>Conclusion field with invalid value.";
	}else if (strMonth.length<1 || mes<1 || mes>12 || strYear.length != 4 || ano<minYear || ano>soma ){
		msg += "A data "+mes+"/"+ano+" não é uma data valida.<br>Conclusion field with invalid value.";
	}
	if(msg.length>0){
		$('msg_courses').innerHTML = "<font color='#CC0000'>"+msg+"<font>";
		return false;	
	}	
	
	nC += 1;
	
	var tr = document.createElement("tr");
	var td0 = document.createElement("td");
	var td1 = document.createElement("td");
	var td2 = document.createElement("td");
	var td3 = document.createElement("td");
	var td4 = document.createElement("td");
	var td5 = document.createElement("td");
	var td6 = document.createElement("td");

	var input = document.createElement("input");
	input.setAttribute("type", "hidden");
	input.style.display = "none";
	input.setAttribute("value",$F('course_name') + "#" + $F('course_institution') + "#" + $F('course_city') + "#" + $F('course_country') + "#" + $F('course_date_degree'));
	td6.appendChild(input);
	
	td0.appendChild(document.createTextNode(nC));
	td0.setAttribute("id", "courses" + nC)
	td1.appendChild(document.createTextNode($F('course_name')));
	td2.appendChild(document.createTextNode($F('course_institution')));
	td3.appendChild(document.createTextNode($F('course_date_degree')));
	td4.appendChild(document.createTextNode($F('course_city')));
	td5.appendChild(document.createTextNode($('course_country').options[$('course_country').selectedIndex].innerHTML));

	var a = document.createElement("a");
	a.appendChild(document.createTextNode("x"));
	a.setAttribute("title", "excluir");
	a.setAttribute("href","#");
	a.className = "excluir";
	a.onclick = function(){	
		if(confirm('Deseja realmente excluir este item?'))
			removeItem(this.parentNode.parentNode, this.parentNode.parentNode.parentNode, 'courses'); return false;
	};
	td6.appendChild(a);
	tr.appendChild(td0);
	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	tr.appendChild(td4);
	tr.appendChild(td5);
	tr.appendChild(td6);
	listInner.appendChild(tr);	
	if(list.style.display=="none")
		list.style.display = "block";

	$('index_courses').value=nC;
	
	$('course_name').value = "";
	$('course_institution').value = "";
	$('course_city').value = "";
	$('course_date_degree').value = "";
	$('msg_courses').innerHTML = "" ;
	
	if(list.style.display=="none")	    
		list.style.display = "block";
	return false;

}

//adiciona idioma
function addSkill(list){
	var val;
	$$("#jobCandidate input").each(function(input){
		if(input.type=="text"){
			val = $F(input); 
			input.value=val.replace("#","");
		}
	});
	
	var nS = $F('index_skills')*1;
	var listInner = list.getElementsByTagName("tbody")[0];
	var msg = "";
	var dt = $F('skill_date');
	var dtCh= "/";
	var minYear=1900;
	var strMonth=dt.substr(0,2);
	var strYear=dt.substr(3);
    var mydate = new Date();
	var myyear= mydate.getFullYear(); 
        
	ano=parseInt(strYear);
	mes=strMonth;
	
	var soma = 5 + myyear;
		
	
	if($('skill_languages').selectedIndex==0)
		msg += "Idioma deve ser selecionado.<br>Select one languade.<br><br>";
	if($('skill_level').selectedIndex==0)
		msg += "Nível deve ser selecionado.<br>Select one level.<br><br>";
	if($F('skill_date') == ""){
		msg +="Campo data de conclusão com valor inválido.<br>Conclusion field with invalid value.";
	}else if (strMonth.length<1 || mes<1 || mes>12 || strYear.length != 4 || ano<minYear || ano>soma ){
		msg += "A data "+mes+"/"+ano+" não é uma data valida.<br>Conclusion field with invalid value.";
	}
	
	if(msg.length>0){
		$('msg_skills').innerHTML = "<font color='#CC0000'>" + msg + "</font>";
		return false;	
	}
	
	nS += 1;
	
	var tr = document.createElement("tr");
	var td0 = document.createElement("td");
	var td1 = document.createElement("td");
	var td2 = document.createElement("td");
	var td3 = document.createElement("td");
	var td4 = document.createElement("td");
	var td5 = document.createElement("td");
	
	var input = document.createElement("input");
	input.setAttribute("type", "hidden");
	input.style.display = "none";
	input.setAttribute("value",$F('skill_languages')+ "#" + $F('skill_level') + "#" + $F('skill_certification') + "#" + $F('skill_date') + "#");
	td5.appendChild(input);
	td0.appendChild(document.createTextNode(nS));
	td0.setAttribute("id", "skills" + nS)
	td1.appendChild(document.createTextNode($('skill_languages').options[$('skill_languages').selectedIndex].innerHTML));
	td2.appendChild(document.createTextNode($('skill_level').options[$('skill_level').selectedIndex].innerHTML));
	if($('skill_certification').selectedIndex==0)
		td3.appendChild(document.createTextNode("não selecionado."));
	else
		td3.appendChild(document.createTextNode($('skill_certification').options[$('skill_certification').selectedIndex].innerHTML));
	td4.appendChild(document.createTextNode(" " +$F('skill_date')));

	var a = document.createElement("a");
	a.appendChild(document.createTextNode("x"));
	a.setAttribute("title", "excluir");
	a.setAttribute("href","#");
	a.className = "excluir";
	a.onclick = function(){	
		if(confirm('Deseja realmente excluir este item?'))
			removeItem(this.parentNode.parentNode, this.parentNode.parentNode.parentNode, 'skills'); return false;
	};
	
	td5.appendChild(a);

	tr.appendChild(td0);
	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	tr.appendChild(td4);
	tr.appendChild(td5);
	listInner.appendChild(tr);
	if(list.style.display=="none")
		list.style.display = "block";
	
	$('index_skills').value=nS;
	
	$('skill_languages').selectedIndex = 0;
	$('skill_level').selectedIndex = 0;
	$('skill_certification').selectedIndex = 0;
	$('skill_date').value = "";
	$('msg_skills').innerHTML = "" ;
	$('msg_courses').innerHTML = "" ;
	
	if(list.style.display=="none")	    
		list.style.display = "block";
	return false;
}


//salva formação
function saveFormation()
{ erro=false;
	var formations = [];
	var courses = [];
	var skills = [];	
	  	
	var table= $("form_formation");
  	var hiddens = table.getElementsByTagName("input");
  	
	for(var i=0;i<hiddens.length;i++) 
	{
		if(hiddens[i].type == "hidden")
		{
     		formations.push(hiddens[i].value);
		}
	}
	
	var table_courses= $("table_courses");
	var hiddens_courses = table_courses.getElementsByTagName("input");
	
	for(var i=0;i< hiddens_courses.length;i++) 
	{
		if(hiddens_courses[i].type == "hidden")
		{
     		courses.push(hiddens_courses[i].value);
		}
	}
	   
	var table_skills= document.getElementById("table_language_skills");
	var hiddens_skills = table_skills.getElementsByTagName("input");
   
	for(var i=0;i< hiddens_skills.length;i++) 
	{
		if(hiddens_skills[i].type == "hidden")
		{
			skills.push(hiddens_skills[i].value);
		}
	}
    
	//verifica se usuário preecheu algum campo em formação academica
	if($F("formation_institution")!="" || $F("formation_course")!="" || $F("formation_city")!="" || $F("formation_date_degree")!="") 
	{ 
	  erro=true;
	  alert("Há campos da formação acadêmica preenchidos e que não foram adicionados.\nPor favor clique em adicionar.");
		//if(!confirm("Há campos da formação acadêmica preenchidos e que não foram adicionados. Tem certeza que deseja continuar?"))
			//return false;
	}
	
	//verifica se usuário preencheu algum campo em cursos
	if($F("course_name")!="" || $F("course_institution")!="" || $F("course_city")!="" || $F("course_date_degree")!="")
	{
		erro=true;
		alert("Há campos de cursos preenchidos e que não foram adicionados.\nPor favor clique em adicionar");
	      //if(!confirm("Há campos de cursos preenchidos e que não foram adicionados. Tem certeza que deseja continuar?"))
			//return false;
	}
	
	//verifica se usuário preecheu algum campo em idiomas
	if($("skill_certification").selectedIndex!=0 || $F("skill_date")!="" || $("skill_languages").selectedIndex!=0 || $("skill_level").selectedIndex!=0)
	{   
		erro=true;
		alert("Há campos de idiomas preenchidos e que não foram adicionados.\nPor favor clique em adicionar");
	     //if(!confirm("Há campos de idiomas preenchidos e que não foram adicionados. Tem certeza que deseja continuar?"))
			//return false;
	}
	
	$("resume.academicFormations").value = formations;
	$("resume.courses").value = courses;
	$("resume.languageSkills").value = skills;
	
//se os campos de formação academica, cursos e idiomas tiverem em branco, 
//solicita um ok do usuario e redireciona para Experiência Profissional   
	var form = $("jobCandidate");
	var cont = "";
	 if(erro==false)
	   {
	  if(formations.length==0)
	  {
	    cont+="Nenhuma formação academica não foi adicionada.\n\n";
	  } 
 
	  if(courses.length==0)
	  {
	  	cont+="Nenhum  cursos não foi adicionado.\n\n";
	  }

	  if(skills.length==0)
	  {
	  	cont+="Nenhum indioma foi adicionado.\n\n";
	  }

	  if(cont.length>0)
	  {erro=false;
	  	if(!confirm(cont + "Deseja continuar mesmo assim."))
	  	return false;
	  }
	  
	    form.submit();
       }
}


function txtBoxFormat(objeto, sMask, evtKeyPress) 
{
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if(document.all) { // Internet Explorer
		nTecla = evtKeyPress.keyCode;
	} else if(document.layers) { // Nestcape
		nTecla = evtKeyPress.which;
	} else {
		nTecla = evtKeyPress.which;
		if (nTecla == 8 || nTecla == 0) {
			return true;
		}
	}

    sValue = objeto.value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; }
      else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }

      i++;
    }

    objeto.value = sCod;
    if (nTecla != 8) { // backspace
      if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); } 
      else { // qualquer caracter...
        return true;
      } 
    }
    else {
      return true;
    }
  }
  
function changeForm(e) {
	var school = $("experience_which")
	if(e.value == "true")
		school.style.display = "block";
	else
		school.style.display = "none";
}

function findStates(id, lista) {
	careerService.getStatesByCountryCode(id,
		{callback:function(dataFromServer) {
			callback_listaItems(dataFromServer, lista);
		}
	});
}

function callback_listaItems(objs, lista) {
	//remove todos itens do select
	DWRUtil.removeAllOptions(lista);
	var opt = document.createElement("option");
	opt.appendChild(document.createTextNode("selecione..."));
	opt.setAttribute("value", -1);
	lista.appendChild(opt);
	verifyCountry();
	
	objs.each(function(element){
		var opt = document.createElement("option");
		opt.value = element.id;
		opt.appendChild(document.createTextNode(element.name));
		lista.appendChild(opt);
	});	
}

function verifyCountry() {	
	if($('nativeCountry').value=='BR')
		$('permission').style.display = 'none';
	else
		$('permission').style.display = 'block';
}

/* para fazer um-dois entre o estado selecionado e campo cidade */
function showAreas(id) {
	//se id=26, é estado São Paulo
	if(id==26) {
		$("city").style.display = "none";
		$("spAreas").style.display = "block";
	} else if(id=="24") {
		$("city").style.display = "block";
		$("city").value = "";
		$("spAreas").style.display = "none";
	} else {
		$("city").style.display = "block";
		$("spAreas").style.display = "none";
	}
}

function insertCity(value) {
	if(value=="outracidade") {
		$("city").style.display = "block";
		$("city").value = "";
	} else {
		$("city").value = value;
		$("city").style.display = "none";
	}
}




function checkDate(input){
	//Data deve estar no formato dd/MM/yy ou dd/MM/yyyy
	var returnval=true
		
	//ignora a verificação se o campo não estiver preenchido
	if(input.value.length>0){
		//cria e valida a var date
		var dayfield=input.value.split("/")[0]
		var monthfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		if(yearfield && yearfield.length==2) yearfield="20"+yearfield 
			
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false
		else
			returnval=true
	}
	return returnval
}

function checkDateMMyyyy(input){
	//Data deve estar no formato MM/yy ou MM/yyyy
	var returnval=true
		
	//ignora a verificação se o campo não estiver preenchido
	if(input.value.length>0){
		//cria e valida a var date
		var monthfield=input.value.split("/")[0]
		var yearfield=input.value.split("/")[1]
		if(yearfield && yearfield.length==2) yearfield="20"+yearfield 
			
		var dayobj = new Date(yearfield, monthfield-1)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false
		else
			returnval=true
	}
	return returnval
}

function compareDate(start, finish){
	//Datas devem estar no formato dd/MM/yy ou dd/MM/yyyy
	var returnval=true
		
	//ignora a verificação se os dois campos não estiverem preenchidos
	if(start.value.length>0 && finish.value.length>0 ){
		//cria e valida a var date da data inicial	
		var dayfieldStart=start.value.split("/")[0]
		var monthfieldStart=start.value.split("/")[1]
		var yearfieldStart=start.value.split("/")[2]
		if(yearfieldStart && yearfieldStart.length==2) yearfieldStart="20"+yearfieldStart 
		var dayStart = new Date(yearfieldStart, monthfieldStart-1, dayfieldStart)
	
		if ((dayStart.getMonth()+1!=monthfieldStart)||(dayStart.getDate()!=dayfieldStart)||(dayStart.getFullYear()!=yearfieldStart))
			returnval=false
		else
			returnval=true
		
		//cria e valida a var date da data final	
		var dayfieldFinish=finish.value.split("/")[0]
		var monthfieldFinish=finish.value.split("/")[1]
		var yearfieldFinish=finish.value.split("/")[2]
		if(yearfieldFinish && yearfieldFinish.length==2) yearfieldFinish="20"+yearfieldFinish 
		var dayFinish = new Date(yearfieldFinish, monthfieldFinish-1, dayfieldFinish)		
		
		if ((dayFinish.getMonth()+1!=monthfieldFinish)||(dayFinish.getDate()!=dayfieldFinish)||(dayFinish.getFullYear()!=yearfieldFinish))
			returnval=false
		else
			returnval=true
			
		// compara se a data inicial é maior que a final
		if (dayStart >= dayFinish)
			returnval=false
		else
			returnval=true
	}
	return returnval	
}

function compareDateMMyyyy(start, finish){
	//Datas devem estar no formato MM/yy ou MM/yyyy
	var returnval=true
		
	//ignora a verificação se os dois campos não estiverem preenchidos
	if(start.value.length>0 && finish.value.length>0 ){
		//cria e valida a var date da data inicial	
		var monthfieldStart=start.value.split("/")[0]
		var yearfieldStart=start.value.split("/")[1]
		if(yearfieldStart && yearfieldStart.length==2) yearfieldStart="20"+yearfieldStart 
		var dayStart = new Date(yearfieldStart, monthfieldStart-1)
	
		if ((dayStart.getMonth()+1!=monthfieldStart)||(dayStart.getFullYear()!=yearfieldStart))
			returnval=false
		else
			returnval=true
		
		//cria e valida a var date da data final	
		var monthfieldFinish=finish.value.split("/")[0]
		var yearfieldFinish=finish.value.split("/")[1]
		if(yearfieldFinish && yearfieldFinish.length==2) yearfieldFinish="20"+yearfieldFinish 
		var dayFinish = new Date(yearfieldFinish, monthfieldFinish-1)		
		
		if ((dayFinish.getMonth()+1!=monthfieldFinish)||(dayFinish.getFullYear()!=yearfieldFinish))
			returnval=false
		else
			returnval=true
			
		// compara se a data inicial é maior que a final
		if (dayStart >= dayFinish)
			returnval=false
		else
			returnval=true
	}
	return returnval	
}

function compareDateWithToday(input){
	//Data deve estar no formato dd/MM/yy ou dd/MM/yyyy
	var returnval=true
	
	//ignora a verificação se os dois campos não estiverem preenchidos
	if(input.value.length>0){
		//cria e valida a var date da data inicial	
		var dayfield=input.value.split("/")[0]
		var monthfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		if(yearfield && yearfield.length==2) yearfield="20"+yearfield 
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
	
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false
		else
			returnval=true
		
		var currentDay = new Date()
			
		// compara se a data inicial é maior que a final
		if (dayobj > currentDay)
			returnval=false
		else
			returnval=true		
	}
	return returnval	
}

function compareDateWithTodayMMyyyy(input){
	//Data deve estar no formato MM/yy ou MM/yyyy
	var returnval=true
	
	//ignora a verificação se os dois campos não estiverem preenchidos
	if(input.value.length>0){
		//cria e valida a var date da data inicial	
		var monthfield=input.value.split("/")[0]
		var yearfield=input.value.split("/")[4]
		if(yearfield && yearfield.length==2) yearfield="20"+yearfield 
		var dayobj = new Date(yearfield, monthfield-1)
	
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getFullYear()!=yearfield))
			returnval=false
		else
			returnval=true
		
		var currentDay = new Date()
			
		// compara se a data inicial é maior que a final
		if (dayobj > currentDay)
			returnval=false
		else
			returnval=true		
	}
	return returnval	
}


 function validarData(){
 	            var dt = $F('formation_date_degree');
				var dtCh= "/";
				var minYear=1900;
				var maxYear=2100;
				var strMonth=dt.substr(0,2);
				var strYear=dt.substr(3);
				//var daysInMonth = DaysArray(12);
				ano=parseInt(strYear);
				mes=strMonth;
				if (strMonth.length<1 || mes<1 || mes>12){
					alert("Campo data de conclusão deve ser preenchido.\nConclusion field cannot be empty.\n\n");
					return false
				}
				if (strYear.length != 4 || ano==0 || ano<minYear || ano>maxYear){
					alert("Campo data de conclusão com valor inválido.\nConclusion field with invalid value.\n\n");
					return false
				}
			    
			 }
			 
function EntityHtml(){
	var val;
	$$("#jobCandidate input").each(function(input){
		if(input.type=="text"){
			val = $F(input); 
			input.value=val.replace("#","");
		}
	});
	$('jobCandidate').submit();
}
