// Prototypes
String.prototype.isDate = function() {
	try {
		var arrData = new Array();
		arrData = this.split('/');
		var dia = arrData[0];
		var mes = arrData[1]-1;
		var ano = arrData[2];
		var dataEntrada = (arrData[0]*1)+'/'+(arrData[1]*1)+'/'+arrData[2];
		var minhaData = new Date(ano, mes, dia);
		var dataRetorno = minhaData.getDate()+'/'+(minhaData.getMonth()+1)+'/'+minhaData.getFullYear();
		if (dataEntrada == dataRetorno) {
			return true;
		} else {
			return false;
		}
	} catch (e) {
		return false;
	}
};
String.prototype.isMail = function() {
	var ER = new RegExp(/^[A-Za-z0-9]+(([\.\_\-]{1}[A-Za-z0-9]+)+)?@[A-Za-z0-9]+(([\.\_\-]{1}[A-Za-z0-9]+)+)?\.[A-Za-z]{2,4}$/);
	return (ER.test(this));
};
String.prototype.format = function(casas) {
	var ret = new String('');
	while (ret.length<(casas-this.toString().length)) {
		ret += '0';
	}
	return ret+this;
};
Number.prototype.format = String.prototype.format;
String.prototype.toNumber = function() {
	var ent = this;
	while (ent.indexOf('.')>0) {
		ent = ent.replace('.', '');
	}
	ent = ent.replace(',', '.');
	return Number(ent);
};
String.prototype.toCurrency = function() {
	var ret = new String('');
	var fim = new String(',00');
	var exe = new String(this);
	var isNotFirst = null;
	if (this.indexOf('.')>0) {
		var arr = exe.split('.');
		exe = arr[0];
		while (arr[1].length<2) {
			arr[1] += '0';
		}
		if (arr[1].length>2) {
			arr[1] = arr[1].substr(0, 2);
		}
		fim = ','+arr[1];
	}
	while (exe.length>3) {
		if (isNotFirst) {
			ret = '.'+ret;
		}
		isNotFirst = true;
		ret = exe.substr(exe.length-3, 3)+ret;
		exe = exe.substr(0, exe.length-3);
	}
	if (exe.length>0) {
		if (ret.length>0) {
			ret = exe+'.'+ret;
		} else {
			ret = exe;
		}
	}
	return ret+fim;
};
String.prototype.replaceAll = function(re, su) {
	var ent = this;
	while (ent.indexOf(re)>=0) {
		ent = ent.replace(re, su);
	}
	return ent;
};
Date.prototype.getString = function() {
	return this.getDate().format(2)+'/'+this.getMonth().format(2)+'/'+this.getFullYear();
};
Date.prototype.format = function() {
	var gsMonthNames = new Array('janeiro', 'fevereiro', 'mar&ccedil;o', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro');
	var gsDayNames = new Array('domingo', 'segunda', 'ter&ccedil;a', 'quarta', 'quinta', 'sexta', 's&aacute;bado');
	if (!this.valueOf()) {
		return '&nbsp;';
	}
	var d = this;
	return f.replace(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hhh|hh|nn|ss|a\/p)/gi, function ($1) {
		switch ($1.toLowerCase()) {
		case 'yyyy' :
			return d.getFullYear();
		case 'mmmm' :
			return gsMonthNames[d.getMonth()];
		case 'mmm' :
			return gsMonthNames[d.getMonth()].substr(0, 3);
		case 'mm' :
			return (d.getMonth()+1).format(2);
		case 'dddd' :
			return gsDayNames[d.getDay()];
		case 'ddd' :
			return gsDayNames[d.getDay()].substr(0, 3);
		case 'dd' :
			return d.getDate().format(2);
		case 'hhh' :
			return ((h=d.getHours()%12) ? h : 12).format(2);
		case 'hh' :
			return d.getHours().format(2);
		case 'nn' :
			return d.getMinutes().format(2);
		case 'ss' :
			return d.getSeconds().format(2);
		case 'a/p' :
			return d.getHours()<12 ? 'a' : 'p';
		}
	});
};
String.prototype.isCPF = function() {
	var cpf = this;
	var rrValida = new Array(00000000000,11111111111,2222222222,3333333333,44444444444,5555555555,6666666666,7777777777,8888888888,9999999999);
	for(i=0;i<11;i++){
		if(cpf == rrValida[i]){
			return null;	
		}
	}
	var i;
	var c = cpf.substr(0,9);
	var dv = cpf.substr(9,2);
	var d1 = 0;   
	for (i = 0; i < 9; i++) d1 += c.charAt(i)*(10-i);
	if (d1 == 0) return null;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1) return null;
	d1 *= 2;
	for (i = 0; i < 9; i++) d1 += c.charAt(i)*(11-i);
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1) return null;
	return true;
};

Date.prototype.getFullString = function() {
	return this.getFullYear()+''+this.getMonth()+''+this.getDate()+''+this.getHours()+''+this.getMinutes()+''+this.getSeconds();
};