var current_map = "map_city";
var candidates;
var precinct_details = $('<div class="candidates"></div>');
var active_precinct = null;


function electionMap(swf) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[swf];
  } 
  else {
    return document[swf];
  }
}

function canidateOverview() {
  precinct_details.hide(50, function() {
    candidates.show('fast');        
  });
  active_precinct = null;
}

function precinctClick(pid) {
  if (active_precinct == pid) {
    return false;
  }
  active_precinct = pid;
  precinct_details.hide(50);
  p = $('#p'+pid);
  
  results = p.find('.candidate_results tr').clone();
  results.find('a').click(candidateClick);
  details = p.find('.precinct_details').clone();
  details.find('p.jump_top').remove();
  turnout = p.find('.turnout').clone();
  
  if (results.length) {
    precinct_details.find(".results").html(results);
    precinct_details.find('.precinct_details').parent().empty().append(details).append(turnout);
  } else {
    precinct_details.find("tbody").html($('<tr><td><h3>We do not have specific results for this precinct.</h3></td></tr>'));
  }
  candidates.hide(50, function() {
    precinct_details.show('fast');        
  });
}

function candidateClick(e) {
  e.preventDefault();
  target = $(e.target);
  $('.candidates table tr').removeClass('on');
  target.parent().parent().addClass('on');
  candidate_id = target.attr('rel');
  electionMap(current_map+'_swf').candidateClick(candidate_id);
}

$(function() {
  candidates = $('.candidates');
  precinct_details.html(candidates.html());
  precinct_details.find('tbody tr, thead, p').remove();
  precinct_details.find('tbody').addClass('results');
  precinct_details.removeClass('candidates').addClass('precincts').addClass('precinct_map_details');
  precinct_details.prepend('<div class="details"></div>');
  precinct_details.prepend('<table><tbody><tr><th>Precinct</th><th>Turnout</th></tr><tr><td class="precinct_details"></td><td class="turnout"></td></tr></tbody></table>');
  precinct_details.append($('<p class="back"><a class="button return">Return to race totals</a></p>').click(canidateOverview));
  precinct_details.insertAfter(candidates).hide();
  
  $('.candidates table tr td a').click(candidateClick);
  
  $('.race_maps ul li a').click(function(e) {
    e.preventDefault();
    target = $(e.target);
    $('.candidates table tr').removeClass('on');
    $('.race_maps div').hide();
    $('.race_maps ul li').removeClass('on');
    target.parent().addClass('on');
    current_map = target.attr('href').slice(1);
    $('#'+current_map).show();
  });
});
