		function checkNumberFormat(e, allowEmpty)
		{
		  if(allowEmpty != true && allowEmpty != false)
		    allowEmpty = true;
		
		  if(e == "")
		  {
		    if(allowEmpty)
		      return true;
		    else
		      return false;
		  }
		  else
		  {
		    var check;
		
		    check = (e + '').search( /[^0-9]/ );
		
		    if( check < 0 )
		      return true;
		    else
		      return false;
		  }
		}
		
		function controllaCampi()
		{
			numeroPagine 	= document.getElementById("foliazione").value;
		  numeroCopie 	= document.getElementById("tiratura").value;
		  
		  var err = "";
		  
		  if ( !checkNumberFormat( numeroPagine, false ) )
		  	err += "- 'Pagine' è un campo obbligatorio e deve essere numerico intero\n";
		  else if ( numeroPagine < 80 || numeroPagine > 800 )
				err += "- 'Pagine' deve essere compreso fra 80 ed 800\n";
				
		  if ( !checkNumberFormat( numeroCopie, false ) )
		  	err += "- 'Copie' è obbligatorio e deve essere numerico intero\n";
		 	else if ( numeroCopie < 20 || numeroCopie > 1000 )
				err += "- 'Copie' deve essere compreso fra 20 ed 1000\n";

			
		 	if ( err != "" )
		 		alert( "ATTENZIONE:\n\n" + err );
		 
		 	return err == "";
		}
		
		function calcolaCostoPubblicazione()
		{
			if ( !controllaCampi() )
				return;
			
			// PARAMETRI DI CALCOLO
		
			// bw
			costoFissoPerPaginaBW 					= 0.0227678;
			fissoPerPaginaMinimoPagineBW 		= 64;
			costoPagineEccedentiPerPaginaBW	= 0.010349;
			pagineEccedentiPacchettoBW  		= 2;
		
			// colore
			costoFissoPerPaginaColore 					= 0.124188;
			fissoPerPaginaMinimoPagineColore 		= 64;
			costoPagineEccedentiPerPaginaColore = 0.10349;
			pagineEccedentiPacchettoColore			= 4;
		
		  // bw / colore
		  if ( document.getElementById('ddlInterni').value == 'bn' )
		  {
				//costoPagina 								= costoPaginaBW; 							
				costoFissoPerPagina 					= costoFissoPerPaginaBW; 								
				fissoPerPaginaMinimoPagine 		= fissoPerPaginaMinimoPagineBW; 							
				costoPagineEccedentiPerPagina = costoPagineEccedentiPerPaginaBW;
				pagineEccedentiPacchetto			= pagineEccedentiPacchettoBW;
		  }
		  else // colore
		  {
				//costoPagina 								= costoPaginaColore; 							
				costoFissoPerPagina 					= costoFissoPerPaginaColore; 								
				fissoPerPaginaMinimoPagine 		= fissoPerPaginaMinimoPagineColore; 							
				costoPagineEccedentiPerPagina = costoPagineEccedentiPerPaginaColore;
				pagineEccedentiPacchetto			= pagineEccedentiPacchettoColore;
		  }
		  
			costoIsbn 									= 3;
			costoVisioneFile 						= 5;
			costoSpedizioneBiblioteche 	= 1;
			costoInvioContrattoAutore 	= 1;
		
		  numeroPagine 	= document.getElementById("foliazione").value;
		  numeroCopie 	= parseInt( document.getElementById("tiratura").value ) + 4;
		  scontoTiratura = scontoPerTiraturaCalcola();
		  costoCopertina = costoCopertinaCalcola();
		  costoProvaStampa = 0;
		  margineContribuzione = 0.87;
  		costoCopertinaStampa = 0.20698;

		
			// CALCOLO
		
			// calcolo ed arrotondo le pagine eccedenti
			pagineEccedenti = numeroPagine <= fissoPerPaginaMinimoPagine ? 0 : numeroPagine - fissoPerPaginaMinimoPagine;
			if ( pagineEccedenti != 0 )
			{
				if ( pagineEccedenti % pagineEccedentiPacchetto != 0 )
					pagineEccedenti = ( Math.floor( pagineEccedenti / pagineEccedentiPacchetto ) * pagineEccedentiPacchetto ) + pagineEccedentiPacchetto;
			}
		
			// costi
			costoFissoMinimoPagine = costoFissoPerPagina * fissoPerPaginaMinimoPagine;
			costoFissoPagineEccedenti = pagineEccedenti * costoPagineEccedentiPerPagina;
			
			costoSingolaCopiaNonScontato = costoFissoMinimoPagine + costoFissoPagineEccedenti + costoCopertinaStampa;
			costoTiratura = costoSingolaCopiaNonScontato * numeroCopie;
			costoTiratura = costoTiratura - (costoTiratura * scontoTiratura);
		
		  costoTotale = costoTiratura + costoCopertina + costoIsbn + costoVisioneFile + costoSpedizioneBiblioteche + costoInvioContrattoAutore;
		  costoTotale = costoTotale + (costoTotale * margineContribuzione);
		  costoTotale = Math.ceil( costoTotale );
			
			document.getElementById('txtCostoResult').value = costoTotale + ' euro * ';
		}

		function scontoPerTiraturaCalcola()
		{
			var copie  = document.getElementById("tiratura").value;
			
			// bw
			if ( document.getElementById('ddlInterni').value == 'bn' )
			{
				if ( copie >= 500 )
					return 0.58;
				else if ( copie >= 400 )
					return 0.53;
				else if ( copie >= 300 )
					return 0.48;
				else if ( copie >= 200 )
					return 0.45;
				else if ( copie >= 100 )
					return 0.40;
				else if ( copie >= 50 )
					return 0.35;
				else if ( copie >= 20 )
					return 0.25;
				else if ( copie >= 15 )
					return 0.20;
				else if ( copie >= 10 )
					return 0.15;
				else if ( copie >= 5 )
					return 0.10;
				else // 1 copia
					return 0;
			}
			else // colore
			{
				if ( copie >= 300 )
					return 0.8;
				else if ( copie >= 200 )
					return 0.75;
				else if ( copie >= 100 )
					return 0.70;
				else if ( copie >= 50 )
					return 0.65;
				else if ( copie >= 20 )
					return 0.60;
				else if ( copie >= 15 )
					return 0.55;
				else if ( copie >= 10 )
					return 0.50;
				else if ( copie >= 5 )
					return 0.45;
				else if ( copie >= 3 )
					return 0.4;
				else if ( copie >= 2 )
					return 0.3;
				else // 1 copia
					return 0;
			}
			
		}

		function costoCopertinaCalcola()
		{
			var h = document.getElementById('copertina');
			if ( h.value == "ci" || h.value == "mi" )
			{
				return 30;
			}  
			else
			{
				return 10;
			}	
		}
