// Validadores
String.prototype.is_number = function () {
	var filter=/^(([0-9][0-9][-][0-9])|([0-9]))*$/;
	if (this.length == 0 ) return false;
	if (filter.test(this)) return true;
	return false;
}

String.prototype.is_text = function () {
	var filter=/^[A-Za-z\sáéíóúñÁÉÍÓÚÑ]*$/;
	if (this.length == 0) return false;
	if (filter.test(this)) return true;
	return false;
}

String.prototype.is_email = function () {
	var filter=/^[A-Za-z][A-Za-z0-9_\-\.]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_\-\.]+[A-za-z]$/;
	if (this.length == 0 ) return false;
	if (filter.test(this)) return true;
	return false;
}

String.prototype.is_rut = function () {
	function dv(T) {
		if (T.length == 0) return 'N';
		var M=0,S=1;for(;T;T=Math.floor(T/10))S=(S+T%10*(9-M++%6))%11;return S?S-1:'K';
	}
	rut = this + $("input#rut_dv").val();
	rut = rut.replace("-", "");
	rut = rut.replace(".", "");
	rut = rut.replace(".", "");
	rut = rut.replace("k", "K");
	
	var filter=/^[0-9K]+$/;
	if (!filter.test(rut)) return false;
	if (rut.substr(rut.length - 1, 1) != dv(rut.substr(0, rut.length - 1))) return false;
	
	return true;
}

function loadswf(id, flashvars) {
 	var height = $('div#' + id).css('height').replace('px', '');
 	var width = $('div#' + id).css('width').replace('px', '');
 	var file = 'swf/' + id + '.swf';
 	var so = new SWFObject(file, id, width, height, 10, '#FFF');

 	if (typeof flashvars != 'undefined') so.addParam('flashvars', flashvars);
 	
	so.addParam('wmode', 'transparent'); 
	so.write(id);
}

function get_address() {
	var q = $('input#calle').val();
	
	$('input#calle').blur(function () {
		$('div.suggestions').fadeOut();
		$('select#estadocivil').show();
	});
	
	$.ajax({
		url: 'ajax/suggestions.ajax.php',
		data: '&q=' + q + '&comuna=' + $('select#comuna').val(),
		type: 'post',
		dataType: 'json',
		async: true,
		success: function (json) {
			$('div.suggestions').html('');
			if (json.status) {
				for (index in json.lst) {
					if (json.lst.length > 17) $('select#estadocivil').hide();
					var pos = $('div.block_suggestion').position();
					$('div.suggestions').css('top', pos.top + $('div.block_suggestion').height());
					$('div.suggestions').css('left', pos.left + 145);
				
					$('div.suggestions').fadeIn();
					$('div.suggestions').append('<a href="#">' + json.lst[index] + '</a>')
					
					$('div.suggestions a').click(function () {
						$('input#calle').val($(this).html());
						$('select#estadocivil').show();
						$(this).parent().fadeOut();
						return false;
					});
				}
			} else {
				$('div.suggestions').fadeOut();
				$('select#estadocivil').show();
			}
		}
	});
}

function renum_hijos() {
	var i = 1;
	$('div.block_hijos ul li:not(.none, .template)').each(function () {
		$(this).find('span.num').html('(' + i + ')');
		
		$(this).find('input.nombre_hijo').attr('name', 'nombre_hijo_' + i);
		$(this).find('input.apellidos_hijo').attr('name', 'apellidos_hijo_' + i);
		$(this).find('input.nacimiento_dia_hijo').attr('name', 'nacimiento_dia_hijo_' + i);
		$(this).find('input.nacimiento_mes_hijo').attr('name', 'nacimiento_mes_hijo_' + i);
		$(this).find('input.nacimiento_anio_hijo').attr('name', 'nacimiento_anio_hijo_' + i);
		$(this).find('input.sexo_hijo').attr('name', 'sexo_hijo_' + i);

		$(this).find('input.nombre_hijo').attr('id', 'nombre_hijo_' + i);
		$(this).find('input.apellidos_hijo').attr('id', 'apellidos_hijo_' + i);
		$(this).find('input.nacimiento_dia_hijo').attr('id', 'nacimiento_dia_hijo_' + i);
		$(this).find('input.nacimiento_mes_hijo').attr('id', 'nacimiento_mes_hijo_' + i);
		$(this).find('input.nacimiento_anio_hijo').attr('id', 'nacimiento_anio_hijo_' + i);
		
		$(this).find('label.nombre_hijo').attr('for', 'nombre_hijo_' + i);
		$(this).find('label.apellidos_hijo').attr('for', 'apellidos_hijo_' + i);
		$(this).find('label.nacimiento_dia_hijo').attr('for', 'nacimiento_dia_hijo_' + i);
		$(this).find('label.sexo_hijo').attr('for', 'sexo_hijo_' + i);
	
		i++;
	});
	
	$('div.block_hijos input#cant_hijos').val(--i)
}

function load_contacto() {
	$("div.contacto form").submit(function () {
		if (!$("input#nombre").val().is_text()) {
			alert("Debes ingresar un NOMBRE válido");
			return false;
		}
		if (!$("input#apellido").val().is_text()) {
			alert("Debes ingresar un APELLIDO válido");
			return false;
		}
		if (!$("input#email").val().is_email()) {
			alert("Debes ingresar un EMAIL válido");
			return false;
		}
		if ((!$("input#telefono").val().is_number()) || ($('input#telefono').val().length < 6)) {
			alert("Debes ingresar un TELEFONO válido");
			return false;
		}
		if ($("select#tipoconsulta").val() == "0") {
			alert("Debes ingresar un TIPO DE CONSULTA válido");
			return false;
		}
		if (!$("textarea#comentario").val().length > 2) {
			alert("Debes ingresar una CONSULTA válida");
			return false;
		}
		
		field = $("input, select, textarea");
		
		aux = "";
		for (i = 0; i < field.length; i++) {
			aux += "&" + $(field[i]).attr("name") + "=" + $(field[i]).val();
		}
		
		$.ajax({
			url: "ajax/send_contacto.ajax.php",
			data: field,
			type: "POST",
			success: function (html) {
				alert('Su consulta ya ha sido enviada, pronto se pondrán en contacto con usted.');
				$('input:not(.submit),textarea').val('');
				$('select').val(0)
				
				window.location="index.php";
			}
		});
		
		return false;
	});
}

function load_registro() {
	$('div.registro form input.add').click(function () {
		var elem = $('div.block_hijos ul li.template').clone(true).appendTo('div.block_hijos ul');
		$(elem).removeClass('template');
		$(elem).fadeIn('normal');
		renum_hijos();
		
		$('div.block_hijos ul li a.delete_btn').click(function () {
			$(this).parent().fadeOut("normal", function () {
				$(this).remove();
				renum_hijos();
			});
			
			return false;
		});

		return false;
	});
		
	$.region('select#region', 'select#comuna');
	
	$('div.registro form select#estadocivil').change(function () {
		if ($(this).val() == 'casado') {
			$('div.block_conyuge').fadeIn('slow');
		} else {
			$('div.block_conyuge').hide();
			$('input#rut_conyuge').val('');
			$('input#rut_conyuge_dv').val('');
		}
	});
	
	$('div.registro form').submit(function () {
		if (($('input#rut_conyuge').val() != '') && ($('input#rut_conyuge_dv').val() != '') && ($('select#estadocivil').val() == 'casado') && ($('input#rut').val() == $('input#rut_conyuge').val()) && ($('input#rut_dv').val() == $('input#rut_conyuge_dv').val())) {
			alert('El rut del conyuge debe ser distinto al de Cliente');
			return false;
		}
		
		var datafield = '';
		$('input:checked, input:not(:radio, .submit, #bases, .add, :checkbox, [name=X]), select, input:checked').each(function () {
			datafield += '&' + $(this).attr('name') + '=' + $(this).val();
		});
		
		$.ajax({
			url: $(this).attr('action'),
			type: 'post',
			data: datafield,
			dataType: 'json',
			success: function (json) {
				$('label.error').removeClass('error');
				
				if (json.status) {
					// agregado
					$('form').html('<p style="color:#e41817;line-height:1.2em;font-weight:bold;font-size:18px;"><strong>La inscripción se ha realizado exitosamente.<br>Bienvenido al Club Unimarc</strong></p><p style="font-weight: bold; font-size: 13px;"><a style="color: rgb(105, 105, 105);" target="blank" href="http://www.unimarc.cl">Te invitamos a visitar www.unimarc.cl</a></p>');
				} else {
					if ((json.update) && (json.cant_update < 2)) {
						$('form').html('<p style="color:#e41817;line-height:1.2em;font-weight:bold;font-size:18px;"><strong>Has actualizado tus datos exitosamente</strong><br>Bienvenido al Club Unimarc</strong></p><p style="font-weight: bold; font-size: 13px;"><a style="color: rgb(105, 105, 105);" target="blank" href="http://www.unimarc.cl">Te invitamos a visitar www.unimarc.cl</a></p>');
					} else if ((json.update) && (json.cant_update >= 2)) {
						$('form').html('<p style="color:#e41817;line-height:1.2em;font-weight:bold;font-size:18px;"><strong>Tus datos ya han sido actualizados,</strong></p><p style="font-weight: bold; font-size: 13px;">no es posible registrarte nuevamente</p>');
					} else {
						for (field in json) {
							if (!json[field]) $('label[for=' + field + ']').addClass('error');
						}
					}
				}
			}
		});
		
		return false;
	});
	
	$('input.vivecon').click(function () {
		if ($(this).val() == '6') {
			$('input.vivecon:not([value="6"])').each(function () {
				$(this).attr('checked', '');
			});
		} else $('input.vivecon[value="6"]').attr('checked', '')
	});
	
	$('input#calle').keyup(function () {
		if ($(this).val().length >= 4) get_address();
		else $('div.suggestions').fadeOut();
		
		return false;
	})
	
	$('select').val(0);
	$('input#cant_hijos').val(0);
}

$(document).ready(function () {
	if (typeof $('div.registro') != 'undefined')  load_registro();
	if (typeof $('div.contacto') != 'undefined')  load_contacto();
	
	loadswf('620x155');
	
	$('h1').each(function () {
		$(this).wrap('<div id="titulo"></div>');
		loadswf('titulo', '&titulo=' + $(this).html());
	});
});