/**
* Assorted Utility JavaScript Functions v1.0
* Written by Diego Pires Pires Plentz (http://plentz.org)
* Thanks to Jonas Galvez
* Licensed under the GPL 2.0
*/
var nav = navigator.userAgent.toLowerCase();
var op = nav.indexOf("opera") !=- 1;
var ie = nav.indexOf("msie") !=- 1;
var ie5 = nav.indexOf("msie 5") !=- 1;
var ko = nav.indexOf("konqueror") !=- 1;
var sa = nav.indexOf("safari") !=- 1;
var ca = nav.indexOf("camino") !=- 1;
var ge = nav.indexOf("gecko") !=- 1;
o = String.prototype;
o.$_replace = o.replace;
o.replace = function(a, b) {
if(a instanceof RegExp) return this.$_replace(a, b);
else return this.split(a).join(b);
}
o.trim = function() {
return this.replace(/^\s*|\s*$/g,'');
}
o.ltrim = function() {
return this.replace(/^\s*/g,'');
}
o.rtrim = function() {
return this.replace(/\s*$/g,'');
}
o.removeSpaces = function() {
return this.replace(' ','');
}
o.isEmail = function() {
return (/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/).test(this);
}
o.isDate = function() {
return (/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/).test(this);
}
o.isDateGreater = function (dF){
if(this.substr(6,4) > dF.substr(6,4)) return false;
else if (this.substr(6,4) == dF.substr(6,4)){
if(this.substr(3,2) > dF.substr(3,2)) return false;
else {if(this.substr(3,2) == dF.substr(3,2) && this.substr(0,2) > dF.substr(0,2)) return false;}
}
}
o.isTime = function() {
return (/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/).test(this);
}
o.isCNPJ = function(){
var d = this.split("");
var m1 = [d[0]*5,d[1]*4,d[2]*3,d[3]*2,d[4]*9,d[5]*8,d[6]*7,d[7]*6,d[8]*5,d[9]*4,d[10]*3,d[11]*2];
var s1 = 0;
for(i in m1){ s1 += m1[i]; }
var d1 = (s1%11<2)?0:11-(s1%11);
var m2 = [d[0]*6,d[1]*5,d[2]*4,d[3]*3,d[4]*2,d[5]*9,d[6]*8,d[7]*7,d[8]*6,d[9]*5,d[10]*4,d[11]*3,d1*2];
var s2 = 0;
for(i in m2){ s2 += m2[i]; }
var d2 = (s2%11<2)?0:11-(s2%11);
return (d1 == d[12] && d2 == d[13])? true: false;
}
o.isCPF = function(){
var d = this.split("");
var m1 = [d[0]*10,d[1]*9,d[2]*8,d[3]*7,d[4]*6,d[5]*5,d[6]*4,d[7]*3,d[8]*2];
var s1 = 0;
for(i in m1){ s1 += m1[i]; }
var d1 = (s1%11<2)?0:11-(s1%11);
var m2 = [d[0]*11,d[1]*10,d[2]*9,d[3]*8,d[4]*7,d[5]*6,d[6]*5,d[7]*4,d[8]*3,d1*2];
var s2 = 0;
for(i in m2){ s2 += m2[i]; }
var d2 = (s2%11<2)?0:11-(s2%11);
return (d1 == d[9] && d2 == d[10])? true: false;
}
delete o;
function filterNum(v) {
var c = String.fromCharCode(event.keyCode);
event.returnValue = v ? (/[\d,]/).test(c) : (/\d/).test(c);
}
function changeColor(object,color){
object.style.backgroundColor = (object.style.backgroundColor == "")?color: "";
}
function disableButtons(func){
if(func != false){
if(func() == false){return false};
}
var type, isImpr, d = document;
var inputs = d.getElementsByTagName("input");
for(var i = 0, len = inputs.length; i < len; i++) {
type = inputs[i].type.toLowerCase();
isImpr = inputs[i].value.toLowerCase().indexOf("impr") == -1;
if((type == "submit" || type == "reset") && !isimpr) {
inputs[i].disabled = true;
inputs[i].value = "Aguarde...";
}
}
}
function addOnSubmit(){
for (i=0;i<document.forms.length;i++){
var oldfunc = document.forms[i].onsubmit;
if (document.forms[i].target.toLowerCase() != "_blank"){
document.forms[i].onsubmit = (!document.forms[i].onsubmit)?new Function("disableButtons(false)"):new Function("if(disableButtons("+ oldfunc +") == false){return false}");
}
}
}