function gosubmit(frm){
  if (!frm) frm = 'f1';
  document.forms[frm].submit();
}
function send_ordine(frm){
  if (!frm) frm = 'f1';
  if (ControllaFormOrdine(frm)==true) document.forms[frm].submit();
}
function send_register(frm){
  if (!frm) frm = 'f1'; 
  if (ControllaFormIscriviti(frm)==true)  document.forms[frm].submit();
}
function send_register_light(frm){
  if (!frm) frm = 'f1'; 
  if (ControllaFormIscrivitiLight(frm)==true)  document.forms[frm].submit();
}
function send_iscriviti_nl_light(frm){
  if (!frm) frm = 'f1'; 
  if (ControllaFormIscrivitiNlLight(frm)==true)  document.forms[frm].submit();
}


function AddToCart(item,frm){
  if (!frm) frm = 'f1';
  document.forms[frm].elements['itemtoadd'].value = item; 

  
}
function goCartAggiorna(){
  document.forms['f1'].elements['act'].value = 'modcart';
  gosubmit('f1');
  //gotoCtrl('cart','modcart','item=$idx','val='+document.forms['f1'].elements['quantita[$idx]'].value);
}
function goCartMod(item,val){
  document.forms['f1'].elements['act'].value='modcart';
  document.forms['f1'].elements['quantita['+item+']'].value=val;
  gosubmit('f1');
}
function gotoCtrl(ctrl,act,param1,param2){
  more = '';
  if (!act) act = '';
  if (param1) more = '/'+param1;
  if (param2) more = more + '/' + param2;
  document.location='/'+ctrl+'/'+act+more;

}
function FindAndClick(form,pattern){
  //pattern = /fornitori__ROW_(\d)_seleziona/; 
  for(n=0;n<document.forms[form].elements.length;n++){
    box = document.forms[form].elements[n];
  	if (box.name.match(pattern)) box.click();

  }
}
function SetApp(idagenda,idappuntamento,data,hstart,hstop,duratamin){
  xdata  = window.parent.document.getElementById('app_data'+idappuntamento);
  xstart = window.parent.document.getElementById('app_start'+idappuntamento);
  xstop  = window.parent.document.getElementById('app_stop'+idappuntamento);
  xdata.value=data;
  xstart.value=hstart;
  xstop.value=hstop;
  setDisplayRow(window.parent.document.getElementById('rowapp'+idappuntamento),0); 
  toggleLayerDisplay(window.parent.document.getElementById('closeapp'+idappuntamento)); 
  toggleLayerDisplay(window.parent.document.getElementById('openapp'+idappuntamento));
}
function showMenu(link,elem){
    var ce = 0;
    if(elem.style.display == 'none' || elem.style.display == ''){
        elem.style.display='block';
        //document.getElementById(link).innerHTML='Chiudi Menu';
	      link.src=wwwpath+wwwskin+'/xp_butt_up.gif';
    } else {
        elem.style.display='none';
        //document.getElementById(link).innerHTML='Apri Menu';
	link.src=wwwpath+wwwskin+'/xp_butt_down.gif';
    }
}
function toggleLayerDisplay(layer,forceon){
  if (!forceon){
    if(layer.style.display == 'none' || layer.style.display == '' || !layer.style.display)
      layer.style.display='block';
    else
      layer.style.display='none';
  }else{
    if (forceon=='hidden') layer.style.display='none';
    if (forceon=='visible') layer.style.display='block';
  }
    
}
function showHour(link,elem1,elem2,elem3){
    var ce = 0;
    if(elem1.style.display == 'none' || elem1.style.display == ''){
        setDisplayRow(elem1, 1);
        setDisplayRow(elem2, 1);
        setDisplayRow(elem3, 1);
        //document.getElementById(link).innerHTML='Chiudi Menu';
	      link.src=wwwpath+wwwskin+'/xp_butt_up.gif';
    } else {
        setDisplayRow(elem1, 0);
        setDisplayRow(elem2, 0);
        setDisplayRow(elem3, 0);
        //document.getElementById(link).innerHTML='Apri Menu';
	link.src=wwwpath+wwwskin+'/xp_butt_down.gif';
    }
}
function setDisplayRow(layer, on)
	    {
	        if (on) {
	            if (DOM) {
	                if (IE)
	                    layer.style.display = "block";
	                else
	                    layer.style.display = "table-row";
	            } else {
	                layer.style.display = "block";
	            }
	        } else {
	            if (DOM) {
	                layer.style.display = "none";
	            } else {
	                layer.style.display = "none";
	            }
	        }
	    }
function SwapHourDisp(elem0,elem1,elem2,elem3){
    if(elem0.checked==true){
        elem1.checked=true;
        elem2.checked=true;
        elem3.checked=true;
    } else {
        elem1.checked=false;
        elem2.checked=false;
        elem3.checked=false;
    }
}
function SwapAllHours(base,val){
  //var elems = Array();
  var obj;
  var h;

  
  for(i=8;i<21;i++){
    h = (i<=9)?('0'+i):(i);
    //alert(base+'h'+h+'m00');
    obj = document.getElementById(base+'h'+h+'m00');
    obj.checked=val;
    obj = document.getElementById(base+'h'+h+'m15');
    obj.checked=val;
    obj = document.getElementById(base+'h'+h+'m30');
    obj.checked=val;
    obj = document.getElementById(base+'h'+h+'m45');
    obj.checked=val;            
  }
  

}

function SvuotaInputSelect(obj){

// 	if (obj.length>0)
//    for (i=(obj.length-1); i>=0; i--)
//    	obj.options[i]=null;
	while( v = obj.firstChild)
		obj.removeChild(v);

}
function SpostaSelectOptions(form,field_src,field_dst){
  source = document.forms[form].elements[field_src];
  dest   = document.forms[form].elements[field_dst];
  if(source && dest){ 
    for(i=0;i<source.length;i++){   
      if (source.options[i].selected==true){
        new_Option(form,field_dst,source.options[i].text,source.options[i].value,true,true);
      }      
    }      
  }
  //SvuotaInputSelect(source);
  DeleteSelectedOptions(source);
  
}
function MoveSelectedOptionsEsami(form,field_src,field_dst){
  //tiene conto dei raggruppamenti
  var source = document.forms[form].elements[field_src];
  var dest = document.forms[form].elements[field_dst];
  var curGroup;
  var DeleteGroups = new Array();
  var pattern = /a(\d)+e(\d)+/i;
  if(source && dest){
    var children = source.childNodes;
    for (var i = 0; i < children.length; i++){
      //memorizza l'etichetta del gruppo di appartenenza
      if (children[i].tagName=='OPTGROUP') {
        if (numGC==0) DeleteGroups.push(curGroup);
        curGroup=children[i];
        var numGC=0;
      }
      //se l'opzione è stata selezionata...
      if (children[i].tagName=='OPTION'){
        if (children[i].selected==true){
            //deve provare ad inserire il valore nell'oggetto destinatario
            //se vi sono elementi dello stesso gruppo, accoda; se non ve ne sono accoda prima il gruppo e poi l'elemento.
            var mmS = children[i].value.match(pattern);
            //cerca nel destinatario
            //<-----
            //var sons = dest.childNodes;
            flag=true;
            before=null;
            for (var j=0;j<dest.length;j++){
              //if (sons[j].tagName=='OPTGROUP' && sons[j].label==curGroup) //ho trovato il gruppo di appartenenza
               var mmD = dest.options[j].value.match(pattern);
               if (mmD[1]==mmS[1]) //ho trovato un nodo dello stesso gruppo
                var before = dest.options[j];
               if (children[i].value==dest.options[j].value) flag=false; //evita duplicati               
            }
            if (flag==true){
              //elemento
            	var optobj = document.createElement("option");    
	            var textobj = document.createTextNode(children[i].text);
              optobj.appendChild(textobj) ;
              optobj.value=children[i].value;              
              optobj.selected=true;
                optobj.style.color = '#003366';          
	            //gruppo
              var optgobj = document.createElement("optgroup");
              optgobj.label=curGroup.label;
                optgobj.style.fontStyle='normal';
                optgobj.style.color='#003366';
                optgobj.style.backgroundColor='#D6DFF7';    
              
              
              if (before)
                dest.insertBefore(optobj,before);
              else{
                dest.appendChild(optgobj);
                dest.appendChild(optobj);
              }
            
            }
            //----->   
        }else
          numGC++;
      }
    }
    if (numGC==0) DeleteGroups.push(curGroup);
  }
  DeleteSelectedOptions(source);
  for(d=0;d<DeleteGroups.length;d++)
    source.removeChild(DeleteGroups[d]);

}
function CopySelectedOptions(form,field_src,field_dst){
  source = document.forms[form].elements[field_src];
  dest   = document.forms[form].elements[field_dst];
  var e;
  if(source && dest){ 
    for(i=0;i<source.length;i++){      
      if (source.options[i].selected==true){
        e = new_Option(form,field_dst,source.options[i].text,source.options[i].value,true,false);
      }      
    }      
  }
  //SvuotaInputSelect(source);
  //DeleteSelectedOptions(source);
  
}
function DeleteOption(caller,id){
  if (caller){
    if (caller.length>0)
		  for (i=(caller.length-1); i>=0; i--)
        if (caller.options[i].value==id)
			      	caller.options[i]=null;
  }
}
function DeleteSelectedOptions(caller){
  //ad uso dei campi select (sia singoli che multipli)
  if (caller){
    if (caller.length>0)
		  for (i=(caller.length-1); i>=0; i--)
        if (caller.options[i].selected==true)
			      	caller.options[i]=null;
        }
}
function SelectAllOptions(caller){
         //ad uso del campi select
         if (caller){
           	if (caller.length>0)
		      for (i=0;i<caller.length;i++){
		      	caller.options[i].selected=true;
                //caller.options[i].fontWeight='bold';
              }
         }
}
function DeselectAllOptions(caller){
         //ad uso del campi select
         if (caller){
           	if (caller.length>0)
		      for (i=0;i<caller.length;i++)
		      	caller.options[i].selected=false;
         }
}
function new_Option(form,field,text,value,selected,permittduplicate){
  var obj = document.forms[form].elements[field];
	var optobj = document.createElement("option");
    //optobj.text=text;
	var textobj = document.createTextNode(text);
  optobj.appendChild(textobj) ;
  optobj.value=value;
  if (selected==true) optobj.selected=true;
  flag=true;
  
  if (permittduplicate==false && obj.length>0){            
      for (j=0;j<obj.length;j++)
        	if (obj.options[j].value==value){
             	flag=false;
              break;
          }
  }
  if (flag==true){        
    obj.appendChild(optobj);
    return true;
  }else return false;
//    caller = document.forms[form].elements[field];
//    caller.options[caller.length] = new Option(text,value);
//	            if (selected==true) caller.options[caller.length-1].selected = true;

}
function new_OptGroup(form,field,label){
	  var optobj = document.createElement("optgroup");
    optobj.label=label;
    document.forms[form].elements[field].appendChild(optobj);
}

function PopUpWin_scr(pageurl,pagename,width,height)
{
	  if (width==0 || width>screen.availWidth) width=screen.availWidth-150;
    if (height==0 || height>screen.availHeight) height=screen.availHeight-250;
    var left = (screen.availWidth - width)/2;
    var top = (screen.availHeight - height)/2;
  var winpopup;
	winpopup = open(pageurl,pagename,"location=0,status=0,toolbar=0,directories=0,menubar=0,scrollbars=1,resizable=0,width="+width+",height="+height+",left="+left+",top="+top);
	return winpopup;
}
        function FiltraNumeri(e){
        //da chiamare onkeypress
        //45,109=-
        //46=. e canc
        //8=backspace
        //9=tab
		    //110,190=.
		    //35,36 = inizio,fine
        //37,38,39,40=frecce
        //numeri dal 48 al 57
        //39 = ' ==>(bug)
         if (e.which){
         	if (e.which!=219 && (e.which==45 || e.which==46 || e.which==8 || e.which==9 || e.which==0 || (e.which>=48 && e.which<=57) || e.which==13 || e.which==37 || e.which==38 || e.which==39 || e.which==40 || e.which==109 || e.which==110 || e.which==190))
            	return 1;
            else
            	return 0;
         }else{
         	if (e.keyCode!=219 && (e.keyCode==45 || e.keyCode==46 || e.keyCode==8 || e.keyCode==9 || e.keyCode==0 || (e.keyCode>=48 && e.keyCode<=57) || e.keyCode==13 || e.keyCode==37 || e.keyCode==38 || e.keyCode==39 || e.keyCode==40 || e.keyCode==109 || e.keyCode==110 || e.keyCode==190))
            	return 1;
            else
            	return 0;
         }
        }
        
        //per Numeri naturali (interi e >0)
        function FiltraNumeriN(e){
        //da chiamare onkeypress
        //45,109=-
        //46=. e canc
        //8=backspace
        //9=tab
		    //110,190=.
		    //35,36 = inizio,fine
        //37,38,39,40=frecce
        //numeri dal 48 al 57
        //39 = ' ==>(bug)
         if (e.which){
          //alert(e.which);
         	if (e.which==8 || e.which==9 || e.which==0 || (e.which>=48 && e.which<=57) || e.which==13 || e.which==35 || e.which==36 || e.which==37 || e.which==38 ||  e.which==40 )
            	return 1;
            else
            	return 0;
         }else{
          //alert(e.keyCode);
         	if (e.keyCode==8 || e.keyCode==9 || e.keyCode==0 || (e.keyCode>=48 && e.keyCode<=57) || e.keyCode==13 || e.keyCode==35 || e.keyCode==36 || e.keyCode==37 || e.keyCode==38 || e.keyCode==40 )
            	return 1;
            else
            	return 0;
         }
        }
        
        //per numeri Naturali Relativi (interi e >0 o <0)
        function FiltraNumeriNZ(e){
        //da chiamare onkeypress
        //45,109=-
        //46=. e canc
        //8=backspace
        //9=tab
		    //110,190=.
		    //35,36 = inizio,fine
        //37,38,39,40=frecce
        //numeri dal 48 al 57
        //39 = ' ==>(bug)
         if (e.which){
          //alert(e.which);
         	if (e.which==109 ||e.which==45 || e.which==8 || e.which==9 || e.which==0 || (e.which>=48 && e.which<=57) || e.which==13 || e.which==35 || e.which==36 || e.which==37 || e.which==38 ||  e.which==40 )
            	return 1;
            else
            	return 0;
         }else{
          //alert(e.keyCode);
         	if (e.keyCode==109 || e.keyCode==45 || e.keyCode==8 || e.keyCode==9 || e.keyCode==0 || (e.keyCode>=48 && e.keyCode<=57) || e.keyCode==13 || e.keyCode==35 || e.keyCode==36 || e.keyCode==37 || e.keyCode==38 || e.keyCode==40 )
            	return 1;
            else
            	return 0;
         }
        }
        
        //per numeri reali (quindi frazionari >0)
        function FiltraNumeriR(e){
        //da chiamare onkeypress
        //45,109=-
        //46=. e canc
        //8=backspace
        //9=tab
		    //110,190=.
		    //35,36 = inizio,fine
        //37,38,39,40=frecce
        //numeri dal 48 al 57
        //39 = ' ==>(bug)
         if (e.which){
          //alert(e.which);
         	if (e.which==46 || e.which==110 ||e.which==190 || e.which==8 || e.which==9 || e.which==0 || (e.which>=48 && e.which<=57) || e.which==13 || e.which==35 || e.which==36 || e.which==37 || e.which==38 ||  e.which==40 )
            	return 1;
            else
            	return 0;
         }else{
          //alert(e.keyCode);
         	if (e.keyCode==46 || e.keyCode==110 || e.keyCode==190 || e.keyCode==8 || e.keyCode==9 || e.keyCode==0 || (e.keyCode>=48 && e.keyCode<=57) || e.keyCode==13 || e.keyCode==35 || e.keyCode==36 || e.keyCode==37 || e.keyCode==38 || e.keyCode==40 )
            	return 1;
            else
            	return 0;
         }
        }
        
        //per numeri reali realtivi (quindi frazionari >0 o <0)
        function FiltraNumeriRZ(e){
        //da chiamare onkeypress
        //45,109=-
        //46=. e canc
        //8=backspace
        //9=tab
		    //110,190=.
		    //35,36 = inizio,fine
        //37,38,39,40=frecce
        //numeri dal 48 al 57
        //39 = ' ==>(bug)
         if (e.which){
          //alert(e.which);
         	if (e.which==46 ||e.which==110 ||e.which==190 || e.which==109 ||e.which==45 || e.which==8 || e.which==9 || e.which==0 || (e.which>=48 && e.which<=57) || e.which==13 || e.which==35 || e.which==36 || e.which==37 || e.which==38 ||  e.which==40 )
            	return 1;
            else
            	return 0;
         }else{
          //alert(e.keyCode);
         	if (e.keyCode==46 || e.keyCode==110 || e.keyCode==190 || e.keyCode==109 || e.keyCode==45 || e.keyCode==8 || e.keyCode==9 || e.keyCode==0 || (e.keyCode>=48 && e.keyCode<=57) || e.keyCode==13 || e.keyCode==35 || e.keyCode==36 || e.keyCode==37 || e.keyCode==38 || e.keyCode==40 )
            	return 1;
            else
            	return 0;
         }
        }

function trim(str) {
  return str.replace(/^\s*|\s*$/g,"");
}
function prepareLegendPlus(thisObj,toCase,firstTimeout,x,y,firstText,myaxIDMOD,myaxACT,myaxP1,myaxP2,myaxP3,myaxP4,myaxP5){
    if(toCase=='upper') thisObj.value=thisObj.value.toUpperCase();
    if(toCase=='lower') thisObj.value=thisObj.value.toLowerCase(); 
    if (timerIDlegendplus) clearTimeout(timerIDlegendplus); 
    timerIDlegendplus = setTimeout(function () {toggleLayerDisplay(document.getElementById('legendplus'));}, firstTimeout);
    showToolTipPlus(thisObj,document.getElementById('legendplus'),x,y,firstText); 
    myax(myaxIDMOD,'raw-rewrite-intolayer',myaxACT,'','legendplus',myaxP1,myaxP2,myaxP3,myaxP4,myaxP5);
}
function showToolTipPlus(box,layer,offsetX,offsetY,text){	
		layer.style.display  = "block";
		var br = getAbsolutePos(box);
		//inserisce l'html nel layer (così da farlo dimensionare)
    layer.innerHTML = text;
		var x = br.x + offsetX
		if (x<0) x = 0;
		var y = br.y + offsetY;	

		showAt(layer,x, y);
		
}
function showToolTip(box,layer,text){	
		layer.style.display  = "block";
		var br = getAbsolutePos(box);
		//inserisce l'html nel layer (così da farlo dimensionare)
    layer.innerHTML = text;
    //ora è possibile ottenere la larghezza del layer
		var x = br.x - layer.offsetWidth;
		if (x<0) x = 0;
		var y = br.y;	

		showAt(layer,x, y);
}
function showAt(el,x, y) {	
	el.style.left = x + "px";
	el.style.top = y + "px";
	el.style.display = 'block';
};
function getAbsolutePos(el) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};

function LayerFixPosition(box) {
		if (box.x < 0)
			box.x = 0;
		if (box.y < 0)
			box.y = 0;
    var cp = document.createElement("div");
		var s = cp.style;
		s.position = "absolute";
		s.right = s.bottom = s.width = s.height = "0px";	
    document.body.appendChild(cp);
		var br = getAbsolutePos(cp);
		document.body.removeChild(cp);
		if (( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) )) {
			br.y += document.body.scrollTop;
			br.x += document.body.scrollLeft;
		} else {
			br.y += window.scrollY;
			br.x += window.scrollX;
		}
		var tmp = box.x + box.width - br.x;
		if (tmp > 0) box.x -= tmp;
		tmp = box.y + box.height - br.y;
		if (tmp > 0) box.y -= tmp;
};
function calday_select(curobj){
    if (last_calday){
      if (!last_caldaycss) last_caldaycss = null;
      last_calday.className = last_caldaycss;
      
    }
    last_calday = curobj;
    last_caldaycss = last_calday.className;
    last_calday.className='calendario_current';
  
}

/* 
funzioni personalizzate per MYAX
*/
function getHTTPObject() {
  if (typeof XMLHttpRequest != 'undefined') return new XMLHttpRequest(); 
  try {return new ActiveXObject("Msxml2.XMLHTTP");} 
  catch (e) { 
    try {return new ActiveXObject("Microsoft.XMLHTTP");} 
    catch (e) { 
      if (window.createRequest){
        try {return window.createRequest();}
        catch (e){}
      }
    } 
  } 
  return false; 
} 
function sendHTTPRequest(method,url,param,callback,xml){
          var xmlhttp = getHTTPObject();
          if (method=='POST'){
            var params = param;
            xmlhttp.open("POST", url,true);            
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.setRequestHeader("Content-length", params.length);
            xmlhttp.setRequestHeader("Connection", "close");
          }else{
            var params;            
            xmlhttp.open("GET", url + '&'+param,true);            
          }         
         xmlhttp.onreadystatechange=function (){
            if (xmlhttp.readyState==4 && xmlhttp.status==200) 
              if (xml) var response = callback(xmlhttp.responseXML);
              else var response = callback(xmlhttp.responseText);
        
         }
        
         xmlhttp.send(params)   
}
function myax(ctrl,type,action,form,field,param1,param2,param3,param4,param5){
  //effettua richiesta al server
    var url = wwwpath + "/";
    var base = "myax/"+ctrl;
    var params = "act="+action+"&param1="+param1+"&param2="+param2+"&param3="+param3+"&param4="+param4+"&param5="+param5;
    var xml = true;
    if (type=='raw-rewrite-into' || type=='raw-rewrite-intolayer' || type=='javaexec') xml =false;
    var callback=function(XMLData) {
        switch(type){
          case 'dinamic-selectbox':
            SvuotaInputSelect(document.forms[form].elements[field]);
            myax_dinselectbox(form,field,XMLData,param2);
            break;
          case 'dinamic-tree-selectbox':
            SvuotaInputSelect(document.forms[form].elements[field]);
            myax_dintreeselectbox(form,field,XMLData,param2);
            break;
          case 'raw-rewrite-into': //invia richiesta, riceve resposto di testo e lo riscrive dentro un oggetto
            myax_ObjReWrite(field,XMLData,false);
            break;
          case 'raw-rewrite-intolayer': //invia richiesta, riceve resposto di testo e lo riscrive dentro un oggetto
            myax_ObjReWrite(field,XMLData,true);
            break;    
          case 'javaexec': //riceve ed esegue semplici istruzioni javascript
            myax_JavaExec(XMLData);
            break; 
          case 'inputboxvalue':
            myax_inputbox(form,field,XMLData,param3);
            break;                      
          //CASISTICHE RESPONSI-RISCRITTURE          
          case 'raw-rewrite-fromxml':
            myax_ReWriteFromXml(XMLData);
            break;              
            

        }
    } 
    sendHTTPRequest('POST',url + base,params,callback,xml); 
}
function myax_JavaExec(htmlscript){
  if (htmlscript) eval(htmlscript);
}
function myax_ObjReWrite(ObjID,html,islayer){
 //ricerca l'oggetto dall'ID
 var element = window.document.getElementById(ObjID);
 //svuotalo
  if (islayer) {
    element.innerHTML = html;
    
  }else{
 //riscrivi testo ricevuto
    html = typeof html == 'undefined' ? '' : html.toString();
    if (element.outerHTML) {
      //ie => l'html viene renderizzato      
      element.outerHTML = html.stripScripts();
    } else {
      //ff=> l'html non viene renderizzato
      var range = element.ownerDocument.createRange();
      range.selectNodeContents(element);
      element.parentNode.replaceChild( range.createContextualFragment(html.stripScripts()), element );
    }
  }
}
function myax_ReWriteFromXml(xmlDocument){
  
  var Response = xmlDocument.documentElement;
  if (Response.nodeName=="Responses"){
    //estrae tutti i nodi Params
    var Rows = Response.getElementsByTagName('Row');
    var c_cod;    
    for (i=0;i<Rows.length;i++){      
      var Param = Rows[i].getElementsByTagName('param');      
      for(j=0;j<Param.length;j++){
        var o_id;
        var o_label;
        var o_codice;
        var tmp = null;
        //output(Param[j].getAttribute('type') + ' => ' + Param[j].textContent);
        tmp = Param[j].text;
      	if (IE) tmp = Param[j].text;
      	if (SAFARI) tmp = Param[j].firstChild.nodeValue;
      	//if (KONQUEROR) tmp = Param[j].nodeValue;
      	if (OPERA) tmp = Param[j].text;
      	if (FF) tmp = Param[j].textContent;        
        //output(Param[j].getAttribute('type') + ' => ' + Param[j].textContent);
        switch (Param[j].getAttribute('type')){
          case 'id':     var o_id    = tmp; break;
          case 'codice': var o_codice= tmp; break;
          case 'label':  var o_label = tmp; break;
          
        }
      }
      //riscrive l'oggetto layer
      //per riscrivere un layer utilizza : myax_ObjReWrite(idlayer,html,true);
      myax_ObjReWrite(o_id,o_label, ((o_codice=='layer')?(true):(false)) );              
    }
        
  }
    
}
function myax_inputbox(form,field,xmlDocument,predefval){
 //ricerca l'oggetto destinatario 
 var element = document.forms[form].elements[field];
 //sostituisci valore
 element.value = ((xmlDocument=='' && predefval)?(predefval):(xmlDocument));

}
function myax_dinselectbox(form,field,xmlDocument,value){
  
  var Response = xmlDocument.documentElement;
  if (Response.nodeName=="Responses"){
    //estrae tutti i nodi Params
    var Rows = Response.getElementsByTagName('Row');
    //var c_cod;    
    for (i=0;i<Rows.length;i++){      
      var Param = Rows[i].getElementsByTagName('param');      
      for(j=0;j<Param.length;j++){
        
        var o_id;
        var o_label;
        var o_codice;
        var o_scodice;
        var tmp = null;
        //output(Param[j].getAttribute('type') + ' => ' + Param[j].textContent);
        tmp = Param[j].text;
      	if (IE) tmp = Param[j].text;
      	if (SAFARI) tmp = Param[j].firstChild.nodeValue;
      	//if (KONQUEROR) tmp = Param[j].nodeValue;
      	if (OPERA) tmp = Param[j].text;
      	if (FF) tmp = Param[j].textContent;

        switch (Param[j].getAttribute('type')){
          case 'id':      var o_id      = tmp; break;
          case 'label':   var o_label   = tmp; break;
          case 'codice':  var o_codice  = tmp; break;
          case 'supercodice': var o_scodice = tmp; break;
        }
      }
      //if (o_codice!=c_cod) new_OptGroup(form,field,o_codice);
      //c_cod=o_codice;
      //inserisce la voce

      new_Option(form,field,o_label,o_id);        
    }
        
  }

}
function myax_dintreeselectbox(form,field,xmlDocument,value){
  
  var Response = xmlDocument.documentElement;
  if (Response.nodeName=="Responses"){
    //estrae tutti i nodi Params
    var Rows = Response.getElementsByTagName('Row');
    var c_cod;    
    for (i=0;i<Rows.length;i++){      
      var Param = Rows[i].getElementsByTagName('param');      
      for(j=0;j<Param.length;j++){
        var o_id;
        var o_label;
        var o_codice;
        var tmp = null;
        //output(Param[j].getAttribute('type') + ' => ' + Param[j].textContent);
        tmp = Param[j].text;
      	if (IE) tmp = Param[j].text;
      	if (SAFARI) tmp = Param[j].firstChild.nodeValue;
      	//if (KONQUEROR) tmp = Param[j].nodeValue;
      	if (OPERA) tmp = Param[j].text;
      	if (FF) tmp = Param[j].textContent;        
        //output(Param[j].getAttribute('type') + ' => ' + Param[j].textContent);
        switch (Param[j].getAttribute('type')){
          case 'id':     var o_id    = tmp; break;
          case 'label':  var o_label = tmp; break;
          case 'codice': var o_codice= tmp; break;
        }
      }
      if (o_codice!=c_cod) new_OptGroup(form,field,o_codice);
      c_cod=o_codice;
      //inserisce la voce
      new_Option(form,field,o_label,o_id);        
    }
        
  }

}

function checkform(form){
   var ret=1;
   var rel=null;
   var name;
   var src;
   var app;
   var error = [];

   for(i=0;i<form.elements.length;i++){             
     //-----begin     
     rel = null;     
     src = form.elements[i];
     name = src.name;
  
     for(j=0;j<src.attributes.length;j++) {
      if(src.attributes[j].name=='rel') rel=src.attributes[j].value;
      if(src.attributes[j].name=='alt') name=src.attributes[j].value;
     }

     if (rel=='notnull')     
     switch(src.type){
       case 'text':
       case 'textarea': if (!src.value) {ret=0; error[error.length] = name;} 
              break;
       case 'select-multiple':
       case 'select-one':
       case 'select':
              app=0;
              for(k=0;k<src.options.length;k++) if (src.options[k].selected==true && src.options[k].value!='') app++;
              if (app==0) {ret=0; error[error.length] = name;}
              break;
       default: alert(src.type);
     }     


     //-----end
  }
  if (ret==0){
    var msg = "I seguenti campi non sono stati compilati correttamente:";
	  var i = 0;
    for (i=0; i<error.length; i++) {
      msg += "\n- " + error[i];
    }
    alert(msg);
    return false;
  }else
    return true;
}

function verifyCodiceFiscale(szCodFisc)
{
 var nTempNum;
 var nAppoNum;
 var i;
 var szTempCodFisc;
 var szLastChar;
 var szValued;
 var szInValued;
 
 if (szCodFisc.length<16) return false
 if (szCodFisc == "") return false;
 else {
  szCodFisc =szCodFisc.toUpperCase();
  szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
  szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
  nTempNum = 0;
  i = 0;
 
  while (true) {
   szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
   // I DISPARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
   if (i>15)
    break;
   szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
   // I PARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
  }
  nTempNum = nTempNum % 26; //mod
  szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  szValued= szValued.substr(nTempNum, 1);
  if (szValued==szLastChar) return true;
  else return false;
 }
}
function verifyPartitaIva(partitaiva){
  // normalizziamo la cifra
  while (partitaiva.length<11) { partitaiva = '0'+partitaiva; }    
  //valuta se contiene solo 11 caratteri numerici
  if (!partitaiva.match('^([0-9]{11})$')) return false;
    
  var somma = 0;
  var ListaPari = new Array ();
  ListaPari[0] = 0;
  ListaPari[1] = 2;
  ListaPari[2] = 4;
  ListaPari[3] = 6;
  ListaPari[4] = 8;
  ListaPari[5] = 1;
  ListaPari[6] = 3;
  ListaPari[7] = 5;
  ListaPari[8] = 7;
  ListaPari[9] = 9;
  var s ='';
  for (k=0; k<11;k++){
    s = partitaiva.substr(k,1);
    i = parseInt(s); 
    if (k % 2 == 1) 
      x = ListaPari[i];
    else 
      x = i;
    somma += x;      
  }
  return ((somma % 10 == 0) && (somma != 0));   
  
}
function verifyEmail(email){
  //return email.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)*(\.[a-z]{2,3})$');
  return email.match('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,3})$');
}
function ControllaFormIscrivitiNlLight(frm){
  form = document.forms[frm];
  var error = [];
  var ret=1;
  
  if (form.elements['username'].value=='' || !verifyEmail(form.elements['username'].value)) {ret=0; error[error.length] = 'Indirizzo EMAIL errato o non presente.';}
  
  if (form.elements['nome'].value=='')      {ret=0; error[error.length] = 'NOME non specificato.';}
  if (form.elements['cognome'].value=='')   {ret=0; error[error.length] = 'COGNOME non specificato.';}
  if (form.elements['privacy'].checked == false) {ret=0; error[error.length] = 'Non hai acconsentito al trattamento dei dati personali.';}
  
  if (ret==0){
    var msg = "I seguenti campi non sono stati compilati correttamente:";
	  var i = 0;
    for (i=0; i<error.length; i++) {
      msg += "\n- " + error[i];
    }
    alert(msg);
    return false;
  }else
    return true;  
  
}
function ControllaFormIscrivitiLight(frm){
  form = document.forms[frm];
  var error = [];
  var ret=1;
  
  if (form.elements['username'].value=='' || !verifyEmail(form.elements['username'].value)) {ret=0; error[error.length] = 'Indirizzo EMAIL errato o non presente.';}
  if (form.elements['password1'].value=='') {ret=0; error[error.length] = 'PASSWORD non specificata.';  }
  if (form.elements['password1'].value!=form.elements['password2'].value) {ret=0; error[error.length] = 'Password di conferma sbagliata.';}
  
/*
  var children = form.elements['tipo'];
  //for (var i = 0; i < children.length; i++){ alert(children[i].value); }  
  if (children[0].checked==false && children[1].checked==false) {ret=0; error[error.length] =  'TIPOLOGIA UTENTE non specificata.';}
  
  if (children[0].checked==true){
    //è il caso dell'utente privato => cnotrollare codice-fiscale
    if (form.elements['nazione'].value=='101' && (form.elements['codicefiscale'].value=='' || !verifyCodiceFiscale(form.elements['codicefiscale'].value))) {ret=0; error[error.length] = 'CODICE FISCALE errato o non presente.';}  
  }
  if (children[1].checked==true){
    //è caso dell'impresa => controlla ragsoc e piva
    if (form.elements['ragsoc'].value=='') {ret=0; error[error.length] = 'RAGIONE SOCIALE non specificata.';}
    if (form.elements['nazione'].value=='101' && (form.elements['partitaiva'].value=='' || !verifyPartitaIva(form.elements['partitaiva'].value) )) {ret=0; error[error.length] = 'PARTITA IVA errata o non specificata.';}
  }
  */
  if (form.elements['nome'].value=='')      {ret=0; error[error.length] = 'NOME non specificato.';}
  if (form.elements['cognome'].value=='')   {ret=0; error[error.length] = 'COGNOME non specificato.';}
/*
  if (form.elements['indirizzo'].value=='') {ret=0; error[error.length] = 'INDIRIZZO non specificato.';}
  if (form.elements['comune'].value=='')    {ret=0; error[error.length] = 'CITTA non specificata.';}
  if (form.elements['nazione'].value=='101' && (form.elements['cap'].value=='' || !form.elements['cap'].value.match('^([0-9]{5})$')) )      {ret=0; error[error.length] = 'CAP non specificato.';}
  if (form.elements['nazione'].value=='101' && form.elements['provincia'].value=='') {ret=0; error[error.length] = 'PROVINCIA non specificata';}
  if (form.elements['nazione'].value=='')   {ret=0; error[error.length] = 'NAZIONE non specificata.';}
*/  
  if (form.elements['privacy'].checked == false) {ret=0; error[error.length] = 'Non hai acconsentito al trattamento dei dati personali.';}
  
  if (ret==0){
    var msg = "I seguenti campi non sono stati compilati correttamente:";
	  var i = 0;
    for (i=0; i<error.length; i++) {
      msg += "\n- " + error[i];
    }
    alert(msg);
    return false;
  }else
    return true;  
  
}
function ControllaFormIscriviti(frm){
  form = document.forms[frm];
  var error = [];
  var ret=1;
  
  if (form.elements['username'].value=='' || !verifyEmail(form.elements['username'].value)) {ret=0; error[error.length] = 'Indirizzo EMAIL errato o non presente.';}
  if (form.elements['password1'].value=='') {ret=0; error[error.length] = 'PASSWORD non specificata.';  }
  if (form.elements['password1'].value!=form.elements['password2'].value) {ret=0; error[error.length] = 'Password di conferma sbagliata.';}
  
  var children = form.elements['tipo'];
  //for (var i = 0; i < children.length; i++){ alert(children[i].value); }  
  if (children[0].checked==false && children[1].checked==false) {ret=0; error[error.length] =  'TIPOLOGIA UTENTE non specificata.';}
  
  if (children[0].checked==true){
    //è il caso dell'utente privato => cnotrollare codice-fiscale
    if (form.elements['nazione'].value=='101' && (form.elements['codicefiscale'].value=='' || !verifyCodiceFiscale(form.elements['codicefiscale'].value))) {ret=0; error[error.length] = 'CODICE FISCALE errato o non presente.';}  
  }
  if (children[1].checked==true){
    //è caso dell'impresa => controlla ragsoc e piva
    if (form.elements['ragsoc'].value=='') {ret=0; error[error.length] = 'RAGIONE SOCIALE non specificata.';}
    if (form.elements['nazione'].value=='101' && (form.elements['partitaiva'].value=='' || !verifyPartitaIva(form.elements['partitaiva'].value) )) {ret=0; error[error.length] = 'PARTITA IVA errata o non specificata.';}
  }
  if (form.elements['nome'].value=='')      {ret=0; error[error.length] = 'NOME non specificato.';}
  if (form.elements['cognome'].value=='')   {ret=0; error[error.length] = 'COGNOME non specificato.';}
  if (form.elements['indirizzo'].value=='') {ret=0; error[error.length] = 'INDIRIZZO non specificato.';}
  if (form.elements['comune'].value=='')    {ret=0; error[error.length] = 'CITTA non specificata.';}
  if (form.elements['nazione'].value=='101' && (form.elements['cap'].value=='' || !form.elements['cap'].value.match('^([0-9]{5})$')) )      {ret=0; error[error.length] = 'CAP non specificato.';}
  if (form.elements['nazione'].value=='101' && form.elements['provincia'].value=='') {ret=0; error[error.length] = 'PROVINCIA non specificata';}
  if (form.elements['nazione'].value=='')   {ret=0; error[error.length] = 'NAZIONE non specificata.';}
  
  if (form.elements['privacy'].checked == false) {ret=0; error[error.length] = 'Non hai acconsentito al trattamento dei dati personali.';}
  
  if (ret==0){
    var msg = "I seguenti campi non sono stati compilati correttamente:";
	  var i = 0;
    for (i=0; i<error.length; i++) {
      msg += "\n- " + error[i];
    }
    alert(msg);
    return false;
  }else
    return true;  
  
}
function ControllaFormOrdine(frm){
  form = document.forms[frm];
  var error = [];
  var ret=1;
  
  
  //se la spedizione è richiesta => controlla i campi di spedizione
  if (form.elements['spedizione'].value=='1'){
  
    if (form.elements['spe_denominazione'].value=='') {ret=0; error[error.length] = 'DESTINATARIO non specificato.';}    
    if (form.elements['spe_indirizzo'].value=='') {ret=0; error[error.length] = 'INDIRIZZO non specificato.';}
    if (form.elements['spe_comune'].value=='')    {ret=0; error[error.length] = 'CITTA non specificata.';}
    if (form.elements['spe_nazione'].value=='101' && (form.elements['spe_cap'].value=='' || !form.elements['spe_cap'].value.match('^([0-9]{5})$')) )      {ret=0; error[error.length] = 'CAP errato o non specificato.';}
    if (form.elements['spe_nazione'].value=='101' && form.elements['spe_provincia'].value=='') {ret=0; error[error.length] = 'PROVINCIA non specificata';}
    if (form.elements['spe_nazione'].value=='')   {ret=0; error[error.length] = 'NAZIONE non specificata.';}
    
  
  }
  if(form.elements['acceptedlegal'].checked==false) ret=0; error[error.length] = 'Richiesta accettazione delle condizioni di utilizzo.';
  //altrimenti se non c'è spedizione, concludi l'ordine!       
  if (ret==0){
    var msg = "I seguenti campi non sono stati compilati correttamente:";
	  var i = 0;
    for (i=0; i<error.length; i++) {
      msg += "\n- " + error[i];
    }
    alert(msg);
    return false;
  }else
    return true;  
  
}
function getDateDiff(input1,input2,diff,human){
  //riceve una data in formato umano o sql

  if (human){
    datastring = document.getElementById(input1).value;
    
    var YYYY = datastring.substr(6,4);
    var MM   = datastring.substr(3,2);
    var DD   = datastring.substr(0,2);
    var HH   = datastring.substr(11,2);
    var II   = datastring.substr(14,2);
    data1 = new Date(YYYY,MM,DD,HH,II);

    datastring = document.getElementById(input2).value;
    
    var YYYY = datastring.substr(6,4);
    var MM   = datastring.substr(3,2);
    var DD   = datastring.substr(0,2);
    var HH   = datastring.substr(11,2);
    var II   = datastring.substr(14,2);
    data2 = new Date(YYYY,MM,DD,HH,II); 
       
  }else{
    datastring = document.getElementById(input1).value;
    var YYYY = datastring.substr(0,4);
    var MM   = datastring.substr(3,2);
    var DD   = datastring.substr(6,2);
    var HH   = datastring.substr(11,2);
    var II   = datastring.substr(14,2);
    data1 = new Date(YYYY,MM,DD,HH,II);    
    
    datastring = document.getElementById(input2).value;
    var YYYY = datastring.substr(0,4);
    var MM   = datastring.substr(3,2);
    var DD   = datastring.substr(6,2);
    var HH   = datastring.substr(11,2);
    var II   = datastring.substr(14,2);
    data2 = new Date(YYYY,MM,DD,HH,II);    
  
  }
  if (diff=='minutes') div=60;
  else div=1;
  
  
  return (data2-data1)/1000/div;
  

}
/*
 variabili globali
*/
var last_calday;
var last_caldaycss='';
var DOM = (document.getElementById) ? 1 : 0;
var NS4 = (document.layers) ? 1 : 0;
var IE = (navigator.userAgent.indexOf('MSIE') > -1) ? 1 : 0;
var FF = (navigator.userAgent.indexOf('Gecko') > -1) ? 1 : 0;
var SAFARI = (navigator.userAgent.indexOf('Safari') > -1) ? 1 : 0;
var KONQUEROR = (navigator.userAgent.indexOf('Konqueror') > -1) ? 1 : 0;
var OPERA = (navigator.userAgent.indexOf('Opera') > -1) ? 1 : 0;
var wwwpath = '';
var wwwskin = '/_skin';
var MF_Values = new Array();

