	// browser requirement
	var ver = parseInt(navigator.appVersion);
	if (ver < 4) window.location.href = "need40.html"; 
	
	// browser sniffer
	var myBrowser = null;
	if(document.all) {
		myBrowser = "IE";
	} else if(document.layers) {
		myBrowser = "NN";
	} else if(document.getElementById) {
		myBrowser = "DOM";
	}

	function 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);
		if(!x && document.getElementById)
			x=document.getElementById(n);
		return x;
	}
	
	// extract FileName field 
  function extractFileName(url) {
		var location = String(url);
		var name = "";
	  
		if (location.lastIndexOf("/") > -1) {
			name = location.substr(location.lastIndexOf("/") + 1);
		}
	  
		if (location.lastIndexOf("\\") > -1) {
			name = location.substr(location.lastIndexOf("\\") + 1);
		}
		
		return name;
	}
		
	// extract QueryString field 
	function extractQueryString(url, name) {
		var location = String(url);
	
		if (location.indexOf("?") > -1) {
			var querystr = location.substr(location.indexOf("?") + 1);
			var fields = querystr.split("&");
			var value = "";
			
			if (fields && fields.length > 0) {
				for (i = 0; i < fields.length; ++i) {
				if (fields[i].indexOf(name) == 0) {
					if (fields[i].indexOf("=") > -1)
						value = fields[i].substr(fields[i].indexOf("=") + 1);
					}
				}
			}
		}
	
		return value;
	}
	
	function extractFileExt(filename) {
		var fileext = "";
		
		if (filename != null && filename.lastIndexOf(".") > -1) {
			fileext = filename.substr(filename.lastIndexOf(".")+1).toLowerCase();
		}
		
		return fileext;
	}
	
	function backHistory() {
		window.history.back();
		
		return true;
	}
	
	function onSubmitForm(formName) {
	 	var x = findObj(formName);
		if (x)
		 	x.submit();
		return true;
	}
		
	function focusObj(objName) {
	 	var x = findObj(objName);
		if (x)
		 	x.focus();
		return true;
	}
	
	// Cambia il backcolor dell'oggetto 'select_'+objName prendendo il valore dall'oggetto objName
	function changeColorBox(objName) {
	 	var x = findObj(objName, window.opener.document);
	 	var s = findObj('select_'+objName, window.opener.document);
		if (x && s) {
		 	s.style.backgroundColor = '#'+x.value;
		}
		return true;
	}
	
	// Funziona con la finestrella dei colori
	function pickColorBox(objName, colorValue) {
	 	var x = findObj(objName, window.opener.document);
	 	var s = findObj('select_'+objName, window.opener.document);
		if (x && s) {
		 	x.value = colorValue.substr(1);
			s.style.backgroundColor = '#'+x.value;
		}
		window.close(); 
		return true;
	}
	
	// move layer to absolute coordinates
	function moveDivLayer(layerName, xPos, yPos) {
		var layerObj = getLayer(layerName);
		if(myBrowser == "NN") {
			layerObj.scrollLeft = xPos + "px";
			layerObj.scrollTop = yPos + "px";
		} else if(myBrowser == "IE" || myBrowser == "DOM") {
			layerObj.scrollLeft = xPos + "px";
			layerObj.scrollTop = yPos + "px";
		}
	}
	
	// hide all layers
	function hideDivLayers() {
		var i=0;
		var tags=document.all.tags('div');
		for (i=0;i<tags.length;i++)
			tags[i].style.visibility = 'hidden';
	}
	
	// show div and hide the others
	function showDivLayer(layerName) {
		hideDivLayers();
		
		var d = findObj(layerName);
		d.style.visibility = 'visible';
		return true;
	}
	
	// hide div
	function hideDivLayer(layerName) {
		var d = findObj(layerName);		
		d.style.visibility = 'hidden';
		return true;
	}
	
	// show div and hide the others
	function showhideDivLayer(layerName) {
		var d = findObj(layerName);
		if (d.style.visibility == 'hidden')
			d.style.visibility = 'visible';
		else
			d.style.visibility = 'hidden';
		return true;
	}
	
	// show div and hide the others
	function showhideAllLayer(layerName) {
		var d = findObj(layerName);
		if (d.style.visibility == 'hidden') {
			hideDivLayers();
			d.style.visibility = 'visible';
		}
		else
			d.style.visibility = 'hidden';
		return true;
	}
	
	// get now date
	function getNowDate() {
		var d = new Date();
		var s = d.getFullYear()  + "-" + ((d.getMonth() + 1)<10?"0":"") + (d.getMonth() + 1) + "-" + (d.getDate()<10?"0":"") + d.getDate();
		return s;
	}	
	
	// set textbox to now date
	function setNowDate(textName) {
		var x = findObj(textName);
		
		if (x) {
			x.value = getNowDate();
		}
		
		return true;
	}	
	
	function openWindow(mypage,myname,w,h,showscroll,resizable) {
		LeftPosition = windowCenterX(window)-w/2;
		TopPosition = windowCenterY(window)-h/2;
		settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+showscroll+','+(resizable==true?'resizable':'noresizable'); 
		window.open(mypage,myname,settings).focus();
	}
	
	function confirmWindowMsg(theURL, theMSG) { //v2.0
		var risp;
		risp=confirm(theMSG);
		if (risp){
		 window.parent.location.replace(theURL);
		}
	}	
	
	function confirmWindow(theURL) { //v2.0
		confirmWindowMsg(theURL, "Si è sicuri di eseguire l'operazione?");
	}
	
	function confirmLogOut(theURL) { //v2.0
		confirmWindowMsg(theURL, "Si è sicuri di voler uscire dall'area di amministrazione?");
	}
	
	function windowCenterX(win) {
		var w = 0;
    if(myBrowser == "NN") {
      w = win.screenX+win.innerWidth/2;
    } else if(myBrowser == "IE") {
      w = win.screenLeft+win.document.body.clientWidth/2;
    } else if(myBrowser == "DOM") {
      w = win.screenX+win.innerWidth/2;
    }
		return(w);
	}
		
	function windowCenterY(win) {
		var h = 0;
    if(myBrowser == "NN") {
      h = win.screenY+win.innerHeight/2;
    } else if(myBrowser == "IE") {
      h = win.screenTop+win.document.body.clientHeight/2;
    } else if(myBrowser == "DOM") {
      h = win.screenY+win.innerHeight/2;
    }
		return(h);
	}