/*******************************************************************************
 * This file is part of Educatio.
 *
 *     Educatio is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     Educatio is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 *     You should have received a copy of the GNU General Public License
 *     along with Educatio.  If not, see <http://www.gnu.org/licenses/>.
 *     
 *     Authors:
 *           Filipe Marinho de Brito - filipe.marinho.brito@gmail.com
 *           Rodrigo de Souza Ataides - rodrigoataides@gmail.com
 *******************************************************************************/
$(document).ready(function(){
	
	updateCountdown();
	$('#atividadesRealizadas').on('input', updateCountdown);
	
	
	//BOTAO ENVIAR
	$("#salvarExperienciaprofissionalBtn_submitBtn").button().click(function(){ submitExperienciaprofissional(); });
	//VALIDACAO
	$("#formExperienciaprofissional").validationEngine('attach');
	
	var periodoInicioPicker = datePickerMesAno("periodoInicio");
	var periodoFimPicker = datePickerMesAno("periodoFim");
	
	loadToComboBoxUrl("#pais","Pais/combo/nome"); 
	
	$("#pais").change(function(){
		$("#estado").combobox('value','');
		loadToComboBoxUrlfieldDescricao("#estado","Estado/combo/uf?pais="+$("#pais").combobox('value'), "uf");
	});
	
	$("#estado").change(function(){ 
		$("#municipio").combobox('value','');
		loadToComboBoxUrlfieldDescricao("#municipio","Municipio/combo/nome?estado="+$("#estado").combobox('value'), "nome")
	});	

	$("#pais").change(function(){
		if($("#pais_input").val()!="Brasil"){
			$("#estadoEstrangeiro").val("");
			$("#estadoEstrangeiro").css("display", "block");
			$("#estado").combobox('value',-1);
			$("#municipio").combobox('value',-1);
			$("#municipioExperiencia").css("display", "none");
		}else{
			$("#estado").combobox('value',-1);
			$("#municipio").combobox('value',-1);
			$("#estadoEstrangeiro").css("display", "none");
			$("#municipioExperiencia").css("display", "block");
		}
	});
	
	
	$('#diasAtuais').click(function() {
		var $this = $(this);
		 if ($this.is(':checked')) {
			$("#periodoFim").val("");
			$("#liperiodoFim").fadeOut('slow');
			$("#periodoFim").prop('readonly', true);
		 } else {
			 $("#liperiodoFim").fadeIn('slow');
			$("#periodoFim").prop('readonly', false);
		}
	});

	//inicializar o SubDataGrid. DataGrid do Sub-Formulario.
	listarRamoatuacao();

});

//TRATAMENTO DA ACAO NO ONSUBMIT
function submitExperienciaprofissional(){
	var valido = $("#formExperienciaprofissional").validationEngine('validate');
	if(valido!=false){
		if(  $("#"+ $(".ui-dialog:visible").last().attr('aria-describedby')).attr('innerObject') === 'true' ){
			submitFunctionPopUpCriarExperienciaprofissional();
		} else{
			if( $("#formExperienciaprofissional #id").val() =="" ){
				salvarExperienciaprofissional();
			}else{
				atualizarExperienciaprofissional();
			}
		}
	}
}
	
function submitFunctionPopUpCriarExperienciaprofissional(){
		var lastModalID = $(".ui-dialog:visible").last().attr('aria-describedby');
		try{$("#"+lastModalID).dialog('close');
		$("#"+lastModalID).dialog('destroy');
		$("#"+lastModalID).remove();} catch(e){}
}

//INICIO - METODOS PARA SALVAR 
function salvarExperienciaprofissional(){
	var experienciaprofissional = popularExperienciaprofissional();
	salvar('formExperienciaprofissional', 'ExperienciaProfissional', experienciaprofissional, afterSubmitFunctionCriarExperienciaprofissional);
}

function afterSubmitFunctionCriarExperienciaprofissional(){
	$("#formExperienciaprofissional table").each(function(){ var id = $(this).attr('id'); $("#"+id).dataTable().fnClearTable(); });
	if($("#ExperienciaProfissional_listar_popUp").size()==1){ 
		try{$('#listarExperienciaprofissional').dataTable().fnCallBServerSearch();}catch(e){} 
	}else{ 
		loadPageToPopUp('Listar Experiencia Profissional', 'ExperienciaProfissional/listar',800,null,false); 
	}
}

//FIM - METODOS PARA SALVAR 

//INICIO - METODOS PARA ATUALIZAR 
function atualizarExperienciaprofissional(){
	var experienciaprofissional = popularExperienciaprofissional();
	atualizar('formExperienciaprofissional', 'ExperienciaProfissional', experienciaprofissional, afterSubmitFunctionAtualizarExperienciaprofissional);
}

function afterSubmitFunctionAtualizarExperienciaprofissional(){
	if($("#ExperienciaProfissional_listar_popUp").size()==1){ 
		try{$('#listarExperienciaprofissional').dataTable().fnCallBServerSearch();}catch(e){} 
	}else if($('#dataGridExperienciaprofissional').size()==0){
		loadPageToPopUp('Listar Experiencia Profissional', 'ExperienciaProfissional/listar',800,null,false); 
	}
}

function popularExperienciaprofissional(){
	
	var experienciaprofissional = $("#formExperienciaprofissional").formParams(false);
	
	experienciaprofissional.periodoInicio= completaDiaPtBR(experienciaprofissional.periodoInicio);
	experienciaprofissional.periodoFim= completaDiaPtBR(experienciaprofissional.periodoFim);
	
	delete experienciaprofissional.ramoAtuacaos;
	experienciaprofissional.ramoAtuacaos = serializarDataGridToMany("dataGridRamoatuacao");

    if(experienciaprofissional.diasAtuais === undefined){
	experienciaprofissional.diasAtuais = false;
	}else if(experienciaprofissional.diasAtuais === "on"){
	experienciaprofissional.diasAtuais = true;
    }
	if($("#pais_input").val()!="Brasil"){
		experienciaprofissional.municipio=null;
	}else{
		experienciaprofissional.estadoEstrangeiro=null;
	}
 
    
    if($("#municipio").combobox('value')==""){
		experienciaprofissional.municipio=null;
	}if($("#pais").combobox('value')==""){
		experienciaprofissional.pais=null;
	}
    
	return experienciaprofissional;
}
//FIM - METODOS PARA ATUALIZAR 

//POPULAR O FORMULARIO PARA VISUALIZACAO OU EDICAO
function preencherFormularioExperienciaprofissional(data){
	if(typeof(data) !== 'undefined'){

		var ramoAtuacaos = data.ramoAtuacaos;
		delete data.ramoAtuacaos;
		if(typeof(ramoAtuacaos) !== 'undefined' && ramoAtuacaos !== null){
			$('#dataGridRamoatuacao').dataTable().fnAddData(ramoAtuacaos);
		}

		
		$("#formExperienciaprofissional").populate(data,{resetForm:true});
		
		updateCountdown();
		$("#periodoInicio").val(getMesAnoPtBR(data.periodoInicio));
		$("#periodoFim").val(getMesAnoPtBR(data.periodoFim));
		
		if(data.diasAtuais){
			$("#periodoFim").val("");
			$("#liperiodoFim").fadeOut('slow');
			$("#diasAtuais").attr('checked',true);
		}else{
			$("#liperiodoFim").fadeIn('slow');
			$("#diasAtuais").attr('checked',false);
		}
	
		
		if(data.municipio!=undefined && data.municipio.id!=null){
			if(data.municipio!=undefined && data.municipio.id!=null){
				loadToComboBoxCallBack("#municipio","Municipio/combo/nome?estado="+data.municipio.estado.id, "nome",function(){
						$("#municipio").combobox('value',data.municipio.id);
				});
			}
	
			if(data.municipio!=undefined && data.municipio.id!=null){
				loadToComboBoxCallBack("#estado","Estado/combo/uf?pais="+data.municipio.estado.pais.id, "uf",function(){
						$("#estado").combobox('value',data.municipio.estado.id);
				});
			}
	
			if(data.municipio!=undefined && data.municipio.id!=null){
				loadToComboBoxCallBack("#pais","Pais/combo/nome", "nome",function(){
						$("#pais").combobox('value',data.municipio.estado.pais.id);
				});
			}
		}else{
				$("#estadoEstrangeiro").css("display", "block");
				$("#municipioExperiencia").css("display", "none");
				loadToComboBoxCallBack("#pais","Pais/combo/nome", "nome",function(){
					$("#pais").combobox('value',data.pais.id);
				});
		}


	}else if( typeof($("#dataGridExperienciaprofissional_selecionado").val()) !== 'undefined' &&  $("#dataGridExperienciaprofissional_selecionado").val().length>0){

	      var data = $.parseJSON($("#dataGridExperienciaprofissional_selecionado").val());

	      $("#dataGridExperienciaprofissional_selecionado").remove();

	     preencherFormularioExperienciaprofissional(data);

	}
}

function listarRamoatuacao(){
	var aoColumnsRamoatuacao = [
											{"sTitle": "Opções", "mDataProp": "htmlControl","bSortable": false, "bVisible": true, "sWidth": "45px","sDefaultContent":"", 
												"fnRender": function ( oObj ) {
													var buttons =   "";
													buttons +=  "<button type=\"button\" id=\"deletarBtn_"+oObj.aData.id+"\" class=\"deletarBtndataGridRamoatuacao ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only\" onclick=\"deletarDaTela(event,'dataGridRamoatuacao')\" role=\"button\" aria-disabled=\"false\" title=\"Deletar\" style=\"width: 20px; height: 20px;\"><span class=\"ui-button-icon-primary ui-icon ui-icon-close\"></span><span class=\"ui-button-text\">Deletar</span></button>";
													return buttons;
												}
											},
                                            {"sTitle": "Descricao", "mDataProp": "descricao", "bVisible": true, "sDefaultContent":""},
                                            {"sTitle": "Id", "mDataProp": "id", "bVisible": false, "sType": "numeric" },         	 
	                             ];
	var aoColumnsRamoatuacaoStr = 	JSON.stringify(aoColumnsRamoatuacao, function(key, val) {if (typeof val === 'function') { return val + '';} return val;});              
	
	//PESQUISAR EXISTENTE
	var pesquisarRamoatuacaoBtn = $("#dataGridRamoatuacaoPesquisarBtn").button({icons: {primary: "ui-icon-search"}, text: true}).click(
			function(){		
				loadPageToPopUp('Selecionar Ramo de Atuação', 'RamoAtuacao/listar',800,null,true,function(){},function(){
					var objetoSelecionado = $.parseJSON($("#listarRamoatuacao_selecionado").val());
					if(objetoSelecionado!=null){
						var aoData= $('#dataGridRamoatuacao').dataTable().fnGetData();
						for(var i=0; i< aoData.length; i++){
							   if(aoData[i].id == objetoSelecionado.id){
								   showDialog('Ops!','Este item já está na lista!');
								   return;
							   }
						}
						$('#dataGridRamoatuacao').dataTable().fnAddData(objetoSelecionado);
						$('#dataGridRamoatuacao').dataTable().fnDraw();
					}
				}, true);
		});
	
	toMany("dataGridRamoatuacao", aoColumnsRamoatuacaoStr, "Ramo Atuação: ", 'ramos' ,null, pesquisarRamoatuacaoBtn);
}



function updateCountdown() {
	if ($('#atividadesRealizadas').val().length > 400){
		$('#atividadesRealizadas').val($('#atividadesRealizadas').val().substring(0, 400));
    }
    var remaining = 400 - $('#atividadesRealizadas').val().length;
    $('#countdown').text(remaining + ' caracteres restantes.');
}





