// // // JavaScript Functions // // // ////////////////////////////////////// // Algunas variables Globales var HOY=new Date(); // Algunos formatos para fechas. var NLDF="D/M/YY"; // para columnas en las queries INFORMIX var IFDF="D/M/YY"; // para columnas en SQL según DBDATE // Algunos formatos para nros. var NF2="##" var NF3="###" var NF4="#.###" var NF5="##.###" var NF6="###.###" var NF7="#.###.###" var NF8="##.###.###" var NF9="###.###.###" var NF09="***.***.***" var NFY9="&&&.&&&.&&&&" var NF10="#.###.###.###" var NF11="##.###.###.###" var NF12="###.###.###.###" var baseHtml=""; // Inline Character Constants var BACKSPACE = "\b" var TAB = "\t" var CR = "\r" var LF = "\n" var CRLF = "\r\n" var FF = "\f" var DQUOTE = '\"' var SQUOTE = "\'" var BACKSLASH = "\\" // // Date Object Enhanced Methods // Date.prototype.getFullYear = getFullYear; Date.prototype.getActualMonth = getActualMonth; Date.prototype.getActualDay = getActualDay; Date.prototype.getCalendarDay= getCalendarDay; Date.prototype.getCalendarMonth= getCalendarMonth; Date.prototype.getYearDay= getYearDay; function DateFromN(ndia) { // Esta función devuelve una fecha en formato "DD/MM/YY" // a partir de un nro de día entre 1 y 366 del año actual // if ( ndia < 0 ) return "" var yea=HOY.getYear(); if ( ndia >365 ) { yea=yea+1; ndia=ndia-365 } var nmes = new Array(12); nmes[0] = 31; nmes[1] = 28; nmes[2] = 31; nmes[3] = 30; nmes[4] = 31; nmes[5] = 30; nmes[6] = 31; nmes[7] = 31; nmes[8] = 30; nmes[9] = 31; nmes[10] = 30 nmes[11] = 31; var sumadias=0; for ( var i=0 ; i <= 11 ; i++) { suma=nmes[i]+sumadias; if (suma >= ndia ) break; sumadias=suma; } var dia=ndia-sumadias; // alert("Datos :"+dia+" Nro Dia: "+ndia+" Mes: "+mes+" SumaDias: "+sumadias+" Suma:"+suma+" Mes:"+i); var mes=i+1; // alert("Es Día :"+dia+" del mes "+mes); return dia+"/"+mes+"/"+yea; } function AsignaFecha(stringDate,fecha) { // Esta función asigna el día, mes y año de la cadena stringDate // a la variable de tipo date pasada como argumento "fecha" if ( stringDate == "" ) return "" ; var s_fecha=DateUnformat(stringDate+""); if ( s_fecha == "" ) return "" ; if ( s_fecha.substring(0,1) == "-" ) { alert("-> ¡ Fecha no Válida! ¡ Debe ser una fecha en formato dd/mm/aa!"); return "-1"; } var day=HOY.getDate(); var yea=HOY.getYear(); var mon=HOY.getMonth()+1; var pos=s_fecha.indexOf("/"); if (pos == -1) { if ( s_fecha.length == 1 || s_fecha.length == 2 ) day=parseInt(s_fecha); if ( s_fecha.length == 3 || s_fecha.length == 4 ) { day=parseInt(s_fecha.substring(0,2)); mon=s_fecha.substring(2,s_fecha.length); } if ( s_fecha.length == 5 ) { day=parseInt(s_fecha.substring(0,2)); mon=s_fecha.substring(2,3); yea=parseInt(s_fecha.substring(3,s_fecha.length)); } if ( s_fecha.length == 6 ) { day=parseInt(s_fecha.substring(0,2)); mon=s_fecha.substring(2,4); yea=parseInt(s_fecha.substring(4,s_fecha.length)); } } else { var lastPos=s_fecha.substring(pos+1,s_fecha.length).indexOf("/"); if ( lastPos == -1 ) { day = parseInt(s_fecha.substring(0,pos)); mon = s_fecha.substring(pos+1,s_fecha.length); } else { lastPos=pos+lastPos+1; day = parseInt(s_fecha.substring(0,pos)); mon = s_fecha.substring(pos+1,lastPos); yea = parseInt(s_fecha.substring(lastPos+1,s_fecha.length)); } } fecha.setDate(day); fecha.setMonth(mon-1); fecha.setYear(yea); return 0; } function getYearDay() { var nday = this.getDate(); var nmon = this.getMonth(); var nyea = this.getYear(); var nmes = new Array(12); nmes[0] = 31; nmes[1] = daysInFebruary (nyea) nmes[2] = 31; nmes[3] = 30; nmes[4] = 31; nmes[5] = 30; nmes[6] = 31; nmes[7] = 31; nmes[8] = 30; nmes[9] = 31; nmes[10] = 30 nmes[11] = 31; var sumadias=0; for ( var i=0 ; i < nmon; i++ ) sumadias=nmes[i]+sumadias; var dia=sumadias+nday; // alert("El Día es:"+dia+" del año"); return dia; } function getFullYear() { var n = this.getYear(); if ( n >= 0 && n <= 70 ) n += 2000; else n += 1900; return n; } function getActualMonth() { var n = this.getMonth(); n += 1; return n; } function getActualDay() { var n = this.getDay(); n += 1; return n; } function getCalendarDay() { var n = this.getDay(); var ndia = new Array(7); ndia[0] = "Domingo"; ndia[1] = "Lunes"; ndia[2] = "Martes"; ndia[3] = "Miércoles"; ndia[4] = "Jueves"; ndia[5] = "Viernes"; ndia[6] = "Sábado"; return ndia[n]; } function getCalendarMonth() { var n = this.getMonth(); var nmes = new Array(12); nmes[0] = "Enero"; nmes[1] = "Febrero"; nmes[2] = "Marzo"; nmes[3] = "Abril"; nmes[4] = "Mayo"; nmes[5] = "Junio"; nmes[6] = "Julio"; nmes[7] = "Agosto"; nmes[8] = "Septiembre"; nmes[9] = "Octubre"; nmes[10] = "Noviembre"; nmes[11] = "Diciembre"; return nmes[n]; } function stringMonth(n) { var nmes = new Array(12); nmes[0] = "Enero"; nmes[1] = "Febrero"; nmes[2] = "Marzo"; nmes[3] = "Abril"; nmes[4] = "Mayo"; nmes[5] = "Junio"; nmes[6] = "Julio"; nmes[7] = "Agosto"; nmes[8] = "Septiembre"; nmes[9] = "Octubre"; nmes[10] = "Noviembre"; nmes[11] = "Diciembre"; return nmes[n]; } // End Date Objects /* Varialbles para el Scroll: MESSAGE = "Your message" -- The text you want to scroll. [Put into scroll.msg] DELAY = 50 -- The delay (in milliseconds) between each shift left. [Put into scroll.delay] POSITION = 100 -- How many spaces should lead the message when it starts? [Put into scroll.pos] status_scroll -- true o false si scroll activado */ var status_scroll = false // No scroll activado var POSITION = 100 var DELAY = 50 var MESSAGE = " Cuentas a Pagar " var scroll = new statusMessageObject() function decode(str) { return unescape(str); } function encode(str) { return escape(str); } function getCookie(Name) { var search = "NETSCAPE_LIVEWIRE." + Name + "="; var RetStr = ""; var Offset = 0; var end = 0; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search); if (offset != -1) { offset += search.length; end = document.cookie.indexOf(";",offset); if (end == -1) { end = document.cookie.length } RetStr = decode(document.cookie.substring(offset,end)); } } return(RetStr); } function setCookie(Name,Value,Expire) { document.cokie = "NETSCAPE_LIVEWIRE." + Name + "=" + encode(Value) + ((Expire == null) ? "" : ("; expires=" + Expire.toGMTString())); } function chk_login() { if (client.es_inicio == 1 ) { top.close(); redirect("initial.html?ipw=1"); return false; } else return true; } function abreVentana(ulrPath,winName) { // if (ulrPath != null) { now=new Date(); var n = now.getSeconds(); stringArgs=" "; numArgs=abreVentana.arguments.length; if (numArgs >2) { for (var i=1; i < numArgs; i++) { stringArgs=stringArgs+","+abreVentana.arguments[i]; }; }; stringArgs="\""+stringArgs+"\""; NvaVentana=window.open(ulrPath,winName+n,stringArgs); return NvaVentana; // }; } function cierraVentana(Ventana) { if (Ventana != null) { Ventana.close(); return; }; } function NetHelp(topic) { window.open("help.html#" + topic , "HelpWin", "toolbar=no,directories=no,menubar=no,status=no,scrollbars=no,resizable=yes,width=400,height=500") } function loadHelp() { if (parent.main.document.URL.indexOf("multi_entry.html") >= 0) NetHelp("entry"); else if (parent.main.document.URL.indexOf("report") >= 0) NetHelp("reports"); else if (parent.main.document.URL.indexOf("user_info.html") >= 0 || parent.main.document.URL.indexOf("_pw.html") >= 0) NetHelp("prefs"); else if (parent.main.document.URL.indexOf("edit_entry") >= 0) NetHelp("edit_entry"); else if (parent.main.document.URL.indexOf("admin.html") >= 0 || parent.main.document.URL.indexOf("add_") >= 0 || parent.main.document.URL.indexOf("edit_") >= 0) NetHelp("admin"); else NetHelp("intro"); } function DbsError(status,dbstatus) { // Hay un problemilla: status es true en las operaciones de // connect pero es un numérico en el resto. // por eso siempre será true en las peticiones SQL // client.status=status; client.dbstatus=dbstatus; client.majorErrorCode=database.majorErrorCode(); client.majorErrorMessage= database.majorErrorMessage(); client.minorErrorCode =database.minorErrorCode(); client.minorErrorMessage=database.minorErrorMessage(); if ( status == true ) return; if ( dbstatus == 0 ) return; if (client.is_trans == true) database.rollbackTransaction(); redirect('error.html') } function chkBrowser() { browser = request.agent; if (browser.indexOf("Mozilla/") != -1) { ver = browser.substring(8,9) verNum = parseInt(ver) if (verNum > 2 ) { return; } redirect("wrongbrw.html") } } function writeln(text) { write(text + '\n'); } function wbuttons(text) { write(' ndoc=\''+text+'\');'+'\n'); } function escQuote (query_string) { var new_string = ""; var query_len = query_string.length; var c; if (query_string == "" || query_string.indexOf("'") < 0) return query_string; for (var i = 0; i < query_len; i++) { c = query_string.charAt(i); if (c != '\'') new_string += c; else new_string += "''"; } return new_string; } function backslashQuote (s) { var new_string = ""; var len = s.length; var c; if (s == "" || s.indexOf("'") < 0) return s; for (var i = 0; i < len; i++) { c = s.charAt(i); if (c != '\'') new_string += c; else new_string += "\\'"; } return new_string; } function createIdNameString(queryString) { var query; var temp; temp = ""; query = database.cursor(queryString); while (query.next()) temp += query[0]+" | "+query[1]+" || "; query.close(); return temp; } function createIdNameGroupString(query_string) { var query; var temp; temp = ""; query = database.cursor(query_string); while (query.next()) { if ((query[2]+"").indexOf("No Group") >= 0) temp += query[0]+" | "+query.fullname+" || "; else temp += query[0]+" | "+query.fullname+" ("+query[2]+") || "; } query.close(); return temp; } function loggedIn() { var today = new Date; if (client.id == "null" || client.id == null) return false; if (! client["login"+((today.getYear()+today.getMonth())*client.id)]) return false; if (client["login"+((today.getYear()+today.getMonth())*client.id)] != "yes") return false; return true; } function setLoggedIn() { var today = new Date(); client["login"+((today.getYear()+today.getMonth())*client.id)] = "yes"; } function setLoggedOut() { var today = new Date(); if (client.id != null && client.id != "null") client["login"+((today.getYear()+today.getMonth())*client.id)] = null; } function IdNameObj() { this.id = ""; this.name = ""; this.currPos = 0; } function getNextItem(s,item) { var nextPos; nextPos = s.indexOf(" |",item.currPos); item.id = s.substring(item.currPos,nextPos); item.currPos = nextPos+3; nextPos = s.indexOf(" ||", item.currPos); item.name = s.substring(item.currPos,nextPos); item.currPos = nextPos+4; } function writeSelectMultiOptions(list,selectList) { var item = new IdNameObj(); var selectItem = new IdNameObj; var allItemsFound = true; getNextItem(selectList,selectItem); while (item.currPos < list.length) { getNextItem(list,item); // current item in select list not found in list if (item.name > selectItem.name && selectItem.currPos < selectList.length) { getNextItem(selectList,selectItem); allItemsFound = false; } if (item.id == selectItem.id) { writeln("