// Magiko Javascript Utilities

	// funzione per prendere un elemento con id univoco
	function prendiElementoDaId(id_elemento) {
		var elemento;
		if(document.getElementById)
			elemento = document.getElementById(id_elemento);
		else
			elemento = document.all[id_elemento];
		return elemento;
	};	

	/* Send a form */
	function send(formName){
		var form = document.getElementById(formName);
		if(mySubmit(form))
			form.submit();
	}

	function showError(text,element){
		var border = "1px solid #FF0000";	
		element.style.border = border;
		alert(text);
		element.focus();
	}
	
	function mySubmit(form){
		with(form){
			for(var x=0; x < elements.length;x++){
				var validation = "";
				
				if((elements[x].type == "select-one")||(elements[x].type == "textarea")){
					validation = elements[x].title;
				}else{
					validation = elements[x].alt;
				}	
				
				if(validation){
					var validator = validation.split('|');
					switch (validator[0]){
						case '*': // Controllo campo obbligatorio
							if(elements[x].value == ""){
								showError(validator[1],elements[x]);
								return;
							}
						break;
						case '#': // Controllo se il campo è un numero
						break;
						case 'email': // Controllo se il campo ha un'email valida
							var string = elements[x].value;
							
							if(string ==""){
								showError(validator[1],elements[x]);
								return;
							}
							
							if (string.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1){							
								showError("Email non valida",elements[x]);
								return;
							}
						break;
						case 'select': // Controllo se la select è stata selezionata
						break;
					}
				}
				
			}	
		}
		
		return true;
	
	}


function mySubmit3(form){
	with(form){
		for(var x=0; x < elements.length;x++){
			elements[x].style.border="1px solid #663333";
			var validation = elements[x].alt;
			if(elements[x].type == "select-one"){
				validation =elements[x].title;
				}
			if(validation){
				var validator = validation.split('|');
				switch (validator[0]){
					case '*':						
						if (elements[x].value == "") {														
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
						return;
						}
						if(!checkMinValue(elements[x].value,2)){
							elements[x].style.border="1px solid red";
							alert("Attenzione devono essere inseriti minimo 2 caratteri");
							elements[x].focus();
							return;								
						}
						if((validator[2] != "") && (elements[x].value == validator[2])){											
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
							return;
						}
					break;
					case '#':
						if (elements[x].value == "") {							
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
						return;
						}else{
							var number =elements[x].value.replace(/[\,\.]/g,"");
							if(isNaN(number)){												
								alert("Inserire un numero")
								if(elements[x].type != "hidden"){
									elements[x].style.border="1px solid red";
									elements[x].focus();
									elements[x].value="";
									}
							return;						
							}
						}					
					break;
					case 'compare':
						var first  = elements[x].value;
						var sel    = elements[validator[1]];
						var second = elements[sel.name].options[sel.selectedIndex].value;
						if(first == ""){											
							elements[x].style.border="1px solid red";
							alert(validator[2]);
							elements[x].focus();
							return;						
							}
							var number =first.replace(/[\,\.]/g,"");
							if(isNaN(number)){
								elements[x].style.border="1px solid red";
								alert("Il campo deve essere un numero");
								elements[x].focus();
							return;						
							}

						if(second < first){							
							
							elements[x].style.border="1px solid red";
							alert("Attenzione l'importo è più grande della classifica selezionata");
							elements[x].focus();
							return;
						}
						
					break;
					case 'select':
						var result = elements[x].options[elements[x].selectedIndex].value;
						if(result==validator[1]){
							elements[x].style.border="1px solid red";
							alert(validator[2]);
							elements[x].focus();							
							return;
							}
					break;
					case 'radio':
						var result = elements[x].checked;
						if(result != true){						
							elements[x].style.border="1px solid red";
							alert(validator[1]);
							elements[x].focus();
							return;
							}
						
					break;
					case 'email':
						var string = elements[x].value;
						if(string ==""){
							elements[x].style.border="1px solid red";
							alert(validator[1]);	
							elements[x].focus();
							return;
							}
						if (string.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1){							
							elements[x].style.border="1px solid red";
							alert("Attenzione email non valida");
							elements[x].focus();
							return;
							}
					break;
					case 'dataInPast':
						var time = elements[x].value.split('/');
						var day  = elements[time[0]].value;
						var mon  = elements[time[1]].value;
						var yea  = elements[time[2]].value;
						
						var today = new Date();
						var check = new Date();
						
						check.setFullYear(yea,mon-1,day);
						
						if(today.getTime() > check.getTime()){
							alert(validator[1]);		
							return;
						}
						
						if(check.getDate() != day){
							alert(validator[2]);		
							return;						
						}
					break;
					case 'dataCompare':
						var time     = elements[x].value.split('|');
						var arrivo   = time[0].split('/');
						var data1 = new Date();
							data1.setFullYear(elements[arrivo[2]].value,elements[arrivo[1]].value-1,elements[arrivo[0]].value); 
						var partenza = time[1].split('/');
						var data2 = new Date();
							data2.setFullYear(elements[partenza[2]].value,elements[partenza[1]].value-1,elements[partenza[0]].value); 
						if(data2.getTime() < data1.getTime()){
							alert(validator[1]);		
							return;								
						}
						var data3 = new Date();
						data3 = data1.setMonth(data1.getMonth()+2);
					if(data2.getTime() > data3){
							alert("L'intervallo di tempo selezionato è troppo grande");
							return;
						}
					break;
        }				
		}
	}
		
	form.submit();
	}
}

	
	function closeWin(){
		window.close();
	}		

	function isHome(homepage){
		if(homepage == 1){
			document.write("<img src=\"./img/home.gif\">")
		}else{
			document.write("&nbsp;")
			}
	}

	function popup(website){
		var windowprops='width=1,height=1,scrollbars=yes,status=no,resizable=yes,location=no'
		var leftdist = 10;   
		var topdist = 10; 
		var lunghezza = 750;
		var altezza = 650;
		
		if(lunghezza == 0){
			lunghezza = window.screen.availWidth;
				}
		if(altezza == 0){
			altezza = window.screen.availHeight;
		}
		
		if (window.resizeTo&&navigator.userAgent.indexOf("Opera")==-1) {
			var sizer = window.open("","","left=" + leftdist + ",top=" + topdist +","+ windowprops);	
			sizer.resizeTo(lunghezza, altezza);
			sizer.location = website;
		}
		else
			window.open(website,'mywindow');		
	}

	function deleteItem(website){
		var agree=confirm("Sei sicuro di voler cancellare l'elemento selezionato?");
		if (agree)
			location.href = website;
		else
			return false ;
			
		return true;
	}
	
	function add_gruppo(id_gruppo){
		var nome_gruppo = prompt('Inserisci il nome del nuovo gruppo');
		var sel = prendiElementoDaId(id_gruppo);
		sel.options[sel.options.length] = new Option(nome_gruppo);
	}	

