$(document).ready(function(){
  
  // basic setup
  var plazas = [
    {'plaza':'Monterrey', 'zipcode':'MXNL0068'},
    {'plaza':'Cd. de M&eacute;xico', 'zipcode':'MXDF0132'},
    {'plaza':'Guadalajara', 'zipcode':'MXJO0043'},
    {'plaza':'Torre&oacute;n', 'zipcode':'MXCL0014'},
    {'plaza':'Tampico', 'zipcode':'MXTS0105'},
    {'plaza':'Edo. de M&eacute;xico', 'zipcode':'MXCE2460'},
    {'plaza':'Puebla', 'zipcode':'MXPA0070'},
    {'plaza':'Le&oacute;n', 'zipcode':'MXGO0035'},
    {'plaza': 'Hidalgo', 'zipcode' : 'MXHO0134'}
  ];
  var getweather = function(){
    // create the widget markup    
    $(".weather .container").html('<div id="weatherTemp">Cargando....</div><div id="weatherImageContainer"><img id="weatherImage" /></div><div id="weatherMinContainer"><span id="weatherMin"></span><span class="weatherLegend">M&iacute;n</span></div><div id="weatherMaxContainer"><span id="weatherMax"></span><span class="weatherLegend">M&aacute;x</span></div>');

    $.YQL("select * from weather.forecast where location='"+ $(this).val() +"'",function(data){
      var w=data.query.results.channel;

      $('#weatherTemp').html( "<span class='deg'>" + parseFloat((parseInt(w.item.condition.temp)-32)*(5/9)).toFixed(0) +"&deg;C</span>");
      var weatherImage="http://l.yimg.com/a/i/us/nws/weather/gr/"+w.item.condition.code+"d.png";
      $("#weatherImage").attr('src',weatherImage);

      $('#weatherMin').html(parseFloat((parseInt(w.item.forecast[0].low)-32)*(5/9)).toFixed(0));
      $('#weatherMax').html( parseFloat((parseInt(w.item.forecast[0].high)-32)*(5/9)).toFixed(0));
    });
  }
  
  var saveweathercookie = function() {
    $.cookie('mileniocom_weather', $(this).val() , {'path':'/', 'expires':null});
  }
  
  // creating the selector markup
  $('.weather').html('<select id="weather_select"></select><div class="container"></div>');
  
  for (var element in plazas) {
      element = plazas[element];
      if(element.zipcode && element.plaza) {
        var option = $("<option value='" + element.zipcode + "' >" + element.plaza +"</option>");
        $('.weather select').append(option);
      }
  }
  
  //assigning events
  $('.weather select').change(getweather).change(saveweathercookie);
    
  // creating cookie and loading default city    
  if(!$.cookie('mileniocom_weather')) {
    $.cookie('mileniocom_weather', 'MXDF0132', {'path':'/', 'expires':null} );
    $('.weather select').val('MXDF0132'); // default = mexico df
  } else {
    $('.weather select').val($.cookie('mileniocom_weather'));
  }

  //making it look nice and firing up the first load
  $('.weather select').sSelect().change();
});

