
function init_flusso_form() {
  $('#ins_mod_analisi_flusso').submit( function() {
    var options = {
        iframe: true,
        target:        '#contenuti_flusso',   // target element(s) to be updated with server response
        beforeSubmit:  validate_flusso,  // pre-submit callback
        success:  submit_flusso,  // post-submit callback
        error: function() {
          alert('error');
        },

        // other available options:
        url:       index_url + 'analisi/ajaxSubmitFlusso',         // override for form's 'action' attribute
        //type:      'post'        // 'get' or 'post', override for form's 'method' attribute
        dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit

        // $.ajax options can be used here too, for example:
        //timeout:   3000
     };
     $(this).ajaxSubmit(options);
      return false;
  });

}

function validate_flusso() {
    //var queryString = $.param(formData);
    var submitted = $('#submitted').val();

//    $('#nome').rules("add",{
//         required: true,
//         maxlength: 255,
//         messages: {
//           required: "Inserisci il nome",
//           maxlength: "Il nome deve contenere al massimo 255 caratteri"
//         }
//    })
//    $('#data').rules("add",{
//         required: true,
//         messages: {
//           required: "Inserisci la data"
//         }
//    })
//    $('#upload_allegato').rules("add",{
//         required: true,
//         accept: "csv",
//         messages: {
//           required: "Inserisci il file csv",
//           accept: "Il file deve essere csv"
//         }
//    })
//    var v = $("#ins_mod_olio_flusso").validate();
//    alert(v);
//if (submitted == 'allegato')
//        alert(v.element("#upload_allegato"));
//    if (submitted == 'ok') {
//        alert(v.element("#nome"));
//        alert(v.element("#data"));
//    }

    var n = 0;

    if (submitted == 'allegato') {
        var filename = $('#upload_allegato').val();
        var ext = filename.substring(filename.lastIndexOf('.'));
        if (filename.substring(filename.lastIndexOf('.')) != '.csv') {
           n = 1;
          alert('Inserisci un file csv');
        }
    } else if (submitted == 'ok') {

      n = $("#ins_mod_analisi_flusso").validate({
              rules: {
//                  nome: {
//                      required: true,
//                      maxlength: 255
//                  },
                     barcode: "required",
                     dataanalisi: "required",
                     upload_allegato: {
                          accept: "csv",
                          required: true
                      }
               },
              messages: {
                 barcode: "Inserisci il barcode",
                 dataanalisi: "Inserisci una data",
                 upload_allegato: "Inserisci un file csv"
              }
        }).numberOfInvalids();
    }
    if (n>0) return false;
    return true;
}

function submit_flusso(responseText) {
    $('#errors').empty();
    $('#successes').empty();
    responseText = jQuery.trim(responseText);
   
    if (responseText == 'csv_error') {
        $('#errors').append('<div class="error">Problemi con il file csv. Riprovare!</div>');
    }
    else if (responseText == 'csv_data_error') {
        $('#errors').append('<div class="error">Errori nel file csv. Riprovare!</div>');
    }
    else if (responseText == 'barcode_error') {
        $('#errors').append('<div class="error">Barcode non trovato. Impossibile associare l\'analisi ad un olio.</div>');
    }
    else if (responseText == 'flusso_inserito') {
      $('#contenuti_flusso').empty();
      $('#field_flusso').hide();
      //$('#ins_mod_analisi_flusso').clearForm();
      $('#barcode').val('');
      showDataFieldsInit(false);
      $('#dataanalisi').val(curr_date);
      $('#upload_allegato').val('');
      $('#successes').append('<div class="success">Analisi di flusso inserita con successo!</div>');
      //$('#upload_allegato').remove();
      //$('#upload_flusso_submit').insertBefore('<input type="file" id="upload_allegato" name="upload_allegato" size="60" class="upload_allegato" />');

    }
    else {
    	$('#contenuti_flusso').empty();
    	$('#field_flusso').show();
        
      $('#contenuti_flusso').append(responseText);
      //$('#analisi_temp').css("height","600")
      /* */
      $('#analisi_temp').html(LOADER.loader).load('/analisi/ajaxLoadFlusso', {id:"temp",type:"ins_anteprima"}, function(data) {
         //alert('here');
         var ok = check_flusso_submission();
         if (!ok)
           $('#errors').append('<div class="error">Errori nel file csv. Riprovare!</div>');
         else {
           $('#successes').append('<div class="success">Analisi di flusso caricata con successo!</div>');
         //alert('here1');
         }
      });
      
    }

}

function GraphFlussi() {
   this.type= "confronto";
	this.currIndex = 0;
	this.flussiId = new Array();
	this.selected = new Array();
	
	this.addFlusso = function (id) {
		this.flussiId.push(id);
	}
	
	this.loadFlussi = function (type) {
      if (type)
         this.type = type;
		if (this.currIndex >= this.flussiId.length)
			return;
		this.loadFlusso(this.flussiId[this.currIndex]);
		this.currIndex++;
	}
	
	this.loadFlusso = function (id) {


		var obj = this;
		$('#chart_'+id).html(LOADER.loader).load('/analisi/ajaxLoadFlusso', {id:id,type:this.type}, function(data) {
   			obj.loadFlussi();
		}); 
	}
	
	this.removeView = function (id) {
		$('#td_'+id).html("");
		this._removeSelected(id);
	}
	
	this.select = function (id,value) {
		if (value)
			this.selected[id] = id;
		else 
			this._removeSelected(id);
		if (this.getSelectedSize() > 0) 
			$('#button_media').attr("disabled",false);
		else
			$('#button_media').attr("disabled",true);
	}
	
	this._removeSelected = function (id) {
		var tmp = new Array();
		if (this.selected[id]) {
			for(var k in this.selected)
				if (k != id)
					tmp[k] = k;
		}
		this.selected = tmp;
		if (this.getSelectedSize() > 0) 
			$('#button_media').attr("disabled",false);
		else
			$('#button_media').attr("disabled",true);
	}
	
	this.getSelected = function () {
		return this.selected;
	}
	
	this.getSelectedSize = function() {
		var size = 0;
		for(var k in this.selected)
			if (k) size++;
		return size;
	}
	
	this.loadAvg = function () {
		if (this.getSelectedSize() < 2) {
			alert("devi selezionare almeno due grafici");
			return ;
		}
		var ids = "";
		for(var k in this.selected)
			if (k) 
				ids += k + ";";
      $('#chart_Avg').css('display','block');
		$('#chart_Avg').html(LOADER.loader).load('/analisi/ajaxLoadAvgFlussi', {ids:ids}, function(data) {
			
		}); 
	}
}


function showDataFields(show,mod) {
	if (show) 
		$('.dati_analisi').show();
	else 
		$('.dati_analisi').hide();
   if(mod)
		$('.dati_analisi_mod').show();
	else 
		$('.dati_analisi_mod').hide();
}

function showDataFieldsInit(show) {
	if (show) 
		$('.dati_analisi_init').show();
	else {
		$('.dati_analisi_init').hide();
		$('.dati_analisi_mod').hide();
   }
}

graphFlussi = new GraphFlussi();
