jQuery.noConflict();

(function($) {
$(function() {

  page = document.location.href;

  // Täyttää pvm select-kentät palaute -sivuille
  if ( page.match(/ymparisto_palaute/) || page.match(/ymparistopalautteet$/) ) {
    addDates();
  }

  // Palautteen lähettämisen/lisäämisen kenttien tarkastus
  if (document.getElementById("lahetaPalaute")) {
    $("#lahetaPalaute").validationAideEnable(null, {
      summaryMessage: "Tarkista vaaditut kentät",
      summaryFieldMessageFormat: "##FIELD##"
    });
  }
  if (document.getElementById("lisaaPalaute")) {
    $("#lisaaPalaute").validationAideEnable(null, {
      summaryMessage: "Tarkista vaaditut kentät",
      summaryFieldMessageFormat: "##FIELD##"
    });
  }

  // Palautehaku
  $("form#palauteHaku").submit( function () {
    setDates();
  });

  // Palautteen lähettäminen; pvm-kentät
  $("form#lahetaPalaute").submit( function () {
    setDates();
  });

  // Palautteen lisääminen; pvm-kentät
  if ( page.match(/ymparistopalautteet_lisaa/) )  {
    addDate();
    $("form#lisaaPalaute").submit( function () {
      setDates();
      setDate();
    });
  }

  // Palaute -sivu; suorita-checkboxit
  $("#tallenna, #laheta, #sulje").change( function () {
    updateSuorita();
  });

  // Palautteen muokkaus; lentoasema-kenttä
  if ( page.match(/ymparistopalautteet_muokkaa/) ) {
    $("select[@name=cmf_0_10]").val( $("#lentoasema").val() );
  }
});
})(jQuery);



/*

  Palaute

*/

// Palautteen näyttäminen; vaihtaa palautteen/vastauksen lisäämisen välillä
// lisaaVas/lisaaPal -muuttujat handleFeedback() kenttien tarkistusta varten
var palaute_email = '';
var vastaus_data = '';
var lisaaVas = true;
var lisaaPal = false;

function lisaaPalaute () {
  (function($) {

  $("#yhteydenottotapa_1").attr("checked", "checked");

  lisaaPal = true;
  lisaaVas = false;

  $('#laheta').removeAttr("checked");
  $('#laheta').attr({disabled: "disabled"});

  palaute_email = $("#palaute_email").val();
  $("#palaute_email").val("");

  var setDisplay = "table-cell";
  if($.browser.msie) {
    setDisplay = "block";
  }

  vastaus_data = $(".lisaaVastaus textarea").val();

  $(".lisaaVastaus textarea, .lisaaVastaus_liite input").val("");
  $(".lisaaVastaus th, .lisaaVastaus td, .lisaaVastaus_liite th, .lisaaVastaus_liite td").hide();
  $(".lisaaPalaute th, .lisaaPalaute td, .lisaaPalaute_liite th, .lisaaPalaute_liite td").css({display: setDisplay});

  })(jQuery);
}

function lisaaVastaus () {
  (function($) {

  $(".yhteydenottotapa").removeAttr("checked");

  lisaaVas = true;
  lisaaPal = false;

  $('#laheta').removeAttr("disabled");

  $("#palaute_email").val(palaute_email);
  palaute_email = '';

  var setDisplay = "table-cell";
  if($.browser.msie) {
    setDisplay = "block";
  }

  $(".lisaaVastaus textarea").val( vastaus_data );
  vastaus_data = '';

  $(".lisaaPalaute textarea, .lisaaPalaute_liite input").val("");
  $(".lisaaPalaute_liite input").removeAttr("checked");
  $(".lisaaPalaute th, .lisaaPalaute td, .lisaaPalaute_liite th, .lisaaPalaute_liite td").hide();
  $(".lisaaVastaus th, .lisaaVastaus td, .lisaaVastaus_liite th, .lisaaVastaus_liite td").css({display: setDisplay});

  })(jQuery);
}

// Palautteen näyttäminen; tarkistaa onko palaute suljettu ja piilottaa suorita-checkboxit ja submitin
function checkSuljettu (suljettu) {
  (function($) {

  if (suljettu) {
    $(".suorita th, .suorita td").hide();
    $(".lisaaVastaus th, .lisaaVastaus td, .lisaaVastaus_liite th, .lisaaVastaus_liite td").hide();
  }

  })(jQuery);
}

// Valitsee tallenna-checkboxin jos lähetä- tai sulje-checkbox ruksataan
function updateSuorita () {
  (function($) {

  var tallenna = $('#tallenna').attr("checked");
  var laheta = $('#laheta').attr("checked");
  var sulje = $('#sulje').attr("checked");
  if (laheta || sulje) {
    $('#tallenna').attr({checked: "checked"});
  }

  })(jQuery);
}

// Suorita-napin toiminta
function handleFeedback (pid, key) {
  (function($) {

  var tallenna = $('#tallenna').attr("checked");
  var laheta = $('#laheta').attr("checked");
  var sulje = $('#sulje').attr("checked");

  if (!tallenna && !laheta && !sulje) return false;

  var submit = false;

  // Emailia ei määritelty; submittaa ilman kysymistä vastauksen lähettämisestä
  var palauteEmail = $("#palaute_email").val();
  if (!palauteEmail) {
    submit = true;
  }

  // Tarkistaa ettei vastaus/palaute-kentät ole tyhjiä
  if (lisaaVas && (!$(".lisaaVastaus textarea").val() && !$(".lisaaVastaus_liite input").val())) {
    alert("Täytä vastaus-kenttä tai valitse liitetiedosto");
    return false;
  }
  if (lisaaPal && (!$(".lisaaPalaute textarea").val() && !$(".lisaaPalaute_liite input").val())) {
    alert("Täytä yhteydenotto-kenttä tai valitse liitetiedosto");
    return false;
  }

  // Vastaus (ei liite) lisätään ilman tallentamista, lahetetty = 0
  if (lisaaVas && !laheta) {
    $("#lahetetty").val("0");
  }

  // Lähetä
  if (laheta && palauteEmail) {
    if (confirm("Haluatko varmasti lähettää vastauksen osoitteeseen "+ $("#palaute_email").val() +"?")) {
      submit = true;
    }
  }

  // Ilman lähetystä
  if (!laheta && palauteEmail) {
    if (confirm("Haluatko varmasti jättää vastauksen lähettämättä?")) {
      $("#palaute_email").val("");
      submit = true;
    }
  }

  var message = '';

  // Linkki vastaus-sivuun
  message += ""
  message += "\n";
  message += "Voit lukea ja vastata vastaukseen osoitteessa\n";
  message += "\n";
  message += "http://www.finavia.fi/ymparistopalaute_vastaus?id="+ pid +"&key="+ key;

  // Maininta liitetystä tiedostosta
  if ($(".lisaaVastaus_liite input").val()) {
    message += "\n\n";
    message += "Vastaukseen on liitetty liitetiedosto. Voit lukea sen vastaussivulta.";
  }

  message += "\n\n";
  message += "Tämä on palautejärjestelmän lähettämä automaattinen viesti - älä vastaa tähän viestiin sähköpostitse.";

  // Lisää linkin ei-suljettavaan, lähetettävään viestiin
  // if (lisaaVas && laheta && !sulje && palauteEmail) {
  if (lisaaVas && laheta && palauteEmail) {
    $("#palaute_link").val(message);
  }

  // Allekirjoitus
  var signame = $("#signature").val();
  $("#signature").val("");

  var signature = '';
  signature += "\n";
  signature += "--\n";
  signature += "Ystävällisin terveisin\n";
  signature += "\n";
  signature += signame +"\n";
  signature += "\n";
  signature += "Finavia\n";
  signature += "Ympäristötiimi\n";
  $("#signature").val(signature);

  // Lisää sulje-parametrin
  if (sulje) {
    var ngf_okparams = $('#ngf_okparams').val();
    ngf_okparams += "&sulje=1";
    $('#ngf_okparams').val(ngf_okparams);
    submit = true;
  }

  // Poistaa ei-lähetetyt väliaikaiset vastaukset
  var vastausPids = $("#vastaus_pids").val();
  if (lisaaVas && vastausPids) deleteAnswers(vastausPids);

  if (submit) {
    setTimeout("document.suorita.submit()", 2000);
  }

  })(jQuery);
}

function closeThisFeedback (pid) {
  (function($) {

  $("body").prepend('<div class="suljetaan"><h1>Odota</h1><h2>Palautetta suljetaan...</h2></div>');
  closeFeedback(pid);
  createPDF(pid);
  setTimeout("sendMail("+ pid +")", 3000);
  setTimeout("document.location = '/ymparistopalautteet'", 5000);

  })(jQuery);
}


function closeOutdated (pidArray) {
  (function($) {

  var suljettavat = pidArray.length;
  if (suljettavat) {
    $("body").prepend('<div class="suljetaan"><h1>Odota</h1><h2>Vanhentunutta palautetta suljetaan ('+ suljettavat +' kpl) ...</h2></div>');
    for (i = 0; i < suljettavat; i++) {
      var pid = pidArray[i];
      closeFeedback(pid);
      createPDF(pid);
      setTimeout("sendMail("+ pid +")", 3000);
    }
    setTimeout("document.location = '/ymparistopalautteet'", (5000 * suljettavat));
  }

  })(jQuery);
}

function closeFeedback (pid) {
  (function($) {

  // var url = '/ymparistopalautteet_sulje';
  var url = '/ymparistopalautteet_kirjaudu/ymparistopalautteet/ymparistopalautteet_nayta/ymparistopalautteet_sulje';
  $.post(url,
    {
      cmf_op: "edit",
      cmf_pids: pid,
      id: pid,
      cmf_0_21: 1
    },
    function () { }
  );

  })(jQuery);
}


function createPDF (pid) {
  (function($) {

  // var url = '/ymparistopalautteet_pdf';
  var url = '/ymparistopalautteet_kirjaudu/ymparistopalautteet/ymparistopalautteet_nayta/ymparistopalautteet_pdf';
  $.get(
    url, {
      id: pid,
      cm_do_pdf: 1,
      cm_pdf_pid: pid
    },
    function () { }
  );

  })(jQuery);
}


function sendMail (pid) {
  (function($) {

  // var url = '/ymparistopalautteet_mail';
  var url = '/ymparistopalautteet_kirjaudu/ymparistopalautteet/ymparistopalautteet_nayta/ymparistopalautteet_mail';
  $.get(
    url, {
      id: pid,
      mail_sendnow: 1
    },
    function () { }
  );

  })(jQuery);
}


function deleteAnswers (pids) {
  (function($) {

  // var url = '/ymparistopalautteet_poista';
  var url = '/ymparistopalautteet_kirjaudu/ymparistopalautteet/ymparistopalautteet_nayta/ymparistopalautteet_poista';
  $.post(url,
    {
      cmf_op: "delete",
      cmf_pids: pids
    },
    function () { }
  );

  })(jQuery);
}



// Palautteen lisäys; asettaa meluun liittyvät kentät get-parametreistä
function presetMelufields (id, mode, radio, start, stop) {
  (function($) {

  addDates();

  if (id == 1) {

    meluFields(id);
    $('#meluCase').val(mode).attr({selected: 'selected'});

    meluDates(radio);
    $('#meluRadio_'+ radio).attr({checked: 'checked'});

    var startX = start.split(" ");
    var startDate = startX[0].split("-");
    var startTime = startX[1].split(":");

    var stopX = stop.split(" ");
    var stopDate = stopX[0].split("-");
    var stopTime = stopX[1].split(":");

    $('#start_y').val( startDate[0] );
    $('#start_m').val( startDate[1] );
    $('#start_d').val( startDate[2] );
    $('#start_h').val( startTime[0] );
    $('#start_min').val( startTime[1] );

    if (radio == 2) {
      $('#stop_y').val( stopDate[0] );
      $('#stop_m').val( stopDate[1] );
      $('#stop_d').val( stopDate[2] );
      $('#stop_h').val( stopTime[0] );
      $('#stop_min').val( stopTime[1] );
    }
  }
  })(jQuery);
}

// Ylläpidon palautteen lisäys; asettaa nykyisen pvm:n 

function addDate () {
  (function($) {
  
  var d = new Date();

  for (i = 2007; i <= (d.getFullYear() + 5); i++) $('#year').append('<option value="'+ i +'">'+ i +'</option>');
  for (i = 1; i <= 12; i++) $('#month').append('<option value="'+ add0(i) +'">'+ i +'</option>');
  for (i = 1; i <= 31; i++) $('#day').append('<option value="'+ add0(i) +'">'+ i +'</option>');
  for (i = 0; i <= 23; i++) $('#hour').append('<option value="'+ add0(i) +'">'+ add0(i) +'</option>');
  for (i = 0; i <= 59; i++) $('#min').append('<option value="'+ add0(i) +'">'+ add0(i) +'</option>');

  // Vitun IE
  setTimeout(addDateSet, 250);
  })(jQuery);
}

// Vitun IE
function addDateSet () {
  (function($) {

  var d = new Date();
  $('#year').val( add0( d.getFullYear() ) );
  $('#month').val( add0( d.getMonth() + 1) );
  $('#day').val( add0( d.getDate() ) );
  $('#hour').val( add0( d.getHours() ) );
  $('#min').val( add0( d.getMinutes() ) );

  })(jQuery);
}


// Ylläpidon palautteen lisäys; kopioi asetetun pvm:n piiloitettuun kenttään
function setDate () {
  (function($) {
  $('#paivays').val(
    $('#year').val() +"-"+ $('#month').val() +"-"+ $('#day').val() 
    +" "+
    $('#hour').val() +":"+ $('#min').val()
  );
  })(jQuery);
}





/*

 Palauteform

*/

// sprintf-klunssi
function add0 (i) {
  i += "";
  if (i == 0) return "00";
  else if (i.length == 1) return "0"+ i;
  else return i;
}


// Kirjoittaa pvm:t select -kenttiin
function addDates () {
  (function($) {
  var d = new Date();
  for (i = 1; i <= 31; i++) $('#start_d, #stop_d').append('<option value="'+ add0(i) +'">'+ i +'</option>');
  for (i = 1; i <= 12; i++) $('#start_m, #stop_m').append('<option value="'+ add0(i) +'">'+ i +'</option>');
  for (i = 2007; i <= (d.getFullYear() + 5); i++) $('#start_y, #stop_y').append('<option value="'+ i +'">'+ i +'</option>');
  for (i = 0; i <= 23; i++) $('#start_h, #stop_h').append('<option value="'+ add0(i) +'">'+ add0(i) +'</option>');
  for (i = 0; i <= 59; i++) $('#start_min, #stop_min').append('<option value="'+ add0(i) +'">'+ add0(i) +'</option>');
  })(jQuery);
}


function presetDates (start, stop) {
    addDates();

    var startDate = start.split("-");
    var stopDate = stop.split("-");

    $('#start_y').val( startDate[0] );
    $('#start_m').val( startDate[1] );
    $('#start_d').val( startDate[2] );
 
    $('#stop_y').val( stopDate[0] );
    $('#stop_m').val( stopDate[1] );
    $('#stop_d').val( stopDate[2] );
}


// Näyttää/piiloittaa meluun liittyvät kentät
function meluFields (id) {
  (function ($) {
  if (id == 1) {
    $('.melu').show("slow");
    $('#meluCase').addClass("validator-required");
  }

  else {
    $('#meluCase').removeClass("validator-required");
    $('.melu').hide("slow");
    $('.melu_dates').hide("slow");
    unsetMeluFields();
  }
  })(jQuery);
}


// Vaihtaa melun eri jatkuvuustyyppien välillä
function meluDates (id) {
  (function ($) {

  $('.melu_dates').show("slow");

  // yksittäinen, jatkuva / muutos
  if (id == 1 || id == 3 || id == 4) {
    $('.melu_dates .date_title').hide("slow");
    $('.melu_dates .stops').hide("slow");
    $('#stop_d, #stop_m, #stop_y, #stop_h, #stop_min').val("");
  }

  // jaksottainen
  if (id == 2) {
    $('.melu_dates .date_title').show("slow");
    $('.melu_dates .stops').show("slow");
  }

  })(jQuery);
}


// Poistaa meluun liittyvien kenttien arvot
function unsetMeluFields () {
  (function ($) {
  $('#meluCase').val("");
  $('.meluRadio').removeAttr("checked");
  $('#start_d, #start_m, #start_y, #start_h, #start_min').val("");
  $('#stop_d, #stop_m, #stop_y, #stop_h, #stop_min').val("");
  })(jQuery);
}


// Kopioi päivämäärä select-kenttien arvot kahteen piiloitettuun
function setDates () {
  (function ($) {
  var start = '';
  var stop = '';

  if ($('#start_y').val() && $('#start_m').val() && $('#start_d').val()) {
    start = $('#start_y').val() +"-"+ $('#start_m').val() +"-"+ $('#start_d').val();
    if ($('#start_h').val() && $('#start_min').val()) {
      start += " "+ $('#start_h').val() +":"+ $('#start_min').val();
    }
  }
  if ($('#stop_y').val() && $('#stop_m').val() && $('#stop_d').val()) {
    stop = $('#stop_y').val() +"-"+ $('#stop_m').val() +"-"+ $('#stop_d').val();
    if ($('#stop_h').val() && $('#stop_min').val()) {
      stop += " "+ $('#stop_h').val() +":"+ $('#stop_min').val();
    }
  }
  if (start) $('#start').val(start);
  if (stop) $('#stop').val(stop);
  })(jQuery);
}

