﻿var MaandNamen = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'];
var MaandNamenKort = ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec']
var DagNamen = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'];
var DagNamenMin = ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'];
var DagNamenKort = ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'];
var overlay = jQuery('<div id="overlay"> </div>');
var lisa = null;
var imgRandom = 0;
var browsertitle = "";


$(document).delegate("li.fontsize a", "click", function (event) {
  event.preventDefault();
  $.ajax({
    url: $(this).attr("href"), // "/Home/TekstSize?size=" + size,
    type: "POST",
    success: function (result) {
      $("#sizeLink").attr('href', result.Url);
    }
  });
});

$(function () {
  
  //takeover submit enqueteforms
  $(".jssubmit").live("submit", function () {
        var form = $(this);
        $.post($(this).attr("action"), $(this).serialize(), function (data) {
          form.parents(".formcontent").first().replaceWith(data);
          return false;
        });
    return false;
  });

  //Toon images in fancybox
  $("a.photoalbum").fancybox({
    'overlayShow': false,
    'zoomSpeedIn': 400,
    'zoomSpeedOut': 400

  });

  //Send-a-friend
  var nmont = $("#nmontv"),
	emont = $("#emontv"),
	nmafz = $("#nmafz"),
	emafz = $("#emafz"),
	text = $("#text"),
	url = $("#url"),
	tips = $("#safValidationSummary");
  allFields = $([]).add(nmont, emont, nmafz, emafz, text, tips);


  $("#safDialog").dialog({
    height: 340,
    width: 400,
    modal: true,
    autoOpen: false,
    buttons: {
      "Verstuur": function () {
        var isValid = true;
        allFields.removeClass("ui-state-error");
        isValid = isValid && safCheckLength(nmont, "de naam van de ontvanger");
        isValid = isValid && safCheckLength(emont, "het e-mailadres van de ontvanger");
        isValid = isValid && safCheckRegexp(emont, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Vul een geldig e-mailadres in.");
        isValid = isValid && safCheckLength(nmafz, "uw naam");
        isValid = isValid && safCheckLength(emafz, "uw e-mailadres");
        isValid = isValid && safCheckRegexp(emafz, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Vul een geldig e-mailadres in.");
        if (isValid) {
          $.post("/styleit/sendafriend", { naamAfz: nmafz.val(), emailAfz: emafz.val(), naamOntv: nmont.val(), emailOntv: emont.val(), text: text.val(), url: url.val() }, function (result) {
            if (result.Succes == "OK") {
              $("#safDialog").dialog("close");
              $("#safBedankt").dialog({
                autoOpen: true,
                close: function () {
                  //$('body #overlay').remove();
                },
                open: function () {
                  //overlay.appendTo(document.body);
                }
              });
            }
            else {
              $("#safDialog").dialog("close");
              $("#safError").dialog({
                autoOpen: true,
                close: function () {
                  //$('body #overlay').remove();
                },
                open: function () {
                  //overlay.appendTo(document.body);
                }
              });
            }
          });

        }
      },
      Cancel: function () {
        $(this).dialog("close");
      }
    },
    close: function () {
      allFields.val("").removeClass("ui-state-error");
      //$('body #overlay').remove();
    },
    open: function () {
      //overlay.appendTo(document.body);
    }
  });

  $("#safBedankt, #safError").dialog({
    height: 340,
    width: 400,
    modal: true,
    autoOpen: false,
    buttons: {
      OK: function () {
        $(this).dialog("close");
      }
    }
  });

  $("#safLink").live("click", function () {
    $("#safDialog").dialog("open");
  });

  function safCheckLength(o, n) {
    if (o.val().length > 0)
      return true;
    else {
      o.addClass("ui-state-error");
      safUpdateTips("Vul alstublieft " + n + " in");
    }
    return false;
  }

  function safUpdateTips(t) {
    tips.text(t).addClass("ui-state-highlight");
    setTimeout(function () {
      tips.removeClass("ui-state-highlight", 1500);
    }, 500);
  }

  function safCheckRegexp(o, regexp, n) {
    if (!(regexp.test(o.val()))) {
      o.addClass("ui-state-error");
      safUpdateTips(n);
      return false;
    } else {
      return true;
    }
  }

  //div accordion
  $("div.accordion").accordion({
    animated: 'slide',
    fillSpace: true,
    change: function (event, ui) {
      setScrollbar(ui.newContent, ui.oldContent);
    },
    create: function (event, ui) {
      setScrollbar($(this).children('.accordion-content.ui-accordion-content-active'), null);
    }
  });

  $("div.faqaccordion").accordion(
		{
		  animated: 'slide',
		  autoHeight: false,
		  collapsible: true,
		  active: false,
		  navigation: true
		});

  $(".last-tab").unbind('click');
  $(".no-paste").bind("paste", function () {
    return false;
  });

  $(".dialog-vwfotoupload:first").dialog({
    modal: true,
    autoOpen: false
  });

  $(".vw-fotoupload").live("click", function (event) {
    $(".dialog-vwfotoupload").dialog("open");
    return false;
  });

  init_formsubmit();
  
  //Lisa (Virtuele medewerker)
  lisa = new DI.UI("lisa", { "root": "/lisa/", "config_path": "va_files/scripts/va_config.js" });
});

//Scrollbar in accordions homepage
function setScrollbar(accordionObject, oldAccordionObject) {
  var height = accordionObject.height();
  var overview = accordionObject.find('.overview').height();
  var newHeight = 0;
  var paddingTop;
  var paddingBottom;
  var heightCorrection = 0;

  //oude scrollbar uit
  if (oldAccordionObject != null) {
    oldAccordionObject.children('.scrollbar').hide();
  }

  // correctie voor hoogte berekenen, want padding zit niet bij hoogte in
  paddingTop = accordionObject.css('padding-top');
  paddingBottom = accordionObject.css('padding-bottom');

		paddingBottom = parseInt(paddingBottom.substr(0, (paddingBottom.length - 2)));

		heightCorrection = parseInt(paddingTop.substr(0, (paddingTop.length - 2)))
		heightCorrection += paddingBottom

  heightCorrection = parseInt(paddingTop.substr(0, (paddingTop.length - 2)))
  heightCorrection += paddingBottom

  // controleren of er een scrollbar neergezet moet worden		
  if (overview > (height + heightCorrection)) {

    // tonen scrollbar div
    accordionObject.children('.scrollbar').show();

    // bij een padding top van 0 geen manipulatie meer uitvoeren (is dus al eens eerder gebeurd)
    if (parseInt(paddingTop.substr(0, (paddingTop.length - 2))) > 0) {
      // 10 top padding en 20 bottom padding betekend hoogte + 30...
      accordionObject.css({
        'padding-top': '0px',
        'padding-bottom': '0px',
        'margin-right': '1px'
      });

      // nieuwe hoogte na manipuleren CSS hierboven
      newHeight = height + 30;

      // viewport hoogte zetten n.a.v. nieuwe hoogte accordion
      accordionObject.height(newHeight);
      accordionObject.find('.viewport').height(newHeight);

      // neerzetten scrollbar
      accordionObject.tinyscrollbar({ size: newHeight - 6 });
    }
  }
  else if ((overview + paddingBottom) >= height) {
    // overview kan te klein zijn om te scrollen maar te groot voor weergave dan paddingBottom bij hoogte accordioncontent optellen en padding verwijderen      
    accordionObject
          .css({
            'height': (accordionObject.height() + paddingBottom) + 'px',
            'padding-bottom': '0px'
          });
  }
    else if( (overview + paddingBottom ) >= height)
    {
      // overview kan te klein zijn om te scrollen maar te groot voor weergave dan paddingBottom bij hoogte accordioncontent optellen en padding verwijderen      
      accordionObject
          .css({
            'height' : ( accordionObject.height() + paddingBottom ) + 'px', 
            'padding-bottom' : '0px'
           });          
    }
}

//Wijzigt css voor lettergrootte
function addLink(size) {
  $.ajax({
    url: "/Home/TekstSize?size=" + size,
    type: "POST",
    success: function (result) {
      $("#sizeLink").attr('href', result.Url);
    }
  });
}
function setSize(size) {
  addLink(size);
}


function chipkaartPostcodeSelectie(strVal) {
  if (strVal != "") {
    $.ajax({
      type: "GET",
      url: "/AJAX/request-handler.asp?strAktie=get-provincienaamvoorplaatspostcode&strPlaatsPostcode=" + strVal,
      success: function (msg) {

        if (msg != "") {
          document.location.href = "/deeplink/<%= intStyleITID %>/" + msg.toLowerCase() + "/"
        }
        else {
          alert("Geen provincie gevonden.")
        }
      }
    });
  }
  else
    alert("Voer een postcode in.")
}

// homepagepage
function init_frontpage() {
  //disable de last tab for sliding
  $(".last-tab").unbind('click');

  //slides
  $("#slides").slides({
    play: 5000,
    pagination: true,
    effect: "fade",
    fadeSpeed: 350,
    animationComplete: function (currentSlideNo) {
      setSlideProperties(currentSlideNo - 1);
    }
  });
  setSlideProperties(0);

}

//reisadvies formulier
var vanResultaten, naarResultaten;
var vanResultaat = false;
var naarResultaat = false;
var currentElement;
function init_reisadviesForm() {
  var vanvalue = $("#Van").val();
  var naarvalue = $("#Naar").val();
  if (vanvalue)
    $('#VanIndex').append($('<option value="0">' + vanvalue + '</option>'));
  if (naarvalue)
    $('#NaarIndex').append($('<option value="0">' + naarvalue + '</option>'));

  //datepicker
  $('#datum').datepicker({
    dateFormat: 'dd MM yy',
    altField: '#datum-hidden',
    altFormat: 'ddmmyy',
    changeYear: true,
    changeMonth: true,
    dayNames: DagNamen,
    dayNamesMin: DagNamenMin,
    dayNamesShort: DagNamenKort,
    monthNames: MaandNamen,
    monthNamesShort: MaandNamenKort,
    firstDay: 1,
    nextText: 'volgende',
    prevText: 'vorige',
    minDate: +0,
    defaultDate: +0
  });

  $(document).delegate("#Van", "keydown", function () {
    ZetModelMetItem("Vertrek", null);
  });

  $(document).delegate("#Naar", "keydown", function () {
    ZetModelMetItem("Aankomst", null);
  });

  var meerTimeout;

  //autocomplete reisplanner
  $("#Van").autocomplete({
    source:
			function (request, response) {
			  currentElement = this;
			  var items = getinputParseResultByTerm(request.term, response);
			},
    minLength: 2,
    appendTo: "#autocomplete-homepage",
    select: function (event, ui) {
      if (ui.item.resultItem == null) {
        event.preventDefault();
      }
      else {
        ZetModelMetItem("Vertrek", ui.item);
      }
    },
    open: function (event, ui) {
      $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
      $("#autocomplete-homepage").addClass("dienstregeling-autocomplete");
    },
    close: function (event, ui) {
      $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
      $("#autocomplete-homepage").removeClass("dienstregeling-autocomplete");
    }
  });

  $("#Naar").autocomplete({
    source:
			function (request, response) {
			  currentElement = this;
			  var items = getinputParseResultByTerm(request.term, response);
			},
    minLength: 2,
    appendTo: "#autocomplete-homepage",
    select: function (event, ui) {
      log("select");
      ZetModelMetItem("Aankomst", ui.item);
    },
    open: function (event, ui) {
      $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
      $("#autocomplete-homepage").addClass("dienstregeling-autocomplete");
    },
    close: function () {
      $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
      $("#autocomplete-homepage").removeClass("dienstregeling-autocomplete");
    }
  });

  $('#checkModelButton').live('click', function () {
    var form = $('#reisplannerForm');
    $.post('/reisadvies/checkreisadviesmodel', form.serialize(), function (data) {
      if (data == "OK") {
        form.submit();
      }
      else {
        form.parents('#reisplanner').first().replaceWith(data);
        init_reisadviesForm();
      }
    });
  });

  //inputs checken wanneer op geef reisadvies geklikt
  $('#formSubmitButton').bind('click', function () {
    if (vanResultaat && naarResultaat) {
      log("direct");

      $('#checkModelButton').click();
      return false;
    }

    vanResultaten = getinputParseResultByTerm($('#Van').val());
    naarResultaten = getinputParseResultByTerm($('#Naar').val());

    if (!vanResultaat && vanResultaten.length == 1) {
      ZetModelMetItem("Vertrek", vanResultaten[0]);
    }
    if (!naarResultaat && naarResultaten.length == 1) {
      ZetModelMetItem("Aankomst", naarResultaten[0]);
    }

    if (vanResultaat && naarResultaat) {
      $('#checkModelButton').click();
      return false;
    }


    //zet resultaten in select
    if (vanResultaten && vanResultaten.length > 0) {
      $('#VanIndex').html('');
      for (var r in vanResultaten) {
        $('#VanIndex').append($('<option value="' + r + '">' + vanResultaten[r].label + '</option>'));
      }
    }
    else {
      $('#VanIndex').html($('<option>Er zijn geen resultaten gevonden </option>'));
    }


    if (naarResultaten && naarResultaten.length > 0) {
      $('#NaarIndex').html('');
      for (var r in naarResultaten) {
        $('#NaarIndex').append($('<option value="' + r + '">' + naarResultaten[r].label + '</option>'));
      }
    }
    else {
      $('#NaarIndex').html($('<option>Er zijn geen resultaten gevonden </option>'));
    }

    if (naarResultaten.length > 0 && vanResultaten.length > 0) {
      $("#checkModelButton").show();
      //zet event op selectie
      $('.selectbox').live('change', function () {
        var select = $(this);
        var selectID = select.attr('id');
        if (selectID == "VanIndex") {
          ZetModelMetItem("Vertrek", vanResultaten[select.val()]);
        }
        else if (selectID == "NaarIndex") {
          ZetModelMetItem("Aankomst", naarResultaten[select.val()]);
        }
      });
      //selecteer eerste
      $('#VanIndex').val($('#VanIndex option:first').val()).change();
      $('#NaarIndex').val($('#NaarIndex option:first').val()).change();
    }
    else {
      $("#checkModelButton").hide();
    }

    $('#reisplannerformMultiselect').show();
    $('#reisplannerformBasis').hide();

  });

  $('#backToFormButton').live('click', function () {
    $('#reisplannerformMultiselect').hide();
    $('#reisplannerformBasis').show();
  });

}

function ZetModelMetItem(tag, result) {
  if (result) {
    if (result.resultItem.postcode)
      $('#' + tag + 'Postcode').val(result.resultItem.postcode);
    else
      $('#' + tag + 'Postcode').val("");

    if (result.resultItem.huisnummer)
      $('#' + tag + 'Huisnummer').val(result.resultItem.huisnummer);
    else
      $('#' + tag + 'Huisnummer').val("");

    if (result.resultItem.stationid)
      $('#' + tag + 'StationID').val(result.resultItem.stationid);
    else
      $('#' + tag + 'StationID').val("");

    if (result.resultItem.straat)
      $('#' + tag + 'Straat').val(result.resultItem.straat);
    else
      $('#' + tag + 'Straat').val("");

    if (result.resultItem.plaats)
      $('#' + tag + 'Plaats').val(result.resultItem.plaats);
    else
      $('#' + tag + 'Plaats').val("");
    if (tag == "Vertrek")
      vanResultaat = true;
    else if (tag == "Aankomst")
      naarResultaat = true;
  }
  else {
    $('#' + tag + 'Postcode').val("");
    $('#' + tag + 'Huisnummer').val("");
    $('#' + tag + 'StationID').val("");
    $('#' + tag + 'Straat').val("");
    $('#' + tag + 'Plaats').val("");
    if (tag == "Vertrek")
      vanResultaat = false;
    else if (tag == "Aankomst")
      naarResultaat = false;
  }
}

//Haalt gegevens op voor reisadviesdropdowns voorpagina
function getinputParseResultByTerm(term, response) {
  var results = [];

  var request;
  if (request) {
    request.abort();
  }
  var async = false;
  if (response) {
    async = true;
  }

  request = $.ajax({
    url: '/reisadvies/getbestemming',
    dataType: "json",
    async: async,
    type: "POST",
    data: {
      term: term
    },
    success: function (data) {
      if (data && data.Stations && data.Stations.length > 0) {
        $.each(data.Stations, function (index, item) {
          results.push({
            label: 'Station ' + item.StationsNaam,
            value: 'Station ' + item.StationsNaam,
            resultItem: { stationid: item.StationsID, stationnaam: item.StationsNaam }
          });
        });
      }

      //als resultaat adres is
      if (data && data.Adres) {
        results.push(
						{
						  label: data.Adres.Straat.NENNaam + ' ' + data.Adres.Huisnr + ', ' + data.Adres.Straat.Plaats.ProperNaam,
						  value: data.Adres.Straat.NENNaam + ' ' + data.Adres.Huisnr + ', ' + data.Adres.Straat.Plaats.ProperNaam,
						  resultItem: { postcode: data.Adres.Postcode, huisnummer: data.Adres.Huisnr, straat: data.Adres.Straat.NENNaam }
						});
      }
      else if (data && data.HuisnummerReeksen && data.HuisnummerReeksen.length > 0) {
        $.each(data.HuisnummerReeksen, function (index, item) {
          results.push({
            label: item.Straat.NENNaam + ' ' + item.HuisnrVan + '-' + item.HuisnrTM + ', ' + item.Straat.Plaats.ProperNaam,
            value: item.Straat.NENNaam + ' ' + item.HuisnrVan + '-' + item.HuisnrTM + ', ' + item.Straat.Plaats.ProperNaam,
            resultItem: { postcode: item.Postcode, straat: item.Straat.NENNaam, plaats: item.Straat.Plaats.ProperNaam }
          });
        });
      }
      else if (data && data.Straten && data.Straten.length > 0) {
        $.each(data.Straten, function (index, item) {
          results.push({
            label: item.NENNaam + ', ' + item.Plaats.ProperNaam,
            value: item.NENNaam + ', ' + item.Plaats.ProperNaam,
            resultItem: { straat: item.NENNaam, plaats: item.Plaats.ProperNaam }
          });
        });
      }

      /*			results.push({
      label: 'Meer... ',
      value: '-1',
      resultItem: null
      });*/

      if ($.isFunction(response)) {
        response(results);
      }
    }
  });
  return results;
}

//ZoekDienstregelingForm
function initDienstregelingZoekFrom() {
  // bij het laden van de pagina eerst lijnid en richting resetten
  $("#lijnid").val("");
  $("#lijnrichting").val("");

  //datepicker voor datum van dienstregeling
  $("#datum-zichtbaar").datepicker({
    altField: "#datum-dienstregeling",
    altFormat: "ddmmyy",
    dateFormat: "dd MM yy",
    changeYear: true,
    changeMonth: true,
    dayNames: DagNamen,
    dayNamesMin: DagNamenMin,
    dayNamesShort: DagNamenKort,
    monthNames: MaandNamen,
    monthNamesShort: MaandNamenKort,
    firstDay: 1,
    nextText: 'volgende',
    prevText: 'vorige',
    minDate: +0,
    defaultDate: +0
  });

  // toon reisplanner formulier
  $(document).delegate("#planreislink", "click", function () {
    $("#reisplanner").show();
    $("#dienstregeling").hide();
  });

  // toon zoek dienstregeling formulier en stel huidige tijd in
  $(document).delegate("#zoekdienstregelinglink", "click", function (event) {

    $("#reisplanner").hide();

    var date = new Date();
    var uren = date.getHours();
    var minuten = date.getMinutes();
    if (uren < 10)
      uren = "0" + uren;
    if (minuten < 10)
      minuten = "0" + minuten;
    $("#dienstregelingUren").val(uren);
    $("#dienstregelingMinuten").val(minuten);
    $("#errorVeld").html('');
    $("#dienstregeling").show();
  });

  // wanneer er getyped wordt in het zoekveld, lijnid en richting resetten
  $(document).delegate(".zoeklijn", "keydown", function (key) {
    if (key.keyCode != 13 && key.keyCode != 9) {
      $("#lijnid").val("");
      $("#lijnrichting").val("");
    }
  });

  // terug-knop is geklikt zodat opnieuw een lijn kan worden gezocht.
  $(document).delegate("#dienstregeling-back", "click", function (event) {
    $("#dienstregeling-step2").hide();
    $("#dienstregeling-back").hide();
    $("#dienstregeling-step1").show();
    $("#lijnid").val("");
    $("#lijnrichting").val("");
  });

  // er is een lijn geselectreed uit de lijst met lijnen in de select-box
  $(document).delegate("#lijnselect", "change", function (event) {
    $("#lijnid").val($("#lijnselect option:selected").val());
    $("#lijnrichting").val($("#lijnselect option:selected").data("richting"));
  });

  // autocomplete voor lijnen
  $(".zoeklijn").autocomplete({
    source:
				function (request, response) {
				  currentElement = this;
				  getLijnResultByTerm(request.term, response);
				},
    appendTo: "#autocomplete-homepage",
    select: function (event, ui) {
      // bij selecteren uit de autocomplete, lijnid en richting setten
      $("#lijnid").val(ui.item.lijn.id);
      $("#lijnrichting").val(ui.item.lijn.richting);
    },
    open: function (event, ui) {
      $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
      $("#autocomplete-homepage").addClass("lijninfo-autocomplete");
    },
    close: function () {
      $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
      $("#autocomplete-homepage").removeClass("lijninfo-autocomplete");
    }
  })
  .data("autocomplete")._renderItem = function (ul, item) {
    return $("<li></li>")
				.data("item.autocomplete", item)
				.append("<a>" + item.label + "</a>")
				.appendTo(ul);
  }; ;

  //controleer of gegevens mogen worden verstuurd
  $(document).delegate("#form-dienstregeling", "submit", function (event) {
    $("#errorVeld").html('');
    // tijd in juiste formaat en in het juiste veld zetten voor het versturen van het formulier
    var uur = $("#dienstregelingUren").val();
    while (uur.length < 2) {
      uur = "0" + uur;
    }

    var minuut = $("#dienstregelingMinuten").val();
    while (minuut.length < 2) {
      minuut = "0" + minuut;
    }
    $("#Tijd").val(uur + minuut);

    // valideer het formulier
    if ($("#lijnid").val()) {
      // er is een lijn gekozen (vanuit autocomplete of vanuit select-box)
      // formulier mag dus worden verzonden. We hoeven nu dus niks meer te doen.
    } else if ($("#lijnnaam").val()) {
      // er is een zoekterm opgegeven, maar er is nog geen lijn geselecteerd
      $("#lijnselect").html(""); // reset items in select-box

      //Vul ze met een nieuwe zoekopdracht
      FillLijnSelect($("#lijnnaam").val())

      event.preventDefault();
    }
    else {
      // geen zoekterm opgegeven, dus error.
      $("#errorVeld").html('<div class="validation-summary-errors"><span>u moet een zoekterm opgegeven</span><div>');
      $("#lijnnaam").css("border-color", "red");
      event.preventDefault();
    }
  });
}

//Haalt gegevens op voor ingevulde lijn dropdown
function getLijnResultByTerm(zoekterm, response) {
  var results = [];

  var request;
  if (request) {
    request.abort();
  }

  request = $.ajax({
    url: '/dienstregeling/zoeklijn',
    dataType: "json",
    type: "POST",
    data: { term: zoekterm },
    success: function (data) {
      var results = [];
      $.each(data, function (index, item) {
        results.push({
          label: '<span class="lijnInfo">Lijn ' + item.LijnNummer + '<br/>' +
                    '<em>' + item.ProductFormule + '</em>' +
                  '</span>' +
                  '<span class="bestemmingInfo">' +
                    '<strong>naar: ' + item.Bestemming + '</strong><br/>' +
                    item.Omschrijving +
                  '</span>',
          value: item.LijnNummer + ": " + item.Bestemming,
          lijn: { id: item.Id, richting: item.Richting }
        });
      });
      if ($.isFunction(response)) {
        response(results);
      }
    }
  });
}

//Vult Selectbox bij niet geselecteerde lijn
function FillLijnSelect(zoekterm) {

  $.ajax({
    url: '/dienstregeling/zoeklijn',
    dataType: "json",
    type: "POST",
    async: false,
    data: { term: zoekterm },
    success: function (data) {
      var results = [];
      $.each(data, function (index, item) {
        results.push(item);
      });

      $.each(results, function (index, lijn) {
        var text = 'Lijn 12 naar ' + lijn.Bestemming;
        if (lijn.ProductFormule) {
          text += ' (' + lijn.ProductFormule + ')';
        }
        $("#lijnselect").append($('<option value="' + lijn.Id + '" data-richting="' + lijn.Richting + '">' + text + '</option>'));
      });

      if ($("#lijnselect option").length == 1) {
        $("#lijnid").val($("#lijnselect option").val());
        $("#lijnrichting").val($("#lijnselect option").data("richting"));
        $("#dienstregeling form").submit();
      }
      else if ($("#lijnselect option").length > 1) {
        $("#dienstregeling-step1").hide();
        $("#dienstregeling-step2").show();
        $("#dienstregeling-back").show();
      }
      else {
        $("#lijnnaam").css("border-color", "red");
        $("#errorVeld").html('<div class="validation-summary-errors"><span>Geen resultaten voor uw zoekterm</span><div>');
      }
    }
  });
}

//Vult de slides
function setSlideProperties(index) {
  
  if ($(".slide").length == 0)
    return;
  var slide = $(".slides_control").children("div.slide").eq(index);
  var key = slide.attr('id').substr(6);
  var kleurcode = slide.children('input.kleurcode').first().val();
  //$('#homepage').css('background', 'url(/data/slides/slide-' + key + '.jpg) no-repeat center 0');
  $('div.body-visual-bg').hide()
  $('div.body-visual-bg.slide-'+key).show()
  $('div.merkbaan').hide();
  $('div.merkbaan-'+key).show();
  
  var paginationLinks = $('.pagination li a');
  paginationLinks.css('background-color', '#fff');

  paginationLinks.bind("mouseover", function () {
    $(this).css('background-color', kleurcode);
  });

  paginationLinks.bind("mouseout", function () {
    var currentLink = $(this);
    if (!currentLink.parents().first().hasClass('current'))
      currentLink.css('background-color', '#fff');
  });

  var pagli = $('.pagination li').eq(index);
  pagli.children('a').css('background-color', kleurcode);
}

//Logt text zodat 't ook in explorer goed gaat
function log(text) {
  if (window.console && window.console.log)
    window.console.log(text);
}

//Functie om forms met ajax te submitten
function init_formsubmit() {

  $(".jssubmit-formplugin").ajaxForm({
    success: function (result) {
      var html = $(result).find("#formfields");
      if (html.length > 0) {
        $("div.formcontent #formfields").replaceWith(html);
      }
      else {
        $("div.formcontent").replaceWith(result);
      }

      $(".no-paste").bind("paste", function () {
        return false;
      });
    },
    error: function (xhr, textStatus, errorThrown) {
      alert("Er ging iet mis.");
    }
  });

}

//Slaat een lijn op voor MijnConnexxion
function slaLijnOp(lijnnr, richting) {
  $.post('/mijnconnexxion/opslaan', { lijnnr: lijnnr, richting: richting }, function (data) {

    if (data == "OK") {
      var dialog = $('<div title="Opgeslagen">De lijn is opgeslagen.</div>').dialog({
        modal: true,
        buttons: {
          'Sluit': function () {
            $(this).dialog('close');
          }
        }
      });
      dialog.dialog('open');
    }
    else {
      var dialog = $('<div title="Niet opgeslagen">De lijn kon niet worden opgeslagen.<br/> Probeer het later nog eens.</div>').dialog({
        modal: true,
        buttons: {
          'Sluit': function () {
            $(this).dialog('close');
          }
        }
      });
      dialog.dialog('open');
    }
    return data;
  });
}

