﻿var FOA = {};

$(function () {
  if (!window.JSON) {
    $("head").append("<script src='json_min.js' type='text/javascript' />");
  }

  $('#searchform').submit(function (event) {
    event.preventDefault();
    $.mobile.pageLoading();
    var url = FOA.baseurl + "/personer";
    var argumenter = {};
    var fornavn = $.trim($('#fornavn').val());
    var efternavn = $.trim($('#efternavn').val());
    if (!(fornavn && fornavn.length > 0 || efternavn && efternavn.length > 0)) {
      $.mobile.pageLoading(true);
      alert("Angiv fornavn og/eller efternavn");
      return;
    }
    //    alert("førb ajax");
    if (fornavn && fornavn.length > 0) {
      argumenter.fornavn = fornavn;
    }
    if (efternavn && efternavn.length > 0) {
      argumenter.efternavn = efternavn;
    }
    $.ajax({
      url: url,
      data: argumenter,
      dataType: "json",
      success: FOA.vispersoner,
      error: FOA.vispersonerfejl
    });
    return false;
  });

  $('#msearchform').submit(function (event) {
    event.preventDefault();
    $.mobile.pageLoading();
    var url = FOA.baseurl + "/myndigheder";
    var q = $.trim($('#myndighedsnavn').val());
    var parametre = {};
    if (q && q.length > 0) {
      parametre.q = q;
      $.ajax({
        url: url,
        data: parametre,
        dataType: "json",
        success: FOA.vismyndigheder,
        error: FOA.vismyndighederfejl
      });
    }
    return false;
  }); 

  $('#favoritter').live('pagebeforeshow', function (event, ui) {
    FOA.visfavoritter();
  });

});


FOA.vispersonerfejl = function (xhr, status, errorThrown) {
  $.mobile.pageLoading(true);
  if (xhr.status === 404) {
    $("#personeroverskrift").html("0 personer");
    $.mobile.changePage($("#personer"), "slide", true, true);
  }
  else {
    alert("Fejl ved søgning efter personer: " + xhr.status);
  }
};

FOA.vispersoner = function (personer) {
  $.mobile.pageLoading(true);
  $.mobile.changePage("#personer", "slide", true, true);
  $("#personliste").empty();
  $("#personeroverskrift").html(personer.length + " personer");
  $("#personliste").empty();
  $.each(personer, function (i, person) {
    var id = person.id;
    $("#personliste").append("<li id='" + id + "'><a href='#person' ><h3>" + person.fornavn + " " + person.efternavn + "</h3><p><strong>" + person.titel + "</strong></p><p>" + person.afdeling.navn + "</p></a></li>");
    var f = function (e) {
      $.mobile.pageLoading();
      FOA.visperson(person);
      return true;
    };
    $("#" + id).bind("vclick", f);
  });
  $('#personliste').listview();
  $('#personliste').listview('refresh');
};


FOA.getperson = function (url) {
  $.mobile.pageLoading();
  $.ajax({
    url: url,
    dataType: "json",
    success: FOA.visperson,
    error: FOA.getpersonfejl
  });
}

FOA.getpersonfejl = function (xhr, status, errorThrown) {
  $.mobile.pageLoading(true);
  if (xhr.status != 404)
    alert("Fejl ved søgning ved opslag af medarbejder: " + status);
  else
    alert("Ingen medarbejder med det id");
};

FOA.visperson = function (person) {
  $.mobile.pageLoading(true);
  $("#personoverskrift").html(person.fornavn + " " + person.efternavn);
  $("#personinfo").empty();
  $("#personinfo").append("<h2>" + person.titel + " " + person.fornavn + " " + person.efternavn + "</h2>")
                  .append("<ul id='persondataliste' data-role='listview' data-theme='c' data-inset='true' />");
  $("#persondataliste").append("<li id='m" + person.afdeling.id + "'><a href='#myndighed'>Afdeling: " + person.afdeling.navn + "</a></li>")
                        .append("<li><a href='tel:" + person.telefon + "' target='_blank'>Telefon: " + person.telefon + "</a></li>")
                        .append("<li><a href='tel:" + person.mobil + "' target='_blank'>Mobil: " + person.mobil + "</a></li>")
                        .append("<li><a href='mailto:" + person.mail + "' target='_blank'>Mail: " + person.mail + "</a></li></ul>");
  var f = function () {
    $.mobile.pageLoading();
    FOA.getmyndighed(person.afdeling.href);
    return true;
  };
  $("#m" + person.afdeling.id).bind("vclick", f);
  $('#persondataliste').listview();
  $('#persondataliste').listview('refresh');
  $("#personinfo").append("<div data-role='fieldcontain'><fieldset data-role='controlgroup'><input type='checkbox' id='yb" + person.id + "' name='yb" + person.id + "' " + (FOA.erfavorit(person.id) ? "checked" : "") + " class='custom' /><label for='yb" + person.id + "' >Favorit</label></fieldset></div>"); 
  var f2 = function () {
    var checked = this.checked;
    if (checked) {
      FOA.gemfavorit(person);
    }
    else {
      FOA.sletfavorit(person.id);
    }
  };
  $("#yb" + person.id).bind('click', f2); 
};

FOA.vismyndigheder = function (myndigheder) {
  $.mobile.pageLoading(true);
  $.mobile.changePage("#myndigheder", "slide", true, true); 
  var mcount = 0;
  myndigheder.sort(function (a, b) {
    if (a.navn.toLowerCase() < b.navn.toLowerCase()) return -1;
    else if (a.navn.toLowerCase() > b.navn.toLowerCase()) return 1;
    else return 0;
  });
  $("#myndighedsliste").empty();
  $("#myndighederoverskrift").html(myndigheder.length + " myndigheder");
  $.each(myndigheder, function (i, m) {
    mcount++;
    var id = m.id;
    $("#myndighedsliste").append("<li id='m" + id + "'><a href='#myndighed'><h3>" + m.navn + "</h3><p>" + m.vejnavn + " " + m.husnr + "</p><p>" + m.postnummer.nr + " " + m.postnummer.navn + "</p></a></li>");
    var f = function () {
      $.mobile.pageLoading();
      FOA.getmyndighed(m.href);
      return true;
    };
    $("#m" + id).bind('vclick', f);
    $('#myndighedsliste').listview();
    $('#myndighedsliste').listview('refresh');

  });
};

FOA.vismyndighederfejl = function (xhr, status, errorThrown) {
  $.mobile.pageLoading(true);
  if (xhr.status != 404)
    alert("Fejl ved søgning efter myndigheder: " + status);
  else
    alert("Ingen myndigheder med det navn");
};

FOA.getmyndighed = function (url) {
  /* alert("getmyndighed"); */
  $.mobile.pageLoading();
  $.ajax({
    url: url,
    dataType: "json",
    success: FOA.vismyndighed,
    error: FOA.getmyndighedfejl
  });
}

FOA.getmyndighedfejl = function (xhr, status, errorThrown) {
 /* alert("getmyndighedfejl"); */
  $.mobile.pageLoading(true);
  if (xhr.status != 404)
    alert("Fejl ved læsning af myndighed: " + status);
  else
    alert("Myndighed findes ikke");
};

FOA.vismyndighed = function (myndighed) {
  /*  alert("vismyndighed");*/
  $.mobile.pageLoading();
  $("#myndighedinfo").empty();
  $("#myndighedoverskrift").html(myndighed.navn);
  var adrurl = "http://maps.google.com?q=" + encodeURIComponent(myndighed.adresse.vejnavn + " " + myndighed.adresse.husnr + "," + myndighed.adresse.postnr + " " + myndighed.adresse.postdistrikt);
  $("#myndighedinfo").append("<h2>"+myndighed.navn+"</h2>")
                   .append("<ul id='myndigheddataliste' data-role='listview' data-theme='c' data-inset='true'></ul>");
  $("#myndigheddataliste").append("<li><a  target='_blank' href='" + adrurl + "'>" + myndighed.adresse.vejnavn + " " + myndighed.adresse.husnr + "<br/>" + myndighed.adresse.postnr + " " + myndighed.adresse.postdistrikt + "</a></li>")
                      .append("<li><a  target='_blank' href='tel:" + myndighed.telefon + "'>Telefontid: " + myndighed.telefontid + " på telefon: " + myndighed.telefon + "</a></li>")
                      .append("<li><a  target='_blank' href='mailto:" + myndighed.mail + "'>Mail: " + myndighed.mail + "</a></li>")
                      .append("<li><a  target='_blank' href='" + myndighed.website + "'>Website: " + myndighed.website + "</a></li>");

  $('#myndigheddataliste').listview();
  $('#myndigheddataliste').listview('refresh');

  if (myndighed.hierarki.length > 0) {
    $("#myndighedinfo").append("<h2>Placering</h2>")
                        .append("<ul data-role='listview'  data-inset='true' data-theme='c' id='placeringsliste'></ul>");
    $.each(myndighed.hierarki, function (i, mynd) {
      $("#placeringsliste").append("<li id='m" + mynd.id + "'><a>" + mynd.navn + "</a></li>");
      var f = function () {
        $.mobile.pageLoading();
        FOA.getmyndighed(mynd.href);
        return true;
      };
      $("#m" + mynd.id).bind('vclick', f);
    });
    $('#placeringsliste').listview();
    $('#placeringsliste').listview('refresh');
  }

  if (myndighed.medarbejdere.length > 0) {
    $("#myndighedinfo").append("<h2>Medarbejdere</h2>")
                        .append("<ul data-role='listview'  data-inset='true' data-theme='c' id='medarbejderliste'></ul>");
    $.each(myndighed.medarbejdere, function (i, med) {
      $("#medarbejderliste").append("<li id='med" + med.id + "'><a href='#person'>" + med.fornavn + " " + med.efternavn + "</a></li>");
      var f2 = function () {
        $.mobile.pageLoading();
        FOA.getperson(med.href);
        return true;
      };
      $("#med" + med.id).bind('vclick',f2);
    });
    $('#medarbejderliste').listview();
    $('#medarbejderliste').listview('refresh');
  }

  if (myndighed.beskrivelse.length > 0)
    $("#myndighedinfo").append("<h2>Beskrivelse</h2>").append("<p>" + myndighed.beskrivelse + "</p>");

   $.mobile.pageLoading(true);
};

FOA.gemfavorit = function (mperson) {
  if (!Modernizr.localstorage) return;
  var favoritter = FOA.getfavoritter();
  favoritter[mperson.id] = mperson;
  FOA.putfavoritter(favoritter);
};

FOA.sletfavorit = function (id) {
  if (!Modernizr.localstorage) return;
  var favoritter = FOA.getfavoritter();
  delete favoritter[id];
  FOA.putfavoritter(favoritter);
};

FOA.erfavorit = function (id) {
  if (!Modernizr.localstorage) return false;
  var favoritter = FOA.getfavoritter();
  return favoritter[id];
};

FOA.getfavoritter = function () {
  if (!Modernizr.localstorage) return;
  var favoritter = localStorage["favoritter"];
  if (!favoritter) favoritter = {};
  else favoritter = JSON.parse(favoritter);
  return favoritter;
};

FOA.putfavoritter = function (favoritter) {
  if (!Modernizr.localstorage) return;
  if (!favoritter) favoritter = {};
  localStorage["favoritter"] = JSON.stringify(favoritter);
};

FOA.visfavoritter = function () {
  if (!Modernizr.localstorage) return;
  var favoritter = FOA.getfavoritter();
  $("#favoritliste").empty();
  $.each(favoritter, function (i, favorit) {
    $("#favoritliste").append("<li><h3><a href='#person' id='f" + favorit.id + "'  data-transition='fade'>" + favorit.fornavn + " " + favorit.efternavn + "</a></h3><p><strong>" + favorit.titel + "</strong></p><p>" + favorit.afdeling.navn + "</p></li>");
    var f= function (e) {
      FOA.visperson(favorit);
    };
    $("#f" + favorit.id).bind("click", f);
  });
  $('#favoritliste').listview('refresh');
};

