$(document).ready(function(){
	$('#estado').change(function(){
		postCidades($(this).val(), null);
	});
});

function postCidades(estadoId, cidadeId, div){
	if (div == undefined) {
		div = '#selectCidade';
	}

	$.getJSON(homeSite + '/json/cidades!carregarCidades.action',{idEstado: estadoId},
			function(j){
				var options;
				for (var i = 0; i < j.length; i++){
					if (cidadeId != null && j[i].id == cidadeId){
						options += '<option value=' + j[i].id + ' selected="selected" >' + j[i].nome + '</option>\n\t';
					}
					options += '<option value=' + j[i].id + '>' + j[i].nome + '</option>\n\t';
				}
				if (j.length > 0) {
					$(div).html(options).show();
				}
				});
}

var ISO8859_1_ARRAY =
	[["&amp;", "&"], // commercial and
	 ["&nbsp;", " "], // non-breaking space
	 ["&deg;", "°"], // degree sign
	 ["&ordm;", "º"], // ordinal male sign
	 ["&ordf;", "ª"], // ordinal female sign
	 ["&sup2;", "²"], // superscript two = superscript digit two = squared
	 ["&sup3;", "³"], // superscript three = superscript digit three = cubed
	 ["&frac14;", "¼"], // vulgar fraction one quarter = fraction one quarter
	 ["&frac12;", "½"], // vulgar fraction one half = fraction one half
	 ["&frac34;", "¾"], // vulgar fraction three quarters = fraction three quarters
	 ["&Agrave;", "À"], // À - uppercase A, grave accent
	 ["&Aacute;", "Á"], // Á - uppercase A, acute accent
	 ["&Acirc;", "Â"], // Â - uppercase A, circumflex accent
	 ["&Atilde;", "Ã"], // Ã - uppercase A, tilde
	 ["&Auml;", "Ä"], // Ä - uppercase A, umlaut
	 ["&Aring;", "Å"], // Å - uppercase A, ring
	 ["&Ccedil;", "Ç"], // Ç - uppercase C, cedilla
	 ["&Egrave;", "È"], // È - uppercase E, grave accent
	 ["&Eacute;", "É"], // É - uppercase E, acute accent
	 ["&Ecirc;", "Ê"], // Ê - uppercase E, circumflex accent
	 ["&Euml;", "Ë"], // Ë - uppercase E, umlaut
	 ["&Igrave;", "Ì"], // Ì - uppercase I, grave accent
	 ["&Iacute;", "Í"], // Í - uppercase I, acute accent
	 ["&Icirc;", "Î"], // Î - uppercase I, circumflex accent
	 ["&Iuml;", "Ï"], // Ï - uppercase I, umlaut
	 ["&Ntilde;", "Ñ"], // Ñ - uppercase N, tilde
	 ["&Ograve;", "Ò"], // Ò - uppercase O, grave accent
	 ["&Oacute;", "Ó"], // Ó - uppercase O, acute accent
	 ["&Ocirc;", "Ô"], // Ô - uppercase O, circumflex accent
	 ["&Otilde;", "Õ"], // Õ - uppercase O, tilde
	 ["&Ouml;", "Ö"], // Ö - uppercase O, umlaut
	 ["&Ugrave;", "Ù"], // Ù - uppercase U, grave accent
	 ["&Uacute;", "Ú"], // Ú - uppercase U, acute accent
	 ["&Ucirc;", "Û"], // Û - uppercase U, circumflex accent
	 ["&Uuml;", "Ü"], // Ü - uppercase U, umlaut
	 ["&Yacute;", "Ý"], // Ý - uppercase Y, acute accent
	 ["&agrave;", "à"], // à - lowercase a, grave accent
	 ["&aacute;", "á"], // á - lowercase a, acute accent
	 ["&acirc;", "â"], // â - lowercase a, circumflex accent
	 ["&atilde;", "ã"], // ã - lowercase a, tilde
	 ["&auml;", "ä"], // ä - lowercase a, umlaut
	 ["&aring;", "å"], // å - lowercase a, ring
	 ["&ccedil;", "ç"], // ç - lowercase c, cedilla
	 ["&egrave;", "è"], // è - lowercase e, grave accent
	 ["&eacute;", "é"], // é - lowercase e, acute accent
	 ["&ecirc;", "ê"], // ê - lowercase e, circumflex accent
	 ["&euml;", "ë"], // ë - lowercase e, umlaut
	 ["&igrave;", "ì"], // ì - lowercase i, grave accent
	 ["&iacute;", "í"], // í - lowercase i, acute accent
	 ["&icirc;", "î"], // î - lowercase i, circumflex accent
	 ["&iuml;", "ï"], // ï - lowercase i, umlaut
	 ["&ntilde;", "ñ"], // ñ - lowercase n, tilde
	 ["&ograve;", "ò"], // ò - lowercase o, grave accent
	 ["&oacute;", "ó"], // ó - lowercase o, acute accent
	 ["&ocirc;", "ô"], // ô - lowercase o, circumflex accent
	 ["&otilde;", "õ"], // õ - lowercase o, tilde
	 ["&ouml;", "ö"], // ö - lowercase o, umlaut
	 ["&ugrave;", "ù"], // ù - lowercase u, grave accent
	 ["&uacute;", "ú"], // ú - lowercase u, acute accent
	 ["&ucirc;", "û"], // û - lowercase u, circumflex accent
	 ["&uuml;", "ü"], // ü - lowercase u, umlaut
	 ["&yacute;", "ý"], // ý - lowercase y, acute accent
	 ["&yuml;", "ÿ"] // ÿ - lowercase y, umlaut
	 ];
function acentuaHTML(str) {

	var tmp = str;
	if (tmp == null)
		return "";
	for (var i=0; i<ISO8859_1_ARRAY.length;i++) {
		var itm = ISO8859_1_ARRAY[i];
		tmp = tmp.replace(eval("/\\"+itm [0]+"/g"), itm[1]);
	}
	tmp = tmp.replace(/\&/g, '%26');
	return tmp;
}

function decodificaHTML(str) {

	var tmp = str;
	for (var i=0; i<ISO8859_1_ARRAY.length;i++) {
		var itm = ISO8859_1_ARRAY[i];
		tmp = tmp.replace(eval("/"+itm [1]+"/g"), itm[0]);
	}
	tmp = tmp.replace(/\&/g, '%26');
	return tmp;
}

function carregaTokenSessao (serial) {
	$.ajax({
		type: 'POST',
		url: "gerEnergia!registrarProduto.action",
		cache: false,
		async: false,
		processData: true,
		contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
		data: "serial="+serial,
		success: function(data, status, request) {
			//$('#tiposGraficos').html(request.responseText);
		},
		error: function(request, status, thrown) {}
	});
}


function loadTokenHidden (serial) {
	$.ajax({
		type: 'POST',
		url: "gerEnergia!getTokenSessao.action",
		cache: false,
		async: false,
		processData: true,
		contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
		data: "serial="+serial,
		success: function(data, status, request) {
			$('#tokenProduto').val(request.responseText);
		},
		error: function(request, status, thrown) {}
	});
}

function carregaTokenSessaoAmbiente(serial) {
	$.ajax({
		type: 'POST',
		url: "ambiente!registrarProduto.action",
		cache: false,
		async: false,
		processData: true,
		contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
		data: "serial="+serial,
		success: function(data, status, request) {
			//$('#tiposGraficos').html(request.responseText);
		},
		error: function(request, status, thrown) {}
	});
}


function loadTokenHiddenAmbiente (serial) {
	$.ajax({
		type: 'POST',
		url: "ambiente!getTokenSessao.action",
		cache: false,
		async: false,
		processData: true,
		contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
		data: "serial="+serial,
		success: function(data, status, request) {
			$('#tokenProduto').val(request.responseText);
		},
		error: function(request, status, thrown) {}
	});
}

function ajustaPaginacao() {
	$('div.paginator > a').last().remove();
	$('div.paginator > a').first().remove();
}

function aguarde(obj) {
	var html = "<div class=\"aguarde\"><div class=\"aguardeImg\"></div><span>Aguarde, carregando informa&ccedil;&otilde;es...</span></div>";
	$(obj).html(html);
}

function configuracoes(){
	  $('#btSalvar').click(function() {
		var f = document.config;

		//recupera dados do formulário
		var dados = "";
		for (var i=0; i<f.elements.length; i++) {
			var valor=(f.elements[i]).value;
			valor = escape(valor);
			if (f.elements[i].type == "checkbox")
				valor=(f.elements[i].checked)?"true":"false";

			//verifica celular
			if (f.elements[i].name == "dddCel")
				if (f.elements[i].value == ""){
					alert("Informe o ddd.");
					return;
				}
			if (f.elements[i].name == "celular")
				if (f.elements[i].value == ""){
					alert("Informe o celular.");
					return;
				}
			
			dados += ((dados == "")?"":"&")+f.elements[i].name+"="+valor;
		}

		//verifica se o campo receber torpedos esta ativado
		if (isTorpedo == 'false') {
			var pergunta = confirm('Em seus dados cadastrais o recebimento de torpedos encontra-se desativado, gostaria de ativar agora?');
			if (pergunta) {
				f.action = enderecoConfimar;
				isTorpedo = 'true';
			} else {
				f.action = enderecoCancelar;
			}
		}else{
			f.action = enderecoConfimar;
		}
		//open( document.config.action+"?"+dados,"_blank");
		//realiza o post e retorna a lista de configurações para o box individual	
		$.ajax({
			type: 'POST',
			url: f.action,
			cache: false,
			processData: true,
			contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
			data: dados,
			beforeSend: function() {
				aguarde('#listaConfig');
			},
			success: function(data, status, request) {
				$("#listaConfig").html(request.responseText);
				configuracoes();
			},
			error: function(request, status, thrown) {
				var html = request.statusText.replace(/&amp;/ig, "&");
				html = acentuaHTML(html);
				$("#divMensagem").html(html);
			}
			});
			
	  });
}

function carregaData(objId, img) {
	if (img == null)
		img = homeSite+'/images/comum/servicos/icoCalendario.png';
	$(function(){
		// Datepicker
		 $('#'+objId).datepicker({
			//inline: true,
			maxDate: '+0D',
			changeMonth: true,
			changeYear: true,
			showOn: 'both',
			buttonImage: img,
			buttonImageOnly: true,
			dateFormat: 'dd/mm/yy'
		});
	});
}

function carregaDataFutura(objId, img) {
	if (img == null)
		img = homeSite+'/images/comum/servicos/icoCalendario.png';
	$(function(){
		// Datepicker
		$('#'+objId).datepicker({
			//inline: true,
			minDate: '+0D',
			changeMonth: true,
			changeYear: true,
			showOn: 'both',
			buttonImage: img,
			buttonImageOnly: true,
			dateFormat: 'dd/mm/yy'
		});
	});
}

function isDate(obj) {
	try {
	  var d, m, a;
	  var partes = (obj.value || obj.val()).split("/");
	  d = partes[0]; m = partes[1]; a = partes[2];
	  
	  return !((isNaN(parseInt(d)) || isNaN(parseInt(m)) || 
	      isNaN(parseInt(a))) ||
	      ((a < 1500) || (a > 9999)) ||
	      ((m < 1) || (m > 12)) ||
	      ((d < 1) || (d > 31)) ||
	      ((m == 2) && (d > 28) && (a % 4 != 0)) ||
	      ((m == 2) && (d > 29) && (a % 4 == 0)) ||
	      ((d > 30) && (m == 4) || (d > 30) && (m == 6) ||
	       (d > 30) && (m == 9) || (d > 30) && (m == 11)))
	} catch (e) {
		return false;
	}
}

function dataMenor(dInicio, dFim) {
	try {	
	  var a1 = 	dInicio.split("/");
	  var a2 = 	dFim.split("/");
	  if (a1.length < 3 || a2.length < 3)
		  return false;
	  var dtIni = a1[2]  + "/" + ((a1[1].length<2)?"0":"") + a1[1] + "/" + ((a1[0].length<2)?"0":"") + a1[0];
	  var dtFim = a2[2]  + "/" + ((a2[1].length<2)?"0":"") + a2[1] + "/" + ((a2[0].length<2)?"0":"") + a2[0];
	
	  return (dtIni < dtFim);
	} catch(e) {
		return false;
	}
}

function toAnoMesDia(data, separador)
{
	return data.substring(6, 10) + separador + data.substring(3, 5) + separador + data.substring(0, 2);
}

function checaHora (obj) {
	var mskHora = /^(([0-1][0-9])|([2][0-3])):([0-5][0-9])$/;
	return mskHora.test(obj.value);
}

function checkedRadio(radioObj, id){
	for(i = 0; i < radioObj.length; i++) {
		if(radioObj[i].value == id) {
			radioObj[i].checked = true;
		} 
	}
}

function desabilitarRadio(form, nameInput){
	var radioObj = document.forms[form].elements[nameInput];

	for(i = 0; i < radioObj.length; i++) {
		radioObj[i].disabled = true;
	}
}

function closeDiv(divName, divBg){
	document.getElementById(divBg).style.visibility='hidden';
	document.getElementById(divName).style.visibility='hidden';
	document.getElementById(divName).innerHTML="";
}

function exibirEsconderDiv(exibir, nomeDiv){
	var div = document.getElementById(nomeDiv);
	if (exibir) {
		div.style.display = 'block';
	} else {
		div.style.display = 'none';
	}
}

function bloquearLabel(arrayNames){
	for (i = 0; i < arrayNames.length; i++){
		var label = document.getElementById(arrayNames[i]);
		label.readOnly = true;
	}
}

function displayLabel(arrayNames, param){
	for (i = 0; i < arrayNames.length; i++){
		var label = document.getElementById(arrayNames[i]);
		label.style.display = param;
	}
}

//bloqueia as funções copiar, colar e recortar. Parâmetros: paste, copy e cut
function bloquearFuncao(input, funcao){
	$(input).bind(funcao, function(e) {
		return false;
	});
}

function desabilitarCombobox(arrayNames){
	for (i = 0; i < arrayNames.length; i++){
		$(arrayNames[i]).attr('disabled', 'disabled');
	}
}

function desabilitarCheck(id) {
	var check = document.getElementById(id);

	if (check != null) {
		check.checked = false;
		check.disabled = true;
	}
}

function marcarDesmarcarChecks(obj) {
	$(":checkbox").each(function(){
		if (this.id != obj.id)
        	this.checked = obj.checked;
	});
}

function marcarDesmarcarCheckTodos(obj, id) {
	var checkTodas = document.getElementById(id);
	$(":checkbox").each(function(){
		if (!obj.checked){
			checkTodas.checked = false;
		} 			
	});
}

//recupera nº da página do display tag
function recuperaNumPagDisplayTag(obj, codeDisplayTag){
	var page;
	
	var array = (obj.id).split('p=');
	
	if (array[0] = codeDisplayTag) {
		//descarta parâmetros adicionados durante a navegação
		var array2 = array[1].split('&');
		page = array2[0];
	}
	
	return page;
}

function correrScroll(id, intensidade){
	$('html, body').animate({
	    scrollTop: $(id).offset().top
	}, intensidade);
}

function mediaPlayer(filePath, fileName, legenda, divName){
	
	var enderecoFile = homeSite + filePath + fileName;
//	var enderecoFile = 'http://localhost:8080/pro_038_sms_a24h/file-733617728.avi';
	var divId = '#' + divName;

	$.ajax({
		type: 'POST',
		url: homeSite + '/pages/comum/mediaPlayer.jsp',
		cache: false,
		processData: true,
		contentTypeString: 'application/x-www-form-urlencoded; charset=ISO-8859-1',
		data: 'legenda=' + escape(legenda) + '&enderecoFile=' + enderecoFile,
		beforeSend: function() {
			aguarde(divId);
		},
		success: function(data, status, request) {
			//via jquery ocasiona redimensionamento do vídeo
			var div = document.getElementById(divName);
			div.innerHTML = request.responseText;
		},
		error: function(request, status, thrown) {
			$(divId).html("");
		}
	});
	
}

function replaceAll(str, de, para){
    var pos = str.indexOf(de);
    while (pos > -1){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
    return (str);
}

function upperCaseFirst(string){
	var primeiraLetra = string.substring(0,1);
	primeiraLetra = primeiraLetra.toUpperCase();

	var resto = string.substring(1);
	return primeiraLetra + resto;
}

//modifica abas e seus estilos
function hideAll(theClass, idBox) {
	var allTags = document.getElementById(idBox).getElementsByTagName('*');
	for (i = 0; i < allTags.length; i++) {
		if (allTags[i].className == theClass)
			allTags[i].style.display = 'none';
	}
}

function change(idBox, idConteudoAba, classeConteudoAba) {
	hideAll(classeConteudoAba, idBox);
	document.getElementById(idConteudoAba).style.display = 'block';
}

function changeMe(idTab, idAba, classeAtiva, classeInativa) {
	var all_list_items = document.getElementById(idTab).getElementsByTagName('*');
	for (i = 0; i < all_list_items.length; i++) {
		if (all_list_items[i].className == classeAtiva)
			all_list_items[i].className = classeInativa;
	}
	document.getElementById(idAba).className = classeAtiva;
}

//PAGINACAO PAGINATION

var itemsPagina = 10;
var itensPaginar;
var itensHidden;
var itensMostrar;

/**
 * Gets called every time the user clicks on a pagination link.
 * 
 * @param {int} page_index New Page index
 * @param {jQuery} jq the container with the pagination links as a jQuery object
 */
function pageselectCallback(page_index, jq) {

	var new_content = '';
	var elements = $('div[class*='+itensPaginar+']');
	var max_elem = Math.min((page_index + 1) * itemsPagina, elements.length);

	if (itemsPagina == 1) {
		new_content = $('#'+itensHidden+' div.'+itensPaginar+':eq(' + page_index + ')').clone();
	} else {
		for ( var i = page_index * itemsPagina; i < max_elem; i++) {
			new_content += elements[i].innerHTML;
		}

	}

	$('#'+itensMostrar).empty().append(new_content);
	
	return false;
}

/**
 * Initialisation function for pagination
 */
function initPagination(divHidden, divPaginar, divPaginacao, divMostrar) {
	itensPaginar = divPaginar;
	itensHidden = divHidden;
	itensMostrar = divMostrar;
	
	// count entries inside the hidden content
	var num_entries = $('#' + divHidden + ' div.' + divPaginar).length;

	// Create content inside pagination element
	$('#' + divPaginacao).paginacao(num_entries, {
		callback : pageselectCallback,
		current_page: 0,
		items_per_page : itemsPagina,
		num_display_entries:10,
		first_text:"Primeira",
        last_text:"Última",
		prev_text : "Anterior",
		next_text : "Próxima",
		prev_show_always:false,
		next_show_always:false,
		link_to:"javascript:void(0);",
		load_first_page:"0"
	});

}
