// ########################################################################### 
// global vars


if (document.location.href.indexOf(".ch/ro/") != -1){ 
	// französisch
	l_id = 1;
} else if (document.location.href.indexOf(".ch/it/") != -1){
	// italienisch
	l_id = 2;
} else {
	// deutsch
	l_id = 0;
}


var translation;
translation = new Array();
translation['niederschlag'] = new Array(3);
translation['niederschlag'][0] = 'Niederschlag (mm)';
translation['niederschlag'][1] = 'Précipitations (mm)';
translation['niederschlag'][2] = 'IT-Niederschlag (mm)';

translation['temperatur'] = new Array(3);
translation['temperatur'][0] = 'Temperatur (°Celsius)';
translation['temperatur'][1] = 'Température (°C)';
translation['temperatur'][2] = 'IT-Temperatur (°Celsius)';

translation['units_1'] = new Array(3);
translation['units_1'][0] = { 'Niederschlag (mm)': 'mm', 'Temperatur (°Celsius)': 'Grad' };
translation['units_1'][1] = { 'Précipitations (mm)': 'mm', 'Température (°C)': '°C' };
translation['units_1'][2] = { 'IT-Niederschlag (mm)': 'IT-mm', 'IT-Temperatur (°Celsius)': 'IT-Grad' };

translation['Wochentage'] = new Array(3);
translation['Wochentage'][0] = ["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"];
translation['Wochentage'][1] = ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"];
translation['Wochentage'][2] = ["domenica","lunedi","martedi","mercoledi","giovedi","venerdi","sabato"];

translation['radar_am'] = new Array(3);
translation['radar_am'][0] = 'Niederschlagsradar am ';
translation['radar_am'][1] = 'Radar des précipitations le ';
translation['radar_am'][2] = 'IT-Niederschlagsradar am ';

translation['um'] = new Array(3);
translation['um'][0] = ' um ';
translation['um'][1] = ' à ';
translation['um'][2] = 'IT um ';

translation['zeittrenner'] = new Array(3);
translation['zeittrenner'][0] = ':';
translation['zeittrenner'][1] = 'h';
translation['zeittrenner'][2] = 'IT:';

translation['satellitenbild_am'] = new Array(3);
translation['satellitenbild_am'][0] = 'Satellitenbild am ';
translation['satellitenbild_am'][1] = 'Images satellites le ';
translation['satellitenbild_am'][2] = 'IT-Satellitenbild am ';

translation['prognose_fuer'] = new Array(3);
translation['prognose_fuer'][0] = 'Prognose f&uuml;r ';
translation['prognose_fuer'][1] = 'Prévisions pour ';
translation['prognose_fuer'][2] = 'IT-Prognose f&uuml;r ';

translation['uhr'] = new Array(3);
translation['uhr'][0] = ' Uhr';
translation['uhr'][1] = '';
translation['uhr'][2] = ' Uhr';

translation['3h_prog'] = new Array(3);
translation['3h_prog'][0] = 'Drei-Stunden-Prognose f&uuml;r ';
translation['3h_prog'][1] = 'Pronostic toutes les trois heures de la journée de ';
translation['3h_prog'][2] = 'IT-Drei-Stunden-Prognose f&uuml;r ';

translation['uv'] = new Array(3);
translation['uv'][0] = 'UV';
translation['uv'][1] = 'UV';
translation['uv'][2] = 'IT-UV';

translation['zurueck'] = new Array(3);
translation['zurueck'][0] = 'zur&uuml;ck';
translation['zurueck'][1] = 'retour';
translation['zurueck'][2] = 'IT-zur&uuml;ck';

translation['jetzt'] = new Array(3);
translation['jetzt'][0] = 'Jetzt';
translation['jetzt'][1] = 'maintenant';
translation['jetzt'][2] = 'IT-zur&uuml;ck';

translation['sonnenschein_min'] = new Array(3);
translation['sonnenschein_min'][0] = 'Sonnenschein (Minuten)';
translation['sonnenschein_min'][1] = 'Soleil (minutes)';
translation['sonnenschein_min'][2] = 'IT-Sonnenschein (Minuten)';

translation['wahrscheinlichkeit'] = new Array(3);
translation['wahrscheinlichkeit'][0] = 'Wahrscheinlichkeit (%)';
translation['wahrscheinlichkeit'][1] = 'Probabilité (%)';
translation['wahrscheinlichkeit'][2] = 'IT-Wahrscheinlichkeit (%)';

translation['unit'] = new Array(3);
translation['unit'][0] = { 'Sonnenschein (Minuten)': 'Minuten', 'Wahrscheinlichkeit (%)': '%' };
translation['unit'][1] = { 'Soleil (minutes)': 'Min', 'Probabilité (%)': '%' };
translation['unit'][2] = { 'IT-Sonnenschein (Minuten)': 'IT-Minuten', 'IT-Wahrscheinlichkeit (%)': 'IT-%' };

translation['windgeschwindigkeit'] = new Array(3);
translation['windgeschwindigkeit'][0] = 'Windgeschwindigkeit (km/h)';
translation['windgeschwindigkeit'][1] = 'Vitesse du vent (km/h)';
translation['windgeschwindigkeit'][2] = 'IT-Windgeschwindigkeit (km/h)';

// Legende
translation['windchill'] = new Array(3);
translation['windchill'][0] = 'Windchill (°Celsius)';
translation['windchill'][1] = 'Windchill (°C)';
translation['windchill'][2] = 'IT-Windchill (°Celsius)';

// Tooltip
translation['units_2'] = new Array(3);
translation['units_2'][0] = { 'Windgeschwindigkeit (km/h)': ' km/h', 'Windchill (°Celsius)': '°' };
translation['units_2'][1] = { 'Vitesse du vent (km/h)': ' km/h', 'Windchill (°C)': '°C' };
translation['units_2'][2] = { 'IT-Windgeschwindigkeit (km/h)': 'IT-km/h', 'IT-Windchill (°Celsius)': 'IT-°' };

translation['schneefallgrenze'] = new Array(3);
translation['schneefallgrenze'][0] = 'Schneefallgrenze (m)';
translation['schneefallgrenze'][1] = 'Limite des chutes de neige (m)';
translation['schneefallgrenze'][2] = 'IT-Schneefallgrenze (m)';

translation['nullgradgrenze'] = new Array(3);
translation['nullgradgrenze'][0] = 'Nullgradgrenze (m)';
translation['nullgradgrenze'][1] = 'Isotherme du zéro degré (m)';
translation['nullgradgrenze'][2] = 'IT-Nullgradgrenze (m)';

translation['units_3'] = new Array(3);
translation['units_3'][0] = { 'Schneefallgrenze (m)': 'm', 'Nullgradgrenze (m)': 'm' };
translation['units_3'][1] = { 'Limite des chutes de neige (m)': 'm', 'Isotherme du zéro degré (m)': 'm' };
translation['units_3'][2] = { 'IT-Schneefallgrenze (m)': 'IT-m', 'IT-Nullgradgrenze (m)': 'IT-m' };

//var unit = {
//'Schneefallgrenze (m)': 'm',
//'Nullgradgrenze (m)': 'm'
//}

translation['meter_ueber_meer_prae'] = new Array(3);
translation['meter_ueber_meer_prae'][0] = '';
translation['meter_ueber_meer_prae'][1] = 'A ';
translation['meter_ueber_meer_prae'][2] = 'IT- M. &uuml;. M.(prä)';

translation['meter_ueber_meer'] = new Array(3);
translation['meter_ueber_meer'][0] = ' M. &uuml;. M.';
translation['meter_ueber_meer'][1] = 'm d&rsquo;altitude';
translation['meter_ueber_meer'][2] = 'IT- M. &uuml;. M.';

translation['heute'] = new Array(3);
translation['heute'][0] = 'Heute ';
translation['heute'][1] = 'Aujourd&rsquo;hui ';
translation['heute'][2] = 'IT-Heute ';

translation['aktualisiert'] = new Array(3);
translation['aktualisiert'][0] = 'Akt.: ';
translation['aktualisiert'][1] = 'Dernière mise à jour: ';
translation['aktualisiert'][2] = 'IT-Akt.: ';

translation['pfad'] = new Array(3);
translation['pfad'][0] = '/wetter/';
translation['pfad'][1] = '/ro/meteo/';
translation['pfad'][2] = '/it/tempo/';

translation['ihre_suche_1'] = new Array(3);
translation['ihre_suche_1'][0] = '<font color="red"><span>Ihre Suche nach <i>';
translation['ihre_suche_1'][1] = '<font color="red"><span>Recherche &laquo;<i>';
translation['ihre_suche_1'][2] = 'IT-<font color="red"><span>Ihre Suche nach <i>';

translation['ihre_suche_2'] = new Array(3);
translation['ihre_suche_2'][0] = '</i> f&uuml;hrte zu mehr als einem Ergebnis.</font> <br /><br />W&auml;hlen Sie einen Ort aus:<br /><br /></span><ul></ul>';
translation['ihre_suche_2'][1] = '</i>&raquo;: Plusieurs résultats correspondent à votre recherche.</font> <br /><br />Choisissez un lieu:<br /><br /></span><ul></ul>';
translation['ihre_suche_2'][2] = 'IT-</i> f&uuml;hrte zu mehr als einem Ergebnis.</font> <br /><br />W&auml;hlen Sie einen Ort aus:<br /><br /></span><ul></ul>';

translation['suche_unscharf_1'] = new Array(3);
translation['suche_unscharf_1'][0] = '<font color="red"><span>Die unscharfe Suche nach <i>';
translation['suche_unscharf_1'][1] = '<font color="red"><span>La Recherche imprécise &laquo;<i>';
translation['suche_unscharf_1'][2] = 'IT-<font color="red"><span>Die unscharfe Suche nach <i>';

translation['suche_unscharf_2'] = new Array(3);
translation['suche_unscharf_2'][0] = '</i> f&uuml;hrte zu folgenden Ergebnissen:</font> <br /><br /></span><ul></ul>';
translation['suche_unscharf_2'][1] = '</i>&raquo;: Le résultat de votre recherche est:</font> <br /><br /></span><ul></ul>';
translation['suche_unscharf_2'][2] = 'IT-</i> f&uuml;hrte zu folgenden Ergebnissen:</font> <br /><br /></span><ul></ul>';

translation['auf_karte'] = new Array(3);
translation['auf_karte'][0] = 'Auf der Karte<br/>anzeigen';
translation['auf_karte'][1] = 'Afficher<br/>sur la carte';
translation['auf_karte'][2] = 'IT-Auf der Karte<br/>anzeigen';

translation['ihre_suche_3'] = new Array(3);
translation['ihre_suche_3'][0] = '<font color="red"><span>Ihre Suche nach <i>';
translation['ihre_suche_3'][1] = '<font color="red"><span>Recherche &laquo;<i>';
translation['ihre_suche_3'][2] = 'IT-<font color="red"><span>Ihre Suche nach <i>';

translation['ihre_suche_4'] = new Array(3);
translation['ihre_suche_4'][0] = '</i> f&uuml;hrte leider zu keinem Ergebnis.</font></span><br /><br /><span>Versuche unscharfe Suche.</span>';
translation['ihre_suche_4'][1] = '</i>&raquo;: Aucun résultat ne correspondent à votre recherche.</font></span><br /><br /><span>Recherche imprécise.</span>';
translation['ihre_suche_4'][2] = 'IT-</i> f&uuml;hrte leider zu keinem Ergebnis.</font></span><br /><br /><span>Versuche unscharfe Suche.</span>';

translation['suche_unscharf_3'] = new Array(3);
translation['suche_unscharf_3'][0] = '<font color="red"><span>Auch die unscharfe Suche nach <i>';
translation['suche_unscharf_3'][1] = '<font color="red"><span>Recherche imprécise &laquo;<i>';
translation['suche_unscharf_3'][2] = 'IT-<font color="red"><span>Auch die unscharfe Suche nach <i>';

translation['suche_unscharf_4'] = new Array(3);
translation['suche_unscharf_4'][0] = '</i> f&uuml;hrte zu keinem Ergebnis.</font></span><br /><br /><span>Haben Sie sich vertippt? <br /><br />Falls nicht, schicken Sie bitte eine E-Mail an <a href="mailto:feedback@20min.ch?subject=Ortswetter">feedback@20min.ch</a>.</span>';
translation['suche_unscharf_4'][1] = '</i>&raquo;: Aucun résultat ne correspondent à votre recherche.</font></span><br /><br /><span>Est-ce d&ucirc; à une faute de frappe? <br /><br />Si cela n&rsquo;est pas le cas, merci d&rsquo;envoyer un email à <a href="mailto:feedback@20min.ch?subject=Ortswetter">feedback@20min.ch</a>.</span>';
translation['suche_unscharf_4'][2] = 'IT-</i> f&uuml;hrte zu keinem Ergebnis.</font></span><br /><br /><span>Haben Sie sich vertippt? <br /><br />Falls nicht, schicken Sie bitte eine E-Mail an <a href="mailto:feedback@20min.ch?subject=Ortswetter">feedback@20min.ch</a>.</span>';

translation['auswahl_ort'] = new Array(3);
translation['auswahl_ort'][0] = 'Geben Sie oben einen Suchbegriff ein oder klicken Sie auf einen der folgenden Orte:';
translation['auswahl_ort'][1] = 'Merci de saisir ci-dessus un mot-clé ou de cliquer sur l&rsquo;une des localités suivantes:';
translation['auswahl_ort'][2] = 'IT-Geben Sie oben einen Suchbegriff ein oder klicken Sie auf einen der folgenden Orte:';


var mode_chooser = 0; // weather, wind
var weather2011_docs_basepath = "/2010/wetter2011/"
var weather2011_mapimage = "rw_map_schweiz.png" // fallback. will be overwritten by template

//0=D 1=F l_id
if (l_id == 0) {	
	var weather2011_radar_legende_path = weather2011_docs_basepath+"img/radar_legende_de.png";
} else if (l_id == 1) {
	var weather2011_radar_legende_path = weather2011_docs_basepath+"img/radar_legende_fr.png";
}
// weather vars
var active_timeslot = 11; // active timeslot
//radar and satellite vars
var playradar_delay    = 500;
var playradar_active   = null;
var playradar_activeelement = 65;
var pics = new Array();
var radarimagesarray = new Array();
var radarimagesarray_clouds = new Array();
var radarimagesarray_precip = new Array();
var radarimagesarray_snow = new Array();
var radarimagesarray_thunder = new Array();
var radar_ch_filepath = "/meteonews/radar/";
var radar_ch_cor_prefix = "radar_cor_";
var radar_ch_pre_prefix = "radar_pre_";
var radar_eu_filepath = "/meteonews/precip/";
var radar_eu_clouds_prefix = "clouds_";
var radar_eu_prefix_prefix = "precip_";
//highchart base options
var options = { chart: { renderTo: 'highcharts-container', zoomType: 'xy' }, title: { text: ' ' }, credits: { enabled: false }, exporting: { enabled:false, buttons: { enabled: false } }, xAxis: { labels: { enabled:false, step: 8 } }, yAxis: [{ labels: { formatter: function() { return this.value + ''; }, style: { color: '#FF6655' }, align: 'left', x:-19, y:-2 }, title: { text: ' ',  style: { color: '#FF0000' } }, opposite: true }, { gridLineWidth: 0, title: { text: ' ', style: { color: '#4572A7' } }, labels: { formatter: function() { return this.value +' mm'; }, style: { color: '#4572A7' }, align: 'left', x:0, y:-2 } }], tooltip: { formatter: function() { var unit = translation['units_1'][l_id] [this.series.name]; return ''+ this.x +': '+ this.y +' '+ unit; } }, plotOptions: { spline: { lineWidth: 2, states: { hover: { lineWidth: 5 } }, marker: {	enabled: false,	states: { hover: { enabled: true,	symbol: 'circle', radius: 5, lineWidth: 1	}	}	} } }, series: [{ name: translation['niederschlag'][l_id], color: '#4572A7', type: 'column', yAxis: 1 }, { name: translation['temperatur'][l_id], color: '#FF6655', type: 'spline' }]};

	
// default_stations -> old stations (should be changed some time in old css file)
var default_stations_lookup = {
  "2657896" : "6664",
  "2658822" : "6681",
  "2661604" : "6601",
  "2659811" : "6650",
  "2661552" : "6631",
  "2660646" : "6700",
  "2658576" : "6720",
  "2659869" : "6760",
  "2661169" : "6786",
  "2659496" : "6604",
  "2660253" : "6734",
  "2658813" : "6792",
  "2660594" : "6685"
}

// ########################################################################### 
// COMMON FUNCTIONS

//ugly hotfix: xml2json returns empty element, if value was "0". set it back to "0" if necessary. 
function checkzero(myvalue) {
  if (! myvalue) return (0); 
  else return(myvalue);
}

// if input length = 1 and a number, add a leading 0
function stringhelper_addZero (myvalue) {
  if ( parseInt(myvalue) < 10 ) {
    return ( '0'+myvalue);
  }
  else return(myvalue);
}

function stringhelper_removeZero(myvalue) {
  if ( myvalue.length > 1 && myvalue.substr(0,1) == '0' ) { // don't cut 0, but everyrthing else
    return(myvalue.substr(1,myvalue.length))  
  }
  else return myvalue;
}

//write day of week into weather slider table
function slider_day(myvalue) {
	var myDays = translation['Wochentage'][l_id];
	today=new Date();
	thisDay=today.getDay()+myvalue;
	if (thisDay > 6) thisDay=thisDay-7;
	thisDay=myDays[thisDay];
	return(thisDay);
}

//translation from winddir to icon
function winddir2icon(myvalue) {
  var windlookup = { 
    "0"  : "/2010/wetter2011/img/icons/n.png",
    "360": "/2010/wetter2011/img/icons/n.png",
    "45" : "/2010/wetter2011/img/icons/ne.png",
    "90" : "/2010/wetter2011/img/icons/e.png",
    "135": "/2010/wetter2011/img/icons/se.png",
    "180": "/2010/wetter2011/img/icons/s.png",
    "225": "/2010/wetter2011/img/icons/sw.png",
    "270": "/2010/wetter2011/img/icons/w.png",
    "315": "/2010/wetter2011/img/icons/nw.png"
  }
  return(windlookup[Math.round(myvalue/45)*45]) // thanks, jeremy! :)
}

//translation from meteonews data-timestamps into date
function meteonewsdate2date(myvalue) {
  //myyear  = myvalue.substr (0,4); // no need
  mymonth = myvalue.substr (5,2);
  myday   = myvalue.substr (8,2);
  myhour  = myvalue.substr (11,5);
  return (myday+"."+mymonth+". "+myhour);
}

//translation from meteonews timestamps into date for title (no hour)
function meteonewsdate2date_short(myvalue) {
  mymonth = myvalue.substr (5,2);
  mymonth = mymonth.replace(/^[0]+/g,""); //remove 0
  myday   = myvalue.substr (8,2);
  myday = myday.replace(/^[0]+/g,"");
  return (myday+"."+mymonth+'.');
}


// ########################################################################### 
// RADAR FUNCTIONS
// important: we always display 11 hours back in time (66 images) and 1 hour in the future (6 images)

//preload radar images
var radarImagesLoaded = 0;
function confirmImageLoad() {
  radarImagesLoaded++;
  if ( radarImagesLoaded == radarimagesarray.length-2) {
    $('#progressbar_container').fadeOut();
    playradar_play();
  }
  else { 
	myvalue = Math.round((100/radarimagesarray.length)*(radarImagesLoaded+1));
	$('#progressbar').progressbar( "option", "value", myvalue );
    $('#loader').html(radarImagesLoaded+1+" / "+radarimagesarray.length+" ("+myvalue+"%)");
  }
}
function preloadRadar() {
  $('#progressbar_container').show();
  for (i=0; i<radarimagesarray.length; i++) {
	pics[i] = new Image();
	pics[i].src = "/meteonews/radar/"+radarimagesarray[i];
	pics[i].onload = confirmImageLoad;
  }
}

//add leading '0' if only 1 digit
function repairdate(myvalue) {
	myvalue = myvalue+''; //convert to string
	if (myvalue.length < 2 ) { myvalue= '0'+myvalue; }
	return(myvalue);
}

//converts meteonews filenames to timestamp eg. radar_pre_20110214_0920.png -> 201102140920 used for transition of feed/radarimage/satellite image times in UTC
//uses slightly adapted timezone_detect.js from https://bitbucket.org/pellepim/jstimezonedetect/wiki/Home to get correct UTC offset w/dst
function meteonews2timestamp(myvalue) {
  var meteonews_ymd = myvalue.match(/\d{8}/)+'';
  var meteonews_hm  = myvalue.match(/_\d{4}\./)+''; // eg "_0910."
  meteonews_hm = meteonews_hm.substr(1,4); // eg "0910"
  //create date, feed with UTC info
  var mydate = new Date();
  mydate.setUTCFullYear(meteonews_ymd.substr(0,4));
  mydate.setUTCMonth(meteonews_ymd.substr(4,2)-1);
  mydate.setUTCDate(meteonews_ymd.substr(6,2));
  mydate.setUTCHours(meteonews_hm.substr(0,2));
  mydate.setUTCMinutes(meteonews_hm.substr(2,2));
  mydate.setUTCMilliseconds(mydate.getUTCMilliseconds()+show_timezone_info());
  var timestamp = mydate.getFullYear()+repairdate(mydate.getMonth()+1)+repairdate(mydate.getUTCDate())+repairdate(mydate.getUTCHours())+repairdate(mydate.getUTCMinutes());
  return(timestamp);
}

// "reads" date from radarimage filename (used by title)
function radarimg2date(myvalue) {
  mymonth = myvalue.substr(4,2);
  myday   = myvalue.substr(6,2);
  myhour  = myvalue.substr(8,2);
  mymin   = myvalue.substr(10,2);
  return(translation['radar_am'][l_id]+myday+'.'+mymonth+'. '+translation['um'][l_id]+myhour+translation['zeittrenner'][l_id]+mymin);
}
//"read" date from radarimage filename (used by dynamic scale below slider)
function radarimg2hour(myvalue) {
  //mymonth = myvalue.substr(10,2);
  //myday   = myvalue.substr(12,2);
  myhour  = myvalue.substr(8,2);
  mymin   = myvalue.substr(10,2);
  return(myhour+translation['zeittrenner'][l_id]+mymin);
}

//radar replay
function playradar_play() {
	if (playradar_active) {
    clearTimeout(playradar_active);
    playradar_active = null;
  }
  update_radar_values(playradar_activeelement);
  playradar_active = setTimeout("playradar_play()", ( playradar_activeelement+1 == radarimagesarray.length ) ? ( 4*playradar_delay) : playradar_delay ); // next step. wait longer if displaying last element
  playradar_activeelement++;
  if (playradar_activeelement == radarimagesarray.length ) playradar_activeelement = 0; // replay
}
function playradar_stop() {
  if (playradar_active) {
    clearTimeout(playradar_active);
    playradar_active = null;
  }
}

//update radar image and slider
function update_radar_values(myvalue) {
  $('#radarimage').attr("src", "/meteonews/radar/"+radarimagesarray[myvalue]);
  $('#radarslider').slider( "option", "value", myvalue ); // update slider value
  $('#radarslider_date').html(radarimg2date(meteonews2timestamp(radarimagesarray[playradar_activeelement])));
  if ( myvalue > 65 ) { 
  	$('#radar_warning_extrapolation').show();
    $('#radar_previewborder').fadeIn();
  }
  else { 
  	$('#radar_warning_extrapolation').hide();
  	$('#radar_previewborder').hide();  	
  }
}

//main function (called by template)
function init_radar() {
  // build new images array
  for (i=0;i<json_radar.images.length;i++) { radarimagesarray.push(json_radar.images[i].image); }
  for (i=0;i<json_radar_pre.images.length;i++) { radarimagesarray.push(json_radar_pre.images[i].image); }

  //set start image, show radar playbuttons
  $('#radarimage').attr("src", "/meteonews/radar/"+radarimagesarray[playradar_activeelement]);
  $('#playradar_container').show();

  //playradar-buttons functionality
  $('#radar_play_button').click(function() { playradar_play(); });
  $('#radar_pause_button').click(function() { playradar_stop(); });
  $('#radar_faster_button').click(function() { if ( playradar_delay >=250 ) playradar_delay = playradar_delay-125; });
  $('#radar_slower_button').click(function() { if ( playradar_delay <=5000 ) playradar_delay = playradar_delay+250; });

  // dynamically scale times below radar slider
  function radar_byline() {
    //we go 11 hours back (66 pix) and 1 hour forward (6 pix) = 72 / 600 = 8.33px
    $('#radarslider_scale').append('<div style="position:absolute;top:28px;width:0px;height:10px;border:1px solid red;margin-left:531px;"><span id="radar_now" style="position:absolute;top:10px;left:-17px;font-weight:bold;">'+translation['jetzt'][l_id]+'</span></div>');
    $('#radar_now').click(function() { playradar_activeelement = 65; update_radar_values(65); });
    //loop through array search hours
    for (i=0; i<radarimagesarray.length; i++) {
      if ( radarimagesarray[i].indexOf("00.") != -1 ) { // "00." found
        $('#radarslider_scale').append('<div style="position:absolute;width:0px;height:10px;border:1px solid #999999;margin-left:'+Math.round(i*8.17)+'px;"><span id="radar_time_'+i+'" style="position:absolute;top:10px;left:-18px;">'+radarimg2hour(meteonews2timestamp(radarimagesarray[i]))+'</span></div>');
		$('#radar_time_'+i).bind("click", { Param1: "", Param2: i }, function(event){ 
		  playradar_activeelement = event.data.Param2;
		  update_radar_values(event.data.Param2);
		  $('#radarslider_date').html(radarimg2date(radarimagesarray[event.data.Param2]));
		});
  	  }
    }
  }

  //add radar slider
  $( "#radarslider" ).slider({min:0,max:radarimagesarray.length-1,step:1,value:65 }).bind( "slide", function(event, ui) {
    playradar_activeelement = ui.value;
	  update_radar_values(playradar_activeelement);
  });
  $( "#radarslider" ).slider({ start: function(event, ui) { playradar_stop(); } }); // stop playing when user drags slider
  
  //init stuff
  update_radar_values(playradar_activeelement);
  radar_byline();
  //initalize radaimagesloader progressbar
  $("#progressbar").progressbar(
    { value: 0 },
	  { create: function(event, ui) { setTimeout("preloadRadar()",1500) } }
  );
  //get cookie
  localweather_cookie('readonly');  
}



// ###########################################################################
// SATELLITE FUNCTIONS
function preloadSatellite() {
  $('#progressbar_container').show();
  for (i=0; i<radarimagesarray_clouds.length; i++) { 
  	radarimagesarray.push(radarimagesarray_clouds[i]);
  	radarimagesarray.push(radarimagesarray_precip[i]);
  	radarimagesarray.push(radarimagesarray_snow[i]);
  	radarimagesarray.push(radarimagesarray_thunder[i]);
  }
  for (i=0; i<radarimagesarray.length; i++) {
	  pics[i] = new Image();
	  pics[i].src = "/meteonews/precip/"+radarimagesarray[i];
	  pics[i].onload = confirmImageLoad;
  }
}

// "reads" date from radarimage filename (used by title)
function satelliteimg2date(myvalue) {
  mymonth = myvalue.substr(4,2);
  myday   = myvalue.substr(6,2);
  myhour  = myvalue.substr(8,2);
  mymin   = myvalue.substr(10,2);
  return(translation['satellitenbild_am'][l_id]+myday+'.'+mymonth+'. '+translation['um'][l_id]+myhour+translation['zeittrenner'][l_id]+mymin);
}
// "reads" date from radarimage filename (used by title)
function satelliteimg2date_short(myvalue) {
  mymonth = myvalue.substr(11,2);
  myday   = myvalue.substr(13,2);
  //myhour  = myvalue.substr(8,2);
  //mymin   = myvalue.substr(10,2);
  return(myday+'.'+mymonth+'.');
}

//satellite layers on/off
function satellite_onoff() {
	if ( document.satellite_form.layer_clouds.checked == true ) { $('#satelliteimage').show(); } 
	else { $('#satelliteimage').hide(); }
  if ( document.satellite_form.layer_precip.checked == true ) { $('#satelliteimage_precip').show(); } 
  else { $('#satelliteimage_precip').hide(); }
  if ( document.satellite_form.layer_snow.checked == true ) { $('#satelliteimage_snow').show(); } 
  else { $('#satelliteimage_snow').hide(); }
  if ( document.satellite_form.layer_thunder.checked == true ) { $('#satelliteimage_thunder').show(); } 
  else { $('#satelliteimage_thunder').hide(); }
}

//satellite replay
function playsatellite_play() {
	if (playradar_active) {
    clearTimeout(playradar_active);
    playradar_active = null;
  }
  update_satellite_values(playradar_activeelement);
  playradar_active = setTimeout("playsatellite_play()", ( playradar_activeelement+1 == radarimagesarray_clouds.length ) ? ( 4*playradar_delay) : playradar_delay ); // next step. wait longer if displaying last element
  playradar_activeelement++;
  if (playradar_activeelement == radarimagesarray_clouds.length ) playradar_activeelement = 0; // replay
}

//update satellite image and slider
function update_satellite_values(myvalue) {
  $('#satelliteimage').attr("src", "/meteonews/precip/"+radarimagesarray_clouds[myvalue]);
  $('#satelliteimage_precip').attr("src", "/meteonews/precip/"+radarimagesarray_precip[myvalue]);
  $('#satelliteimage_snow').attr("src", "/meteonews/precip/"+radarimagesarray_snow[myvalue]);
  $('#satelliteimage_thunder').attr("src", "/meteonews/precip/"+radarimagesarray_thunder[myvalue]);
  $('#radarslider').slider( "option", "value", myvalue ); // update slider value
  $('#radarslider_date').html(satelliteimg2date(meteonews2timestamp(radarimagesarray_clouds[playradar_activeelement])));
}

//main function (called by template)
function init_satellite() {
	//set start image. because we go always 6 hours back, we set it to 5.
	playradar_activeelement = 5;
  //show/hide layers
  satellite_onoff();
  // build new images array
  for (i=0;i<json_clouds.images.length;i++) { 
  	radarimagesarray_clouds.push(json_clouds.images[i].image);
  	radarimagesarray_precip.push(json_precip.images[i].image);
  	radarimagesarray_snow.push(json_snow.images[i].image);
  	radarimagesarray_thunder.push(json_thunder.images[i].image);
  }
  //set start image, show radar playbuttons
  $('#satelliteimage').attr("src", "/meteonews/precip/"+radarimagesarray_clouds[6]);
  $('#satelliteimage_precip').attr("src", "/meteonews/precip/"+radarimagesarray_precip[6]);
  $('#playradar_container').show();

  //playradar-buttons functionality
  $('#radar_play_button').click(function() { playsatellite_play(); });
  $('#radar_pause_button').click(function() { playradar_stop(); });
  $('#radar_faster_button').click(function() { if ( playradar_delay >=250 ) playradar_delay = playradar_delay-125; });
  $('#radar_slower_button').click(function() { if ( playradar_delay <=5000 ) playradar_delay = playradar_delay+250; });

  // dynamically scale days below radar slider
  function satellite_byline() {
    //we go 6 hours back and about five days forward
    $('#radarslider_scale').append('<div style="position:absolute;top:28px;width:0px;height:10px;border:1px solid red;margin-left:28px;"><span id="radar_now" style="position:absolute;top:10px;left:-17px;font-weight:bold;">'+translation['jetzt'][l_id]+'</span></div>');
    //loop through array search hours
    for (i=0; i<radarimagesarray_clouds.length; i++) {
      if ( radarimagesarray_clouds[i].indexOf("0000.") != -1 ) { // "0000" found
        $('#radarslider_scale').append('<div style="position:absolute;width:0px;height:10px;border:1px solid #999999;margin-left:'+Math.round(i*5.00)+'px;"><span id="radar_time_'+i+'" style="position:absolute;top:10px;left:-18px;">'+satelliteimg2date_short(radarimagesarray_clouds[i])+'</span></div>');
  	  }
    }
  }
  //add radar slider
  $( "#radarslider" ).slider({min:0,max:radarimagesarray_clouds.length-1,step:1,value:65 }).bind( "slide", function(event, ui) {
    playradar_activeelement = ui.value;
	  update_satellite_values(playradar_activeelement);
  });
  $( "#radarslider" ).slider({ start: function(event, ui) { playradar_stop(); } }); // stop playing when user drags slider
  
  //init stuff
  update_satellite_values(playradar_activeelement);
  satellite_byline();
  //initalize radaimagesloader progressbar
  $("#progressbar").progressbar(
    { value: 0 },
	  { create: function(event, ui) { setTimeout("preloadSatellite()",1500) } }
  );
  //get cookie
  localweather_cookie('readonly');  
}




// ########################################################################### 
// PLAYWEATHER FUNCTIONS
playweather_elements = 56; // number of elements to cycle through
playweather_delay    = 1000; // set global var vor play speed. in milliseconds
playweather_active   = null; // initially, the player is not active

//0123456789012345678
//2011-03-14 06:00:00 -> 14.3. 06:00
function meteonewstime2date(myvalue) {
  mymonth = myvalue.substr(5,2);
  myday   = myvalue.substr(8,2);
  myhour  = myvalue.substr(11,2);
  mymin   = myvalue.substr(14,2);
  return(myday+'.'+mymonth+'. '+translation['um'][l_id]+myhour+translation['zeittrenner'][l_id]+mymin);
}

function meteonewstime2hour(myvalue) {
  mymonth = myvalue.substr(5,2);
  myday   = myvalue.substr(8,2);
  myhour  = myvalue.substr(11,2);
  mymin   = myvalue.substr(14,2);
  return(myhour+translation['zeittrenner'][l_id]+mymin);
}

function playweather_play() {
  if (playweather_active) {
    clearTimeout(playweather_active);
    playweather_active = null;
  }
  updateValues(active_timeslot); // update map values
  $( "#slider_schweiz" ).slider( "option", "value", active_timeslot ); // update slider value
  playweather_active = setTimeout("playweather_play()", ( active_timeslot == playweather_elements-1 ) ? ( 3*playweather_delay) : playweather_delay ); // next step. wait longer if displaying last element
  active_timeslot++;
  if (active_timeslot > 55) active_timeslot = 0; // replay
}
function playweather_stop() {
  if (playweather_active) {
    clearTimeout(playweather_active);
    playweather_active = null;
  }
}

//CENTRAL FUNCTION: values have changed
function updateValues(myvalue) {
  //initdate();
  //compute();
  if ( mode_chooser == 0 ) {
  	for ( var station in default_stations ) {
      //returnstring = returnstring+'<img class="'+prefix+' '+stations[station]+'_icon"><span class="'+prefix+' '+stations[station]+'_temp"></span>';
      //$('.'+station+'_icon').attr("src",'/2010/wetter2011/img/icons/'+window["json_"+station].forecasts.content.timeperiod[myvalue].symb.$t+'.png');
      //hardcoded for now: between 06-21 hours is day
      if ( ((default_stations[station].timeperiod[myvalue].attr_end_datetime).substr(11,2) > 06 ) && ((default_stations[station].timeperiod[myvalue].attr_end_datetime).substr(11,2) < 21 ) ) {
      //if ( default_stations[station].timeperiod[myvalue].daynight == "day" ) {
        $('.main_0_'+default_stations_lookup[station]+'_icon').attr("src",'/2010/wetter2011/img/icons/'+default_stations[station].timeperiod[myvalue].symb+'.png');
      }
      else {
      	$('.main_0_'+default_stations_lookup[station]+'_icon').attr("src",'/2010/wetter2011/img/iconsnight/'+default_stations[station].timeperiod[myvalue].symb+'.png');
      }
      $('.main_0_'+default_stations_lookup[station]+'_data').html(default_stations[station].timeperiod[myvalue].temp_max+'&deg;');
    }
  }
  else if ( mode_chooser == "1" ) {
  	for ( var station in default_stations ) {
  		$('.main_0_'+default_stations_lookup[station]+'_icon').attr("src", winddir2icon(default_stations[station].timeperiod[myvalue].winddir));
	    $('.main_0_'+default_stations_lookup[station]+'_data').html(default_stations[station].timeperiod[myvalue].windforce);
  	}
  }

  // align dateshow span
  if ( myvalue*10.6 < 500 ) $('#dateshow').css("left", myvalue*10.6+'px' );
  $('#lineshow').css("left", myvalue*10.69+10+'px' );
  $('#weather2011_localweather_title').html(translation['prognose_fuer'][l_id]+slider_day(Math.floor(active_timeslot/8))+', '+meteonewstime2date(default_stations[2657896].timeperiod[myvalue].attr_end_datetime)+translation['uhr'][l_id]);
}

function init_weather() {  //static data!
  //temp correct values. XML::XML2JSON delivers empty elements when value is "0" :/
	//for ( var station in default_stations ) {
	//  for ( j=0; j<56; j++) {
	//    if (! window["json_"+station].forecasts.content.timeperiod[j].precip.$t) window["json_"+station].forecasts.content.timeperiod[j].precip.$t = 0;
	//	  if (! window["json_"+station].forecasts.content.timeperiod[j].temp.$t) window["json_"+station].forecasts.content.timeperiod[j].temp.$t = 0;
	//  }
	//}
  //push temp and rain data into highcharts array
  //for ( j=0; j<56; j++) {
  //  options.series[0].data.push(parseFloat(window["json_"+weather2011_mainstation].forecasts.content.timeperiod[j].precip.$t)); // important: parsefloat converts string2int - otherwise highcharts will fail!
  //  options.series[1].data.push(parseFloat(window["json_"+weather2011_mainstation].forecasts.content.timeperiod[j].temp.$t));
  //}

  //deploy icons on map
  returnstring = '';
  for ( var station in default_stations ) {
  	if ( station != 2659994 ) { //filter lausanne
      returnstring = returnstring+'<img class="main_0_'+default_stations_lookup[station]+'_icon"><span class="main_0_'+default_stations_lookup[station]+'_data"></span>';
    }
  }
  $('#mapicons').html(returnstring);
  
  //write dates into title
  //$('#weather_from').html(meteonewsdate2date_short(default_stations[2657896].timeperiod[0].attr_end_datetime)+' ');
  //$('#weather_till').html(meteonewsdate2date_short(window["json_"+weather2011_mainstation].forecasts.content.timeperiod[54].attr_end_datetime)); // element 55 has already t+8 days!
  
  //write playradar title
  //$('#radarslider_date').html(radarimg2date(radarimagesarray[playradar_activeelement]));

  //set days of week below slider - depends on client date!
  returnstring = '<table class="weather2011_sliderdays"><tr>';
  for ( var j=0; j<7; j++) {
  	returnstring = returnstring+'<td>'+slider_day(j)+'</td>';
  }
  returnstring = returnstring+'</tr></table>';
  $('#slider_days').html(returnstring);
   
  //show/hide visual helper-line
  $('#slider_elements').hover(
    function () {
      $('#lineshow').show();
    }, 
    function () {
      $('#lineshow').hide();
    }
  );
  //playweather-buttons
  $('#play_button').click(function() { playweather_play(); });
  $('#pause_button').click(function() {	playweather_stop(); });
  $('#faster_button').click(function() { if ( playweather_delay >=500 ) playweather_delay = playweather_delay-250; });
  $('#slower_button').click(function() { if ( playweather_delay <=5000 ) playweather_delay = playweather_delay+250; });

  $( "#slider_schweiz" ).slider({ start: function(event, ui) { playweather_stop(); } });  // stop playing when user drags slider
  
  //deploy icons on forecast minimaps
  for ( var i=2; i<8; i++ ) {
  	$('#weather2011_outlook_'+i+'_2657896').attr("src",'/2010/wetter2011/img/icons/'+default_stations[2657896].timeperiod[((i*8)-5)].symb+'.png');
  	$('#weather2011_outlook_'+i+'_2659994').attr("src",'/2010/wetter2011/img/icons/'+default_stations[2659994].timeperiod[((i*8)-5)].symb+'.png');
  	$('#weather2011_outlook_'+i+'_2659869').attr("src",'/2010/wetter2011/img/icons/'+default_stations[2659869].timeperiod[((i*8)-5)].symb+'.png');
  	$('#weather2011_outlook_'+i+'_temp').html('<strong>'+default_stations[2659869].timeperiod[((i*8)-5)].temp_max+'</strong> | '+default_stations[2659869].timeperiod[((i*8)-5)].temp_min);
  }
  
  //get actual user hour and set starttime of the map accordingly
  var mydate = new Date();
  if ( mydate.getHours() < 8 ) { //midnight till 7 o'clock : show 8 hours
    active_timeslot = 2; // 0-55 = timeslots for a week. we operate today, meaning 0-7 = 03/06/09/12/15/18/21/00
  }
  else if ( mydate.getHours() < 12 ) { // 9 o'clock till noon: show noon
    active_timeslot = 3;
  }
  else if ( mydate.getHours() < 18 ) { // noon till 18 hours: show 18 hours
    active_timeslot = 5;
  }
  else if ( mydate.getHours() < 21 ) { // 17 hours till 21 hours: show 21 hours
    active_timeslot = 6;
  }
  if ( mydate.getHours() >= 21 ) { // greater than 21 hours: show midnight of next day
    active_timeslot = 10;
  }
  
        //fill weathertext north as default
        $('#weather2011_overviewCH_text').html(json_text.content.text[0].text);
  
       tabbey_initialize("localweather_overviewCH_tabbey");
       
       //0=D 1=F l_id
       if (l_id == 0) {
		    $('#weather2011_overviewCH_text_north').click( function () {
		      $('#weather2011_overviewCH_text').html(json_text.content.text[0].text);
		    });
		    $('#weather2011_overviewCH_text_west').click( function () {
		      $('#weather2011_overviewCH_text').html(json_text.content.text[1].text);
		    });
		    $('#weather2011_overviewCH_text_south').click( function () {
		      $('#weather2011_overviewCH_text').html(json_text.content.text[2].text);
		    });
       } else if (l_id == 1){
		    $('#weather2011_overviewCH_text_west').click( function () {
			      $('#weather2011_overviewCH_text').html(json_text.content.text[0].text);
			    });
			    $('#weather2011_overviewCH_text_north').click( function () {
			      $('#weather2011_overviewCH_text').html(json_text.content.text[1].text);
			    });
			    $('#weather2011_overviewCH_text_south').click( function () {
			      $('#weather2011_overviewCH_text').html(json_text.content.text[2].text);
			    });
       }
		    
		    
	      for (var j=1; j<7; j++ ) {
	      	$('#aussichten_day_'+j).children(':first-child').text(slider_day(j));
	      }

	      $('#aussichten_day_1').click(function() {
          playweather_stop();
		      active_timeslot = 11;
		      updateValues(active_timeslot);
		      $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		    });
	      $('#aussichten_day_2').click(function() {
          playweather_stop();
		      active_timeslot = 19;
		      updateValues(active_timeslot);
		      $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		    });
	      $('#aussichten_day_3').click(function() {
          playweather_stop();
		      active_timeslot = 27;
		      updateValues(active_timeslot);
		      $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		    });
	      $('#aussichten_day_4').click(function() {
          playweather_stop();
		      active_timeslot = 35;
		      updateValues(active_timeslot);
		      $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		    });
	      $('#aussichten_day_5').click(function() {
          playweather_stop();
		      active_timeslot = 43;
		      updateValues(active_timeslot);
		      $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		    });
	      $('#aussichten_day_6').click(function() {
            playweather_stop();
		    active_timeslot = 51;
		    updateValues(active_timeslot);
		    $( "#slider_schweiz" ).slider( "option", "value", active_timeslot );
		  });

		var onoff = 0;
        $('#show_playbar').click(function() {
          if ( onoff == 0 ) {
            $('#maptools').show('slow', function() {
              onoff=1;
            });
          }
          else {
            $('#maptools').hide('slow', function() {
              onoff=0;
            });
          }
        });

  //write title
  $('#weather2011_localweather_title').html(translation['prognose_fuer'][l_id]+slider_day(0)+', '+stringhelper_removeZero(meteonewstime2hour(default_stations[2657896].timeperiod[active_timeslot].attr_end_datetime))+translation['uhr'][l_id]);

  // display initially tomorrow noon
  updateValues(active_timeslot);

  //add 7-day weather slider
  $( "#slider_schweiz" ).slider({min:0,max:55,step:1,value:active_timeslot }).bind( "slide", function(event, ui) {
    //$('#tmp_valueshow').html(ui.value );
    updateValues(ui.value);
    active_timeslot = ui.value;
  });
  //create highchart
  //var chart = new Highcharts.Chart(options);
  //get cookie
  localweather_cookie('readonly');  
 
} // /init_weather();



// ########################################################################### 
// LOCALWEATHER FUNCTIONS
function localweather_searchthis () {
  window.location = translation['pfad'][l_id]+"search.tmpl?search_string="+$('#weathersearch').val();
}

//cookie helper function: is searchstring in array?
function oc(a) {
  var o = {};
  for(var i=0;i<a.length;i++) {
    o[a[i]]='';
  }
  return o;
}

//special function for zero-degree-border: if value = 0 and snowtoground = 0 -> null.
function checkzero_border(myvalue) {
	if (! myvalue) myvalue = 0; 
  //else return(myvalue);
  if ((myvalue == 0) && (window["json_"+weather2011_mainstation].timeperiod[myvalue].attr_ground == 0) ) return (null)
  else if ((myvalue == 0) && (window["json_"+weather2011_mainstation].timeperiod[myvalue].attr_ground == 1) ) return (0)
  else return(myvalue);
}

//manage localweather cookie. call with 'readonly' for only reading the cookie
function localweather_cookie(myvalue) {
  //read cookie
  var localweather_cookie = $.cookie('20min_ortswetter');
  //create new cookieArray or decode existing one
  if (localweather_cookie==null) { var cookieArray = new Array(); }
  else { var cookieArray = localweather_cookie.split('@'); }
  //add actual station if its not yet in the cookie and we are not in readonly mode
  if ( myvalue != 'readonly' ) {
    //already saved?
    if ( !(window["json_"+weather2011_mainstation].parameters.station_id in oc(cookieArray)) ) {
      //delete first entry if longer than 5 stations
      if ( cookieArray.length > 8 ) {
        cookieArray.splice(0,2);
			}
	    //add new station
		  cookieArray.push(window["json_"+weather2011_mainstation].parameters.station_id);
		  cookieArray.push(window["json_"+weather2011_mainstation].parameters.loc);
    }
    //encode cookie
    localweather_cookie = '';
    for (var i=0; i<cookieArray.length; i++) {
    	localweather_cookie = localweather_cookie+cookieArray[i]+'@';
    }
    //cut last '@')
    localweather_cookie = localweather_cookie.substr(0,localweather_cookie.length-1);
    //write cookie
    $.cookie('20min_ortswetter', localweather_cookie, { expires: 3650, path: '/' });
  }  
  //write cookie content into visited stations div and show it
  for (var i=0; i < cookieArray.length; i++) {
    $('#localweather_visited_last').append('<a href="'+translation['pfad'][l_id]+'ortswetter.tmpl?geo='+cookieArray[i]+'">'+cookieArray[i+1]+'</a>');
    if (i < cookieArray.length-2 ) { $('#localweather_visited_last').append(', '); }
    i++;
  }
  $('#localweather_visited_title').show();
}

function localweather_showday(myvalue) {  // show details of one of 6 more days
	var more_options = {};
  $.extend(true, more_options, options);  // copy object
  more_options.series[0].data = new Array();
  more_options.series[1].data = new Array();
  more_options.xAxis.categories = new Array();
  more_options.chart.renderTo = 'highcharts_weekday';
  more_options.plotOptions.groupPadding = 0;
  for ( var j=0; j<8; j++) {
    //choose icon upon "daynight"-tag
    if ( window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].daynight == "day" ) {
      $('#weather2011_ortswetter_weekday_icon_'+(j+1)).attr("src", '/2010/wetter2011/img/icons/'+window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].symb+'.png' );
    }
    else {
      $('#weather2011_ortswetter_weekday_icon_'+(j+1)).attr("src", '/2010/wetter2011/img/iconsnight/'+window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].symb+'.png' );
    }
    //fill in uv values. color them according their value
  	var uvi = parseInt(window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].uv);
    var uvi_text = '';
    if       ( uvi < 3 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_0.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
    else if  ( uvi < 6 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_1.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
    else if  ( uvi < 8 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_2.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
    else if  ( uvi < 11 ) { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_3.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
    else     { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_4.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
    $('#weather2011_ortswetter_weekday_uv_'+(j+1)).html(uvi_text);
    //$('#weather2011_ortswetter_weekday_icon_'+(j+1)).attr("src", '/2010/wetter2011/img/icons/'+window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].symb+'.png' );
    $('#weather2011_ortswetter_weekday_temp_'+(j+1)).html(window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].temp);
    $('#weather2011_ortswetter_weekday_wind_'+(j+1)).html('<img class="weather2011_windsmall" src="'+winddir2icon(window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].winddir)+'">'+window["json_"+weather2011_mainstation].timeperiod[(myvalue*8)+j].windforce);
    more_options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
    more_options.series[0].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[myvalue*8+j].precip)));
    more_options.series[1].data.push(parseFloat(window["json_"+weather2011_mainstation].timeperiod[myvalue*8+j].temp));
  }
  var weekday_chart = new Highcharts.Chart(more_options);
  $('#localweather_week').hide();
  $('#localweather_weekday').show();
  $('#weather2011_localweather_weekday_title').html('<p style="color:#555555;">'+translation['3h_prog'][l_id]+slider_day(myvalue)+' <a href="javascript:localweather_showweek();">('+translation['zurueck'][l_id]+')</p>');
}

function localweather_showweek() {
  $('#localweather_weekday').hide();
  $('#localweather_week').show();
}

//show sun values
function localweather_show_sun() {
  //hide 0degree explanation
  $('#weather2011_localweather_0degree_container').hide();
  //sun chart options
  var more_options = {};
  $.extend(true, more_options, options);  // copy object
  more_options.series[0].data = new Array();
  more_options.series[1].data = new Array();
  more_options.xAxis.categories = new Array();
  more_options.chart.renderTo = 'highcharts_more';
  more_options.series[0].name = translation['sonnenschein_min'][l_id];
  more_options.series[1].name = translation['wahrscheinlichkeit'][l_id];
  more_options.yAxis[0].labels.style.color = '#FF8822'; // label rechts
  more_options.yAxis[0].labels.formatter = function() { return this.value +'%'; }  // unit: %
  more_options.yAxis[1].labels.style.color = '#FF9944'; // label links
  more_options.yAxis[1].labels.formatter = function() { return this.value +' min'; } // unit: minutes
  more_options.series[0].color = '#FFAA44';  // data color sun
  more_options.series[1].color = '#FF8822';  // data color sun_prob
  more_options.yAxis[1].labels.color = '#EEE720';
  more_options.yAxis[0].min = '0';
  more_options.yAxis[0].max = '100';
  more_options.yAxis[1].max = '180';
  more_options.series[1].type = 'spline';
  more_options.series[1].visible = false; // disable sun probability on init
  for ( var j=0; j<56; j++ ) {
    more_options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
    more_options.series[0].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].sun)));
    more_options.series[1].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].sun_prob)));
  }  
  more_options.tooltip.formatter = function() {
	  var unit = translation['unit'][l_id][this.series.name];
    return ''+ this.x +': '+ this.y +' '+ unit;
  }
  more_chart = new Highcharts.Chart(more_options);
}

//show wind values
function localweather_show_wind() {
  //hide 0degree explanation line (height of actual township as aline in the chart)
  $('#weather2011_localweather_0degree_container').hide();
  //wind chart options
  var more_options = {};
  $.extend(true, more_options, options);
  more_options.series[0].data = new Array();
  more_options.series[1].data = new Array();
  more_options.xAxis.categories = new Array();
  more_options.chart.renderTo = 'highcharts_more';
  more_options.series[0].name = translation['windgeschwindigkeit'][l_id];
  more_options.series[1].name = translation['windchill'][l_id];
  more_options.yAxis[0].labels.style.color = '#FF9944';
  more_options.yAxis[0].labels.x = -50;
  more_options.yAxis[0].labels.formatter = function() { return this.value +' °'; }
  more_options.yAxis[1].labels.style.color = '#FF9944';
  more_options.yAxis[1].labels.formatter = function() { return this.value +' km/h'; }
  more_options.series[0].color = '#FFAA44';
  more_options.series[1].color = '#FF6644';
  more_options.yAxis[1].labels.color = '#EEE720';
  more_options.series[0].type = 'column';
  more_options.series[1].type = 'spline';
  for ( var j=0; j<56; j++ ) {
    more_options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
    more_options.series[0].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].windforce)));
    more_options.series[1].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].temp_wind)));
  }
  more_options.tooltip.formatter = function() {
    var unit = translation['units_2'][l_id][this.series.name];
    return ''+ this.x +': '+ this.y + unit;
  }  
  //init highchart
  more_chart = new Highcharts.Chart(more_options);
}

//show snowfall/0 degree border values
function localweather_show_borders() {
  var more_options = {};
  $.extend(true, more_options, options);
  more_options.series[0].data = new Array();
  more_options.series[1].data = new Array();
  more_options.xAxis.categories = new Array();
  more_options.chart.renderTo = 'highcharts_more';
  more_options.series[0].name = translation['schneefallgrenze'][l_id];
  more_options.series[1].name = translation['nullgradgrenze'][l_id];
  more_options.yAxis[0].labels.style.color = '#0066CC';
  more_options.yAxis[0].labels.formatter = function() { return this.value +' m'; }
  more_options.yAxis[1].labels.style.color = '#66CCFF'; // label right
  more_options.yAxis[1].labels.formatter = function() { return this.value +' m'; }
  more_options.series[0].color = '#0066CC';
  more_options.series[1].color = '#66CCFF';
  more_options.yAxis[1].labels.color = '#EEE720';
  more_options.xAxis.minPadding = 0.1;
  more_options.xAxis.maxPadding = 0.1;
  more_options.yAxis[0].labels.x = -40;
  more_options.yAxis[0].min = '0';
  more_options.yAxis[0].max = '5000';
  more_options.yAxis[1].min = '0';
  more_options.yAxis[1].max = '5000';
  more_options.series[0].type = 'spline';
  more_options.series[1].type = 'spline';
  for ( var j=0; j<56; j++ ) {
    more_options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
    more_options.series[0].data.push(checkzero_border(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].snow_line)));
    more_options.series[1].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].freez_level)));
  }  
  more_options.tooltip.formatter = function() {
	  var unit = translation['units_3'][l_id][this.series.name];
    return ''+ this.x +': '+ this.y +' '+ unit;
  }
  //fill 0degree border explanation and show it
  $('#weather2011_localweather_0degree').html(window["json_"+weather2011_mainstation].parameters.loc+' ('+translation['meter_ueber_meer_prae'][l_id]+window["json_"+weather2011_mainstation].parameters.elevation+translation['meter_ueber_meer'][l_id]+')');
  $('#weather2011_localweather_0degree_container').show();

  //init highchart
  more_chart = new Highcharts.Chart(more_options);  
  addPlotLine();
  }

//add plotline to highchart. used to show elevation in comparison to 0 degree border
function addPlotLine() {
  more_chart.yAxis[0].addPlotLine({
    value: window["json_"+weather2011_mainstation].parameters.elevation,
    color: '#FF0044',
    width: 2,
    id: 'plotline1'
  });
}

//called by ortswetter.tmpl
function init_localweather() {
//	lang = document.getElementById("lang");
//	lang = lang.value;
  if ( typeof window["json_"+weather2011_mainstation].parameters != undefined ) {
    //fill title and elevation
    $('#weather2011_localweather_location').html('<img src="'+window["json_"+weather2011_mainstation].parameters.textlink+'">'+'<span style="vertical-align:40%;margin-left:10px;">('+translation['meter_ueber_meer_prae'][l_id]+window["json_"+weather2011_mainstation].parameters.elevation+translation['meter_ueber_meer'][l_id]+')</span>');
    //fill weathertext today
    $('#weather2011_localweather_weathertext_today').html(window["json_"+weather2011_mainstation].parameters.forecast_text);
    //fill weathertext week
    $('#weather2011_localweather_weathertext_outlook').html(window["json_"+weather2011_mainstation].parameters.outlook_text);
    //fill today "tables"
    options.series[0].data = new Array();
    options.series[1].data = new Array();
    options.xAxis.categories = new Array();
    options.chart.renderTo = 'highcharts_day';
    for ( var j=0; j<8; j++) {
    	//choose icon upon "daynight"-tag
    	if ( window["json_"+weather2011_mainstation].timeperiod[j].daynight == "day" ) {
        $('#weather2011_ortswetter_today_icon_'+(j+1)).attr("src", '/2010/wetter2011/img/icons/'+window["json_"+weather2011_mainstation].timeperiod[j].symb+'.png' );
      }
      else {
        $('#weather2011_ortswetter_today_icon_'+(j+1)).attr("src", '/2010/wetter2011/img/iconsnight/'+window["json_"+weather2011_mainstation].timeperiod[j].symb+'.png' );
      }
      //fill in temp
      $('#weather2011_ortswetter_today_temp_'+(j+1)).html(window["json_"+weather2011_mainstation].timeperiod[j].temp+'°');
      //fill in wind
      $('#weather2011_ortswetter_today_wind_'+(j+1)).html('<img class="weather2011_windsmall" src="'+winddir2icon(window["json_"+weather2011_mainstation].timeperiod[j].winddir)+'">'+window["json_"+weather2011_mainstation].timeperiod[j].windforce);
      //generate cooltip for weather icon
      $('#weather2011_ortswetter_today_cooltip_'+(j+1)).html(window["json_"+weather2011_mainstation].timeperiod[j].txt);
      //fill in uv values. color them according their value
      var uvi = parseInt(window["json_"+weather2011_mainstation].timeperiod[j].uv);
      var uvi_text = '';
      if       ( uvi < 3 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_0.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 6 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_1.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 8 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_2.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 11 ) { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_3.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else     { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_4.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      $('#weather2011_ortswetter_today_uv_'+(j+1)).html(uvi_text);
      //fill in highcharts-values
      
      options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
      options.series[0].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].precip)));
      options.series[1].data.push(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].temp));
    }
    var day_chart = new Highcharts.Chart(options);
    //fill other 6 days
    

    
    options.series[0].data = new Array();
    options.series[1].data = new Array();
    options.xAxis.categories = new Array();
    options.chart.renderTo = 'highcharts_week';
    for ( var j=1; j<7; j++) {
      var uvi = parseInt(window["json_"+weather2011_mainstation].timeperiod[((j*8)+4)].uv);
      var uvi_text = '';
      if       ( uvi < 3 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_0.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 6 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_1.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 8 )  { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_2.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else if  ( uvi < 11 ) { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_3.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      else     { uvi_text = "<div style='height:19px;background-image:url(/2010/wetter2011/img/uv_bg_4.png);background-repeat:no-repeat;background-position:center top;'><span style='position:relative;top:2px;'>"+translation['uv'][l_id]+": "+uvi+"</span></div"; }
      $('#weather2011_ortswetter_outlook_uv_'+(j)).html(uvi_text);
    	$('#weather2011_ortswetter_outlook_icon_'+j).attr("src", '/2010/wetter2011/img/icons/'+window["json_"+weather2011_mainstation].timeperiod[((j*8)+4)].symb+'.png');
    	$('#weather2011_ortswetter_outlook_temp_'+j).html(window["json_"+weather2011_mainstation].timeperiod[((j*8)+4)].temp+'°');
    	$('#weather2011_ortswetter_outlook_wind_'+j).html('<img class="weather2011_windsmall" src="'+winddir2icon(window["json_"+weather2011_mainstation].timeperiod[((j*8)+4)].winddir)+'">'+window["json_"+weather2011_mainstation].timeperiod[((j*8)+4)].windforce);
    }
    for ( var j=8; j<56; j++ ) {
	    options.xAxis.categories.push(meteonewsdate2date(window["json_"+weather2011_mainstation].timeperiod[j].attr_end_datetime));
      options.series[0].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].precip)));
      options.series[1].data.push(checkzero(parseFloat(window["json_"+weather2011_mainstation].timeperiod[j].temp)));
    }  
    var week_chart = new Highcharts.Chart(options);
    //write title
    $('#weather2011_localweather_title').html(translation['heute'][l_id]+slider_day(0));
//    if (lang == "de") {
//    	$('#weather2011_localweather_title').html('Heute '+slider_day(0));
//    } else {
//    	$('#weather2011_localweather_title').html('FR Heute '+slider_day(0));
//    }
    //write last update
    $('#localweather_last_update').html(translation['aktualisiert'][l_id]+meteonewsdate2date(window["json_"+weather2011_mainstation].parameters.last_update));
    //write days, link children
    for ( var j=1; j<7; j++ ) {
      $('#weather2011_ortswetter_outlook_day_'+j).html(slider_day(j));
	    $('.weather2011_week_'+j).click(function(index) { 
	      return function() {
	        localweather_showday(index);
	      };
	    } (j) );  
    }
    //fill probability of 6 more days
    //first loop over days, starting with second day
    for ( var i=7; i< 55; i=i+8 ) {
      var prob_sum = 0;
    	//second loop through one day
    	for ( var j = 0; j<8; j++ ) {
    		//alert (i+j-2);
    		prob_sum = prob_sum + parseInt((window["json_"+weather2011_mainstation].timeperiod[(i+j)-1].accur));
    		//if last run of loop, write content
    		if ( j == 7 ) {
    			$('#weather2011_ortswetter_outlook_probability_'+((i+1)/8)).html(Math.round((prob_sum/8)*20)+'%');
    		}
    	}
    }
    //write days for 7-days-values
    for ( var j=0; j<7; j++ ) { $('#weather2011_ortswetter_more_day_'+j).html(slider_day(j)); }
    //init more highcharts
    localweather_show_sun();
    //get cookie and save current station
    localweather_cookie();
    //hover funcionality for next 6 days icons
    $(".weather2011_hovericon").hover(
      function () {
      	//$(".weather2011_hovericon").fadeTo(0, 0.5);
      	$(".transp_icon").show();
        ////$(this).append($("<span> ***</span>"));
        //$(this).fadeTo(0,1);
        $(this).children(":first").hide();
      }, 
      function () {
        ////$(this).find("span:last").remove();
        ////$(".weather2011_hovericon").filter($(this)).fadeTo("fast", 1);
        //$(".weather2011_hovericon").fadeTo(0,1);
        $(".transp_icon").hide();
      }
    );
    // init gmap
    //initializeGMAP(window["json_"+weather2011_mainstation].parameters.latitude, window["json_"+weather2011_mainstation].parameters.longitude );  
  }
  //json failed for some reason
  else {  }
}  // /init_localweather();


// ########################################################################### 
// SEARCH FUNCTIONS
// ch -> schweiz... uses countrylookup.js
function countrycode_alpha22name (myvalue) {
  for ( var j = 0; j < countrylookup.country.length; j++ ) {
  	if ( countrylookup.country[j].iso_alpha2 === myvalue ) return (countrylookup.country[j].name_de);
  }
}

var mouseY = 0;
$().mousemove( function(e) {
	mouseY = e.pageY;
});
      
//init googlemap
function initializeGMAP(lat,lng) {
  var offset = $("#weather_content").offset();
  $("#preview_map").css("top", parseInt(mouseY-offset.top)+"px");
  
  var latlng = new google.maps.LatLng(lat, lng);
  var myOptions = {
    zoom: 8,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.HYBRID
  };
  var map = new google.maps.Map(document.getElementById("preview_map"), myOptions);
}

//walk through search results json
function localweather_search() {
	// json defined?
	//if ( typeof json_localweather_search != "undefined" ) {
	if ( typeof json_localweather_search.content != "undefined" ) {
	  //if only one result, kick forward to ortswetter.tmpl
	  if ( json_localweather_search.content.suggest.length < 2  && document.location.href.search('autofill') == -1 ) {
		  window.location = translation['pfad'][l_id]+'ortswetter.tmpl?geo='+json_localweather_search.content.suggest[0].geoname_id;
 	  }
	  //more than one result, show them
	  else {
	    //autofill-parameter not set
		  if ( document.location.href.search('autofill') == -1 ) { $('#localweather_search_results').append(translation['ihre_suche_1'][l_id]+unescape(json_localweather_search.parameters.string)+translation['ihre_suche_2'][l_id]); }
      //autofill-parameter set
		  else { $('#localweather_search_results').append(translation['suche_unscharf_1'][l_id]+json_localweather_search.parameters.string+translation['suche_unscharf_2'][l_id]); }
      //show result(s)
	    for ( var i = 0; i < json_localweather_search.content.suggest.length; i++) {
	  	  //schweiz
	  	  if ( json_localweather_search.content.suggest[i].country == "CH" ) {
	  	  	//canton is not always in geonames. canton known?
	  	  	if ( json_localweather_search.content.suggest[i].state ) {
            //$('#localweather_search_results ul').append('<li class="localweather_searchresult"><a href="/wetter/ortswetter.tmpl?geo='+json_localweather_search.content.suggest[i].geoname_id+'">'+json_localweather_search.content.suggest[i].name+', '+json_localweather_search.content.suggest[i].state+'</a> <span style="display:none;"><a href="javascript:initializeGMAP('+(25+75*(Math.random()))+','+(25+75*(Math.random()))+');" class="cooltipped" id="ort_'+i+'"><span class="cooltent"><img src="/2010/wetter2011/img/map_big.png" style="float: left; margin-right: 10px; width: 32px;" />Auf der Karte<br/>anzeigen</span><img src="/2010/wetter2011/img/map.png" /></a></span></li>');
            $('#localweather_search_results ul').append('<li class="localweather_searchresult"><a href="'+translation['pfad'][l_id]+'ortswetter.tmpl?geo='+json_localweather_search.content.suggest[i].geoname_id+'">'+json_localweather_search.content.suggest[i].name+', '+json_localweather_search.content.suggest[i].state+'</a> <span style="display:none;"><a href="javascript:initializeGMAP('+json_localweather_search.content.suggest[i].lat+','+json_localweather_search.content.suggest[i].lon+');" class="cooltipped" id="ort_'+i+'"><span class="cooltent"><img src="/2010/wetter2011/img/map_big.png" style="float: left; margin-right: 10px; width: 32px;" />'+translation['auf_karte'][l_id]+'</span><img src="/2010/wetter2011/img/map.png" /></a></span></li>');
          }
          else {
          	$('#localweather_search_results ul').append('<li class="localweather_searchresult"><a href="'+translation['pfad'][l_id]+'ortswetter.tmpl?geo='+json_localweather_search.content.suggest[i].geoname_id+'">'+json_localweather_search.content.suggest[i].name+'</a> <span style="display:none;"><a href="javascript:initializeGMAP('+json_localweather_search.content.suggest[i].lat+','+json_localweather_search.content.suggest[i].lon+');" class="cooltipped" id="ort_'+i+'"><span class="cooltent"><img src="/2010/wetter2011/img/map_big.png" style="float: left; margin-right: 10px; width: 32px;" />'+translation['auf_karte'][l_id]+'</span><img src="/2010/wetter2011/img/map.png" /></a></span></li>');	  		
          }
	      }
	      //usa, useful state info
	      else if ( json_localweather_search.content.suggest[i].country == "US" ) { 
	        $('#localweather_search_results ul').append('<li class="localweather_searchresult"><a href="'+translation['pfad'][l_id]+'ortswetter.tmpl?geo='+json_localweather_search.content.suggest[i].geoname_id+'">'+json_localweather_search.content.suggest[i].name+', '+countrycode_alpha22name(json_localweather_search.content.suggest[i].country)+', '+json_localweather_search.content.suggest[i].state+'</a> <span style="display:none;"><a href="javascript:initializeGMAP('+json_localweather_search.content.suggest[i].lat+','+json_localweather_search.content.suggest[i].lon+');" class="cooltipped" id="ort_'+i+'"><span class="cooltent"><img src="/2010/wetter2011/img/map_big.png" style="float: left; margin-right: 10px; width: 32px;" />'+translation['auf_karte'][l_id]+'</span><img src="/2010/wetter2011/img/map.png" /></a></span></li>');	
	      }
	      //rest of the world, unusable state info
        else { $('#localweather_search_results ul').append('<li class="localweather_searchresult"><a href="'+translation['pfad'][l_id]+'ortswetter.tmpl?geo='+json_localweather_search.content.suggest[i].geoname_id+'">'+json_localweather_search.content.suggest[i].name+', '+countrycode_alpha22name(json_localweather_search.content.suggest[i].country)+'</a> <span style="display:none;"><a href="javascript:initializeGMAP('+json_localweather_search.content.suggest[i].lat+','+json_localweather_search.content.suggest[i].lon+');" class="cooltipped" id="ort_'+i+'"><span class="cooltent"><img src="/2010/wetter2011/img/map_big.png" style="float: left; margin-right: 10px; width: 32px;" />'+translation['auf_karte'][l_id]+'</span><img src="/2010/wetter2011/img/map.png" /></a></span></li>'); }
      };
    }
    // show preview map
    $('#preview_map').show();
    // add events to results
    $('.localweather_searchresult').hover(
      function () {
        $(this).find(':nth-child(2)').show();
      }, 
      function () {
        //$(this).find("span:last").remove();
        $(this).find(':nth-child(2)').hide();
      }
    );
  }
  else {
	url = document.location.href; // get url
	var parameter_array = url.split('?'); // split url and parameters
	if ( parameter_array.length > 2 ) {
	  var parameters_array = parameter_array[1].split('&'); // split params
	  var str = '';
	  var searchstr = "search_string="; // search_string trigger
	  var autofill = "autofill=1"; // "fuzzy" search trigger
	  for ( i=0; i< parameters_array.length; i++ ) { // loop through params and search for ("search_string")
      if ( parameters_array[i].search(searchstr) != -1 ) {
	      str = parameters_array[i].substr(searchstr.length,parameters_array[i].length); // cut searchstr
		    if ( !(autofill in oc(parameters_array)) ) { // autofill parameter not set
	        $('#localweather_search_results').append(translation['ihre_suche_3'][l_id]+unescape(str)+translation['ihre_suche_4'][l_id]);
          window.setTimeout("$('#localweather_search_results').append('<span>.</span>')", 500);
		      window.setTimeout("$('#localweather_search_results').append('<span>.</span>')", 1000);
		      window.setTimeout("$('#localweather_search_results').append('<span>.</span>')", 1500);
		      url = url+'&autofill=1'; // add autofill parameter to url
		      window.setTimeout("window.location=url", 2000);
		    }
		    else { // autofill parameter set
		      $('#localweather_search_results').append(translation['suche_unscharf_3'][l_id]+unescape(str)+translation['suche_unscharf_4'][l_id]);
		    }
	    }
	  }	
  }
  else { 
    $('#localweather_search_results').append('<span>'+translation['auswahl_ort'][l_id]+'</span>');  	
  }
}
}

// ########################################################################### 
// DOCUMENT READY
$(document).ready(function(){
  //MAP STUFF
  //set map image
  if ( weather2011_mapimage ) $('#mapimage').attr("src", weather2011_docs_basepath+'img/'+weather2011_mapimage);
	
  $('#radar_legende').attr("src", weather2011_radar_legende_path);

  // chooser buttons weather or wind
  $('#mode_chooser_0').click(function() {
    mode_chooser = 0;
    updateValues($( "#slider" ).slider( "option", "value" ));
  });
  $('#mode_chooser_1').click(function() {
    mode_chooser = 1;
    updateValues($( "#slider" ).slider( "option", "value" ));
  });
  $('#mode_chooser_1').click(function() {
    mode_chooser = 2;
    //updateValues($( "#slider" ).slider( "option", "value" ));
  });

  //eventlistener for searchbox "press enter"
  $("#weathersearch").keyup(function(event) {
    if(event.keyCode == 13) {
      window.location = translation['pfad'][l_id]+"search.tmpl?search_string="+$('#weathersearch').val();
    }
  });
}); // /document ready function
