/* Desenvolvido por Guilherme Augusto Madaleno - zatec@ymail.com */
	/* Variáveis da página */
	
	var timer;
	var accentsButton = "a#accents";
	var accentsString = "textarea#accents";
	var hashButton = "a#hash";
	var hashString = "input#hash";
	var hashType = "select#hashType";
	var headerButton = 'a#headerRead';
	var headerString = 'input#header';
	var orderButton = "a#order";
	var orderType = "select#orderType";
	var orderString = "textarea#order";
	var shortButton = "a#shorturl";
	var shortString = "input#url";
	var uploadButton = "a#upload";
	var uploadHolder = "p#uploadHolder";
	var uploadLink = "input#uploadLink";
	var tcpTestButton = "a#tcpTest";
	var tcpTestPort = "input#tcpPort";
	var tcpTestHost = "input#tcpHost";

	$(document).ready(function() 
	{
		
		/* Adiciona IP do usuário de uma vez */
		
		if (tcpTestIP && !$(tcpTestHost).val())
			$(tcpTestHost).attr('value', tcpTestIP);
	
		/* Executar teste de portas */
		
		$(tcpTestButton).click(function()
		{
			if ($(tcpTestHost).val())
			{
				if ($(tcpTestPort).val())
				{
					$(tcpTestButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
					$.ajax
					({
						url: 		"http://www.zatecus.com/tools.json",
						type: 		"POST",
						data:
						({
							tool: 'tcpTest',
							port: $(tcpTestPort).val(),
							host: $(tcpTestHost).val()
						}),
						dataType: 	"json",
						error: 		function (XMLHttpRequest, textStatus, errorThrown)
						{
							$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
							$(tcpTestButton).html('Testar');
						},
						success: 	function(callBack)
						{
							if (callBack)
							{
								switch (callBack.msg)
								{
									default:
										$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
									break;
									case 'limit_reached':
										$.message("Desculpe, mas voc&ecirc; n&atilde;o pode fazer isso mais! :(");
									break;
									case 'port_not_found':
										$.message("Porta n&atilde;o especificada!");
									break;
									case 'host_not_found':
										$.message("Host n&atilde;o especificado!");
									break;
									case 'port_open':
										$.message("A porta '" + $(tcpTestPort).val() + "' est&aacute; aberta!", false, true);
									break;
									case 'port_closed':
										$.message("A porta '" + $(tcpTestPort).val() + "' est&aacute; fechada!");
									break;
									case 'not_logged':
										$.message("Desculpe, mas &eacute; preciso estar logado para executar esta ferramenta!", function()
										{
											document.location = 'http://www.zatecus.com/login.html';
										});
									break;
								}
	
							}
							else
							{
								$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
							}
							$(tcpTestButton).html('Testar');
						}
					});					
				}
				else
				{
					$(tcpTestPort).focus();
				}
			}
			else
			{
				$(tcpTestHost).focus();
			}
		});

		/* Exibir cabeçalhos */
		
		$(headerButton).click(function()
		{
			if ($(headerString).val())
			{
				$(headerButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
				$.ajax
				({
					url: 		"http://www.zatecus.com/tools.json",
					type: 		"POST",
					data:
					({
						tool: 'header',
						header: $(headerString).val()
					}),
					dataType: 	"json",
					error: 		function (XMLHttpRequest, textStatus, errorThrown)
					{
						$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						$(headerButton).html('Ler Header');
					},
					success: 	function(callBack)
					{
						if (callBack)
						{
							switch (callBack.msg)
							{
								default:
									$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
								break;
								case 'limit_reached':
									$.message("Desculpe, mas voc&ecirc; n&atilde;o pode fazer isso mais! :(");
								break;
								case 'missing_header':
									$.message("Faltou preencher o endere&ccedil;o do link que deseja ler!");
								break;
								case 'invalid_header_link':
									$.message("O link digitado &eacute; inv&aacute;lido!");
								break;
								case 'header_not_found':
									$.message("N&atilde;o foi encontrado um cabe&ccedil;alho v&aacute;lido para esta p&aacute;gina!");
								break;
								case 'ok':
									alert(callBack.header);
								break;
							}
						}
						else
						{
							$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						}
						$(headerButton).html('Ler Header');
					}
				});
			}
			else
			{
				$(headerString).focus();
			}
		});
		
		/* Converter acentos */
		
		$(accentsButton).click(function()
		{
			if ($(accentsString).val())
			{
				$(accentsButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
				$.ajax
				({
					url: 		"http://www.zatecus.com/tools.json",
					type: 		"POST",
					data:
					({
						tool: 'accents',
						string: $(accentsString).val()
					}),
					dataType: 	"json",
					error: 		function (XMLHttpRequest, textStatus, errorThrown)
					{
						$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						$(accentsButton).html('Converter');
					},
					success: 	function(callBack)
					{
						if (callBack)
						{
							switch (callBack.msg)
							{
								default:
									$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
								break;
								case 'limit_reached':
									$.message("Desculpe, mas voc&ecirc; n&atilde;o pode fazer isso mais! :(");
								break;
								case 'not_logged':
									$.message("Desculpe, mas &eacute; preciso estar logado para executar esta ferramenta!", function()
									{
										document.location = 'http://www.zatecus.com/login.html';
									});
								break;
								case 'ok':
									$(accentsString).attr('value',callBack.string);
									$(accentsString).select();
									$(accentsString).focus();
								break;
							}
						}
						else
						{
							$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						}
						$(accentsButton).html('Converter');
					}
				});
			}
			else
			{
				$(accentsString).focus();
			}
		});

		/* Gerar hashes */
		
		$(hashButton).click(function()
		{
			if ($(hashString).val())
			{
				$(hashButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
				$.ajax
				({
					url: 		"http://www.zatecus.com/tools.json",
					type: 		"POST",
					data:
					({
						tool: 'hash',
						hashType: $(hashType).val(),
						string: $(hashString).val()
					}),
					dataType: 	"json",
					error: 		function (XMLHttpRequest, textStatus, errorThrown)
					{
						$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						$(hashButton).html('Gerar');
					},
					success: 	function(callBack)
					{
						if (callBack)
						{
							switch (callBack.msg)
							{
								default:
									$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
								break;
								case 'limit_reached':
									$.message("Desculpe, mas voc&ecirc; n&atilde;o pode fazer isso mais! :(");
								break;
								case 'not_logged':
									$.message("Desculpe, mas &eacute; preciso estar logado para executar esta ferramenta!", function()
									{
										document.location = 'http://www.zatecus.com/login.html';
									});
								break;
								case 'ok':
									$(hashString).attr('value',callBack.hash);
									$(hashString).select();
									$(hashString).focus();
								break;
							}	
						}
						else
						{
							$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						}
						$(hashButton).html('Gerar');
					}
				});
			}
			else
			{
				$(hashString).focus();
			}
		});
		
		/* Ordenar strings */
		
		$(orderButton).click(function()
		{
			if ($(orderString).val())
			{
				$(orderButton).attr('disabled','disabled');
				$(orderType).attr('disabled','disabled');
				$(orderString).attr('disabled','disabled');
				$(orderButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
				$.ajax
				({
					url: 		"http://www.zatecus.com/tools.json",
					type: 		"POST",
					data:
					({
						tool: 'order',
						orderType: $(orderType).val(),
						string: $(orderString).val()
					}),
					dataType: 	"json",
					error: 		function (XMLHttpRequest, textStatus, errorThrown)
					{
						$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
					},
					success: 	function(callBack)
					{
						if (callBack)
						{
							switch (callBack.msg)
							{
								default:
									$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
								break;
								case 'limit_reached':
									$.message("Desculpe, mas voc&ecirc; n&atilde;o pode fazer isso mais! :(");
								break;
								case 'not_logged':
									$.message("Desculpe, mas &eacute; preciso estar logado para executar esta ferramenta!", function()
									{
										document.location = 'http://www.zatecus.com/login.html';
									});
								break;
								case 'ok':
									$(orderString).attr('value', callBack.string);
									$(orderString).select();
									$(orderString).focus();
								break;
							}									
						}
						else
						{
							$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						}
						$(orderButton).html('Ordenar');
						$(orderButton).attr('disabled','');
						$(orderType).attr('disabled','');
						$(orderString).attr('disabled','');
					}
				});
			}
			else
			{
				$(orderString).focus();
			}
		});
		
		/* Encurtar URL */
		
		$(shortButton).click(function()
		{
			if ($(shortString).val())
			{
				$(shortButton).html('<img src="http://www.zatecus.com/images/green/loaderOrange.gif" border="0" alt="Aguarde..." style="padding: 3px;" />');
				$(shortButton).attr('disabled','disabled');
				$.ajax
				({
					url: 		"http://www.zatecus.com/tools.json",
					type: 		"POST",
					data:
					({
						tool: 'shorturl',
						url: $(shortString).val()
					}),
					dataType: 	"json",
					error: 		function (XMLHttpRequest, textStatus, errorThrown)
					{
						$.message('Ops! Ocorreu um erro! Poderia tentar novamente?');
						$(shortButton).html('Encurtar');
						$(shortButton).attr('disabled','');
					},
					success: 	function(callBack)
					{
						
						$(shortButton).html('Encurtar');
						$(shortButton).attr('disabled','');
						switch (callBack.msg)
						{
							default:
								$.message("Ops! Ocorreu um erro! Poderia tentar novamente?");
							break;
							case 'ok':
								$(shortString).val('http://zatec.us/x' + callBack.short);
								$(shortString).focus();
								$(shortString).select();
							break;
							case 'cant_reshort':
								$.message("N&atilde;o &eacute; poss&iacute;vel encurtar uma URL j&aacute; encurtada!", function()
								{
									$(shortString).focus();
									$(shortString).select();
								});
							break;
							case 'error_invalid':
								$.message("A URL que voc&ecirc; digitou &eacute; inv&aacute;lida!", function()
								{
									$(shortString).focus();
									$(shortString).select();
								});
							break;
							case 'error_inserting':
								$.message("Ocorreu um erro do sistema ao inserir URL =(", function()
								{
									$(shortString).focus();
									$(shortString).select();
								});
							break;
							case 'error_missing_url':
								$.message("Faltou especificar a URL!", function()
								{
									$(shortString).focus();
									$(shortString).select();
								});
							break;
						}
					}
				});
			}
			else
			{
				$(shortString).focus();
			}
		});
		
		/*   */
		
	});
		
