var verifiedPassword = false;
var verifiedEmail = false;
var verifiedUser = true;
var acceptedTOS = false;

var displays = true;

redx = "<img src='/images/red_x.gif' />";
greencheck = "<img src='/images/green_check.gif' />";


Event.observe(document, 'dom:loaded', function()
{
	$('submit').disabled=true;
	Event.observe(document.createuser, 'submit', formSubmit);
	
	$('emailverify').observe('mouseover', dispMsg.bind(this,$('emailverify')) );
	$('emailverify').observe('mouseout', hideMsg );
	$('passwordmsg').observe('mouseover', dispMsg.bind(this,$('passwordmsg')) );
	$('passwordmsg').observe('mouseout', hideMsg );

});
	
emailUsed = function() {
	var useremail = $('useremail');
	var url = "/ajax/emailexist/email/"+escape(useremail.value);
	
	new Ajax.Request(url, {
		asynchronous: false,
		method: 'post',
		onSuccess: function(t) {
			this.last_result = t.responseJSON;
		}.bind(this)
	});

	return (this.last_result);
}

	
function verifyEmail() {
	var useremail = $('useremail');
			
	if (validEmail(useremail.value)) { 
		if (emailUsed() == "true") {
			$('emailverify').innerHTML = redx + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>"; //+ " Email Address Used";
			$('emailverify').writeAttribute('msg', 'Email Address Used');
			
			verifiedEmail = false;
		} else {
			$('emailverify').innerHTML = greencheck + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>"; // + " Email OK";
			$('emailverify').writeAttribute('msg', 'Email OK');
			verifiedEmail = true;
		}
	} else {
		$('emailverify').innerHTML = redx + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>";// + " Invalid Email Address";
		$('emailverify').writeAttribute('msg', 'Invalid Email Address');
		verifiedEmail = false;
	}
	checkButton();
}

function verifyPassword() {
	elPW   = $('password');
	elCPW  = $('confirmPassword');
	elPMsg = $('passwordmsg');
			
	if (elPW.value != "" || elCPW.value != "") {
		if (elPW.value.length < 6) {
				elPMsg.innerHTML = redx + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>";// + " Password must be at least 6 characters.";
				elPMsg.writeAttribute('msg', 'Password must be at least 6 characters.');
				verifiedPassword = false;
		} else {
			if (elPW.value == elCPW.value) {
				elPMsg.innerHTML = greencheck + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>"// + " Passwords Match";
				elPMsg.writeAttribute('msg', 'Passwords Match.');
				verifiedPassword = true;
			} else {
				elPMsg.innerHTML = redx + "<a class='helplnk' onclick='return false;' href='#'>[Help]</a>";// + " Passwords Do Not Match";
				elPMsg.writeAttribute('msg', 'Passwords Do Not Match.');
				verifiedPassword = false;
			}
		}
		checkButton();
	}
}
		
function verifyTOS() {
	elTOS = $('tosAccept');

	if (document.createuser.tosAccept[1].value == 0) {
		acceptedTOS=document.createuser.tosAccept[0].checked;
	} else {
		acceptedTOS=document.createuser.tosAccept[1].checked;
	}
	checkButton();
}
		
function checkVerified() {
	var required = $('createuserform').select('.required');
	var missing = required.findAll($f); // NOTE: lowercase F

	if (verifiedUser && verifiedEmail && verifiedPassword && acceptedTOS && !missing.length && displays) {
		return true;
	} else {
		return false;
	}
}

function checkDisplays() {
	dispName  = $('dispname-1').checked;
	dispEmail = $('dispemail-1').checked;
	dispPhone = $('dispphone-1').checked;
	
	if (!dispEmail && !dispPhone) {
		alert ("You must display either Email or Phone");
		displays=false;
	} else {
		displays=true;
	}

	checkButton();
}

function checkButton() {
	$('submit').disabled=!checkVerified();
}

function formSubmit(event) {
	if (!checkVerified()) {
		return Event.stop(event);
	}
}


// This should be converted to use common.js displayBox function
function dispMsg(el) {
	$('dispmsgbox').innerHTML = '<p>'+el.readAttribute('msg')+'</p>';
	
	var tmp = el;
	mLeft = mTop = 0;
         
	while(tmp.offsetParent)
	{
		mLeft += tmp.offsetLeft;
		mTop += tmp.offsetTop;
		tmp = tmp.offsetParent;
	}
	
	msgboxDim = $('dispmsgbox').getDimensions();
	
	$('dispmsgbox').style.top = (mTop+10)+'px';
	$('dispmsgbox').style.left = (mLeft-msgboxDim.width-10)+'px';
}

function hideMsg() {
	$('dispmsgbox').style.left='-1000px';
}

