﻿String.prototype.mask = function(m) {
	var m
	var l = m.split("").length;
    var m, l = (m = m.split("")).length, s = this.replace(/\D/g, "").split(""), j = 0, h = "";
    for(var i = -1; ++i < l;)
        if(m[i] != "#"){
            if(m[i] == "\\" && (h += m[++i])) continue;
            h += m[i];
            i + 1 == l && (s[j - 1] += h, h = "");
        }
        else{
            if(!s[j] && !(h = "")) break;
            (s[j] = h + s[j++]) && (h = "");
        }
    return s.join("") + h;
};

String.prototype.replaceAll = function(de, para){
    var str = this;
    var pos = str.indexOf(de);
    while (pos > -1){
		str = str.replace(de, para);
		pos = str.indexOf(de);
	}
    return (str);
}


function setPhone8(e) {
	var currObj = getTarget(e);
	var currValue = currObj.value;
	var formater = "####-####";
	currObj.value = currValue.mask(formater);
	currObj.maxlength = formater.length;
}

function setPhone11(e) {
	var currObj = getTarget(e);
	var currValue = currObj.value;
	var formater = "(##) ####-####";
	currObj.value = currValue.mask(formater);
	currObj.maxlength = formater.length;
}

function setCPF(e) {
	var currObj = getTarget(e);
	var currValue = currObj.value;
	var formater = "###.###.###-##";
	currObj.value = currValue.mask(formater);
//	currObj.maxlength = formater.length;
}

function setCNPJ(e) {
	var currObj = getTarget(e);
	var currValue = currObj.value;
	var formater = "##.###.###/####-##";
	currObj.value = currValue.mask(formater);
	currObj.maxlength = formater.length;
}

function setZipCodeBR(e) {
	var currObj = getTarget(e);
	var currValue = currObj.value;
	var formater = "#####-###";
	currObj.value = currValue.mask(formater);
	currObj.maxlength = formater.length;
}

// replace
// USO: replace(src, srt1, str2)
function replace(pSource, pOut, pIn) {
	while(pSource.indexOf(pOut) > -1) {
		var pos = pSource.indexOf(pOut);
		pSource = (pSource.substring(0, pos) + pIn + pSource.substring((pos + out.length), pSource.length));
	}
	return pSource;
}

// RemoveSpecial
// USO: RemoveSpecial(object)
function RemoveSpecial(e) {
	var obj = getTarget(e);
	var specialChars = "ÃÂÁÀÄÊÉÈËÎÍÌÏÕÔÓÒÖÛÚÙÜÇ";
	var value = (typeof(obj) == "string") ? obj.toUpperCase() : String(obj.value).toUpperCase();
	var strReturn = "";
	for(var i = 0; i < value.length; i++) {
		pos = String(specialChars).indexOf(value[i]);
		if(pos == -1) {
			strReturn += value.charAt(i);
		}
		else {
			switch(specialChars.charAt(pos))	{
				case "Ã" : case "Â" : case "Á" : case "À" : case "Ä" :
					strReturn += "A";
				break;
				case "Ê" : case "É" : case "È" : case "Ë" :
					strReturn += "E";
				break;
				case "Î" : case "Í" : case "Ì" : case "Ï" :
					strReturn += "I";
				break;
				case "Õ" : case "Ô" : case "Ó" : case "Ò" : case "Ö" :
					strReturn += "O";
				break;
				case "Û" : case "Ú" : case "Ù" : case "Ü" :
					strReturn += "U";
				break;
				case "Ç" :
					strReturn += "C";
				break;
			}
		}
	}
	return strReturn;
}

// trim
// USO: trim(obj.value)
function trim(str){
	if(str == null) return "";
	else return str.replace(/^\s*(\w+)*\s*$/,"$1");
}
