// whois-lookup javascript

window.addEvent('domready', function() {
	whoisLookup = new WhoisLookup();
});

var WhoisLookup = new Class({

    prompt: 'Enter keyword or domain',
    supportedSpaces: new RegExp("\.(co.nz|net.nz|org.nz|gen.nz|geek.nz|maori.nz|ac.nz|school.nz|com.au|net.au|org.au|com|net|org|info|biz|travel|mobi|us|ca|co.uk|asia|eu)$", "gi"),

	initialize: function() {
		if($defined($('domain'))) {
			if ($('domain').value == '' || $('domain').value == this.prompt) { // add prompt to input
				$('domain').value = this.prompt; $('domain').setStyle('color', '#999');
			}
			
			$('domain').addEvent('focus', function(e) { // clear prompt on focus
				if($('domain').value == this.prompt) {
					$('domain').value = ''; $('domain').setStyle('color', '#000');
				}
			}.bind(this));

			$$('#frmWhois .domain').addEvents({
		        'mouseover': function() {
					$('submit').setStyle('color', '#666');
				},
		        'mouseout': function() {
					$('submit').setStyle('color', '#ccc');
				}
		    });
			
			$('submit').addEvent('click', function(e) { // add some validation
				if($('domain').value == this.prompt || $('domain').value.trim() == '') {
					alert('Please enter a domain name'); $('domain').focus(); return false;
				} else if(!$('domain').value.match(/^[A-Za-z0-9\.-]{2,63}$/) || $('domain').value.match(/^-/) || $('domain').value.match(/-\./) || $('domain').value.match(/^.{2}--/) || $('domain').value.match(/\.\./)) {
					alert('Please enter a valid domain name'); $('domain').focus(); return false;
				} else if($('domain').value.match(/\./) && !$('domain').value.match(this.supportedSpaces)) {
					alert('This domain space is unsupported'); $('domain').focus(); return false;
				}
			}.bind(this));
		}
 	}

});
