var xmlhttp;
var camporichiesta='';
var cambio=false;
var suggeridiv=false;

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

function stripHTML(testo){
	var re = /(<([^>]+)>)/gi;
	var nuovotesto;
	nuovotesto=testo.replace(re, "");
	return nuovotesto;
}

function isEmail( text )
{
	var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp( pattern );
	return regex.test( text );
}

function isDate(txtDate){  
   var objDate;  // date object initialized from the txtDate string  
   var mSeconds; // milliseconds from txtDate  
   
   if (txtDate.length != 10) return false;  
   var day   = txtDate.substring(3,5)  - 0;  
   var month = txtDate.substring(0,2)  - 1; // because months in JS start with 0  
   var year  = txtDate.substring(6,10) - 0;  
   
   if (txtDate.substring(2,3) != '/') return false;  
   if (txtDate.substring(5,6) != '/') return false;  
   
   if (year < 999 || year > 3000) return false;  
   
   mSeconds = (new Date(year, month, day)).getTime();  
   
   objDate = new Date();  
   objDate.setTime(mSeconds);  
   
   if (objDate.getFullYear() != year)  return false;  
   if (objDate.getMonth()    != month) return false;  
   if (objDate.getDate()     != day)   return false;  
   
   return true;  
}  

function controllamail(forma) {
	var rispo=true;
	if (!isEmail(forma.email1.value)) {
		alert("Email non valida");
		rispo=false;
	}
	else
		if (forma.email1.value != forma.email2.value) {
			alert("Le due email non coincidono");
			rispo=false;
		}
	return rispo;
}

function apri_pagina(lung,pagina,larg,id) {
	var wleft = (screen.width - larg) / 2;
	var wtop = (screen.height - lung) / 2;
   
	if (id != 0) 
		parametro = '&id' + id;
	else
		parametro = '';
	window.open(pagina + parametro,'nuova' + id,'width=' + larg + ',height=' + lung + ',top=' + wtop + ',left=' + wleft + ',resizable=no,scrollbars=yes,toolbar=no,location=no,menubar=no')
}

function aprichiudi(elemento) {
	//alert (document.getElementById(elemento).style.display);
	if (document.getElementById(elemento).style.display=="none") {
		document.getElementById(elemento).style.display="";
	} else {
		document.getElementById(elemento).style.display="none";
	}
}

function conferma(operazione) {
	var answer = confirm ('Confermi l\'operazione '+operazione+' ?');
	if (answer)
		return true;
	else
		return false;
}

function check_submit(form) {
	if (form.id.value=="" || isNaN(form.id.value)) {
		form.id.focus();
		return false;
	}
}

function check_lezioni(form) {
	if (form.id_form.value=="" || isNaN(form.id_form.value)) {
		alert("Selezionare un insegnamento!");
		form.id_form.focus();
		return false;
	}
}

function check_news(forma) {
	var nomecampo;
	var risulta=true;
	var oEditor = FCKeditorAPI.GetInstance('testo') ;
	if (oEditor.GetData()=="") {
		alert("E\' richiesto un valore per il campo \'testo\'");
		oEditor.Focus();
		risulta=false;
	}
	else
		for (i=0, n=forma.elements.length; i < n; i++) {
			nomecampo=forma.elements[i].name;
			if (nomecampo=='oggetto' || nomecampo=='ambito')
				if (forma.elements[i].value=="") {
					alert('E\' richiesto un valore per il campo \''+nomecampo+'\'');
					forma.elements[i].focus();
					risulta=false;
					break;
				}
		}
	if (risulta) {
		var myDate=new Date();
		myDate.setFullYear(forma.a_scadenza.value,forma.m_scadenza.value-1,forma.g_scadenza.value);
		// if (isDate(forma.m_scadenza.value+'/'+forma.g_scadenza.value+'/'+forma.a_scadenza.value)) *** EV.VERIFICA CORRETTEZZA DATA ***
		var today=new Date();
		if (myDate<today) {
			alert("Non e\' possibile indicare una scadenza con data gia\' trascorsa");
			risulta=false;
		}
	}
	return risulta;
}

function check_ricerca(form,cerca) {
	if (form.ecocerca.value == "" || form.ecocerca.value==cerca) {
		form.ecocerca.focus();
		return false;
	}
}

function check_cerca(testo,cerca) {
	if (testo.value=='') {
		testo.value=cerca;
	} else
		if (testo.value==cerca)
			testo.value='';
	if (!suggeridiv)
		document.getElementById('suggerimenti').style.display='none';
}

function aggiorna_cerca(testo) {
	document.getElementById('ecocerca').value=testo;
	document.getElementById('formacerca').submit();
}

function sopradiv() {
	suggeridiv=true;
}

function fuoridiv() {
	suggeridiv=false;
}

function check_simili(testo) {
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null) {
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	var path="?contenuto=suggerimento&ritesto="+testo.value;
	document.getElementById('suggerimenti').innerHTML='';
	//alert("path: "+path);
	xmlhttp.onreadystatechange=cercaParole;
	xmlhttp.open("GET",path,true);
	xmlhttp.send(null);	
}

function cercaParole() {
	if (xmlhttp.readyState==4 && xmlhttp.status==200) {
		document.getElementById('suggerimenti').innerHTML=xmlhttp.responseText;
		if (document.getElementById('suggerimenti').innerHTML!='')
			document.getElementById('suggerimenti').style.display='block';
	}
}

function check_doc(forma) {
	if (forma.titolo.value == "") {
		alert("ATTENZIONE! Indicare il titolo/link del materiale");
		forma.titolo.focus();
		return false;					
	}
	if (document.getElementById('linkest').style.display=='') { // FILE REMOTO
		var patho=forma.pathremoto.value;
		if (patho.length==0) {
			// if (forma.task.value!='fineaggiornadoc') 
			alert("Indicare il path completo del file remoto (\'http:\/\/ ...\')");
			forma.pathremoto.focus();
			return false;
		} 
		else {
			if (path.indexOf(' ')!=-1) {
				alert("ATTENZIONE! Il link remoto non puo\' contenere spazi");
				return false;
			} 
			else {
				var estens=patho.substr(patho.length-4,4);
				var inizio=patho.substr(0,4);
				if (inizio!='http') {
					alert("ATTENZIONE! Indicare un link completo (i.e. \'http:\/\/ ...\')");
					forma.pathremoto.focus();
					return false;
				} 
				else
					if (estens!='.pdf') {
						var answer=confirm ("E\' sconsigliabile linkare file diversi dal PDF. Procedere ugualmente?");
						if (!answer) {
							forma.pathremoto.focus();
							return false;
						}
					}
			}
		}
	}
	else { // FILE LOCALE (UPLOAD)
		if (forma.task.value!='fineaggiornadoc')
			if (forma.attach1.value=="") {
				alert("E\' necessario selezionare un file per l\'upload");
				return false;
			}
	}
	return conferma("");
}

function check_elencodoc(forma) {
	var tasko=forma.task.value;
	var answer;
	
	switch (tasko) {
		case 'salva':
			if (!cambio) {
				alert("Non risultano modifiche da salvare");
				return false;
			}
			else {
				var seletto=document.getElementById('id_materiale');
				seletto.multiple=true;
				for (i=0; i<seletto.options.length;i++)
					seletto.options[i].selected = true;
				return true; 
			}
			break;
		case 'deldoc':
			if (forma.id_materiale.value=="") {
				alert("Selezionare un file");
				return false;
			} else {
				answer = confirm ('Confermi l\'eliminazione ?');
				if (answer)
					return true;
				else
					return false;
			}
			break;
		case 'nascdoc':
			if (forma.id_materiale.value=="") {
				alert("Selezionare un file");
				return false;
			} else {
				answer = confirm ('Confermi l\'operazione ?');
				if (answer)
					return true;
				else
					return false;
			}
			break;
		default:
			if (forma.id_materiale.value=="") {
				alert("Selezionare un file");
				return false;
			}
			else
				return true;
	}
}

function eccez(primodiv, secondodiv, bool) {
	if (bool) {
		document.getElementById(primodiv).style.display = '';
		document.getElementById(secondodiv).style.display = 'none';
	}
	else {
		document.getElementById(primodiv).style.display = 'none';
		document.getElementById(secondodiv).style.display = '';
	}
}

function mod_colore(obj,m_pos) {
	if (m_pos=="mover") {
	    obj.style.backgroundColor="gray";
	    obj.style.color="white";
	} else {
	    obj.style.backgroundColor="white";
	    obj.style.color="black";
	}
}

function toggleSelect(nome_sel) {
    if (nome_sel=="uno") {
        document.form1.mese.disabled = false;
        document.form1.mese.style.backgroundColor = "white";
        document.form1.anno.disabled = false;
        document.form1.anno.style.backgroundColor = "white";
        
    } else {
        document.form1.mese.disabled = true;
        document.form1.mese.style.backgroundColor = "gray";
        document.form1.anno.disabled = true;
        document.form1.anno.style.backgroundColor = "gray";
        }
}

function verifica_ambito(campo) {
	var path;
	switch (campo)
	{
	case 'condizione':
		//path="http://host.uniroma3.it/facolta/economia/economia.asp?tabella=anagrafica&finestra=xmlreq&valore="+document.getElementById('condizione').value+"|null";
		break;
	case 'autobus23':
		path="http://host.uniroma3.it";
		var params="nav=4&service=paline&action=dettaglio&id_fermata=71907";
		//path="http://www.uniroma3.it/page.php?page=Guida_all";
		camporichiesta='autobus23';
		break;
	case 'richiesta':
		path="http://host.uniroma3.it/facolta/economia/economia.asp?contenuto=suggerimento&testo="+document.getElementById('richiesta').value;
		camporichiesta='richiesta';
		break;
	default:
		//altri casi
	}
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null) {
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	//xmlhttp.onreadystatechange=stateChanged(campo);
	xmlhttp.onreadystatechange=stateChanged;
	//alert("path: " + path);
	xmlhttp.open("GET",path,true);
	xmlhttp.send(null);	
}

function stateChanged() {
	if (xmlhttp.readyState==4 && xmlhttp.status==200) {
		//alert(camporichiesta);
		switch (camporichiesta) {
		case 'richiesta':
			document.getElementById('suggerimento').innerHTML=xmlhttp.responseText;
			break;
		case 'autobus23':
			document.getElementById('autobus23').innerHTML=stripHTML(xmlhttp.responseText);
			break;
		default:
			//altri casi
		}
	}
}

function chiamaSaveAs(titolo){
	if (document.execCommand) {
	document.execCommand('SaveAs',null,titolo);
	}
}

function move(selectO,to) {
	var index = selectO.selectedIndex;
	var selectLength  = selectO.length - 1;
	
	if (index == -1) return false;
	
	if(to == +1 && index == selectLength)
	{
		return false;
	}
	else if(to == -1 && index == 0)
	{
		return false;
	}
	swap(index,index+to,selectO);
	return true;
}
    
function swap(fIndex,sIndex,selectO) {
	cambio=true;
	fText  = selectO.options[fIndex].text;
	fValue = selectO.options[fIndex].value;
	selectO.options[fIndex].text  = selectO.options[sIndex].text;
	selectO.options[fIndex].value = selectO.options[sIndex].value;  
	
	selectO.options[sIndex].text = fText;
	selectO.options[sIndex].value = fValue;
	
	selectO.options[sIndex].selected = true;    
}

// Move the currently selected item between two select menus
function moveSelectItem(currField, newField) {
	var selectedIndex = currField.selectedIndex;
		
	if (selectedIndex == -1) {
		return;
	}
		
	var selectedOption = currField.options[selectedIndex];
	if (selectedOption.value=="" || isNaN(selectedOption.value))
		return;

	// If "None" exists in new menu, delete it.
	for (var i = 0; i < newField.options.length; i++) {
		if (newField.options[i].disabled) {
			// Delete item from old menu
			for (var j = i + 1; j < newField.options.length; j++) {
				newField.options[j - 1].value = newField.options[j].value;
				newField.options[j - 1].text = newField.options[j].text;
			}
			newField.options.length -= 1;
		}
	}

	// Add item to new menu
	newField.options.length += 1;
	newField.options[newField.options.length - 1] = new Option(selectedOption.text, selectedOption.value);

	// Delete item from old menu
	for (var i = selectedIndex + 1; i < currField.options.length; i++) {
		currField.options[i - 1].value = currField.options[i].value;
		currField.options[i - 1].text = currField.options[i].text;
	}
	currField.options.length -= 1;

	// If no items are left in the current menu, add a "None" item.
	if (currField.options.length == 0) {
		currField.options.length = 1;
		currField.options[0] = new Option('Nessuno', '');
		currField.options[0].disabled = true;
	}

	// Update selected item
	else if (currField.options.length > 0) {
		currField.selectedIndex = selectedIndex < (currField.options.length - 1) ? selectedIndex : (currField.options.length - 1);
	}
}

function asse_docins(form) {
	var assigno = form.assigned;
	var assignedIds = '';
	var assidoce = form.assidocenti;
	var assignedDIds = '';
	var procedi=true;
	
	if (assidoce.options.length<=3) {
		for (var j = 0; j < assidoce.options.length; j++) {
			if (assignedDIds != '') {
				assignedDIds += ':';
			}
			assignedDIds += assidoce.options[j].value;
		}
		form.insDocAssigned.value = assignedDIds;
	}
	else {
		alert("Si possono selezionare al massimo 3 docenti");
		procedi=false;
	}
	
	if (assigno.options.length<=3) {
		for (var i = 0; i < assigno.options.length; i++) {
			if (assignedIds != '') {
				assignedIds += ':';
			}
			assignedIds += assigno.options[i].value;
		}
		form.insAssigned.value = assignedIds;		
	}
	else {
		alert("Si possono selezionare al massimo 3 insegnamenti");
		procedi=false;
	}
	return procedi;
}