// JavaScript Document

function confirmSubmit(frmName,operName,Msg,Action)
{
			
			error=ChkValues(frmName);

			field=error[1];
			error=error[0];

			if(error==0){
				
				if(operName!=""){
					document.forms[frmName].elements['oper'].value=operName; 
				}	
				
				
				if(Action!=null){
					document.forms[frmName].action=Action; 
				}
							
				if(Msg!=''){
					var agree=confirm(Msg);
					if (agree){
						document.forms[frmName].submit();
						return true ;
					}else{
						return false ;
					}
				}else{
						document.forms[frmName].submit();
						return true ;
				}

				return true ;
			}else{
				
				makeError(error,field);
			}
	
}

function confirmSubmitId(frmName,operName,Msg,Action,Id)
{
	document.forms[frmName].elements['recordId'].value=Id; 
	confirmSubmit(frmName,operName,Msg,Action);
}

function ChkValues(frmName)
{
		
		var elem = document.getElementById(frmName).elements;

		error=0;
		
		for(var i = 0; i < elem.length; i++)
		{
				
				var splitname = elem[i].name.split("_");
				var fieldname = splitname.shift();
				
 				switch (elem[i].type){
						case "file":
								
								case "file":
									if(elem[i].value!=""){
										error=checkeFile(elem[i].value);
									}else{
										error=102;
									}
										
										break;
										
								case "checkbox":
									for (var sn = 0; sn < splitname.length; sn++) {
										if (splitname[sn]=="obl" && elem[i].checked == false){
											error=102;
										}
									}					
								break;
		
						case "text":
						case "password":
							  
								  
								  for (var sn = 0; sn < splitname.length; sn++) {
		 								
									
										if(elem[i].value!=""){
											
												switch (splitname[sn]) {
													// Verifico formato numerico
													case "num":
														error=checknumber(elem[i].value);
														break;
													// Verifico formato intero
													case "int":
														error=checkintnumber(elem[i].value);
														break;
													// Verifico formato data
													case "date":
														error=checkDate(elem[i].value);
														break;
													// Verifico formato testo
													case "txt":
														error=checktxt(elem[i].value);
														break;
													// Verifico formato login
													case "log":
														error=checklog(elem[i].value);												
														break;
													// Verifico formato password
													case "pas":
														error=checkPassword(elem[i].value);											
														break;
													// Verifico formato mail
													case "mal":
														error=checkemail(elem[i].value);
														break;
						
													// Verifico formato generico
													case "gen":
														//error=checkgen(elem[i].value);
												}  
												
										}else{
				
													if(splitname[sn]=="obl"){
														error=102;
													}
											
										}
										if(error!=0){break;}

								   }
						
					
				}
				if(error!=0){break;}	
				
		}		

		error = Array(error,fieldname);
		
		return error;

}



// Verifico che il valore sia un numero float
function checknumber(value){
	if(isNaN(value)){
		error= 103;
	}else{
		error= 0;
	}
	
	return error;
}

// Verifico che il valore sia un numero intero
function checkintnumber(value){

	error=0;
	if(!checknumber(value)){

		var IsFound = /^-?\d+$/.test(value);
		if(!IsFound){
			error= 104;
		};

	}else{
		error=103;	
	}
	
	return error

}

// Verifico le generalità
function checkgen(value){

		return 200;

}

// Verifico le generalità del login e password
function checklog(value){
		var error = 0;
		var illegalChars = /[\W_]/; // allow only letters and numbers
		
		if (illegalChars.test(value)) {
			  error = 108;
		}else if (!((value.search(/(a-z)+/)) && (value.search(/(A-Z)+/)) && (value.search(/(0-9)+/)))) {
			   error = 109;
		}  
		return error;

}

function checkPassword (value) {
var error = 0;

    var illegalChars = /[\W_]/; // allow only letters and numbers
    
    if ((value.length < 2) || (value.length > 8)) {
       error = 110;
    }
    else if (illegalChars.test(value)) {
      error = 111;
    } 
    else if (!((value.search(/(a-z)+/)) && (value.search(/(A-Z)+/)) && (value.search(/(0-9)+/)))) {
       error = 111;
    }  
return error;    
}   


function checkEmail (value) {
var error=0;

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(value))) { 
       error = 12;
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (value.match(illegalChars)) {
          error = 113;
       }
    }
return error;    
}


// Verifico il campo file
function checkeFile(value){
		
		var splitname 	= value.split('\\');
		var name 		= splitname.pop();
		
		name			= name.replace(/\./g,'');
		name			= name.replace(/\_/g,'');

		var error = 0;
		
			var illegalChars = /[\W_]/; // allow only letters and numbers
			
			if (name.length > 30) {
				error = 106;	
			}else if (illegalChars.test(name)) { 
				error = 106;	
			}else if (!((name.search(/(a-z)+/)) && (name.search(/(A-Z)+/)) && (name.search(/(0-9)+/)))) {
			   	error = 106;
			}  
			

		return error;    

}


function makeError(value,field){
	
			var errorBox ="";
			
			errorBox+="<iframe name=\"iframeError\" width=\"300px\" height=\"300px\" frameborder=\"0\""; 
			errorBox+="src=\""+RootPath+"/engine/modules/error.php?er="+value+"&fld="+field+"\">";
			errorBox+="</iframe>";
			
			document.getElementById('errorBox').innerHTML=errorBox;
			
			document.getElementById('errorBox').className='erBox';
			document.getElementById('backpanel').className='backpanel';
	
}

function CloseError(){
			parent.document.getElementById('errorBox').innerHTML = "";
			parent.document.getElementById('errorBox').className = 'hidden';
			parent.document.getElementById('backpanel').className= 'hidden';
}
