function IsEmpty(str)
{
	return (str.replace(/([  ]*)/g,"").length == 0);
}

/* 
Parametri
	form: la form (mettere tutto il nome della form es. document.forms[0])
	il resto dei parametri sono triplette:
	1:	Stringa nome campo form es. 'nome' -> document.forms[0].nome
	2:	Stringa messaggio errore es. 'E\' necessario inserire un valore'
	3:	Stringa contenete due numeri es: '10' -> Obbligatorio Numerico
		il secondo numero puņ essere omesso se semplicemente obbligatorio o select obbligtoria
		1: se richiesto o select
			0: non richiesto
			1: obbligatorio
			2: data (ci devono essere tutti e tre i campi della data separati da una virgola nel parametro 1)
		2: tipo di dato
			se data:
			0: non obbligatorio
			1: obbligatorio
			altrimenti:
			0: numerico
			1: email
			2: alfanumerico
			3: almento un checkbox o un radiobutton selezionato
			4: un indirizzo internet (senza @ per non confonderla con l'email)
*/
function Control(form)
{
	var args=Control.arguments;
	var Err=false;
	var chr1;
	var chr2;
	var str;
	for(var i=1; i < args.length; i+=3)
	{
		chr1=""+args[i+2].substring(0,1);
		chr2=""+args[i+2].substring(1,2);
		switch(chr1)
		{
			case '0':
			case '1':
				if(""+form[args[i]]=="undefined")
					return false;

				if(""+form[args[i]].type=="select-one" || ""+form[args[i]].type=="select-multiple")
					str=""+form[args[i]][form[args[i]].selectedIndex].value; 
				else
					str=""+form[args[i]].value;

				if(IsEmpty(str) && chr1=="1")
				{
					Err=true;
					break;
				}
				if(!IsEmpty(str))
				{
					switch(chr2)
					{
						case "0":	// Numerico
							if(isNaN(str))
								Err=true;
							break;
						case "1":	// E-Mail
							if(!IsEmail(str))
								Err=true;
							break;
						case "2":	// Alfanumerico
							var stringa=""+str;
							for(var po=0; po < stringa.length; po++)
							{
								if(!(stringa.charCodeAt(po) >= 97 && stringa.charCodeAt(po) <= 122 || stringa.charCodeAt(po)==32)) // Lettere minuscole e lo spazio
								{
									if(!(stringa.charCodeAt(po) >= 65 && stringa.charCodeAt(po) <= 90)) // Lettere maiuscole
									{
										if(!(stringa.charCodeAt(po) >= 48 && stringa.charCodeAt(po) <= 57)) // Numeri
										{
											Err=true;
											break;
										}
									}
								}
							}
							break;
						case "3":	// Checkbox / Radio - Almeno uno selezionato
							var Chk=false;
							if(""+form[args[i]].length!="undefined")
							{
								for(var kk=0; kk < form[args[i]].length; kk++)
								{
									if(form[args[i]][kk].checked)
									{
										Chk=true;
										break;
									}
								}
								Err=!Chk;
							}
							else
								Err=!form[args[i]].checked;
							break;
						case "4":
							if(""+str.indexOf("@")!=-1)
								Err=true;
							break;
						case "5":	// Username / Password
							var stringa=""+str;
							for(var po=0; po < stringa.length; po++)
							{
								if(!(stringa.charCodeAt(po) >= 97 && stringa.charCodeAt(po) <= 122 || stringa.charCodeAt(po)==32)) // Lettere minuscole e lo spazio
								{
									if(!(stringa.charCodeAt(po) >= 65 && stringa.charCodeAt(po) <= 90)) // Lettere maiuscole
									{
										if(!(stringa.charCodeAt(po) >= 48 && stringa.charCodeAt(po) <= 57)) // Numeri
										{
											Err=true;
											break;
										}
									}
								}
							}
							if(!Err)
							{
								if(!(stringa.replace(/([  ]*)/g,"").length>=8))
									Err=true;
							}
							break;
						case "6":	// Password
							var stringa=""+str;
							if(!(stringa.replace(/([  ]*)/g,"").length>=8))
								Err=true;
							break;
					}
				}
				break;
			case '2':
				{
					var params=args[i].split(",");
					if(""+form[params[0]].type!="hidden" && ""+form[params[0]].disabled != "true")
					{
						if(!isDate(""+form[params[0]][form[params[0]].selectedIndex].value,""+form[params[1]][form[params[1]].selectedIndex].value,""+form[params[2]][form[params[2]].selectedIndex].value,(""+chr2=="0")))
						{
							alert(args[i+1]);
							form[params[0]].focus();
							return false;
						}
					}
				}
				break;
			case '3':
				{
					var params=args[i].split(",");
					if(""+form[params[0]].type!="hidden" && ""+form[params[0]].disabled != "true")
					{
						if(params.length==2)
						{
							if(!isTime(""+form[params[0]].value,""+form[params[1]].value,"",(""+chr2=="0")))
							{
								alert(args[i+1]);
								form[params[0]].focus();
								return false;
							}
						}
						else
						{
							if(!isTime(""+form[params[0]].value,""+form[params[1]].value,""+form[params[2]].value,(""+chr2=="0")))
							{
								alert(args[i+1]);
								form[params[0]].focus();
								return false;
							}
						}
					}
				}
				break;
		}
		if(Err)
			break;
	}
	if(Err)
	{
		alert(args[i+1]);
		if(""+form[args[i]].length!="undefined")
		{
			if(""+form[args[i]][0].type=="checkbox" || ""+form[args[i]][0].type=="radio") 
			{
				if(""+form[args[i]][0].type!="hidden" && ""+form[args[i]][0].disabled != "true")
				{
					form[args[i]][0].focus();
				}
			}
			else
			{
				if(""+form[args[i]].type!="hidden" && ""+form[args[i]].disabled != "true")
					form[args[i]].focus();
			}
		}
		else
		{
			if(""+form[args[i]].type!="hidden" && ""+form[args[i]].disabled != "true")
				form[args[i]].focus();
		}
		return false;
	}
	return true;
}

function IsEmail(email)
{
	var at, punto;
	at=email.indexOf("@",0);
	if(at==-1) // Se manca la chiocciola
		return false;
	if(email.substring(0,at) == "") // Se manca il nome dell'utente
		return false;
	punto=email.indexOf(".",at+1);
	if(punto==-1) // Se manca il punto
		return false;
	if(email.substring(at+1,punto) == "") // Se manca il nome del server
		return false;
	if(email.substring(punto+1,email.length) == "") // Se manca il tipo del server
		return false;

	return true;
}

function MaxChar(E,max)
{
	if(E.value.length >= max)
		E.value=E.value.substring(0,(max-1))
}

function NoFrame()
{
	if(""+window.name!="")
	{
		window.parent.location=""+window.location;
	}
}

var T1;
function BlankStatus(txt)
{
	window.status=""+txt;
	T1=setTimeout("Blank('" + txt+ "')",0);
}

function TypeWriterStatus(StatusTxt)
{
	//clearTimeout(T1);
	var str=""+window.status;
	if(str != "undefined" && str.length < StatusTxt.length)
	{
		window.status+=""+StatusTxt.charAt(str.length);
		setTimeout("TypeWriterStatus('" + StatusTxt + "')",100);
	}
	else
	{
		//Blank(""+window.status);
		//setTimeout("clearTimeout(T1); Blank('');",1500)
		setTimeout("window.status=''",1500)
		setTimeout("TypeWriterStatus('" + StatusTxt + "')",2500);
	}
}

function ScrollTextStatus(StatusTxt)
{
	var str=""+window.status;
	if(str.replace(/ /g,"")!="" && str.replace(/ /g,"")!="undefined")
	{
		window.status=""+str.substring(1,str.length)+str.charAt(0);
		setTimeout("ScrollTextStatus('" + StatusTxt + "')",100);
	}
	else
	{
		window.status="                                                                                                                                "+StatusTxt;
		ScrollTextStatus(StatusTxt);
	}
}

// Il secondo parametro (boolean) specifica se puņ essere vuota
function isValid(str)
{
	var canBeEmpty=true;
	if(isValid.arguments.length>1)
		canBeEmpty=isValid.arguments[1];
	if(""+str=="null" || ""+str=="undefined" || (((canBeEmpty)?false:((IsEmpty(str))?true:false))))
		return false;
	return true;
}

function isDate(day, month, year)
{
	var cbe=true;
	if(isDate.arguments.length>3)
		cbe=isDate.arguments[3];
	if(day=="" && month=="" && year=="" && cbe)
		return true;
	if(isValid(day,false) && isValid(month,false) && isValid(year,false))
	{
		var days4month=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

		if(parseInt(day) <= (parseInt(days4month[parseInt(month)-1]) + (((parseInt(month) == 2) && ((parseInt(year) % 4 == 0) && ((!(parseInt(year) % 100 == 0)) || (parseInt(year) % 400 == 0))))?1:0)))
			return true;
	}
	return false;
}

function isTime(hours, minutes, seconds)
{
	if(!isValid(seconds,false))
		seconds="0";
	var cbe=true;
	if(isTime.arguments.length>3)
		cbe=isTime.arguments[3];
	if(hours=="" && minutes=="" && seconds=="" && cbe)
		return true;

	if(isValid(hours,false) && isValid(minutes,false) && isValid(seconds,false))
	{
		if((parseInt(hours)>=0 && parseInt(hours)<24) && (parseInt(minutes)>=0 && parseInt(minutes)<60) && (parseInt(seconds)>=0 && parseInt(seconds)<60))
			return true;
	}
	return false;
}

function OpenWin(win)
{
	var w=792;
	var h=550;
	if(OpenWin.arguments.length>1)
		w=OpenWin.arguments[1];
	if(OpenWin.arguments.length>2)
		h=OpenWin.arguments[2];
	var l=(window.screen.availWidth - w - 10) / 2;
	var t=(window.screen.availHeight - h - 20) / 2;
	var opt="";
	if(OpenWin.arguments.length>3)
		opt=""+OpenWin.arguments[3];
	if(opt!="" && opt.charAt(0)!=",")
		opt="," + opt;
		
	window.open(win,"_blank","width=" + w + ",height=" + h + ",left=" + l + ",top=" + t + opt);
}

function OpenTest(win)
{
	var w=792;
	var h=550;
	var ts = 0;
	if(OpenTest.arguments.length>1)
		w=OpenTest.arguments[1];
	if(OpenTest.arguments.length>2)
		h=OpenTest.arguments[2];
	if(OpenTest.arguments.length>3)
		ts=OpenTest.arguments[3];

	var numofparts=prompt("Inserire un numero da 2 a 4 e premere \"Consenti\" su ciascuna finestra.",2);
	if(numofparts!=null && !isNaN(numofparts))
	{
		if(numofparts<2)
			numofparts=2;
		else if(numofparts>4)
			numofparts=4;
		numofparts -= ts;
		for(var i=0; i < numofparts; i++)
		{
			setTimeout("OpenWin('" + win + "'," + w + "," + h + ")",(i + ts)*7000);
		}
	}
}

function TestAudioVideo()
{
	var w=792;
	var h=550;
	var l=(window.screen.availWidth - w) / 2;
	var t=(window.screen.availHeight - h - 20) / 2;
	window.open("http://www.fastmeeting.net/fastmeeting/TestAudioVideo.html","_blank","width=" + w + ",height=" + h + ",left=" + l + ",top=" + t + ",scrollbars=0");
}

function Avvisa(el,idroom,sdfn)
{
	if(""+el!="undefined")
	{
		if(""+el.length!="undefined")
		{
			for(var i=0; i < el.length; i++)
			{
				//alert("utente: " + document.forms[0].utenti[i].value);
				OpenWin('avvisa.asp?Room=' + idroom + '&IDUtente=' + el[i].value + "&sdfn=" + sdfn,798,550,"scrollbars=1");
			}
		}
		else
		{
			//alert("utente: " + document.forms[0].utenti.value);
			OpenWin('avvisa.asp?Room=' + idroom + '&IDUtente=' + el.value + "&sdfn=" + sdfn,798,550,"scrollbars=1");
		}
	}
}

function Avvisa2(utenti,idroom)
{
	var ut = (""+utenti).split(",");
	for(var i=0; i < ut.length; i++)
	{
		OpenWin('avvisa.asp?Room=' + idroom + '&IDUtente=' + ut[i],798,550,"scrollbars=1");
	}
}

function ControllUpload()
{
	if(document.Allegato.File.disabled != true)
	{
		if(document.Allegato.File.value=="")
		{
			alert("E' necessario selezionare il file da inviare al server / Select the file to be sent to the server.");
			document.Allegato.File.focus();
			return false;
		}
	}
	window.status='Attendere prego....';
	return true;
}

function CloseWinUpload(fr,ft,fn)
{
	window.opener.document.forms[fr].elements[ft].value=fn;
}

function LoadWinUpload()
{
	if(document.frm.closewin)
	{
		document.frm.closewin.value = "Attendere...";
		document.frm.closewin.disabled = true;
		//window.open('','_self','');
		window.close();
	}
}

function Disconnect(cciaa,lang,opz)
{
	/*if (""+opz!="true" && window.parent.opener)
		window.parent.opener.location = "cciaa.asp?cciaa=" + cciaa + "&lang=" + lang + "&logout=1";*/
	if (""+opz!="true")
		window.parent.location = "cciaa.asp?cciaa=" + cciaa + "&lang=" + lang + "&logout=1&close=1";
	//window.parent.open('','_self','');
	window.parent.close();
}

function ChooseDate(val, xPos, yPos)
{
	var dt = new Array();
	source = val;
	if (""+source.length!="undefined")
	{
		if(""+val[0].tagName=="SELECT")
			dt[0] = val[0][val[0].selectedIndex].value;
		else
			dt[0] = val[0].value;
		if(""+val[1].tagName=="SELECT")
			dt[1] = val[1][val[1].selectedIndex].value;
		else
			dt[1] = val[1].value;
		if(""+val[2].tagName=="SELECT")
			dt[2] = val[2][val[2].selectedIndex].value;
		else
			dt[2] = val[2].value;
	}
	else
		dt = val.value.split('/');

	showCalendar(((""+dt[2]!="" && ""+dt[1]!="" && ""+dt[0]!="")?new Date(dt[2],dt[1]-1,dt[0]):today), xPos, yPos);
}

function CheckDocConfirm(str)
{
	var ret;

	if(""+document.doc.consenso[document.doc.consenso.selectedIndex].value=="true")
		ret=confirm(str);
	else
		ret=true;
	
	return ret;
}

function ReloadAttach()
{
	var allegati = window.parent.document.getElementById("allegati");
	if (allegati != null)
		allegati.src = allegati.src;
}

function SendReloadAttach(doc)
{
	try
	{
		var swf = doc.getElementById("Video");
		if (swf != null)
			swf.TCallFrame("_root.chat", 1);
	}
	catch(e) {}
}

var KSAInt;
function StartKeepSessionAlive(idroom)
{
	//KeepSessionAlive();
	KSAInt = setInterval("KeepSessionAlive(" + idroom + ")", 8 * 60000);
}

function KeepSessionAlive(idroom)
{
	try
	{
		var request;
		var url = "keep_session.asp?room=" + idroom + "&p=" + (""+Math.random()).substring(2);
		if (window.ActiveXObject)
		{
			request = new ActiveXObject("Microsoft.XMLHTTP");
			if (request)
			{
				request.open("GET", url, false);
				request.send();
			}
		}
		else if (window.XMLHttpRequest)
		{
			request = new XMLHttpRequest();
			request.open("GET", url, false);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			request.send(null);
		}
		else
		{
			clearInterval(KSAInt);
		}
	}
	catch (e)
	{
		clearInterval(KSAInt);
	}
}