$(function() {

	fError = 0;

	$("#cedula,#email")
			.blur(function() {

				var $elem = $(this);

				if ($elem.data('curr') && $elem.data('curr') == $elem.val())
					return;

				// don't verify if inputs are empty
					if (!$.trim(this.value)) {
						$elem.attr('class', 'msjError');
						fError = 1;
						return false;
					}

					if (this.id == 'cedula'
							&& !/^[0-9]{9,15}$/.test(this.value)) {

						$elem.attr('class', 'msjError').next().text(
								'Cedula invalida');
						fError = 1;
						return false;

					}

					if (this.id == 'email'
							&& !/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/
									.test(this.value)) {

						$elem.attr('class', 'msjError').next().text(
								'Correo invalido');
						fError = 1;
						return false;

					}

					$elem.data('curr', this.value);

					var params = {};

					params.field = this.id;
					params.value = this.value;

					$
							.get(
									"http://www.cinemania.co.cr/members/member.php",
									params,
									function(data) {
										if (parseInt(data)) {
											$elem
													.next()
													.removeClass('msjOk')
													.text(
															'Ya existe un usuario registrado con este dato');
										} else {
											$elem.attr('class', '').next()
													.text('').attr('class',
															'msjOk');
										}
									});

					if (this.id == 'cedula' && this.value != '')
						$('#cedula2').blur();

				});

	$('#cedula2').blur(
			function() {

				var ced = $('#cedula').val();

				if (this.value == ced && this.value != '') {
					$(this).next().text('').addClass('msjOk');
				} else {
					$(this).next().removeClass('msjOk');
					fError = 1;
					if (this.value != ced)
						$(this).next().text(
								'Cedulas no coinciden');
					else
						$(this).attr('class', 'msjOk');
				}

			});

	$("#nombre,#telefono").blur(function() {

		if (this.value == '') {
			$(this).next().removeClass('msjOk').text('Este campo es requerido');
			fError = 1;
		} else {
			$(this).next().attr('class', 'msjOk');
		}

	});

	$("#password").blur(function() {

		if (this.value == '') {
			$(this).next().next().removeClass('msjOk').text('Campo requerido');
			fError = 1;
		} else {
			$(this).next().text('').attr('class', 'msjOk');
		}
		if (this.value != '')
			$("#password2").blur();
	});

	$("#password2").blur(
			function() {

				if (this.value == '') {
					$(this).next().text('');
					fError = 1;
				} else if (this.value != ($('#password').val())) {
					$(this).attr('class', 'msjError').next().removeClass('msjOk').text(
							'Contraseņas no coinciden');
					fError = 1;
				} else {
					$(this).next().text('').attr('class', 'msjOk');
				}

			});

	$("#form1").submit(
			function() {

				fError = 0;
				$(this).find('input')
						.not(':submit,:reset,input[type="hidden"]').blur();
				if (fError == 1) {
					return false;
				}

			});

	/*
	 * Date selection
	 */

	var year, day, month, arrMonth, date = new Date();

	year = date.getFullYear();
	day = date.getDate();
	month = date.getMonth();

	arrMonth = [ {
		name : 'enero',
		days : 31
	}, {
		name : 'febrero',
		days : 0
	}, {
		name : 'marzo',
		days : 31
	}, {
		name : 'abril',
		days : 30
	}, {
		name : 'mayo',
		days : 31
	}, {
		name : 'junio',
		days : 30
	}, {
		name : 'julio',
		days : 31
	}, {
		name : 'agosto',
		days : 31
	}, {
		name : 'septiembre',
		days : 30
	}, {
		name : 'octubre',
		days : 31
	}, {
		name : 'noviembre',
		days : 30
	}, {
		name : 'diciembre',
		days : 31
	} ];

	function isLeap() {

		var y = $('#anio').val() || year;

		return (!(y % 4) && ((y % 100) || !(y % 400)));

	}

	var $day, $month, $year;

	$day = $('<select name="dia"  id="dia"></select>');
	$month = $('<select name="mes"  id="mes"></select>');
	$year = $('<select name="anio" id="anio"></select>');

	var i;

	function fillDays() {

		var m = $("#mes").val() - 1 || month;
		// keep current day if exists
		var d = $("#dia").val() || day;
		// check for leap year on february
		if (m == 1) {
			if (isLeap())
				arrMonth[m].days = 29;
			else
				arrMonth[m].days = 28;
		}

		$day.children().remove();

		for (i = 0; i < arrMonth[m].days; i++) {

			$day.append('<option value="' + (i + 1) + '"'
					+ (((i + 1) == d) ? ' selected="selected"' : '') + '>'
					+ (i + 1) + '</option>');

		}

	}

	// fill years
	for (i = year; i > year - 99; i--) {

		$year.append('<option value="' + i + '">' + i + '</option>');

	}

	// fill months
	for (i = 0; i < arrMonth.length; i++) {

		$month.append('<option value="' + (i + 1) + '"'
				+ ((month == i) ? ' selected="selected"' : '') + '>'
				+ arrMonth[i].name + '</option>');

	}

	fillDays();

	$('#date').append($day).append($month).append($year);

	$('#anio,#mes').change(function() {

		fillDays();

	});

});