﻿String.prototype.wrap = function(num) {
    var lastBlank = this.substring(0, num).lastIndexOf(' ');
    
    return (this.substring(0, lastBlank));
};

String.prototype.empty = function() {
    return ((this === "")
			|| (this === 0)
			|| (this === "0")
			|| (this === null)
			|| (this === undefined)
			|| (this === false)
			|| ((typeof this == 'object') && (this.length === 0))
	);
};

String.prototype.capitalize = function() {
    var firstLetter = this.charAt(0);
    var newString = firstLetter.toUpperCase() + this.substring(1, this.length).toLowerCase();

    return (newString);
};

String.prototype.isValidEmail = function() {
    var doubleCharPasOk = ["..", "--", "__", ".@", "-@", "_@", "@.", "@-", "@_", "-_", "_-", ".-", "-.", "._", "_."];

    var email = this.cleanForEmail();

    for (var i = 0; i < doubleCharPasOk.length; i++) {
        if (!(email.indexOf(doubleCharPasOk[i]) == -1)) {
            return (false);
        }
    }

    var regexp = new RegExp("^[a-z0-9]{1}[a-z0-9._+-]+@[a-z0-9._-]{2,}[.][a-z]{2,}$", "");
    var result = regexp.test(email);

    return (result);
};

String.prototype.cleanForEmail = function() {
    var email = this.toLowerCase();
    email = email.replace(/ /g, "");

    var tabAccents = 'àáâãäåçèéêëìíîïñòóôõöùúûüýÿç';
    var tabSansAccents = 'aaaaaaceeeeiiiinooooouuuuyyc';
    var len = tabAccents.length;

    for (var i = 0; i < len; i++) {
        var regexp = new RegExp(tabAccents.charAt(i), 'g');
        email = email.replace(regexp, tabSansAccents.charAt(i));
    }

    return (email);
};