var signupEvents = function () {
	var form = document.getElementById("fSignup");
	if (form != null) {
		form.onsubmit = doSubmit;
	}
	
	var chkbutton = document.getElementById("checkavailable");
	if (chkbutton != null) {
		chkbutton.onclick = checkAvailability;
	}

	var chkfield = document.getElementById("text_id");
	if (chkfield != null) {
		chkfield.onblur = checkAvailability;
	}
	var terms = document.getElementById("terms");
	if (terms != null) {
		terms.onclick = showTerms;
	}
	// errores
	if ($('#error').val() == 10) {
		alert($('#error_txt').val());		
	}
}

var showTerms = function() {
	url = "/pages/terms/?tpl=popup";
	VentanaTerms = window.open(url,"VentanaTerms",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=675,height=550');
	return false;
}

var doSubmit = function () {
	if (validaForm('fSignup', listaCampos, listaEtiquetas, msgPleaseFill, ",\n")) {
		if (validaEmail('fSignup','email',msgValidEmail)) {
			// verifica confirmacions
			if (document.fSignup.email.value == document.fSignup.conf_email.value){
				if (document.fSignup.password.value == document.fSignup.conf_password.value){
					// terminos y condiciones
					var acepta = document.getElementById("acepta");
					if (acepta.checked == true) {
						this.submit();
					} else {
						alert(msgMustAccept);
						return false;
					}
				} else {
					alert(msgNonCoincidentPwd);
					return false;
				}
			} else {
				alert(msgNonCoincidentEmail);
				return false;
			}
		} else {
			return false;
		}
	} else {
		return false;
	}
}

var checkAvailability = function () {
	var field = document.getElementById("text_id");
	if (field != null) {
		var valor = field.value;
		if (valor != '' && valor != null) {
			// obtiene los datos
			url = '/xml/checknamedisp.php';
			var pars = 'name=' + valor + '&json=1';
			Indicator.show('Comprobando "'+valor+'"');
			new Ajax.Request(url, {method: 'get', parameters: pars, onComplete:doCheck});
		} else {
			displayError(3);
			return false;
		}
	}
	return false;
}

var doCheck = function (req) {
	var json = eval(req.responseText);
	displayError(json.error, json.suggestion);
}

/**
 * Codigos de error
 * "NAME_TOO_SHORT",1
 * "ILLEGAL_CHARS",2
 * "NO_NAME",3
 * "ALREADY_EXISTS",4
*/
function displayError(code, suggestion) {
	switch (code) {
		case 0:
			cadena = msgNameAvailable;
			break;
		case 1:
			cadena = msgNameTooshort;
			break;
		case 2:
			cadena = msgIllegalChars+" "+suggestion;
			var field = document.getElementById("text_id");
			field.value = suggestion;
			break;
		case 3:
			cadena = msgGivePortolioname;
			break;
		case 4:
			cadena = msgNameAlreadyExists;
			break;
		case 5:
			cadena = msgNameAlreadyExists;
			break;
		default:
			cadena = msgNameAvailable;
			break;
	}
	// alert(cadena);
	Indicator.showMsg(cadena);
}

var templateEvents = function () {
	var reThumb = new RegExp(/^thumb_(.*)$/);
	var lis = $("#themes > li");

	// image clicks
	$("#themes > li > img").bind('click', function() {
			if (reThumb.test(this.id)) {
				var id = RegExp.$1;
				var _parent = this.parentNode;
				for (var j=0; j<lis.length; j++) {
					lis[j].className = '';
				}
				// class en el clickado
				_parent.className = 'current_tpl';
				// radiobtn
				$("#tpl_"+id).attr("checked", "checked");
			}
	});
	// radiobuttons
	$("#themes > li > input").bind("change", function() {
		_parent = this.parentNode;
		for (var j=0; j<lis.length; j++) {
			lis[j].className = '';
		}
		// class en el clickado
		_parent.className = 'current_tpl';
	});
}
