
function MM_swapImgRestore()
{
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages()
{
  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 MM_findObj(n, d)
{
  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=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage()
{
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var watchID = null;
var watchRun = false;

function stopwatch(){
  if(watchRun)
    clearTimeout(watchID)
  watchRun = false
}

function startwatch(){
  stopwatch()
  dayTime()
}

function dayTime() {
  day = new Date();
  hour = day.getHours();
  minute = day.getMinutes();
  second = day.getSeconds();

  if (hour > 12) {
  hours = hour - 12;
  part = 'PM'}
  else {
  part = 'AM';
  if (hour == 0) {
  hours = 12
  }
  else {
  hours = hour
  }
  }
  if (minute < 10) {minutes = 0}
  else {minutes = ""}
  if (second < 10) {seconds = 0}
  else {seconds =""}
  date = ('' +day.getDate()+"/"+(day.getMonth() + 1)+ "/"+day.getYear()+ '');
  time = ('' + hours + ":"+minutes+""+minute+ ":"+seconds+""+second+ '')
  parts = ('' +part+ '')
  document.timedate.time.value = time
  document.timedate.date.value = date
  document.timedate.parts.value = parts
  watchID = setTimeout("dayTime()",1000)
  watchRun = true
}

function firstFocus(){
	document.fLogin.username.focus();
}

function reloadWebDms(action) {
	window.self.location=(action);
}

function reloadWebDmsExitFrame(action,nameForm) {
  window.document.forms[nameForm].target='_top';
  window.document.forms[nameForm].action = action;
  window.document.forms[nameForm].submit();
}

function gotoolbar (action,load,sessionId)
{
	if (window.document.ftoolbar)
	{
	window.document.ftoolbar.action = action;
	window.document.ftoolbar.load.value = load;
	window.document.ftoolbar.sessionId.value = sessionId;
	window.document.ftoolbar.submit();
	}
	else
	{
	window.document.frames[0].ftoolbar.action = action;
	window.document.frames[0].ftoolbar.load.value = load;
	window.document.frames[0].ftoolbar.sessionId.value = sessionId;
	window.document.frames[0].ftoolbar.submit();
	}
}

function goseleziona_doc (action,load,sessionId)
{
	if (window.document.seleziona_doc)
	{
	window.document.seleziona_doc.action = action;
	window.document.seleziona_doc.load.value = load;
	window.document.seleziona_doc.sessionId.value = sessionId;
	window.document.seleziona_doc.submit();
	}
	else
	{
	window.document.frames[1].seleziona_doc.action = action;
	window.document.frames[1].seleziona_doc.load.value = load;
	window.document.frames[1].seleziona_doc.sessionId.value = sessionId;
	window.document.frames[1].seleziona_doc.submit();
	}
}
function goindici (action,load,sessionId)
{
	if (window.document.indici)
	{
	window.document.indici.action = action;
	window.document.indici.load.value = load;
	window.document.indici.sessionId.value = sessionId;
	window.document.indici.submit();
	}
	else
	{
	window.document.frames[1].indici.action = action;
	window.document.frames[1].indici.load.value = load;
	window.document.frames[1].indici.sessionId.value = sessionId;
	window.document.frames[1].indici.submit();
	}
}
function gomessage (action,load,sessionId,target)
{
	if (window.document.fmessage)
	{
	window.document.fmessage.action = action;
	window.document.fmessage.load.value = load;
	window.document.fmessage.sessionId.value = sessionId;
  window.document.fmessage.target = target;
	window.document.fmessage.submit();
	}
	else
	{
	window.document.frames[1].fmessage.action = action;
	window.document.frames[1].fmessage.load.value = load;
	window.document.frames[1].fmessage.sessionId.value = sessionId;
  window.document.frames[1].fmessage.target = target;
	window.document.frames[1].fmessage.submit();
	}
}
function goerror (action,load,sessionId,target)
{
	if (window.document.ferror)
	{
	window.document.ferror.action = action;
	window.document.ferror.load.value = load;
	window.document.ferror.sessionId.value = sessionId;
  window.document.ferror.target = target;
	window.document.ferror.submit();
	}
	else
	{
	window.document.frames[1].ferror.action = action;
	window.document.frames[1].ferror.load.value = load;
	window.document.frames[1].ferror.sessionId.value = sessionId;
  window.document.frames[1].ferror.target = target;
	window.document.frames[1].ferror.submit();
	}
}

function addPercCh(vValue)
{
        var a = vValue;
        a = a + '%';
        return a;
}
function checkChar(vName, vValue)
{
       var field = '';
       field = vValue;
       if (isNaN(field))
       {
          vValue = '';
          alert('Valore non numerico');
          return false;
       }
       vName.value = addPercCh(vValue);

}



function checkFields(formName,arrObjects,arrObjectsTypes,arrObjectsAlias,arrToCheck)
{


 // check consistenza strutture di input
 if(arrObjects.length != arrObjectsTypes.length ||
    arrObjectsTypes.length != arrObjectsAlias.length ||
    arrObjectsAlias.length != arrObjects.length)
 {
   alert('Errore nello script della pagina per incosistenza fra le strutture di oggetti');
   return false;
 }

 if(!checkNumericField(formName,arrObjects,arrObjectsTypes,arrObjectsAlias))
  return false;

 // loop struttura
 for(i=0;i<arrObjects.length;i++)
 {
   var currObjForm = document.forms[formName].elements[arrObjects[i]];
   var currElementType = arrObjectsTypes[i];
   var currAlias = arrObjectsAlias[i];
   var currIsToCheck = arrToCheck[i];

   if(currIsToCheck == 'Y')
   {
    switch(currElementType)
    {

       case 0 :
       case 1 :
       case 3 :
       case 4 :
        if(currObjForm.value.length == 0)
        {
            alert('Campo ' + currAlias + ' non valorizzato');
            return false;
        }
        break;

       case 2 :

        if(currObjForm.value.length == 0 || currObjForm.value == 0)
        {
            alert('Campo ' + currAlias + ' non valorizzato');
            return false;
        }

        if (isNaN(currObjForm.value))
        {
         alert ('Il campo '  + currAlias + ' deve essere numerico.');
         return false;
        }
        break;

      case 5 :
        if(currObjForm.value.length == 0)
        {
            alert('Campo ' + currAlias + ' non valorizzato');
            return false;
        }

        val = currObjForm.value;

        if ( val.indexOf(",") >= 0)
        {

          if ((val.indexOf(",")) != (val.length -3))
          {
              alert("dopo la virgola previsti 2 decimali");
              return false;
          }

          var aa = val;
          var bb = aa.replace(/[\,]/g,".");
          val = bb;


        }

        if (isNaN(val))
        {
         alert ('Il campo '  + currAlias + ' deve essere numerico.');
         return false;
        }
        break;

       default :
        break;
    }
   }
 }

 return true;
}


function codificaCheckBox(formName,elementName,elementHidden)
{

	var objForm = document.forms[formName].elements[elementName];
	var objFormHidden = document.forms[formName].elements[elementHidden];

	if(objForm.checked == true)
	{
	   objFormHidden.value = 'Y';
	}
	else
	{
	   objFormHidden.value = 'N';
	}
}


function checkNumericField(formName,arrObjects,arrObjectsTypes,arrObjectsAlias)
{


 // check consistenza strutture di input
 if(arrObjects.length != arrObjectsTypes.length ||
    arrObjectsTypes.length != arrObjectsAlias.length ||
    arrObjectsAlias.length != arrObjects.length)
 {
   alert('Errore nello script della pagina per incosistenza fra le strutture di oggetti');
   return false;
 }


 // loop struttura
 for(i=0;i<arrObjects.length;i++)
 {

   var currObjForm = document.forms[formName].elements[arrObjects[i]];
   var currElementType = arrObjectsTypes[i];
   var currAlias = arrObjectsAlias[i];
   switch(currElementType)
   {

       case 2 :
       case 5 :

        if (currObjForm.value.length == 0)
	        break;
	        
        var val = trim(currObjForm.value);
        var val = currObjForm.value;
        
        if ( val.indexOf(",") >= 0)
        {

          var aa = val;
          var bb = aa.replace(/[\,]/g,".");
          val = bb;

        }
//  Una stringa vuota '' in js vale zero se si eseguono conversioni numeriche o operazioni
//  Per evitare questo se la stringa e' vuota ci concateno un carattere

        if (val == '')
        {
           val = val + 'x';
        }
        if (isNaN(val))
        {
         alert ('Il campo '  + currAlias + ' deve essere numerico.');
         return false;
        }

       break;

      default :
       break;
   }

 }
 return true;
}


function checkLocksArray(formName,arrObjects)
{
   for(ii=0;ii<arrObjects.length;ii++)
   {
      var currCheck = document.forms[formName].elements[arrObjects[ii]];
      var sDummy = 'dummyCheck_'+arrObjects[ii];
      var currDummy = document.forms[formName].elements[sDummy];
      var trimmed = trim(currDummy.value);

      if(currCheck.checked == true && trimmed.length==0)
      {
        alert('Impossibile assegnare un valore nullo ad un lock');
        currCheck.checked = false;
        return false;
      }


      if(trimmed.toUpperCase() != 'Y' && trimmed.toUpperCase() != 'N' && trimmed.length >0)
      {
        alert('Valori consentiti Y/N');
        return false;
      }

      return true;
   }

   return true;
}

function trim(s)
{
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function checkemail(obj){
var str=obj.value
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
return (filter.test(str));
}




function lz(numero, cifre)
{
	n = String(numero);
	while (n.length<cifre) {
		n="0"+n
	}
	return n;
}

function dateFormat(data, formato)
{


	var giorni = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
	var mesi = new
        Array("Gennaio","Febbraio","marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");

	// preparo la data...  verificare di passarla corretta!
	var adesso = new Date(data);
	var anno = adesso.getFullYear();
	var mese = adesso.getMonth()+1;
	var giorno = adesso.getDate();
	var settim = adesso.getDay()
	var ore = adesso.getHours()
	var minuti = adesso.getMinutes()
	var secondi = adesso.getSeconds()

	// preparo la stringa di risposta
	var rVal = '';

	if (formato.length==0) {
// assenza del secondo parametro
		return String(adesso);
	} else {

	// inizio loop
		while (formato.length>0) {

	// verifico se c'e' qualche separatore e lo aggiungo
			while (formato.length>0 && String("ymdphnst").indexOf(formato.charAt(0).toLowerCase())<0) {
				rVal += formato.charAt(0);
				formato = formato.substr(1);
			}


	// Separo il gruppo
			if (formato.length>0) {
				ff = formato.charAt(0);
				formato = formato.substr(1);
				while (formato.length>0 && formato.charAt(0).toLowerCase()==ff.charAt(0).toLowerCase()) {
					ff += formato.charAt(0);
					formato = formato.substr(1);
				}

	// espando il formato nella stringa corrispondente
				ff = ff.toLowerCase();	 // operazione preliminare... tutto in minuscolo
				switch (ff) 	{
					case "yy" :
						rVal += String(anno).substr(2);
						break;
					case "yyyy" :
						rVal += String(anno);
						break;
					case "m" :
						rVal += String(mese);
						break;
					case "mm" :
						rVal += lz(mese,2);
						break;
					case "mmm" :
						rVal += mesi[mese-1].substr(0,3);
						break;
					case "mmmm" :
						rVal += mesi[mese-1];
						break;
					case "d" :
						rVal += String(giorno);
						break;
					case "dd" :
						rVal += lz(giorno,2);
						break;
					case "ddd" :
						rVal += giorni[settim].substr(0,3);
						break;
					case "dddd" :
						rVal += giorni[settim];
						break;
					case "p" :
						var inizio = new Date(anno, 0, 0);
						rVal += Math.floor((adesso - inizio) / 86400000);
						break;
					case "ppp" :
						var inizio = new Date(anno, 0, 0);
						rVal += lz(Math.floor((adesso - inizio) / 86400000),3);
						break;
					case "h" :
						rVal += String(ore);
						break;
					case "hh" :
						rVal += lz(ore,2);
						break;
					case "n" :
						rVal += String(minuti);
						break;
					case "nn" :
						rVal += lz(minuti,2);
						break;
					case "s" :
						rVal += String(secondi);
						break;
					case "ss" :
						rVal += lz(secondi,2);
						break;
					case "t" :
						rVal += lz(ore,2)+":"+lz(minuti,2)+":"+lz(secondi,2);
						break;
					default :  // il numero dei caratteri del formato non e' permesso
						rVal += ff.replace(/./gi,"?");
				}

			}

		} // fine loop principale

		return rVal;
	}
}

function checkFocus(target)
{
  alert(target);
  if(!target.focus)
  {
    alert('dentro if ergo false');
    target.focus();
  }
  }


function resetFields(formname)
{
 var itotdom = document.forms[formname].elements.length;
 for(i=0;i<itotdom;i++)
 {

   if(document.forms[formname].elements[i].type == 'checkbox')
   {
     document.forms[formname].elements[i].checked = false;
     var objFormHidden = document.forms[formname].elements[i+1];
     objFormHidden.value = 'N';

   }
   else
   if ( document.forms[formname].elements[i].type != 'button' &&
        document.forms[formname].elements[i].type != 'hidden') {
     document.forms[formname].elements[i].value= '';
   }
 }
}

function resetArrayFields( fieldsNameArray, formname)
{
 var iNumFields = fieldsNameArray.length;


 for(i=0; i<iNumFields; i++)
 {

   var objField = document.forms[formname].elements[ fieldsNameArray[i] ];

   if ( objField ) {

       if (objField.type == 'checkbox')
   	{
    	 objField.checked = false;
   	}
   	else
   	if ( objField.type != 'button' && objField.type != 'hidden') {
           objField.value= '';
   	}
   }
 }

}




function gocontainerDynamic (action,indexFunction,sessionId,openNewWindow) {

	var target = '_top';	
	var id = target;
	
	var arrHiddenParamName = arrHiddenParamFunctionality[ indexFunction];
  	var arrHiddenParamValue = arrHiddenValueFunctionality[ indexFunction];
		
	if(openNewWindow)
	{
		var data = new Date();		
	
	  	var d = new Date();
   		var id = ""+d.getTime();
   		   			
   		var actionPar = action;
   		   		
		if (arrHiddenParamName.length>0)
			actionPar = actionPar + "?";
			
		for (i=0; i<arrHiddenParamName.length; i++) 
	  	{	     		
	  		if (i>0)
	  			actionPar = actionPar + "&";
			actionPar = actionPar +  arrHiddenParamName[i] + "=" + arrHiddenParamValue[i];	     		
	  	}   			
   			
  		openNW(actionPar,id);
  		
 	} 
	else	
	{
	  	for (i=0; i<arrHiddenParamName.length; i++) 
	  	{
	     		var input = document.createElement('INPUT');
	     		input.type = 'hidden';
	     		input.name = arrHiddenParamName[i];
	     		input.value = arrHiddenParamValue[i];
	
	     		window.document.container.appendChild(input);
	  	}
	
	  	window.document.container.action = action;
	  	window.document.container.sessionId.value = sessionId;
	  	window.document.container.target=id;
	  	window.document.container.submit();
	}
}

function openNW(URL,id) 
{

   window.open(URL, id, 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=660,height=460,left = 212,top = 154');
   
   return id;

}


