/* XSM: Rev. 2.0001 19-10-2011: S'afegeix la funció isDate "isDate(txtDate)" */ String.prototype.trim = function () { return this.ltrim().rtrim() }; String.prototype.ltrim = function () { return this.replace(/^\s+/g, "") }; String.prototype.rtrim = function () { return this.replace(/\s+$/g, "") }; function isDate(dateStr) { var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; var matchArray = dateStr.match(datePat); // is the format ok? if (matchArray == null) { //alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy."); return false; } month = matchArray[3]; // p@rse date into variables day = matchArray[1]; year = matchArray[5]; if (month < 1 || month > 12) { // check month range //alert("Month must be between 1 and 12."); return false; } if (day < 1 || day > 31) { //alert("Day must be between 1 and 31."); return false; } if ((month==4 || month==6 || month==9 || month==11) && day==31) { //alert("Month "+month+" doesn`t have 31 days!") return false; } if (month == 2) { // check for february 29th var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); if (day > 29 || (day==29 && !isleap)) { //alert("February " + year + " doesn`t have " + day + " days!"); return false; } } return true; // date is valid } function randomPassword(camp,size) { var actual='' if (camp!='') { actual=document.getElementById(camp).value; } if (actual=='') { var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$_+"; if (size==null) { size = 15; } var i = 1; var ret = "" while ( i <= size ) { $max = chars.length-1; $num = Math.floor(Math.random()*$max); $temp = chars.substr($num, 1); ret += $temp; i++; } if (camp!='') { document.getElementById(camp).value=ret; } else { return ret; } } } function Left(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else return String(str).substring(0,n); } function Right(str, n){ if (n <= 0) return ""; else if (n > String(str).length) return str; else { var iLen = String(str).length; return String(str).substring(iLen, iLen - n); } } function truncar(text_env,separador) { var truncar='' var texto=text_env var a=texto.indexOf(separador) if (a!=-1) { truncar=texto.substring(0,a) texto=texto.substring(a+1) } else { truncar=texto texto='' } return {truncar : truncar, text : texto}; } function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) { if (num<0) { var negativa=true } else{ var negativa=false } if (!dec) { dec=0 } if (!thou) { thou='.' } if (!pnt) { if (dec>0) { pnt=',' } else { pnt='' } } if (!curr1) { curr1='' } if (!curr2) { curr2='' } if (!n1) { n1='' } if (!n2) { n2='' } var x = Math.round(num * Math.pow(10,dec)); if (x >= 0) n1=n2=''; var y = (''+Math.abs(x)).split(''); var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) { z-=3; y.splice(z,0,thou); } var r = curr1+n1+y.join('')+n2+curr2; if (negativa) { r = '-' + r } return r; } function SetCursorPosition() { var obj = document.activeElement; if (obj) { if (obj.value) { var pos=obj.value.length var tr = obj.createTextRange(); if (obj && tr) { tr.collapse(true); tr.moveStart("character", pos); tr.moveEnd("character", pos); tr.select(); return true; } } } return false; } function escriu_normal(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if ((charCode < 31) && (charCode != 8) && (charCode != 9) && (charCode != 13)) { return false; } return true; } function solsnumeros(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode == 46) {charCode = 44} if ( // (charCode > 31 && (charCode < 48 || charCode > 57)) && !(charCode >=48 && charCode <= 57) && (charCode != 44) && (charCode != 45) && (charCode != 46) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) ) return false; return true; } function solshores(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if ( !(charCode >=48 && charCode <= 57) && (charCode != 58) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) ) return false; return true; } function solsdata(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if ( !(charCode >=48 && charCode <= 57) && (charCode != 47) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) ) return false; return true; } function solsips(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode != 46)) return false; return true; } function solslletres(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode != 45) && (charCode != 46) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) && (charCode != 95) ) { return false; } return true; } function lletresnumeros(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode > 31 && (charCode < 48 || charCode > 57)) && (charCode != 45) && (charCode != 46) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) && (charCode != 95) ) { return false; } return true; } function escriu_domini(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if ( ( (charCode==8) || (charCode==9) || (charCode==13) || (charCode==45) || (charCode==46) || (charCode>=48 && charCode<=57) || (charCode>=65 && charCode<=90) || (charCode>=97 && charCode<=122) ) && (charCode != 37) && (charCode != 39) ) { return true; } else { return false; } } function escriu_domini_noext(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if ( ( (charCode==8) || (charCode==9) || (charCode==13) | (charCode==45) || (charCode>=48 && charCode<=57) || (charCode>=65 && charCode<=90) || (charCode>=97 && charCode<=122) ) && (charCode != 37) && (charCode != 39) ) { return true; } else { return false; } } function escriu_email(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); if (charCode > 31 && (charCode < 64 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode > 31 && (charCode < 48 || charCode > 57)) && (charCode != 59) && (charCode != 37) && (charCode != 39) && (charCode != 45) && (charCode != 46) && (charCode != 95) ) { return false; } return true; } function escriu_email_no_domini(evt) { evt = (evt) ? evt : event; var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); //alert(charCode) if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode > 31 && (charCode < 48 || charCode > 57)) && (charCode != 59) && (charCode != 45) && (charCode != 46) && (charCode != 37) && (charCode != 39) && (charCode != 8) && (charCode != 9) && (charCode != 13) && (charCode != 95) ) { return false; } return true; } function el_valor(texto){ if (texto!='') { texto=texto.replace('.','') texto=texto.replace(',','.') texto=parseFloat(texto) } return texto; } function email_ok(email) { var email_temp=email var separador=';'; var resultado=true; while (email_temp!='') { var posicio=email_temp.indexOf(separador); if (posicio!=-1) { var temp2=email_temp.substring(0,posicio) email_temp=email_temp.substring(posicio+1) resultado = (resultado) && (tot_email_ok(temp2)) } else { temp2=email_temp resultado = (resultado) && (tot_email_ok(temp2)) email_temp=''; } } return resultado; } function tot_email_ok(email){ var filtro=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i if (filtro.test(email)) { resultado=true } else { resultado=false } return (resultado) } function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } /* ** Returns the caret (cursor) position of the specified text field. ** Return value range is 0-oField.length. */ function doGetCaretPosition (oField) { // Initialize var iCaretPos = 0; // IE Support if (document.selection) { // Set focus on the element oField.focus (); // To get cursor position, get empty selection range var oSel = document.selection.createRange (); // Move selection start to 0 position oSel.moveStart ('character', -oField.value.length); // The caret position is selection length iCaretPos = oSel.text.length; } // Firefox support else if (oField.selectionStart || oField.selectionStart == '0') iCaretPos = oField.selectionStart; // Return results return (iCaretPos); } /* ** Sets the caret (cursor) position of the specified text field. ** Valid positions are 0-oField.length. */ function doSetCaretPosition (oField, iCaretPos) { // IE Support if (document.selection) { // Set focus on the element oField.focus (); // Create empty selection range var oSel = document.selection.createRange (); // Move selection start and end to 0 position oSel.moveStart ('character', -oField.value.length); // Move selection start and end to desired position oSel.moveStart ('character', iCaretPos); oSel.moveEnd ('character', 0); oSel.select (); } // Firefox support else if (oField.selectionStart || oField.selectionStart == '0') { oField.selectionStart = iCaretPos; oField.selectionEnd = iCaretPos; oField.focus (); } } function mirarpassword(password,password2) { var cadena = "01234567890abcdefghijklmnopqrstuvwxyz"; var cadena2 = "zyxwvutsrqponmlkjihgfedcba09876543210"; var ok = true; if (password.length < 6) { alert("Por razones de seguridad.\r\rLa contraseña deber ser de seis [6] carácteres como mínimo"); ok = false; } if (cadena.indexOf(password.toLowerCase()) != -1) { alert("Por razones de seguridad.\r\rLa contraseña no puede contener cadenas lineales consecutivas."); ok = false; } if (cadena2.indexOf(password.toLowerCase()) != -1) { alert("Por razones de seguridad.\r\rLa contraseña no puede contener cadenas lineales consecutivas en orden inverso."); fallo = false; } if (password != password2) { alert("Por razones de seguridad.\r\rLa primera y la segunda contraseña no son iguales. \r\rEscríbalas de nuevo y vuelva a intentarlo."); ok = false; } var digit = password.substring(0,1); var es = true; for (var num = 1; num<=password.length-1; num++) { var tempdigit = password.substring(num,num+1); if (tempdigit != digit) { es = false; break; } } if (es == true) { alert("Por razones de seguridad.\r\rTodos los carácteres de la contraseña no pueden ser iguales."); ok = false; } return ok; }