//JJ's Ajax form enhancements. Feb-2009
var EMAIL_VALIDATION_STATE = 0;

function checkRegiForm()
{	
	var errormessage = document.getElementById('errormessage').firstChild;
	
	//check username is not empty
	var username = document.getElementById('username');
	if (username.value.length < 1){
		$('username_error').firstChild.nodeValue = 'Ingresa un nombre de usuario v\341lido.';
		$('username_error').style.display = 'block';
		username.parentNode.className = 'highlight';
		username.focus();
		return false;	
	}
	
	//check if username contains non-alphanumeric characters
	//"!", "&", "`","~","#","%","$","^","*","(",")","+","=","[","{","]","}","|",";",":",">",",","?","'","<","\\","/","\"",
	var alaphaNumericCheck = new RegExp("\\W");
	var alphaNumCheckResult = alaphaNumericCheck.exec(username.value);
	if (alphaNumCheckResult != null){
		$('username_error').firstChild.nodeValue = 'Los caracteres permitidos son n\372meros, letras y guiones bajos.';
		$('username_error').style.display = 'block';
		username.parentNode.className = 'highlight';
		username.focus();
		return false;
	}
	
	//check if username contains words that are blocked
    var badNames = new Array();
    badNames = ["fuck","close","auction","cancel","prick","bidz","admin","listing","access","stop","bitch",
       "vagina","penis","bastard","bloody","jesus","arse","balls","bollocks","cock","crap","cunt","fart","knob",
       "prick","pussy","shit","tits","twat","nutter","retard","schizo","spastic","battyboy","dyke","faggot","poof",
       "queer","blaad","bumbu","chichi","hoockie","punani","bastard","bitch","dickhead","slag","slut","wanker",
       "whore","bonk","bugger","poke","shag","chink","kyke","kike","nigger","paki","papist","pikey","yid","guest_account"];
    for (var i = 0;i<badNames.length;i++){
    	if (username.value.indexOf(badNames[i]) > -1){
			$('username_error').firstChild.nodeValue = 'Tu nombre de usuario contiene una palabra o expresi\363n que no se permite en nuestro sitio web para los nombres de usuarios. Por favor, usa un nombre de usuario alternativo.';
			$('username_error').style.display = 'block';
			username.parentNode.className = 'highlight';
			username.focus();
    		return false;
		}
    }
	
	$('username_error').firstChild.nodeValue = '';
	$('username_error').style.display = 'none';
	username.parentNode.className = 'valid';
    
	//check password fields are not empty and are the same
	var password = document.getElementById('password');
	var passwordConfirm = document.getElementById('passwordConfirm');
	if (password.value.length < 1){		
		$('password_error').firstChild.nodeValue = 'Ingresa una contrase\361a v\341lida.';
		$('password_error').style.display = 'block';
		password.parentNode.className = 'highlight';
		password.focus();
		return false;
	}
	
	//check if password was entered but confirm password was not.
	if (password.value.length > 0 && passwordConfirm.length < 1){
		$('passwordConfirm_error').firstChild.nodeValue = 'Debes confirmar tu contrase\361a.';
		$('passwordConfirm_error').style.display = 'block';
		passwordConfirm.parentNode.className = 'highlight';
		passwordConfirm.focus();
		return false;
	}
	
	//check that password and confirmPassword are the same
	if (password.value != passwordConfirm.value){
		$('passwordConfirm_error').firstChild.nodeValue = 'Tus contrase\361as no coinciden.';
		$('passwordConfirm_error').style.display = 'block';
		passwordConfirm.parentNode.className = 'highlight';
		passwordConfirm.focus();
		return false;
	}
	
	$('password_error').firstChild.nodeValue = '';
	$('password_error').style.display = 'none';
	password.parentNode.className = 'valid';
	$('passwordConfirm_error').firstChild.nodeValue = '';
	$('passwordConfirm_error').style.display = 'none';
	passwordConfirm.parentNode.className = 'valid';
	
	//check email is not empty
	var email = document.getElementById('email');
	if (email.value.length < 1 ){
		$('email_error').firstChild.nodeValue = 'Ingresa una direcci\363n de e-mail v\341lida.';
		$('email_error').style.display = 'block';
		email.parentNode.className = 'highlight';
		email.focus();
		return false;
	}
	
	//check email is in correct format
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (reg.test(email.value) == false){
		$('email_error').firstChild.nodeValue = 'Ingresa una direcci\363n de e-mail v\341lida.';
		$('email_error').style.display = 'block';
		email.parentNode.className = 'highlight';
		email.focus();
		return false;
	}
	
	$('email_error').firstChild.nodeValue = '';
	$('email_error').style.display = 'none';
	password.parentNode.className = 'valid';
	
	//check captcha code is not empty
	var captchaCode = document.getElementById('enteredCaptchaCode');
	if (captchaCode.value.length < 1){		
		$('captcha_error').firstChild.nodeValue = 'Ingresa el c\363digo que aparece en la imagen de abajo.';
		$('captcha_error').style.display = 'block';
		captchaCode.parentNode.className = 'highlight';
		captchaCode.focus();
		return false;
	}
	
	//check terms and conditions is checked
	var agreed = document.getElementById('termsConditionsAgreeCheckbox');
	if (agreed.checked == false){
		errormessage.nodeValue = 'Debes leer y aceptar los t\351rminos y condiciones del sitio antes de registrarte.';
		agreed.focus();
		return false;
	}
}//END: checkRegiForm

//Form fields onBlur functions

function validateUsername(element){
	var error = $('username_error');
	
	if (element.value.length < 1){
		error.firstChild.nodeValue = '';
		error.style.display = 'none';
		element.parentNode.className = '';
		return false;
	}
	
	var alaphaNumericCheck = new RegExp("\\W");
	var alphaNumCheckResult = alaphaNumericCheck.exec(element.value);
	if (alphaNumCheckResult != null){
		error.firstChild.nodeValue = 'Los caracteres permitidos son n\372meros, letras y guiones bajos.';
		error.style.display = 'block';
		element.parentNode.className = 'highlight';
		return false;
	}
	
	var badNames = new Array();
    badNames = ["fuck","close","auction","cancel","prick","bidz","admin","listing","access","stop","bitch",
       "vagina","penis","bastard","bloody","jesus","arse","balls","bollocks","cock","crap","cunt","fart","knob",
       "prick","pussy","shit","tits","twat","nutter","retard","schizo","spastic","battyboy","dyke","faggot","poof",
       "queer","blaad","bumbu","chichi","hoockie","punani","bastard","bitch","dickhead","slag","slut","wanker",
       "whore","bonk","bugger","poke","shag","chink","kyke","kike","nigger","paki","papist","pikey","yid","guest_account"];
    for (var i = 0;i<badNames.length;i++){
    	if (element.value.indexOf(badNames[i])>-1){
    		error.firstChild.nodeValue = 'Tu nombre de usuario contiene una palabra que no se permite en nuestro sitio web para los nombres de usuarios. Por favor, usa un nombre de usuario alternativo.';
			error.style.display = 'block';
			element.parentNode.className = 'highlight';
    		return false;
		}
    }
	
	error.firstChild.nodeValue = '';
	error.style.display = 'none';
	element.parentNode.className = 'valid';
	return true;
}

function validatePassword(element){
	var error = document.getElementById('password_error');
	
	if (element.value.length < 1 || $('passwordConfirm').value.length < 1){
		error.firstChild.nodeValue = '';
		error.style.display = 'none';
		element.parentNode.className = '';
		$('passwordConfirm_error').firstChild.nodeValue = '';
		$('passwordConfirm_error').style.display = 'none';
		$('passwordConfirm').parentNode.className = '';
		return false;
	}
	
	if ($('passwordConfirm').value.length > 0 && element.value.length > 0 && element.value != $('passwordConfirm').value){
		$('passwordConfirm_error').firstChild.nodeValue = 'Tus contrase\361as no coinciden.';
		$('passwordConfirm_error').style.display = 'block';
		$('passwordConfirm').parentNode.className = 'highlight';
    	return false;
	}
	
	error.firstChild.nodeValue = '';
	error.style.display = 'none';
	element.parentNode.className = 'valid';
	$('passwordConfirm_error').firstChild.nodeValue = '';
	$('passwordConfirm_error').style.display = 'none';
	$('passwordConfirm').parentNode.className = 'valid';
	return true;
}

function validateConfirmPassword(element){
	var error = document.getElementById('passwordConfirm_error');
	
	if (element.value.length < 1 || $('password').value.length < 1){
		error.firstChild.nodeValue = '';
		error.style.display = 'none';
		element.parentNode.className = '';
		$('password_error').firstChild.nodeValue = '';
		$('password_error').style.display = 'none';
		$('password').parentNode.className = '';
		return false;
	}
	
	if (element.value.length > 0 && $('password').value.length > 0 && element.value != $('password').value){
		error.firstChild.nodeValue = 'Tus contrase\361as no coinciden.';
		error.style.display = 'block';
		element.parentNode.className = 'highlight';
    	return false;
	}
	
	error.firstChild.nodeValue = '';
	error.style.display = 'none';
	element.parentNode.className = 'valid';
	$('password_error').firstChild.nodeValue = '';
	$('password_error').style.display = 'none';
	$('password').parentNode.className = 'valid';
	return true;
}

function ajaxValidateEmail(element)
{
	var stripped = element.value;
	element.value = stripped.gsub(' ','');
	var urlPart = "emailAddress=" + element.value;
	var ajaxReq = new Ajax.Request("/bzJApp/VerifyEmailAction.action?"+urlPart, 
	{ 	method: 'get', 
		onSuccess: this.validateEmail, 
		onFailure : this.processFailure, 
		onComplete : this.processComplete, 
		onException : this.processException 
	});	
}

function validateEmail (transport) {
	var error = document.getElementById('email_error');
	error.innerHTML = '.';
	var element = document.getElementById('email');
	
	if (element.value.length < 1){
		error.firstChild.nodeValue = '';
		error.style.display = 'none';
		element.parentNode.className = '';
		return false;
	}
	
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if (reg.test(element.value) == false){
		error.firstChild.nodeValue = 'Ingresa una direcci\363n de e-mail v\341lida.';
		error.style.display = 'block';
		element.parentNode.className = 'highlight';
    	return false;
	}
	
	if(transport.responseText == 1){
		error.innerHTML = 'Ingresa una direcci\363n de e-mail v\341lida. <input style="display: none;" type="hidden" name="emailValid" value="false" />';
		error.style.display = 'block';
		element.parentNode.className = 'highlight';
		return false;
	} else {
		error.innerHTML = '<input style="display: none;" type="hidden" name="emailValid" value="true" />';	
	}
	
	error.firstChild.nodeValue = '';
	error.style.display = 'none';
	element.parentNode.className = 'valid';
	return true;	
}

function processFailure(transport) {
	logToWindow("verificaci\363n - fallida. " + transport.status);
}//END: processFailure

function processComplete(transport) {
	logToWindow("verificaci\363n - completa.");
}//END: processComplete

function processException(Req, Ex1) {
	logToWindow("verificaci\363n - excepci\363n " + Ex1);
}//END: processException

function validateCaptcha(element){
	var error = document.getElementById('captcha_error');
	
	if (element.value.length < 1){
		error.firstChild.nodeValue = '';
		error.style.display = 'none';
		element.parentNode.className = '';
		return false;
	}
	
	//error.firstChild.nodeValue = '';
	//error.style.display = 'none';
	//element.parentNode.className = 'valid';
	return true;
}

//Checkbox functions

function showSubscribeConfirm(){
	if(document.getElementById('newsletterCheckbox').checked){
		document.getElementById('subscribe_confirm').style.display = 'block';
	} else {
		document.getElementById('subscribe_confirm').style.display = 'none';
	}
}

function showAgreement() {
	if(document.getElementById('bidz_agreement')){
		document.getElementById('bidz_agreement').style.display = '';
	}
}