/**
 * @author rafael.moreira
 */
function exportaPerguntas() {
	/*
	if (confirm("Deseja Validar o Passo?")) {
		var perguntas = getPerguntas();
		imprimePerguntas(perguntas);
		validarPasso(document.getElementsByName("sequenciaPasso")[0].value, getCodTodasPerguntas(perguntas));
		validarQtdPerguntas(document.getElementsByName("sequenciaPasso")[0].value,perguntas.length);
		validaPerguntas(perguntas);		
	}
	*/
}

function getPerguntas() {
	
	// Pega todas as perguntas pelo nome da tag.
	var perguntas = getCampos(document.getElementsByTagName("input"));
	perguntas = perguntas.concat(getCampos(document.getElementsByTagName("select")));
	perguntas = perguntas.concat(getCampos(document.getElementsByTagName("textarea")));
	// Ordena o array de perguntas pelo código.
	perguntas.sort(ordenaPerguntas);
	// Remove as de mesmo nome (CheckBox e RadioButton).
	perguntas = removeRepetidas(perguntas);
	return perguntas;
} 

function removeRepetidas(perguntas) {
	var perguntasRetorno = new Array();
	var nomePerguntaAux = null;
	for(var i = 0; i < perguntas.length; i ++) {
		if (perguntas[i].name != nomePerguntaAux) {
			nomePerguntaAux = perguntas[i].name;
			perguntasRetorno.push(perguntas[i]);
		}
	}
	return perguntasRetorno;
}

function getCampos(campos) {
	var camposRetorno = new Array();
	for (var i = 0; i < campos.length; i++) {
		if (campos[i].name.substring(0,1) == 'P') {
			camposRetorno.push(campos[i]);
		}
	}
	return camposRetorno;
}

function imprimePerguntas(perguntas) {
	
	var textoCodPerguntas = '<table border="1">' +
								'<tr>' +
									'<td>' +
										'Passo: ' + document.getElementsByName("sequenciaPasso")[0].value + 
									'</td>' +
									'<td id="resultadoValidacaoPasso"><img src="../imagem/img_carregar.gif" /></td>' +
									'<td rowspan="2"><input type="button" value="Checar" onclick="validarPasso(\'' + document.getElementsByName("sequenciaPasso")[0].value + '\',\'' + getCodTodasPerguntas(perguntas) + '\');validarQtdPerguntas(\'' + document.getElementsByName("sequenciaPasso")[0].value + '\',\'' + perguntas.length + '\');"/></td>' + 
								'</tr>' +
								'<tr>' +
									'<td>Quantidade de Perguntas : ' + perguntas.length + '</td>' +
									'<td id="resultadoQtdPerguntas"></td>' +
								'</tr>' +
							'</table>';
	textoCodPerguntas += '<table border="1">' +
							'<tr>' + 
								'<td><b>Código Pergunta</b></td>' +
								'<td width="80"><b>Tipo Input</b></td>' +
								'<td width="155"><b>Quantidade de Respostas</b></td>' +
								'<td><b>Opções de Resposta / Tamanho do Campo</b></td>' +
								'<td><b>Valor Pré-Definido</b></td>' +
								'<td><b>Consistência</b></td>' +
								'<td align="center"><b>Ação</b></td>' +
							'</tr>';
	
	for (var i =0; i < perguntas.length; i++ ) {
		textoCodPerguntas += '<tr>' +
							 	'<td align="center">' + perguntas[i].name + '</td>' +
		                     	'<td align="center">' + perguntas[i].type + '</td>' +
								'<td align="center">' + getItens(perguntas[i]).length + '</td>' +
						     	'<td>' + getItens(perguntas[i]).join(", ") + '</td>' +
								'<td>' + perguntas[i].value + '</td>' +
								'<td id="Valida_' + perguntas[i].name + '">' + '<img src="../imagem/img_carregar.gif" /> <input type="button" value="Checar" onclick="validarPergunta(\'' + perguntas[i].name + '\');"/>' +  '</td>' +
								'<td>' + 
									'<input type="button" heigth="300" value="Checar" onclick="validarPergunta(getPergunta(\'' + perguntas[i].name + '\'));"/>' + 
									'<br><br>' +
									'<input type="button" value="Enunciado" onclick="buscarEnunciadoPergunta(getPergunta(\'' + perguntas[i].name + '\'));"/>' + 
									'<br><br>' +
									'<input type="button" value="Itens" onclick="buscarItensPergunta(getPergunta(\'' + perguntas[i].name + '\'));"/>' +
								'</td>' +
							 '</tr>';
	}
	textoCodPerguntas += "</tr></table>";
	//alert(textoCodPerguntas);
	document.getElementById('validacaoPasso').innerHTML = textoCodPerguntas;


}

function validaPerguntas(perguntas) {
	for (var i =0; i < perguntas.length; i++ ) {
		validarPergunta(perguntas[i]);
	}
}

function getCodTodasPerguntas(perguntas) {
	var codigos = '';
	for (var i = 0; i < perguntas.length; i++) {
		codigos += perguntas[i].name.substring(1);
		if (i != perguntas.length - 1) {
			codigos += ',';
		}
	} 
	return codigos;
}

function getPergunta(nome) {
	return document.getElementsByName(nome)[0];
}

function getItens (pergunta) {
	var itens = new Array();
	if (pergunta.type == 'select-one') {
		var options = pergunta.options;
		for (var i = 0; i < options.length; i++) {
			if (options[i].value != '') {
				itens.push(options[i].value);
			}
		} 
	}
	
	if (pergunta.type == 'checkbox' || pergunta.type == 'radio') {
		var perguntas = document.getElementsByName(pergunta.name);
		for (var i = 0; i < perguntas.length; i++) {
			itens.push(perguntas[i].value);
		} 
	}
	
	if (pergunta.type == 'text') {
		var tam = pergunta.maxLength;
		if (tam == -1) {
			tam = 2147483647;
		}
		itens.push('tamanho-' + tam);
		
	}
	itens.sort(ordenaItens)
	return itens;
} 

function ordenaPerguntas() {
	return parseInt(arguments[0].name.substring(1)) - parseInt(arguments[1].name.substring(1));
}

function ordenaItens() {
	return parseInt(arguments[0]) - parseInt(arguments[1]);
}

function validarPasso(codPasso, codPerguntas) {
	//alert('Passo: ' + codPasso + ', Perguntas: ' + codPerguntas);
	
	document.getElementById('resultadoValidacaoPasso').innerHTML = '<img src="../imagem/img_carregar.gif" />'; 
	
	var ajax = new AJAXInteraction(url, respostaPasso);
	var poststr = 'action=validarPasso' +
	              '&codPasso=' + codPasso + 
	              '&perguntas=' + codPerguntas;
	//alert(poststr);
	ajax.sendPost(poststr);  
}
function respostaPasso(resposta) {
	document.getElementById('resultadoValidacaoPasso').innerHTML = resposta;
}

function validarQtdPerguntas(codPasso, qtdPerguntas) {
	//alert('Passo: ' + codPasso + ', Perguntas: ' + codPerguntas);
	
	document.getElementById('resultadoQtdPerguntas').innerHTML = '<img src="../imagem/img_carregar.gif" />'; 
	
	var ajax = new AJAXInteraction(url, respostaQtdPerguntas);
	var poststr = 'action=validarQtdPerguntas' +
	              '&codPasso=' + codPasso + 
	              '&qtdPerguntas=' + qtdPerguntas;
	//alert(poststr);
	ajax.sendPost(poststr);  
}
function respostaQtdPerguntas(resposta) {
	document.getElementById('resultadoQtdPerguntas').innerHTML = resposta;
}

// Envia Requisição Assincrona para verificar consistencia de dados
function validarPergunta(pergunta) {
	document.getElementById('Valida_' + pergunta.name).innerHTML = '<img src="../imagem/img_carregar.gif" />'
	
	var ajax = new AJAXInteraction(url, respostaValidacao);
	var poststr = 'action=validarPergunta' +
	              '&codPergunta=' + pergunta.name + 
	              '&opcoesResposta=' + getItens(pergunta);
	//alert(poststr);
	ajax.sendPost(poststr);   
}

function respostaValidacao(resposta) {
	document.getElementById('Valida_'+resposta.split('-.-')[0]).innerHTML = resposta.split('-.-')[1];
}

function buscarItensPergunta(pergunta) {
	var ajax = new AJAXInteraction(url, respostaItensPergunta);
	var poststr = 'action=buscarItensPergunta' +
	              '&codPergunta=' + pergunta.name + 
	              '&opcoesResposta=' + getItens(pergunta);
	//alert(poststr);
	ajax.sendPost(poststr);   
}

function respostaItensPergunta(resposta) {
	
	var texto = '';
	var itens = resposta.split('-.-')[1].split('<-ID->');
	for (var i = 0; i < itens.length; i++) {
		var item = itens[i].split('==>');
		if (item.length > 1) { 
			texto += item[0] + ' ' + item[1] + '\n';
		}
	}
	alert(texto);
}

function buscarEnunciadoPergunta(pergunta) {

	var ajax = new AJAXInteraction(url, respostaEnunciado);
	var poststr = 'action=buscarEnunciadoPergunta' +
	              '&codPergunta=' + pergunta.name;
	//alert(poststr);
	ajax.sendPost(poststr);   
}

function respostaEnunciado(resposta) {
	alert(resposta.split('-.-')[1]);
}