jQuery(document).ready(function() {
    jQuery("div.csResultItemContainer").hover(function() {
        jQuery("div.csResultItemInfo", this).show();
    }, function() {
        jQuery("div.csResultItemInfo", this).hide();
    });
});

YAHOO.namespace("avro.cultuur.gids");

YAHOO.avro.cultuur.gids = function() {
    var calendarCfg = {
      "MONTHS_SHORT": ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
      "MONTHS_LONG": ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"],
      "WEEKDAYS_1CHAR": ["Z", "M", "D", "W", "D", "V", "Z"],
      "WEEKDAYS_SHORT": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
      "WEEKDAYS_MEDIUM": ["Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"],
      "WEEKDAYS_LONG": ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
      "DATE_FIELD_DELIMITER": "-",
      "DATE_RANGE_DELIMITER": "/",
      "MDY_MONTH_POSITION": 2,
      "MDY_DAY_POSITION": 1,
      "MDY_YEAR_POSITION": 3,
      close: true,
      title: "Selecteer een begin- en einddatum:",
      pages: 3
    };
    return {
      init: function() {
          var Dom = YAHOO.util.Dom;
          var Event = YAHOO.util.Event;
          var datumVanafEl = Dom.get("datumVanaf");
          var datumTotEl = Dom.get("datumTot");
          var begindatumEl = Dom.get("begindatum");
          var einddatumEl = Dom.get("einddatum");

          var submitForm = function() {
              document.forms['zoekgids'].submit();
          };
          var submitFormStraal = function() {
              if (document.forms['zoekgids'].elements['plaats'].value != '') {
                  submitForm();
              }
          };
          var showCalInterval = function(e) {
              Event.preventDefault(e);
              Dom.setStyle("calendarContainer", "top", Dom.getY("linkCalInterval") + "px");
              Dom.setStyle("calendarContainer", "left", Dom.getX("linkCalInterval") + "px");
              calInterval.show();
              YAHOO.util.Dom.setStyle("calendarContainer", "display", "block");
          };
          var submitCalInterval = function() {            
              YAHOO.util.Dom.setStyle("calendarContainer", "display", "none");
              submitForm();
          }
          var updateDatum = function() {
              var beginDate, eindDate, interval;
              interval = this.getInterval();
              if (interval.length == 2) {
                  beginDate = interval[0];
                  datumVanafEl.value = setDate(beginDate);
                  begindatumEl.value = setHiddenDate(beginDate);

                  if (interval[0].getTime() != interval[1].getTime()) {
                      eindDate = interval[1];
                      datumTotEl.value = setDate(eindDate);
                      einddatumEl.value = setHiddenDate(eindDate);
                  } else {
                      datumTotEl.value = "";
                      einddatumEl.value = "";
                  }
              }
          };

          function setBegindatum(date) {
              datumVanafEl.value = setDate(date);
              begindatumEl.value = setHiddenDate(date);
          }
          function setEinddatum(date) {
              datumTotEl.value = setDate(date);
              einddatumEl.value = setHiddenDate(date);
          }
          function setDate(date) {
              return date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear()
          }
          function setHiddenDate(date) {
              return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
          }
          function convertDate(date) {
              result = date;
              if (date != '') {
                result = date.substring(date.lastIndexOf("-") + 1) + "-" + date.substring(date.indexOf("-") + 1, date.lastIndexOf("-")) + "-" + date.substring(0, date.indexOf("-"));
              }
              return result;
          }
          function convertJsDate(date) {
              var result = new Date();
              result.setFullYear(date.substring(0, date.indexOf("-")));
              result.setMonth(date.substring(date.indexOf("-") + 1, date.lastIndexOf("-")) - 1);
              result.setDate(date.substring(date.lastIndexOf("-") + 1));
              return result;
          }

          var calInterval = new YAHOO.example.calendar.IntervalCalendar("calendarInterval", calendarCfg);
          calInterval.selectEvent.subscribe(updateDatum, calInterval, true);
          calInterval.hideEvent.subscribe(submitCalInterval);
          calInterval.showEvent.subscribe(function() {
              if (begindatumEl.value != '' && einddatumEl.value != '') {
                calInterval.setInterval(convertJsDate(begindatumEl.value), convertJsDate(einddatumEl.value));
                calInterval.render();
              }
          });
          calInterval.render();

          Event.addListener("linkCalInterval", "click", showCalInterval);
          Event.addListener("calOkButton", "click", submitCalInterval);
          Event.addListener("datumVanaf", "change", function() {
              begindatumEl.value = convertDate(datumVanafEl.value);
          });
          Event.addListener("datumTot", "change", function() {
              einddatumEl.value = convertDate(datumTotEl.value);
          });
          Event.addListener("period", "change", submitForm);
          Event.addListener("plaats", "change", submitForm);
          Event.addListener("genre", "change", submitForm);
          Event.addListener("subgenre", "change", submitForm);

          datumVanafEl.value = convertDate(begindatumEl.value);
          datumTotEl.value = convertDate(einddatumEl.value);
      }   
    }
}();

YAHOO.util.Event.onDOMReady(YAHOO.avro.cultuur.gids.init);


