(function($) {
	$.fn.fatture = function(options) {
		$('input[name*=prezzo_unitario]').keyup(function(){
			$.fn.fatture.TotaleFattura();
			$.fn.fatture.scadenze();
		});
		
		$('input[name*=quantita]').keyup(function(){
			$.fn.fatture.TotaleFattura();
			$.fn.fatture.scadenze();
		});
		
		$('#FatturaEditForm #FatturaIvaId').change(function(){
			$.fn.fatture.TotaleFattura();
			$.fn.fatture.scadenze();
		});
		
		$('#FatturaEditForm #FatturaTipoDiPagamentoId').change(function(){
			$.fn.fatture.scadenze();
		});
	}
	
	$.fn.fatture.TotaleImponibile = function() {
		totaleImponibile=0;
		
		i=0;
		$('input[name*=prezzo_unitario]').each(function(){
			prezzoUnitario=parseFloat($(this).val());
			quantita=parseFloat($('input[name*=quantita]').eq(i).val());
//			console.log(prezzoUnitario);
//			console.log(quantita);
			
			if(!isNaN(prezzoUnitario) && !isNaN(quantita)){
				totaleVoce=(prezzoUnitario*quantita);
			
				totaleImponibile+=totaleVoce;
			}
			i++;
		});
		
//		console.log(totaleImponibile);
		
		totaleImponibile=$.fn.roundNumber(totaleImponibile,2);
		
		$('#FatturaEditForm #FatturaTotaleImponibile').attr('value',totaleImponibile);
		$('#FatturaEditForm #FatturaTotaleImponibileEtichetta').attr('value',totaleImponibile);
	}
	
	$.fn.fatture.TotaleIva = function() {
		switch($('#FatturaEditForm #FatturaIvaId option:selected').val()){
			case '1':
				iva=0.04;
			break;
			
			case '2':
				iva=0.1;
			break;
			
			case '3':
				iva=0.2;
			break;
			
			default:
				iva=0;
			break;
		}
		
		totaleImponibile=parseFloat($('#FatturaEditForm #FatturaTotaleImponibile').val());
		
		totaleIva=totaleImponibile*iva;
		
		totaleIva=$.fn.roundNumber(totaleIva,2);
		
		$('#FatturaEditForm #FatturaTotaleIva').attr('value',totaleIva);
		$('#FatturaEditForm #FatturaTotaleIvaEtichetta').attr('value',totaleIva);
		return totaleIva
	}
	
	$.fn.fatture.TotaleFattura = function() {
		totaleImponibile=$.fn.fatture.TotaleImponibile();
		totaleIva=$.fn.fatture.TotaleIva();
		
		totaleFattura=totaleImponibile+totaleIva;
		
		totaleFattura=$.fn.roundNumber(totaleFattura,2);
		
		$('#FatturaEditForm #FatturaTotaleFattura').attr('value',totaleFattura);
		$('#FatturaEditForm #FatturaTotaleFatturaEtichetta').attr('value',totaleFattura);
	}
	
	$.fn.fatture.scadenze = function() {
		numScadenze=$.fn.fatture.scadenzeGeneraInput();
		
		$.fn.fatture.scadenzeCalcolaQuote(numScadenze);
		$.fn.fatture.scadenzeCalcolaDate();
	}
	
	$.fn.fatture.scadenzeGeneraInput = function() {
		switch($('#FatturaEditForm #FatturaTipoDiPagamentoId option:selected').val()){
			case '6':
			case '13':
				numScadenze=2;
			break;
			
			case '7':
			case '14':
				numScadenze=3;
			break;
			
			default:
				numScadenze=1;
			break;
		}
		
		if($('.DataScadenzaFattura .bloccoHasMany').length>numScadenze){
			for(i=$('.DataScadenzaFattura .bloccoHasMany').length-1; i>=numScadenze; i--)
				$('.DataScadenzaFattura img.hasManyDelete').eq(i).trigger('click');
		}else if($('.DataScadenzaFattura .bloccoHasMany').length<numScadenze){
			for(i=$('.DataScadenzaFattura .bloccoHasMany').length; i<numScadenze; i++)
				$('.DataScadenzaFattura img.hasManyAdd').eq(0).trigger('click');			
		}
		
		return numScadenze;
	}
	
	$.fn.fatture.scadenzeCalcolaDate = function() {
		switch($('#FatturaEditForm #FatturaTipoDiPagamentoId option:selected').val()){
			case '2':
			case '9':
				blocchiScadenze=30;
			break;
			
			case '3':
			case '10':
				blocchiScadenze=60;
			break;
			
			case '4':
			case '11':
				blocchiScadenze=90;
			break;
			
			case '5':
			case '12':
				blocchiScadenze=120;
			break;
			
			case '6':
			case '13':
				blocchiScadenze=new Array(30,60);
			break;
			
			case '7':
			case '14':
				blocchiScadenze=new Array(30,60,90);
			break;
						
			default:
				blocchiScadenze=0;
			break;
		}		
		
		dataFattura=$('#FatturaEditForm #FatturaDataFattura').val();
		
//		console.log(dataFattura);
		if(dataFattura=='')
			alert('Devi inserire una Data Fattura!');
		
		dataFatturaArray=dataFattura.match(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})/);
				
		timestampFattura=Date.UTC(dataFatturaArray[3],dataFatturaArray[2]-1,dataFatturaArray[1]);
		
//		console.log(timestampFattura);

		if(blocchiScadenze.length>1){
			for (i in blocchiScadenze){
				dataBlocco=timestampFattura+(3600*24*blocchiScadenze[i]*1000);
				dataBlocco= new Date(dataBlocco);
				
				dataBloccoIta=dataBlocco.getDate()+'/'+(dataBlocco.getMonth()+1)+'/'+dataBlocco.getFullYear();
				
				$('input[name*=data_scadenza]').eq(i).attr('value',dataBloccoIta);
			}
		}else{
			dataBlocco=timestampFattura+(3600*24*blocchiScadenze*1000);
			dataBlocco= new Date(dataBlocco);
			
			dataBloccoIta=dataBlocco.getDate()+'/'+(dataBlocco.getMonth()+1)+'/'+dataBlocco.getFullYear();
			
			$('input[name*=data_scadenza]').attr('value',dataBloccoIta);
		}
	}
	
	$.fn.fatture.scadenzeCalcolaQuote = function(numScadenze) {		
		quotaScadenza=parseFloat($('#FatturaEditForm #FatturaTotaleFattura').val())/numScadenze;

		$('input[name*=totale_scadenza]').each(function(){
			$(this).attr('value',quotaScadenza);			
		});
	}
})(jQuery);
