/**
* ###############################################
* HOSTING MX Servicios en Internet 2008
* IMPORTANT: DO NOT CHANGE ANYTHING BELOW THIS POINT UNLESS YOU KNOW WHAT YOU ARE DOING
* ONLY HMX.DEVS CAN CHANGE
* ###############################################
*/
/* Funcion principal ejecutada cada vez que se visita el panel de dominios
*/ 
$(document).ready(function(){
	//al presionar enter en el cuadro de texto con el nombre del dominio, ejecuto la busqueda whois
	$('input#domain_name').keydown(function(e){
		if (e.keyCode == 13) 
		{	var domain=$('input#domain_name').val();
			if(domain.length>0 && special_chars(domain))
			{	$(".searchsubmit").click();
				$(this).blur();
			} else
			{	alert("Introduce un nombre de dominio v\u00E1lido");	return false;
				$("input#domain_name").focus();
			}
		} 
	});
	
	var from_main_dialog=$("input[@name=from_main_dialog]").val();	
    var from_mxtlds=$("input[@name=from_mxtlds]").val();
    if(from_main_dialog==0 && from_mxtlds==0)
    {	//
		$("li.home").addClass('active');
		$("li.home > a").addClass('active');
		//
		$.ajax({
			beforeSend: function(){
			 $("#panelmain").html('<img src="http://images.hostingmx.com.mx/global/elements/domainpanel/loading.gif" width="32" height="32">');
			},
			url: "includes/tldmodule_domaininfo.html",
			cache: false,
			success: function(content){
			$("#panelmain").html(content);
			}
		});
	}
	else{ 
		var domain_search=$("input[@name=domain_search]").val();
        $("#domain_name").val(domain_search);       
		click_action(1);
	}
	
	// HOME NAV TOGGLE
	$("li.home > a").click(function () {
		$(".panelnav *").removeClass('active');
		$("li.home").addClass('active');
		$("li.home > a").addClass('active');
		$.ajax({
			beforeSend: function(){
 	     	$("#panelmain").html('<img src="http://images.hostingmx.com.mx/global/elements/loading.gif" width="32" height="32">');
 	  		},
  			url: "includes/tldmodule_domaininfo.html",
  			cache: false,
  			success: function(html){
  			$("#panelmain *").hide();
   			$("#panelmain").html(html);
  			}
		});
    });
	
	// .MX NAV TOGGLE
	$("li.mx > a").click(function () {
		$(".panelnav *").removeClass('active');
		$("li.mx").addClass('active');
		$("li.mx > a").addClass('active');
		//
		$.ajax({
			beforeSend: function(){
 	     	$("#panelmain").html('<img src="http://images.hostingmx.com.mx/global/elements/loading.gif" width="32" height="32">');
 	  		},
  			url: "includes/tldmodule_mxtld.html",
  			cache: false,
  			success: function(html){
  			$("#panelmain *").hide();
   			$("#panelmain").html(html);
   			//
   			$("li#mx-com").addClass('active');
			$("li#mx-com > a").addClass('active');
			//
			$("li#mx-com > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#mx-com").addClass('active');
				$("li#mx-com > a").addClass('active');
				//
				load_mxtld_com_info()
    		});
    		load_mxtld_com_info()
    		
    		//
    		$("li#mx-org > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#mx-org").addClass('active');
				$("li#mx-org > a").addClass('active');
				//
				load_mxtld_org_info()
    		});
    		
   			//
   			$("li#mx-gob > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#mx-gob").addClass('active');
				$("li#mx-gob > a").addClass('active');
				//
				load_mxtld_gob_info()
   			});
   			
   			//
    		$("li#mx-edu > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#mx-edu").addClass('active');
				$("li#mx-edu > a").addClass('active');
				//
				load_mxtld_edu_info()
   			});
   			
    		}
		});
    });
    
    // GENERIC NAV TOGGLE
    $("li.generic > a").click(function () {
		$(".panelnav *").removeClass('active');
		$("li.generic").addClass('active');
		$("li.generic > a").addClass('active');
		//
		$.ajax({
			beforeSend: function(){
 	     	$("#panelmain").html('<img src="http://images.hostingmx.com.mx/global/elements/loading.gif" width="32" height="32">');
 	  		},
  			url: "includes/tldmodule_gtld.html",
  			cache: false,
  			success: function(html){
  			$("#panelmain *").hide();
   			$("#panelmain").html(html);
   			//
   			$("li#g-com").addClass('active');
			$("li#g-com > a").addClass('active');
			//
			$("li#g-com > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-com").addClass('active');
				$("li#g-com > a").addClass('active');
				//
				load_gtld_com_info()
    		});
    		load_gtld_com_info()
    		
    		//
    		$("li#g-net > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-net").addClass('active');
				$("li#g-net > a").addClass('active');
				//
				load_gtld_net_info()
    		});
    		
    		//
    		$("li#g-org > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-org").addClass('active');
				$("li#g-org > a").addClass('active');
				//
				load_gtld_org_info()
    		});
    		
   			//
   			$("li#g-biz > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-biz").addClass('active');
				$("li#g-biz > a").addClass('active');
				//
				load_gtld_biz_info()
   			});
   			
   			//
    		$("li#g-info > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-info").addClass('active');
				$("li#g-info > a").addClass('active');
				//
				load_gtld_info_info()
   			});
   			
   			//
    		$("li#g-name > a").click(function () {
				$(".sbmodule *").removeClass('active');
				$("li#g-name").addClass('active');
				$("li#g-name > a").addClass('active');
				//
				load_gtld_name_info()
   			});
   			
    		}
		});
    });
    
	// FAQ NAV TOGGLE
    $("li.faq > a").click(function () {
		$(".panelnav *").removeClass('active');
		$("li.faq").addClass('active');
		$("li.faq > a").addClass('active');
    });
	
	//	
	placeholder($("input#domain_name"));
	init_search_submit();
	
	$("div.getstarted-button > a").click(function(){
		$("#domain_name").val("").blur();
		$("#domain_name, .prettysearch-lfcap, .prettysearch-rgcap").effect("pulsate", { times: 2 }, 500);
    });
});

function load_mxtld_com_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_mxtld_com.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_mxtld_org_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_mxtld_org.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_mxtld_gob_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_mxtld_gob.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_mxtld_edu_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_mxtld_edu.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

//

function load_gtld_com_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_com.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_gtld_net_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_net.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_gtld_org_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_org.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_gtld_biz_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_biz.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_gtld_info_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_info.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_gtld_name_info (){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_gtld_name.php",
		cache: false,
		success: function(html){
		$(".modulecontent *").hide();
		$(".modulecontent").html(html);
		}
	});
}

function load_sh_options()
{	$.ajax({					
		url: "includes/tldmodule_dmregister_sh-options.html",
		cache: false,
		success: function(html){
			$("#viewer").html(html);
			init_other_button();
		}
	});
}

/* init_add_button()
 * Funcion para inicializar el boton de agregar que parece con el resultado de una busqueda WHOIS
*/
function init_add_button()
{	$(".so-addbutton").click(function(){
		var domain=$("input[@name=domain]").val();
		var tld=$("input[@name=ext]").val();
		var dataString="domain="+domain+"&tld="+tld;		
		$.ajax({
			type: "POST",
			url: "includes/insert_domain.php",
			async: true,						
			data: dataString,
			success: function(content) {
				refresh_domain_list();
				mark_domain_added(domain+'.'+tld);
			}
		});	
	});
}
/* mark_domain_added(whole_domain)
 * Funcion que muestra el icono de "agregado" en los dominios opcionales mostrados en el viewer
*/
function mark_domain_added(whole_domain)
{	var num_doms=$("input[@name=num_doms]").val();
	for(j=1;j<=num_doms;j++)
	{	if($("input[@name=full_dom_name"+j+"]").val()==whole_domain)
		{	$("img#add_ok"+j).show();
			$("img#add_icon"+j).hide();	
			break;
		}
	}
}

/* enable_domain(domain)
 * Funcion que permite habilitar nuevamente el boton de agregar al eliminar un dominio de la lista en el carrito
*/
function enable_domain(domain)
{	var num_doms=$("input[@name=num_doms]").val();
	for(j=1;j<=num_doms;j++)
	{	if($("input[@name=full_dom_name"+j+"]").val()==domain)
		{	$("img#add_ok"+j).hide();
			$("img#add_icon"+j).show();				
			break;
		}
	}
}

/* remove_action(domain,j)
 * Funcion que programa el evento click de los iconos de eliminacion para que ejecuten la accion de eliminar un dominio seleccionado 
    para enviar al carrito de compras, es decir uno de los dominios que aparecene en la lista del lado derecho
*/ 
function remove_action(domain,j)
{	var dataString='domain='+domain;
	$.ajax({
		type: "POST",
		url: "includes/remove_domain.php",
		beforeSend: function(){
			$("img#remove_icon"+j).hide();
			$("img#remove_loading"+j).show();
		},
		async: true,						
		data: dataString,
		success: function() {					
			refresh_domain_list();
			enable_domain(domain);				
		},
		error: function(){           	    
        	remove_action(domain,j);
       	}
	});
}

/* refresh_domain_list()
 * Funcion que permite recargar la lista de dominios seleccionados para que el usuario pueda observar un cambio realizado sobre
   el carrito como agregar o eliminar un dominio 
*/
function refresh_domain_list()
{	$.ajax({
		type: "POST",
		url: "includes/domain_list.php",		
		async: true,						
		data: "ajax_petition=1",
		success: function(content) {
			$("div#sbsummary").html(content);
		}
	});
}

/* init_whois_button()
 * Funcion que inicializa el evento click para el boton "whois" y as poder consultar informacion del registrador de un dominio ocupado
*/
function init_whois_button()
{	$(".so-whoisbutton").click(function(){
		$.ajax({
			beforeSend: function(){
				$("#viewer").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/viewer/loading.gif" width="16" height="16">');
			},
			url: "includes/tldmodule_dmregister_ws-content.html",
			async: true,						
			success: function(content) {
				$("#viewer").html(content);
				var domain=lower_str($("input[@name=domain]").val());
				var tld=$("input[@name=ext]").val();
				var dataString="domain="+domain+"&ext="+tld+"&show_raw=1";
				$.ajax({
					type: "POST",
					url: "/global/modules/whois/mwhois.php",
					async: true,						
					data: dataString,
					success: function(content) {
						$("#whoiscontent").html(content);
					}
				});				
			}		
		});		
	});
}

/*Funcion que ejecuta las operaciones que son necesarias al dar click sobre el boton "registrar dominio" o al dar click sobre el boton "buscar" tambien se ejectua al pulsar un enter en el cuadro de texto para ingresar el dominio deseado. Recibe como parmetro el valor serach con dos posibilidades 0 o 1. 0 es utilizado cuando no hay una bsqueda activa, es decir cuando se ha dado un click sobre el boton "registrar dominio". Se envia el valor 1 cuando se esta ejectando esta funcion con una bsqueda de dominio, de esta manera se ejecutan las llamadas a todas las peticiones whois necesarias para desplegar el resultado.*/  
function click_action(search)
{   $(".panelnav *").removeClass('active');
	$("li.register").addClass('active');
	$("li.register > a").addClass('active');
	if(document.getElementById("total_list"))
	   reload_right_parts(search);	
	else
	{	$.ajax({
			beforeSend: function(){
			$("#panelmain").html('<img src="http://images.hostingmx.com.mx/global/elements/loading.gif" width="32" height="32">');
			},
			url: "includes/tldmodule_dmregister.php",
			cache: false,
			success: function(html){		
				$("#panelmain").html(html);
				var default_page=$("input[@name=default_page]").val();
				if(default_page==1)
					reload_right_parts(search);
				else
					load_dmregister_info(1,search);
				init_checkout_button();                								
			}
		});		
	}	
}

/*Funcion para recargar los divs del lado derecho de la pantala cuando te encuentras en el pantalla de registro de dominios*/
function reload_right_parts(search)
{	if(search==1)		
	{	if(parseInt($("input[@name=default_page]").val())==1)
			load_dmregister_info(1,search);		
		else
		{	var dataString = 'domain='+ lower_str($("input#domain_name").val()) + '&ext=' + $("select#tld").val();  
			var domain=lower_str($("input#domain_name").val())+"."+$("select#tld").val(); 	
			$(".so-addbutton, .so-otherbutton, .so-whoisbutton").hide();
			$.ajax({
				type: "POST",
				url: "/global/modules/whois/mwhois.php",
				async: true,						
				data: dataString,
				success: function(content) {
					$("#searchresult").html(content);
					var pattern=/disponible/;
					if(pattern.test(content))
						$(".so-addbutton, .so-otherbutton").show();						
					else
						$(".so-whoisbutton, .so-otherbutton").show();
					init_whois_button();
					init_add_button();
					init_other_button();
				}
			});
			var domain_name=lower_str($("input#domain_name").val());
			var tld=$("select#tld").val();
			tlds=get_tlds();
			/*if(!domain_validate(domain_name+"."+tld)) alert("Debes introducir un nombre de dominio valido");   */
			/*else */
			{	$.ajax({
				beforeSend: function(){
				$("#viewer > *").remove();
				},
				url: "includes/tldmodule_dmregister_sh-options.html",
				success: function(content) {
					$("div#viewer").html(content);				
					search_whois(domain_name,tlds,0,tlds.length);
					}
				});
				$("input#domain_name").val("").blur();    			  	  	  	  
			}
		} 				
	}
	else
	{	$.ajax({			
			beforeSend: function(){
			/*$(".contentwrap").html('<img src="http://images.hostingmx.com.mx/global/elements/domainpanel/loading.gif" width="32" height="32">');*/
			},
			url: "includes/default.html",
			success: function(content) {
				$(".contentwrap").html(content);				
			}
		});
	}
}

//
function load_dmregister_info (come_back,search){
	$.ajax({
		beforeSend: function(){
		$(".modulecontent").html('<img src="http://images.hostingmx.com.mx/domainregister/domainpanel/elements/loading.gif" width="32" height="32">');
		},
		url: "includes/tldmodule_dmregister_viewer.html",
		cache: false,
		success: function(content){
			$(".modulecontent").html(content);
			if(come_back==1)
				reload_right_parts(search);			
		}
	});	
}

/*Funcion que inicializa el evento click para el boton de checkout*/
function init_checkout_button()
{	$("#register_button").click(function(){
		var num_doms=parseInt($("input[@name=total_list]").val());
		if(num_doms>0)	$("form#redirect_form").submit();
		else alert("No hay dominios en tu carrito");
	});
}

/*Funcion para inicializar el evento click para el boton "buscar"*/
function init_search_submit()
{  $("input.searchsubmit").click(function(){      
      click_action(1);      
   });
}

/*Funcion que establece los terminaciones de dominio que sern ejecutadas en cada bsuqeda que realice el usuario*/
function get_tlds()
{  	var tld=["com.mx","edu.mx","gob.mx","org.mx","com","net","org","biz","info","name"];
	return tld;
}

/*Funcion para extraer el tld de un nombre de dominio completo, ejemplo recibe "hostingmx.com.mx" y retorna "com.mx"*/
function get_tld(domain_name)
{   domain_parts=domain_name.split(".");
    var tld=domain_parts[1];
    for(i=2; i < domain_parts.length; i++)
      tld+="."+domain_parts[i];
    return tld;
}

/*Funcion para agregar un dominio "opcional" al carrito de compras*/
function add_action(domain,tld,j)
{	var dataString="domain="+domain+"&tld="+tld;
	$.ajax({
		type: "POST",
		url: "includes/insert_domain.php",
		beforeSend: function(){
			$("img#add_icon"+j).hide();
			$("img#add_loading"+j).show();
		},
		data: dataString,
		success: function() {
			refresh_domain_list();
			$("img#add_ok"+j).show();			
			$("img#add_loading"+j).hide();
		},
		error: function(){           	    
        	add_action(dataString,j);
       	}
	});	
}


/*Funcion de llamadas recursivas para realizar la bsqueda whois para todos los dominios que aparecen en el arreglo de extensiones devuelto por la funcion get_tlds, cicla ejecucion hasta obtener resultado de todas las bsquedas*/
function search_whois(domain_name,tlds,j,max)
{	if(j>=max) 
	{	$.ajax({
			url: "includes/domain_options.php",
			success: function(content) {
				$("div#searchoptions").html(content);
                clear_list_action();
			}
		});
	}
	else
	{	
		var dataString = 'domain='+ domain_name + '&ext=' + tlds[j];  	   	
		$.ajax({
			type: "POST",
			url: "/global/modules/whois/mwhois.php",
			async: true,	
			data: dataString,
			success: function(content) {	    						
			search_whois(domain_name,tlds,j+1,max);
			},		   
		    error: function(){           	    
           	    search_whois(domain_name,tlds,j+1,max);           	    
            }
		});	
	}
}

/* Funcion que hace parpadear el cuadro de texto con id "domain_name" 3 veces para llamar la atencion del usuario al hacer click sobre el boton "other_button" */
function blink_effect(){
	$("#domain_name").val("").blur();
	$("#domain_name, .prettysearch-lfcap, .prettysearch-rgcap").effect("pulsate", { times: 2 }, 500);
}

/*Funcion que inicializa la el evento click para el boton "buscar otro", utiliza una funcion de libreria de efectos jquery para resaltar el cuadro de texto de bsqueda*/
function init_other_button()
{	$("a.so-otherbutton").click(function(){
		blink_effect();	
	});
}