Causa. Solo ocurre en IE, debido a que no ajusta el texto a las dimensiones dadas o establecidas (Width and Height).
Nota.- Este error es replicable en 3 situaciones. 1. En efecto al eliminar una fila de la grilla. 2. Al eliminar un DYNAFORM desde el DESIGNER 3. Al eliminar un STEP desde un TASK
Solucion. Se hace una modificacion en maborak.old.js en el atributo isIE; mas especificamente se hace una identificacion de si el usuario se encuentra en un navegador IE10 o en su caso IE11, de ser asi se manad nuevos parametros de altura y ancho.
2259 lines
62 KiB
JavaScript
Executable File
2259 lines
62 KiB
JavaScript
Executable File
/* PACKAGE : COMMON
|
||
*/
|
||
function get_xmlhttp() {
|
||
try {
|
||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP1");
|
||
} catch (e) {
|
||
try {
|
||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||
} catch (E) {
|
||
xmlhttp = false;
|
||
}
|
||
}
|
||
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
|
||
xmlhttp = new XMLHttpRequest();
|
||
}
|
||
return xmlhttp;
|
||
}
|
||
/* ajax_function
|
||
* Envia una solicitud GET a ajax_server con la variables "function" y las definidas en parameters.
|
||
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com, julces2000@gmail.com>
|
||
* @version 1.0
|
||
* @package ajax
|
||
* @param string ajax_server url de la pagina servidor
|
||
* @param string function funci<63>n solicitada en el lado del servidor
|
||
* @param string parameters variables pasadas por url. Ej. variable=valor&otravariable=suvalor
|
||
*/
|
||
function ajax_function(ajax_server, funcion, parameters, method)
|
||
{
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
var response;
|
||
try
|
||
{
|
||
if (parameters) parameters = '&' + encodeURI(parameters);
|
||
if (!method ) method ="POST";
|
||
data = "function=" + funcion + parameters;
|
||
questionMark = (ajax_server.split('?').length > 1 ) ? '&' : '?';
|
||
var callServer;
|
||
callServer = new leimnud.module.rpc.xmlhttp({
|
||
url : ajax_server,
|
||
async : false,
|
||
method : method,
|
||
args : data
|
||
});
|
||
callServer.make();
|
||
response = callServer.xmlhttp.responseText;
|
||
var scs = callServer.xmlhttp.responseText.extractScript();
|
||
|
||
scs.evalScript();
|
||
delete callServer;
|
||
} catch(ss){
|
||
alert("Error: "+ss.message+var_dump(ss));
|
||
}
|
||
return response;//objetus.responseText;
|
||
}
|
||
/* ajax_message
|
||
* Envia una solicitud GET a ajax_server con la variables "function" y las definidas en parameters.
|
||
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com, julces2000@gmail.com>
|
||
* @version 1.0
|
||
* @package ajax
|
||
* @param string ajax_server url de la pagina servidor
|
||
* @param string function funci<63>n solicitada en el lado del servidor
|
||
* @param string parameters variables pasadas por url. Ej. variable=valor&otravariable=suvalor
|
||
*/
|
||
function ajax_message(ajax_server, funcion, parameters, method, callback)
|
||
{
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
var response;
|
||
try
|
||
{
|
||
if (parameters) parameters = '&' + encodeURI(parameters);
|
||
if (!method ) method ="POST";
|
||
data = "function=" + funcion + parameters;
|
||
questionMark = (ajax_server.split('?').length > 1 ) ? '&' : '?';
|
||
objetus.open( method, ajax_server + ((method==='GET')? questionMark+data : '') , true );
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
if ( callback ) callback(objetus.responseText);
|
||
}
|
||
}
|
||
}
|
||
if (method==='POST') objetus.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||
objetus.send(((method==='GET')? null : data));
|
||
}catch(ss)
|
||
{
|
||
alert("error"+ss.message);
|
||
}
|
||
}
|
||
/* ajax_post
|
||
* Envia una solicitud GET/POST a ajax_server con los parametros definidos
|
||
* o los campos de un formulario
|
||
* @author Julio Cesar Laura Avendano <juliocesar@colosa.com, julces2000@gmail.com>
|
||
* @version 1.0
|
||
* @package ajax
|
||
* @param string ajax_server url de la pagina servidor
|
||
* @param string function funci<63>n solicitada en el lado del servidor
|
||
* @param string parameters variables pasadas por url o formulario.
|
||
* @example: ajax_post('foo.com', document.form[0], "POST", callback )
|
||
*/
|
||
function ajax_post(ajax_server, parameters, method, callback, asynchronous )
|
||
{
|
||
if (ajax_server == '') {
|
||
return;
|
||
}
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
var response;
|
||
try
|
||
{
|
||
if (typeof(parameters)==='object') parameters = ajax_getForm(parameters);
|
||
if (!method ) method ="POST";
|
||
if (typeof(asynchronous)==='undefined') asynchronous = false;
|
||
data = parameters;
|
||
questionMark = (ajax_server.split('?').length > 1 ) ? '&' : '?';
|
||
if ((method==='POST')||(method==='GET/POST')) {
|
||
objetus.open( 'POST', ajax_server + ((data.length<1024)?(questionMark+data):''), asynchronous );
|
||
} else {
|
||
objetus.open( method, ajax_server + ((method==='GET')? questionMark+data : '') , asynchronous );
|
||
}
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
if ( callback ) callback(objetus.responseText);
|
||
}
|
||
}
|
||
}
|
||
if ((method==='POST')||(method==='GET/POST')) objetus.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
|
||
objetus.send(((method==='GET')? null : data));
|
||
if (!asynchronous)
|
||
{
|
||
if ( callback ) callback(objetus.responseText);
|
||
return objetus.responseText;
|
||
}
|
||
}catch(ss)
|
||
{
|
||
alert("Error: "+ var_dump(ss));
|
||
}
|
||
}
|
||
|
||
/*
|
||
* Refactoring.......................
|
||
* Fixed by checkboxes binary values
|
||
* By Neyek <erik@colosa.com>
|
||
* Date March 27th, 2009 12:20:00 GMT-4
|
||
*/
|
||
|
||
function ajax_getForm( thisform ) {
|
||
var formdata='';
|
||
|
||
// Loop through form fields
|
||
for (var i=0; i < thisform.length; i++) {
|
||
if ( formdata!=='' ) formdata += '&';
|
||
//Build Send String
|
||
if(thisform.elements[i].type == "text") { //Handle Textbox's
|
||
formdata += thisform.elements[i].name + "=" + encodeURIComponent(thisform.elements[i].value);
|
||
} else if(thisform.elements[i].type == "textarea") { //Handle textareas
|
||
formdata += thisform.elements[i].name + "=" + encodeURIComponent(thisform.elements[i].value);
|
||
} else if(thisform.elements[i].type == "checkbox") { //Handle checkbox's
|
||
formdata += thisform.elements[i].name + '=' + ((thisform.elements[i].checked)? (typeof(thisform.elements[i].value) != 'undefined' ? thisform.elements[i].value : 'On') : '');
|
||
} else if(thisform.elements[i].type == "radio") { //Handle Radio buttons
|
||
if(thisform.elements[i].checked==true){
|
||
formdata += thisform.elements[i].name + "=" + thisform.elements[i].value;
|
||
}
|
||
} else if(thisform.elements[i].type == "select-multiple") { //Handle list box
|
||
for(var j=0; j<thisform.elements[i].options.length ;j++) {
|
||
if ( j!==0 ) formdata += '&';
|
||
formdata += ( (thisform.elements[i].options[j].selected)? thisform.elements[i].name.replace('[]', '[' + j + ']') + "=" + encodeURIComponent(thisform.elements[i].options[j].value): '');
|
||
}
|
||
} else {
|
||
//finally, this should theoretically this is a select box.
|
||
formdata += thisform.elements[i].name + "=" + encodeURIComponent(thisform.elements[i].value);
|
||
}
|
||
}
|
||
return formdata;
|
||
}
|
||
|
||
/* COMMON FUNCTIONS
|
||
*/
|
||
|
||
|
||
function isNumber (sValue)
|
||
{
|
||
var sValue = new String(sValue);
|
||
var bDot = false;
|
||
var i, sCharacter;
|
||
if ((sValue == null) || (sValue.length == 0))
|
||
{
|
||
if (isNumber.arguments.length == 1)
|
||
{
|
||
return false;
|
||
}
|
||
else
|
||
{
|
||
return (isNumber.arguments[1] == true);
|
||
}
|
||
}
|
||
for (i = 0; i < sValue.length; i++)
|
||
{
|
||
sCharacter = sValue.charAt(i);
|
||
if (i != 0)
|
||
{
|
||
if (sCharacter == '.')
|
||
{
|
||
if (!bDot)
|
||
{
|
||
bDot = true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (!((sCharacter >= '0') && (sCharacter <= '9')))
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (sCharacter == '.')
|
||
{
|
||
if (!bDot)
|
||
{
|
||
bDot = true;
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (!((sCharacter >= '0') && (sCharacter <= '9') && (sCharacter != '-') || (sCharacter == '+')))
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
function roundNumber(iNumber, iDecimals)
|
||
{
|
||
if(typeof(iDecimals) === 'undefined')
|
||
iDecimals = 2;
|
||
var iNumber = parseFloat(iNumber || 0);
|
||
var iDecimals = parseFloat(iDecimals || 0);
|
||
return Math.round(iNumber * Math.pow(10, iDecimals)) / Math.pow(10, iDecimals);
|
||
}
|
||
|
||
function toMaskNumber(iNumber,dec)
|
||
{
|
||
iNumber = fix(iNumber.toString(),dec || 2);
|
||
var t=iNumber.split(".");
|
||
var arrayResult=iNumber.replace(/\D/g,'').replace(/^0*/,'').split("").reverse();
|
||
var result="";
|
||
var aux=0;
|
||
var sep=0;
|
||
for(var i=0;i<arrayResult.length;i++)
|
||
{
|
||
if(i==1)
|
||
{
|
||
result="."+arrayResult[i]+result;
|
||
}
|
||
else
|
||
{
|
||
if(i>1 && aux>=3 && ((aux%3)==0))
|
||
{
|
||
result=arrayResult[i]+","+result;
|
||
aux+=1;
|
||
sep+=1;
|
||
}
|
||
else
|
||
{
|
||
result=arrayResult[i]+result;
|
||
if(i>1)
|
||
{
|
||
aux+=1;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
function fix(val, dec)
|
||
{
|
||
var a = val.split(".");
|
||
var r="";
|
||
if(a.length==1)
|
||
{
|
||
r=a[0]+"."+creaZero(dec);
|
||
}
|
||
else
|
||
{
|
||
if(a[1].length<=dec)
|
||
{
|
||
r=a[0]+"."+a[1]+creaZero(dec-a[1].length);
|
||
}
|
||
else
|
||
{
|
||
r=a[0]+"."+a[1].substr(0,dec);
|
||
}
|
||
}
|
||
return r;
|
||
}
|
||
|
||
function creaZero(cant)
|
||
{
|
||
var a="";
|
||
for(var i=0;i<cant;i++)
|
||
{
|
||
a+="0";
|
||
}
|
||
return a;
|
||
}
|
||
|
||
function toUnmaskNumber(iNumber)
|
||
{
|
||
var aux = "";
|
||
var num = new String (iNumber);
|
||
var len = num.length;
|
||
var i = 0;
|
||
for (i = 0; i < len; i++ ) {
|
||
if (num.charAt ( i) != ',' && num.charAt (i) != '$' && num.charAt (i) != ' ' && num.charAt (i) != '%' ) aux = aux + num.charAt ( i);
|
||
}
|
||
return parseFloat(aux,2);
|
||
}
|
||
|
||
function compareDates(datea, dateB,porDias)
|
||
{
|
||
var a = datea.split('/');
|
||
|
||
var b = dateB.split('/');
|
||
x = new Date(a[2], a[1], (porDias)?1:a[0]);
|
||
y = new Date(b[2], b[1], (porDias)?1:b[0]);
|
||
return ((x - y) <= 0) ? false : true;
|
||
}
|
||
|
||
/****THE ANSWER*****/
|
||
/*diferencia entre 2 fechas*/
|
||
function diff_date(fecha1, fecha2)
|
||
{ var f1 = fecha1.split('-');
|
||
fecha1 = new Date();
|
||
fecha1.setDate(f1[2]);
|
||
fecha1.setMonth(f1[1]);
|
||
fecha1.setYear(f1[0]);
|
||
|
||
var f2 = fecha2.split('-');
|
||
fecha2 = new Date();
|
||
fecha2.setDate(f2[2]);
|
||
fecha2.setMonth(f2[1]);
|
||
fecha2.setYear(f2[0]);
|
||
|
||
var dias = Math.floor((fecha1.getTime()-fecha2.getTime())/(3600000*24));
|
||
return dias;
|
||
}
|
||
|
||
/*
|
||
* author <julces2000@gmail.com>
|
||
*/
|
||
function getField( fieldName , formId )
|
||
{
|
||
if (formId)
|
||
{
|
||
var form = document.getElementById(formId);
|
||
if (!form) {form=document.getElementsByName(formId);
|
||
if (form) {
|
||
if (form.length > 0) {
|
||
form = form[0];
|
||
}
|
||
}
|
||
}
|
||
if (form.length > 0) {
|
||
return form.elements[ 'form[' + fieldName + ']' ];
|
||
}
|
||
else {
|
||
//return null;
|
||
return document.getElementById( 'form[' + fieldName + ']' );
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return document.getElementById( 'form[' + fieldName + ']' );
|
||
}
|
||
}
|
||
|
||
/*
|
||
* author <julces2000@gmail.com>
|
||
*/
|
||
function getElementByName( fieldName )
|
||
{
|
||
var elements = document.getElementsByName( fieldName );
|
||
try{
|
||
var x=0;
|
||
if (elements.length === 1)
|
||
return elements[0];
|
||
else if (elements.length === 0)
|
||
return elements[0];
|
||
else
|
||
return elements;
|
||
} catch (E)
|
||
{}
|
||
}
|
||
|
||
|
||
var myDialog;
|
||
function commonDialog ( type, title , text, buttons, values, callbackFn ) {
|
||
myDialog = new leimnud.module.panel();
|
||
myDialog.options = {
|
||
size:{w:400,h:200},
|
||
position:{center:true},
|
||
title: title,
|
||
control: { close :false, roll :false, drag :true, resize :false },
|
||
fx: {
|
||
//shadow :true,
|
||
blinkToFront:false,
|
||
opacity :true,
|
||
drag:false,
|
||
modal: true
|
||
},
|
||
theme:"processmaker"
|
||
};
|
||
|
||
myDialog.make();
|
||
switch (type) {
|
||
case 'question':
|
||
icon = 'question.gif';
|
||
break
|
||
case 'warning':
|
||
icon = 'warning.gif';
|
||
break
|
||
case 'error':
|
||
icon = 'error.gif';
|
||
break
|
||
default:
|
||
icon = 'information.gif';
|
||
break
|
||
}
|
||
|
||
var contentStr = '';
|
||
contentStr += "<div><table border='0' width='100%' > <tr height='70'><td width='60' align='center' >";
|
||
contentStr += "<img src='/js/maborak/core/images/" + icon + "'></td><td >" + text + "</td></tr>";
|
||
contentStr += "<tr height='35' valign='bottom'><td colspan='2' align='center'> ";
|
||
if ( buttons.custom && buttons.customText )
|
||
contentStr += "<input type='button' value='" + buttons.customText + "' onclick='myDialog.dialogCallback(4); ';> ";
|
||
if ( buttons.cancel )
|
||
contentStr += "<input type='button' value='Cancel' onclick='myDialog.dialogCallback(0);'> ";
|
||
if ( buttons.yes )
|
||
contentStr += "<input type='button' value=' Yes ' onclick='myDialog.dialogCallback(1);'> ";
|
||
if ( buttons.no )
|
||
contentStr += "<input type='button' value=' No ' onclick='myDialog.dialogCallback(2);'> ";
|
||
contentStr += "</td></tr>";
|
||
contentStr += "</table>";
|
||
|
||
myDialog.addContent( contentStr );
|
||
myDialog.values = values;
|
||
myDialog.dialogCallback = function ( dialogResult ) {
|
||
myDialog.remove( );
|
||
if ( callbackFn )
|
||
callbackFn ( dialogResult );
|
||
}
|
||
|
||
}
|
||
function var_dump(obj)
|
||
{
|
||
var o,dump;
|
||
dump='';
|
||
if (typeof(obj)=='object') {
|
||
for(o in obj) if (typeof(obj[o])!=='function')
|
||
{
|
||
dump+=o+'('+typeof(obj[o])+'):'+obj[o]+"\n";
|
||
}
|
||
}
|
||
else
|
||
dump=obj;
|
||
return dump;
|
||
}
|
||
|
||
/*
|
||
* @author David Callizaya
|
||
*/
|
||
var currentPopupWindow;
|
||
function popupWindow ( title , url, width, height, callbackFn , autoSizeWidth, autoSizeHeight,modal,showModalColor) {
|
||
modal = (modal===false)?false:true;
|
||
showModalColor = (showModalColor===false)?false:true;
|
||
var myPanel = new leimnud.module.panel();
|
||
currentPopupWindow = myPanel;
|
||
myPanel.options = {
|
||
id: 'panelFieldProperties',
|
||
limit: true,
|
||
size:{w:width,h:height},
|
||
position:{center:true},
|
||
title: title,
|
||
theme: "processmaker",
|
||
control: { close :true, roll :false, drag :true, resize :false},
|
||
fx: {
|
||
//shadow :true,
|
||
blinkToFront:true,
|
||
opacity :true,
|
||
drag:true,
|
||
modal: modal
|
||
//opacityModal:{static:'1'}
|
||
}
|
||
};
|
||
if(showModalColor===true)
|
||
{
|
||
//Panel.setStyle={modal:{backgroundColor:"#ECF3F6"}};
|
||
}
|
||
else
|
||
{
|
||
myPanel.styles.fx.opacityModal.Static='0';
|
||
}
|
||
myPanel.make();
|
||
myPanel.loader.show();
|
||
var r = new leimnud.module.rpc.xmlhttp({url:url});
|
||
r.callback=leimnud.closure({Function:function(rpc,myPanel){
|
||
myPanel.addContent(rpc.xmlhttp.responseText);
|
||
var myScripts = myPanel.elements.content.getElementsByTagName('SCRIPT');
|
||
for(var rr=0; rr<myScripts.length ; rr++){
|
||
try {
|
||
if (myScripts[rr].innerHTML!=='')
|
||
if (window.execScript)
|
||
window.execScript( myScripts[rr].innerHTML, 'javascript' );
|
||
else
|
||
window.setTimeout( myScripts[rr].innerHTML, 0 );
|
||
} catch (e) {
|
||
alert(e.description);
|
||
}
|
||
}
|
||
/* Autosize of panels, to fill only the first child of the
|
||
* rendered page (take note)
|
||
*/
|
||
var panelNonContentHeight = 62;
|
||
var panelNonContentWidth = 28;
|
||
myPanel.elements.content.style.padding="0px;";
|
||
try {
|
||
if (autoSizeWidth)
|
||
myPanel.resize({w:myPanel.elements.content.childNodes[0].clientWidth+panelNonContentWidth});
|
||
if (autoSizeHeight)
|
||
myPanel.resize({h:myPanel.elements.content.childNodes[0].clientHeight+panelNonContentHeight});
|
||
} catch (e) {
|
||
alert(_('ID_MSG_AJAX_FAILURE'));
|
||
}
|
||
delete newdiv;
|
||
delete myScripts;
|
||
myPanel.command(myPanel.loader.hide);
|
||
},args:[r, myPanel]});
|
||
r.make();
|
||
|
||
/*
|
||
myPanel.dialogCallback = function ( ) {
|
||
}
|
||
*/
|
||
delete myPanel;
|
||
}
|
||
|
||
var lastPopupWindow;
|
||
function popupWindowObject ( title , url, width, height, callbackFn , autoSizeWidth, autoSizeHeight,modal,showModalColor) {
|
||
modal = (modal===false)?false:true;
|
||
showModalColor = (showModalColor===false)?false:true;
|
||
var myPanel = new leimnud.module.panel();
|
||
lastPopupWindow = myPanel;
|
||
myPanel.options = {
|
||
size:{w:width,h:height},
|
||
position:{center:true},
|
||
title: title,
|
||
theme: "processmaker",
|
||
control: { close :true, roll :false, drag :true, resize :false},
|
||
fx: {
|
||
//shadow :true,
|
||
blinkToFront:true,
|
||
opacity :true,
|
||
drag:true,
|
||
modal: modal
|
||
//opacityModal:{static:'1'}
|
||
}
|
||
};
|
||
if(showModalColor===true)
|
||
{
|
||
//Panel.setStyle={modal:{backgroundColor:"#ECF3F6"}};
|
||
}
|
||
else
|
||
{
|
||
myPanel.styles.fx.opacityModal.Static='0';
|
||
}
|
||
myPanel.make();
|
||
myPanel.loader.show();
|
||
var r = new leimnud.module.rpc.xmlhttp({url:url});
|
||
r.callback=leimnud.closure({Function:function(rpc,myPanel){
|
||
myPanel.addContent(rpc.xmlhttp.responseText);
|
||
var myScripts = myPanel.elements.content.getElementsByTagName('SCRIPT');
|
||
for(var rr=0; rr<myScripts.length ; rr++){
|
||
try {
|
||
if (myScripts[rr].innerHTML!=='')
|
||
if (window.execScript)
|
||
window.execScript( myScripts[rr].innerHTML, 'javascript' );
|
||
else
|
||
window.setTimeout( myScripts[rr].innerHTML, 0 );
|
||
} catch (e) {
|
||
alert(e.description);
|
||
}
|
||
}
|
||
/* Autosize of panels, to fill only the first child of the
|
||
* rendered page (take note)
|
||
*/
|
||
var panelNonContentHeight = 62;
|
||
var panelNonContentWidth = 28;
|
||
myPanel.elements.content.style.padding="0px;";
|
||
try {
|
||
if (autoSizeWidth)
|
||
myPanel.resize({w:myPanel.elements.content.childNodes[0].clientWidth+panelNonContentWidth});
|
||
if (autoSizeHeight)
|
||
myPanel.resize({h:myPanel.elements.content.childNodes[0].clientHeight+panelNonContentHeight});
|
||
} catch (e) {
|
||
alert(_('ID_MSG_AJAX_FAILURE'));
|
||
}
|
||
delete newdiv;
|
||
delete myScripts;
|
||
myPanel.command(myPanel.loader.hide);
|
||
},args:[r, myPanel]});
|
||
r.make();
|
||
|
||
/*
|
||
myPanel.dialogCallback = function ( ) {
|
||
}
|
||
*/
|
||
return myPanel;
|
||
}
|
||
|
||
// Get an object left position from the upper left viewport corner
|
||
// Tested with relative and nested objects
|
||
function getAbsoluteLeft(o) {
|
||
oLeft = o.offsetLeft // Get left position from the parent object
|
||
while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
|
||
oParent = o.offsetParent // Get parent object reference
|
||
oLeft += oParent.offsetLeft // Add parent left position
|
||
o = oParent
|
||
}
|
||
// Return left postion
|
||
return oLeft
|
||
}
|
||
// Get an object top position from the upper left viewport corner
|
||
// Tested with relative and nested objects
|
||
function getAbsoluteTop(o) {
|
||
oTop = o.offsetTop // Get top position from the parent object
|
||
while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
|
||
oParent = o.offsetParent // Get parent object reference
|
||
oTop += oParent.offsetTop // Add parent top position
|
||
o = oParent
|
||
}
|
||
// Return top position
|
||
return oTop
|
||
}
|
||
/*
|
||
*/
|
||
function showHideElement(id)
|
||
{
|
||
var element;
|
||
if (typeof(id)=='object') element=id;
|
||
else element=document.getElementById(id);
|
||
if (element.style.display==='none') {
|
||
switch(element.type) {
|
||
case 'table':
|
||
element.style.display = 'table';
|
||
break;
|
||
default:
|
||
element.style.display = '';
|
||
}
|
||
} else {
|
||
element.style.display = 'none';
|
||
}
|
||
}
|
||
/*
|
||
*/
|
||
function showHideSearch(id,aElement,openText,closeText)
|
||
{
|
||
var element=document.getElementById(id);
|
||
if (element.style.display==='none') {
|
||
if (!closeText) closeText=G_STRINGS.ID_CLOSE_SEARCH;
|
||
if (aElement) {
|
||
aElement.innerHTML=closeText;
|
||
var bullet = document.getElementById(aElement.id+'[bullet]');
|
||
bullet.src='/images/bulletButtonDown.gif';
|
||
}
|
||
switch(element.type) {
|
||
case 'table':
|
||
document.getElementById(id).style.display = 'table';
|
||
break;
|
||
default:
|
||
document.getElementById(id).style.display = '';
|
||
}
|
||
} else {
|
||
if (!openText) openText=G_STRINGS.ID_OPEN_SEARCH;
|
||
if (aElement) {
|
||
aElement.innerHTML=openText;
|
||
var bullet = document.getElementById(aElement.id+'[bullet]');
|
||
bullet.src='/images/bulletButton.gif';
|
||
}
|
||
document.getElementById(id).style.display = 'none';
|
||
}
|
||
}
|
||
/* Loads a page but in a non visible div with absolute on (x,y)
|
||
* and execute the javascript node that it contains.
|
||
*/
|
||
function loadPage ( url, x, y , visibility , div ) {
|
||
visibility = typeof(visibility)==='undefined'?'hidden':visibility;
|
||
var r = new leimnud.module.rpc.xmlhttp({url:url});
|
||
r.callback=leimnud.closure({Function:function(rpc,div){
|
||
if (typeof(div)==='undefined') div=createDiv('');
|
||
if (typeof(x)!=='undefined') div.style.left=x;
|
||
if (typeof(y)!=='undefined') div.style.top =y;
|
||
div.innerHTML=rpc.xmlhttp.responseText;
|
||
var myScripts = div.getElementsByTagName('SCRIPT');
|
||
for(var rr=0; rr<myScripts.length ; rr++){
|
||
try {
|
||
if (myScripts[rr].innerHTML!=='')
|
||
if (window.execScript)
|
||
window.execScript( myScripts[rr].innerHTML, 'javascript' );
|
||
else
|
||
window.setTimeout( myScripts[rr].innerHTML, 0 );
|
||
} catch (e) {
|
||
alert(e.description);
|
||
}
|
||
}
|
||
delete div;
|
||
delete myScripts;
|
||
},args:[r,div]});
|
||
r.make();
|
||
}
|
||
function createDiv(id) {
|
||
|
||
var newdiv = document.createElement('div');
|
||
newdiv.setAttribute('id', id);
|
||
|
||
newdiv.style.position = "absolute";
|
||
newdiv.style.left = 0;
|
||
newdiv.style.top = 0;
|
||
|
||
newdiv.style.visibility="hidden";
|
||
|
||
document.body.appendChild(newdiv);
|
||
|
||
return newdiv;
|
||
}
|
||
|
||
/* THIS FUNCTIONS WHERE COPIED FROM JSFORMS */
|
||
|
||
/*if (window.attachEvent)
|
||
window.attachEvent('onload', _OnLoad_);
|
||
else
|
||
window.addEventListener('load', _OnLoad_, true);*/
|
||
|
||
//function _OnLoad_() {
|
||
|
||
|
||
/*onload=function(){
|
||
|
||
if (self.setNewDates)
|
||
self.setNewDates();
|
||
|
||
if (self.setReloadFields)
|
||
self.setReloadFields();
|
||
|
||
if (self.enableHtmlEdit)
|
||
self.enableHtmlEdit();
|
||
|
||
if (self.dynaformOnloadUsers)
|
||
self.dynaformOnloadUsers();
|
||
|
||
if (self.dynaformOnload)
|
||
self.dynaformOnload();
|
||
|
||
|
||
}*/
|
||
|
||
|
||
|
||
function refillText( fldName, ajax_server, values ) {
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
objetus.open ("GET", ajax_server + "?" + values, false);
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState == 1 )
|
||
{
|
||
var textfield = document.getElementById( 'form[' + fldName + ']' );
|
||
if ( ! isdefined( textfield ))
|
||
var textfield = document.getElementById( fldName );
|
||
textfield.value = '';
|
||
|
||
}
|
||
else if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
// alert ( objetus.responseText );
|
||
var xmlDoc = objetus.responseXML;
|
||
if ( xmlDoc ) {
|
||
var textfield = document.getElementById( 'form[' + fldName + ']' );
|
||
if ( ! isdefined( textfield ))
|
||
var textfield = document.getElementById( fldName );
|
||
var dataArray = xmlDoc.getElementsByTagName('value');
|
||
if (dataArray[0].firstChild)
|
||
if((dataArray[0].firstChild.xml)!='_vacio'){
|
||
textfield.value = dataArray[0].firstChild.xml;
|
||
if(textfield.type != 'hidden')
|
||
if ( textfield.onchange )
|
||
textfield.onchange();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
function refillCaption( fldName, ajax_server, values ){
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
objetus.open ("GET", ajax_server + "?" + values, false);
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState == 1 )
|
||
{
|
||
var textfield = document.getElementById( 'FLD_' + fldName );
|
||
textfield.innerHTML = '';
|
||
|
||
}
|
||
else if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
var xmlDoc = objetus.responseXML;
|
||
if ( xmlDoc ) {
|
||
var textfield = document.getElementById( 'FLD_' + fldName );
|
||
var dataArray = xmlDoc.getElementsByTagName('value');
|
||
if (dataArray[0].firstChild)
|
||
if((dataArray[0].firstChild.xml)!='_vacio')
|
||
//textfield.innerHTML = '<font size="1">' + dataArray[0].firstChild.xml + '</font>';
|
||
textfield.innerHTML = dataArray[0].firstChild.xml;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
|
||
function refillDropdown( fldName, ajax_server, values , InitValue)
|
||
{
|
||
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
objetus.open ("GET", ajax_server + "?" + values, false);
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState == 1 )
|
||
{
|
||
var dropdown = document.getElementById( 'form[' + fldName + ']' );
|
||
|
||
while ( dropdown.hasChildNodes() )
|
||
dropdown.removeChild(dropdown.childNodes[0]);
|
||
|
||
}
|
||
else if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
var xmlDoc = objetus.responseXML;
|
||
|
||
if ( xmlDoc ) {
|
||
var dropdown = document.getElementById( 'form[' + fldName + ']' );
|
||
var dataArray = xmlDoc.getElementsByTagName('item');
|
||
itemsNumber = dataArray.length;
|
||
|
||
if(InitValue == true) itemsNumber = dataArray.length-1;
|
||
for (var i=0; i<itemsNumber; i++){
|
||
dropdown.options[ dropdown.length] = new Option(dataArray[i].firstChild.xml, dataArray[i].attributes[0].value );
|
||
if(InitValue == true) {
|
||
if(dropdown.options[ dropdown.length-1].value == dataArray[dataArray.length-1].firstChild.xml)
|
||
dropdown.options[i].selected = true;
|
||
}
|
||
}
|
||
dropdown.onchange();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
function iframe_get_xmlhttp() {
|
||
try {
|
||
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP2');
|
||
} catch (e) {
|
||
try {
|
||
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
|
||
} catch (E) {
|
||
xmlhttp = false;
|
||
}
|
||
}
|
||
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
|
||
xmlhttp = new XMLHttpRequest();
|
||
}
|
||
return xmlhttp;
|
||
}
|
||
|
||
function get_xmlhttp() {
|
||
try {
|
||
xmlhttp = false;
|
||
if ( window.ActiveXObject )
|
||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
|
||
}
|
||
catch (e) {
|
||
try {
|
||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||
}
|
||
catch (E) {
|
||
xmlhttp = false;
|
||
}
|
||
}
|
||
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
|
||
xmlhttp = new XMLHttpRequest();
|
||
}
|
||
return xmlhttp;
|
||
}
|
||
|
||
function refillTextError( div_container, fldName, ajax_server, values )
|
||
{
|
||
var objetus;
|
||
objetus = get_xmlhttp();
|
||
objetus.open ("GET", ajax_server + "?" + values, false);
|
||
objetus.onreadystatechange=function() {
|
||
if ( objetus.readyState == 1 )
|
||
{
|
||
var textfield = document.getElementById( 'form[' + fldName + ']' );
|
||
textfield.value = '';
|
||
document.getElementById(div_container).innerHTML = '';
|
||
|
||
}
|
||
else if ( objetus.readyState==4)
|
||
{
|
||
if( objetus.status==200)
|
||
{
|
||
var xmlDoc = objetus.responseXML;
|
||
if ( xmlDoc ) {
|
||
var textfield = document.getElementById( 'form[' + fldName + ']' );
|
||
var dataArray = xmlDoc.getElementsByTagName('value');
|
||
textfield.value = dataArray[0].firstChild.xml;
|
||
var dataArray = xmlDoc.getElementsByTagName('message');
|
||
if ( dataArray[0].firstChild )
|
||
document.getElementById(div_container).innerHTML = '<b>' + dataArray[0].firstChild.xml + '</b>';
|
||
}
|
||
}
|
||
else
|
||
{
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
|
||
|
||
function iframe_get_xmlhttp() {
|
||
try {
|
||
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP5');
|
||
} catch (e) {
|
||
try {
|
||
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
|
||
} catch (E) {
|
||
xmlhttp = false;
|
||
}
|
||
}
|
||
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
|
||
xmlhttp = new XMLHttpRequest();
|
||
}
|
||
return xmlhttp;
|
||
}
|
||
|
||
function iframe_ajax_init(ajax_server, div_container, values, callback) {
|
||
var objetus;
|
||
objetus = iframe_get_xmlhttp();
|
||
objetus.open ('GET', ajax_server + '?' + values, true);
|
||
objetus.onreadystatechange = function() {
|
||
if ( objetus.readyState == 1 ) {
|
||
document.getElementById(div_container).style.display = '';
|
||
document.getElementById(div_container).innerHTML = '...';
|
||
}
|
||
else if (objetus.readyState==4) {
|
||
if (objetus.status==200) {
|
||
document.getElementById(div_container).innerHTML = objetus.responseText;
|
||
if (callback != '')
|
||
callback();
|
||
}
|
||
else {
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
function iframe_ajax_init_2(ajax_server, div_container, values, callback) {
|
||
var objetus;
|
||
objetus = iframe_get_xmlhttp();
|
||
objetus.open ('GET', ajax_server + '?' + values, true);
|
||
objetus.onreadystatechange = function() {
|
||
if ( objetus.readyState == 1 ) {
|
||
div_container.style.display = '';
|
||
div_container.innerHTML = '...';
|
||
}
|
||
else if (objetus.readyState==4) {
|
||
if (objetus.status==200) {
|
||
div_container.innerHTML = objetus.responseText;
|
||
if (callback != '')
|
||
callback();
|
||
}
|
||
else {
|
||
window.alert('error-['+ objetus.status +']-' + objetus.responseText );
|
||
}
|
||
}
|
||
}
|
||
objetus.send(null);
|
||
}
|
||
|
||
function myEmptyCallback() {
|
||
}
|
||
|
||
function disable (obj) {
|
||
obj.disabled = true;
|
||
return;
|
||
}
|
||
|
||
function enable (obj) {
|
||
obj.disabled = false;
|
||
return;
|
||
}
|
||
|
||
function disableById (id) {
|
||
obj = getField(id);
|
||
obj.disabled = true;
|
||
return;
|
||
}
|
||
|
||
function enableById (id) {
|
||
obj = getField(id);
|
||
obj.disabled = false;
|
||
return;
|
||
}
|
||
|
||
function visible (obj) {
|
||
if (obj.style) {
|
||
obj.style.visibility = 'visible';
|
||
}
|
||
return;
|
||
}
|
||
|
||
function hidden (obj) {
|
||
if (obj.style) {
|
||
obj.style.visibility = 'hidden';
|
||
}
|
||
return;
|
||
}
|
||
|
||
function visibleById (id) {
|
||
obj = getField(id);
|
||
obj.style.visibility = 'visible';
|
||
return;
|
||
}
|
||
|
||
function hiddenById (id) {
|
||
obj = getField(id);
|
||
obj.style.visibility = 'hidden';
|
||
return;
|
||
}
|
||
|
||
function hiddenRowById (id) {
|
||
row = 'DIV_'+ id +'.style.visibility = \'hidden\';';
|
||
hiden = 'DIV_'+ id +'.style.display = \'none\';';
|
||
eval(row);
|
||
eval(hiden);
|
||
return;
|
||
}
|
||
function visibleRowById (id) {
|
||
row = 'DIV_'+ id +'.style.visibility = \'visible\';';
|
||
block = 'DIV_'+ id +'.style.display = \'block\';';
|
||
eval(row);
|
||
eval(block);
|
||
return;
|
||
}
|
||
|
||
function setFocus (obj) {
|
||
obj.focus();
|
||
return;
|
||
}
|
||
|
||
function setFocusById (id) {
|
||
obj = getField (id);
|
||
setFocus(obj);
|
||
return;
|
||
}
|
||
|
||
function submitForm () {
|
||
document.forms[0].submit();
|
||
return;
|
||
}
|
||
|
||
function changeValue(id, newValue) {
|
||
obj = getField(id);
|
||
obj.value = newValue;
|
||
return ;
|
||
}
|
||
|
||
function getValue(obj) {
|
||
return obj.value;
|
||
}
|
||
|
||
function getValueById (id) {
|
||
obj = getField(id);
|
||
return obj.value;
|
||
}
|
||
|
||
function removeCurrencySign (snumber) {
|
||
var aux = '';
|
||
var num = new String (snumber);
|
||
var len = num.length;
|
||
var i = 0;
|
||
for (i=0; !(i>=len); i++)
|
||
if (num.charAt(i) != ',' && num.charAt(i) != '$' && num.charAt(i) != ' ') aux = aux + num.charAt(i);
|
||
return aux;
|
||
}
|
||
|
||
function removePercentageSign (snumber) {
|
||
var aux = '';
|
||
var num = new String (snumber);
|
||
var len = num.length;
|
||
var i = 0;
|
||
for (i=0; !(i>=len); i++)
|
||
if (num.charAt(i) != ',' && num.charAt(i) != '%' && num.charAt(i) != ' ') aux = aux + num.charAt(i);
|
||
return aux;
|
||
}
|
||
|
||
function toReadOnly(obj) {
|
||
if (obj) {
|
||
obj.readOnly = 'readOnly';
|
||
obj.style.background = '#CCCCCC';
|
||
}
|
||
return;
|
||
}
|
||
|
||
function toReadOnlyById(id) {
|
||
obj = getField(id);
|
||
if (obj) {
|
||
obj.readOnly = 'readOnly';
|
||
obj.style.background = '#CCCCCC';
|
||
}
|
||
return ;
|
||
}
|
||
|
||
function getGridField(Grid, Row, Field) {
|
||
obj = document.getElementById('form[' + Grid + ']' + '[' + Row + ']' + '[' + Field + ']');
|
||
return obj;
|
||
}
|
||
|
||
function getGridValueById(Grid, Row, Field) {
|
||
obj = getGridField(Grid, Row, Field);
|
||
if (obj)
|
||
return obj.value;
|
||
else
|
||
return '';
|
||
}
|
||
|
||
function Number_Rows_Grid(Grid, Field) {
|
||
Number_Rows = 1;
|
||
if (getGridField(Grid, Number_Rows, Field)) {
|
||
Number_Rows = 0;
|
||
while (getGridField(Grid, (Number_Rows + 1), Field))
|
||
Number_Rows++;
|
||
return Number_Rows;
|
||
}
|
||
else
|
||
return 0;
|
||
}
|
||
|
||
function attachFunctionEventOnChange(Obj, TheFunction) {
|
||
Obj.oncustomize = TheFunction;
|
||
}
|
||
|
||
function attachFunctionEventOnChangeById(Id, TheFunction) {
|
||
Obj = getField(Id);
|
||
Obj.oncustomize = TheFunction;
|
||
}
|
||
|
||
function attachFunctionEventOnKeypress(Obj, TheFunction) {
|
||
Obj.attachEvent('onkeypress', TheFunction);
|
||
}
|
||
|
||
function attachFunctionEventOnKeypressById(Id, TheFunction) {
|
||
Obj = getField(Id);
|
||
Obj.attachEvent('onkeypress', TheFunction);
|
||
}
|
||
|
||
function unselectOptions ( field ) {
|
||
var radios = document.getElementById('form[' + field + ']');
|
||
if (radios) {
|
||
var inputs = radios.getElementsByTagName ('input');
|
||
if (inputs) {
|
||
for(var i = 0; i < inputs.length; ++i) {
|
||
inputs[i].checked = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/* @author Alvaro Campos Sanchez
|
||
*/
|
||
function validDate(TheField, Required) {
|
||
|
||
var date = TheField.split("-");
|
||
var date1 = date[0];
|
||
var date2 = date[1];
|
||
var date3 = date[2];
|
||
var TheDay,TheMonth,TheYear;
|
||
|
||
if ((date1.length==4)&&(!TheYear))
|
||
TheYear = date1;
|
||
if (date1.length==2)
|
||
if ((date1>0)&&(date1<=12)&&(!TheMonth))
|
||
TheMonth = date1;
|
||
else
|
||
if ((date1>0)&&(date1<=31)&&(!TheDay))
|
||
TheDay = date1;
|
||
else
|
||
TheYear = date1;
|
||
|
||
if ((date2.length==4)&&(!TheYear))
|
||
TheYear = date2;
|
||
if (date2.length==2)
|
||
if ((date2>0)&&(date2<=12)&&(!TheMonth))
|
||
TheMonth = date2;
|
||
else
|
||
if ((date2>0)&&(date2<=31)&&(!TheDay))
|
||
TheDay = date2;
|
||
else
|
||
TheYear = date2;
|
||
|
||
if((date3.length==4)&&(!TheYear))
|
||
TheYear = date3;
|
||
if (date3.length==2)
|
||
if ((date3>0)&&(date3<=12)&&(!TheMonth))
|
||
TheMonth = date3;
|
||
else
|
||
if ((date3>0)&&(date3<=31)&&(!TheDay))
|
||
TheDay = date3;
|
||
else
|
||
TheYear = date3;
|
||
|
||
if (!TheYear || !TheMonth || !TheDay)
|
||
return false;
|
||
if ((Required)||(Required=='true'))
|
||
if ((TheYear == 0) || (TheMonth == 0) || (TheDay == 0))
|
||
return false;
|
||
if (TheMonth == 02)
|
||
if (TheDay > 29)
|
||
return false;
|
||
if ((TheMonth != 02)&&(TheMonth < 13)&&(TheMonth > 0))
|
||
if (TheDay > 30)
|
||
return false;
|
||
|
||
return true;
|
||
|
||
}
|
||
|
||
/* @author David S. Callizaya S.
|
||
*/
|
||
function globalEval(scriptCode) {
|
||
if (scriptCode!=='')
|
||
if (window.execScript)
|
||
window.execScript( scriptCode, 'javascript' );
|
||
else
|
||
window.setTimeout( scriptCode, 0 );
|
||
}
|
||
function switchImage(oImg,url1,url2){
|
||
if (oImg && (url2!=='')) {
|
||
oImg.src=(oImg.src.substr(oImg.src.length-url1.length,url1.length)===url1)? url2: url1;
|
||
}
|
||
}
|
||
function MM_preloadImages() { //v3.0
|
||
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
|
||
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
|
||
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
|
||
}
|
||
function backImage(oImg,p){
|
||
oImg.style.background=p;
|
||
}
|
||
|
||
/* javascript para el toolbar */
|
||
var lc=false;
|
||
var sh=function(a,i)
|
||
{
|
||
var c = (a.nextSibling.nextSibling)?a.nextSibling.nextSibling:a.nextSibling;
|
||
if(lc && lc.c!=i){
|
||
lc.d.style.display='none';
|
||
lc.a.style.color='#666';
|
||
}
|
||
lc={d:c,c:i,a:a};
|
||
a.style.color=(c.style.display=='' || c.style.display=='none')?"black":"#666";
|
||
c.style.display=(!c.style.display || c.style.display=='none')?"block":"none";
|
||
}
|
||
|
||
/**
|
||
* Set focus to first field from a dynaform
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @return false
|
||
*/
|
||
function dynaformSetFocus(){
|
||
/* looking for the inputs fields */
|
||
var inputs = document.getElementsByTagName('input');
|
||
if(inputs.length > 0){
|
||
for(i in inputs){
|
||
type = inputs[i].type;
|
||
if(type == "text" || type == "radio" || type == "checkbox" || type == "file" || type == "password"){
|
||
try {
|
||
inputs[i].focus();
|
||
} catch (e) {
|
||
//nothing
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
} else {
|
||
/* if there is no inputs fields, maybe it has a textarea field */
|
||
var ta = document.getElementsByTagName('textarea');
|
||
if(ta.length > 0){
|
||
inputs[0].focus();
|
||
return false;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Set id from id_label if it does not exist
|
||
*
|
||
* @Author alvaro <alvaro@colosa.com, alvaro.cs@live.com>
|
||
* @return false
|
||
*/
|
||
function idSet(name){
|
||
var inputs = document.getElementsByTagName('input');
|
||
if(inputs.length > 0){
|
||
for(i in inputs){
|
||
id = inputs[i].id;
|
||
if(id == "form["+name+"_label]"){
|
||
|
||
if(inputs[i].value.trim())
|
||
var valueLabel = inputs[i].value;
|
||
else
|
||
var valueLabel = "Empty";
|
||
}
|
||
|
||
if(id == "form["+name+"]"){
|
||
try {
|
||
if(valueLabel !="Empty"){
|
||
if (! inputs[i].value)
|
||
inputs[i].value = valueLabel;
|
||
}else
|
||
inputs[i].value = "";
|
||
|
||
} catch (e) {
|
||
//nothing
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* ********************************* Misc Functions by Neyek ****************************************
|
||
*/
|
||
|
||
/**
|
||
* get the htmlentities from a string
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param (string) string within the htmlentities to parse
|
||
* @Param (string) quote_style it can be (ENT_QUOTES or ENT_NOQUOTES)
|
||
* @Return (string) the parsed string with htmlentities at the string passed such as parameter
|
||
*/
|
||
function htmlentities (string, quote_style, charset, double_encode) {
|
||
// Convert all applicable characters to HTML entities
|
||
//
|
||
// version: 1109.2015
|
||
// discuss at: http://phpjs.org/functions/htmlentities // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||
// + improved by: nobbler
|
||
// + tweaked by: Jack
|
||
// + bugfixed by: Onno Marsman // + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
|
||
// + input by: Ratheous
|
||
// + improved by: Rafał Kukawski (http://blog.kukawski.pl)
|
||
// + improved by: Dj (http://phpjs.org/functions/htmlentities:425#comment_134018) // - depends on: get_html_translation_table
|
||
// * example 1: htmlentities('Kevin & van Zonneveld');
|
||
// * returns 1: 'Kevin & van Zonneveld'
|
||
// * example 2: htmlentities("foo'bar","ENT_QUOTES");
|
||
// * returns 2: 'foo'bar'
|
||
var hash_map = get_html_translation_table('HTML_ENTITIES', quote_style), symbol = '';
|
||
|
||
string = string == null ? '' : string + '';
|
||
|
||
if (!hash_map) {
|
||
return false;
|
||
}
|
||
|
||
if (quote_style && quote_style === 'ENT_QUOTES') {
|
||
hash_map["'"] = '''; }
|
||
|
||
if (!!double_encode || double_encode == null) {
|
||
for (symbol in hash_map) {
|
||
if (hash_map.hasOwnProperty(symbol)) {
|
||
string = string.split(symbol).join(hash_map[symbol]);
|
||
}
|
||
}
|
||
} else {
|
||
string = string.replace(/([\s\S]*?)(&(?:#\d+|#x[\da-f]+|[a-zA-Z][\da-z]*);|$)/g, function (ignore, text, entity) {
|
||
for (symbol in hash_map) {
|
||
if (hash_map.hasOwnProperty(symbol)) {
|
||
text = text.split(symbol).join(hash_map[symbol]);
|
||
}
|
||
}
|
||
return text + entity;
|
||
});
|
||
}
|
||
return string.toString();
|
||
}
|
||
|
||
|
||
function utf8_encode (argString) {
|
||
var utftext = "",
|
||
start, end, stringl = 0;
|
||
var string = argString;
|
||
start = end = 0;
|
||
stringl = string.length;
|
||
for (var n = 0; n < stringl; n++) {
|
||
var c1 = string.charCodeAt(n);
|
||
var enc = null;
|
||
if (c1 < 128) {
|
||
end++;
|
||
}
|
||
else if (c1 > 127 && c1 < 2048) {
|
||
enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
|
||
}
|
||
else {
|
||
enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
|
||
}
|
||
if (enc !== null) {
|
||
if (end > start) {
|
||
utftext += string.slice(start, end);
|
||
}
|
||
utftext += enc;
|
||
start = end = n + 1;
|
||
}
|
||
}
|
||
if (end > start) {
|
||
utftext += string.slice(start, stringl);
|
||
}
|
||
return utftext;
|
||
}
|
||
function base64_encode (data) {
|
||
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
|
||
ac = 0,
|
||
enc = "",
|
||
tmp_arr = [];
|
||
if (!data) {
|
||
return data;
|
||
}
|
||
data = utf8_encode(data + '');
|
||
do {
|
||
o1 = data.charCodeAt(i++);
|
||
o2 = data.charCodeAt(i++);
|
||
o3 = data.charCodeAt(i++);
|
||
bits = o1 << 16 | o2 << 8 | o3;
|
||
h1 = bits >> 18 & 0x3f;
|
||
h2 = bits >> 12 & 0x3f;
|
||
h3 = bits >> 6 & 0x3f;
|
||
h4 = bits & 0x3f;
|
||
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
||
} while (i < data.length);
|
||
enc = tmp_arr.join('');
|
||
switch (data.length % 3) {
|
||
case 1:
|
||
enc = enc.slice(0, -2) + '==';
|
||
break;
|
||
case 2:
|
||
enc = enc.slice(0, -1) + '=';
|
||
break;
|
||
}
|
||
return enc;
|
||
}
|
||
|
||
function get_html_translation_table (table, quote_style) {
|
||
// Returns the internal translation table used by htmlspecialchars and htmlentities
|
||
//
|
||
// version: 1109.2015
|
||
// discuss at: http://phpjs.org/functions/get_html_translation_table // + original by: Philip Peterson
|
||
// + revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
|
||
// + bugfixed by: noname
|
||
// + bugfixed by: Alex
|
||
// + bugfixed by: Marco // + bugfixed by: madipta
|
||
// + improved by: KELAN
|
||
// + improved by: Brett Zamir (http://brett-zamir.me)
|
||
// + bugfixed by: Brett Zamir (http://brett-zamir.me)
|
||
// + input by: Frank Forte // + bugfixed by: T.Wild
|
||
// + input by: Ratheous
|
||
// % note: It has been decided that we're not going to add global
|
||
// % note: dependencies to php.js, meaning the constants are not
|
||
// % note: real constants, but strings instead. Integers are also supported if someone // % note: chooses to create the constants themselves.
|
||
// * example 1: get_html_translation_table('HTML_SPECIALCHARS');
|
||
// * returns 1: {'"': '"', '&': '&', '<': '<', '>': '>'}
|
||
var entities = {},
|
||
hash_map = {}, decimal;
|
||
var constMappingTable = {},
|
||
constMappingQuoteStyle = {};
|
||
var useTable = {},
|
||
useQuoteStyle = {};
|
||
// Translate arguments
|
||
constMappingTable[0] = 'HTML_SPECIALCHARS';
|
||
constMappingTable[1] = 'HTML_ENTITIES';
|
||
constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; constMappingQuoteStyle[2] = 'ENT_COMPAT';
|
||
constMappingQuoteStyle[3] = 'ENT_QUOTES';
|
||
|
||
useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
|
||
useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
|
||
if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
|
||
throw new Error("Table: " + useTable + ' not supported');
|
||
// return false;
|
||
}
|
||
entities['38'] = '&';
|
||
if (useTable === 'HTML_ENTITIES') {
|
||
entities['160'] = ' ';
|
||
entities['161'] = '¡'; entities['162'] = '¢';
|
||
entities['163'] = '£';
|
||
entities['164'] = '¤';
|
||
entities['165'] = '¥';
|
||
entities['166'] = '¦'; entities['167'] = '§';
|
||
entities['168'] = '¨';
|
||
entities['169'] = '©';
|
||
entities['170'] = 'ª';
|
||
entities['171'] = '«'; entities['172'] = '¬';
|
||
entities['173'] = '­';
|
||
entities['174'] = '®';
|
||
entities['175'] = '¯';
|
||
entities['176'] = '°'; entities['177'] = '±';
|
||
entities['178'] = '²';
|
||
entities['179'] = '³';
|
||
entities['180'] = '´';
|
||
entities['181'] = 'µ'; entities['182'] = '¶';
|
||
entities['183'] = '·';
|
||
entities['184'] = '¸';
|
||
entities['185'] = '¹';
|
||
entities['186'] = 'º'; entities['187'] = '»';
|
||
entities['188'] = '¼';
|
||
entities['189'] = '½';
|
||
entities['190'] = '¾';
|
||
entities['191'] = '¿'; entities['192'] = 'À';
|
||
entities['193'] = 'Á';
|
||
entities['194'] = 'Â';
|
||
entities['195'] = 'Ã';
|
||
entities['196'] = 'Ä'; entities['197'] = 'Å';
|
||
entities['198'] = 'Æ';
|
||
entities['199'] = 'Ç';
|
||
entities['200'] = 'È';
|
||
entities['201'] = 'É'; entities['202'] = 'Ê';
|
||
entities['203'] = 'Ë';
|
||
entities['204'] = 'Ì';
|
||
entities['205'] = 'Í';
|
||
entities['206'] = 'Î'; entities['207'] = 'Ï';
|
||
entities['208'] = 'Ð';
|
||
entities['209'] = 'Ñ';
|
||
entities['210'] = 'Ò';
|
||
entities['211'] = 'Ó'; entities['212'] = 'Ô';
|
||
entities['213'] = 'Õ';
|
||
entities['214'] = 'Ö';
|
||
entities['215'] = '×';
|
||
entities['216'] = 'Ø'; entities['217'] = 'Ù';
|
||
entities['218'] = 'Ú';
|
||
entities['219'] = 'Û';
|
||
entities['220'] = 'Ü';
|
||
entities['221'] = 'Ý'; entities['222'] = 'Þ';
|
||
entities['223'] = 'ß';
|
||
entities['224'] = 'à';
|
||
entities['225'] = 'á';
|
||
entities['226'] = 'â'; entities['227'] = 'ã';
|
||
entities['228'] = 'ä';
|
||
entities['229'] = 'å';
|
||
entities['230'] = 'æ';
|
||
entities['231'] = 'ç'; entities['232'] = 'è';
|
||
entities['233'] = 'é';
|
||
entities['234'] = 'ê';
|
||
entities['235'] = 'ë';
|
||
entities['236'] = 'ì'; entities['237'] = 'í';
|
||
entities['238'] = 'î';
|
||
entities['239'] = 'ï';
|
||
entities['240'] = 'ð';
|
||
entities['241'] = 'ñ'; entities['242'] = 'ò';
|
||
entities['243'] = 'ó';
|
||
entities['244'] = 'ô';
|
||
entities['245'] = 'õ';
|
||
entities['246'] = 'ö'; entities['247'] = '÷';
|
||
entities['248'] = 'ø';
|
||
entities['249'] = 'ù';
|
||
entities['250'] = 'ú';
|
||
entities['251'] = 'û'; entities['252'] = 'ü';
|
||
entities['253'] = 'ý';
|
||
entities['254'] = 'þ';
|
||
entities['255'] = 'ÿ';
|
||
}
|
||
if (useQuoteStyle !== 'ENT_NOQUOTES') {
|
||
entities['34'] = '"';
|
||
}
|
||
if (useQuoteStyle === 'ENT_QUOTES') { entities['39'] = ''';
|
||
}
|
||
entities['60'] = '<';
|
||
entities['62'] = '>';
|
||
|
||
// ascii decimals to real symbols
|
||
for (decimal in entities) {
|
||
if (entities.hasOwnProperty(decimal)) {
|
||
hash_map[String.fromCharCode(decimal)] = entities[decimal]; }
|
||
}
|
||
|
||
return hash_map;
|
||
}
|
||
|
||
function stripslashes (str) {
|
||
return (str+'').replace(/\\(.?)/g, function (s, n1) {
|
||
switch (n1) {
|
||
case '\\':
|
||
return '\\';
|
||
case '0':
|
||
return '\0';
|
||
case '':
|
||
return '';
|
||
default:
|
||
return n1;
|
||
}
|
||
});
|
||
}
|
||
|
||
function addslashes (str) {
|
||
return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
|
||
}
|
||
|
||
/**
|
||
* This function sets netsted properties to dom elements
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param (object) dom element refered by ID
|
||
* @Param (array) nested array of properties strings
|
||
* @Param (string) value to set
|
||
* @Return <none>
|
||
*
|
||
* Example:
|
||
* setNestedProperty(document, ['body','style','backgroundColor'], 'black');
|
||
*/
|
||
function setNestedProperty(obj, propertyName, propertyValue){
|
||
var oTarget = obj;
|
||
for (var i=0; i<propertyName.length; i++){
|
||
if (i == (propertyName.length - 1)){
|
||
oTarget[propertyName[i]] = propertyValue;
|
||
return false;
|
||
}
|
||
oTarget = oTarget[propertyName[i]];
|
||
}
|
||
}
|
||
|
||
/**
|
||
* This function gets the user client browser and its version
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param <none>
|
||
* @Return (objeect) {browser:sBrowser, version:sVersion}
|
||
*/
|
||
function getBrowserClient(){
|
||
var aBrowFull = new Array("opera", "msie", "firefox", "opera", "safari");
|
||
var sInfo = navigator.userAgent.toLowerCase();
|
||
sBrowser = "";
|
||
for (var i = 0; i < aBrowFull.length; i++){
|
||
if ((sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)){
|
||
sBrowser = aBrowFull[i];
|
||
sVersion = String(parseFloat(sInfo.substr(sInfo.indexOf(aBrowFull[i]) + aBrowFull[i].length + 1)));
|
||
return {name:sBrowser, browser:sBrowser, version:sVersion}
|
||
}
|
||
}
|
||
return false;
|
||
};
|
||
var _BROWSER = getBrowserClient();
|
||
|
||
/**
|
||
* Create and send cookie
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param (string) cookie name
|
||
* @Param (string) cookie value
|
||
* @Param (int) cookie number of days for expires
|
||
* @Return <none>
|
||
*/
|
||
function createCookie(name, value, days){
|
||
if (days) {
|
||
var date = new Date();
|
||
date.setTime(date.getTime()+(days*24*60*60*1000));
|
||
var expires = "; expires="+date.toGMTString();
|
||
} else var expires = "";
|
||
document.cookie = name+"="+value+expires+"; path=/";
|
||
}
|
||
|
||
/**
|
||
* read a cookie
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param cookie name
|
||
* @Return (string) cookie content
|
||
*/
|
||
function readCookie(name){
|
||
var ca = document.cookie.split(';');
|
||
var nameEQ = name + "=";
|
||
for(var i=0; i < ca.length; i++) {
|
||
var c = ca[i];
|
||
while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
|
||
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
|
||
}
|
||
return null;
|
||
}
|
||
|
||
/**
|
||
* delete a cookie
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param cookie name
|
||
* @Return <none>
|
||
*/
|
||
function eraseCookie(name){
|
||
createCookie(name, "", -1);
|
||
}
|
||
|
||
/**
|
||
* highlightRow a html element (setting background)
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param (object) html element
|
||
* @Param (string) some color in hexadecimal format
|
||
* @Return <none>
|
||
*/
|
||
function highlightRow(o, color){
|
||
o.style.background = color
|
||
}
|
||
|
||
/**
|
||
* left and right delete the blank characteres (String prototype)
|
||
*
|
||
* Example:
|
||
* var str = String(" some_string_with_spaces ");
|
||
* str.trim(); //clean the blank characteres
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param <none>
|
||
* @Return <none>
|
||
*/
|
||
String.prototype.trim = function () {
|
||
return this.replace(/^\s+|\s+$/g, "");
|
||
}
|
||
|
||
function clearCalendar(id){
|
||
document.getElementById(id).value='';
|
||
document.getElementById(id+'[div]').innerHTML = '';
|
||
setTimeout('enableCalendar()', 350);
|
||
}
|
||
|
||
function lockCalendar(){
|
||
G_CALENDAR_MEM_OFFSET = 'lock';
|
||
|
||
//G_CALENDAR_CURRENT_OBJ.hide();
|
||
}
|
||
|
||
function enableCalendar(){
|
||
G_CALENDAR_MEM_OFFSET = 'enable';
|
||
}
|
||
|
||
function parseDateFromMask (inputArray, mask){
|
||
/* inputArray is an associative array with properties
|
||
year, month, day, hour, minute */
|
||
|
||
/* format mask
|
||
* Y -> 2009
|
||
* y -> 09
|
||
* m -> 02
|
||
* d -> 01
|
||
*
|
||
* h -> 12
|
||
* i -> 59
|
||
*
|
||
* d/m/y -> 01/02/09
|
||
* d/m/Y -> 01/02/2009
|
||
* Y-m-d -> 2009-02-01
|
||
*
|
||
* Y-m-d h:m -> 2009-02-01 12:59
|
||
*
|
||
*/
|
||
|
||
result = mask;
|
||
result = result.replace("Y", inputArray.year);
|
||
|
||
year = new String(inputArray.year);
|
||
result = result.replace("y", year.substr(2,3));
|
||
result = result.replace("m", inputArray.month);
|
||
result = result.replace("d", inputArray.day);
|
||
result = result.replace("h", inputArray.hour);
|
||
result = result.replace("i", inputArray.minute);
|
||
|
||
return result;
|
||
|
||
}
|
||
|
||
Array.prototype.walk = function( funcionaplicada ) {
|
||
for(var i=0, parar=false; i<this.length && !parar; i++ )
|
||
parar = funcionaplicada( this[i], i);
|
||
return (this.length==i)? false : (i-1);
|
||
}
|
||
|
||
Array.prototype.find = function(q) {
|
||
var dev = this.walk(function(elem) {
|
||
if( elem==q )
|
||
return true;
|
||
} );
|
||
if( this[dev]==q ) return dev;
|
||
else return -1;
|
||
}
|
||
|
||
Array.prototype.drop = function(x) {
|
||
this.splice(x,1);
|
||
}
|
||
|
||
Array.prototype.deleteByValue = function(val) {
|
||
var eindex = this.find(val);
|
||
this.drop(eindex);
|
||
}
|
||
|
||
/**
|
||
* schedule a action js callback
|
||
*
|
||
* @Author Erik Amaru Ortiz <erik@colosa.com, aortiz.erik@gmail.com>
|
||
* @Param (string) function name
|
||
* @Param (int) time in seconds
|
||
* @Return <none>
|
||
*/
|
||
function Timer(functionName, time) {
|
||
setTimeout(functionName, time*1000);
|
||
}
|
||
|
||
function PMOS_TemporalMessage(timeToHide){
|
||
fade('temporalMessageTD', 'inOut');
|
||
if( typeof(timeToHide) != 'undefined' ) {
|
||
Timer(
|
||
function(){
|
||
try{
|
||
document.getElementById('temporalMessageTD').style.display = 'none';
|
||
}catch(e){}
|
||
},
|
||
timeToHide
|
||
);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* fast messagesbox
|
||
*
|
||
* @Param msg (string) : your message
|
||
* @Param type (string): {alert|info|confirm}
|
||
* @Param type (string): xcallback, callback function name to execute after at user click on Accept
|
||
* @Author <erik@colosa.com>
|
||
*/
|
||
|
||
function msgBox(msg, type, callbackAccept, callbackCancel){
|
||
|
||
//setting default type
|
||
type = typeof(type) != 'undefined'? type: 'info';
|
||
|
||
//setting up the callback action
|
||
acceptEv = typeof(callbackAccept) != 'undefined'? callbackAccept: false;
|
||
cancelEv = typeof(callbackCancel) != 'undefined'? callbackCancel: false;
|
||
|
||
switch(type){
|
||
case 'alert':
|
||
|
||
if (leimnud.browser.isIE) {
|
||
new leimnud.module.app.alert().make({
|
||
label: msg,
|
||
width: 450,
|
||
height: 120,
|
||
action:function(){
|
||
if( acceptEv ){
|
||
setTimeout(acceptEv, 1);
|
||
}
|
||
}.extend(this)
|
||
});
|
||
}else{
|
||
new leimnud.module.app.alert().make({
|
||
label: msg,
|
||
width: 350,
|
||
action:function(){
|
||
if( acceptEv ){
|
||
setTimeout(acceptEv, 1);
|
||
}
|
||
}.extend(this)
|
||
});
|
||
}
|
||
break;
|
||
case 'info':
|
||
new leimnud.module.app.info().make({
|
||
label: msg,
|
||
width: 350,
|
||
action:function(){
|
||
if( acceptEv ){
|
||
setTimeout(acceptEv, 1);
|
||
}
|
||
}.extend(this)
|
||
});
|
||
break;
|
||
case 'confirm':
|
||
if( cancelEv ){
|
||
new leimnud.module.app.confirm().make({
|
||
label: msg,
|
||
action: function(){
|
||
if( acceptEv ){
|
||
setTimeout(acceptEv, 0);
|
||
}
|
||
}.extend(this),
|
||
cancel: function(){
|
||
setTimeout(cancelEv, 1);
|
||
}.extend(this)
|
||
});
|
||
} else {
|
||
new leimnud.module.app.confirm().make({
|
||
label: msg,
|
||
action: function(){
|
||
if( acceptEv ){
|
||
setTimeout(acceptEv, 1);
|
||
}
|
||
}.extend(this)
|
||
});
|
||
}
|
||
break;
|
||
}
|
||
|
||
}
|
||
|
||
|
||
function executeEvent(id, ev){
|
||
switch(ev){
|
||
case 'click':
|
||
document.getElementById(id).checked = true;
|
||
if(document.getElementById(id).onclick){
|
||
try{
|
||
document.getElementById(id).onclick();
|
||
}catch(e){}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
/*
|
||
* @By Erik
|
||
*/
|
||
function getClientWindowSize() {
|
||
var wSize = [1024, 768];
|
||
if (typeof window.innerWidth != 'undefined'){
|
||
wSize = [
|
||
window.innerWidth,
|
||
window.innerHeight
|
||
];
|
||
} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0){
|
||
wSize = [
|
||
document.documentElement.clientWidth,
|
||
document.documentElement.clientHeight
|
||
];
|
||
} else {
|
||
var body = document.getElementsByTagName('body');
|
||
if(typeof body != 'undefined' && typeof body[0] != 'undefined' && typeof body[0].clientWidth != 'undefined') {
|
||
wSize = [
|
||
document.getElementsByTagName('body')[0].clientWidth,
|
||
document.getElementsByTagName('body')[0].clientHeight
|
||
];
|
||
}
|
||
}
|
||
return {width:wSize[0], height:wSize[1]};
|
||
}
|
||
|
||
function popUp(URL, width, height, left, top, resizable) {
|
||
window.open(URL, '', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=1,resizable='+resizable+',width='+width+',height='+height+',left = '+left+',top = '+top+'');
|
||
}
|
||
|
||
/**
|
||
* Alias for tedious large definition for ajax object - By Erik A.O. <erik@colosa.com>
|
||
*/
|
||
function XHRequest(){
|
||
return new leimnud.module.rpc.xmlhttp;
|
||
}
|
||
|
||
function removeValue(id){
|
||
if( document.getElementById('form['+id+']') )
|
||
document.getElementById('form['+id+']').value = '';
|
||
else if( document.getElementById(id) )
|
||
document.getElementById(id).value = '';
|
||
|
||
fireEvent(document.getElementById(id), 'change');
|
||
}
|
||
|
||
var countButtonDone = 0;
|
||
|
||
function datePicker4(obj, id, mask, startDate, endDate, showTIme, idIsoDate)
|
||
{
|
||
var aux = id.replace(/[\[\]]/g, '_');
|
||
__lastMasks__[aux] = mask;
|
||
|
||
if (showTIme=='false') {
|
||
showTIme = false;
|
||
}
|
||
|
||
countButtonDone = countButtonDone + 1;
|
||
|
||
Calendar.setup({
|
||
inputField: id,
|
||
dateFormat: mask,
|
||
trigger: id + "[btn]",
|
||
bottomBar: true,
|
||
min:startDate,
|
||
max:endDate,
|
||
animation: _BROWSER.name =='msie'? false: true,
|
||
showTime: showTIme,
|
||
showButtonDone: (showTIme)? 1 : 0,
|
||
iButtonDone: countButtonDone,
|
||
opacity: 1,
|
||
onSelect: function ()
|
||
{
|
||
/* disabled temporarily by wrong functionality
|
||
auxid = id;
|
||
idIsoDate = auxid.substring(0,auxid.length-1)+'_isodate]';
|
||
var field= document.getElementById(idIsoDate);
|
||
field.value=this.selection.print("%Y-%m-%d", ""); */
|
||
|
||
if (!this.args.showButtonDone || this.args.showButtonDone == 0) {
|
||
this.hide();
|
||
|
||
fireEvent(document.getElementById(id), "change");
|
||
}
|
||
},
|
||
onFocus: function ()
|
||
{
|
||
if (this.args.showButtonDone && this.args.showButtonDone == 1) {
|
||
var thisAux = this;
|
||
|
||
document.getElementById("btnDone" + thisAux.args.iButtonDone).onclick = function ()
|
||
{
|
||
var v;
|
||
|
||
if (thisAux.selection.sel.length == 0) {
|
||
//thisAux.args.showTime //default false //true for 24h //12 for am/pm
|
||
|
||
if (thisAux.args.showTime) {
|
||
thisAux.date.setHours(thisAux.selection.cal.getHours());
|
||
thisAux.date.setMinutes(thisAux.selection.cal.getMinutes());
|
||
}
|
||
|
||
v = Calendar.printDate(Calendar.intToDate(thisAux.date), thisAux.args.dateFormat);
|
||
} else {
|
||
v = thisAux.selection.print(thisAux.args.dateFormat);
|
||
}
|
||
|
||
document.getElementById(thisAux.args.inputField).value = v;
|
||
|
||
//Event
|
||
thisAux.hide();
|
||
|
||
fireEvent(document.getElementById(id), "change");
|
||
};
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
function fireEvent(element, event)
|
||
{
|
||
if (document.createEventObject){
|
||
// dispatch for IE
|
||
var evt = document.createEventObject();
|
||
return element.fireEvent('on' + event,evt)
|
||
}
|
||
else {
|
||
// dispatch for firefox + others
|
||
var evt = document.createEvent("HTMLEvents");
|
||
evt.initEvent(event, true, true ); // event type,bubbling,cancelable
|
||
return !element.dispatchEvent(evt);
|
||
}
|
||
}
|
||
|
||
function elementAttributesNS(e, ns)
|
||
{
|
||
if (!this.__namespaceRegexps)
|
||
this.__namespaceRegexps = {};
|
||
var regexp = this.__namespaceRegexps[ns];
|
||
if (!regexp) {
|
||
this.__namespaceRegexps[ns] = regexp =
|
||
ns ? eval("/^" + ns + ":(.+)/") : /^([^:]*)$/;
|
||
}
|
||
var result = {};
|
||
var atts = e.attributes;
|
||
var l = atts.length;
|
||
for (var i = 0; i < l; i++) {
|
||
var m = atts[i].name.match(regexp);
|
||
if (m)
|
||
result[m[1]] = atts[i].value;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Translator function for internationalization
|
||
*/
|
||
function _()
|
||
{
|
||
var argv = _.arguments;
|
||
var argc = argv.length;
|
||
|
||
if( typeof TRANSLATIONS != 'undefined' && TRANSLATIONS) {
|
||
if( typeof TRANSLATIONS[argv[0]] != 'undefined' ) {
|
||
if (argc > 1) {
|
||
trn = TRANSLATIONS[argv[0]];
|
||
for (i = 1; i < argv.length; i++) {
|
||
trn = trn.replace('{'+(i-1)+'}', argv[i]);
|
||
}
|
||
}
|
||
else {
|
||
trn = TRANSLATIONS[argv[0]];
|
||
}
|
||
}
|
||
else {
|
||
trn = argv[0];
|
||
}
|
||
}
|
||
else {
|
||
PMExt.error('Processmaker JS Core Error', 'The TRANSLATIONS global object is not loaded!');
|
||
trn = '';
|
||
}
|
||
return trn;
|
||
}
|
||
|
||
/**
|
||
* Translator function for internationalization to plugins
|
||
*/
|
||
function __()
|
||
{
|
||
var argv = __.arguments;
|
||
var argc = argv.length;
|
||
|
||
//argv[0] => NAME PLUGIN
|
||
//argv[1] => ID
|
||
//argv[2] => VARIABLES
|
||
|
||
var existTranslations = true;
|
||
var existIdLabel = true;
|
||
eval("if( typeof TRANSLATIONS_" + argv[0].toUpperCase() + " != 'undefined' && TRANSLATIONS_" + argv[0].toUpperCase() + ") { existTranslations = true; } else { existTranslations = false; }");
|
||
if (existTranslations) {
|
||
eval("if( typeof TRANSLATIONS_" + argv[0].toUpperCase() + "[argv[1]] != 'undefined' ) { existIdLabel = true; } else { existIdLabel = false; }");
|
||
if (existIdLabel) {
|
||
if (argc > 2) {
|
||
eval("trn = TRANSLATIONS_" + argv[0].toUpperCase() + "[argv[0]];");
|
||
for (i = 2; i < argv.length; i++) {
|
||
trn = trn.replace('{'+(i-2)+'}', argv[i]);
|
||
}
|
||
} else {
|
||
eval("trn = TRANSLATIONS_" + argv[0].toUpperCase() + "[argv[1]];");
|
||
}
|
||
} else {
|
||
trn = argv[1];
|
||
}
|
||
} else {
|
||
PMExt.error('Processmaker JS Core Error', 'The TRANSLATIONS ' + argv[0].toUpperCase() + ' global object is not loaded!');
|
||
trn = '';
|
||
}
|
||
return trn;
|
||
}
|
||
|
||
/**
|
||
* String Replace function, if strSearch has special characters "(", "[", must be escape "\\(", "\\[".
|
||
*
|
||
*/
|
||
function stringReplace(strSearch, strReplace, str)
|
||
{
|
||
var expression = eval("/" + strSearch + "/g");
|
||
|
||
return str.replace(expression, strReplace);
|
||
}
|
||
|
||
var mb_strlen = function(str) {
|
||
str = str || '';
|
||
var len = 0;
|
||
for (var i = 0; i < str.length; i++) {
|
||
len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 2 : 1;
|
||
}
|
||
return len;
|
||
};
|
||
|
||
var stripNonNumeric = function (str) {
|
||
str += ''; //force str to be a string
|
||
var rgx = /^\d|\.|-$/;
|
||
var out = '';
|
||
for (var i = 0; i < str.length; i++) {
|
||
if (rgx.test(str.charAt(i))) {
|
||
if (!((str.charAt(i) == '.' && out.indexOf('.') != -1) || (str.charAt(i) == '-' && out.length != 0 ))) {
|
||
out += str.charAt(i);
|
||
}
|
||
}
|
||
}
|
||
return out;
|
||
};
|
||
|
||
function inputDocumentVerifySize(inpDocMaxFileSize, file)
|
||
{
|
||
try {
|
||
return (file.files[0].size <= inpDocMaxFileSize)? 1 : 0;
|
||
} catch (e) {
|
||
return 1;
|
||
}
|
||
}
|