﻿jQuery(document).ready(function(){

	$tabs = jQuery("#tab > ul").tabs({ fx: { opacity: 'show', duration: 'fast' } });
	
	if(document.URL.indexOf('#aba_transfer') == -1)
	{
	//Seleciona a segunda aba e depois a primeira por causa do Bug do IE com float dentro das abas
		$tabs.tabs("select", 1);
		$tabs.tabs("select", 0);
	}
	
	jQuery("#a_pesquisar").click(function (e)
	{
		chkPesquisaDominio();
		e.preventDefault();
	});
	
	jQuery("#a_adicionar_pedido").click(function (e)
	{
		RegistraDominios();
		e.preventDefault();
	});
	
	jQuery("#a_remover_resultados").click(function (e)
	{
		ExcluiResultados();
		e.preventDefault();
	});
	
	jQuery("#select_sufixo").change(function ()
	{
		MudaOpcaoOutraExtensaoSelect(this);														   
	});
	
	/*jQuery("#input_sufixo_5").click(function ()
	{
		MudaOpcaoOutraExtensaoSelect(this);														   
	});*/
	
	jQuery("#input_dominio").keypress(function (e)
	{
		if(e.which == 13)
		{
			chkPesquisaDominio();
		}
	});
	
	jQuery("#a_exemplo_gratis")
	.mouseover(function (){jQuery('#exemplo_hp_gratis').show()})
	.mouseout(function (){jQuery('#exemplo_hp_gratis').hide()})
	.focus(function (){jQuery(this).mouseover()})
	.blur(function (){jQuery(this).mouseout()});
	
	jQuery("#frm_registro")
	.attr("action", "https://contratacao.locaweb.com.br/contratacao/registro-dominio.asp")
	.bind("submit", function (e)
	{
		//chkPesquisaDominio();
		e.preventDefault();
	});

checkTlds=false;
	//Procura o domínio, caso venha via QueryString
	if(QueryString["dominio"])
	{
		jQuery("input[name='input_sufixo']").attr("checked", false);
		
		if(QueryString["input_sufixo1"])
		{
			jQuery("#input_sufixo_1").attr("checked", true);
			checkTlds=true;
		}
		if(QueryString["input_sufixo2"])
		{
			jQuery("#input_sufixo_2").attr("checked", true);
			checkTlds=true;			
		}
		if(QueryString["input_sufixo3"])
		{
			jQuery("#input_sufixo_3").attr("checked", true);
			checkTlds=true;			
		}
		if(QueryString["input_sufixo4"])
		{
			jQuery("#input_sufixo_4").attr("checked", true);
			checkTlds=true;			
		}
		
		jQuery("#input_dominio").val(QueryString["dominio"]); 
		jQuery("#a_pesquisar").click();		
	}

		//checkTlds=jQuery("input[name='input_sufixo']").attr("checked");
		if (checkTlds==false){
			//jQuery("input[name='input_sufixo']").attr("checked", true);	
			//MudaOpcaoOutraExtensaoSelect(jQuery("#input_sufixo_5"));
			jQuery("#input_sufixo_1").attr("checked", true);
			jQuery("#input_sufixo_2").attr("checked", true);
			jQuery("#input_sufixo_3").attr("checked", true);
			jQuery("#input_sufixo_4").attr("checked", true);
		}

});

function getCheckTld(){
	qtdTldChk=0;
	group1=jQuery("input[name='input_sufixo']");
	for(k=0;k<group1.length;k++)
	{
		j=k+1;
		nomeChk='#input_sufixo_'+ (j);
		if (jQuery(nomeChk).attr("checked")==true){
			qtdTldChk++;
		}
	}
	if(qtdTldChk>0){
		return false;
	}else{
		return true;	
	}
}
function chkPesquisaDominio(){
	
	//checkTlds=jQuery("input[name='input_sufixo']").attr("checked");
	chk1=jQuery("#input_sufixo_1").attr("checked");
		
	if (jQuery("#input_dominio").val()==''){
		AlertModal('Dominio no encontrado', 'Por favor, escriba el dominio');
	}
	else if (getCheckTld()){
		AlertModal('Falta la extensión de dominio ',' Por favor, elija una extensión para el dominio.');
	}
	else{
		PesquisaDominio();
	}
}

function ValidaDominios(sDominio, arrSufixos)
{
	var arrDominioInvalidos = jQuery.grep(arrSufixos, 
		function (sSufixo)
		{
			return !ValidaDominio(sDominio, jQuery(sSufixo).val());
		}
	)
		
	return (arrDominioInvalidos.length == 0);
}

function MostraErro(XMLHttpRequest, textStatus, errorThrown)
{
	//AlertModal("Erro ao carregar as Informações", "Desculpe, ocorreu um erro ao carregar as informações, pedimos para que efetue sua ação novamente.");
	AlertModal("Error durante la carga de datos "," Lo sentimos, se ha producido un error durante la carga de datos, por favor, inténtelo de nuevo");
	EscondeCarregando();
	//Reabilita o botão de pesquisa
	jQuery("#btn_pesquisar").attr("disabled", false);
}

function ExcluiResultados()
{
	jQuery('#input_dominio').val("");
	
	objDominioPesquisa.LimpaDominios();

	//Monta o HTML sem domínios
	MontaHTMLDominiosPesquisa();	
}

function MostrarCarregando()
{
	jQuery("#ajax_carregando").show();
}
function EscondeCarregando()
{
	jQuery("#ajax_carregando").hide();
}


//Objeto com os domínios pesquisados
objDominioPesquisa =
{
	Dominios			: [],
	Dominios2			: [],	
	Sugestoes			: [],
	
	AdicionaDominio		:	function AdicionaDominio(sDominio, sSufixo, blnDisponivel, sDisponivel, nValor)
							{
								
								var objDominio;
								
								objDominio = this.BuscaDominio(sDominio, sSufixo);
								
								if(objDominio.length == 0)
								{
									var objDominio =
									{
										Dominio : sDominio,
										Sufixo : sSufixo,
										Disponivel: blnDisponivel,
										LblDisponivel: sDisponivel,
										Valor : nValor
									}
									
									this.Dominios.push(objDominio);
								}
								
								return objDominio;
							},
							
	AdicionaSugestao	:	function AdicionaSugestao(sDominio, sSufixo, blnDisponivel, nValor)
							{
								
								var objDominio;
								
								objDominio = this.BuscaDominio(sDominio, sSufixo);
								
								if(objDominio.length == 0)
								{
									objDominio = this.BuscaSugestao(sDominio, sSufixo);
									
									if(objDominio.length == 0)
									{	
										var objDominio =
										{
											Dominio : sDominio,
											Sufixo : sSufixo,
											Disponivel: blnDisponivel,
											LblDisponivel: sDisponivel,
											Valor : nValor
										}
										
										this.Sugestoes.push(objDominio);
									}
								}
								
								return objDominio;
							},

	RemoveDominio		: 	function RemoveDominio(sDominio, sSufixo)
							{
								arr = jQuery.map(objDominioPesquisa.Dominios, function(n, i){
									if ((n.Dominio!=sDominio)||(n.Sufixo!=sSufixo)){
										this.Dominios2=n;										
										//return objDominioPesquisa.Dominios2;
									}
									
							      });
								this.Dominios = this.Dominios2;
							},
	LimpaDominios		: 	function LimpaDominios()
							{
								this.Dominios = [];
							},
							
	BuscaDominio		: 	function BuscaDominio(sDominio, sSufixo)
							{
								return jQuery.grep(this.Dominios, 
													function(objDominio)
													{
														return (objDominio.Dominio.toLowerCase() == sDominio.toLowerCase() && objDominio.Sufixo.toLowerCase() == sSufixo.toLowerCase());
													});
							},
	
	BuscaSugestao		: 	function BuscaSugestao(sDominio, sSufixo)
							{
								return jQuery.grep(this.Sugestoes, 
													function(objDominio)
													{
														return (objDominio.Dominio.toLowerCase() == sDominio.toLowerCase() && objDominio.Sufixo.toLowerCase() == sSufixo.toLowerCase());
													});
							}
};
function RPesquisaDominio(sDominio, sSufixo){
	objDominioPesquisa.LimpaDominios();
	PesquisaDominio();
}
function PesquisaDominio()
{
	//Pega o valor do domínio digitado	
	var sDominio = jQuery("#input_dominio").val().toLowerCase();
		
	var arrSufixos = jQuery("#frm_registro input[name='input_sufixo']:checked");
		
	if(!ValidaDominios(sDominio, arrSufixos) || jQuery.trim(sDominio) == "")
	{
		AlertModal("Dominio no válido "," Dominio no válido. Por favor, compruebe el dominio elegido");
	}
	else
	{	
		//Retira o sufixo do domínio digitado
		LimpaDominio();
		
		//Limpa os domínios da pesquisa anterior
		//objDominioPesquisa.LimpaDominios();
		
		//Monta o HTML sem domínios
		MontaHTMLDominiosPesquisa();
		
		//Adiciona os Sufixos dos inputs checked
		jQuery.each(arrSufixos, 
							function(i, sSufixo)
							{
								//VerificaDisponibilidade(sDominio, jQuery(sSufixo).val())
								objDominioPesquisa.AdicionaDominio(sDominio, jQuery(sSufixo).val(), null, null,null);
							});
							
		//Busca a disponibilidade
		BuscaDisponibilidade();

	}
}

function BuscaDisponibilidade()
{
	var arrObjDominio = jQuery.grep(objDominioPesquisa.Dominios, function (objDominio){return (objDominio.Disponivel == null)});	
	jQuery.each(arrObjDominio, function (nIndex, objDominio) {VerificaDisponibilidade(objDominio)});	
}

var sUrlConsultaDominio;
var sUrlConsultaDominio2;
var sUrlConsultaValor;

sUrlConsultaDominio = '/proxies/buscaDominio.php';
sUrlConsultaValor = '/proxies/buscaSufixoCodServico.php';

var erroBusca;
erroBusca=0;

function VerificaDisponibilidade(objDominio)
{
	
	MostrarCarregando();
		
	//Desabilita o botão de pesquisa
	jQuery("#btn_pesquisar").attr("disabled", true);
//	jQuery.get(sUrlConsultaDominio + "?nome=" + escape(objDominio.Dominio) + "&sufixo=" + escape(objDominio.Sufixo),
//		function (sRetorno)
//		{	
//			if(sRetorno.indexOf("disponibilidade=OK") >= 0)
//			{
//				objDominio.Disponivel = true;
//			}
//			else if(sRetorno.indexOf("disponibilidade=NOK") >= 0)
//			{
//				objDominio.Disponivel = false;
//			}
//			else
//			{
//				erroBusca=1;
//				return;
//			}
//			BuscaValor(objDominio);
//		}
//	);
//    if(objDominio.Sufixo=='com'){
//		sUrlConsultaDominio2=sUrlConsultaDominio+'cdcd';
//	}else{
		sUrlConsultaDominio2=sUrlConsultaDominio;
//	}
	jQuery.ajax({	
	   type: "GET",
	   url: sUrlConsultaDominio,
	   data: "nome="+ escape(objDominio.Dominio) +"&sufixo="+ escape(objDominio.Sufixo),
	   
	   beforeSend: function(sRetorno){
			//alert("Erro ao pesquisar o dom&iacute;nio" + objDominio.Dominio + "." + objDominio.Sufixo )    ;
			objDominio.Disponivel = false;
			objDominio.LblDisponivel = "C";
			//BuscaValor(objDominio);
	   },
	   success: function(sRetorno){
		//deu certo
				if(sRetorno.indexOf("disponibilidade=OK") >= 0)
				{
					objDominio.LblDisponivel = "D";
					objDominio.Disponivel = true;
				}
				else if(sRetorno.indexOf("disponibilidade=NOK") >= 0)
				{
					objDominio.LblDisponivel = "N";
					objDominio.Disponivel = false;
				}
				else
				{
					erroBusca=1;
					return;
				}
				BuscaValor(objDominio);		
		// fim do bloco
	   },
	   error: function(sRetorno){
			//alert("Erro ao pesquisar o dom&iacute;nio" + objDominio.Dominio + "." + objDominio.Sufixo )    ;
			objDominio.Disponivel = false;
			objDominio.LblDisponivel = "E";
			//BuscaValor(objDominio);
	   }
	   	
	 });
	objDominio.Disponivel = false;
	BuscaValor(objDominio);
}

function BuscaValor(objDominio)
{
//	objDominio.Valor = 6.90;
//	EscondeCarregando();
//	MontaHTMLDominiosPesquisa();
	jQuery.get(sUrlConsultaValor + "?sufixo=" + escape(objDominio.Sufixo), 
		function (sRetorno)
		{	
			var arrRetornoValor = jQuery.grep(sRetorno.split("&"), function (d){return (d.indexOf("SERVICO_VALOR=") >= 0)});
			
			if(arrRetornoValor.length > 0)
			{
				try
				{
					objDominio.Valor = parseFloat(arrRetornoValor[0].split("=")[1].replace(/\,/gi, "."));
				}
				catch(e)
				{
					objDominio.Valor = 0;
				}
			}
			if(jQuery.grep(objDominioPesquisa.Dominios, function (objDominio){return (objDominio.Valor == null)}).length == 0)
			{
				EscondeCarregando();
				
				if (erroBusca==1){
					AlertModal("Error durante la carga de datos "," Lo sentimos, se ha producido un error durante la carga de datos, por favor, inténtelo de nuevo.");
					ExcluiResultados();
					return false;
				}else{
					MontaHTMLDominiosPesquisa();
				}
			}
		}
	);
}
var count = 0;
function MontaHTMLDominiosPesquisa()
{	
	//Reabilita o botão de pesquisa
	jQuery("#btn_pesquisar").attr("disabled", false);
	
	//Mostra a DIV com as pesquisa do domínio
	//alert(objDominioPesquisa.Dominios);
	if(objDominioPesquisa.Dominios.length > 0)
	{
		jQuery("#div_resultado").show();
		jQuery("#registro_observacao").show();
	}
	else
	{
		jQuery("#div_resultado").hide();
		jQuery("#registro_observacao").hide();
	}
	
	//Mostra a DIV com as sugestões de domínio
	if(objDominioPesquisa.Sugestoes.length > 0)
	{
		jQuery("#sugestao").show();
	}
	else
	{
		jQuery("#sugestao").hide();
	}
	
	/*setCookie("testeCookies", "aceita", 1);
	if (getCookie("testeCookies") != "aceita" && count == 0){
		count++;
	}*/

	//Adiciona ao HTML os domínios pesquisados
	jQuery('#pesquisa_dominio')
	.items('destroy')
	.items(objDominioPesquisa.Dominios)
    .chain({  
		'.input_dominio' : function (data, el)
		{
			el.attr("id", "dominio_" + data.Dominio + "_" + data.Sufixo);
			el.attr("alt", "Domínio " + data.Dominio + "." + data.Sufixo);
			el.val(data.Dominio+'||'+data.Sufixo);
			
			if(!data.Disponivel)
			{
				el.attr("disabled", true);
				el.attr("checked", false);
				//el.hide();

			}
			else
			{
				el.attr("disabled", false);
				el.attr("checked", true);

					if ((data.Sufixo=='com') || (data.Sufixo=='net')) 
					{
						el.addClass("pontocom");
						el.bind("click", checkpontocom)
						jQuery('#box_pergunta_notebook').show();
					}else{				
						el.removeClass("pontocom");				
					}
			}		
		},
		'.dominio_sufixo':function(data, el)
		{
//			if(count % 2 == 0){
//			el.attr("class", "dominio_sufixo dominio_par");
//			}
//			else{ el.attr("class", "dominio_sufixo dominio_impar");}
//			count++;

			if(count % 2 == 0){ 
				class_impar_par = "dominio_par";
			}
			else{ 
				class_impar_par = "dominio_impar";
			}
			count++;
			el.attr("class", "dominio_sufixo "+class_impar_par);
		},
		'.label_dominio': function (data, el)
		{
			el.attr("for", "dominio_" + data.Dominio + "_" + data.Sufixo)
			return data.Dominio + '.' + data.Sufixo;
		},
		'.img_promo_pontocom':function (data, el)
		{
			if ((data.Sufixo=='com') || (data.Sufixo=='net')) {
				el.show();
			}else{
				el.hide()
			}
		},
		'.img_promo_pontocom':function (data, el)
		{
			if ((data.Sufixo=='com') || (data.Sufixo=='net')) {
				el.show();
			}else{
				el.hide()
			}
		},
		'.disponibilidade' : function (data, el)
		{
			el.addClass(class_impar_par);
			if(data.LblDisponivel=="N")
			{
				el.addClass("indisponivel");
				return "No Disponible";
			}
			else if(data.LblDisponivel=="D")
			{
				return "Disponible";
			}
			else if(data.LblDisponivel=="C")
			{
				return "<img alt=\"Loading\" src=\"images/loading.gif\"/><br />Búsqueda";
			}
			else if(data.LblDisponivel=="E")
			{
				return "Error en la búsqueda, por favor <a href='javascript:void(0)' onclick='RPesquisaDominio(\""+data.Dominio+"\",\""+data.Sufixo+"\")'>inténtelo de nuevo.</a>";
			}			
			
		},
		'.valor' : function (data, el)
		{
			el.addClass(class_impar_par);
			if(!data.Disponivel)
			{
				return "";
			}
			else
			{
				//if ((data.Sufixo=='com') || (data.Sufixo=='net')) {
				//	return "<strong style=\"color:#29698E;\">US$ " + data.Valor.toFixed(2).replace(/\./gi, ",")+"</strong>" ;
				//}else{
					return "US$ " + data.Valor.toFixed(2).replace(/\./gi, ",") ;
				//}
			}
		}
	});
		
	//Adiciona ao HTML as sugestões
	//jQuery('#pesquisa_dominio_sugestao').fillTemplate(objDominioPesquisa.Sugestoes);
}

function LimpaDominio()
{
	if(jQuery('#input_dominio').val()){
		jQuery('#input_dominio').val(jQuery('#input_dominio').val().replace(/^www\./gi, "").replace(/\.(com\.br|com|net|org|info|name|adm\.br|nom\.br)$/gi, ""));
	}
}

function MudaOpcaoOutraExtensaoSelect(objDom)
{
/*	
	//Veririfica se veio do input
	if(jQuery(objDom).is("input"))
	{
		if(IsSelecionadoOutraExtensaoInput() && !IsSelecionadoOutraExtensaoSelect())
		{
			//Seleciona a segunda opção do select
			jQuery("#select_sufixo option")[1].selected = true;
		}
		else
		{
			//Seleciona a primeira opção do select
			jQuery("#select_sufixo option")[0].selected = true;
		}
	}
	//Veririfica se veio do select
	else
	{
		if(IsSelecionadoOutraExtensaoInput() && !IsSelecionadoOutraExtensaoSelect())
		{
			//"Descheca" o input
			jQuery("#input_sufixo_5").attr("checked", false);
		}
		else
		{
			//"Checa" o input
			jQuery("#input_sufixo_5").attr("checked", true);
		}
	}
	
	//Atualiza o valor do input
	jQuery("#input_sufixo_5").val(jQuery("#select_sufixo").val());*/
}

function IsSelecionadoOutraExtensaoInput()
{
	return jQuery("#input_sufixo_5").attr("checked");
}

function IsSelecionadoOutraExtensaoSelect()
{
	return (jQuery("#select_sufixo option:selected").val() != "0");
}

function RegistraDominios()
{
	var arrDominiosARegistrar = jQuery(".input_dominio:checked");
	
	if(arrDominiosARegistrar.length > 0)
	{
		jQuery.each(arrDominiosARegistrar,
			function (nCount, sDominioCompleto)
			{
				
				var sDominio = jQuery(sDominioCompleto).val().split("||")[0];
				var sSufixo = jQuery(sDominioCompleto).val().split("||")[1];
				
				var objInputDominio = jQuery("<input type='hidden'>").val(sDominio).attr("name", "nomeProcurar").addClass("input_postar");
				var objInputSufixo = jQuery("<input type='hidden'>").val(sSufixo).attr("name", "sufixoProcurar").addClass("input_postar");
				
				jQuery("#frm_registro").append(objInputDominio).append(objInputSufixo);
			}
		);
		
		jQuery("#frm_registro input:not(.input_postar)").attr("disabled", true)
		
		jQuery("#frm_registro select").attr("disabled", true);

		//Adiciona o campo especificando a lingua
		//Add the field taht specify the language
		var objInputLang = jQuery("<input type='hidden'>").val("es_ar").attr("name", "lang").addClass("input_postar");
		jQuery("#frm_registro").append(objInputLang);
		
		
		jQuery("#frm_registro").submit();
	}
	else
	{
		AlertModal("No ha seleccionado el dominio "," Por favor, seleccione los dominios que desea registrar.");
	}
}
function checkpontocom(){
	//alert('ver se tem algum pontocom clicado.\n\nse tiver deixa o box');
	//if(jQuery('.pontocom').attr('checked')){
	if( jQuery("input.pontocom:checked").length>0 )	
	{
			jQuery('#box_pergunta_notebook').show();
	}else{
			jQuery('#box_pergunta_notebook').hide();
	}
}
function chkSufixoPromoPontoCom(){

	if ((jQuery('#input_sufixo_2').attr("checked")) || (jQuery('#input_sufixo_3').attr("checked"))) {
			jQuery('#box_pergunta_notebook').show();
	}else{
			jQuery('#box_pergunta_notebook').hide();
	}

}

//FUNÇÕES DE DOMÍNIOS

function ValidaDominio(nome, sufixo)
{	
	
	if ((sufixo != 'nom.br') && (nome.indexOf('.') > 0))
	{
		return false;
	}

	var dominioCompleto;	
	dominioCompleto = nome + '.' + sufixo;	
	
	var filter = /^([a-zA-Z0-9-]+\.){0,3}([a-zA-Z0-9-]){2,61}\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2})?$/
	var filterGeneric = /^([a-zA-Z0-9-]+\.){0,3}([a-zA-Z0-9-]+){2,61}\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2})?$/

	filter = filterGeneric;
	if(dominioCompleto.length > 63)			
		return false;		


	if (filter.test(dominioCompleto)){
		if(nome.substring(0, 1) == '-')			
			return false;
		
		if(nome.substring(nome.length - 1, nome.length) == '-')			
			return false;
		
		return true;
	}
	else
		return false;
}