function sincronizar_cache(){
	if (navigator.onLine)
	{
	console.log("entra a sincronizar el cache");
	var espero_completar_sincronizacion = new Promise ((resolve,reject)=>{
		return resolve();
	});
espero_completar_sincronizacion.then(response =>{
	return sincronizo_a_servidor_datos(response);
}).then(response1 => {
	return actualizo_registros_json(response1);
}).then(response2 => {
	return actualizo_ruido_standard_json(response2);
}).then(response2a => {
    return actualizo_ruido_inspecciones_json(response2a);
}).then(response3 => {
    return sincronizo_a_servidor_fotos(response3);
}).then(response3a => {
    return actualizo_frentes_obra_json(response3a);
}).then(response4 => {
	limpio_datos_sincronizacion();
    return response4;
	});

}
}

function actualizar_jsons(){
	//console.log("entra a sincronizar jsons.............................");
var espero_actualizar_jsons = new Promise ((resolve,reject)=>{
		return resolve();
	});
espero_actualizar_jsons.then(response =>{
	return actualizo_registros_json(response);
}).then(response2 => {
	return actualizo_ruido_standard_json(response2);
}).then(response2a => {
    return actualizo_ruido_inspecciones_json(response2a);
}).then(response2b => {
    return actualizo_frentes_obra_json(response2b);
});
}


function limpio_datos_sincronizacion(){
	caches.open('IM_CACHE-V1').then(cache => {	
		var dato1_a_agregar = {
			"tipo":"sql",
			"contenido": ''
		}
		var dato2_a_agregar = {
			"tipo":"media",
			"contenido": ''
		}   
		var datos_a_agregar = [];
		datos_a_agregar.push(dato1_a_agregar);
		datos_a_agregar.push(dato2_a_agregar);
        cache.put('/sincronizacion/asincronizar.json', new Response(JSON.stringify(datos_a_agregar)));
       // console.log("9");
});

caches.open('IM_CACHE-V1').then(cache => {	
	cache.keys().then(function(keys) {
	  keys.forEach(function(request, index, array) {
		  var url = request.url;
		  var pos = url.search('archivos/fotos');
		  if (pos !== -1)
		  {
			cache.delete(request);
		  }	
	  });
	});
  })
//console.log("SE LIMPIO CACHE DE FOTOS"); 
caches.open('IM_CACHE-V1').then(cache => {	
	cache.keys().then(function(keys) {
	  keys.forEach(function(request, index, array) {
		  var url = request.url;
		  var pos = url.search('archivos/audios');
		  if (pos !== -1)
		  {
			cache.delete(request);
		  }	
	  });
	});
  })
//console.log("SE LIMPIO CACHE DE AUDIOS"); 
}

function actualizo_registros_json(result){
return new Promise( function(resolve, reject){
	var getUrl = window.location;
   	var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
	var phpfile = baseUrl + '/php/registros_consultar.php';
	var xhr = new XMLHttpRequest();	
	xhr.open('POST',phpfile,true);
	xhr.onload = function() {
		var data = JSON.parse(this.response);
			caches.open('IM_CACHE-V1').then(cache => {
			cache.match('/sincronizacion/registros.json').then(item => {
			cache.put('/sincronizacion/registros.json', new Response(JSON.stringify(data)));
				})
            })
            resolve(result);
        	};
    xhr.send();
   // console.log("1 y 5");
})
}

function actualizo_ruido_inspecciones_json(result){
	return new Promise( function(resolve, reject){
		var getUrl = window.location;
		   var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
		var phpfile = baseUrl + '/php/ruido_inspecciones_consultar.php';
		var xhr = new XMLHttpRequest();	
		xhr.open('POST',phpfile,true);
		xhr.onload = function() {
			var data = JSON.parse(this.response);
				caches.open('IM_CACHE-V1').then(cache => {
				cache.match('/sincronizacion/ruido_inspecciones.json').then(item => {
				cache.put('/sincronizacion/ruido_inspecciones.json', new Response(JSON.stringify(data)));
					})
				})
				resolve(result);
				};
		xhr.send();
	   // console.log("1 y 5");
	})
	}


	function actualizo_ruido_standard_json(result){
		return new Promise( function(resolve, reject){
			var getUrl = window.location;
			   var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
			var phpfile = baseUrl + '/php/ruido_standard_consultar.php';
			var xhr = new XMLHttpRequest();	
			xhr.open('POST',phpfile,true);
			xhr.onload = function() {
				var data = JSON.parse(this.response);
					caches.open('IM_CACHE-V1').then(cache => {
					cache.match('/sincronizacion/ruido_standard.json').then(item => {
					cache.put('/sincronizacion/ruido_standard.json', new Response(JSON.stringify(data)));
						})
					})
					resolve(result);
					};
			xhr.send();
		   // console.log("1 y 5");
		})
		}

		function actualizo_frentes_obra_json(result){
			return new Promise(function(resolve, reject){
				var getUrl = window.location;
				var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
				var phpfile = baseUrl + '/php/frentes_obra_consultar.php';
				var xhr = new XMLHttpRequest();	
				xhr.open('POST',phpfile,true);
				xhr.onload = function() {
					var data = JSON.parse(this.response);
						caches.open('IM_CACHE-V1').then(cache => {
						cache.match('/sincronizacion/frentes_obra.json').then(item => {
						cache.put('/sincronizacion/frentes_obra.json', new Response(JSON.stringify(data)));
							})
						})
						store.state.frentes_obra.frentes = JSON.stringify(data);
						resolve(result);
						};
				xhr.send();
			   // console.log("1 y 5");
			})
			}




function agrego_registros_a_sincronizar(sqls,fotos){
	var sql_anterior = '';
	var fotos_anterior = '';
	caches.open('IM_CACHE-V1').then(cache => {	
		cache.match('/sincronizacion/asincronizar.json').then(item => {
		if (typeof item !== 'undefined'){
			item.json().then(buffer => {
				if (sqls.length == 0 && buffer[0].contenido.length > 0)
				{
					var sql_agregar =  buffer[0].contenido;
				}
				else if (sqls.length > 0 && buffer[0].contenido.length == 0)
				{
					var sql_agregar =  sqls;
				}	
				else
				{
					var sql_agregar =  buffer[0].contenido + ";" + sqls;	
				}			
				if (fotos.length == 0 && buffer[1].contenido.length > 0)
				{
					var fotos_agregar =  buffer[1].contenido;
				}
				else if (fotos.length > 0 && buffer[1].contenido.length == 0)
				{
					var fotos_agregar =  fotos;
				}	
				else
				{
					var fotos_agregar =  buffer[1].contenido + "," + fotos;	
				}	
				var dato1_a_agregar = {
					"tipo":"sql",
					"contenido": sql_agregar
				}
				var dato2_a_agregar = {
					"tipo":"media",
					"contenido": fotos_agregar
				}   
				var datos_a_agregar = [];
				datos_a_agregar.push(dato1_a_agregar);
				datos_a_agregar.push(dato2_a_agregar);
				cache.put('/sincronizacion/asincronizar.json', new Response(JSON.stringify(datos_a_agregar)));
			})
        }
	});	

	
		})
	
	}


	function subir_media_offline(media){				   
									    caches.open('IM_CACHE-V1').then(cache => {	
											cache.match(media).then(item => {
												if (typeof item !== 'undefined'){
												item.blob().then(buffer => {
													var fd = new FormData();
													fd.append("archivomedia",buffer);
													fd.append("media",media);
															var getUrl = window.location;
															var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
															var phpfile = baseUrl + '/php/sincronizar_media.php';
															var xhr = new XMLHttpRequest();	
															xhr.open('POST',phpfile,true);
															xhr.onload = function() {
															};
															xhr.send(fd);
											})
                                        }

											})
                                        })
    							}


function sincronizo_a_servidor_datos(response2){
    return new Promise( function(resolve, reject){
									caches.open('IM_CACHE-V1').then(cache => {	
										cache.match('/sincronizacion/asincronizar.json').then(item => {
										if (typeof item !== 'undefined'){
											item.json().then(buffer => {
													if (buffer[0].contenido != '')		
													  {
															var fd = new FormData();
															contenido = buffer[0].contenido;
																//console.log(contenido);
															fd.append("sql",contenido);
															var getUrl = window.location;
															var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
															var phpfile = baseUrl + '/php/sincronizar.php';
															var xhr = new XMLHttpRequest();	
															xhr.open('POST',phpfile,true);
															xhr.onload = function() {
                                                               // console.log("2");
                                                                resolve(response2);
															};
															xhr.send(fd);
                                                      }
                                                      else
                                                      {
                                                          resolve(response2);
                                                      }
													});
                                                }
                                                else
                                                {
                                                     resolve(response2);
                                                }
										})													
                                    })
                                })
}									


function sincronizo_a_servidor_fotos(result){
    return new Promise( function(resolve, reject){    
caches.open('IM_CACHE-V1').then(cache => {	
	cache.match('/sincronizacion/asincronizar.json').then(item => {
		if (typeof item !== 'undefined'){
			item.json().then(buffer => {
				if(buffer[1].contenido != ''){
					var contenido = buffer[1].contenido;	
					var cada_foto = contenido.split(",");
					cada_foto.forEach(async (elemento) => {
						if (elemento.length > 10){
						await  subir_media_offline(elemento);
						}
					})
                }
               // console.log("3");
                resolve(result);
			})
        }
        else{
         //   console.log("3");
            resolve(result);
        }
})	
})
})
}