/*		Author:				Andrea Fonsati
*		Create Date:		Tue May 13 10:17:05 CEST 2008
*		Last Modify:		Thu Jul  3 15:31:11 CEST 2008
*
*		Notes:
*		This module contains all the functions for Admin
*/
//=================================================================================================================================================
var addHtml = new Array();
//ajax_return("da piangere");
function trim(stringa){
	while (stringa.substring(0,1) == ' '){
		stringa = stringa.substring(1, stringa.length);
	}
	while (stringa.substring(stringa.length-1, stringa.length) == ' '){
		stringa = stringa.substring(0,stringa.length-1);
	}
	return stringa;
}
//==================================================================================================================================================
function UserSearchReturn(){
	idtmp = parseInt(document.getElementById('historyId').value);
	history.back(idtmp);
/*	if (document.location.href.indexOf("#ip_setting_roles")!="-1"){
		myhref = document.location.href;
		myhref = myhref.replace(/\#ip_setting_roles/g,"");
		document.location.href = myhref;
		alert("ddd");
		history.back(idtmp + (-7));
		history.back(idtmp + (-5));
		alert("ddd");
		history.back(idtmp + (-2));
	}else{
		history.back(idtmp);
	}
*/
}

function AddPersist()
{
	if (CheckCompleteIP(document.getElementById('addip_0').value) != 'ok') {
		document.getElementById('addip_0').focus();
		return;
	}
	if (CheckNetmask(document.getElementById('addnetmask_0').value) != 'ok'){
		document.getElementById('addnetmask_0').focus();
		return;
	}
	
	htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
	htmlHeader +="<th>Netmask</th><th></th></tr>";
	if (!document.getElementById('checkStatus').checked){
		htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
		htmlHeader +="<th>Netmask</th><th>Regola di navigazione</th><th></th></tr>";
	}

	myid = parseInt( document.getElementById('ruleid').value );
	
//	alert(document.getElementById('addip_0').value + " - " + document.getElementById('addnetmask_0').value);
	msg = '';
	for (i=0; i<(myid-1); i++) {
//		alert(document.getElementById('addip_'+(i+1)).value + " - " + document.getElementById('addnetmask_'+(i+1)).value);
		if (document.getElementById('addip_0').value == document.getElementById('addip_'+(i+1)).value){
			msg = "ATTENZIONE.\r\nL'indirizzo IP '"+document.getElementById('addip_0').value+"' è già presente in tabella.";
		}
	}
	if (msg!=''){
		alert(msg);
		return;
	}
	
	myhref = document.location.href;
	myhref = myhref.replace(/\#ip_setting_roles/g,"");
	var url = myhref;
	var params = { method : 'GET'
				,urlparams : 'ajax_request=check_ip_roles&addip_0='+document.getElementById('addip_0').value+'&uid='+document.getElementById('uid').value
				,asynch : 1
				,type : 'javascript'
				/*,area : 'log_ip_setting'*/
				,debug: 0
				};
	err = ajaxAce( url, params);
}

function ajax_return(msg)
{
	if (msg!='') {
		alert(msg);
	} else {
		AddPersistInnerHtml();
	}
}

function AddPersistInnerHtml()
{
/*
	if (CheckCompleteIP(document.getElementById('addip_0').value) != 'ok') {
		document.getElementById('addip_0').focus();
		return;
	}
	if (CheckNetmask(document.getElementById('addnetmask_0').value) != 'ok'){
		document.getElementById('addnetmask_0').focus();
		return;
	}
	
	htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
	htmlHeader +="<th>Netmask</th><th></th></tr>";
	if (!document.getElementById('checkStatus').checked){
		htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
		htmlHeader +="<th>Netmask</th><th>Regola di navigazione</th><th></th></tr>";
	}

	myid = parseInt( document.getElementById('ruleid').value );
	
//	alert(document.getElementById('addip_0').value + " - " + document.getElementById('addnetmask_0').value);
	msg = '';
	for (i=0; i<(myid-1); i++) {
//		alert(document.getElementById('addip_'+(i+1)).value + " - " + document.getElementById('addnetmask_'+(i+1)).value);
		if (document.getElementById('addip_0').value == document.getElementById('addip_'+(i+1)).value){
			msg = "ATTENZIONE\r\nL'indirizzo IP '"+document.getElementById('addip_0').value+"' è già presente in tabella.";
		}
	}
	if (msg!=''){
		alert(msg);
		return;
	}
	
	IPExist();
*/
	
	for (i=0; i<myid; i++) {
		idloop = i+1;
		htmlDefault ="\r\n<tr><td><input name='addip_"+idloop+"' id='addip_"+idloop+"' maxlength='15' size='20' type='hidden' value='"+document.getElementById('addip_' + i).value+"'>"+document.getElementById('addip_' + i).value+"</td>\r\n<td>";
		htmlDefault +="<input name='addnetmask_"+idloop+"' id='addnetmask_"+idloop+"' maxlength='3' size='4' type='hidden' value='"+document.getElementById('addnetmask_' + i).value+"'>"+document.getElementById('addnetmask_' + i).value+"</td>";

		if (!document.getElementById('checkStatus').checked){
			if (document.getElementById('addpersistent_' + i).checked) {
				htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' checked >";
				htmlDefault +="<input name='addippers_"+idloop+"' id='addippers_"+idloop+"' type='hidden' value='y'>Naviga solo da questo IP ed è sempre connesso.</td>";
			}else{
				htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' >";
				htmlDefault +="<input name='addippers_"+idloop+"' id='addippers_"+idloop+"' type='hidden' value='n'>Naviga solo da questo IP.</td>";
			}
		}

		htmlDefault +="\r\n<td><input name='del' id='del' onclick='javascript:DelPersist("+idloop+")' value='Elimina' type='button' class='button'>";
	 	htmlDefault +="</td></tr>";
		addHtml[i] = htmlDefault;
	}
    
    htmlFooter = "</tbody></table>";
	myid = myid + 1;
	document.getElementById('ruleid').value = myid;
	
	htmlDefault = '';
	for (i=0; i<addHtml.length; i++){
		htmlDefault += addHtml[i];
	}

    writeHtml = htmlHeader + htmlDefault + htmlFooter;
	document.getElementById('addrole-box').innerHTML = writeHtml;
	document.getElementById('addip_0').focus();
}

function DelPersist(deleteID)
{
//	myhref = document.location.href;
//	myhref = myhref.replace(/\#ip_setting_roles/g,"");
//	document.location.href = myhref;
	//document.getElementById('historyId').value = parseInt(document.getElementById('historyId').value)-1;
	if (addHtml.length == 0 ){
		myid = parseInt( document.getElementById('ruleid').value )-1;

		for (i=0; i<myid; i++) {
			idloop = i+1;
			htmlDefault ="\r\n<tr><td><input name='addip_"+idloop+"' id='addip_"+idloop+"' maxlength='15' size='20' type='hidden' value='"+document.getElementById('addip_'+idloop).value+"'>"+document.getElementById('addip_'+idloop).value+"</td>\r\n<td>";
			htmlDefault +="<input name='addnetmask_"+idloop+"' id='addnetmask_"+idloop+"' maxlength='3' size='4' type='hidden' value='"+document.getElementById('addnetmask_'+idloop).value+"'>"+document.getElementById('addnetmask_'+idloop).value+"</td>";

			if (!document.getElementById('checkStatus').checked){
				if (document.getElementById('addpersistent_' + i).checked) {
					htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' checked >";
					htmlDefault +="<input name='addippers_"+idloop+"' id='addippers_"+idloop+"' type='hidden' value='y'>Naviga solo da questo IP ed è sempre connesso.</td>";

//					htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' checked ></td>";
				}else{
					htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' >";
					htmlDefault +="<input name='addippers_"+idloop+"' id='addippers_"+idloop+"' type='hidden' value='n'>Naviga solo da questo IP.</td>";

//					htmlDefault +="\r\n<td><input name='addpersistent_"+idloop+"' id='addpersistent_"+idloop+"' type='checkbox' ></td>";
				}
			}

			htmlDefault +="\r\n<td><input name='del' id='del' onclick='javascript:DelPersist("+idloop+")' value='Elimina' type='button' class='button'>";
			htmlDefault +="</td></tr>";
			addHtml[i] = htmlDefault;
		}
	}

	deleteID = parseInt(deleteID) -1;

	htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
	htmlHeader +="<th>Netmask</th><th></th></tr>";
	if (!document.getElementById('checkStatus').checked){
		htmlHeader = "\r\n<table cellpadding='5' cellspacing='0'><tbody><th>IP Default</th>";
		htmlHeader +="<th>Netmask</th><th>Regola di navigazione</th><th></th></tr>";
	}
    htmlFooter = "</tbody></table>";

	htmlDefault ='';
	tmpArray = new Array();
	
	tmpLen = parseInt(addHtml.length+1);
	
	myid = 0;
	idwrite = 1;

	for (i=0; i<addHtml.length; i++)
	{
		if (i != deleteID)
		{
			htmlDefault ="\r\n<tr><td><input name='addip_"+idwrite+"' id='addip_"+idwrite+"' maxlength='15' size='20' type='hidden' value='"+document.getElementById('addip_'+(i+1)).value+"'>"+document.getElementById('addip_'+(i+1)).value+"</td>\r\n<td>";
			htmlDefault +="<input name='addnetmask_"+idwrite+"' id='addnetmask_"+idwrite+"' maxlength='3' size='4' type='hidden' value='"+document.getElementById('addnetmask_'+(i+1)).value+"'>"+document.getElementById('addnetmask_'+(i+1)).value+"</td>";

			if (!document.getElementById('checkStatus').checked){
				if (document.getElementById('addpersistent_' + (idwrite+1)).checked) {
					htmlDefault +="\r\n<td><input name='addpersistent_"+(idwrite+1)+"' id='addpersistent_"+(idwrite+1)+"' type='checkbox' checked >";
					htmlDefault +="<input name='addippers_"+(idwrite+1)+"' id='addippers_"+(idwrite+1)+"' type='hidden' value='y'>Naviga solo da questo IP ed è sempre connesso.</td>";

//					htmlDefault +="\r\n<td><input name='addpersistent_"+(i+1)+"' id='addpersistent_"+(i+1)+"' type='checkbox' checked ></td>";
				}else{
					htmlDefault +="\r\n<td><input name='addpersistent_"+(idwrite+1)+"' id='addpersistent_"+(idwrite+1)+"' type='checkbox' >";
					htmlDefault +="<input name='addippers_"+(idwrite+1)+"' id='addippers_"+(idwrite+1	)+"' type='hidden' value='n'>Naviga solo da questo IP.</td>";

//					htmlDefault +="\r\n<td><input name='addpersistent_"+(i+1)+"' id='addpersistent_"+(i+1)+"' type='checkbox' ></td>";
				}

			}
			
			htmlDefault +="\r\n<td><input name='del' id='del' onclick='javascript:DelPersist("+idwrite+")' value='Elimina' type='button' class='button'>";
			htmlDefault +="</td></tr>";

			tmpArray[myid] = htmlDefault;
			idwrite++;
		}
		myid++;
	}

	htmlDefault='';
	myid = 0;
	addHtml.splice(0,tmpLen);

	for (i=0; i<tmpArray.length; i++){
		if (tmpArray[i] != undefined){
			addHtml[myid] = tmpArray[i];
			myid++;
		}
	}
	
	for (i=0; i<addHtml.length; i++){
		htmlDefault += addHtml[i];
	}
	
    writeHtml = htmlHeader + htmlDefault + htmlFooter;
	if (addHtml.length == 0 ){ writeHtml='';}
	document.getElementById('addrole-box').innerHTML = writeHtml;

	myid = parseInt( document.getElementById('ruleid').value );
	myid = myid - 1;
	document.getElementById('ruleid').value = myid;
	document.getElementById('addip_0').focus();

}
function DeleteIPSetting()
{
	if (!confirm("Vuoi eliminare tutte le regole associate allo user '"+document.getElementById("username").value+"'?")){
		return;
	}
	document.getElementById('historyId').value = parseInt(document.getElementById('historyId').value)-1;
	document.getElementById('action_ip_setting').value="DELETE_ALL_ROLES";
	document.getElementById('main').submit();
}

function SaveIPSetting()
{
	if (addHtml.length == 0 ){
		alert('Non ci sono regole di navigazione da salvare.');
		return;
	}
//	document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=savesettingrules';
	document.getElementById('action_ip_setting').value="SAVE_IP_SETTING_ROLES";
	document.getElementById('main').submit();

}

function ViewRule()
{
	url = '?page=panel&func=usersearch&seqid=0&act=viewsettingrules&id=' + document.getElementById('editUid').value;
	url += '&username=' + document.getElementById('editUsername').value;
	name = 'viewsettingrules';
	param = 'width=1000,height=550,toolbar=yes,location=no,status=no,menubar=no,scrollbars=yes,resizable=no';
	
	win = window.open(url,name,param);
	win.focus();
}

function DeleteGroup(gid,gname)
{
	if (!confirm("Vuoi eliminare il gruppo '"+gname+"' definitivamente?")){
		return;
	}
	document.getElementById('gid_edit').value = gid;
	document.getElementById('group_name_edit').value = gname;
	document.getElementById('main').action = '?page=panel&func=group&seqid=2&act=deletegroup';
	document.getElementById('main').submit();
}

function EditGroup(gid,gname)
{
	document.getElementById('gid_edit').value = gid;
	document.getElementById('group_name_edit').value = gname;
	document.getElementById('main').action = '?page=panel&func=group&seqid=2&act=editgroup';
	document.getElementById('main').submit();
}

function AddGroup()
{
	document.getElementById('main').action = '?page=panel&func=group&seqid=2&act=editgroup';
	document.getElementById('main').submit();
}

function SaveGroup()
{
	if(trim(document.getElementById('group_name_edit').value)==""){
		document.getElementById('group_name_edit').focus()
		alert("Il nome del gruppo non può essere nullo.");
		return;
	}
	document.getElementById('log-box').innerHTML = "Gruppo salvato correttamente";
	document.getElementById('main').action = '?page=panel&func=group&seqid=2&act=savegroup';
	document.getElementById('main').submit();
}

function ChangeStatus()
{
	document.getElementById('historyId').value = parseInt(document.getElementById('historyId').value)-1;
	if (document.getElementById("statusid").value==0){
		document.getElementById("statusid").value=1;
	}else{
		document.getElementById("statusid").value=0;
	}
	myhref = document.location.href;
	myhref = myhref.replace(/\#ip_setting_roles/g,"");
	myhref = myhref + "#ip_setting_roles";
	document.getElementById('main').action = myhref;
	document.getElementById('main').submit();
}

function CheckBeforeUserUpdate()
{
	res = ControllaCF(document.getElementById('editZip').value);
	alert(res);

}

function KindResearch(what)
{
	document.getElementById('searchsimple').value='';
	switch (what) {
	case 'simple':
		document.getElementById('searchsimple').value='true';
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0';
		document.getElementById('main').submit();
		break;
	case 'advance':
		document.getElementById('searchsimple').value='false'; 
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=usersearchadvanced';
		document.getElementById('main').submit();
		break;
	}
}

function SaveUserData()
{
	res ='';
	resdate='';
	if (IsNumeric(trim(document.getElementById('maxlogin').value)) == false || trim(document.getElementById('maxlogin').value) ==''){
		document.getElementById('maxlogin').focus();
		alert("Il valore del 'Numero massimo login' dev'essere un numero.");
		return false;
	}
	
	if(document.getElementById('exiperNever').checked==false){
		mydate = null;
		if (document.getElementById('exipreMonth').value.length==1){
			mydate = "0"+document.getElementById('exipreMonth').value;
		}else{
			mydate = document.getElementById('exipreMonth').value;
		}
		if (document.getElementById('exipreDay').value.length==1){
			mydate += "-0"+document.getElementById('exipreDay').value;
		}else{
			mydate += "-"+document.getElementById('exipreDay').value;
		}
		mydate += "-"+document.getElementById('exipreYear').value;
		resdate = isDate(mydate);
	}
	if (document.getElementById('editPIVA').value.length == 16) {
		res = ControllaCF(document.getElementById('editPIVA').value);
	} else if (document.getElementById('editPIVA').value.length == 11){
		res = ControllaCF(document.getElementById('editPIVA').value);
	} else if (document.getElementById('editPIVA').value.length ==0) {
		res ='';
	} else {
		res = "Il codice introdotto non è valido:\n" +
		"  - un codice fiscale deve essere lungo 16 caratteri;\n" +
		"  - una partita IVA deve essere lunga 11 caratteri.";
	}
	if (res != ''){
		if (!confirm(res+"\r\nVoi procedere comunque?")){
			return;
		}
		res='';
	}
	addpasswd = document.getElementById('editPasswd').value.replace(/^\s\s*/, '').replace(/\s\s*$/, '').toUpperCase();
	addpasswd2 = document.getElementById('editPasswd2').value.replace(/^\s\s*/, '').replace(/\s\s*$/, '').toUpperCase();
	if (addpasswd != addpasswd2) {
		res = 'La password inserita non coincide con il campo "conferma password"!';
		document.getElementById('editPasswd').focus();
	}
	if (document.getElementById('editMail').value.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1 && document.getElementById('editMail').value.length >0) {
		res = 'Inserire un\'e-mail valida!';
		document.getElementById('editMail').focus();
	}else{
		addmail = document.getElementById('editMail').value.replace(/^\s\s*/, '').replace(/\s\s*$/, '').toUpperCase();
		addmail2 = document.getElementById('editMail2').value.replace(/^\s\s*/, '').replace(/\s\s*$/, '').toUpperCase();
		if (addmail != addmail2) {
			res = 'L\'e-mail inserita non coincide con il campo "conferma e-mail"!';
			document.getElementById('editMail').focus();
		}
	}
	if (document.getElementById('gid').selectedIndex == -1 ) {
		res = 'È necessario associare l\'utente ad un gruppo.';
		document.getElementById('gid').focus();
	}
	if (resdate !=''){
		alert(resdate);
		return;
	}
	
	if (res !=''){
		alert(res);
		return;
	}
	
	//count = parseInt( document.getElementById('persistid').value );
	//ckIP = "ok";
	//for (e=0; e<count; e++) {
		//id_loop = e+1;
		
		//if ( CheckNetmask(document.getElementById('netmask_'+id_loop).value) != 'ok' ){
			//document.getElementById('netmask_'+id_loop).focus();
			//return;
			//break;
		//}

		//if (CheckCompleteIP(document.getElementById('persist_ip_'+id_loop).value) != 'ok'){
			//document.getElementById('persist_ip_'+id_loop).focus();
			//return;
			//break;
		//}
	//}
	//if (ckIP=='ko')
		//return;
		
	msgok = "Modifica dei dati di Account e di Anagrafiaca\r\navvenuta con successo.";
	if (addHtml.length != 0 ){
		document.getElementById('action_ip_setting').value="SAVE_IP_SETTING_ROLES";
		msgok = "Modifica dei dati di Account, di Anagrafiaca\r\ne delle Regole di Navigazione\r\navvenuta con successo.";
	}
		
	alert(msgok);
	document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=checkuserdata&id=' +  document.getElementById('editUid').value;
	document.getElementById('main').submit();
}

function Manage(what)
{
	f = document.forms.main;
	f.act.value = null;
	f.act.value = what;
	
	switch (what)
	{
	case 'search':
		f.submit();
		break;
	default:
		//alert("Pippo: " + f.act.value);
		break;
	}
}

function AdminAddUser()
{
	document.getElementById('main').action = '?act=captiveadduser';
	document.getElementById('main').submit();
}

function goSearch(type)
{
	if (type == 'simple'){
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&searchType=form';
		document.getElementById('main').submit();
	}else{
		if (document.getElementById('findIP').value == '') {
			document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=usersearchadvanced&searchType=form';
			document.getElementById('main').submit();
		}else {
			if (CheckIP(document.getElementById('findIP').value) == 'ok') {
				document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=usersearchadvanced&searchType=form';
				document.getElementById('main').submit();
			}
		}
	}
}

function GroupSelect()
{
	var els = document.getElementById('gid').options;
	if (document.getElementById('allgroups').checked){
		for (var i=0;i<els.length;i++){
			els[i].selected=true;
		}
	} else {
		for (var i=0;i<els.length;i++){
			els[i].selected=false;
		}
	}

} // GroupSelect

function goSearchSimple(event)
{
	document.getElementById('searchsimple').value='';
	document.getElementById('searchsimple').value='true';
	key = event.keyCode;
	if ( key == 13 ) {
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&searchType=form';
		document.getElementById('main').submit();
	}
}

function goSearchAdv(event)
{
	key = event.keyCode;
	if ( key == 13 ) {
		if (document.getElementById('findIP').value == '') {
			document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=usersearchadvanced&searchType=form';
			document.getElementById('main').submit();
		}else {
			if (CheckIP(document.getElementById('findIP').value) == 'ok') {
				document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=usersearchadvanced&searchType=form';
				document.getElementById('main').submit();
			}
		}
	}
}

function CheckNetmask(net){
	resul='ok';
	if (!isInteger(net)){
		resul='Il valore netmask non è un numero';
	}
	if (net.length!=0){
		if ( (parseInt(net)+96)>128 )
			resul = 'Il valore netmask non può essere maggiore a 32.';
		if ( (parseInt(net)+96)<96 )
			resul = 'Il valore netmask non può essere inferio a 0.';
	}
	if (resul != 'ok') {
		alert(resul);
	}
	return resul;
}

function CheckCompleteIP(ipaddr)
{
	res = 'ok';
	parts='';
	netmask='';
	RegEx = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
	
	if (ipaddr!='0.0.0.0'){
		if (RegEx.test(ipaddr))
		{
			parts = ipaddr.split(".");
			if (parseInt(parseFloat(parts[0])) == 0) { res = '1'; }
			for (i=0; i<parts.length; i++) {
				if (parseInt(parseFloat(parts[i])) > 255) { res = '2'; }
			}
		}
		else
		{
			res='99';
		}
	}else if (ipaddr=='0.0.0.0'){
		res='99';
	}
	if (res != 'ok') {
		alert('Il valore dell\'indirizzo IP non è corretto!');
	}
	return res;
}

function CheckIP(ipaddr)
{
	res = 'ok';
	parts='';
	netmask='';
	
	RegEx1 = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
	RegEx2 = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,3}$/
	RegEx3 = /^\d{1,3}$/
	RegEx4 = /^\d{1,3}\.\d{1,3}$/
	RegEx5 = /^\d{1,3}\.\d{1,3}\.\d{1,3}$/
	
	if (RegEx1.test(ipaddr))
	{
		parts = ipaddr.split(".");
		if (parseInt(parseFloat(parts[0])) == 0) { res = '1'; }
		for (i=0; i<parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) { res = '2'; }
		}
	}
	else if (RegEx2.test(ipaddr))
	{
		netmask = ipaddr.split("/");		
		parts = netmask[0].split(".");
		if (parseInt(parseFloat(parts[0])) == 0) { res = '3'; }
		for (i=0; i<parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) { res = '4'; }
		}
		if (parseInt(parseFloat(netmask[1])) > 128) { res = '5'; }
	}
	else if (RegEx3.test(ipaddr))
	{
		if (parseInt(parseFloat( ipaddr )) == 0) { res = '6'; }
		if (parseInt(parseFloat( ipaddr )) > 255) { res = '7'; }
	}
	else if (RegEx4.test(ipaddr))
	{
		parts = ipaddr.split(".");
		if (parseInt(parseFloat(parts[0])) == 0) { res = '8'; }
		for (i=0; i<parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) { res = '9'; }
		}
	}
	else if (RegEx5.test(ipaddr))
	{
		parts = ipaddr.split(".");
		if (parseInt(parseFloat(parts[0])) == 0) { res = '10'; }
		for (i=0; i<parts.length; i++) {
			if (parseInt(parseFloat(parts[i])) > 255) { res = '11'; }
		}
	}
	else
	{
		res='99';
	}
	
	if (res != 'ok') {
		alert('Il valore dell\'indirizzo IP non è corretto!');
	}
	return res;
}

function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
msg ='';
if (matchArray == null) {
	msg="Please enter date as either mm/dd/yyyy or mm-dd-yyyy.";
	return msg;
}

month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
	msg="Month must be between 1 and 12.";
	return msg;
}

if (day < 1 || day > 31) {
	msg="Day must be between 1 and 31.";
	return msg;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	msg="Month "+month+" doesn`t have 31 days!";
	return msg;
}

if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day > 29 || (day==29 && !isleap)) {
		msg="February " + year + " doesn`t have " + day + " days!";
		return msg;
	}
}
return msg; // date is valid
}

function continua(event)
{
	key = event.keyCode;
	if ( key == 13 ) {
		document.forms.main.submit();
	}
}

function Enable(id,username)
{
	if (confirm('Abilitare l\'utente \"'+username+'\" alla navigazione?'))
	{
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=enableuser&id='+id;
		document.getElementById('main').submit();
	}
}

function Disable(id,username)
{
	if (confirm('Disabilitare la navigazione dell\'utente \"'+username+'\"?'))
	{
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=disableuser&id='+id;
		document.getElementById('main').submit();
	}
}

function DelUser(id,username)
{
	if (confirm('Cancellazione utente \"'+username+'\"\r\nL\'utente verrà definitivamente eliminato, proseguire?'))
	{
		document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=deleteuser&id='+id;
		document.getElementById('main').submit();
	}
}

function EditUser(iduser)
{
	document.getElementById('main').action = '?page=panel&func=usersearch&seqid=0&act=edituser&id='+iduser;
	document.getElementById('main').submit();
}

function GoUserList()
{
	document.getElementById('main').action = '?act=';
	document.getElementById('main').submit();
}

function isInteger (s)
{
	var i;

	if (isEmpty(s))
	if (isInteger.arguments.length == 1) return 0;
	else return (isInteger.arguments[1] == true);

	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}

	return true;
}

function isEmpty(s)
{
	return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
	return ((c >= "0") && (c <= "9"))
}

/*	HELP FUCTION	*/
function saveOrderHelp()
{
	maxid = parseInt(document.getElementById('maxID').value);
	for (i=1; i<=maxid; i++) {
		res = 0;
//		alert("controllo: " + document.getElementById("selOrder_" + i).value);
		for (a=1; a<=maxid; a++){
//			alert("valuri possibili: " + document.getElementById("selOrder_" + a).value);
			if (document.getElementById("selOrder_" + i).value == document.getElementById("selOrder_" + a).value){
				res = res + 1;
			}
		}
		if (res > 1) {
			alert("Impossibile salvare l\'ordinamento selezionato.\r\nIl valore "+ document.getElementById("selOrder_" + i).value +" è ripetuto "+ res +" volte.");
			return false;
		}
	}
	document.getElementById('main').action = '?page=panel&func=manage&seqid=1&underid=6&act=saveorder';
	document.getElementById('main').submit();
}

function newHelp()
{
	document.getElementById('main').action = '?page=panel&func=manage&seqid=2&act=new';
	document.getElementById('main').submit();
}

function EditHelp(id)
{
	document.getElementById('main').action = '?page=panel&func=manage&seqid=1&underid=6&act=edit&idselect='+id;
	document.getElementById('main').submit();
}

function DeleteHelp(id)
{
	if (!confirm("Sei sicuro di voler eliminare l'aiuto selezionato?")){
		return;
	}
	document.getElementById('main').action = '?page=panel&func=manage&seqid=1&underid=6&act=delete&idselect='+id;
	document.getElementById('main').submit();
}

function load_me()
{
	if (document.getElementById('username') ) {
		document.getElementById('username').focus();
	}
}

function IsNumeric(sText)
{
ValidChars = "0123456789";
IsNumber=true;

for (i = 0; i < sText.length && IsNumber == true; i++) 
{ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1) 
	{
		IsNumber = false;
	}
}
return IsNumber;
}

function AutoRec()
{
	window.location.href = "http://192.168.22.18:8081/?page=buyuser&seqid=1";
}

function GoToHelp()
{
	window.location.href = "http://192.168.22.18:8081/?page=help&seqid=2";
}

function GoToContact()
{
	window.location.href = "http://192.168.22.18:8081/?page=contact";
}

function GoWinext()
{
	window.location.href = "http://www.winext.eu";
}

function saveMessage(id)
{
	document.getElementById('main').action = '?page=panel&func=manage&seqid=2&act=msg_update&underid=1';
	document.getElementById('main').submit();
	alert("Tutti i messaggi sono stati salvati correttamente.");
}

