try {
	jQuery.noConflict();
	$j = jQuery;
} catch (e) {
	Log("Main.js - jQuery não está disponível");
}

jQuery.fn.replaceWith = function(replacement) {
	return this.each(function(){
		element = jQuery(this);

		jQuery(this)
			.after(replacement).next()
			.attr('class', element.attr('class'))
			.attr('id',element.attr('id'))
			.html(element.html())
			.prev().remove();

	});
};

$j(document).ready( function() {
	InitMain();
});

var InitMain = function() {

	try {
		init_admin()
	} catch (e) {
		Log("Erro ao iniciar o Admin.js \n" + e.message);
	}

	$j("a.vaga-detalhes").bind("click", VagaDetalhes_Click)

	// adding specific css classes
	$j("input[type=radio]").addClass("radio");
	$j("input[type=checkbox]").addClass("checkbox");
	$j("input[type=button]").addClass("button");
	$j("input[type=text]").addClass("text");
	$j("input[type=file]").addClass("file");
	$j("input[type=password]").addClass("password");
	$j("textarea").addClass("text");
	$j("select").addClass("select");

	$j("span.display-boolean:contains(true)").addClass("display-boolean-true");
	$j("form.validate-me").validate();

	$j(".cpf").mask("999.999.999-99");
	$j(".time-range").mask("DAS 99:99 AS 99:99").css("text-transform",
			"lowercase");
	
	$j(".month-range").mask("DE 99/9999 ATE 99/9999").css("text-transform",
	"lowercase");
	
	$j(".money").maskMoney( {
		symbol :"R$",
		decimal :",",
		thousands :"."
	});

	$j(".tel").mask("(99) 9999-9999");
	$j(".cep").mask("99999-999");

	$j(".data").mask("99/99/9999");

	$j(".delete").bind(
			"click",
			function() {
				var data = $j(this).parents("form:first").metadata();
				if (confirm("Voce tem certeza que deseja apagar "
						+ data.deleteMessage + "?")) {
					return true;
				} else {
					return false;
				}
				// $j(this).parents("form:first").submit()

			});

	
	$j(".excluir-comentario").bind(
			"click",
			function() {
				
				if (confirm("Voce tem certeza que deseja apagar este comentario?")) {
					return true;
				} else {
					return false;
				}

			});
	
	
	
	$j("select#cbxFilhos").bind("change", function() {
		if (this.value == 'false') {
			$j("input#txtNumFilhos").val("");
		}
	});

	try {
		$j("input[name=curriculo.portadorDeDeficiencia]").bind("click",
				function() {
					Deficiencia_Change(this)
				});
		Deficiencia_Change($j("input[name=curriculo.portadorDeDeficiencia]:checked")[0]);
	} catch (e) {
		Log("Erro ao iniciar o Admin.js \n" + e.message);
	}
	
	
	try {
		$j("input[name=curriculo.empregadoMarjanConhece]").bind("click",
				function() {
				ConheceFuncionario_Change(this)
				});
		ConheceFuncionario_Change($j("input[name=curriculo.empregadoMarjanConhece]:checked")[0]);
	} catch (e) {
		Log("Erro ao iniciar o Admin.js \n" + e.message);
	}
	
	try {
		$j("input[name=curriculo.empregadoMarjanEhParente]").bind("click",
				function() {
					ehParente_Change(this)
				});
				ehParente_Change($j("input[name=curriculo.empregadoMarjanEhParente]:checked")[0]);
	} catch (e) {
		Log("Erro ao iniciar o Admin.js \n" + e.message);
	}
	
	
	try {
		$j("input[name=curriculo.trabalhouMarjan]").bind("click",
				function() {
					trabalhouMarjan_Change(this)
				});
		trabalhouMarjan_Change($j("input[name=curriculo.trabalhouMarjan]:checked")[0]);
	} catch (e) {
		Log("Erro ao iniciar o Admin.js \n" + e.message);
	}
	
	$j("a.del-historico").bind("click",delHistorico);
	$j("a.add-historico").bind("click",AddHistorico);
	
	$j("div.messages ul li:contains('Parabéns')")
		.parents("div.messages:first")
		.addClass("important-messages");
	
}

var logentries = 0;

var Log = function(text) {

	if (document.location.href.indexOf("log=true") <= -1)
		return false;

	if ($j("div#log").length <= 0)
		$j("body")
				.append(
						"<div id='log' style='background-color: #666; width:100%; height: 100px; overflow: auto'><div style='background-color: #FFF; margin: 5px; padding: 5px; height: 100%'></div></div>");

	var prev = $j("div#log div").html();
	$j("div#log div").html(prev + "\n<br/>" + (logentries + 1) + " - " + text);
	$j("div#log")[0].scrollTop = $j("div#log")[0].scrollHeight;

	logentries++;
}

var Deficiencia_Change = function(obj) {

	var _self = obj;

	var deficienciasLi = $j("input[name=curriculo.deficienciaFisica]").parent()
			.parent();
	var deficienciaDescricaoLi = $j(
			"textarea[name=curriculo.deficienciaDescricao]").parent().parent();


	if (_self.value == "false") {
		deficienciasLi.fadeOut();
		deficienciaDescricaoLi.fadeOut();
		$j("li.deficiencia-cid").fadeOut();
		
		$j("textarea[name=curriculo.deficienciaDescricao]").val("");
		$j("input[name=curriculo.deficienciaFisica]").attr("checked", false);
		$j("input[name=curriculo.deficienciaMental]").attr("checked", false);
		$j("input[name=curriculo.deficienciaAuditiva]").attr("checked", false);
		$j("input[name=curriculo.deficienciaVisual]").attr("checked", false);
		$j("input[name=curriculo.deficienciaMultipla]").attr("checked", false);
		
		
	} else {
		deficienciasLi.fadeIn();
		deficienciaDescricaoLi.fadeIn();
		$j("li.deficiencia-cid").fadeIn();
	}
}


var ConheceFuncionario_Change = function (obj){
	
	var _self = obj;
	if (_self.value == "false") {
		$j("li.conhece-empregado").fadeOut();
	}else{
		$j("li.conhece-empregado").fadeIn();
		
	}
	ehParente_Change($j("input[name=curriculo.empregadoMarjanEhParente]:checked")[0]);
		
}

var ehParente_Change = function (obj){
	var _self = obj;
	if (_self.value == "false") {
		$j("li.empregado-parentesco").fadeOut();
	}else{
		$j("li.empregado-parentesco").fadeIn();
	}
		
}

var trabalhouMarjan_Change = function (obj){
	var _self = obj;
	if (_self.value == "false") {
		$j("li.periodo-trabalhou").fadeOut();
	}else{
		$j("li.periodo-trabalhou").fadeIn();
	}
		
}


var Link_Rewrite = function() {

	$j("a.blank").bind("click", function() {

		window.open(this.href);

		return false;
	});
}

var VagaDetalhes_Click = function() {

	var divWidth = 626;
	var divHeight = 448;

	var windowWidth = $j(window).width();
	var windowHeight = $j(window).height();

	var options = {
		css : {
			border :0,
			backgroundColor :"transparent",
			cursor :"default",
			left :((windowWidth - divWidth) / 2),
			top :((windowHeight - divHeight) / 2),
			width: 626,
			height: 448
		},
		overlayCSS : {
			cursor :"default"
		}
	}
	
	var metadata = $j(this).metadata();
	var detalhes_path = "../../vaga/detalhes/?vaga_id=" + metadata.vaga_id;

	$j.get(detalhes_path, "html", function(data) {

		options.message = data;

		$j.blockUI(options);

		$j(".pop-vaga").find("a.pop-close").bind("click", function() {
			$j.unblockUI();
			return false;
		})
	})

	return false;
}

var AddHistorico = function(){
	var novoHistorico = $j("fieldset.historico:last").clone();
	
	var indice = Number(novoHistorico.find("span.indice").text())+1;
	
	novoHistorico.find("span.indice").text(indice);
	novoHistorico.find("input[type=hidden]").val("");
	novoHistorico.find("input,select").each(
		function() {
			var new_name = this.name.replace(/\[(\d+)\]/gi,"["+(indice-1)+"]");
			var new_id = this.id.replace(/_(\d+)/gi,"_"+(indice-1));
			var value = this.value;
			var type = this.type;
			var className = this.className;

			var parent = $j(this).parent();
			
			if(type == "radio") {
				$j(this).remove();
				parent.append("<input type='radio' name='"+new_name+"' id='"+new_id+"' value='"+value+"' class='"+className+"'>");
			}else{
				$j(this).attr("id",new_id);
				$j(this).attr("name",new_name);
				$j(this).val("");
			}
		}
	);
	
	$j("fieldset.historico:last").after(novoHistorico);
	
	$j("a.del-historico").bind("click",delHistorico);
	$j("a.add-historico").bind("click",AddHistorico);
	return false;
}

var delHistorico = function(){
	
	if(confirm("Tem certeza que deseja apagar este curso?")){
		
		var fieldset = $j(this).parents('fieldset:first');
		var historicoId = fieldset.find("input[type=hidden]").val();
		
		if(!$j.trim(historicoId)){
			fieldset.remove();
			return false;
		}
		
		return true;
	}
	
	return false;
	
}




