/**
* Form Validation -- validateForm, version 1.2.3
* Built at 2009-07-23 08:52 GMT -06:00
*
* (c) AGL - Solutions 2009
* All rights reserved
* Visit blog.aglsolutions.com/validateForm for details
* @author Juan Villa.
* @copyright AGL Solutions
* @version 1.2.3
* @requires jquery v1.2+
*/


var elemError = new Array();

/**
* 
*/
var Error = {
	dir: 'img/',
  sufix: '_error',
  img: 'validation.gif',
    limpiarCampos: function () {
        $.each(elemError, function () {
            $(this).removeClass('errorClass');
            $("#" + this.name + '_error').html('').hide();
        });
    },
    doError: function (elem, classNombre, msg) {
        elemError.push(elem);
        $(elem).addClass(classNombre);
        $("#" + elem.name + this.sufix).html('<div class="' + classNombre + '" ><img src="' + this.dir + this.img + '" alt="' + msg + '" />' + msg + '</div>').show();
    }
};
var filtros = {
		codigo_postal: function (elem) {
			var filter = /^[0-9]{5,6}$/;
			if (elem.value == '') {
				return;
			}
			if (!filter.test(elem.value)) {
				Error.doError(elem, 'errorClass', 'Ingresa un codigo postal valido');
			}
		},
    requerido: function (elem) {
        if (/^\s+$/.test(elem.value) || elem.value == '') {
            Error.doError(elem, 'errorClass', 'Campo requerido');
        }
    },
    email: function (elem) {
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if (elem.value == '') {
            return;
        }
        if (!filter.test(elem.value)) {
            Error.doError(elem, 'errorClass', 'Ingresa una cuenta de correo valida');
        }
    },
    telefono: function (elem) {
        var filter = /^[0-9]{10}$/;
        if (elem.value == '') {
            return;
        }
        if (!filter.test(elem.value)) {
            Error.doError(elem, 'errorClass', 'Telefono Invalido. Ej. 8999246468');
        }
    }
};
function validateForm(formulario) {
    if (typeof filtros == 'undefined') {
        return true;
    }
    Error.limpiarCampos();
    elemError = new Array();
    $(formulario).find("input, select, textarea").each(function (index, elem) {
        if ($(elem).attr("className") != 'undefined') {
            $.each(new String($(elem).attr("className")).split(" "), function (index, clase) {
                if ($.isFunction(filtros[clase])) {
                    filtros[clase](elem);
                }
				
            });
        }
    });
    if (elemError.length > 0) {
        elemError[0].focus();
        return false;
    } else {
        return true;
    }
}