var formObjectFocused = false; function ucwords( str ) { return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase( ); } ); } function submitForm(objName){ if(eval("validate"+ucwords(objName)+"()")){ var form = document.getElementById(objName+"Form"); if(form){ if(form.onsubmit()){ form.submit(); } } } } function exitWithoutSave(page, formId){ var form = document.getElementById(page+formId+"Form") //var idElement = form.elements["id"]; var idElement = document.getElementById(page+"id"); if(idElement){ var id = idElement.value; if(id != ""){ eval("var formIsChanged = "+page+formId+"JS.formIsChanged;"); if(formIsChanged && typeof(formIsChanged) =='function' && formIsChanged()){ if(!confirm(ML.get("MSG_FORM_CHANGED"))){ return false; } } } } return true; } function enableForm(cForm, enable){ var sendingDiv = document.getElementById("sendingDiv"); if(sendingDiv){ if(enable){ sendingDiv.style.display="none"; }else{ sendingDiv.style.display="block"; } } var children = cForm.elements; for(var i=0; i' || paragraph.innerHTML=='
')){ empty=true; showError(formObjectName, ML.get("ERROR_MANDATORY")); setFocus(formObject); } return empty; } function isEmptyDate(formObjectName){ var empty = false; var day = document.getElementById(formObjectName+"Day"); var month = document.getElementById(formObjectName+"Month"); var year = document.getElementById(formObjectName+"Year"); clearError(formObjectName); if(day && !day.disabled && month && !month.disabled && year && !year.disabled){ if(day.value=="" || month.value=="" || year.value==""){ empty=true; showError(formObjectName, ML.get("ERROR_MANDATORY")); setFocus(day); } } return empty; } function isEmptyRadioButton(formObjectName){ //Jorgito: Se utiliza getElementsByName y no ById !! //TODO: repasar el setFocus del error var empty = true; var formObject = document.getElementsByName(formObjectName); clearError(formObjectName); if(formObject && !formObject.disabled){ var num = formObject.length; var i = 0; var checked = false; while ((i < num) && !checked){ if (formObject[i].checked == true){ empty = false; checked = true; }else{ i++; } } } if (empty === true ) { showError(formObjectName, ML.get("ERROR_MANDATORY")); setFocus(formObject[0]); } return empty; } function isEmptyURL(formObjectName){ var empty = false; var formObject = document.getElementById(formObjectName); clearError(formObjectName); if(formObject && !formObject.disabled){ if(formObject.value=="" || formObject.value == CONFIG.get("URL_DEFAULT")){ empty=true; showError(formObjectName, ML.get("ERROR_MANDATORY")); setFocus(formObject); } } return empty; } function isEmptyFile(formObjectName){ var empty = false; var element = document.getElementById(formObjectName+"Dummy"); clearError(formObjectName); if(element){ empty=true; showError(formObjectName, ML.get("ERROR_MANDATORY")); var form = document.getElementById(formObjectName+"Form"); if(form){ setFocus(form.elements["userfile"]); } } return empty; } function isEmptySelectNtoN(formObjectName){ var numRows = document.getElementById(formObjectName+"_numRows").value; var empty = true; clearError(formObjectName); for (var i=0; i -1 && indexB > -1){ var blackList = "@mailinator.com@mixmail.com@guerrillamail.org@mint.us.to@yopmail.com@spamcorptastic.com"; var domain = value.substr(indexA+1); if(blackList.indexOf(domain) > -1){ showError(formObjectName, ML.get("ERROR_SAFETY_EMAIL")); setFocus(formObject); ok=false; } }else{ ok=false; } }else{ showError(formObjectName, ML.get("ERROR_EMAIL")); setFocus(formObject); ok=false; } } } return ok; } function checkPassword(formObjectName, defaultValue){ if(defaultValue == null) defaultValue = ""; var ok = true; var password1 = document.getElementById(formObjectName); if(!password1.disabled){ var value = password1.value; if(value != defaultValue){ //TODO: Poner mas validaciones. if(value.length < 4 || value.length > 12){ showError(formObjectName+"Bis", ML.get("ERROR_SHORTPASSWORD")); setFocus(password1); ok=false; }else{ var password2 = document.getElementById(formObjectName+"Bis"); if(password2){ clearError(formObjectName+"Bis"); if(password1.value != password2.value){ ok=false; showError(formObjectName+"Bis", ML.get("ERROR_DIFFPASSWORD")); setFocus(password1); } } } } } return ok; } function checkNumber(formObjectName, defaultValue){ if(defaultValue == null) defaultValue = ""; var ok = true; var formObject = document.getElementById(formObjectName); if(!formObject.disabled){ var value = formObject.value; value = value.replace(",", "."); if(value != defaultValue){ formObject.value = value; if(isNaN(value)){ showError(formObjectName, ML.get("ERROR_NUMBER")); setFocus(formObject); ok=false; }else{ clearError(formObjectName); } } } return ok; } function checkMoney(formObjectName, defaultValue){ if(defaultValue == null) defaultValue = ""; var ok = true; var formObject = document.getElementById(formObjectName); if(!formObject.disabled){ var value = formObject.value; if(value != defaultValue){ value = value.replace(",", "."); if(value.indexOf(".") >=0){ valueSP = value.split("."); value = valueSP[0]+"."+valueSP[1].substr(0,2); } formObject.value = value; if(isNaN(value) || value < 0){ showError(formObjectName, ML.get("ERROR_MONEY")); setFocus(formObject); ok=false; }else{ clearError(formObjectName); } } } return ok; } function checkIGTZ(formObjectName, defaultValue){ if(defaultValue == null) defaultValue = ""; var ok = checkNumber(formObjectName); if(ok){ var formObject = document.getElementById(formObjectName); if(!formObject.disabled){ var value = formObject.value; if(value != defaultValue){ if(value.indexOf(".") >=0){ valueSP = value.split("."); value = valueSP[0]; } formObject.value = value; if(isNaN(value) || value < 1){ showError(formObjectName, ML.get("ERROR_IGTZ")); setFocus(formObject); ok=false; }else{ clearError(formObjectName); } } } } return ok; } //Retorna true si year es bisiesto function isLeapYear(year) { if (year < 100) var end = year + 2000; else var end = year ; if (end % 4 != 0) return false; else { if (end % 100 == 0) { if (end % 400 == 0) { return true; } else { return false; } } else { return true; } } } //Formato valido: dd/mm/aaaa function checkDateText(text) { day=text.split("/")[0]; month=text.split("/")[1]; year=text.split("/")[2]; if(isLeapYear(year)) february=29; else february=28; if (text != "") { if (((text.charAt(2) != "/") && (text.charAt(3) != "/")) || ((text.charAt(4) != "/") && (text.charAt(5) != "/") && (text.charAt(6) != "/"))) return false; //Mal formado: dd/mm/aaaa if ((month<1) || (month>12)) return false; //El mes introducido no es válido if ((month==2) && ((day<1) || (day>february))) return false; //El día introducido no es válido if (((month==1) || (month==3) || (month==5) || (month==7) || (month==8) || (month==10) || (month==12)) && ((day<1) || (day>31))) return false; //El día introducido no es válido if (((month==4) || (month==6) || (month==9) || (month==11)) && ((day<1) || (day>30))) return false; //El día introducido no es válido if (year<0) return false; //El año introducido no es valido } return true; } function ucfirst( str ) { var f = str.charAt(0).toUpperCase(); return f + str.substr(1, str.length-1); } function clearSpaces(string){ while (string.indexOf(" ")>-1){ string = string.replace(" ", ""); } return string; } //PRE: UTC in seconds function UTCtoString(UTC){ var months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]; var date = new Date(UTC*1000); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear(); var string = d+" de "+months[m]+" del "+y; return string; } function getSelectText(id){ var select = document.getElementById(id); var option = select.options[select.selectedIndex]; return option.text; } //Borra las filas de una tabla function emptyTable(tableName){ var table = document.getElementById(tableName); while(table.rows.length > 0){ table.deleteRow(0); } } function isChanged(formElementId){ var element = document.getElementById(formElementId); if(element){ var elementBack = document.getElementById(formElementId+CONFIG.get("BACKUP_SUFIX")); if(elementBack){ return (element.value != elementBack.value); } } return false; } function isChangedcheckbox(formElementId){ var element = document.getElementById(formElementId); if(element){ var elementBack = document.getElementById(formElementId+CONFIG.get("BACKUP_SUFIX")); if(elementBack){ return ((element.checked && elementBack.value == "0") || (!element.checked && elementBack.value == "1")); } } return false; } function isChangedDate(formElementId){ var day = document.getElementById(formElementId+"Day"); var month = document.getElementById(formElementId+"Month"); var year = document.getElementById(formElementId+"Year"); if(day && month && year){ var elementBack = document.getElementById(formElementId+CONFIG.get("BACKUP_SUFIX")); if(elementBack){ day = day.value; month = month.value; year = year.value; if(day < 10) day = "0"+day; if(month < 10) month = "0"+month; var value = year+"-"+month+"-"+day; return (elementBack.value.indexOf(value) != 0); } } return false; } function disableDateFormElement(formElementId, value){ var day = document.getElementById(formElementId+"Day"); var month = document.getElementById(formElementId+"Month"); var year = document.getElementById(formElementId+"Year"); if(day && month && year){ day.disabled = value; month.disabled = value; year.disabled = value; if(value){ day.selectedIndex = 0; month.selectedIndex = 0; year.selectedIndex = 0; } } } function typeToString(value){ if(value == 2){ return "image"; }else if(value == 1){ return "document"; }else{ return ""; } } function inputYouTubeFilled(formObjectName){ var formObject = document.getElementById(formObjectName+"Empty"); if(formObject){ formObject.value = 0; } } function isInLangGrouperDisabled(formObjectName){ var isIn = false; var lagGrouperFields = document.getElementById("forminfo.langGrouper"); if(lagGrouperFields){ lagGrouperFields = lagGrouperFields.value; var index = lagGrouperFields.indexOf(","+formObjectName+","); if(index >= 0){ var lang = formObjectName.substr(formObjectName.length-2, 2); var langCheckbox = document.getElementById("lang"+lang); if(langCheckbox){ return (!langCheckbox.checked); } } } return isIn; } function getNodeContent(node){ if(node.textContent){ return node.textContent; }else{ return node.text; } } function openPopUp(url, width, height){ var childWindow = window.open(url,"_blank", "height="+height+",width="+width+",status=yes,scrollbars=yes,toolbar=no,menubar=no,location=no"); if (childWindow.opener == null) childWindow.opener = self; } function openEditorPopUp(attributeName, objectName, height, width){ var childWindow = window.open("editorPopUp.html?attributeName="+attributeName+"&objectName="+objectName+"&ABM=new","_blank", "height="+height+",width="+width+",status=yes,scrollbars=yes,toolbar=no,menubar=no,location=no"); if (childWindow.opener == null) childWindow.opener = self; } xmlhttpRefreshSelect = null; xmlhttpRefreshSelect2 = null; //function refreshSelect(parentSelect, childSelectId, defaultValue, onLoadFunctionName){ function refreshSelect(parentSelect, childSelectId, paramsGET){ var onLoadFunctionName = null; if (xmlhttpRefreshSelect==null) xmlhttpRefreshSelect = newAjax(); var selectElement = document.getElementById(childSelectId); if(selectElement){ selectElement.disabled = true; if(selectElement.options[0] && selectElement.options[0].value == ""){ //Mantenemos el emptyOption selectElement.options.length = 1; }else{ selectElement.options.length = 0; } if(selectElement.onchange) selectElement.onchange(); var parentSelectId = null; if(parentSelect!=null) parentSelectId = parentSelect.id; self.setTimeout("refreshSelectTimeout('"+parentSelectId+"', '"+childSelectId+"', '"+paramsGET+"', "+onLoadFunctionName+")", 200); } } function refreshSelectTimeout(parentSelectId, childSelectId, paramsGET, onLoadFunction){ var urlServlet = urlServlet = CONFIG.get("URL_ENGINE_SERVLET"); var parentSelect = document.getElementById(parentSelectId); paramsGET = "?func=selectOptions&childSelectId="+childSelectId+"&"+paramsGET; if(paramsGET.indexOf("&targetClass=") === -1){ paramsGET+= "&targetClass="+childSelectId; } if(paramsGET.indexOf("&where=") === -1){ paramsGET+= "&where="+escape(parentSelectId+"="+parentSelect.value); } if(parentSelect){ paramsGET = paramsGET.replace(/%23%23VALUE%23%23/gi, parentSelect.value); paramsGET = paramsGET.replace(/##VALUE##/gi, parentSelect.value); } if(xmlhttpRefreshSelect.readyState!=2 && xmlhttpRefreshSelect.readyState!=3){ callAjax(callbackSelect, paramsGET, urlServlet, xmlhttpRefreshSelect); if(onLoadFunction!=null && onLoadFunction!="undefined") onLoadFunction(); } } //function refreshSelect(parentSelect, childSelectId, defaultValue, onLoadFunctionName){ function refreshSelect2(parentSelect, childSelectId, paramsGET){ var onLoadFunctionName = null; if (xmlhttpRefreshSelect2==null) xmlhttpRefreshSelect2 = newAjax(); var selectElement = document.getElementById(childSelectId); if(selectElement){ selectElement.disabled = true; if(selectElement.options[0] && selectElement.options[0].value == ""){ //Mantenemos el emptyOption selectElement.options.length = 1; }else{ selectElement.options.length = 0; } if(selectElement.onchange) selectElement.onchange(); var parentSelectId = null; if(parentSelect!=null) parentSelectId = parentSelect.id; self.setTimeout("refreshSelectTimeout2('"+parentSelectId+"', '"+childSelectId+"', '"+paramsGET+"', "+onLoadFunctionName+")", 200); } } function refreshSelectTimeout2(parentSelectId, childSelectId, paramsGET, onLoadFunction){ var urlServlet = urlServlet = CONFIG.get("SERVER_NAME")+CONFIG.get("URL_ENGINE_SERVLET"); var parentSelect = document.getElementById(parentSelectId); paramsGET = "?func=selectOptions&childSelectId="+childSelectId+"&"+paramsGET; if(paramsGET.indexOf("&targetClass=") === -1){ paramsGET+= "&targetClass="+childSelectId; } if(paramsGET.indexOf("&where=") === -1){ paramsGET+= "&where="+escape(parentSelectId+"="+parentSelect.value); } if(parentSelect){ paramsGET = paramsGET.replace(/%23%23VALUE%23%23/gi, parentSelect.value); paramsGET = paramsGET.replace(/##VALUE##/gi, parentSelect.value); } if(xmlhttpRefreshSelect2.readyState!=2 && xmlhttpRefreshSelect2.readyState!=3){ callAjax(callbackSelect, paramsGET, urlServlet, xmlhttpRefreshSelect2); if(onLoadFunction!=null && onLoadFunction!="undefined") onLoadFunction(); } } function callbackSelect(xmlhttp){ var elements = xmlhttp.responseXML.getElementsByTagName("data"); //Con los cambios de CHARSETs en IE hubo problemas con el XML. Por eso //compruebo antes la longitud if(elements.length > 0){ var childSelectId = elements[0].getAttribute("childSelectId"); var defaultValue = xmlhttp.responseXML.getElementsByTagName("data")[0].getAttribute("defaultValue"); var selectElement = document.getElementById(childSelectId); var options = xmlhttp.responseXML.getElementsByTagName("option"); if(options.length==0){ /* Comento esta linia para conseguir que si un SELECT es obligatorio * pero al refrescarse no tiene valores, no se valide y no se pueda continuar. */ //selectElement.disabled = false; }else{ for(i=0; i< options.length; i++){ var id = options[i].getAttribute("id"); var label = decodeURI(options[i].getAttribute("label")); var currentId = selectElement.options.length; selectElement.options[currentId] = new Option(label, id); if(defaultValue==id) { selectElement.selectedIndex = currentId; }else{ if(options.length == 1){ selectElement.selectedIndex = currentId; if(selectElement.onchange) selectElement.onchange(); } } } selectElement.disabled = false; } } }