// JavaScript Document

$(function() {
	// Preload associated images
	$(['themes/lusion/images/pop-up-box-b.png','themes/lusion/images/bg-pop-up-box.png','themes/lusion/images/bg-pop-up-bottom.png']).each(function(){ 
		$('<img>').attr('src',this);
	});
	var dr = $('#domain-input');
	var holder = dr.parent().parent();
	var r = $('#lookup-result');
	var t_update = null;
	var d;
	var nextid = 1;
	var domid = {};
	var result = {};
	var orig = null; var set = null;

	var look = function(domain) {
		if (!domid[domain]) domid[domain] = nextid++;

		var r = $('<tr>');
		r.append($('<td style="text-align:left;padding-bottom:2px;border-bottom: 1px dashed #afc070;">').text(domain));

		var state = 'check';
		if (result[domain] == undefined) {
			result[domain] = 'check';
			$.getJSON('/ajax/checkdomain.php',{'domain':domain},function(json){
				if (!json['status']) json['status'] = 'unknown';
				result[domain] = json['status'];
				$('#domaincheck_'+domid[domain]).attr('src','themes/lusion/images/domain-'+json['status']+'.gif');
			});
		}else{
			state = result[domain];
		}
		r.append($('<td class="popimage" style="padding-bottom:0px;border-bottom: 1px dashed #afc070;">').html($('<img src="themes/lusion/images/domain-'+state+'.gif">').attr('id','domaincheck_'+domid[domain])));
		r.css('cursor','pointer');
		r.mouseover(function(){ orig = dr.val(); set = domain; dr.val(domain);});
		r.mouseout(function(){ dr.val(orig); orig = null; });
		r.click(function() { window.location = 'https://www.securebill.co.za/ltserv/signup/?domain='+domain; });
		return r;
	}
	var lookup = function() {
		var p = d.split('.');
		var sld = p[0];
		var tld = p.length>1?p.slice(1).join('.'):'';

		var t = $('<table style="width:100%">');
		if (tld) t.append(look(sld+'.'+tld));
		if (tld == 'co.za' || tld == 'za.net' || tld == 'org.za') {
			if (tld != 'co.za') t.append(look(sld+'.co.za'));
			if (tld != 'org.za') t.append(look(sld+'.org.za'));
			if (tld != 'za.net') t.append(look(sld+'.za.net'));
		}else if (tld != 'co.za') {
			t.append(look(sld+'.co.za'));
		}
		if (tld != 'com') t.append(look(sld+'.com'));
		if (tld != 'net') t.append(look(sld+'.net'));
		if (tld != 'org') t.append(look(sld+'.org'));

		r.html('<h1 style="margin-bottom:5px;color:brown;">Checking availability...</h1>');
		r.append(t);
	};

	var lastUpdate = "~";
	var update = function() {
		if (orig && dr.val()==set) return;
		if (dr.hasClass('tip')) {
			dr.removeClass('tip'); dr.val('');
		}

		d = dr.val();

		if (d == lastUpdate) return;
		else lastUpdate = d;

		if (t_update) clearTimeout(t_update);
		if (d == "") {
			r.html('Enter a domain (eg. <strong>mysite.com</strong>)');
		}else{
			r.html('<h1>Checking...</h1>');
			t_update = setTimeout(lookup,800);
		}
	};
	dr.keyup(update).change(update);

	var blurTimeout = 0;
	dr.focus(function() {
		clearTimeout(blurTimeout); blurTimeout = 0;
		holder.addClass('input-selected');
	});
	dr.blur(function() {
		if (!blurTimeout) blurTimeout = setTimeout(function() {
			holder.removeClass('input-selected');
		},200);
	});

	dr.addClass('tip');
	dr.val('enter-your-domain.co.za');
});
