prevpub = {
	
	init: function() {
		
		$("span[@id^=cityPointerA_]").bind('click', prevpub.goCiudad).Tooltip({
			track: true,
			delay: 0
		});		
		prevpub.showing = false;
		prevpub.offset = daysoffset;
		prevpub.periodoSelector = false;
		prevpub.inactivePeriods = false;
		prevpub.periodo = period;
		
		prevpub.preloadicons();
		
		ul_cities = $("ul.cities");
	},
	nombrePeriodo: {
		M: 'Mañana',
		T: 'Tarde',
		N: 'Noche'
	},
	preloadicons: function() {
		prevpub.iconcache = [];
		prevpub.cacheImagesLoaded = 0;
		for (var i=1; i<=13; i++) {
			var fileName = 'icn_S_'+i+'.png';
			prevpub.iconcache[i]=new Image();
			prevpub.iconcache[i].onload = prevpub.cacheImageLoadCallback;
			prevpub.iconcache[i].onerror = prevpub.cacheImageLoadCallback;
			prevpub.iconcache[i].src = '/img/'+fileName;
		}
	},
	cacheImageLoadCallback: function() {
		prevpub.cacheImagesLoaded++;
		if (prevpub.cacheImagesLoaded==13) {			
			prevpub.readprevs();
					
		}
	},
	readprevs: function() {
		
		$.get("/php/ws/prevision_readprevs.php", { id_mapa: mapaid }, function(data) {
		 	json = eval('(' + data + ')');		 	
		 	if (json.ok) {		
		 			
		 		prevpub.symbols = json.prevs.symbols.list;
		 		prevpub.symbols_prevs = json.prevs.symbols.prevs;	
		 		
		 		$("li.week a").bind("click", prevpub.clickDay);
		 		$("ul.timeSelector_sm li").bind("click", prevpub.changePeriod);
		 		
		 		$("a.prev").bind("click", prevpub.prev);
		 		$("a.next").bind("click", prevpub.next);
		 		prevpub.showCitiesAndSymbols();
		 			
		 		prevpub.setPeriodSelector();
		 		$("div#loading").fadeOut(1200);
					
		 	}
		 });
	},
	clickDay: function() {
		prevpub.offset=$(this).attr("dayOffset");
		prevpub.selectDay(prevpub.offset);
		return false;
	},
	selectDay: function(offset) {
		$("li.week li").removeClass("selected");
		var wday=$("li.week li[@dayOffset="+offset+"]").addClass("selected").attr("wday");
		var mday=$("li.week li[@dayOffset="+offset+"] a").attr("innerHTML");
		$("li.prev strong").hide();
		$("span.day").empty().append(wday+" "+mday);
				
		$("li.prev strong").slideDown(200, function() {				
			prevpub.showCitiesAndSymbols();
			prevpub.setPeriodSelector();
		});
		
	},
	changePeriod: function() {
		if (prevpub.inactivePeriods) return false;
		var p = $(this).attr("id");
		if (p!=prevpub.periodo) {
			prevpub.unselectPeriod(prevpub.periodo);
			prevpub.periodo = p;
			prevpub.selectPeriod(prevpub.periodo);
			prevpub.showCitiesAndSymbols();
			$.cookie('period', p, {expires: 1});
			
			prevpub.changePeriodoLabel(p);
		}
		return false;
	},
	changePeriodoLabel: function(p) {
		$("span.daytime").empty().append(prevpub.nombrePeriodo[p]);
	},	
	selectPeriod: function(p) {
		if (prevpub.inactivePeriods) return;
		
		prevpub.changePeriodoLabel(p);
		$("li#"+p).empty();
		$("li#"+p).append('<span class="ro">'+prevpub.nombrePeriodo[p]+'</span>').addClass(p+"se");			
	},
	unselectPeriod: function(p) {
		
		$("li#"+p).empty();
		$("li#"+p).append('<a href="#"><span class="ro">'+prevpub.nombrePeriodo[p]+'</span></a>').removeClass(p+"se");	
	},
	next: function() {
		if (prevpub.offset==6) return false;
		prevpub.unselectPeriod(prevpub.periodo);
		
		if (prevpub.offset < 3) {
			if (prevpub.periodo == 'N') {
				prevpub.offset++;
				prevpub.selectDay(prevpub.offset);
				prevpub.periodo = 'M';
			}
			else if (prevpub.periodo == 'M') {
				prevpub.periodo = 'T';	
			}
			else if (prevpub.periodo == 'T') {
				prevpub.periodo = 'N';
			}
			prevpub.selectPeriod(prevpub.periodo);
			
			prevpub.showCitiesAndSymbols();	
		}
		else {
			prevpub.offset++;
			prevpub.selectDay(prevpub.offset);
			
		}
		
		return false;	
	},
	prev: function() {
		if (prevpub.offset==0 && prevpub.periodo=='M') return false;
		prevpub.unselectPeriod(prevpub.periodo);
		if (prevpub.periodo == 'M' || prevpub.offset>=3) {
			prevpub.offset--;
			prevpub.selectDay(prevpub.offset);
			prevpub.periodo = 'N';	
		}
		else if (prevpub.periodo == 'T') {
			prevpub.periodo = 'M';
		}
		else if (prevpub.periodo == 'N') {
			prevpub.periodo = 'T';
		}
		prevpub.selectPeriod(prevpub.periodo);
		prevpub.showCitiesAndSymbols();
		return false;
	},
	
	showCitiesAndSymbols: function() {
		
		var prevs = prevpub.symbols_prevs[prevpub.offset];
		
		if (prevpub.offset > 2) 
			var periodo = 'M';
		else var periodo = prevpub.periodo;
		
		$("li.icons img").remove();
		
		for (var symbolid in prevs) {
			var symbol = null;
			
			if (prevs[symbolid][periodo]!=null)
				symbol = prevs[symbolid][periodo];
			else if (prevs[symbolid]['D']!=null) 
				symbol = prevs[symbolid]['D'];
			
			if (symbol && prevpub.symbols[symbolid]) {
				var x = prevpub.symbols[symbolid].x;
				var y = prevpub.symbols[symbolid].y;
				$("li.icons").append('<img src="/img/icn_S_'+symbol+'.png" width="37" height="37" style="left:'+x+'px; top:'+y+'px;" class="icn_1" />');
			}	
		}
		
		prevpub.updateMaxMinTemps();
		
	},
	celsiusMarker: '&deg;',
    updateMaxMinTemps: function() {
            if (!max_min) return;
            var mm = max_min[prevpub.offset];
            var t;
            $("li[@id^=city_]", ul_cities).each(function() {
                    id = this.id.split("_")[1];
                    if (mm && mm[id] && mm[id]['TMAX']) t=mm[id]['TMAX']+prevpub.celsiusMarker;
                    else t="";
                    $("span.max", this).empty().append(t);
                    if (mm && mm[id] && mm[id]['TMIN']) t=mm[id]['TMIN']+prevpub.celsiusMarker;
                    else t="";
                    $("span.min", this).empty().append(t);
            });
    },
	setPeriodSelector: function() {
		if (prevpub.offset > 2) var showSel = false;
		else var showSel = true;
		
		if (showSel != prevpub.periodoSelector) {
			if (showSel) {
				$("ul.timeSelector_sm li.parche").hide();
				$("ul.timeSelector_sm").show();
				prevpub.inactivePeriods = false;
				prevpub.selectPeriod(prevpub.periodo);
				
				$("span#del").show();
				$("span.daytime").show();	
			}
			else {
				$("ul.timeSelector_sm li.parche").show();
				prevpub.inactivePeriods = true;
				prevpub.unselectPeriod(prevpub.periodo);
				
				$("span#del").hide();
				$("span.daytime").hide();	
			}
		}
		prevpub.periodoSelector = showSel;
		
	},
	goCiudad: function() {
		window.location="/prevision/"+dominio+"/"+$(this).attr("urlname");
	}
	
}

$(document).ready(function() {
	prevpub.init();
	ciudadSelector.init();
});