// Code by Andrea Moi (IUX) - Mind srl - http://wwmind.com 

// COMMON JS CODE FOR FORM

var InternetExplorer=navigator.appName.indexOf("Microsoft")!=-1;
var NetscapeNavigator=navigator.appName.indexOf("Netscape")!=-1;
var browserVer=parseInt(navigator.appVersion);
var Win=navigator.userAgent.indexOf("Win")!=-1;	
var	NS4=(typeof document.layers!="undefined")?1:0;
var Gecko=navigator.userAgent.indexOf("Gecko")!=-1;
var Safari=navigator.userAgent.indexOf("Safari")!=-1;
var Opera=navigator.userAgent.indexOf("Opera")!=-1;
var	IE=((typeof document.all!="undefined") && (browserVer >= 4))?1:0;


// controllo per oggetto null o undefined
function isNull(v) 		{ return (typeof(v)=="undefined"||v==null); }

// get element by ID (with browser check)
function getObj(objID) 	{ return (!document.getElementById?null:document.getElementById(objID));	}

// show and hide DIV
function alternateShow(divObjToShow,divObjToHide) {
	if (!isNull(divObjToHide)&&!isNull(divObjToHide.style)) {		// hide
		divObjToHide.style.display="none";
		if (Opera)		divObjToHide.style.visibility="hidden";		// aggiro baco background menu di Opera
	}
	if (!isNull(divObjToShow)&&!isNull(divObjToShow.style)) {		// show
		divObjToShow.style.display="block";
		if (Opera)		divObjToShow.style.visibility="visible";	// aggiro baco background menu di Opera
	}
}

// show or hide a object
function switchBoxObj(obj,show)	{
	if (isNull(obj))	return;
	obj.style.display=(show?"block":"none");
	if (Opera)	obj.style.visibility=(show?"visible":"hidden");		// aggiro baco background menu di Opera
}

// show or hide a object (by name)
function switchBox(objName,show)	{	switchBoxObj(getObj(objName),show);		}

// check a object visibility
function isVisible(obj)				{ 	return (!isNull(obj)&&obj.style.display!="hidden"&&obj.style.display!="none");	}

// toggle a object
function toggleObj(obj)				{	switchBoxObj(obj,!isVisible(obj)); }



//check for number
function validNum(val) { 
	if (browserVer>=4)		return !isNaN(parseInt(val));
	return true;
}

//check number field
function checkNum(obj,minlen,maxlen,str,dec,obblig) { 
	
	var len=obj.value.length;

	if (len==0&&!obblig)	return true;
	
	if (len<=0)	{	
		alert("Devi inserire un valore nel campo '"+str+"'.");
		obj.focus();    	return false;  	}
	
	// NO DECIMAL
	if (!dec && (obj.value.indexOf(",")!=-1 || obj.value.indexOf(".")!=-1))	{	
		alert("Utilizzare solo numeri interi nel campo '"+str+"'.");
		obj.focus();    	return false;  	}

	// CHECK DECIMAL POINT
	if (dec && obj.value.indexOf(",")!=-1)	{	
		alert("Utilizzare il punto (.) per separare i decimali nel campo '"+str+"'.");
		obj.focus();    	return false;  	}

	if (!validNum(obj.value)) {	
		alert("Inserire solo valori numerici nel campo '"+str+"'.");
		obj.focus();    	return false;  	}

	if (obj.value<minlen)	{	
		alert("Il valore minimo per il campo '"+str+"' e' "+minlen+".");
		obj.focus();    	return false;  	}

	if (obj.value>maxlen)	{	
		alert("Il valore massimo per il campo '"+str+"' e' "+maxlen+".");
		obj.focus();    	return false;  	}

	return true;
}

// check string lenght
function checkLength(obj,maxlen,str) {
	var len=obj.value.length;
	if (len>maxlen) {
		alert("Il campo '"+str+"' e' troppo lungo.\nCi sono "+(len-maxlen)+" caratteri in eccesso.");
		obj.focus();    	
		return false;
	}
	return true;
}


// check string min lenght
function checkMinLength(obj,minlen,str) {
	if (obj.value.length<minlen) {
		alert("E' necessario completare il campo '"+str+"'\n(minimo "+minlen+" caratteri).");
		obj.focus();    	
		return false;
	}
	return true;
}


// check email format
function checkMail (obj,nome,obblig) {
	
	var val=obj.value;
	
	if (obblig&&val.length<6) {		
		alert("L'email "+nome+" e' troppo corta\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;	}

	if (!obblig&&val=="")	return true;
	
	if (val.length<6) {
		alert("L'email "+nome+" e' troppo corta.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf('.')==-1) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf('@')==-1) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf('@')!=val.lastIndexOf('@')) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf(':')!=-1) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf('"')!=-1) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf("'")!=-1) {
		alert("L'email "+nome+" non e' valida.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}
	if (val.indexOf(' ')!=-1) {
		alert("L'email "+nome+" non e' valida.\nNon utilizzare spazi.\n(es: nome@nomeweb.com)");
		obj.focus();    	return false;  	}

	return true;	
}


// check Url format
function checkUrl (obj,nome,obblig) {
	
	var val=obj.value;
	
	if (obblig&&val.length<4) {		
		alert("L'indirizzo web "+nome+" e' troppo corto.");
		obj.focus();    	return false;		}

	if (!obblig&&val=="")	return true;
		
	if (val.length<4) {
		alert("L'indirizzo web "+nome+" e' troppo corto.");
		obj.focus();    	return false;  	}
	if (val.indexOf('.')==-1) {
		alert("L'indirizzo web "+nome+" non e' valido.");
		obj.focus();    	return false;  	}
	if (val.indexOf(':')!=-1&&val.indexOf(':')<8) {
		alert("L'indirizzo web "+nome+" non e' valido.\nNon utilizzare il prefisso http://");
		obj.focus();    	return false;  	}
	if (val.indexOf(' ')!=-1) {
		alert("L'indirizzo web "+nome+" non e' valido.\nNon utilizzare spazi.");
		obj.focus();    	return false;  	}

	return true;	
}


// open a windows (custom parameters)
function popUp(url,x,y,menu,location,scrollbar,resize)		{

	// parametri popup
	var winParam="";
	if (menu)		winParam+=",toolbar=yes,menubar=yes";
	else			winParam+=",toolbar=no,menubar=no";
	if (location)	winParam+=",location=yes,status=yes";
	else			winParam+=",location=no,status=no";
	if (scrollbar)	winParam+=",scrollbars=yes";
	else			winParam+=",scrollbars=no";
	if (resize)		winParam+=",resizable=yes";
	else			winParam+=",resizable=no";
	
	// new windows
	var siteWindowVar=open(url,"popup"+x+"x"+y,"directories=no,width="+x+",height="+y+""+winParam);
	if (siteWindowVar&&(NetscapeNavigator||Gecko||browserVer>=4))	{	siteWindowVar.focus();	siteWindowVar.focus();	}
}

// open a custom windows (full parameters)
function customPopUp(url,x,y,name,param,focusOnPopUp,focusOnWindow)		{

	// dimensioni
	var winSize="";
	if (x>0)	winSize+="width="+x+",";
	if (y>0)	winSize+="height="+y+",";
	
	// new windows
	var siteWindowVar=open(url,name,winSize+"directories=no,"+param);
	
	if (siteWindowVar&&focusOnPopUp)	siteWindowVar.focus();	// popup in primo piano
	if (siteWindowVar&&focusOnWindow)	self.focus();			// finestra corrente in primo piano
	
	// il return serve per controllare eventuali popup bloccati o javascript non abilitato
	return (siteWindowVar==null);
}

// update opener url
function updateOpener (url,newonerror,closeThisWin)	{
	if (opener)	{
		opener.location=url;
		if (closeThisWin) opener.focus();
	} else if (newonerror) {
		window.open(url);
	}
	if (closeThisWin) self.close();
}

// funzione di appoggio per form di ricerca
function changeProdSearch(on)	{

	var obj=document.ricerca.txt;
	if (!obj)	return;
	
	// onFocus
	if (on&&obj.value == obj.defaultValue)	obj.value="";
	
	// onBLur
	if (!on&&obj.value == "")	obj.value=obj.defaultValue;
}

// funzione di appoggio per form di ricerca
function checkProdSearch(theForm)	{
	var obj=theForm.txt;
	if (!obj||obj.value==obj.defaultValue||obj.value=="")	return false;
	return true;
}

// aggiungo un prodotto al carello
function addToCart(idProd)	{
	// open popup
	var poplink="/prodotti/shop/add.php3?idprod="+idProd;
	return customPopUp(poplink,550,370,"addToCart","toolbar=no,status=no,menubar=no,scrollbars=no,resizable=yes,location=no",true,false);
}