$(function(){
  var timetable = $('.timetable');
  $('h2',timetable).hide();
  timetable.tabs({spinner: 'Ładowanie...', cache: true, selected: timetable_tab_index});

  
  var dialog = $('<div id="result_dialog" />').addClass('timetable');
  $('body',document).append(dialog);
  dialog.dialog({resizable:false, autoOpen:false, width:400});

  var map;
  var map_loaded = false;

  if(!map_loaded && $('#mapa').length){
    map_loaded = true;
    loadMap();
  }

  var loader  = '/images/theme/icons/ajax-loader-16-trans.gif';
  var results = '/images/theme/icons/status_away.png';

  $('.results a',timetable).live("click", function(event){
    if (event.button != 0) {
      return true; // wasn't the left button - ignore
    }
    var clicked = $(this);
    $('img',clicked).attr('src',loader);
    var link = $(this).attr('href');
    dialog.html('');
    dialog.load(link, {}, function(){
      var title = $('h3',dialog).text();
      $('h3',dialog).remove();
      dialog.dialog('option', 'title', title);
      dialog.dialog("open");
      $('img',clicked).attr('src',results);
    });
    return false;
  });

  timetable.bind('tabsshow', function(event, ui) {
    if (ui.panel.id == "Zasady_i_trasa") {
      if(!map_loaded){
        map_loaded = true;
        loadMap();
      }
    }
  });

  timetable.bind('tabsload', function(event, ui) {
    if (ui.panel.id != "Zasady_i_trasa") {
      $('.tooltip',ui.panel).tooltip();
    }
  });

});

function showTimetrialMap(){
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("mapa"));
    // add controls
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());

    //manage type
    map.addMapType(G_PHYSICAL_MAP);
    map.removeMapType(G_HYBRID_MAP);
    map.removeMapType(G_SATELLITE_MAP);

    var startIcon = new GIcon();
    startIcon.image = "/images/theme/icons/mm_20_green.png";
    startIcon.shadow = "/images/theme/icons/mm_20_shadow.png";
    startIcon.iconSize = new GSize(12, 20);
    startIcon.shadowSize = new GSize(22, 20);
    startIcon.iconAnchor = new GPoint(6, 20);
    startIcon.infoWindowAnchor = new GPoint(5, 1);

    var endIcon = new GIcon();
    endIcon.image = "/images/theme/icons/mm_20_red.png";
    endIcon.shadow = "/images/theme/icons/mm_20_shadow.png";
    endIcon.iconSize = new GSize(12, 20);
    endIcon.shadowSize = new GSize(22, 20);
    endIcon.iconAnchor = new GPoint(6, 20);
    endIcon.infoWindowAnchor = new GPoint(5, 1);

    markerStartOptions = { icon:startIcon };
    markerEndOptions = { icon:endIcon };

    var polyline = new GPolyline.fromEncoded({
      color: "#017E01",
      weight: 4,
      opacity: 0.8,
      points: "asppH_~gxBl@d@r@l@Dx@OxBDt@VZd@Dj@Wj@_@t@Ol@R`@Zf@b@Tl@JbAGpAWbCEr@W|NA~ATnBTxAVdAv@pA|@t@ZFl@An@Gb@DJ`@Gl@Sj@aAbAm@hA_@jAy@lDe@dAQv@ClA@x@j@lDl@rBf@dAd@v@p@h@hBN\\ZbA|Bn@bAXVz@h@x@ZZFx@An@[PS",
      levels: "P?DABAEB?AD@BAEA@?BBAE?BDB@@@BF@BAB@@@D?BFA?CBDAA?EA?CB@P",
      zoomFactor: 2,
      numLevels: 18
    });

    var start = new GLatLng(polyline.getVertex(0).y,polyline.getVertex(0).x);
    var end = new GLatLng(polyline.getVertex(polyline.getVertexCount()-1).y,polyline.getVertex(polyline.getVertexCount()-1).x);

    map.setCenter(polyline.getBounds().getCenter(),map.getBoundsZoomLevel(polyline.getBounds()),G_PHYSICAL_MAP);
    map.addOverlay(polyline);
    map.addOverlay(new GMarker(start, markerStartOptions));
    map.addOverlay(new GMarker(end, markerEndOptions));

    $('body').unload(function(){
        GUnload();
    });
  } else {
    $('#mapa').html('<p>Ta przeglądarka nie jest w stanie obsłużyć map.</p>');
  }
}

function loadMap(){
  $('#mapa').html('<p>Ładowanie mapy...</p>');
  google.load("maps", "2", {callback: showTimetrialMap, language:'pl'});
}