FastInit.addOnLoad(function() {
  // Not even going to bother with IE 6.0
  if(navigator.userAgent.match("MSIE 6.0"))
  {
    return;
  }
  var pics = $$('img.reflect');
   
  var bgColor = $A($$('div.wrapper')).first().getStyle('background-color');
  
  pics.each(function(pic) {
    pic.style.display = "none";
    var container = document.createElement('div');
    pic.parentNode.appendChild(container);
    container.className = "pic-replace";
    var r = Raphael(container, pic.getAttribute('width'), pic.getAttribute('height') * 1.5);
    r.image(pic.src, 0, 0 , pic.getAttribute('width'), pic.getAttribute('height'));
    r.image(pic.src, 0, pic.getAttribute('height'), pic.getAttribute('width'), pic.getAttribute('height')).scale(1, -1).attr({opacity: .2});
    r.rect(0, pic.getAttribute('height'), pic.getAttribute('width'), pic.getAttribute('height') * 0.5).attr({stroke: bgColor, gradient: "90-" + bgColor + "-" + bgColor, opacity: .2});
  });
});

FastInit.addOnLoad(function() {
  var summaries = $$('div.class_summary');
  summaries.each(function(summary) {
    var h2s = $A(summary.getElementsByTagName('h2'));
    var divs = $A(summary.getElementsByTagName('div'));
    
    divs.each(function(div) {
      div = $(div);
      if(div.hasClassName('info')) {
        div.hide();
      }
    });

    h2s.each(function(h2) {
      $(h2).observe('click', function(e) {
        if(e.element().hasClassName('open')) {
          e.element().removeClassName('open');
        } else {
          e.element().addClassName('open');
        }

        var divs = $A(summary.getElementsByTagName('div'));
        divs.each(function(div) {
          div = $(div);
          if(div.hasClassName('info')) {
            if(Element.visible(div)) {
              Effect.BlindUp(div);
            } else {
              Effect.BlindDown(div);
            }
          }
        });
      });
    });

  });

  var timetableStart = $('timetable_start');
  if(timetableStart) {
    timetableStart.observe('change', function(e) {
      e.stop();
      e.element().up('form').submit();
    });
  }

  var timetableFilter = $('timetable_filter');
  if(timetableFilter) {
    timetableFilter.observe('change', function(e) {
      e.stop();
      e.element().up('form').submit();
    });
  }

  var maps = $$('td.map');
  maps.each(function(map) {
    map.getElementsBySelector('div').each(function(d) {
      d.hide();
    });

    map.getElementsBySelector('a').each(function(a) {
      a.observe('click', function(e) {
        e.stop();
        e.element().up('td').getElementsBySelector('div').each(function(d) {
          if(Element.visible(d)) {
            Effect.BlindUp(d);
          } else {
            Effect.BlindDown(d);
          }
        });
      });
    });
  });

  $$('.date-picker').each(function(picker) {
    (function($) {
      $(picker).datepicker({
        dateFormat: 'MM dd, yy'
      });
    })(jQuery)
  });

  $$('.time-picker').each(function(picker) {
    (function($) {
      $(picker).timepickr({
        convention: 12
      });
    })(jQuery)
  });

  (function($) {
    if($('#payment_form').length > 0) {
      if($('input[name=booking[pay_by]]').val() == 'credit_card') {
        $('fieldset.payments.credit_card').show();
        $('#payment_form').get(0).setAttribute('action', $('#credit_card_url').val());
      } else {
        $('fieldset.payments.credit_card').hide();
        $('#payment_form').get(0).setAttribute('action', $('#pay_pal_url').val());
      }

      $('input[name=booking[pay_by]]').change(function(e) {
        if($(this).val() == 'credit_card') {
          $('fieldset.payments.credit_card').slideDown('fast');
          $('#payment_form').get(0).setAttribute('action', $('#credit_card_url').val());
        } else {
          $('fieldset.payments.credit_card').slideUp('fast');
          $('#payment_form').get(0).setAttribute('action', $('#pay_pal_url').val());
        }
      });
    }

    $('#s3_upload').submit(function(e) {
      var filename = $('input[type=file]').val();
      var ext = filename.split('.').pop();
      if(typeof(type = MIME_TYPES[ext.toLowerCase()]) != "undefined") {
        $('input[name=Content-Type]').val(type);
      }
    });

    $('.new_window').click(function(e) {
      window.open(this.href);
      return false;
    });
  })(jQuery);

  (function($) {
    $(function() {
      var toRemove = [];
      if($('#cms').length == 0) {
        $('.scroller .cms_content').each(function(i, e) {
          if($(e).children().length == 0) {
            var id = $(e).parent().attr('id').substring('slider-'.length);
            $('#trigger-' + id).remove();
            toRemove.push($(e).parent());
          }
        });
        while(toRemove.length > 0) {
          $(toRemove.pop()).remove();
        }
      }
      
      var currentSlider = 0;
      var scrollerWidth = $('.scroller').width();
      var scrollers = $('.scroller-area');
      var scrollTimer = null;
      
      var scrollToSlider = function(index) {
        $('.scroller-triggers img').removeClass('current');
        $('#trigger-' + index).addClass('current');
        $('.inner-scroller').animate({
          'left': -1 * parseInt(index) * scrollerWidth
        });
      }

      $('.scroller-triggers img').click(function(e) {
        e.preventDefault();
        var index = $(this).attr('id').substring('trigger-'.length);
        scrollToSlider(index);
        currentSlider = index;
        clearInterval(scrollTimer);
      });

      scrollToSlider(currentSlider);

      if(scrollers.length > 1 && $('#cms').length == 0) {
        var scrollTimer = setInterval(function() {
          scrollToSlider(currentSlider++);
          if(currentSlider == scrollers.length) {
            currentSlider = 0;
          }
        }, 5000);
      }
    });
  })(jQuery);

  /*
  var links = $$('table.timetable tbody a');
  
  links.each(function(link) {
    link.observe('click', function(e) {
      e.stop();

      var divs = $$('div.class_summary div.info');
      divs.each(function(div) {
        if(Element.visible(div)) {
          Effect.BlindUp(div);
        }
      });

      var a = e.element();
      if(a.tagName != 'A')
      {
        a = a.up('a');
      }

      var id = $A(a.href.split("#")).last();
      h2 = $(id);
      h2.scrollTo();
      
      var divs = $A(h2.up('div').getElementsByTagName('div'));
      divs.each(function(div) {
        div = $(div);
        if(div.hasClassName('info')) {
          Effect.BlindDown(div);
        }
      });

    }.bindAsEventListener(this));
  }.bindAsEventListener(this));
  */
  var paymentSelector = $$('div.payment-selector');
  paymentSelector.each(function(selector) {
    $(selector).hide();
  });

  var enrol = $$('a.enrol');
  enrol.each(function(a) {
    a.observe('click', function(e) {
      e.stop();
      var divs = $A(a.up('div').getElementsByTagName('div'));
      divs.each(function(div) {
        if(Element.visible(div)) {
          Effect.BlindUp(div);
        } else {
          Effect.BlindDown(div);
        }
      });
    });
  });

  var paymentForm = $('payment_form');
  if(paymentForm) {
    paymentForm.observe('submit', function(e) {
      var button = e.element().getElementsBySelector('button').first();
      if(button) {
        button.disabled = true;
        var span = document.createElement('span');
        var txt = document.createTextNode('Please wait while your payment is processed.');
        span.appendChild(txt);
        button.parentNode.appendChild(span);
      }
    });
  }
});

