function ajaxs()
{
	var xmlhttp=false;
	try 
	{
		xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
	}
 	catch (e) 
	{
		try 
		{
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		}
 		catch (E) 
		{
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
	{
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function distritos()
{
	if($("#habilita_distritos").is(':checked')){ 
		var $select_distritos = $('#distritos');
		var $select_zonas = $('#zonas');  
		
		var seleccionado = [];
		$('#sucursales option:selected').each(function() {
			seleccionado.push($(this).attr('value'));
		});
		var sucursales = JSON.stringify(seleccionado);		
		
		//request the JSON data and parse into the select element
		$.getJSON('Modules/productividades/libreria_general.php?case=1&sucursales='+sucursales, function(data){
	 
		  //eliminamos todos los 
		  $select_distritos.html('');
		  $select_zonas.html('');
	 
		  //iteramos sobre cada elemento sucursal del json.
		  $.each(data, function(key, val){ 
			$select_distritos.append('<option selected="selected" value="' + val.LocalizacionJerarquicaID + '">' + val.Descripcion + '</option>');
		  })
		});
	}	
}

function zonas()
{
	if($("#habilita_zonas").is(':checked')){
	
		var $select_zonas = $('#zonas'); 
		
		var seleccionado = [];
		$('#distritos option:selected').each(function() {
			seleccionado.push($(this).attr('value'));
		});
		var distritos = JSON.stringify(seleccionado);		
		
		//request the JSON data and parse into the select element
		$.getJSON('Modules/productividades/libreria_general.php?case=2&distritos='+distritos, function(data){
	 
		  //eliminamos todos los 
		  $select_zonas.html('');
	 
		  //iteramos sobre cada elemento sucursal del json.
		  $.each(data, function(key, val){ 
			$select_zonas.append('<option selected="selected" value="' + val.LocalizacionJerarquicaID + '">' + val.Descripcion + '</option>');
		  })
		});
	}
}

function getProductividadBarra()
{
	$('#loader').removeClass('hide');
	
	var fecha_hasta = document.getElementById('fecha_hasta_hidden').value;		
	var fecha_desde = document.getElementById('fecha_desde_hidden').value;
	
	//obtenemos el ultimo nivel que esta configurado en el sistema para trabajar.
	var localizacion_jerarquica_configurado = document.getElementById('localizacion_jerarquica_configurado').value;
	//obtenemos todas las localizaciones jerarquicas seleccionadas.
	var localizacion_jerarquica = get_localizaciones_jerarquicas();
	//obtnemos el nivel de localizacion jerarquica con que se va a realizar la eficiencia.
	var nivel = null;
	if($("#habilita_zonas").is(':checked'))
		nivel = 3;
	else if($("#habilita_distritos").is(':checked'))
		nivel = 2;
	else
		nivel = 1;
		
	var inicio = $('#fecha_desde').datepicker('getDate');
	var fin   = $('#fecha_hasta').datepicker('getDate');
	var cantidad_dias = (fin - inicio)/1000/60/60/24;	
	
	ajax=ajaxs();
	ajax.open('POST', 'Modules/productividades/libreria_general.php',true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.send('case=3&fecha_desde='+fecha_desde
					+'&fecha_hasta='+fecha_hasta
					+'&localizacion_jerarquica_configurado='+localizacion_jerarquica_configurado
					+'&nivel='+nivel
					+'&localizacion_jerarquica='+localizacion_jerarquica);
	ajax.onreadystatechange=function() 
	{
		if (ajax.readyState==4) 
		{
			if(ajax.responseText)
			{
				GraficarBarra(ajax.responseText,cantidad_dias);
				//$('#loader').addClass('hide');
				getProductividadTorta();
			}
			else
			{
			   jQuery.gritter.add({
				 title: 'Información.',
				 text: 'No se ha podido llevar adelante el proceso. Intente nuevamente.',
				 class_name: 'growl-danger',
				 sticky: false,
				 time: '3000'
			   });
			}
		}
	}
}

/** Inicializacion de los valores para el gráfico de eficiencia **/
function GraficarBarra(datos,cantidad_dias) {
  var options = {
    animation: {
      duration: 250,
      easing: 'linear',
    },	
	title : 'Productividad: Visitados con Ventas, Visitados sin Ventas, No visitados',
	width: 950,
	height: 400,
	vAxis: {title: 'Visitados con Ventas, Visitados sin Ventas, No visitados'},
	vAxis: {viewWindow: {min:0, max:110}},
	hAxis: {title: "Dias"},
	hAxis: {viewWindow: {min:0, max:5}},
	seriesType: "bars",
	backgroundColor:  {stroke:'black', fill:'#e4e7ea', strokeSize: 1},
    series: [{'color': '#1A8763'}],
    intervals: { 'lineWidth':2, 'barWidth': 0.90, style: 'boxes','boxWidth': 0.95 },
	series: [{'color': '#1A8763'}],
  };

  var chart = new google.visualization.ComboChart(document.getElementById('grafico_barra'));
  var data = new google.visualization.DataTable(datos);

  var retroceder = document.getElementById('retroceder');
  var avanzar = document.getElementById('avanzar');
  function drawChart() {
    google.visualization.events.addListener(chart, 'ready',
        function() {
          retroceder.disabled = options.hAxis.viewWindow.min <= 0;
          avanzar.disabled = options.hAxis.viewWindow.max >= cantidad_dias+1;
        });
    chart.draw(data, options);
  }
  drawChart();

  retroceder.onclick = function() {
    options.hAxis.viewWindow.min -= 1;
    options.hAxis.viewWindow.max -= 1;
    drawChart();
  }
  avanzar.onclick = function() {
    options.hAxis.viewWindow.min += 1;
    options.hAxis.viewWindow.max += 1;
    drawChart();
  }
}

/** Fin de inicializacion de los valores para el gráfico de eficiencia **/

function getProductividadTorta()
{
	$('#loader').removeClass('hide');
	
	var fecha_hasta = document.getElementById('fecha_hasta_hidden').value;		
	var fecha_desde = document.getElementById('fecha_desde_hidden').value;
	
	//obtenemos el ultimo nivel que esta configurado en el sistema para trabajar.
	var localizacion_jerarquica_configurado = document.getElementById('localizacion_jerarquica_configurado').value;
	//obtenemos todas las localizaciones jerarquicas seleccionadas.
	var localizacion_jerarquica = get_localizaciones_jerarquicas();
	//obtnemos el nivel de localizacion jerarquica con que se va a realizar la eficiencia.
	var nivel = null;
	if($("#habilita_zonas").is(':checked'))
		nivel = 3;
	else if($("#habilita_distritos").is(':checked'))
		nivel = 2;
	else
		nivel = 1;

	ajax=ajaxs();
	ajax.open('POST', 'Modules/productividades/libreria_general.php',true);
	ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajax.send('case=4&fecha_desde='+fecha_desde
					+'&fecha_hasta='+fecha_hasta
					+'&localizacion_jerarquica_configurado='+localizacion_jerarquica_configurado
					+'&nivel='+nivel
					+'&localizacion_jerarquica='+localizacion_jerarquica);
	ajax.onreadystatechange=function() 
	{
		if (ajax.readyState==4) 
		{
			if(ajax.responseText)
			{
				GraficarTorta(ajax.responseText);
				$('#loader').addClass('hide');
				$('.charts-menu.charts-menu-vertical').find('div').first().remove();
			}
			else
			{
			   jQuery.gritter.add({
				 title: 'Información.',
				 text: 'No se ha podido llevar adelante el proceso. Intente nuevamente.',
				 class_name: 'growl-danger',
				 sticky: false,
				 time: '3000'
			   });
			}
		}
	}
}

function GraficarTorta(datos) {
	
	//Buscamos el nivel de localizacion jerarquica con el que se esta trabajando y obtenemos el primer option
	//seleccionado.
	if($("#habilita_zonas").is(':checked'))
	{
		$("#zonas option").each(function()
		{
			if($(this).is(':selected')){
				selectedValue = $(this).html();
				return false;
			}
		});
	}
	else if($("#habilita_distritos").is(':checked')){
		$("#distritos option").each(function()
		{
			if($(this).is(':selected')){
				selectedValue = $(this).html();
				return false;
			}
		});
	}
	else{
		$("#sucursales option").each(function()
		{
			if($(this).is(':selected')){
				selectedValue = $(this).html();
				return false;
			}
		});	
	}
	
	// Define a category picker control for the Gender column
	var categoryPicker = new google.visualization.ControlWrapper({
	  'controlType': 'CategoryFilter',
	  'containerId': 'control1',
	  'options': {
		'filterColumnLabel': 'Localización Jerárquica',
		'ui': {
		'labelStacking': 'vertical',
		  'allowTyping': false,
		  'allowMultiple': false
		},
		
	  },
	  'state': {'selectedValues': [selectedValue]}
	});
  
	// Define a Pie chart
	var pie = new google.visualization.ChartWrapper({
	  'chartType': 'PieChart',
	  'containerId': 'grafico_torta',
	  
	  'options': {
		'width': 900,
		'height': 500,
		'legend': 'right',
		'title': 'Productividad: Visitados con Ventas, Visitados sin Ventas, No visitados',
		'backgroundColor':  {stroke:'black', fill:'#e4e7ea', strokeSize: 1},
		is3D: true,
		'pieSliceText' : 'none'
	  },
	  'view': {'columns': [0, 1]}
	});
  
	new google.visualization.Dashboard(document.getElementById('dashboards')).bind([categoryPicker], [pie]).draw(datos);

}


function get_localizaciones_jerarquicas(){
	
	var localizaciones_jerarquicas = null;
	var seleccionado = [];
	//verificamos si hay algunas zonas seleccionadas.
	if($("#habilita_zonas").is(':checked')){ 
		seleccionado = [];
		$('#zonas option:selected').each(function() {
			seleccionado.push($(this).attr('value'));
		});	
		localizaciones_jerarquicas =JSON.stringify(seleccionado);
	}
	
	//verificamos si hay algunos distritos seleccionados.
	else if($("#habilita_distritos").is(':checked')){ 
		seleccionado = [];
		$('#distritos option:selected').each(function() {
			seleccionado.push($(this).attr('value'));
		});	
		localizaciones_jerarquicas =JSON.stringify(seleccionado);			
	}
	
	//verificamos si hay algunas sucursales seleccionadas.
	else { 
		seleccionado = [];
		$('#sucursales option:selected').each(function() {
			seleccionado.push($(this).attr('value'));
		});	
		localizaciones_jerarquicas =JSON.stringify(seleccionado);			
	}
	
	return localizaciones_jerarquicas;
}

function habilitar_distritos(){
	if($("#habilita_distritos").is(':checked')){  
		$("#distritos").removeAttr( "disabled" );
		$("#habilita_zonas").removeAttr( "disabled" );
		distritos();
	}
	else{
  	    $("#distritos").attr({disabled: "disabled",value: "disabled"});
  	    $("#zonas").attr({disabled: "disabled",value: "disabled"});
  	    $("#habilita_zonas").attr({disabled: "disabled",value: "disabled"});	
		$("#habilita_zonas").removeAttr( "checked" );
		$('#distritos option').remove();
		$('#zonas option').remove();
	}
}

function habilitar_zonas(){
	if($("#habilita_zonas").is(':checked')){  
		$("#zonas").removeAttr( "disabled" );
		zonas();
	}
	else{
  	    $("#zonas").attr({disabled: "disabled",value: "disabled"});
		$('#zonas option').remove();
	}
}
