﻿
var arrayMeteoCat = ['italia','europa','mondo','mare','venti','montagna','aeroporti'];

function move(id,day_hour){
	var id_day = $('div#mapNav a.buttonOn').attr('id');
	var id_hour = $('div#mapNav a.on').attr('id');
	var path_ind_barra = document.location.href.lastIndexOf("/");
	path_ind_barra += 1;
	var path_ind_meteo = document.location.href.lastIndexOf("meteo/previsioni");
	path_ind_meteo += 17;
	
	var path_pref = document.location.href.substring(0, path_ind_meteo-11);
	var path_suff = document.location.href.substring(path_ind_meteo, path_ind_barra);
	
	if(day_hour==0){ //day
		id_hour=id_hour.substring(5);
		$('#wheaterStrip').load(path_pref+'contenuti/bricks/'+path_suff+'home_map_'+id+'_'+id_hour+'.html',null,relinkSearch);

		refreshAdvAndNielsen(id,id_hour);
	}
	else{ //hour
		id_day=id_day.substring(4);
		$('#wheaterStrip').load(path_pref+'contenuti/bricks/'+path_suff+'home_map_'+id_day+'_'+id+'.html',null,relinkSearch);
		refreshAdvAndNielsen(id_day,id);
	}
}

function moveEUW(id){
	var id_day = $('div#mapNav a.buttonOn').attr('id');
	var path_ind_barra = document.location.href.lastIndexOf("/");
	path_ind_barra += 1;
	var path_ind_meteo = document.location.href.lastIndexOf("meteo/previsioni");
	path_ind_meteo += 17;
	
	var path_pref = document.location.href.substring(0, path_ind_meteo-11);
	var path_suff = document.location.href.substring(path_ind_meteo, path_ind_barra);
	
	$('#wheaterStrip').load(path_pref+'contenuti/bricks/'+path_suff+'home_map_'+id+'.html',null,relinkSearch);
	refreshAdvAndNielsen(id, -1);
}

function selectWorld(){
	var key_ind = document.location.href.lastIndexOf("/");
	var key = document.location.href.substring(0, key_ind);
	key_ind = key.lastIndexOf("/");
	key = key.substring(key_ind+1);
	
	if(key=="nord_america")
		$("a#na").addClass("on");
	else if(key=="sud_america")
		$("a#sa").addClass("on");
	else if(key=="africa")
		$("a#af").addClass("on");
	else if(key=="asia")
		$("a#as").addClass("on");
	else if(key=="oceania")
		$("a#oc").addClass("on");
}

var acMeteoOptions = {
    minChars: 3,
	scroll: false,
	mustMatch: true,
	cacheLength: 80,
    dataType: 'json', // this parameter is currently unused
    parse: function(data) {
        var parsed = [];
        
        for (var i = 0; i < data.length; i++) {
            parsed[parsed.length] = {
                data: data[i],
                value: data[i].nome,
                result: data[i].nome
            };
        }
 
        return parsed;
    },
    formatItem: function(item) {
        return item.nome;
    }
};

function getMeteoPositionURL(){
	var path_ind_meteo = document.location.href.lastIndexOf("meteo/previsioni");
	path_ind_meteo += 17;
	var path_suff = document.location.href.substring(path_ind_meteo);
	var path_ind_barra = path_suff.indexOf("/");
	var keyword = path_suff.substring(0,path_ind_barra);
	
	return keyword;
}

function changeTopMenuMeteo(){
	/*if($.cookie('PWF')==null)
		$.cookie('PWF','italia|5913|mondo|A0850|mondo|D4935', { path: '/Meteo24Backend/' });*/
		
	//attiva la sezione in alto nella pagina
	$('li a[@accesskey].on').removeClass('on');
	
	var keyword=getMeteoPositionURL();
	for(var i=0; i<arrayMeteoCat.length; i++)
		if(keyword==arrayMeteoCat[i])
			$('li a[@accesskey='+(i+2)+']').addClass('on');
	
	//setta l'autocompletamento per la ricerca
	$("#searchFieldH").autocomplete('/Meteo24Backend/locations.do', acMeteoOptions).result(function(e, data) {
						var pos = data.link;
						if(pos.indexOf('europa')>0)
							pos=pos.replace('mondo/','');
        		var where = '/meteo/previsioni/' + pos;
            $('#searchFormF').attr('action',where);
        });
        
  preparaSelectMeteo();
  selectWorld();
}

function moveCity(id){
	var loc = $('#location_id').attr('value');
	var path = $('#page_info_path').attr('value');
	path = path.replace('\\','/');
	
	jQuery.ajax({
				type: 'POST',
	      url: '/Meteo24Backend/details.do',
	      data: 'id='+loc+'&d='+id+'&path='+path,
	      success : function(dataRes, textStatus){
	      	$('#cityStrip').html(dataRes);
			relinkSearch();
	      },
	      error : function(x, txt, e){
	      	//???
	      }
	  });
	refreshAdvAndNielsen(id, -1);
}

function compileBoxes(){
			jQuery.ajax({
	      url: '/Meteo24Backend/user_forecasts.do',
	      dataType : 'json',
	      dataRes : {},
	      success : function(dataRes, textStatus){
	        if(dataRes.length>0)
					{
						var box = ['','',''];
						
						var meteoCookie = '';
						
						for(var i=0; i<3; i++)
						{
							link_city = dataRes[i].link;
							if(link_city.indexOf('europa')>0)
								link_city=link_city.replace('mondo/','');
							 
							box[i] = '<a id="city" href="' + link_city + '">' + dataRes[i].localita + '</a><ul>';
							box[i] += '<li id="icon" class="' + dataRes[i].icona + ' iconAlign">Lorem Ipsum</li>';
							box[i] += '<li id="temp" class="big">' + dataRes[i].temp + 'º</li>';
							box[i] += '<li id="perc" class="small">percepita<br />' + dataRes[i].t_perc + 'º</li>';
							box[i] += '<li><a style="cursor: pointer" onclick="changeAspectBoxes('+i+')">Cambia localit&agrave;</a></li></ul>';
							meteoCookie+='('+dataRes[i].localita+'|'+dataRes[i].icona+'|'+dataRes[i].temp+'|'+dataRes[i].t_perc+'|'+link_city+')';
						}
						
						$('#smallMapBox1').html(box[0]);
						$('#smallMapBox2').html(box[1]);
						$('#smallMapBox3').html(box[2]);
						
						var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
						var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
													'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
						
						var d = new Date();
						var time = d.getTime();
						time += 604800000;
						d.setTime(time);
						
						document.cookie ='BOXMETEOTMP='+meteoCookie+'; expires='+days[d.getDay()]+', '+d.getDate()+' '+months[d.getMonth()]+' '+d.getYear()+' '+d.getHours()+'.'+d.getMinutes()+'.'+d.getSeconds()+'; path=/';
					}
					else 
					{
						var mycookie = '';
						var allcookies = document.cookie.split(';');
						for(var i=0;i < allcookies.length;i++) {
							var c = allcookies[i];
							while (c.charAt(0)==' ') c = c.substring(1,c.length);
							if (c.indexOf('BOXMETEOTMP') == 0) 
								mycookie=c.substring('BOXMETEOTMP'.length,c.length);
						}
						
						mycookie=mycookie.substring(2, mycookie.length-1);
						var elem_list=mycookie.split(')(');
						
						var box = ['','',''];
						
						for(var i=0; i<3; i++)
						{
							var elem=elem_list[i].split('|');
							box[i] = '<a id="city" href="' + elem[4] + '">' + elem[0] + '</a><ul>';
							box[i] += '<li id="icon" class="' + elem[1] + ' iconAlign">Lorem Ipsum</li>';
							box[i] += '<li id="temp" class="big">' + elem[2] + 'º</li>';
							box[i] += '<li id="perc" class="small">percepita<br />' + elem[3] + 'º</li>';
							box[i] += '<li><a style="cursor: pointer">Cambia localit&agrave;</a></li></ul>';
						}
						
						$('#smallMapBox1').html(box[0]);
						$('#smallMapBox2').html(box[1]);
						$('#smallMapBox3').html(box[2]);
					}
	      },
	      error : function(x, txt, e){
	      	var mycookie = '';
					var allcookies = document.cookie.split(';');
					for(var i=0;i < allcookies.length;i++) {
						var c = allcookies[i];
						while (c.charAt(0)==' ') c = c.substring(1,c.length);
						if (c.indexOf('BOXMETEOTMP') == 0) 
							mycookie=c.substring('BOXMETEOTMP'.length,c.length);
					}
					
					mycookie=mycookie.substring(2, mycookie.length-1);
					var elem_list=mycookie.split(')(');
					
					var box = ['','',''];
					
					for(var i=0; i<3; i++)
					{
						var elem=elem_list[i].split('|');
						box[i] = '<a id="city" href="' + elem[4] + '">' + elem[0] + '</a><ul>';
						box[i] += '<li id="icon" class="' + elem[1] + ' iconAlign">Lorem Ipsum</li>';
						box[i] += '<li id="temp" class="big">' + elem[2] + 'º</li>';
						box[i] += '<li id="perc" class="small">percepita<br />' + elem[3] + 'º</li>';
						box[i] += '<li><a style="cursor: pointer">Cambia localit&agrave;</a></li></ul>';
					}
					
					$('#smallMapBox1').html(box[0]);
					$('#smallMapBox2').html(box[1]);
					$('#smallMapBox3').html(box[2]);
	      }
	  });
}

var tinyBoxesData = [-1, '', '', '', '', ''];

function changeAspectBoxes(ind){

	if(tinyBoxesData[0]!=-1)
	{
		var boxHtml = '<a id="city" href="' + tinyBoxesData[5] + '">' + tinyBoxesData[1] + '</a><ul>';
		boxHtml += '<li id="icon" class="' + tinyBoxesData[2] + ' iconAlign">Lorem Ipsum</li>';
		boxHtml += '<li id="temp" class="big">' + tinyBoxesData[3] + '</li>';
		boxHtml += '<li id="perc" class="small">' + tinyBoxesData[4] + '</li>';
		boxHtml += '<li><a style="cursor: pointer" onclick="changeAspectBoxes('+tinyBoxesData[0]+')">Cambia localit&agrave;</a></li></ul>';
		$('#smallMapBox'+(tinyBoxesData[0]+1)).html(boxHtml);
		tinyBoxesData = [-1, '', '', '', '', ''];
	}
	
	if(ind!='-1')
	{
		tinyBoxesData[0] = ind;
		tinyBoxesData[1] = $('#smallMapBox'+(ind+1)+' a#city').html();
		tinyBoxesData[2] = $('#smallMapBox'+(ind+1)+' ul li#icon').attr('class');
		tinyBoxesData[3] = $('#smallMapBox'+(ind+1)+' ul li#temp').html();
		tinyBoxesData[4] = $('#smallMapBox'+(ind+1)+' ul li#perc').html();
		tinyBoxesData[5] = $('#smallMapBox'+(ind+1)+' a#city').attr('href');
		
		//compila il nuovo box
		var boxHtml = '<form action="" id="saveForm" class="saveFormFH"><fieldset>';
		boxHtml += '<input type="text" id="saveFieldH" class="searchField" />';
		boxHtml += '<input type="input" style="cursor: pointer;" id="saveSubmitH" class="saveSubmit" value="salva" title="salva" onclick="changeDataBoxes('+ind+');"/>';
		boxHtml += '<input type="input" style="cursor: pointer;" id="cancelSubmitH" class="cancelSubmit" value="annulla" title="annulla" onclick="changeAspectBoxes(-1);"/>';
		boxHtml += '</fieldset></form>';
		
		$('#smallMapBox'+(ind+1)).html(boxHtml);
		
		$("#saveFieldH").autocomplete('/Meteo24Backend/locations.do', acMeteoOptions)
				.after('<input type="hidden" name="ac_result_3box" id="ac_result_3box">')
				.after('<input type="hidden" name="ac_result_3where" id="ac_result_3where">')
        .result(function(e, data) {
            $('#ac_result_3box').val(data.id);
            $('#ac_result_3where').val((data.zona).toLowerCase());
        }); //da testare
	}
}

//lancia l'update, se riesce lancia la funzione di caricamento, altrimenti segnala errore
function changeDataBoxes(ind){
	
	var keyword = $('#ac_result_3where').val();
	var indice = ind+1;
	var id_city = $('#ac_result_3box').val();
	
	if(id_city == '')
	{
		alert('Seleziona una località\ntra quelle suggerite');
		return false;
	}
	
	jQuery.ajax({
				type: 'POST',
	      url: '/Meteo24Backend/edit_user_forecasts.do',
	      data: 'id='+id_city+'&idx='+indice+'&z='+keyword,
	      success : function(dataRes, textStatus){
	      	tinyBoxesData = [-1, '', '', '', '', ''];
	      	compileBoxes();
	      },
	      error : function(x, txt, e){
	      	//???
	      }
	  });
}

function prevOnload(){
	/*if($.cookie('PWF')==null)
		$.cookie('PWF','italia|5913|mondo|A0850|mondo|D4935', { path: '/Meteo24Backend/' });*/
	
	//$('li a[@accesskey=2]').addClass('on');
	
	$("#searchFieldH").autocomplete('/Meteo24Backend/locations.do', acMeteoOptions)
				.result(function(e, data) {
        		var pos = data.link;
						if(pos.indexOf('europa')>0)
							pos=pos.replace('mondo/','');
        		var where = '/meteo/previsioni/' + pos;
            $('#searchFormF').attr('action',where);
        });
        
	compileBoxes();
	
	var myDate=new Date();
	
	var days = ['Domenica', 'Luned&igrave;','Marted&igrave;','Mercoled&igrave;','Gioved&igrave;','Venerd&igrave;','Sabato'];
	var months = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',
								'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
	
	var stringaMess = '';
	
	var ora = myDate.getHours();
	if(ora <10)
		ora = '0'+ora;
	var minuto = myDate.getMinutes()
	if(minuto <10)
		minuto = '0'+minuto;
	
	stringaMess += days[myDate.getDay()] + ' ' + myDate.getDate() + ' ';
	stringaMess += months[myDate.getMonth()]; /*+ ', ' + ora;
	stringaMess += ':' + minuto + 'h';*/
	
	$('#datePrevision').html(stringaMess);
	
	//nuovo per bollo ora + cambio
	if(ora<15 && ora>=10)
		moveHome(1);
	else if(ora<21 && ora>=15)
		moveHome(2);
	else if(ora>=21)
		moveHome(3);
	else
		moveHome(0);
}

var firsttime = 0;

function moveHome(ind){
	var arrayImm=['/meteo/images/italia/italia_0_6.png',
								'/meteo/images/italia/italia_0_12.png',
								'/meteo/images/italia/italia_0_18.png',
								'/meteo/images/italia/italia_0_24.png'];
	var arrayLink=['/meteo/contenuti/bricks/italia/mappa/strip_verticale_0_6.html',
								'/meteo/contenuti/bricks/italia/mappa/strip_verticale_0_12.html',
								'/meteo/contenuti/bricks/italia/mappa/strip_verticale_0_18.html',
								'/meteo/contenuti/bricks/italia/mappa/strip_verticale_0_24.html'];
	
	 $('div#mapNav a.on').removeClass('on');
	 $('#hourw'+ind).addClass('on');
	
	$('#mapHomeChange').attr('src',arrayImm[ind]);
	$('#blockCentral').load(arrayLink[ind]);
	
	var who = ['6','12','18','24'];
	
	if(firsttime==1)
	{
		refreshAdvAndNielsen(0, who[ind]);
	}
	else
		firsttime=1;
}


var reg_aero_mar_mont = [["abruzzo", "basilicata", "calabria", "campania", "emilia_romagna",
													"friuli_venezia_giulia", "lazio", "liguria", "lombardia", "marche",
													"molise", "piemonte", "puglia", "sardegna", "sicilia", 
													"toscana", "trentino_alto_adige", "umbria", "valle_d_aosta", "veneto"],
												 [1, 0, 1, 1, 1, //aeroporti
												  1, 1, 1, 1, 1,
												  0, 1, 1, 1, 1,
												  1, 0, 1, 1, 1],
												 [1, 1, 1, 1, 1, //mari
												  1, 1, 1, 0, 1,
												  1, 0, 1, 1, 1,
												  1, 0, 0, 0, 1],
												 [1, 1, 1, 1, 1, //montagne
												  1, 1, 0, 1, 1,
												  1, 1, 0, 0, 1,
												  1, 1, 0, 1, 1]];

		  
function preparaSelectMeteo(){
	
	var found = 0;
	var block = getMeteoPositionURL();
	var isSingle = 0;
	
	if(block != 'europa' && block != 'mondo' && block != 'venti')
	{
		var boxHtml = '<fieldset><label for="filterCategory">Filtra per categoria:</label><select name="filterCategory" id="filterCategory" onchange="lanciaMeteoDaSelect(this.value);" style="font-size:12px;font-weight:normal;"><option value="0">Scegli...</option>';
									
		var path_ind_meteo = document.location.href.lastIndexOf("meteo/previsioni/"+block);
		path_ind_meteo += 18 + block.length;
		var path_suff = document.location.href.substring(path_ind_meteo);
		var path_ind_barra = path_suff.indexOf("/");
		var keyword = path_suff.substring(0,path_ind_barra);
		
		var pre_pos = document.location.href.lastIndexOf("meteo/previsioni");
		pre_pos += 17;
		var pre = document.location.href.substring(0, pre_pos);
		/*var post = document.location.href.substring(pre_pos);
		var post_pos = post.indexOf("/");
		post = post.substring(post_pos);*/
		
		for(var i=0; i<reg_aero_mar_mont[0].length && found==0; i++){
			if(keyword==reg_aero_mar_mont[0][i]){
				if(block != 'italia'){
					boxHtml += '<option value="' + pre + 'italia/' + keyword + '">Città</option>';
					isSingle++;
				}
				if(block != 'mare' && reg_aero_mar_mont[2][i]!=0){
					boxHtml += '<option value="' + pre + 'mare/' + keyword + '">Località Mare</option>';
					isSingle++;
				}
				if(block != 'montagna'  && reg_aero_mar_mont[3][i]!=0){
					boxHtml += '<option value="' + pre + 'montagna/' + keyword + '">Località Montagna</option>';
					isSingle++;
				}
				/*if(block != 'aeroporti' && reg_aero_mar_mont[1][i]!=0){
					boxHtml += '<option value="' + pre + 'aeroporti/' + keyword + '">Aeroporti</option>';
					isSingle++;
				}*/
				
				found = 1;
			}
		}
		
		boxHtml += '</select></fieldset>';
		
		if(isSingle > 0)
			$('#filters').html(boxHtml);
	}
}

function lanciaMeteoDaSelect(page){
	$('#filters').attr('action',page);
	document.forms.filters.submit();
}

function refreshAdvAndNielsen(ident, ora){
	
	var myDate=new Date();
	
	var days = ['dom', 'lun','mar','mer','gio','ven','sab'];
	var stringaMess = document.location.href+'giorno';
	
	stringaMess += '_' + days[(myDate.getDay()+ident)%7];
	
	if(ora!=-1)
		stringaMess += '_' + ora;
	
	refreshAdvFrame();
	nielsenRefresh(stringaMess/*.replace('//','/')*/);
}

function relinkSearch() {
$("#searchFieldH").autocomplete('/Meteo24Backend/locations.do', acMeteoOptions).result(function(e, data) {
        		var pos = data.link;
						if(pos.indexOf('europa')>0)
							pos=pos.replace('mondo/','');
        		var where = '/meteo/previsioni/' + pos;
            $('#searchFormF').attr('action',where);
        });
}		

function verifySend(){
	if($('#searchFormF').attr('action')=='')
	{
		alert('selezionare una località tra quelle suggerite'); 
		return false;
	}
	else{
		return true;
	}
}