//+--------------------------------------------------------------------------+
//| domain.js							                                         |
//+--------------------------------------------------------------------------+

var isQuerying = false;
function queryDomains() {    
	var email = $('lf-email').value;
	var username = $('lf-username').value;
	
	if ( isQuerying == false ) {
		
		new Effect.BlindUp($('nbox-form'));

		var uri = '/xml/domains.php';
		var jx = new Ajax.Request(
		uri,
		{
			method: 'get',
			parameters: 'email=' + email + '&username=' + username,
			onSuccess: listDomains,
			onFailure: listDomainsError
		});
	}
	isQuerying = true;
}

function listDomains(response) {
	var html = '';
	isQuerying = false;
	var xmlObj = response.responseXML;
	var tags = xmlObj.getElementsByTagName('item');
	
	// clear the results
	$('nbox-results').innerHTML = '';
	html = "<h5>Results</h5>";
	for (var i=0;i<tags.length;i++) {
		var item = tags[i];
		html += '<div><a href="http://' + item.getElementsByTagName('domain')[0].firstChild.nodeValue + '">' + item.getElementsByTagName('domain')[0].firstChild.nodeValue + '</a></div>';
	}
	
	if ( tags.length == 0 ) {
		html += '<div>No accounts were found using your criteria. Click back and try again.</div>';
	} else {
		html = html.replace('</h5>', '</h5><div>After clicking on the link below please be sure to bookmark the page for speedier logins.</div>');
	}

	$('nbox-results').innerHTML = html;

	// search again object
	var inputButton = document.createElement('INPUT');
	inputButton.style.marginTop = '10px';
	inputButton.type = 'BUTTON';
	inputButton.value = 'Back';
	inputButton.id = 'lf-again';
	inputButton.onclick = function() { 
		new Effect.BlindUp('nbox-results', {afterFinish: 
				function() { 
					isQuerying = false; 
					new Effect.BlindDown('nbox-form', {afterFinish: function() { isToggling = false; } });
				} });
	};
	inputButton.className = 'button';
	$('nbox-results').appendChild(inputButton);

	new Effect.BlindDown($('nbox-results'));
}

function listDomainsError(response) {
	var xmlObj = response.responseXML;
	alert('A request error occurred.');
}

// container LI

function buildDomainBox() {
	var anchor = $('domain');

	// if we don't find the node, exit out.
	if ( anchor == null ) return;

	var nbox = document.createElement('div');
	nbox.id = "nbox";
	nbox.style.position = 'absolute';
	// align mac safari and ff 1
	if ( /safari/i.test(navigator.userAgent) || /firefox\/1/i.test(navigator.userAgent) ) {
		nbox.style.marginLeft = '661px';	
	} else {
		nbox.style.marginLeft = '684px';
	}
	anchor.appendChild(nbox);
	Element.hide(nbox);

	var nboxform = document.createElement('div');
	nboxform.id = 'nbox-form';
	nbox.appendChild(nboxform);
	
	var nheading = document.createElement('h5');
	nheading.innerHTML = 'Forgot your Intervals URL? Enter your email address and username to retrieve it:';
	nheading.id = 'n-heading';
	nboxform.appendChild(nheading);
	
	var fieldSet = document.createElement('FIELDSET');
	nboxform.appendChild(fieldSet);

	var emailLabel = document.createElement('LABEL');
	emailLabel.innerHTML = 'Email';
	fieldSet.appendChild(emailLabel);

	var inputEmail = document.createElement('INPUT');
	inputEmail.type = 'TEXT';
	inputEmail.value = '';
	inputEmail.id = 'lf-email';
	inputEmail.tabIndex = 1;
	Event.observe(inputEmail, 'keyup', function(e) {
		if(e.keyCode == Event.KEY_RETURN) {
			queryDomains();
		}
	});
	emailLabel.appendChild(inputEmail);

	var usernameLabel = document.createElement('LABEL');
	usernameLabel.innerHTML = 'Username';
	fieldSet.appendChild(usernameLabel);

	var inputUsername = document.createElement('INPUT');
	inputUsername.type = 'TEXT';
	inputUsername.value = '';
	inputUsername.id = 'lf-username';
	inputUsername.tabIndex = 2;
	Event.observe(inputUsername, 'keyup', function(e) {
		if(e.keyCode == Event.KEY_RETURN) {
			queryDomains();
		}
	});
	usernameLabel.appendChild(inputUsername);

	var inputButton = document.createElement('INPUT');
	inputButton.style.marginTop = '19px';
	inputButton.type = 'BUTTON';
	inputButton.value = 'Retrieve';
	inputButton.id = 'lf-button';
	inputButton.onclick = function() { queryDomains(); };
	inputButton.className = 'button';
	inputButton.tabIndex = 3;
	nboxform.appendChild(inputButton);

	var inputCancel = document.createElement('INPUT');
	inputCancel.style.marginTop = '4px';
	inputCancel.type = 'BUTTON';
	inputCancel.value = 'Cancel';
	inputCancel.id = 'lf-cancel';
	inputCancel.onclick = function() { toggleDomainBox(); };
	inputCancel.className = 'button';
	inputCancel.tabIndex = 4;
	nboxform.appendChild(inputCancel);
	
	var nboxresults = document.createElement('div');
	nboxresults.id = 'nbox-results';
	nbox.appendChild(nboxresults);

	var nboxbottom = document.createElement('div');
	nboxbottom.style.paddingBottom = '10px';
	nboxbottom.style.clear = 'both';
	nboxbottom.style.width = '90%';
	nboxbottom.innerHTML = '&nbsp;';
	nboxbottom.style.lineHeight = nboxbottom.height = '1px';
	nbox.appendChild(nboxbottom);

	Element.hide(nboxresults);
	buildCss();
}

function buildCss() {
	var headID = document.getElementsByTagName("head")[0];
	var cssNode = document.createElement('link');
	cssNode.type = 'text/css';
	cssNode.rel = 'stylesheet';
	cssNode.href = '/css/domain.css';
	cssNode.media = 'screen';
	headID.appendChild(cssNode);
}

var isToggling = false;
function toggleDomainBox() {
	var containter = $('nbox');
	if ( isToggling == false ) {
		if ( containter.style.display == 'none' ) {
			if ( /firefox\//i.test(navigator.userAgent) ) {
				$('page').style.overflow = 'hidden'; // fixes the disappearing textfield cursor bug
			}
			new Effect.BlindDown(containter, {afterFinish: function() { isToggling = false; } });
		} else {
			if ( /firefox\//i.test(navigator.userAgent) ) {
				$('page').style.overflow = 'auto'; // fixes the disappearing textfield cursor bug
			}
			new Effect.BlindUp(containter, {afterFinish: function() { isToggling = false; } });
		}
	}
	isToggling = true;
	return false;
}

Event.observe(window, 'load', buildDomainBox);