var EMPTY_STRING = ""; var ZERO_STRING = "0"; var SPACE_STRING = " "; var SEPARATOR_DOT = "."; var SEPARATOR_COMMA = ","; var ERR_NOT_A_NUMBER = "El valor no es un número válido"; var SCREEN_DATE = 1; var BBDD_DATE = 2; var SCREEN_DATE_RE = "/\d{2}\/\d{2}\/\d{4}/g"; var BBDD_DATE_RE = "/\d{8}/g"; //LIBGENERAL.JS function leftPad(str, chr, times) { var str2 = new String(EMPTY_STRING); if (str == null) str = EMPTY_STRING; var realTimes = times - str.length; for (var i = 0; i < realTimes; i++) str2 = str2.concat(chr); return (str2.concat(str)); } function rightPad(str, chr, times) { var str2 = new String(EMPTY_STRING); if (str == null) str = EMPTY_STRING; str2 = str2.concat(str); var realTimes = times - str.length; for (var i = 0; i < realTimes; i++) str2 = str2.concat(chr); return str2; } function reverseString(str) { if (str == undefined) return ""; var str2 = new String(EMPTY_STRING); var count = str.length - 1; for (var i = count ; i > -1; i--) { str2 = str2.concat(str.substring(i, i+1)); } return str2; } function replace(str, strReplace, strWith) { var i; var str2 = str; do { i = str2.indexOf(strReplace); if (i > 0) { str2 = str2.substring(0, i) + strWith + str2.substring(i + strReplace.length, str2.length); } else { break; } } while(true); return str2; } function trim(cadena) { return ltrim(rtrim(cadena)); } function ltrim(strvar) { if (strvar == undefined) return ""; var str = strvar; if ( str == EMPTY_STRING ) return EMPTY_STRING; for (var i = 0; i < str.length; i++) { if ( str.substring(0, 1) == SPACE_STRING ) { if (str.length > 1) { str = str.substring(1); } else { str = EMPTY_STRING; } } } return str; } function rtrim(strvar) { if (strvar == undefined) return ""; var str = reverseString(strvar); return reverseString(ltrim(str)); } function greaterThan(varnumber, greaterThan, includeBounds) { var num1 = parseFloat(screen2Number(varnumber)); var num2 = parseFloat(screen2Number(greaterThan)); if (includeBounds) { return ( parseFloat(num1) >= parseFloat(num2) ); } else { return ( parseFloat(num1) > parseFloat(num2) ); } } function lessThan(varnumber, lessThan, includeBounds) { var num1 = parseFloat(screen2Number(varnumber)); var num2 = parseFloat(screen2Number(greaterThan)); if (includeBounds) { return ( parseFloat(num1) <= parseFloat(num2) ); } else { return ( parseFloat(num1) < parseFloat(num2) ); } } function outsideBounds(varnumber, lowerLimit, upperLimit, includeBounds) { if (includeBounds == undefined) { includeBounds = false; } return ( greaterThan(varnumber, upperLimit, includeBounds) || lessThan(varnumber, lowerLimit, includeBounds) ); } function insideBounds(varnumber, lowerLimit, upperLimit, includeBounds) { if (includeBounds == undefined) { includeBounds = false; } return !outsideBounds(varnumber, lowerLimit, upperLimit, includeBounds); } function dateBBDD2Screen(datevar) { if ( datevar.length > 8 ) { return null; } else if ( datevar.match(/\d{8}/g) == null ) { return null; } else { return datevar.substring(6, 10) + "/" + datevar.substring(4, 6) + "/" + datevar.substring(0,4); } } function dateScreen2BBDD(datevar) { if ( datevar.length > 10 ) { return null; } else if ( datevar.match(/\d{2}\/\d{2}\/\d{4}/g) == null ) { return null; } else { return datevar.substring(6) + datevar.substring(3,5) + datevar.substring(0,2); } } function screen2Number(varstrnumber) { var strNumber = trim("" + varstrnumber); var fNegative = false; if (strNumber == EMPTY_STRING || strNumber == null || strNumber == undefined) return null; if (strNumber.substring(0,1) == "-") { strNumber = strNumber.substring(1); fNegative = true; } var str = reverseString(strNumber); var count = str.length; var chr = null; var decimalSeparator = null; var thousandsSeparator = null; for (var i = 0; i < count; i++) { chr = str.substr(i, 1); if (chr > '9' || chr < '0') { decimalSeparator = chr; break; } } str = strNumber; if (decimalSeparator != null) { if ( decimalSeparator != SEPARATOR_DOT && decimalSeparator != SEPARATOR_COMMA ) { return null; } if (decimalSeparator == SEPARATOR_DOT) { thousandsSeparator = SEPARATOR_COMMA; } else { thousandsSeparator = SEPARATOR_DOT; } } else { decimalSeparator = ","; thousandsSeparator = "."; } str = replace(str, thousandsSeparator, EMPTY_STRING); if (decimalSeparator != SEPARATOR_DOT) { str = replace(str, decimalSeparator, SEPARATOR_DOT); } try { if ( isNaN(str) ) { return null; } } catch (e) { return null; } str = trimZeros(str); if (fNegative) { return "-" + str; } else { return str; } } function trimZeros(varnumber) { //PRIVATE (no invocar) var str = varnumber; while (str.substring(0, 1) == ZERO_STRING) str = str.substring(1); while (str.substring(str.length - 1, str.length) == ZERO_STRING && str.indexOf(SEPARATOR_DOT) > 0 ) str = str.substring(0, str.length - 1); if (str.substring(0, 1) == SEPARATOR_DOT) str = ZERO_STRING.concat(str); if (str.substring(str.length - 1) == SEPARATOR_DOT) str = str.substring(0, str.length - 1); if (str == EMPTY_STRING) return ZERO_STRING; return str; } function number2Screen(varnumber, useThousands, decimalPositions, bRound) { var str = screen2Number(varnumber); if (str == null) { return null; } var fNegative = false; if (str.substring(0,1) == "-") { str = str.substring(1); fNegative = true; } var bEuro = false; if ( bRound != undefined && bRound == true) { bEuro = true; } var i = str.indexOf(SEPARATOR_DOT); var realPart = EMPTY_STRING; var decimalPart = EMPTY_STRING; if (i > 0) { realPart = str.substring(0, i); decimalPart = str.substring(i + 1, str.length); } else { realPart = str; } if (decimalPositions != undefined) { decimalPart = rightPad(decimalPart, ZERO_STRING, decimalPositions); if (bEuro && decimalPart.length > decimalPositions) { var s1 = Math.round( parseFloat( decimalPart.substr(0, decimalPositions) + "." + decimalPart.substring(decimalPositions) ) ); decimalPart = "" + s1; } } if (useThousands) { realPart = reverseString(realPart); var formattedRealPart = EMPTY_STRING; var j = realPart.length; var k = 0; for (i = 0; i < j; i++) { formattedRealPart += realPart.substring(i, i+1); k++; if ( k == 3 && i < j - 1) { formattedRealPart += SEPARATOR_DOT; k = 0; } } realPart = reverseString(formattedRealPart); } if (decimalPart != EMPTY_STRING) { decimalPart = SEPARATOR_COMMA.concat(decimalPart); } if (!fNegative) { return realPart.concat(decimalPart); } else { return "-" + realPart.concat(decimalPart); } } function validateNumber(varnumber, realPositions, decimalPositions) { var str = screen2Number(varnumber); if (str == null) return false; if (str.substring(0,1) == "-") { str = str.substring(1); } var i = str.indexOf(SEPARATOR_DOT); var realPart = EMPTY_STRING; var decimalPart = EMPTY_STRING; if (i > 0) { realPart = str.substring(0, i); decimalPart = str.substring(i + 1, str.length); } else { realPart = str; } return((realPart.length <= realPositions )&& (decimalPart.length <= decimalPositions )); } //Retorna: // -1 - Indefinido // 0 - Entero positivo (Natural) // 1 - Entero (negativo) // 2 - Real positivo // 3 - Real (negativo) function getClassOfNumber(varnumber) { var str = screen2Number(varnumber); if (str == null) return -1; var i = 0; if (str.indexOf(".") > -1) i += 2; if (str.indexOf("-") > -1) i += 1; return "" + i; } function isNegative(varnumber) { var str = getClassOfNumber(varnumber); if ( str == "1" || str == "3" ) return true; return false; } function roundNumber(varnumber, decimalPositions) { var str = screen2Number(varnumber); if (str == null) return null; if (decimalPositions == undefined) decimalPositions = 0; if (decimalPositions == 0) return "" + Math.round(parseFloat(str)); return "" + ( Math.round( parseFloat(str) * Math.pow( 10, parseInt(decimalPositions) ) ) / Math.pow(10, parseInt(decimalPositions) ) ); } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i= 0) && (str.charAt(i) == ' ')){i--;} resultStr = str.substring(0, i + 1); } return resultStr; } // funcion que comprueba si el campo es numerico decimal (positivo o negativo) // El caracter del decimal es el punto o la coma. function esDecimal(campo) { if (esEntero(campo) || esBlanco(campo)) return true; var posPunto = campo.indexOf("."); if (posPunto < 0) posPunto = campo.indexOf(","); if (posPunto < 0) return false; if (!esEntero(campo.substring(0, posPunto))) return false; if (!esEntero(campo.substring(posPunto + 1))) return false; if (campo.charAt(posPunto + 1) == '-') return false; return true; } // funcion que comprueba si el campo es numerico entero (positivo o negativo) function esEntero(campo) { var inLen = campo.length; for (var i=0; i < inLen; i++) { var ch = campo.substring(i, i + 1); if ((ch < "0") || ("9" < ch)) { if (i != 0) return false; else if (ch != "-") return false; } } return true; } function compara_fechas(fechaDesde, fechaHasta){ var fecha1, fecha2 fecha1 = parseInt(fechaDesde.slice(6,10) + fechaDesde.slice(3,5) + fechaDesde.slice(0,2), 10); fecha2 = parseInt(fechaHasta.slice(6,10) + fechaHasta.slice(3,5) + fechaHasta.slice(0,2), 10); if (fecha1 > fecha2) return true; else return false; } // funcion que comprueba si el campo es numerico decimal (positivo o negativo) // El caracter del decimal es la coma y los miles pueen ir separadoa por punto. function esDecimalFormateado(campo) { if (esEntero(campo) || esBlanco(campo)) return true; var posComa = campo.indexOf(","); if (!esEntero(campo.substring(0, posComa))) { var posPunto = campo.indexOf("."); if (!esEntero(campo.substring(0, posPunto))) return false; if (!esEntero(campo.substring(posPunto + 1, posComa-1))) return false; } if (!esEntero(campo.substring(posComa + 1))) return false; if (campo.charAt(0) == '-') return false; return true; } // Declaring valid date character, minimum year and maximum year var dtCh= "/"; var minYear=1900; var maxYear=2100; function isInteger(s){ var i; for (i = 0; i < s.length; i++){ // Check that current character is number. var c = s.charAt(i); if (((c < "0") || (c > "9"))) return false; } // All characters are numbers. return true; } function stripCharsInBag(s, bag){ var i; var returnString = ""; // Search through string's characters one by one. // If character is not in bag, append to returnString. for (i = 0; i < s.length; i++){ var c = s.charAt(i); if (bag.indexOf(c) == -1) returnString += c; } return returnString; } function daysInFebruary (year){ // February has 29 days in any year evenly divisible by four, // EXCEPT for centurial years which are not also divisible by 400. return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31 if (i==4 || i==6 || i==9 || i==11) {this[i] = 30} if (i==2) {this[i] = 29} } return this } function esFecha(dtStr){ var daysInMonth = DaysArray(12) var pos1=dtStr.indexOf(dtCh) var pos2=dtStr.indexOf(dtCh,pos1+1) var strDay=dtStr.substring(0,pos1) var strMonth=dtStr.substring(pos1+1,pos2) var strYear=dtStr.substring(pos2+1) strYr=strYear if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1) if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1) for (var i = 1; i <= 3; i++) { if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1) } month=parseInt(strMonth) day=parseInt(strDay) year=parseInt(strYr) if (pos1==-1 || pos2==-1){ return false } if (strMonth.length<1 || month<1 || month>12){ return false } if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){ return false } if (strYear.length != 4 || year==0 || yearmaxYear){ return false } if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){ return false } return true } MM_preloadImages('files/img/btnProgramarVerdeOver.gif','files/img/btnAnadirContenidoOver.gif','files/img/btnCopiarOver.gif','files/img/btnCortarOver.gif','files/img/btnPegarOver.gif','files/img/btnEditarOver.gif','files/img/btnPapeleraOver.gif','files/img/btnEliminarOver.gif','files/img/btnDesconectarOver.gif','files/img/btnDevelopmentOver.gif','files/img/btnLiveOver.gif','files/img/btnUpOver.gif','files/img/btnDownOver.gif','files/img/btnVerDevelopmentOver.gif','files/img/btnVerLiveOver.gif'); function abreVentana(pagina, ancho, alto, oculta, nombre) { var arriba; var izquierda; if (nombre == undefined) { nombre = ""; } if (oculta) { arriba = screen.availHeight + 20; izquierda = screen.availWidth + 20; ancho=1; alto=1; // document.body.style.cursor = "wait"; // parent.frames.oculto.document.location = pagina; // return; } else { // arriba = window.screenTop + (document.body.clientHeight/2) - (alto/2); // izquierda = window.screenLeft + (document.body.clientWidth/2) - (ancho/2); arriba = (screen.availHeight/2) - (alto/2) - 30; izquierda = window.screenLeft + (document.body.clientWidth/2) - (ancho/2); if ((arriba + alto) > screen.availHeight) arriba = screen.availHeight - alto - 30; if ((izquierda + ancho) > screen.availWidth) izquierda = screen.availWidth - ancho - 30; if (arriba < 0) arriba = 0; if (izquierda < 0) izquierda = 0; } var propiedades = "directories=0,resizable=1,location=0,status=1,scrollbars=1,toolbar=0,menubar=0,width="+ancho+",height="+alto+",top="+arriba+",left="+izquierda; window.open(pagina, nombre, propiedades); } function setViewMode(development) { var frm = document.forms.frm_cms_canal; frm.formulario.value = "viewMode"; frm.development.value = development; frm.target = "_self"; frm.action = ""; frm.submit(); } function editar(idDatatype, idContenido) { abreVentana("blanco.htm", 550, 600, false, "editor_window"); var frm = document.forms.frm_cms_canal; frm.target = "editor_window"; frm.OBJECT.value = idContenido; frm.DATATYPE.value = idDatatype; frm.action = "cms/component/editor/v1/editor.jsp"; frm.submit(); } function refresh() { var frm = document.forms.frm_cms_canal; frm.target = "_self"; frm.OBJECT.value = ""; frm.DATATYPE.value = ""; frm.formulario.value = ""; frm.action = ""; frm.submit(); } function newContent(idDatatype) { abreVentana("blanco.htm", 550, 600, false, "editor_window"); var frm = document.forms.frm_cms_canal; frm.target = "editor_window"; frm.OBJECT.value = ""; frm.DATATYPE.value = idDatatype; frm.action = "cms/component/editor/v1/editor.jsp"; frm.submit(); } function eliminar(idDatatype, idContenido) { var frm = document.forms.frm_cms_canal; frm.target = "_self"; frm.formulario.value = "eliminarContenido"; frm.OBJECT.value = idContenido; frm.DATATYPE.value = idDatatype; frm.accion.value = "eliminar"; frm.action = ""; frm.submit(); } function mover(idDatatype, idContenido, direction) { var frm = document.forms.frm_cms_canal; frm.target = "_self"; frm.formulario.value = "moverContenido"; frm.OBJECT.value = idContenido; frm.DATATYPE.value = idDatatype; frm.direccion.value = direction; frm.accion.value = "mover"; frm.action = ""; frm.submit(); } function setDevelopmentContenido(idDatatype, idContenido, development) { var frm = document.forms.frm_cms_canal; frm.target = "_self"; frm.formulario.value = "setDevelopmentContenido"; frm.OBJECT.value = idContenido; frm.DATATYPE.value = idDatatype; frm.direccion.value = development; frm.accion.value = "setDevelopmentContenido"; frm.action = ""; frm.submit(); } function setPadreValues(idPadre, jerarquiaPadre, idTamano, idColor) { var frm = document.forms.frm_cms_canal; frm.idPadre.value = idPadre; frm.jerarquiaPadre.value = jerarquiaPadre; frm.idTamano.value = idTamano; frm.idColor.value = idColor; }