866 lines
20 KiB
JavaScript
866 lines
20 KiB
JavaScript
//ver. 08/02/2007
|
||
|
||
var webApp="";
|
||
var locale="IT";
|
||
|
||
var loaded = 0;
|
||
/*var ns4=0;
|
||
var ie4=0;
|
||
var brow=0;
|
||
var browser=navigator.appName;
|
||
//window.toolbar=false;
|
||
//alert('Browser:'+navigator.appName);
|
||
|
||
ns4=(browser=='Netscape')?1:0;
|
||
ie4=(browser.search(/microsoft/i)!=-1)?2:0;
|
||
|
||
//ns4 = (document.layers) ? 1 : 0;
|
||
//ie4 = (document.all) ? 1 : 0;
|
||
|
||
ver4 = (ns4 || ie4) ? 1 : 0;
|
||
ns4==1?brow=2:brow=1;
|
||
*/
|
||
|
||
//**************** DETECT BROWSER **************************************************
|
||
|
||
|
||
|
||
//CS1.1
|
||
|
||
var exclude=1;
|
||
var agt=navigator.userAgent.toLowerCase();
|
||
var win=0;var mac=0;var lin=1;
|
||
if(agt.indexOf('win')!=-1){win=1;lin=0;}
|
||
if(agt.indexOf('mac')!=-1){mac=1;lin=0;}
|
||
var lnx=0;if(lin){lnx=1;}
|
||
var ice=0;
|
||
var ie=0;var ie4=0;var ie5=0;var ie6=0;var com=0;var dcm;
|
||
var op5=0;var op6=0;var op7=0;
|
||
var ns4=0;var ns6=0;var ns7=0;var mz7=0;var kde=0;var saf=0;
|
||
if(typeof navigator.vendor!="undefined" && navigator.vendor=="KDE"){
|
||
var thisKDE=agt;
|
||
var splitKDE=thisKDE.split("konqueror/");
|
||
var aKDE=splitKDE[1].split("; ");
|
||
var KDEn=parseFloat(aKDE[0]);
|
||
if(KDEn>=2.2){
|
||
kde=1;
|
||
ns6=1;
|
||
exclude=0;
|
||
}
|
||
}
|
||
else if(agt.indexOf('webtv')!=-1){exclude=1;}
|
||
else if(typeof window.opera!="undefined"){
|
||
exclude=0;
|
||
if(/opera[\/ ][5]/.test(agt)){op5=1;}
|
||
if(/opera[\/ ][6]/.test(agt)){op6=1;}
|
||
if(/opera[\/ ][7-9]/.test(agt)){op7=1;}
|
||
}
|
||
else if(typeof document.all!="undefined"&&!kde){
|
||
exclude=0;
|
||
ie=1;
|
||
if(typeof document.getElementById!="undefined"){
|
||
ie5=1;
|
||
if(agt.indexOf("msie 6")!=-1){
|
||
ie6=1;
|
||
dcm=document.compatMode;
|
||
if(dcm!="BackCompat"){com=1;}
|
||
}
|
||
}
|
||
else{ie4=1;}
|
||
}
|
||
else if(typeof document.getElementById!="undefined"){
|
||
exclude=0;
|
||
if(agt.indexOf("netscape/6")!=-1||agt.indexOf("netscape6")!=-1){ns6=1;}
|
||
else if(agt.indexOf("netscape/7")!=-1||agt.indexOf("netscape7")!=-1){ns6=1;ns7=1;}
|
||
else if(agt.indexOf("gecko")!=-1){ns6=1;mz7=1;}
|
||
if(agt.indexOf("safari")!=-1 || (typeof document.childNodes!="undefined" && typeof document.all=="undefined" && typeof navigator.taintEnabled=="undefined")){mz7=0;ns6=1;saf=1;}
|
||
}
|
||
else if((agt.indexOf('mozilla')!=-1)&&(parseInt(navigator.appVersion)>=4)){
|
||
exclude=0;
|
||
ns4=1;
|
||
if(typeof navigator.mimeTypes['*']=="undefined"){
|
||
exclude=1;
|
||
ns4=0;
|
||
}
|
||
}
|
||
if(agt.indexOf('escape')!=-1){exclude=1;ns4=0;}
|
||
if(typeof navigator.__ice_version!="undefined"){exclude=1;ie4=0;}
|
||
|
||
|
||
//alert("ns44 "+ns4 +" ie5 "+ie5+" mozz "+mz7);
|
||
//********************************************************
|
||
//********************************************************
|
||
|
||
|
||
//********************************************************
|
||
//********************************************************
|
||
// S T A R T
|
||
//********************************************************
|
||
//********************************************************
|
||
//********************************************************
|
||
var ggWinSW;
|
||
function startApp() {
|
||
|
||
windowWidth="800";
|
||
windowHeigth="600";
|
||
windowTitle="Time_Report";
|
||
startPage="menu/Menu.abl";
|
||
ggWinSW = window.open(startPage, windowTitle,"width="+windowWidth+",height="+windowHeigth+",status=yes,resizable=yes,top=0,left=0,scrollbars=yes");
|
||
//debug
|
||
//ggWinSW = window.open();
|
||
|
||
ggWinSW.opener = self;
|
||
//window.close();
|
||
}
|
||
|
||
//********************************************************
|
||
//********************************************************
|
||
// P R I N T
|
||
//********************************************************
|
||
//********************************************************
|
||
//********************************************************
|
||
function printW()
|
||
{
|
||
window.print();
|
||
return true;
|
||
|
||
}
|
||
//////////////////////////////////////////////////////////
|
||
/// controlli salvataggi e cancellazione//////////////////
|
||
/////////////////////////////////////////////////////////
|
||
function confirmDelete()
|
||
{
|
||
return confirm("I dati saranno cancellati. Vuoi continuare?")
|
||
|
||
}
|
||
/////////////////////////////////////////////////////
|
||
// gestione preve e next nelle liste con paginazione
|
||
/////////////////////////////////////////////////////
|
||
|
||
//caso maschere di ricerca
|
||
function prevPage()
|
||
{
|
||
|
||
var f = document.ricerca;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="search";
|
||
f.pageNumber.value=f.pageNumber.value-1;
|
||
f.target="" ;
|
||
|
||
f.submit();
|
||
}
|
||
|
||
function nextPage()
|
||
{
|
||
var f = document.ricerca;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="search";
|
||
f.pageNumber.value=eval(f.pageNumber.value)+1;
|
||
f.target="" ;
|
||
|
||
//alert(f.pageNumber.value);
|
||
f.submit();
|
||
}
|
||
|
||
function goPage(l_pageNumber)
|
||
{
|
||
|
||
var f = document.ricerca;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="search";
|
||
f.pageNumber.value=l_pageNumber;
|
||
f.target="" ;
|
||
|
||
f.submit();
|
||
}
|
||
|
||
function goPage()
|
||
{
|
||
goPageMod(document.ricerca);
|
||
}
|
||
|
||
function goPage2()
|
||
{
|
||
goPageMod2(document.ricerca);
|
||
}
|
||
|
||
function goPageS()
|
||
{
|
||
//per le pagine di tipo simple
|
||
goPageMod(document.dettaglio);
|
||
}
|
||
|
||
function goPageMod(f)
|
||
{
|
||
//var f = document.ricerca;
|
||
if(parseFloat(f.pageNumberGo.value)<= parseFloat(f.totPageNumber.value))
|
||
{
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="search";
|
||
f.pageNumber.value=f.pageNumberGo.value;
|
||
f.target="" ;
|
||
|
||
f.submit();
|
||
}
|
||
else
|
||
alert('Errore!!');
|
||
|
||
}
|
||
function goPageMod2(f)
|
||
{
|
||
//var f = document.ricerca;
|
||
if(parseFloat(f.pageNumberGo2.value)<= parseFloat(f.totPageNumber.value))
|
||
{
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="search";
|
||
f.pageNumber.value=f.pageNumberGo2.value;
|
||
f.target="" ;
|
||
|
||
f.submit();
|
||
}
|
||
else
|
||
alert('Errore!!');
|
||
}
|
||
|
||
|
||
//caso finestre secondarie di ricerca
|
||
|
||
function prevPageSW()
|
||
{
|
||
|
||
var f = document.ricerca;
|
||
f.act.value="sw";
|
||
prevPage();
|
||
}
|
||
|
||
function nextPageSW()
|
||
{
|
||
|
||
var f = document.ricerca;
|
||
f.act.value="sw";
|
||
nextPage();
|
||
}
|
||
function goPageSW(l_pageNumber)
|
||
{
|
||
|
||
var f = document.ricerca;
|
||
f.action=f.actionPage.value;
|
||
f.act.value="sw";
|
||
goPage(l_pageNumber);
|
||
}
|
||
|
||
//caso maschere di dettaglio per liste secondarie
|
||
function prevPageDetail(searchType)
|
||
{
|
||
var f = document.dettaglio;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="md";
|
||
f.act.value=searchType;
|
||
f.pageNumber.value=f.pageNumber.value-1;
|
||
f.submit();
|
||
}
|
||
|
||
function nextPageDetail(searchType)
|
||
{
|
||
var f = document.dettaglio;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="md";
|
||
f.act.value=searchType;
|
||
f.pageNumber.value=eval(f.pageNumber.value)+1;
|
||
f.submit();
|
||
}
|
||
function goPageDetail(l_pageNumber)
|
||
{
|
||
var f = document.dettaglio;
|
||
f.action=f.actionPage.value;
|
||
f.cmd.value="md";
|
||
f.pageNumber.value=l_pageNumber;
|
||
//alert(f.pageNumber.value);
|
||
f.submit();
|
||
}
|
||
//////////////////////////////////////////////////////////
|
||
/// gestione layers ///////////////////7//////////////////
|
||
/////////////////////////////////////////////////////////
|
||
function bkgMenu(menuName,color) {
|
||
if (ns4 || mz7) {
|
||
screenWidth = window.innerWidth;
|
||
document.layers[menuName].background = color;
|
||
} else {
|
||
screenWidth = document.body.clientWidth;
|
||
document.all[menuName].style.background = color;
|
||
|
||
}
|
||
|
||
}
|
||
///////////////////////////////////////////////
|
||
///////////////////////////////////////////////
|
||
function popUp(menuName,left,top) {
|
||
///////////////////////////////////////////////
|
||
///////////////////////////////////////////////
|
||
toleft =typeof left;
|
||
totop =typeof top;
|
||
if (ns4==1) {
|
||
screenWidth = window.innerWidth;
|
||
if (left!=0 && toleft != "undefined")
|
||
{
|
||
// document.layers[menuName].left = left;
|
||
}
|
||
if(top!=0 && totop != "undefined")
|
||
{
|
||
//document.layers[menuName].top = top;
|
||
}
|
||
|
||
|
||
// alert(document.layers[menuName].visibility );
|
||
document.layers[menuName].visibility = "show";
|
||
//alert(document.layers[menuName].visibility );
|
||
|
||
} else {
|
||
screenWidth = document.body.clientWidth;
|
||
if(left!=0 && toleft != "undefined")
|
||
{//alert('l='+left);
|
||
document.getElementById(menuName).style.pixelLeft = left;
|
||
}
|
||
if(top!=0 && totop != "undefined")
|
||
{//alert('pio2');
|
||
document.getElementById(menuName).style.pixelTop = top;
|
||
}
|
||
|
||
document.getElementById(menuName).style.visibility = "visible";
|
||
|
||
|
||
}
|
||
//registrazione di current tab
|
||
if ((ct=findObj('currentTab'))!=null)
|
||
{
|
||
ct.value=menuName;
|
||
//alert(menuName);
|
||
}
|
||
|
||
}
|
||
|
||
function popDown(menuName)
|
||
{
|
||
if (ns4 ) {
|
||
document.layers[menuName].visibility = "hide";
|
||
} else {
|
||
//alert("down"+document.getElementById(menuName).style.visibility);
|
||
document.getElementById(menuName).style.visibility = "hidden";
|
||
}
|
||
}
|
||
|
||
function motionListener(){
|
||
|
||
if (ns4 || mz7) {
|
||
window.captureEvents(Event.MOUSEMOVE);
|
||
window.onmousemove = grabXY;
|
||
} else {
|
||
document.onmousemove = grabXY;
|
||
}
|
||
}
|
||
|
||
function grabXY(ev){
|
||
|
||
if (ns4 || mz7) {
|
||
coordx=ev.pageX;
|
||
coordy=ev.pageY
|
||
} else {
|
||
coordx=event.clientX;
|
||
coordy=event.clientY;
|
||
}
|
||
}
|
||
|
||
function openWin(URL){
|
||
aWindow=window.open(URL,"listwindow", "resizable=yes,scrollbars=yes,status=0,width=200,height=100");
|
||
}
|
||
|
||
function newWindow(mypage, myname, w, h, scroll) {
|
||
var winl = (screen.width - w) / 2;
|
||
var wint = (screen.height - h) / 2;
|
||
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
|
||
//alert (mypage+" "+myname+" "+ winprops);
|
||
win = window.open(mypage, myname, winprops);
|
||
|
||
if (parseInt(navigator.appVersion) >= 4)
|
||
{
|
||
win.window.focus();
|
||
}
|
||
}
|
||
|
||
|
||
motionListener();
|
||
|
||
/////////////////////////////////////////7
|
||
/////////////////////////////////////////7
|
||
function leftCenter(menuName)
|
||
/////////////////////////////////////////7
|
||
/////////////////////////////////////////7
|
||
{
|
||
left=0;
|
||
|
||
if (ns4 || mz7) {
|
||
|
||
screenWidth = window.innerWidth;
|
||
//alert('ns mnuname'+menuName);
|
||
layerWidth=parseInt(document.layers[menuName].clip.width);
|
||
|
||
//alert('dopowidth');
|
||
|
||
} else {
|
||
|
||
screenWidth = document.body.clientWidth;
|
||
layerWidth=parseInt(document.getElementById(menuName).style.width);
|
||
}
|
||
|
||
// alert('lw='+layerWidth);
|
||
// alert(screenWidth);
|
||
|
||
// alert('left='+left);
|
||
left=(screenWidth -layerWidth)/2;
|
||
if (left<=0)
|
||
{
|
||
//alert('left;'+left);
|
||
left=1;
|
||
}
|
||
return left;
|
||
|
||
|
||
}
|
||
|
||
//////////////////////////////////////////////////////////
|
||
/// swap image ///////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////
|
||
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;
|
||
//alert('loading:'+a[i]);
|
||
d.MM_p[j++].src=a[i];
|
||
}
|
||
}
|
||
}
|
||
|
||
function swapImgRestore()
|
||
{ //v3.0
|
||
var i,x,a=document.sr;
|
||
for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
|
||
x.src=x.oSrc;
|
||
}
|
||
|
||
|
||
|
||
function swapImage()
|
||
{ //v3.0
|
||
var i,j=0,x,a=swapImage.arguments;
|
||
document.sr=new Array;
|
||
for(i=0;i<(a.length-2);i+=3)
|
||
{
|
||
if ((x=findObj(a[i]))!=null)
|
||
{
|
||
|
||
document.sr[j++]=x;
|
||
if(!x.oSrc)
|
||
x.oSrc=x.src;
|
||
x.src=a[i+2];
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//motionListener();
|
||
|
||
//////////////////////////////////////////////////////////
|
||
/// valida form //////////////////////////////////////////
|
||
/////////////////////////////////////////////////////////
|
||
|
||
function findObj(n, d)
|
||
{ //v3.0
|
||
var p,i,x;
|
||
if(!d)
|
||
d=document;
|
||
if((p=n.indexOf("?"))>0&&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<d.forms.length;i++)
|
||
x=d.forms[i][n];
|
||
for(i=0;!x&&d.layers&&i<d.layers.length;i++)
|
||
x=findObj(n,d.layers[i].document);
|
||
return x;
|
||
}
|
||
function validateForm2() { //v3.0
|
||
//R per required
|
||
//isNum per numerico
|
||
//isNum>x per numerico maggiore di x
|
||
//isNum<x per numerico minore di x
|
||
//isEmail per indirizzo email
|
||
//inRange1:10 per ..
|
||
//3 stringhe
|
||
//1: nome del field
|
||
//2: se '' visualizza il nome del field, altrimenti questo campo
|
||
//3: R/N+''/isNum/isEmail/inRangea:b
|
||
//
|
||
//esempi
|
||
// validateForm2('nomeform,'textfield','','R','textfield2','','NisNum','textfield3','','NisEmail','textfield4','','RinRange2:10')
|
||
//
|
||
var i,p,q,nm,nf,desc,test,testN,num,min,max,errors='',args=validateForm2.arguments;
|
||
nf=args[0];
|
||
//alert('forms'+nf);
|
||
for (i=1; i<(args.length-2); i+=3)
|
||
{
|
||
test=args[i+2];
|
||
//val=findObj(args[i]);
|
||
val=document[nf][args[i]];
|
||
|
||
if(args[i+1]=="")
|
||
desc=val.name;
|
||
else
|
||
desc=args[i+1];
|
||
|
||
if (val) { nm=val.name; if ((val=val.value)!="")
|
||
{
|
||
if (test.indexOf('isEmail')!=-1)
|
||
{
|
||
p=val.indexOf('@');
|
||
if (p<1 || p==(val.length-1)) errors+='- '+desc+' non <20> un indirizzo valido.\n';
|
||
}
|
||
else if (test!='R')
|
||
{
|
||
//alert(val);
|
||
if(locale=="IT")
|
||
{
|
||
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(',','.');
|
||
//tolgo gli zeri finali
|
||
var dotIdx=val.indexOf('.');
|
||
//alert("dotidx0"+dotIdx);
|
||
if(dotIdx!=-1)
|
||
{
|
||
var j=val.length-1;
|
||
/* while(val.charAt(i)!='.' && val.charAt(i)=='0' ) NON FUNZIONA.. forse perche' usavo i invece di j!!*/
|
||
while(val.charAt(j)!='.' )
|
||
{
|
||
//alert("j="+j+" val charat(j):"+val.charAt(j));
|
||
if(val.charAt(j)=='0')
|
||
{
|
||
val=val.substr(0,j);
|
||
j--;
|
||
}
|
||
else j=dotIdx;
|
||
}
|
||
if(val.charAt(val.length-1)=='.')
|
||
val=val.substr(0,val.length-1);
|
||
}
|
||
}
|
||
else if(locale=="US" || locale=="UK")
|
||
{
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace('.',',');
|
||
//tolgo gli zeri finali
|
||
var dotIdx=val.indexOf(',');
|
||
if(dotIdx!=-1){
|
||
var j=val.length-1;
|
||
while(val.charAt(j)!=',')
|
||
{
|
||
if(val.charAt(j)=='0')
|
||
{
|
||
val=val.substr(0,j);
|
||
j--;
|
||
}
|
||
else
|
||
j=dotIdx;
|
||
}
|
||
if(val.charAt(val.length-1)==',')
|
||
val=val.substr(0,val.length-1);
|
||
}
|
||
//alert("US:"+val);
|
||
}
|
||
|
||
|
||
//da correggere il caso 33,40 Non mi accetta lo 0 finale!!!'
|
||
|
||
num = parseFloat(val);
|
||
//alert('num:'+num);
|
||
|
||
// if (val!=''+num && val!=''+num +'0'&& val!=''+num +'00'&& val!=''+num +'000' ) errors+='- '+desc+' non <20> numerico.\n';
|
||
if (val!=''+num) errors+='- '+desc+' non <20> numerico.\n';
|
||
if(test.search(/[><]/) != -1 )
|
||
{
|
||
if (test.charAt(0) == 'R')
|
||
{
|
||
testN=test.substring(7,test.length);
|
||
}
|
||
else
|
||
{
|
||
testN=test.substring(6,test.length);
|
||
}
|
||
//alert('test:'+test+' tn: '+testN+" num: "+num +" pftn: "+parseFloat(testN));
|
||
if(test.indexOf('>') !=-1 && num <= parseFloat(testN)) errors+='- '+desc+' <20> <= '+testN+'.\n';
|
||
if(test.indexOf('<') !=-1 && num >= parseFloat(testN)) errors+='- '+desc+' <20> >= '+testN+'.\n';
|
||
}
|
||
if (test.indexOf('inRange') != -1)
|
||
{
|
||
p=test.indexOf(':');
|
||
min=test.substring(8,p);
|
||
max=test.substring(p+1);
|
||
if (num<min || max<num) errors+='- '+desc+' deve essere un numero tra '+min+' e '+max+'.\n';
|
||
}
|
||
}
|
||
}
|
||
else if (test.charAt(0) == 'R') errors += '- '+desc+' <20> obbligatorio.\n'; }
|
||
}
|
||
if (errors) alert('Il form contiene i seguenti errori:\n'+errors);
|
||
return (errors == '');
|
||
|
||
|
||
}
|
||
|
||
|
||
function validateForm() { //v3.0 23/07/2002
|
||
//R per required
|
||
//isNum per numerico
|
||
//isNum>x per numerico maggiore di x
|
||
//isNum<x per numerico minore di x
|
||
//isEmail per indirizzo email
|
||
//inRange1:10 per ..
|
||
//3 stringhe
|
||
//1: nome del field
|
||
//2: se '' visualizza il nome del field, altrimenti questo campo
|
||
//3: R/N+''/isNum/isEmail/inRangea:b
|
||
//
|
||
//esempi
|
||
// validateForm('textfield','','R','textfield2','','NisNum','textfield3','','NisEmail','textfield4','','RinRange2:10')
|
||
//
|
||
var i,p,q,nm,desc,test,testN,num,min,max,errors='',args=validateForm.arguments;
|
||
for (i=0; i<(args.length-2); i+=3)
|
||
{
|
||
test=args[i+2];
|
||
val=findObj(args[i]);
|
||
if(args[i+1]=="")
|
||
desc=val.name;
|
||
else
|
||
desc=args[i+1];
|
||
|
||
if (val) { nm=val.name; if ((val=val.value)!="")
|
||
{
|
||
if (test.indexOf('isEmail')!=-1)
|
||
{
|
||
p=val.indexOf('@');
|
||
if (p<1 || p==(val.length-1)) errors+='- '+desc+' non <20> un indirizzo valido.\n';
|
||
}
|
||
else if (test!='R')
|
||
{
|
||
//alert(val);
|
||
if(locale=="IT")
|
||
{
|
||
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(/[.]/,'');
|
||
val=val.replace(',','.');
|
||
//tolgo gli zeri finali
|
||
var dotIdx=val.indexOf('.');
|
||
//alert("dotidx0"+dotIdx);
|
||
if(dotIdx!=-1)
|
||
{
|
||
var j=val.length-1;
|
||
/* while(val.charAt(i)!='.' && val.charAt(i)=='0' ) NON FUNZIONA.. forse perche' usavo i invece di j!!*/
|
||
while(val.charAt(j)!='.' )
|
||
{
|
||
//alert("j="+j+" val charat(j):"+val.charAt(j));
|
||
if(val.charAt(j)=='0')
|
||
{
|
||
val=val.substr(0,j);
|
||
j--;
|
||
}
|
||
else j=dotIdx;
|
||
}
|
||
if(val.charAt(val.length-1)=='.')
|
||
val=val.substr(0,val.length-1);
|
||
}
|
||
}
|
||
else if(locale=="US" || locale=="UK")
|
||
{
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace(/[,]/,'');
|
||
val=val.replace('.',',');
|
||
//tolgo gli zeri finali
|
||
var dotIdx=val.indexOf(',');
|
||
if(dotIdx!=-1){
|
||
var j=val.length-1;
|
||
while(val.charAt(j)!=',')
|
||
{
|
||
if(val.charAt(j)=='0')
|
||
{
|
||
val=val.substr(0,j);
|
||
j--;
|
||
}
|
||
else
|
||
j=dotIdx;
|
||
}
|
||
if(val.charAt(val.length-1)==',')
|
||
val=val.substr(0,val.length-1);
|
||
}
|
||
//alert("US:"+val);
|
||
}
|
||
|
||
|
||
//da correggere il caso 33,40 Non mi accetta lo 0 finale!!!'
|
||
|
||
num = parseFloat(val);
|
||
//alert('num:'+num);
|
||
|
||
// if (val!=''+num && val!=''+num +'0'&& val!=''+num +'00'&& val!=''+num +'000' ) errors+='- '+desc+' non <20> numerico.\n';
|
||
if (val!=''+num) errors+='- '+desc+' non <20> numerico.\n';
|
||
if(test.search(/[><]/) != -1 )
|
||
{
|
||
if (test.charAt(0) == 'R')
|
||
{
|
||
testN=test.substring(7,test.length);
|
||
}
|
||
else
|
||
{
|
||
testN=test.substring(6,test.length);
|
||
}
|
||
//alert('test:'+test+' tn: '+testN+" num: "+num +" pftn: "+parseFloat(testN));
|
||
if(test.indexOf('>') !=-1 && num <= parseFloat(testN)) errors+='- '+desc+' <20> <= '+testN+'.\n';
|
||
if(test.indexOf('<') !=-1 && num >= parseFloat(testN)) errors+='- '+desc+' <20> >= '+testN+'.\n';
|
||
}
|
||
if (test.indexOf('inRange') != -1)
|
||
{
|
||
p=test.indexOf(':');
|
||
min=test.substring(8,p);
|
||
max=test.substring(p+1);
|
||
if (num<min || max<num) errors+='- '+desc+' deve essere un numero tra '+min+' e '+max+'.\n';
|
||
}
|
||
}
|
||
}
|
||
else if (test.charAt(0) == 'R') errors += '- '+desc+' <20> obbligatorio.\n'; }
|
||
}
|
||
if (errors) alert('Il form contiene i seguenti errori:\n'+errors);
|
||
return (errors == '');
|
||
|
||
}
|
||
//ckAll per combobox
|
||
function checkAll(f,ckAll)
|
||
{
|
||
for (var i=0;i<f.elements.length;i++)
|
||
{
|
||
var e = f.elements[i];
|
||
if (e.name != ckAll)
|
||
e.checked = f[ckAll].checked;
|
||
}
|
||
}
|
||
|
||
//funzioni di menu
|
||
function callSvlt(theSvlt)
|
||
{ var f = document.menu;
|
||
if (theSvlt.charAt(0)=="/")
|
||
{ //path assoluto
|
||
theSvlt=webApp+theSvlt;
|
||
}
|
||
f.action=theSvlt+".Svlt";
|
||
f.cmd.value="search";
|
||
f.submit();
|
||
}
|
||
|
||
function callAbl(theSvlt,theFrame,theCmd,theAct)
|
||
{
|
||
|
||
|
||
var f = document.menu;
|
||
//default
|
||
var cmd="search";
|
||
var act="";
|
||
if(theCmd!=null)
|
||
cmd=theCmd;
|
||
if(theAct!=null)
|
||
act=theAct;
|
||
if (theSvlt.charAt(0)=="/")
|
||
{//path assoluto
|
||
theSvlt=webApp+theSvlt;
|
||
}
|
||
if(theFrame==null || !theFrame )
|
||
{
|
||
f.action=theSvlt+".abl";
|
||
f.cmd.value=cmd;
|
||
f.act.value=act;
|
||
f.submit();
|
||
}
|
||
else
|
||
{
|
||
//preparo il location
|
||
var loc=theSvlt+".abl";
|
||
if(cmd!="" || act != "")
|
||
loc=loc+"?";
|
||
if(cmd!="")
|
||
loc=loc+"cmd="+cmd;
|
||
if(act!="")
|
||
loc=loc+"&act="+act;
|
||
//alert('loc='+loc);
|
||
if(ns4 || mz7)
|
||
{
|
||
window.parent.frames[1].location.href=loc;
|
||
}
|
||
else
|
||
{
|
||
var theBody=document.parentWindow.top.frames[theFrame];
|
||
//alert(theSvlt+".abl");
|
||
theBody.location.href=loc;
|
||
}
|
||
}
|
||
}
|
||
|
||
function closeWindow()
|
||
{
|
||
if(confirm("Vuoi chiudere la finestra? (il record NON sar<61> aggiornato)"))
|
||
window.close();
|
||
}
|
||
function showTab(l_layer)
|
||
{
|
||
//la funzione hideAll deve essere definita!!!
|
||
hideAll();
|
||
popUp(l_layer);
|
||
}
|
||
|
||
|
||
function getVal(field)
|
||
{
|
||
|
||
var val=findObj(field);
|
||
if (val)
|
||
val=val.value;
|
||
else
|
||
val="";
|
||
return val;
|
||
}
|
||
function clrField(modulo,id,desc)
|
||
{
|
||
var f = document[modulo];
|
||
f[id].value="";
|
||
f[desc].value="";
|
||
|
||
|
||
}
|