$(document).ready(function() {
	
	masks();
	datePicker();

	if ($('#cv').length > 0) {
		cv();
		cvCancel();
		cvSteps();
		cvCep();
		cvLocation();
		cvPne();
		cvChildren();
		cvTabSituacaoEscolaridade();
		cvDegrees();
		cvLanguages();
		cvProfessional();
		cvProfessionalSegment();
		cvSearchPosition();
	}

	if ($('#cv-search').length > 0) {
		cvSearch();
	}

	if ($('#cv-apply-job').length > 0) {
		cvApplyJob();
	}

});

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
    return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

function primeiro()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(1)
}
function segundo()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(2)
}
function terceiro()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(3)
}
function quarto()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(4)
}
function quinto()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(5)
}
function sexto()
{
	var flashMovie=getFlashMovieObject("backmovie");
	flashMovie.GotoFrame(6)
}



function masks() {
	$(".dateMonthYear").unmask().mask("99/9999");
	$(".cep").unmask().mask("99999-999");
	$(".cpf").unmask().mask("999.999.999-99");
	$(".phone").unmask().mask("(99) 9999-9999");
	$(".date").unmask().mask("99/99/9999");
}

function datePicker() {
	var el = $('.datepicker');
	el.dpSetDisabled(true);
	el.datePicker({startDate:'01/01/1900'});
}


function cv() {

	var el = $('#cv');

	if (el.find('#bt-finish').length > 0) {
		el.show();
	} else {
		alert('Problemas no carregamento da página. Tente novamente.');
	}
	
	var options = { 
		type: 'post',
		dataType:  'xml',
		url: rootUrl + "save.php",
		iframe: true,
		success: function(response) {
			alert($('message', response).text());
			if ($('redirect', response).text() == "1") {

				if ($('#backToJob').attr('value') == '1') {
					window.location.href = "index.php?page=cv&subpage=job";
				} else {
					window.location.href = "index.php?page=cv&subpage=logout";
				}
			
			}
		}
    }; 
 
	el.ajaxForm(options); 
}

function cvSteps() {

	var form = $('#cv');
	var fieldsets = form.find('fieldset.step');
	var prev = fieldsets.find('.prev');
	var next = fieldsets.find('.next');

	form.find('.breadcrumb li').bind('click', function() {
		var index = $(this).parents('fieldset').find('.breadcrumb li').index($(this));
		fieldsets.hide(1, function() {
			fieldsets.filter(':eq('+index+')').show();
		});
		return false;
	});
	
	fieldsets.filter(':not(:first)').hide();
	fieldsets.filter(':first').addClass('current');

	prev.bind('click', function() {
		$(this).parents('fieldset.step').prev().show().end().hide();
		window.location.hash = 'cv';
		return false;
	});

	next.bind('click', function() {
		$(this).parents('fieldset.step').next().show().end().hide();
		window.location.hash = 'cv';
		return false;

	});

}

function cvCancel() {
	$('#cv #bt-cancel').bind('click', function() {
		var title = $(this).attr('title');
		if (confirm(title)) {
			window.location.href = "index.php?page=cv&subpage=logout";
		}
	});
}

function cvCep() {

	var delay;

	$('#dsCep').bind('change', function() {
		
		var cep = $(this).attr('value');

		clearTimeout(delay);
		delay = setTimeout(function() {
	
			$.ajax({
				type: "GET",
				url: rootUrl + "get-cep.php",
				dataType: "xml",
				data: "cep=" + cep,
				success: function(xml){

					var messages = $('message', xml).text();
					
					if (messages != "") {
						alert(messages);
					} else {
				
						$('#dsCep').attr('value', $('dsCep', xml).text());
						$('#bairroGeral').attr('value', $('bairroGeral', xml).text());
						$('#cadLogradouro').attr('value', $('cadLogradouro', xml).text());
						$('#nmPais').attr('value', $('nmPais', xml).text());
						$('#nmUf').attr('value', $('nmUf', xml).text());
						$('#nmCidade').attr('value', $('nmCidade', xml).text());
						$('#nmBairro').attr('value', $('nmBairro', xml).text());
						$('#dsEndereco').attr('value', $('dsEndereco', xml).text());

					}
				
				}
			});

		}, 2000);

	});
	
}


function cvLocation() {
	
	$('#cadUfNaturalidade').bind('change', function() {
		var state = $(this).attr('value');
		$.ajax({
			type: "GET",
			url: rootUrl + "get-city.php",
			dataType: "html",
			data: "state=" + state,
			success: function(response){
				$('#cadCidadeNaturalidade').html(response);
			}
		});
	});

}

function cvPne() {
	testShowOrHide("input[name='flPne']", '#box-cadPne', 'S');
}


function cvChildren() {
	testShowOrHide("input[name='flPossuiFilho']", '#box-children', 'S');
}


function testShowOrHide(inputSelector, boxSelector, compare) {
	
	var input = $(inputSelector);
	var div = $(boxSelector);

	var el = input.filter(':checked');
	showOrHide(el);

	input.bind('change', function() {
		showOrHide($(this));
	});
	
	function showOrHide(el) {
		var val = el.val();
		if (val == compare) div.slideDown();
		else div.slideUp();
	}

}


function cvTabSituacaoEscolaridade() {
	
	var input = $('.box-tabSituacaoEscolaridade input');
	
	input.filter(':checked').each(function() {
		showOrHide($(this));
	});

	input.bind('change', function() {
		showOrHide($(this));
	});
	
	function showOrHide(el) {
		var div = el.parents('p').next('.box-dsAnoConclusao');
		var val = el.val();
		if (val == '1') div.show();
		else div.hide();
	}

}

function cvLanguages() {
	
	var languages = $('#cv #languages');
	var combo = languages.find('#cadIdioma');
	
	languages.find('.add').bind('click', function() {
		var language =  combo.attr('value');
		if (language == parseInt(language)) {
			$.ajax({
				type: "POST",
				data: "language=" + language,
				url: rootUrl + "get-language.php",
				dataType: "html",
				success: function(response) {
					if ($('#language-' + language).length == 0) {
						languages.find('table').append(response);
					} else {
						alert('Idioma já cadastrado.');
					}
				}
			});
		} else {
			alert('Selecione um idioma.');
		}
		return false;
	});

	languages.find('.delete').live('click', function() {
		$(this).parents('tr').remove();
		return false;
	});

}


function cvDegrees() {
	
	var degrees = $('#cv #degrees');
	var forms = degrees.find('.degree');
	var saves = degrees.find('input.save');
	var edits = degrees.find('a.edit');
	var deletes = degrees.find('a.delete');

	forms.hide();
	addNew();
	
	edits.live('click', function() {
		degrees.find('tr').show();
		$(this).parents('tr').hide();
		var id = $(this).attr('rel');
		$('#'+id).show().siblings('.degree').hide();
		return false;
	});

	saves.live('click', function() {
		
		var form = $(this).parent('.degree'); // form
		var formId = form.attr('id');
		form.hide();

		// get current values
		var degreeType = form.find('.cadTipoEscolaridade option:selected').text();
		var degreeSituation = form.find('.box-tabSituacaoEscolaridade input:checked').val();
		var degreeYear = form.find('.box-dsAnoConclusao input').val();
		var degreeCourse = form.find('.dsCursoFormacao').val();
		var degreeInstitution = form.find('.dsInstituicao').val();

		// get table row
		var id = form.attr('id');
		var row = degrees.find('a[rel="'+id+'"]').parents('tr').show();

		//there is a row?
		if (row.length > 0) {
			
			row.find('.cadTipoEscolaridade').html(degreeType);
			row.find('.dsCursoFormacao').html(degreeCourse);
			row.find('.dsInstituicao').html(degreeInstitution);

		} else {

			html = '<tr>';
			html += '<td class="cadTipoEscolaridade">' + degreeType + '</td>';
			html += '<td class="dsCursoFormacao">' + degreeCourse + '</td>';
			html += '<td class="dsInstituicao">' + degreeInstitution + '</td>';
			html += '<td><a class="edit" rel="'+ formId + '" href="#">Editar</a></td>';
			html += '<td><a class="delete" rel="' + formId + '" href="#">Excluir</a></td>';
			html += '</tr>';
	
			degrees.find('table').append(html);

		}

		addNew();

		window.location.hash = 'degrees';
		return false;
	});


	deletes.live('click', function() {
		var id = $(this).attr('rel');
		$('#' + id).remove();
		var row = $(this).parents('tr').remove();
		return false;
	});

	function addNew() {
		$.ajax({
			type: "GET",
			url: rootUrl + "get-degree.php",
			dataType: "html",
			success: function(response) {
				degrees.find('h2').after(response);
				masks();
				//datePicker();
			}
		});
	}

}


function cvProfessionalSegment() {
	
	var form = $('#cv');
	
	form.find('.cadSegmento').live('change', function() {
		request($(this));
	});

	function request(el) {
		var segment = el.find(':selected').val();
		$.ajax({
			type: "POST",
			url: rootUrl + "get-areas.php",
			data: "segment=" + segment,
			dataType: "html",
			success: function(response){
				el.parents('.professional').find('.cadAreaInteresse').html(response);
			}
		});
	}

}


function cvProfessional() {
	
	var container = $('#cv #professional');
	var forms = container.find('.professional');
	var saves = container.find('input.save');
	var edits = container.find('a.edit');
	var deletes = container.find('a.delete');

	$('input[name="flPossuiEProfissional"]').bind('change', function() {
		var val = $(this).val();
		var div = $('#professional-experiences');
		if (val == 'S') div.show();
		else {
			div.hide();
			forms.remove();
			container.find('tbody tr').remove();
		}
	});

	

	forms.hide();
	addNew();
	
	edits.live('click', function() {
		container.find('tr').show();
		$(this).parents('tr').hide();
		var id = $(this).attr('rel');
		$('#'+id).show().siblings('.professional').hide();
		return false;
	});

	saves.live('click', function() {
		
		var form = $(this).parent('.professional'); // form
		var formId = form.attr('id');
		form.hide();

		// get current values
		var nmEmpresa = form.find('.box-nmEmpresa input').val();
		var flEmpregoAtual = form.find('.box-flEmpregoAtual input:checked').val();
		var dtAdmissao = form.find('.box-dtAdmissao input').val();

		// get table row
		var id = form.attr('id');
		var row = container.find('a[rel="'+id+'"]').parents('tr').show();

		//there is a row?
		if (row.length > 0) {
			
			row.find('.flEmpregoAtual').html(flEmpregoAtual);
			row.find('.nmEmpresa').html(nmEmpresa);
			row.find('.dtAdmissao').html(dtAdmissao);

		} else {
			
			html = '<tr>';
			html += '<td class="flEmpregoAtual">'+flEmpregoAtual+'</td>';
			html += '<td class="nmEmpresa">'+nmEmpresa+'</td>';
			html += '<td class="dtAdmissao">'+dtAdmissao+'</td>';
			html += '<td><a class="edit" rel="'+formId+'" href="#">Editar</a></td>';
			html += '<td><a class="delete" rel="'+formId+'" href="#">Excluir</a></td>';
			html += '</tr>';
	
			container.find('table').append(html);

		}

		addNew();

		window.location.hash = 'professional';
		return false;
	});


	deletes.live('click', function() {
		var id = $(this).attr('rel');
		$('#' + id).remove();
		var row = $(this).parents('tr').remove();
		return false;
	});

	function addNew() {
		$.ajax({
			type: "GET",
			url: rootUrl + "get-professional.php",
			dataType: "html",
			success: function(response) {
				container.find('h2').after(response);
				masks();
				//datePicker();
			}
		});
	}

}


function cvSearchPosition() {

	var delay;
	var inputs = $('input[name="search-position"]');
	
	inputs.live('keyup', function() {
	
		var el = $(this);
		var combo = el.next('select');
		combo.html('<option>Procurando...</option>');

		clearTimeout(delay);
		delay = setTimeout(function() {
			
			$.ajax({
			type: "POST",
			data: "search=" + el.val(),
			url: rootUrl + "get-position.php",
			dataType: "html",
				success: function(response) {
					
					combo.html(response);

				}
			});

		}, 2000);

	});
}


/*
BUSCA ******************************************************************************************************************
*/

function cvSearch() {
	
	$('#state').bind('change', function() {
		var state = $(this).attr('value');
		var combo = $('#city');
		combo.html('<option>Carregando...</option>');
		$.ajax({
			type: "GET",
			url: rootUrl + "get-city.php",
			dataType: "html",
			data: "state=" + state,
			success: function(response){
				combo.html(response);
			}
		});
	});

	$("#state, #city, input[name='type']").bind('change', function() {

		var state = $('#state').attr('value');
		var city = $("#city").attr('value');
		var type = $('input[name="type"]').attr('value');
		
		var combo = $('#position');
		combo.html('<option>Carregando...</option>');
		
		$.ajax({
			type: "GET",
			url: rootUrl + "get-search-position.php",
			dataType: "html",
			data: 'state=' + state + '&city=' + city + '&type=' + type,
			success: function(response){
				combo.html(response);
			}
		});
	});

	$('#results li .details').hide();

	$('#results li .more').bind('click', function() {
		var el = $(this);
		var details = el.parents('li').find('.details');
		var status = details.css('display');
		if (status == 'none') {
			details.show();
			el.html('ocultar detalhes');
		} else {
			details.hide();
			el.html('ver detalhes');
		}
		return false;
	});

}

function cvApplyJob() {

	$('#cv-apply-job #update').bind('click', function() {
		window.location.href = 'index.php?page=cv&subpage=edit&backToJob=1';
		return false;
	});

}