var ELEMENT_NODE = 1; var TEXT_NODE = 3; var CDATA_SECTION_NODE = 4; // Provide the XMLHttpRequest class for IE 5.x-6.x: // Other browsers (including IE 7.x-8.x) ignore this // when XMLHttpRequest is predefined if(typeof(window.XMLHttpRequest) === "undefined") { window.XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) { } try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) { } try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { } try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { } throw new Error("This browser does not support XMLHttpRequest."); }; } function getGeyCode(evt) { if(typeof(evt.which) === "undefined") { // IE return evt.keyCode; } else if(evt.which) { // Netscape/Firefox/Opera return evt.which; } else { return null; } } String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); } function normalizeDate(dateStr) { return dateStr.substring(6) + "/" + dateStr.substring(3, 5) + "/" + dateStr.substring(0, 2); } function today() { var today = new Date(); var year = today.getFullYear(); var month = today.getMonth() + 1; var day = today.getDate(); return year + "/" + padLeft(month, 2, "0") + month + "/" + padLeft(day, 2, "0") + day; } function escapeForXML(str) { var ret = ""; for(var i = 0; i < str.length; i++) { var ch = str.charAt(i); var chCode = str.charCodeAt(i); if(ch == "\'" || ch == "\"" || chCode > 126 || chCode < 32 || ch == "<" || ch == ">" || ch == "&") { ret += "&#" + chCode + ";"; } else { ret += ch; } } return ret; } function padLeft(str, padding, ch) { if(typeof(padding) === "undefined" || padding == null) { padding = 0; } if(typeof(ch) === "undefined" || ch == null) { ch = " "; } var ret = str; while(ret.length < padding) { ret = ch + ret; } return ret; } function toHex(n, padding) { return padLeft(n.toString(16), padding, "0"); } function checaCEP(CEP) { if(CEP.match(/^\d{8}$/) == null) { return false; } return true; } function checaCNPJ(CNPJ) { if(CNPJ.match(/^\d{14}$/) == null) { return false; } return true; } function checaCPF(CPF) { if(CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" || CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" || CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" || CPF == "88888888888" || CPF == "99999999999") return false; soma = 0; for(i = 0; i < 9; i ++) { soma += parseInt(CPF.charAt(i)) * (10 - i); } resto = 11 - (soma % 11); if(resto == 10 || resto == 11) { resto = 0; } if(resto != parseInt(CPF.charAt(9))) { return false; } soma = 0; for (i = 0; i < 10; i ++) { soma += parseInt(CPF.charAt(i)) * (11 - i); } resto = 11 - (soma % 11); if(resto == 10 || resto == 11) { resto = 0; } if(resto != parseInt(CPF.charAt(10))) { return false; } return true; } function validaPass(pass) { var hasAlpha = pass.match(/[A-Za-zÀ-ÖØ-Ýà-öø-ýÿ]/) != null; var hasDigit = pass.match(/[0-9]/) != null; return hasAlpha && hasDigit && pass.length >= 6; } function filterCharacters(evt, pattern) { if(ctrlKey.ctrlKey || ctrlKey.altKey || ctrlKey.metaKey) { return true; } var keynum = getGeyCode(evt); // If the Key Pressed is a CTRL key like Esc, Enter etc - allow if(keynum == null || keynum == 0 || keynum == 8 || keynum == 9 || keynum == 13 || keynum == 27) { return true; } if(String.fromCharCode(keynum).match(pattern) != null) { return true; } return false; } function filterNumbers(evt) { return filterCharacters(evt, /\d/); } function getXMLElementData(elements) { if(typeof(elements) === "undefined" || elements == null) { return ""; } if(elements.nodeType == TEXT_NODE || elements.nodeType == CDATA_SECTION_NODE) { return elements.nodeValue; } else if(elements.nodeType == ELEMENT_NODE) { return getXMLElementData(elements.childNodes); } var ret = ""; for(var i = 0; i < elements.length; i++) { ret += getXMLElementData(elements[i]); } return ret; } function getLeft(element) { var ret = 0; while(element != null) { ret += element.offsetLeft; element = element.offsetParent; } return ret; } function getTop(element) { var ret = 0; while(element != null) { ret += element.offsetTop; element = element.offsetParent; } return ret; } function getBottom(element) { return getTop(element) + element.offsetHeight; } function showMenuBellow(menuName, menuItemsName, visibility) { var menuElement = document.getElementById(menuName); var menuItemsElement = document.getElementById(menuItemsName); //menuItemsElement.style.left = getLeft(menuElement); //menuItemsElement.style.top = getBottom(menuElement); //menuItemsElement.style.visibility = visibility; } function isEmpty(str) { if(str == null) { return true } for(var intLoop = 0; intLoop < str.length; intLoop++) { if(" " != str.charAt(intLoop)) { return false; } } return true; } var reason; function VerificaData(dt, gt) { slash = 1; d = ""; m = ""; a = ""; for(var intLoop = 0; intLoop < dt.length; intLoop++) { if ("/" == dt.charAt(intLoop)) { slash = slash + 1; } else { if (slash == 1) { d = d + dt.charAt(intLoop); } if (slash == 2) { m = m + dt.charAt(intLoop); } if (slash == 3) { a = a + dt.charAt(intLoop); } } } if(isEmpty(dt)) { reason = "A data não foi informada"; return false; } if(isEmpty(d) || isNaN(d)) { reason = "A data informada é inválida: o dia não foi informado ou não é um número válido"; return false; } if(isEmpty(m) || isNaN(m)) { reason = "A data informada é inválida: o mês não foi informado ou não é um número válido"; return false; } if(isEmpty(a) || isNaN(a)) { reason = "A data informada é inválida: o ano não foi informado ou não é um número válido"; return false; } if(m < 1 || m > 12) { reason = "A data informada é inválida: o mês deve ser um valor numérico entre 1 e 12"; return false; } if(a < 1900 || a > 2078) { reason = "A data informada é inválida: o ano deve ser um valor numérico entre " + gt.getFullYear() + " e 2078"; return false; } // Meses de 30 dias if((m == 4 || m == 6 || m == 9 || m == 11) && ( d < 1 || 30 < d)) { reason = "A data informada é inválida: o dia deve ser um valor numérico entre 1 e 30\n" + "para os meses de abril (4), junho (6), setembro (9) e novembro (11)"; return false; } // Mês de fevereiro if(m == 2) { if(a % 4 == 0 && (a % 100 != 0 || a % 400 == 0)) { // Ano bissexto if(d < 1 || 29 < d) { reason = "A data informada é inválida: o dia deve ser um valor numérico entre 1 e 29\n" + "para o mês de fevereiro (2) em anos bissextos"; return false; } } else if(d < 1 || 28 < d) { // Demais anos reason = "A data informada é inválida: o dia deve ser um valor numérico entre 1 e 28\n" + "para o mês de fevereiro (2) em anos não-bissextos"; return false; } } // Demais meses if(d < 1 || 31 < d) { reason = "A data informada é inválida: o dia deve ser um valor numérico entre 1 e 31\n" + "para os meses de janeiro (1), março (3), maio (5), julho (7), agosto (8), outubro (10) e dezembro (12)"; return false; } if(gt != null) { dt = new Date(a, m-1, d); slash = 1; d = ""; m = ""; a = ""; for(var intLoop = 0; intLoop < gt.length; intLoop++) { if ("/" == gt.charAt(intLoop)) { slash = slash + 1; } else { if (slash == 1) { d = d + gt.charAt(intLoop); } if (slash == 2) { m = m + gt.charAt(intLoop); } if (slash == 3) { a = a + gt.charAt(intLoop); } } } gt = new Date(a, m-1, d); if(dt > gt) { reason = "A data informada \u00e9 inv\u00e1lida: ela deve ser igual ou superior \u00e0 " + dt.getDate() + "/" + (dt.getMonth() + 1) + "/" + dt.getFullYear(); return false; } } return true; } function VerificaIntervaloMesData(dt,gt) { slash = 1; d = ""; m = ""; a = ""; for(var intLoop = 0; intLoop < dt.length; intLoop++) { if ("/" == dt.charAt(intLoop)) { slash = slash + 1; } else { if (slash == 1) { d = d + dt.charAt(intLoop); } if (slash == 2) { m = m + dt.charAt(intLoop); } if (slash == 3) { a = a + dt.charAt(intLoop); } } } var dtDate=new Date(a, m-1, d); slash = 1; d = ""; m = ""; a = ""; for(var intLoop = 0; intLoop < gt.length; intLoop++) { if ("/" == gt.charAt(intLoop)) { slash = slash + 1; } else { if (slash == 1) { d = d + gt.charAt(intLoop); } if (slash == 2) { m = m + gt.charAt(intLoop); } if (slash == 3) { a = a + gt.charAt(intLoop); } } } var maxIntervalo=29*24*60*60*1000; // Meses de 31 dias if((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && ( d == 31)) { maxIntervalo=30*24*60*60*1000; } var gtDate=new Date(a, m-1, d); if(gtDate.getTime()-dtDate.getTime()>maxIntervalo) return false; return true; } function gotoPage(formName, inputName, numPage) { document.forms[formName][inputName].value = numPage; document.forms[formName].submit(); } function mask_dt(evt, form, campo) { var campo = document.forms[form][campo]; while(campo.value.length > 2 && campo.value.charAt(campo.value.length - 1) == "/" && campo.value.charAt(campo.value.length - 2) == "/") { campo.value = campo.value.substr(0, campo.value.length - 2); } if(getGeyCode(evt) != 8 && campo.value.length == 2 || campo.value.length == 5) { campo.value += "/"; } } function mask_dt_array(evt, form, campo,index) { var campo = document.forms[form][campo][index]; while(campo.value.length > 2 && campo.value.charAt(campo.value.length - 1) == "/" && campo.value.charAt(campo.value.length - 2) == "/") { campo.value = campo.value.substr(0, campo.value.length - 2); } if(getGeyCode(evt) != 8 && campo.value.length == 2 || campo.value.length == 5) { campo.value += "/"; } } function formatFixed(value, decimals, withSeparators, decimalChar, separatorChar) { var firstChar=''; if(value<0){ firstChar='-'; value=-1*value; } if(typeof(decimals) === "undefined" || decimals == null) { decimals = 2; } if(typeof(withSeparators) === "undefined" || withSeparators == null) { withSeparators = true; } if(typeof(decimalChar) === "undefined" || decimalChar == null) { decimalChar = ","; } if(typeof(separatorChar) === "undefined" || separatorChar == null) { separatorChar = "."; } var str = new Number(value).toFixed(decimals); var parts = str.split("."); var intValue = parseInt(parts[0]); if(withSeparators) { parts[0] = ""; do { var r = new String(intValue % 1000); intValue = parseInt(intValue / 1000); if(parts[0] != "") { parts[0] = separatorChar + parts[0]; } if(intValue) { parts[0] = padLeft(r, 3, "0") + parts[0]; } else { parts[0] = r + parts[0]; } } while(intValue); } return firstChar + parts[0] + (parts.length > 1 ? decimalChar + parts[1] : ""); } function mask_valor(evt, form, campo) { var campo = document.forms[form][campo]; var digits = "0"; for(var i = 0; i < campo.value.length; i++) { var ch = campo.value.charAt(i) if(ch.match(/[0-9]/)) { digits += ch; } } var formated = ""; if(parseFloat(digits) > 0) { formated = formatFixed(parseFloat(digits) / 100); } campo.value = formated; } function mask_valor_array(evt, form, campo, index) { var elem = document.forms[form][campo][index]; if(typeof(elem) === "undefined"){ mask_valor(evt, form, campo); } else{ var digits = "0"; for(var i = 0; i < elem.value.length; i++) { var ch = elem.value.charAt(i) if(ch.match(/[0-9]/)) { digits += ch; } } var formated = ""; if(parseFloat(digits) > 0) { formated = formatFixed(parseFloat(digits) / 100); } elem.value = formated; } } function parseIntOrNull(value) { return value == null ? null : parseInt(value); } function getSelectValue(select, defaultValue) { if(typeof(defaultValue) === "undefined") { defaultValue = null; } var ret = select.length > 0 ? select.options[select.selectedIndex].value : defaultValue; return ret; } var showRow = ""; var hideRow = "none"; function showElement(elementArray, displayValue) { for(var id in elementArray) { var element = document.getElementById(elementArray[id]); if(element != null) { element.style.display = displayValue; } } } function showCalendar(formName, inputName) { var cal = new calendar1(document.forms[formName][inputName]); cal.year_scroll = true; cal.time_comp = false; cal.popup(); } function showCalendarArray(formName, inputName,index) { if(!document.forms[formName][inputName][index].disabled){ var cal = new calendar1(document.forms[formName][inputName][index]); cal.year_scroll = true; cal.time_comp = false; cal.popup(); } }